ROS 2边学边练(46)-- 给URDF模型添加物理属性和碰撞属性

前言

        实际物理世界中的物体需要遵守物理定律,机器人也不例外,在urdf中我们同样可以给机器人添加相关属性以模拟对应真实物理世界中的情况。

动动手

碰撞collision

        碰撞属性指的是该物体的最小安全物理空间,站在机器人的角度,这个最小安全空间就是自身所占空间。

        前面的urdf文件中,对于机器人部件(link)我们只给出了visual标签,定义了其形状、颜色,现在我们可以将碰撞属性加入。[原文件:07-physics.urdf]

<link name="base_link">
    <visual>
      <geometry>
        <cylinder length="0.6" radius="0.2"/>
      </geometry>
      <material name="blue">
        <color rgba="0 0 .8 1"/>
      </material>
    </visual>
    <collision>
      <geometry>
        <cylinder length="0.6" radius="0.2"/>
      </geometry>
    </collision>
  </link>
  • collision属性标签与visual标签同级;
  • collision属性里的子标签geometry用来定义最终的最小安全空间范围(几何形状、大小);
  • collision属性里同样可以添加原点数据(具体可以参考上面的原文件)。

 

         在许多情况下,我们是希望碰撞几何体和原点要与机器人本身视觉几何体和原点保持一致,但下面的两种情况除外:

  • 快速处理。对两个网格(前面提到的mesh文件,如抓手等比较复杂的模型)进行碰撞检测比对两个简单几何体进行碰撞检测要复杂得多。因此,往往可以考虑将mesh简化为容易计算的简单几何体(此时碰撞几何体和原点就与部件本身不一致了);
  • 安全区域。我们可能想要限制在敏感设备附近的移动。例如,如果我们不希望任何物体与R2D2的头部发生碰撞,我们可能会定义一个包围其头部的圆柱体作为碰撞几何体,以防止任何物体过于接近其头部(可联想为一隐形头盔)。

物理属性physical properties

        此处的物理属性主要指的是惯性(inertia),初中物理我们学过惯性与质量成正比,在机器人动力学中,惯性是机器人机构动力学特性的一个重要因素。由于机器人机构通常包含多个运动部件,这些部件在运动时会产生惯性力,这些惯性力会影响机器人的运动状态和控制精度。因此,在机器人动力学建模和分析中,需要充分考虑惯性因素的影响,以得到更准确的机器人动力学模型和控制算法。计算还是相当复杂的存在。

        在Gazebo中也是需要提供机器人的惯性属性来仿真模拟真实情况。

惯性inertia

        每个被模拟的连接元素(link)都需要一个惯性(inertial)标签。下面是一个简单示例。

<link name="base_link">
  <visual>
    <geometry>
      <cylinder length="0.6" radius="0.2"/>
    </geometry>
    <material name="blue">
      <color rgba="0 0 .8 1"/>
    </material>
  </visual>
  <collision>
    <geometry>
      <cylinder length="0.6" radius="0.2"/>
    </geometry>
  </collision>
  <inertial>
    <mass value="10"/>
    <inertia ixx="1e-3" ixy="0.0" ixz="0.0" iyy="1e-3" iyz="0.0" izz="1e-3"/>
  </inertial>
</link>

inertial标签与visual及collision标签等级,也是link标签的子标签;

inertial标签中的mass属性为质量,单位为千克;

3x3 的转动惯量矩阵由惯性元素指定。由于这个矩阵是对称的,因此它可以用仅6个元素来表示,如下所示。

ixxixyixz
ixyiyyiyz
ixziyzizz

这里,3x3的转动惯量矩阵描述了一个物体在空间三个维度上的转动惯量特性。由于矩阵是对称的(即I_xy = I_yx, I_xz = I_zx, I_yz = I_zy),我们只需要存储对角线上的3个元素(表示绕x、y、z轴的转动惯量)以及上三角(或下三角)的3个元素(表示不同轴之间的惯性积)即可。因此,总共需要6个元素来表示这个矩阵。

  • 这些信息我们可以通过建模程序(如MeshLab)获取。几何原始形状(如圆柱体、盒子、球体)的惯性可以通过查阅维基百科上关于惯性张量矩列表(在上面的例子中有所使用)来计算得出;
  • 惯性张量取决于物体的质量和质量的分布。一个好的初步近似方法是假设物体体积内质量均匀分布,并根据物体的形状来计算惯性张量,如上所述;
  • 如果不确定应该填入什么值,对于一个中等大小的连杆,一个合理的默认值是ixx/iyy/izz=1e-3或更小的矩阵(这相当于一个边长为0.1米、质量为0.6千克的盒子)。单位矩阵是一个特别糟糕的选择,因为它通常太高了(它相当于一个边长为0.1米、质量为600千克的盒子!);
  • 我们还可以指定一个“origin”标签来指定重心以及惯性参考系(相对于连杆的参考系);
  • 在使用实时控制器时,如果惯性元素为零(或几乎为零),可能会导致机器人模型在没有警告的情况下崩溃,并且所有连杆的原点都将与世界原点重合。
