当前位置:   article > 正文

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

urdf文件

1.URDF简介

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

 urdf - ROS Wiki

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

1.URDF文件常用的XML标签

1.<link>标签

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

        1.尺寸(size)

        2.颜色(color)

        3.形状(shape)

        4.惯性矩阵(inertial matrix)

        5.碰撞参数(collision properties)等

·URDF模型中的link结构图:

·<link>标签的URDF基本语法:

<link name="<link name>">

<inertial> · · · · · · · · · ·</inertial>

        <visual> · · · · · · ·</visual>

        <collision> · · · · · </collision>

</link>

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

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

 2.<joint>标签

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

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

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

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

·URDF模型的joint结构图:

·<joint>标签的URDF基本语法:

 <joint name="<name of the joint>">

        <parent link="parent_link"/>

        <child link="child_link"/>

        <calibration .... />

        <dynamics damping .... />

        <limit effort .... />

        ....

</joint>

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

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

·URDF模型的robot结构图:

 ·<robot>标签的URDF基本语法:

<robot name="<name of the robot>">

        <link> ........ </link>

        <link> ........ </link>

        <joint> ........ </joint>

        <joint> ........ </joint>

</robot>

4.<gazebo>标签

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

·<gazebo>标签的URDF基本语法:

<gazebo reference="link_1">

        <materisal>Gazebo/Black</materisal>

</gazebo>​​

 2.创建URDF模型

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

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

  1. catkin_create_pkg myrobot urdf xacro

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

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

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

·launch:保存相关启动文件

·config:保存rviz配置文件(我喜欢用rviz文件夹来保存)

3.URDF命令行工具

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

1.安装liburdfdom-tools

sudo apt install liburdfdom-tools

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

2.check_urdf命令

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

check_urdf mybot.urdf 

3.urdf_to_graphiz命令

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

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

4.URDF模型解析

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

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

2.机器人底盘link,<inertial>标签描述底盘的惯性参数,重量,惯性矩阵;<visual>标签描述底盘的外观参数,在rviz和gazebo中会按照描述显示出来,底盘几何图形是一个长宽高分别为0.25m、0.16m、0.05m的长方体,旋转姿态,起点xyz坐标,颜色为蓝色;<collision>标签描述物体的碰撞属性。(后面的link都差不多)

3.左轮link

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

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

6.万向轮joint

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

roslaunch bingda_tutorials display_robot.launch 

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

roslaunch bingda_tutorials gazebo_robot.launch

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号