[ROS 系列学习教程] 建模与仿真 - URDF 语法介绍

ROS 系列学习教程(总目录)

本文目录

  • 一、robot标签
  • 二、link标签
  • 三、joint标签

URDF文件中使用XML格式描述的机器人模型,下面介绍URDF的XML标签。

一、robot标签

机器人描述文件中的根元素必须是robot,所有其他元素必须封装在其中。

属性

  • name:主文件必须具有名称属性。 name属性在包含的文件中是可选的。如果在附加包含文件中指定属性名称,则其值必须与主文件中的值相同。

子标签

标签描述
link连杆
joint关节,描述连杆之间的运动关系
gazebo用于描述在gazebo中模拟的信息

示例

<robot name="mbot">
    <link> ... </link>
    <joint> ... </joint>
</robot>

二、link标签

link 元素用于描述具有惯性、视觉特征和碰撞属性的刚体。

在这里插入图片描述

属性

  • name:link的名称。

子标签

注:<…> 代表标签,xyz 等代表属性,++ 等代表下一级。

标签或属性描述示例
<inertial>描述连杆的质量、质心位置及其中心惯性属性(如果未指定,则默认为零质量和零惯性)
+ <origin>该姿态(平移、旋转)描述了连杆质心坐标系 C 相对于连杆坐标系 L 的位置和方向。
++ xyz从 Lo(连杆坐标系原点)到 Co(连杆质心)的位置向量,表示为 xL̂x + yL̂y + zL̂z,其中L̂x、L̂y、L̂z是连杆坐标系 L 的正交单位向量。默认为零向量2.0 0 -3
++ rpy质心 C 的单位向量 (Ĉx, Ĉy, Ĉz) 相对于连杆系 L的方向,表示为以弧度表示的欧拉旋转 (rpy) 序列。注意:(Ĉx, Ĉy, Ĉz) 不需要与连杆的惯性主轴对齐。0.1 1 0.5
+ <mass>连杆的质量,由该元素的value属性表示
++ value质量数值,单位:kg2.5
+ <inertia>对于固定在质心坐标系 C 上的单位向量 (Ĉx, Ĉy, Ĉz) ,该连杆的惯性矩ixx、iyy、izz以及关于 Co(连杆质心)的惯性积 ixy、ixz、iyz。
++ ixx
++ iyy
++ izz
惯性矩
++ ixy
++ ixz
++ iyz
惯性积
<visual>连杆的视觉属性。该元素指定对象的形状(box、cylinder等)以用于可视化。**注意:**同一个连杆可以存在多个 <visual> 实例,连杆的最终形状由他们定义的几何图形融合决定。
+ name指定连杆几何图形的名称。用于外部引用连杆几何形状。 可选
+ <origin>视觉元素的参考系相对于连杆参考系的位姿。可选
++ xyz平移
++ rpy固定轴旋转角
+ <geometry>视觉对象的几何形状,选择如下之一
++ <box>立方体,原点位于几何中心
+++ size长宽高,单位:m
++ <cylinder>圆柱体,原点位于几何中心
+++ length高,单位:m
+++ radius半径,单位:m
++ <sphere>球体,,原点位于几何中心
+++ radius半径,单位:m
++ <mesh>外部导入的网格模型
+++ filename模型文件路径,建议使用 package://<packagename>/<path> 格式,以便可以自动查找特定包下的模型文件。文件推荐 .dae 格式。
+ <material>视觉元素的材质。允许在 robot 元素中枚举所需材质,然后在 link 元素中按名称引用。
++ name名称
++ <color>颜色
+++ rgba红绿蓝和透明度,数值范围为 [0,1]0.2 0 0.8 1
+++ <texture>外部导入的外观图片
+++ filename文件路径
<collision>连杆的碰撞属性,注意:这可能与连杆的视觉属性不同,例如,通常使用更简单的碰撞模型来减少计算时间。 同一连杆可以存在多个 <collision> 实例。连杆的最终碰撞模型由他们定义的几何图形融合决定。
+ name指定连杆碰撞模型的名称。用于外部引用。 可选
+ <origin>同<visual>的<origin>
+ <geometry>同<visual>的<geometry>

