机器人仿真-gazebo学习笔记(3)URDF和机器人模型

1.URDF简介

URDF(统一机器人麦哦书格式)是ROS中的重要机器人模型描述格式,ROS提供了URDF文件的c++解析器,可以解析URDF文件中使用XML格式的机器人模型。

 urdf - ROS Wiki

自己查阅ros官方对URDF的介绍其实会强于大部分网上流传的文章。

1.URDF文件常用的XML标签

1.标签

·作用:描述机器人某个刚体部分的外观和物理属性,例如:

        1.尺寸(size)

        2.颜色(color)

        3.形状(shape)

        4.惯性矩阵(inertial matrix)

        5.碰撞参数(collision properties)等

·URDF模型中的link结构图:

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第1张图片

·标签的URDF基本语法:

· · · · · · · · · ·

        · · · · · · ·

        · · · · ·

标签 简介
描述机器人link部分的外观参数
描述link的惯性参数
描述link的碰撞属性

碰撞检测区域(link区域)大于可见的区域,只要有物体和collision区域碰撞那就是和link发生了碰撞。

 2.标签

·作用:描述机器人关节的运动学和动力学属性,包括关节运动的位置和速度限制。

六种机器人关节运动形式(URDF模型的joint类型):

关节类型 简介
continuous 旋转关节,可以围绕单轴无线旋转
revolute 旋转关节,类似continuous,但旋转角度有极限
prismatic 滑动关节,沿某一轴线移动的关节,有位置极限
planar 平面关节,允许在平面正交方向平移或旋转
floating 浮动关节,允许进行平移、旋转运动
fixed 固定关节,不允许运动的特殊关节

机器人关节(joint)的作用是连接两个刚体(link),被连接的连个刚体分别被称为parent link和child link ,对应了父级和子级的关系。

·URDF模型的joint结构图:

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第2张图片

·标签的URDF基本语法:

 

       

       

       

       

       

        ....

标签 简介
父级刚体
子级刚体
关节参考位置,用来校准关节的绝对位置
描述关节物理属性,包括阻尼值、物理静摩擦力等
描述运动的一些极限值,包括关节运动的上下限位置、速度限制等
描述该关节与已有关节的关系
描述安全控制器参数
3.标签

·作用:机器人模型的最顶层标签,标签和标签必须包含在标签内。

·URDF模型的robot结构图:

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第3张图片

 ·标签的URDF基本语法:

        ........

        ........

        ........

         ........

4.标签

·作用:描述机器人模型在gazebo仿真需要的参数,包括机器人材料属性、gazebo插件等。只有在gazebo仿真才需要

·标签的URDF基本语法:

        Gazebo/Black

​​

 2.创建URDF模型

ros中,机器人模型一般会放在RobotName_description功能包下。

1.创建机器人描述功能包

catkin_create_pkg myrobot urdf xacro

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第4张图片

myrobot功能包当中会包含urdf、meshes、launch、config四个文件夹。

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第5张图片

·urdf:存放机器人模型的urdf文件和xacro文件

·meshes:放置URDF中引用的模型渲染文件

·launch:保存相关启动文件

·config:保存rviz配置文件

3.URDF命令行工具

·作用:检查、梳理模型文件。

1.安装liburdfdom-tools

sudo apt install liburdfdom-tools

如果安装出现问题,先看一下自己是否换源了。

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第6张图片

2.check_urdf命令

·作用:解析URDF文件,并显示解析过程中发现的问题

check_urdf mybot.urdf 

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第7张图片

3.urdf_to_graphiz命令

·作用:查看URDF模型的整体结构。

打开生存的pdf文件就能看见URDF的模型结构

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第8张图片

4.URDF模型解析

为了让大家更好的了解URDF模型,我会简单解析一下URDF模型

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第9张图片

1.第一行声明文件是使用XML描述,第二行是使用标签定义一个机器人模型,机器人名字为"mybot"

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第10张图片

2.机器人底盘link,标签描述底盘的惯性参数,重量,惯性矩阵;标签描述底盘的外观参数,在rviz和gazebo中会按照描述显示出来,底盘几何图形是一个长宽高分别为0.25m、0.16m、0.05m的长方体,旋转姿态,起点xyz坐标,颜色为蓝色;标签描述物体的碰撞属性。(后面的link都差不多)机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第11张图片

3.左轮link

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第12张图片

4.左轮joint,用于将左轮与底盘连接,为旋转关节,连接坐标为0,0,-1,父级link和子级link,旋转姿态和起点坐标。(后续的joint都差不多)

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第13张图片

5.万向轮link,万向轮为一个球体

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第14张图片

6.万向轮joint

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第15张图片

5.在rviz中显示机器人模型

roslaunch bingda_tutorials display_robot.launch 

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第16张图片

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第17张图片

6.在gazebo中显示机器人模型

roslaunch bingda_tutorials gazebo_robot.launch

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第18张图片

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第19张图片

机器人仿真-gazebo学习笔记(3)URDF和机器人模型_第20张图片

你可能感兴趣的:(ROS学习,gazebo,机器人,学习,笔记)