510企业网站系统源码,设计旅游网站的主色调,做产品的往这看:国外工业设计网站大全!,网站建设流程pptURDF#xff08;Unified Robot Description Format#xff0c;统一机器人描述格式#xff09;是ROS中一个非常重要的机器人模型描述格式#xff0c;ROS同时也提供URDF文件的C解析器#xff0c;可以解析URDF文件中使用XML格式描述的机器人模型。 在使用URDF文件构建机器人模… URDFUnified Robot Description Format统一机器人描述格式是ROS中一个非常重要的机器人模型描述格式ROS同时也提供URDF文件的C解析器可以解析URDF文件中使用XML格式描述的机器人模型。 在使用URDF文件构建机器人模型之前有必要先梳理一下URDF文件中常用的XML标签对URDF有一个大概的了解。
link标签link 标签用于描述机器人某个刚体部分的外观和物理属性包括尺寸size、颜色color、形状shape、惯性矩阵inertial matrix、碰撞参数collision properties等。
机器人的link结构一般如图6-1所示其基本的URDF描述语法如下
link namelink nameinertial . . . . . . /inertialvisual . . . . . . /visualcollision . . . . . . /collision
/link标签用于描述机器人link部分的外观参数标签用于描述link的惯性参 数而标签用于描述link的碰撞属性。从下图可以看到检测碰撞的link区域大于外 观可视的区域这就意味着只要有其他物体与collision区域相交就认为link发生碰撞。 标签用于描述机器人关节的运动学和动力学属性包括关节运动的位置和速度限制。根据机器人的关节运动形式可以将其分为六种类型
URDF模型中的joint类型 与人的关节一样机器人关节的主要作用是连接两个刚体link这两个link分别称为parent link和child link如图 标签的描述语法如下
joint namename of the jointparent linkparent_link/child linkchild_link/calibration .... /dynamics damping ..../limit effort .... /....
/joint其中必须指定joint的parent link和child link还可以设置关节的其他属性。
calibration关节的参考位置用来校准关节的绝对位置。
dynamics用于描述关节的物理属性例如阻尼值、物理静摩擦力等经常在动力学仿真中用到。
limit用于描述运动的一些极限值包括关节运动的上下限位置、速度限制、力矩限制等。
mimic用于描述该关节与已有关节的关系。
safety_controller用于描述安全控制器参数。
robot标签
是完整机器人模型的最顶层标签和标签都必须包含在标签 内。
如下图所示一个完整的机器人模型由一系列和组成。 robot namename of the robotlink ....... /linklink ....... /linkjoint ....... /jointjoint ....... /joint
/robot标签
标签用于描述机器人模型在Gazebo中仿真所需要的参数包括机器人材料的属性、Gazebo插件等。该标签不是机器人模型必需的部分只有在Gazebo仿真时才需加入。
该标签的基本语法如下
gazebo referencelink_1
materialGazebo/Black/material
/gazebo创建机器人URDF模型
在ROS中机器人的模型一般放在RobotName_description功能包下。下面尝试仿照MRobot 机器人从零开始创建一个移动机器人的URDF模型
创建机器人描述功能包
可以使用如下命令创建一个新的功能包
catkin_create_pkg mrobot_description urdf xacromrobot_description功能包中包含urdf、meshes、launch和config四个文件夹
urdf用于存放机器人模型的URDF或xacro文件。meshes用于放置URDF中引用的模型渲染文件。launch用于保存相关启动文件。config用于保存rviz的配置文件
创建URDF模型
在之前的学习中我们已经大致了解了URDF模型中常用的标签和语法接下来使用这些基本语法创建一个如图所示的机器人底盘模型。 这个机器人底盘模型有7个link和6个joint。
7个link包括1个机器人底板、2个电机、2个驱动轮和2个万向轮 6个joint负责将驱动轮、万向轮、电机安装到底板上并设置相应的连接方式。
先来看一下该模型文件mrobot_description/urdf/mrobot_chassis.urdf的具体内容
?xml version1.0 ?
robot namemrobot_chassis
link namebase_linkvisualorigin xyz 0 0 0 rpy0 0 0 /geometrycylinder length0.005 radius0.13//geometrymaterial nameyellowcolor rgba1 0.4 0 1//material/visual
/link
joint namebase_left_motor_joint typefixedorigin xyz-0.055 0.075 0 rpy0 0 0 /parent linkbase_link/child linkleft_motor //joint
link nameleft_motorvisualorigin xyz0 0 0 rpy1.5707 0 0 /geometrycylinder radius0.02 length 0.08//geometrymaterial namegraycolor rgba0.75 0.75 0.75 1//material/visual
/link
joint nameleft_wheel_joint typecontinuous
origin xyz0 0.0485 0 rpy0 0 0/
parent linkleft_motor/
child linkleft_wheel_link/
axis xyz0 1 0/
/joint
link nameleft_wheel_link
visual
origin xyz0 0 0 rpy1.5707 0 0 /
geometry
cylinder radius0.033 length 0.017/
/geometry
material namewhite
color rgba1 1 1 0.9/
/material
/visual
/link
joint namebase_right_motor_joint typefixed
origin xyz-0.055 -0.075 0 rpy0 0 0 /
parent linkbase_link/
child linkright_motor /
/joint
link nameright_motor
visual
origin xyz0 0 0 rpy1.5707 0 0 /
geometry
cylinder radius0.02 length 0.08 /
/geometry
material namegray
color rgba0.75 0.75 0.75 1/
/material
/visual
/link
joint nameright_wheel_joint typecontinuous
origin xyz0 -0.0485 0 rpy0 0 0/
parent linkright_motor/
child linkright_wheel_link/
axis xyz0 1 0/
/joint
link nameright_wheel_link
visual
origin xyz0 0 0 rpy1.5707 0 0 /
geometry
cylinder radius0.033 length 0.017/
/geometry
material namewhite
color rgba1 1 1 0.9/
/material
/visual
/link
joint namefront_castor_joint typefixed
origin xyz0.1135 0 -0.0165 rpy0 0 0/
parent linkbase_link/
child linkfront_castor_link/
axis xyz0 1 0/
/joint
link namefront_castor_link
visual
origin xyz0 0 0 rpy1.5707 0 0/
geometrysphere radius0.0165 /
/geometry
material nameblack
color rgba0 0 0 0.95/
/material
/visual
/link
/robotURDF提供了一些命令行工具可以帮助我们检查、梳理模型文件需要在终端中独立安装
sudo apt-get install liburdfdom-tools然后使用check_urdf命令对mrobot_chassis.urdf文件进行检查
check_urdf mrobot_chassis.urdfcheck_urdf命令会解析URDF文件并且显示解析过程中发现的错误。如果一切正常在终端中会输出如图所示的信息。 还可以使用urdf_to_graphiz命令查看URDF模型的整体结构
urdf_to_graphiz mrobot_chassis.urdf执行urdf_to_graphiz命令后会在当前目录下生成一个pdf文件打开该文件可以看到模型的整体结构图