示例

<robot name="physics">

    <material name="blue">
        <color rgba="0 0 0.8 1"/>
    </material>
    <material name="black">
        <color rgba="0 0 0 1"/>
    </material>
    <material name="white">
        <color rgba="1 1 1 1"/>
    </material>

    <link name="base_link">
        <visual>
            <geometry>
                <cylinder length="0.6" radius="0.2"/>
            </geometry>
            <material name="blue"/>
        </visual>
        <collision>
            <geometry>
                <cylinder length="0.6" radius="0.2"/>
            </geometry>
        </collision>
        <inertial>
            <mass value="10"/>
            <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
        </inertial>
    </link>

</robot>

三、joint标签

joint 描述关节的运动学和动力学属性,并指定了关节的安全极限。

在这里插入图片描述

属性

  • name:指定关节的唯一名称(必选)。
  • type:指定关节的类型,可以是以下之一:
关节类型描述
revolute沿轴转动的铰链关节,其范围由 lower 和 upper 指定。见 limit 标签
continuous绕轴旋转的连续铰链关节,没有上下限。
prismatic沿轴滑动的滑动关节,其范围由 lower 和 upper 指定。
fixed这并不是真正的关节,因为它不能移动。所有自由度均被锁定。这种类型的关节不需要<axis>、<calibration>、<dynamics>、<limits>或<safety_controller>等标签。
floating该关节允许所有 6 个自由度的运动。
planar该关节允许在垂直于轴的平面上运动。

子标签