接触系数contact coefficients

        我们也可以定义连杆在相互接触时如何表现。这是通过collision标签的一个子元素contact_coefficients来完成的。其需要指定三个属性:

  • mu - 摩擦系数Friction coefficient(有动态和静态两种)
  • kp - 刚性系数Stiffness coefficient
  • kd - 阻尼系数Dampening coefficient

关节动力学

        在urdf中可以通过动力学标签来定义关节的移动属性,这里有两个属性:

  • 摩擦friction - 物理静态摩擦。对于滑动关节来说,其单位是牛顿(N),对于有限制的转动关节,其单位是牛米(Nm)。
  • 阻尼damping - 物理阻力值,对于滑动关节来说,其单位是牛顿秒每米(Ns/m),有限制的转动关节,其单位是牛顿米秒每弧度(Nms/rad)。

        如果不指定具体值,这些系数值默认为0.

其他标签     

        在纯URDF(即不包括Gazebo特定标签)的领域中,还有两个剩余的标签用于帮助定义关节:calibrationsafety_controller。但是,需要澄清的是,在标准的URDF规范中,calibrationsafety_controller并不是标准的标签。URDF(Unified Robot Description Format)主要用于描述机器人的结构、尺寸、质量和关节等物理特性,但不直接涉及控制、校准或安全控制器的配置。

        然而,在某些机器人软件框架或应用中,可能会扩展URDF以包含这些额外的信息。例如,calibration标签可能被用于指定关节校准的参数,而safety_controller可能用于描述与关节安全相关的控制器参数或配置。

        但注意,这些并不是URDF规范的标准部分,而是特定于某个软件框架或应用的扩展。如果在某个特定的机器人软件或仿真环境中看到了这些标签,应该查阅该软件的文档以了解这些标签的具体含义和用法。[参考教程]

 

本篇完。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/613720.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IPv6路由配置:ripng、ospfv3、静态路由

本次主要是对ipv6路由的配置&#xff0c;先了解ipv6&#xff0c;再进行实验配置 目录 一、&#x1f349; 什么是IPV6&#xff1f;&#x1f31f;IPv6的主要特点 二、&#x1f349;IPv6和IPv4的对比&#x1f31f; 共同点:&#x1f31f; IPv4的优缺点:&#x1f31f; IPv6的优缺点:…

免费获取!图论+灰色系统+混合优化算法程序代码!

前言 算法&#xff08;Algorithm&#xff09;是指解题方案的准确而完整的描述&#xff0c;是一系列解决问题的清晰指令&#xff0c;算法代表着用系统的方法描述解决问题的策略机制。算法优化是指对算法的有关性能进行优化&#xff0c;如时间复杂度、空间复杂度、正确性、健壮性…

mysql--join

Join 两个表都有一个主键索引 id 和一个索引 a&#xff0c;字段 b 上无索引&#xff0c;表 t2 里插入了 1000 行数据&#xff0c;在表 t1 里插入的是 100 行数据 CREATE TABLE t2 (id int(11) NOT NULL,a int(11) DEFAULT NULL,b int(11) DEFAULT NULL,PRIMARY KEY (id),KEY …

“我们坚持开源!”阿里云发布“地表最强”中文大模型:半年一迭代、性能翻倍?

5 月 9 日&#xff0c;在通义大模型发布一周年之际&#xff0c;阿里云大模型生态迎来一次重大升级&#xff0c;主要有“四个最”&#xff1a; 通义千问 2.5 正式发布&#xff0c;“模型性能全面赶超 GPT-4 Turbo&#xff0c;成为地表最强中文大模型”&#xff1b;Qwen1.5-110B…

刺客信条提示找不到emp.dll,无法继续执行代码的8个有效解决方法

遇到游戏提示缺少emp.dll文件的问题时&#xff0c;不必过于焦虑&#xff0c;这个问题相对常见且有多种解决方案。以下是一些实用的心得和步骤来帮助你修复这个问题&#xff1a; 在计算机世界里&#xff0c;动态链接库&#xff08;Dynamic Link Library&#xff0c;简称DLL&…

Java OOM问题排查

1.问题现象 tomcat web页面无法访问&#xff0c;日志报出如下错误&#xff0c; 问题出现频率 1晚上1次。 有时候会打印出oom的代码位置&#xff0c;有时候不会打印&#xff0c;不会打印则按照如下流程排查 2.问题排查过程 排查OOM主要是要获取内存的快照文件&#xff0c;但…

NISP一级备考知识总结之信息安全概述、信息安全基础

