网站大量收购闲置独家精品文档,联系QQ:2885784924

《鸿蒙机器人编程》7-仿真工具Gazebo及URDF--教案.docxVIP

《鸿蒙机器人编程》7-仿真工具Gazebo及URDF--教案.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

ROS星火计划 从0到1搭建ROS环境 NXROBOExBot

PAGE8

仿真工具Gazebo与URDF

urdf介绍

urdf(unifiedrobotdescriptionformat)是ROS中描述机器人的一种语言,在ROS开发中占据了非常重要的地位。urdf主要用途在于标识机器人物理模型有哪些部件、每个部件的尺寸、部件间以何种关节连接、关节限制等,可容易实现关节空间坐标与笛卡尔坐标的转换,如配合robot_state_publisher包使用,可根据关节的值确定出部件的位置和姿态。

urdf定义了一系列XML标签来描述机器人模型,最核心的两个标签为:

link——机器人部件/连杆/刚体,

joint——机器人关节/运动副。

robot标签为根标签,是其它标签的容器,其作用类似于launch文件中的launch标签。它有一个属性name,用来设置机器人的名字。如下如所示:

link标签用于描述机器人某个部件(也即刚体部分)的外观和物理属性。机器人底座、轮子、激光雷达、摄像头等,每个部件都对应一个link。在link标签内,可以设计该部件的形状、尺寸、颜色、惯性矩阵、碰撞参数等一系列属性。属性name用于设置部件名字。下图为一些子标签具体设置:

joint标签用于描述机器人关节的运动学和动力学属性,还可以指定关节运动的安全极限。机器人的两个部件(parentlink与childlink)以关节的形式相连接,不同的关节有不同的运动形式:旋转、滑动、固定、旋转速度、旋转角度限制。属性name,设置关节的名字;属性type,设置关节类型。

以下是一些Joint类:

Revolute:转动关节,但是有转动范围,必须要求之后的limit参数中必须含有上下界才合法。

Continuous:连续转动关节,没有转动范围。

Prismatic:平动关节,也需要上下界的定义。

Fixed:完全固定,连接的两个link幷没有可动关系,可以理解为纯粹为了标识固定传感器相对位置与姿态而设立的。

Floating:允许link与link之间有完全6个自由度的转换,跟fixed一样,一般是标识一些环境物体或者无人机在全局位置姿态的。

Planar:与floating类似,用于标识地面机器人在地面上的位置姿态。

Gearbox:描述了齿轮传动的转动关系。

Ball:球关节,两个转动自由度的合成。

Screw:类似于螺丝的运动,单个自由度,但转动与平动位移的合成。

取消了floating与planar。

下图为一些子标签具体设置:

urdf本身设计有一些缺陷。

整个joint与link成树状描述,而机器人存在一些的物理模型例如并联机构,环状机构等就无法表示。一些标签设置也不是非常合理,还有整个xml语法上也不是非常灵活。

这些问题的存在使urdf在一些情况中显得非常鸡肋,但是对于大部分移动机器人与机械臂,urdf已经够用,关键是已经有大量现成工具,使得urdf在ROS中的地位还是不可撼动。

XACRO宏介绍

复杂的机器人常常有多达十几个joint和link,许多joint或link非常相似,整个urdf文件显得非常冗长、复杂,urdf文件中还经常存在一些值计算依赖。

XACRO是ROS中简化大型xml文件的写法、增加结构性与扩展性的XML宏语言,提供了属性定义,数学运算,条件判断和宏定义等功能。使用宏能极大增加urdf文件的层次感与可读性,在各个机器人公开的ROSurdfpackage中,基本都是用XACRO工具进行组织。

需要注意:必须在robot标签中加入xmlns:xacro=/wiki/xacro属性。

属性:使用xacro:property标签定义,用${属性名称}来调用该参数。如下图所示:

数学运算:在变量的大括号中可以使用基本的数学运算,可以使用Python数学模块中的函数和常量。如下图所示:

条件判断:表达式中的结果必须是0、1、true或false,在expression中任何结果为布尔值的Python表达式都是可以的。如下图所示:

宏定义:使用xacro:macro来定义一个宏,参数用空格分割,参数可以用:=来添加默认值。如下图所示:

仿真简述

仿真/模拟(Simulation),泛指基于实验或训练的目的,将原本的系统、事务或流程,建立一个模型以表征其关键特性(keycharacteristics)或者行为/功能,予以系统化与公式化,以便进行可对关键特征做出模拟。

当所研究的系统造价昂贵、实验的危险性大或需要很长的时间才能了解系统参数变化所引起的后果时,仿真是一种特别有效的研究手段。它广泛应用于电气、机械、化工、水力、热力、社会、经济、生态、管理等领域。重要工具就是计算机。ROS中的仿真

文档评论(0)

青柠职教 + 关注
实名认证
服务提供商

从业10年,专注职业教育专业建设,实训室建设等。

1亿VIP精品文档

相关文档