统一机器人描述格式URDF URDF(Unified Robot DScription Fornat)机器人统一描述格式(XML格式)。
语法规范:参考链接:http://wiki.ros.org/urdf/XML
URDF组件,是由不同的功能包和组件组成:
文章图片
urdf_paser_plugin是URDF基础的插件,衍生出了urdfdom(面向URDF文件)collar_parser(面向相互文件)(\qquad其中urdf_parser和urder_interface已经在hydro之后的版本中去除了)。在URDF中,当想要描述一个机器人的时候,例如小车的base_link和右轮right,两个link之间需要joint连接。
文章图片
制作URDF模型
(1)添加基本模型 以构建一个小车为例,首先构建base_link作为小车的父坐标系,然后在base_link基础上,再构建左轮,右轮 和雷达 link. 最后不同的link之间通过joint来连接。
文件位置:test/urdf/mycar_link_position.urdf
小技巧:
sudo apt-get install liburdfdom-tools
,安装完毕后,执行检查check_urdf_my_car.urdf
,若一切正常,会显示:文章图片
(2) 添加机器人link之间的相对位置关系 在基础模型之上,我们需要为机器人之间link来设相对位置和朝向的关系,URDF中通过来描述。
文件位置:test/urdf/mycar_link_joint.urdf
(3)添加模型的尺寸,形状和颜色等 在设置好模型的link基础上,添加模型的形状(圆柱、长方体等),相对与link的位置,颜色等。
形状用描述,颜色用描述
输入
rqt_tf_tree rqt_tf_tree
:文章图片
可以将launch文件中的param name="use_gui"的值由false改成true会弹出一个窗口,同一移动进度条,可以临时改变joint的朝向。
制作xacro模型 Xacro可以理解为针对URDF的扩展性和配置性设计的宏语言(macro language)。有了Xacro,可以像编程一样写URDF文件,Xacro提供了一些更高级的方法编写机器人描述:
1.Constants
类似于C语言的宏定义,在头部定义后就可以${body_width}进行引用其数值,可以把需要配置的变量进行统一管理和使用。
2.Macros
Macros是xacro文件中最重要的部分,完成一些最小模块的定义, 方便重用(类似宏函数), 以及可以使用参数来标识不同的部分。
3.include
很多模型都是以宏的形式进行定义,并以最小集团分成很多个文件,于是最终的机器人描述就变得非常简单。urdf文件也是能够直接导入进来的。
include类似于C语言中的include,先将该文件扩展到包含的位置(但包含进来的文件很有可能只是一个参数宏的定义,并没有被调用)。
制作gazebo模型 对于二轮差动模型添加libgazebo_ros)diff_drive.so插件对小车左右轮控制。
/
true
false
50
mybot_left_wheel_hinge
mybot_right_wheel_hinge
${chassisWidth+wheelWidth}
${2*wheelRadius}
20
mybot_cmd_vel
mybot_odom
odom
mybot_link
通过添加libgazebo_ros_p3d.so来计算里程。
map
mybot_chassis
odom
30.0
【ROS学习笔记|ROS学习笔记(十六) 统一机器人描述格式URDF】对gazebo模型中小车左右轮相关PID等参数进行设置
Gazebo/Orange
0.0
0.0
Gazebo/Red
Gazebo/Black
Gazebo/Black
推荐阅读
- 机器学习|推荐算法——矩阵分解
- 数据安全|数据安全技术落地经验浅谈和分类分级实施
- 新闻速递 I MobTech首席数据官杨冠军受CSDN之邀,探索企业数字化转型最佳路径
- fanuc机床监控法那科CNC数据采集fanuc实时监控FANUC数采法那克远程监控FANUC在线监控FANUC远程控制
- Web开发|Linux 必会的高频操作
- Linux命令工作实践|001 研发同学必学哪些 Linux 命令()
- Linux|Linux 常用高频基础命令
- 影像组学|医学影像组学之病理切片分割(免费训练数据,标注数据,免费代码,免费教程)三天走完影像组学全部流程
- 医学影像|医学影像组学之数据增强免费教程