1.信息安全概述 信息与信息技术 信息概述 信息奠基人香农认为&#xff1a;信息是用来消除随即不确定性的东西信息是事务运动状态或存在方式的不确定性的描述信息是具体的&#xff0c;并且可以被人&#xff08;生物&#xff0c;机器等&#xff09;所感知、提取、识别&#xf…

GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用教程

原文链接&#xff1a;GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247603080&idx1&sn3e0d7015a2a717c320ebea3a673388ee&chksmfa82126fcdf59b795c7e2cea575470d42480ab809b926be5f94633eac…

测斜仪的具体应用:从地下工程到斜坡监测

测斜仪作为一种精密的测量工具&#xff0c;在多个领域都有广泛的应用。从最初的地下工程&#xff0c;到现今的斜坡监测&#xff0c;测斜仪的技术进步和应用范围的扩大&#xff0c;为工程安全提供了有力的保障。 一、地下工程中的测斜仪应用 在地下工程中&#xff0c;测斜仪主要…

第十二届蓝桥杯省赛真题 Java 研究生 组【原卷】

文章目录 发现宝藏【考生须知】试题 A: 卡片试题 B: 相乘试题 C: 直线试题 D: 路径试题 E : \mathrm{E}: E: 回路计数试题 F: 时间显示试题 G: 最少砝码试题 H : \mathrm{H}: H: 杨辉三角形试题 I: 双向排序试题 J:分果果 发现宝藏 前些天发现了一个巨牛的人工智能学习网站&…

AI智能写作工具推荐-AI在线写作生成器-1分钟完成写作

随着人工智能技术的不断发展&#xff0c;越来越多的写作软件开始使用AI技术来帮助用户更高效地创作文章。 第一款&#xff1a;笔尖AI写作 笔尖Ai写作-在线AI写作工具 - 笔尖Ai写作原创影视解说文案生成器&#xff0c;AI自动生成高质量原创内容。拥有超过435个智能写作模板&am…

SpringSecurity + JWT实现登录认证

前置基础请参考&#xff1a;SpringSecurity入门-CSDN博客 配置&#xff1a; pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version></p…

二手交易系统基于Uniapp+FastAdmin+ThinkPHP(源码搭建/上线/运营/售后/更新)

​一款基于UniappFastAdminThinkPHP开发的二手交易系统&#xff0c;卖家可以发布二手信息&#xff0c;买家可以在线询价&#xff0c;支持在线聊天(高级授权)&#xff0c;在线购买支付&#xff0c;支持发布高价回收(高级授权)信息。自带社交板块&#xff0c;用户可以发布帖子、加…

【论文笔记】DiL-NeRF: Delving into Lidar for Neural Radiance Field on Street Scenes

原文链接&#xff1a;https://arxiv.org/abs/2405.00900 1. 引言 自动驾驶等应用领域需要逼真的仿真。传统的仿真流程需要手工创建3D资产并构成虚拟环境&#xff0c;但其人力和专业需求使其难以具有可放缩性。 NeRF有不错的仿真能力&#xff0c;但需要大范围覆盖的训练数据以…

【MySQL的内置函数】

文章目录 一、日期函数1.current_date()2.current_time()3.current_timestamp4. date_add 穿越未来5.date_sub 回到过去6.datediff案例 二、字符串函数2.1charset2.2 concat ——拼接字符串2.3 ucase——转化成大写2.4 lcase——转化成小写2.5 left&#xff08;&#xff09;2.6…

计算机毕业设计 | springboot+vue小米商城 购物网站管理系统(源码+论文+讲解视频)

1&#xff0c;项目背景 国家大力推进信息化建设的大背景下&#xff0c;城市网络基础设施和信息化应用水平得到了极大的提高和提高。特别是在经济发达的沿海地区&#xff0c;商业和服务业也比较发达&#xff0c;公众接受新事物的能力和消费水平也比较高。开展商贸流通产业的信息…

无管理员权限linux系统手动切换cuda版本

查看当前计算机cudatoolkit的版本 nvcc -V下载 如果想切换到指定版本&#xff0c;则去官网下载&#xff08;10.1版本为例&#xff09;&#xff1a; cuda下载 cudnn下载 将下载好的文件放到服务器的文件夹中 安装 安装cuda sh cuda_10.1.243_418.87.00_linux.run选择接受 …

教你一招,一键解锁云盘与NAS自动同步!

想象一下 数字生活就像一座繁忙的都市 云盘是你的空中阁楼 俯瞰着整个城市的美景 而NAS是坚实的地基 承载着所有珍贵的记忆 那如何让数据在 城市的高空与地面之间自由穿梭呢&#xff1f; 别急&#xff01;铁威马来帮你&#xff01; TOS 6创新功能&#xff1a;云盘挂载 …

STM32CubeMx 生成IAR工程Jlink无法Debug

肯定是工程设置问题喽&#xff1a; 设置OK!

java小知识:图片添加中文水印,部署到linux环境乱码解决

源码如下&#xff1a; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Objects;/*** 图片添加文字水印** param so…