友情提示:380元/半年,儿童学编程,就上码丁实验室。
本文转载自古月居,原作者古月,原文链接:https://www.guyuehome.com/2697。
大家好,这里是《ROS机械臂开发:从入门到实战》的第三讲——如何从零创建一个机器人模型,我是主讲人胡春旭。
本讲我们将从以下三个部分进行讲解。
首先给大家介绍ROS中URDF建模的原理。
在建模之前,我们需要了解机器人的组成结构,从控制角度来讲,机器人由控制系统、驱动系统、执行机构和传感系统组成。
我们可以把机器人想象成人,那么这四个部分就对应于人的大脑、肌肉、手脚和感官,可以组成一个闭环系统,机器人建模其实就是针对这四个部分进行的。
URDF是一种标准机器人描述文件格式,使用XML文件描述机器人连杆(link)和关节(joint)之间的关系,而且URDF还可以用来描述除机器人以外的模型,比如下图中的桌子。
link描述机器人某个刚体部分的外观和物理属性,主要包含外观形态、碰撞属性和惯性矩阵三个部分。
joint描述两个link之间的相对运动关系,一共有6种运动类型,我们常用的是旋转和滑动这两种。
多个link和joint都需要包含在robot顶层标签中,其中会涉及大量参数的配置和重复模块的使用,这就需要URDF提供一种更加友好的建模方式。
xcaro文件就是URDF模型解析的进化版本,加入了很多程序化的建模方式。
比如常量的定义,类似于C程序中的宏定义,可以预先定义好建模过程中需要使用的参数,便于修改。
我们还可以在URDF中进行数学运算。
还有宏定义的功能,将重复使用的模块单独提取出来,可多次复用,就像C程序中的函数一样。
在第二个部分,我们会以一个简单的六轴机器人为例,介绍如何手写一个URDF机械臂模型出来。
在模型当中,需要包含以下几个部分,重点还是在link和joint的配置上。
模型创建成功后,就需要在rviz中显示出来,检查是否和我们预想的形态一致。
以下就是我们创建成功的六轴机器人模型,还可以通过tf工具清晰的看到各关节的坐标系动态变化。
以上主要是让大家熟悉URDF模型语法,在真实场景中,我们使用的机器人模型一般都是比价复杂的。
这里我们以UR3为例,介绍如何将Solidworks当中的机器人模型转换成URDF格式,需要用到一个小插件——sw_urdf_exporter。
带入模型之后先使用插件对link和joint做一些配置。
确认配置后,就可以导出URDF模型的功能包了。
将功能包放到ROS环境中,会发现自动导出插件的一些小bugs,简单修复后,就可以看到机器人模型啦。
以上就是本讲的内容概要,详细配置过程和操作视频请见具体课程视频。
更多精彩,欢迎大家关注“古月居”。
更多内容欢迎关注:
微信公众号:古月居 (guyue_home)
新浪微博:古月春旭
知乎专栏:古月居