标签或属性描述示例
<origin>从父连杆到子连杆的转换。关节位于子连杆的原点,如上图。可选
+ xyzx、y、z 偏移,单位:m2.0 0 -3
+ rpy绕固定轴的旋转:首先绕x滚动,然后绕y俯仰,最后绕z偏航。单位:弧度0.1 1 0.5
<parent>指定关节的父连杆,必选
+ link父连杆名称
<child>指定关节的子连杆,必选
+ link子连杆名称
<axis>关节框架中指定的关节轴。这是旋转关节的旋转轴、滑动关节的平移轴以及平面关节的表面法线。该轴在关节参考系中指定。固定关节和浮动关节不使用该字段。默认为 (1,0,0)
+ xyz轴向量,应该被归一化。
<calibration>关节的参考位置,用于校准关节的绝对位置。
+ rising当关节正方向移动时,该参考位置将触发上升沿。
+ falling当关节正方向移动时,该参考位置将触发下降沿。
<dynamics>指定关节的物理属性
+ damping关节的物理阻尼值(对于滑动关节,以牛顿秒每米[ Ns / m ] 为单位;对于旋转关节,以牛顿米秒每弧度[ Nms / rad ] 为单位)
+ friction关节的物理静摩擦值(对于滑动关节,单位为牛顿[ N ];对于旋转关节,单位为牛顿米[ Nm ])
<limit>安全限制(仅旋转关节和滑动关节需要)
+ lower指定关节下限的属性(对于旋转关节以弧度为单位,对于滑动关节以米为单位)。如果关节是连续的则省略。可选
+ upper指定关节上限的属性(对于旋转关节以弧度为单位,对于滑动关节以米为单位)。如果关节是连续的则省略。可选
+ effort限制关节最大受力($F_{real}
+ velocity限制关节最大速度(对于旋转关节,以弧度每秒[ rad / *s ] 为单位,对于棱柱关节,以米每秒[ m / s ] 为单位),必选
<mimic>该标签用于指定定义的关节模仿另一个现有关节。该关节的值可以计算为value = multiplier * other_joint_value + offset。可选
+ joint指定要模仿的关节的名称,必选
+ multiplier指定上述公式中的乘法因子,可选
+ offset指定要在上述的公式中添加的偏移量。默认为 0(旋转关节为弧度,滑动关节为米)
<safety_controller>安全控制器,可选
+ soft_lower_limit指定安全控制器开始限制关节位置的下边界。该限制需要大于 limit 的 lower
+ soft_upper_limit指定安全控制器开始限制关节位置的上边界。该限制需要小于 limit 的 upper
+ k_position指定位置和速度限制之间的关系
+ k_velocity指定受力和速度限制之间的关系

示例

<joint name="my_joint" type="floating">
    <origin xyz="0 0 1" rpy="0 0 3.1416"/>
    <parent link="link1"/>
    <child link="link2"/>

    <calibration rising="0.0"/>
    <dynamics damping="0.0" friction="0.0"/>
    <limit effort="30" velocity="1.0" lower="-2.2" upper="0.7" />
    <safety_controller k_velocity="10" k_position="15" soft_lower_limit="-2.0" soft_upper_limit="0.5" />
</joint>

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

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

相关文章

Springboot引入外部jar包并打包jar包

前言 spring boot项目开发过程中难免需要引入外部jar包&#xff0c;下面将以idea为例说明操作步骤 将需要的jar包导入到项目中 2.在maven中引入jar包 <dependency><groupId>com</groupId><!--随便填的文件夹名称--><artifactId>xxx</artif…

【C++学习】C++4种类型转换详解

这里写目录标题 &#x1f680;C语言中的类型转换&#x1f680;为什么C需要四种类型转换&#x1f680;C强制类型转换&#x1f680;static_cast&#x1f680;**reinterpret_cast**&#x1f680;const_cast与volatile&#x1f680;dynamic_cast &#x1f680;C语言中的类型转换 在…

百度 千帆sdk 试用

主要是Java SDK的使用&#xff1a; <dependency> <groupId>com.baidubce</groupId> <artifactId>qianfan</artifactId> <version>0.0.4</version> </dependency> 参考文档&#xff1a;bce-qianfan-sdk/java at main baidub…

用于 SQLite 的异步 I/O 模块(二十四)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite的PRAGMA 声明&#xff08;二十三&#xff09; 下一篇&#xff1a;SQLite、MySQL 和 PostgreSQL 数据库速度比较&#xff08;本文阐述时间很早比较&#xff0c;不具有最新参考性&#xff09;&#xff08;二…

一些实用的工具网站

200 css渐变底色 https://webgradients.com/ 200动画效果复制 https://css-loaders.com/classic/ 二次贝塞尔曲线 https://blogs.sitepointstatic.com/examples/tech/canvas-curves/bezier-curve.html 三次贝塞尔曲线 https://blogs.sitepointstatic.com/examples/tech/c…

PID c++算法学习和实现

原理图&#xff1a; &#xff08;1&#xff09;位置式PID 是1&#xff1a;当前系统的实际位置&#xff0c;与你想要达到的预期位置的偏差&#xff0c; 2&#xff1a;进行PID控制,误差会一直累加&#xff0c;会使当前输出与过去的所有输入相关&#xff0c;输入uk出错&#xff…

python将pdf转为docx

如何使用python实现将pdf文件转为docx文件 1.首先要安装pdf2docx库 pip install pdf2docx2.实现转换 from pdf2docx import Converterdef convert_pdf_to_docx(input_pdf, output_docx):# 创建一个PDF转换器对象pdf_converter Converter(input_pdf)# 将PDF转换为docx文件pdf…

【技术干货】长运通SiP微模块技术介绍

一、什么是SiP技术&#xff1f; SiP原文“System in Package”&#xff0c;字面含义是系统级封装&#xff0c;国际半导体技术发展路线图 ( ITRS 2005 )对 SiP 的定义是&#xff1a;系统级封装是采用任何组合, 将多个具有不同功能的有源电子器件与可选择性的无源元件以及诸如 M…

解决CSS中鼠标移入到某个元素其子元素被遮挡的问题

我们在开发中经常遇到一种场景&#xff0c;就是给元素加提示信息&#xff0c;就是鼠标移入到盒子上面时&#xff0c;会出现提示信息这一功能&#xff0c;如果我们给盒子加了hover&#xff0c;当鼠标移入到盒子上时&#xff0c;让他往上移动5px&#xff0c;即transform: transla…

2024年下载排行第一的数据恢复软件EasyRecovery

EasyRecovery数据恢复软件是一款功能强大的数据恢复工具&#xff0c;它能够帮助用户恢复因各种原因丢失的数据&#xff0c;无论是误删除、格式化、分区丢失还是其他存储介质故障&#xff0c;都能得到很好的解决。 使用EasyRecovery进行数据恢复&#xff0c;用户只需按照简单的…

租用境外服务器,越南服务器的优势有哪些

自从中国加入世界贸易组织之后&#xff0c;国内经济增加速度非常快&#xff0c;同时越来越多的人选择去东南亚国家发展&#xff0c;因为当地的中国人很多&#xff0c;所以中国企业在当地面临着更小的文化差异。东南亚地区也是最新的经济体&#xff0c;互联网正处于蓬勃发展的阶…

【日志跟踪】SpringBoot实现简单的日志链路追踪

引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j&l…

Java编译期注解处理器AbstractProcessor使用

我们接触的注解主要分为以下两类 运行时注解&#xff1a;通过反射在运行时动态处理注解的逻辑编译时注解&#xff1a;通过注解处理器在编译期动态处理相关逻辑 编译期注解我们常用的有Lombok&#xff0c;在class文件中自动生成get和set方法 解编译期处理流程最关键的一个类就…

数字乡村创新实践探索农业现代化与乡村振兴新路径:科技赋能农村全面振兴与农民福祉新纪元

目录 引言 一、数字乡村与农业现代化新路径 1、智慧农业引领农业现代化 2、农业产业链的数字化转型 二、数字乡村与乡村振兴新路径 1、农村信息化水平的提升 2、农村治理模式的创新 三、科技赋能农村全面振兴与农民福祉新纪元 1、提升农业生产效益与农民收入 2、促进…

【Qt 学习笔记】Qt常用控件 | 按钮类控件Push Button的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 按钮类控件Push Button的使用及说明 文章编号&#xff1…

路径规划 | 基于蜣螂优化算法的无人机三维路径规划(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 基于蜣螂优化算法的无人机三维路径规划【23年新算法应用】可直接运行 Matlab语言 1.读取地形数据&#xff0c;利用蜣螂算法DBO优化三维路径&#xff0c;目标函数为总路径最短&#xff0c;同时不能撞到障碍物&#xff…

Android Studio使用USB真机调试详解

本文为大家分享了Android Studio使用USB真机调试的具体方法&#xff0c;供大家参考&#xff0c;具体内容如下 以小米4为例&#xff0c;先将手机通过USB连接电脑&#xff0c;在设备管理器中确保驱动安装正确。 对手机的设置 1.设置手机为开发者模式&#xff08;设置- 关于手机…

windows应急响应基础知识

一、系统排查 1、系统详细信息 systeminfo2、网络链接 netstat -ano LISTENING 服务启动后首先处于侦听 ESTABLISHED 建立连接。表示两台机器正在通信。 CLOSE_WAIT 对方主动关闭连接或者网络异常导致连接中断&#xff0c;这时我方的状态会变成CLOSE_WAIT 此时我方要调用…

如何查找overlayfs对应的POD如何根据pod找到containerd id

如何查找overlayfs对应的POD mount |grep overlayfs | grep 1738 ctr -n k8s.io c list | grep 11ac4083419be11174746b68d018a0a402d9ae43c6b52125810fe1ec7db63bc6 查找目录并统计大小 find / -name "jfsCache" -exec du -sh {} | sort -rh如何根据pod找到c…

HarmonyOS4-网络连接-http请求数据

使用Axios发送请求&#xff1a; 详细资料来源于官方文档。