版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ROS应用开发技术1.URDF机器人建模-URDF定义URDF介绍目录CONTENTS01URDF介绍URDF简介URDF机器人建模是指使用URDF文件格式来描述机器人的物理结构、运动关系和传感器等信息,以便在ROS中进行机器人建模、仿真和控制。URDF机器人建模步骤0204050301根据需求在URDF中添加传感器,增强机器人的感知能力,支持复杂任务。可视化和碰撞检测描述机器人结构在URDF中明确关节类型、运动范围和限制,为机器人运动提供基础数据。整合到ROS系统定义机器人运动添加传感器定义机器人的外观和碰撞模型,便于在仿真中直观显示和避免碰撞。将URDF文件整合到ROS中,实现机器人的仿真、控制和规划等功能,提升开发效率。通过URDF文件详细定义机器人的链接、关节和传感器等组件,确保模型准确性。rqt_plot可视化工具可以直接感知的部分,如人体的大臂、小臂等关节joint连接两个连杆,如人体的大臂和小臂之间的关节URDF模型采用XML格式进行组织,便于描述机器人的相关信息,使得模型结构清晰直观。在构建机器人模型时,通过拆解成连杆和关节两大部分,能够精确描述机器人的结构和运动特性。连杆link<link>020301<visual>描述机器人link部分的外观参数描述link的惯性参数<collision><inertial>描述link的碰撞属性link描述了机器人某个刚体部分的外观和物理属性,包括尺寸、颜色、形状以及动力学中需要用到的惯性矩阵和碰撞参数等。<joint>类型关节类型描述continuous旋转关节,可以围绕单轴无限旋转revolute类似于continuous,但是有旋转的角度极限prismatic滑动关节,沿某一轴线移动的关节,带有位置极限planar平面关节,允许在平面正交方向上平移或者旋转floating浮动关节,允许进行平移、旋转运动fixed固定关节,不允许运动的特殊关节<joint>参数0402050301<safety_controller>描述安全控制器参数<dynamics><mimic>描述运动的一些极限值,包括关节运动的上下限位置、速度限制、力矩限制等关节的参考位置,用来校准关节的绝对位置<limit><calibration>描述关节的物理属性,例如阻尼值、物理静摩擦力等,经常在动力学仿真中用到描述该关节与已有关节的关系<jointname="<nameofthejoint>"type="<jointtype>"><parentlink="parent_link"/><childlink="child_link"/><calibration.../><dynamicsdamping.../><limiteffort.../>...</joint><robot><robotname="<nameoftherobot>"><link.../><link.../><joint.../><joint.../></robot>ROS应用开发技术2.URDF机器人建模-URDF格式目录CONTENTS01URDF格式URDF建模目录CONTENTS02URDF格式URDF格式URDF简介URDF简介URDF是ROS中用于描述机器人结构的一种标准格式。它详细描述了机器人的外观形态、物理属性以及关节类型等重要信息。URDF文件采用XML语言编写,具有清晰的结构和明确的标签定义。<link>标签示例<link>标签示例<linkname="link1"><visual><originxyz="000"rpy="000"/><geometry><meshfilename="package://dofbot_moveit/meshes/link1.STL"/></geometry><materialname=""><colorrgba="00.6274509803921570.2352941176470591"/></material></visual><collision><originxyz="000"rpy="000"/><geometry><meshfilename="package://dofbot_moveit/meshes/link1.STL"/></geometry></collision></link><link>子标签<link>子标签定义该连杆在碰撞检测中的属性,该标签拥有的属性有:<origin>、<geometry>、<surface><collision>用于定义该连杆在可视化工具中的显示属性,该标签拥有的属性有:<origin>、<geometry>、<material><visual>定义了连杆的物理惯性属性,该标签拥有的属性有:<mass>、<inertia、<origin><inertial>在<link>
标签中name属性是必填项,描述当前连杆名称,并且是唯一。<joint>标签示例<joint>标签示例<jointname="joint1"type="revolute"><originxyz="000.06605"rpy="-0.01080500"/><parentlink="base_link"/><childlink="link1"/><axisxyz="001"/><limiteffort="30"velocity="1.0"lower="-1.5708"upper="1.5708"/></joint><joint>子标签<joint>子标签用于对旋转关节的运动进行限制<origin><child>定义旋转轴<limit>定义<child>连杆相对于<parent>连杆的坐标系原点的位置和姿态定义子连杆定义父连杆<parent><axis><robot>标签示例<robot>标签示例<robotname="robot_name"><link>...</link><joint>...</joint>
<link>...</link><joint>...</joint><robot>URDF建模URDF建模创建URDF功能包创建URDF功能包进入src文件夹cd~/ros_wscatkin_make返回工作空间catkin_create_pkglearn_urdfurdfxacro创建功能包cd~/ros_ws/src编译工作空间新建文件夹新建文件夹03010204urdf用于存放显示urdf模型的rviz文件mesheslaunchconfig用于存放编写的urdf模型文件用于存放启动显示urdf的launch文件编译完成后,我们需要在功能包的目录下新建四个文件夹用于存放URDF中对link的渲染文件dispaly.launch文件编写dispaly.launch文件编写<launch><paramname="robot_description"command="$(findxacro)/xacro--inorder$(findlearn_urdf)/urdf/dofbot.urdf"/><nodename="joint_state_publisher_gui"pkg="joint_state_publisher_gui"type="joint_state_publisher_gui"/>
<nodename="robot_state_publisher"pkg="robot_state_publisher"type="robot_state_publisher"/>
</launch>运行文件运行文件打开Rviz来显示机械臂rviz重新打开终端使用roslaunch命令运行文件roslaunchlearn_urdfdisplay.launchROS应用开发技术3.URDF机器人-URDF建模实训(上)目录CONTENTS01准备工作02小车主体03左侧车轮添加目录CONTENTS准备工作准备工作功能包创建功能包创建cd./catkin_ws/src/创建功能包catkin_create_pkgmbot_descriptionurdfxacro为了实验操作的方便,我们需要在工作空间中新建一个功能包用于本次实训操作。进入工作空间新建文件夹新建文件夹03010204urdf保存rviz的配置文件、功能包的配置文件mesheslaunchconfig存放机器人模型的URDF或xacro文件保存相关启动文件编译完成后,我们需要在功能包的目录下新建四个文件夹放置URDF中引用的模型渲染文件,机器人外观纹理,让外观和实际更相似小车主体小车主体display_mbot_base_urdf.launch文件编写display_mbot_base_urdf.launch文件编写<launch><!--加载的参数名字叫robot_description,具体内容是urdf相关模型的路径--> <paramname="robot_description"textfile="$(findmbot_description)/urdf/mbot_base.urdf"/> <!--设置GUI参数,显示关节控制插件--> <paramname="use_gui"value="true"/> <!--运行joint_state_publisher节点,发布机器人的关节状态--> <nodename="joint_state_publisher"pkg="joint_state_publisher"type="joint_state_publisher"/> <!--运行robot_state_publisher节点,发布tf--> <nodename="robot_state_publisher"pkg="robot_state_publisher"type="state_publisher"/> <!--运行rviz可视化界面,保存每次打开之后的相关插件,保存到config文件夹下面--> <nodename="rviz"pkg="rviz"type="rviz"args="-d$(findmbot_description)/config/mbot_urdf.rviz"required="true"/></launch>mbot_base.urdf文件编写mbot_base.urdf文件编写<?xmlversion="1.0"?><robotname="mbot"><linkname="base_link"><visual><originxyz="000"rpy="000"/><!--link坐标位置,放在最中央,xyz单位是米,rpy单位是弧度--><geometry><cylinderlength="0.16"radius="0.20"/></geometry><!--机器人的外观效果,使用圆柱体,高0.16,半径0.20--><materialname="yellow"><colorrgba="10.401"/></material><!--通过rgba来描述颜色,颜色命名为yellow,a为1是不透明--></visual><!--visual指的是一些物理属性的标签--></link></robot>模型查看模型查看roslaunchmbot_descriptiondisplay_mbot_base_urdf.launch左侧车轮添加左侧车轮添加添加小车模型左侧车轮添加小车模型左侧车轮<jointname="left_wheel_joint"type="continuous"><originxyz="00.19-0.05"rpy="000"/><parentlink="base_link"/><childlink="left_wheel_link"/><axisxyz="010"/></joint><linkname="left_wheel_link"><visual><originxyz="000"rpy="1.570700"/><geometry><cylinderradius="0.06"length="0.025"/></geometry><materialname="white"><colorrgba="1110.9"/></material></visual></link>使用gedit命令打开mbot_base.urdf文件,添加如下内容模型查看模型查看roslaunchmbot_descriptiondisplay_mbot_base_urdf.launch功能包创建功能包创建从下拉列表中选择“TF”点击“Add”按钮添加新的显示项ROS应用开发技术3.URDF机器人建模-URDF建模实训(中)目录CONTENTS01右侧车轮添加前后支撑轮添加目录CONTENTS02右侧车轮添加右侧车轮添加添加小车模型右侧车轮添加小车模型右侧车轮<jointname="right_wheel_joint"type="continuous"><originxyz="0-0.19-0.05"rpy="000"/><!--坐标位置,在base_link基础上,Y偏移-0.19,z偏移-0.05,与左轮正好相反--><parentlink="base_link"/><childlink="right_wheel_link"/><axisxyz="010"/></joint><linkname="right_wheel_link"><visual><originxyz="000"rpy="1.570700"/><geometry><cylinderradius="0.06"length="0.025"/></geometry><materialname="white"><colorrgba="1110.9"/></material></visual></link>使用gedit命令打开mbot_base.urdf文件,添加如下内容模型查看模型查看roslaunchmbot_descriptiondisplay_mbot_base_urdf.launch前后支撑轮添加前后支撑轮添加添加小车模型前后支撑轮添加小车模型前后支撑轮<jointname="front_caster_joint"type="continuous"><originxyz="0.180-0.095"rpy="000"/><parentlink="base_link"/><childlink="front_caster_link"/><axisxyz="010"/></joint><linkname="front_caster_link"><visual><originxyz="000"rpy="000"/><geometry><sphereradius="0.015"/><!--用圆形轮子代替--></geometry><materialname="black"><colorrgba="0000.95"/></material></visual></link>使用gedit命令打开mbot_base.urdf文件,添加如下内容添加小车模型前后支撑轮添加小车模型前后支撑轮<jointname="back_caster_joint"type="continuous"><originxyz="-0.180-0.095"rpy="000"/><parentlink="base_link"/><childlink="back_caster_link"/><axisxyz="010"/></joint><linkname="back_caster_link"><visual><originxyz="000"rpy="000"/><geometry><sphereradius="0.015"/></geometry><materialname="black"><colorrgba="0000.95"/></material></visual></link>使用gedit命令打开mbot_base.urdf文件,添加如下内容模型查看模型查看roslaunchmbot_descriptiondisplay_mbot_base_urdf.launchROS应用开发技术URDF机器人建模-URDF建模实训(下)目录CONTENTS01摄像头添加02激光雷达添加03Kinect添加目录CONTENTS摄像头添加摄像头添加准备工作准备工作cd./catkin_ws/src/mbot_description/urdf新建模型文件sudogeditmbot_with_camera.urdf进入功能包小车已经有了基本的外形,下面我们来为它添加传感器mbot_with_camera.urdf文件编写mbot_with_camera.urdf文件编写<robotname="mbot"><linkname="base_link"><visual><originxyz="000"rpy="000"/><geometry><cylinderlength="0.16"radius="0.20"/></geometry><materialname="yellow"><colorrgba="10.401"/></material></visual></link><jointname="left_wheel_joint"type="continuous"><originxyz="00.19-0.05"rpy="000"/><parentlink="base_link"/><childlink="left_wheel_link"/><axisxyz="010"/></joint>mbot_with_camera.urdf文件编写mbot_with_camera.urdf文件编写<linkname="left_wheel_link"><visual><originxyz="000"rpy="1.570700"/><geometry><cylinderradius="0.06"length="0.025"/></geometry><materialname="white"><colorrgba="1110.9"/></material></visual></link><jointname="right_wheel_joint"type="continuous"><originxyz="0-0.19-0.05"rpy="000"/><parentlink="base_link"/><childlink="right_wheel_link"/><axisxyz="010"/></joint>mbot_with_camera.urdf文件编写mbot_with_camera.urdf文件编写<linkname="right_wheel_link"><visual><originxyz="000"rpy="1.570700"/><geometry><cylinderradius="0.06"length="0.025"/></geometry><materialname="white"><colorrgba="1110.9"/></material></visual></link><jointname="front_caster_joint"type="continuous"><originxyz="0.180-0.095"rpy="000"/><parentlink="base_link"/><childlink="front_caster_link"/><axisxyz="010"/></joint>mbot_with_camera.urdf文件编写mbot_with_camera.urdf文件编写<linkname="front_caster_link"><visual><originxyz="000"rpy="000"/><geometry><sphereradius="0.015"/></geometry><materialname="black"><colorrgba="0000.95"/></material></visual></link><jointname="back_caster_joint"type="continuous"><originxyz="-0.180-0.095"rpy="000"/><parentlink="base_link"/><childlink="back_caster_link"/><axisxyz="010"/></joint>mbot_with_camera.urdf文件编写mbot_with_camera.urdf文件编写<linkname="back_caster_link"><visual><originxyz="000"rpy="000"/><geometry><sphereradius="0.015"/></geometry><materialname="black"><colorrgba="0000.95"/></material></visual></link>mbot_with_camera.urdf文件编写mbot_with_camera.urdf文件编写<linkname="camera_link"><visual><originxyz="000"rpy="000"/><geometry><boxsize="0.030.040.04"/></geometry><materialname="black"><colorrgba="0000.95"/></material></visual></link><jointname="camera_joint"type="fixed"><originxyz="0.1700.10"rpy="000"/><parentlink="base_link"/><childlink="camera_link"/></joint></robot>修改launch文件修改launch文件020301切换目录cd./catkin_ws/src/mbot_description/launch和display_mbot_base_urdf.launch文件内容基本一致,需要修改urdf相关模型的路径<paramname="robot_description"textfile="$(findmbot_description)/urdf/mbot_with_camera.urdf"/>打开文件修改内容sudogeditdisplay_mbot_with_camera_urdf.launch模型查看模型查看roslaunchmbot_descriptiondisplay_mbot_with_camera_urdf.launch激光雷达添加激光雷达添加准备工作准备工作切换目录到urdfcd./catkin_ws/src/mbot_description/launchsudogeditdisplay_mbot_with_laser_urdf.launch切换目录到launchsudogeditmbot_with_laser.urdf打开模型文件cd./catkin_ws/src/mbot_description/urdf打开launch文件launch文件修改内容<paramname="robot_description"textfile="$(findmbot_description)/urdf/mbot_with_laser.urdf"/>mbot_with_laser.urdf文件编写mbot_with_laser.urdf文件编写<!--主体内容和mbot_with_camera.urdf文件一样可以直接复制代码,摄像头部分不需要复制--><linkname="laser_link"><visual>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 挤塑板供应商合同
- 高质量阀门招标需求说明
- 大理石采购合同的范本
- 牲畜选购合同法律依据
- 玉米购销合同模板
- 创意保证书格式设计
- 个人三方借款协议欠条样式
- 工行消费贷款合同
- 电瓶车安全驾驶自律声明
- 负债还款协议文本
- 盘扣式外架施工方案及流程
- 混合机大数据分析与预测性维护
- 东营港加油、LNG加气站工程环评报告表
- 数字化影视制作流程策划书
- 《物联网单片机应用与开发》课程标准(含课程思政)
- 电源适配器方案
- 人民银行征信报告样板
- 全国民用建筑工程设计技术措施节能专篇-暖通空调动力
- 中国急诊重症肺炎临床实践专家共识课件
- 辽宁省2023年高中学业水平合格性考试语文试卷真题(答案详解)
- 投资管理的项目投资和项目管理
评论
0/150
提交评论