URDF建模

智能机器人实验室—杭州电子科技大学

URDF建模

  • 一、URDF建模方法
  • 二、从零写一个移动机器人URDF模型
  • 三、从零写一个机械臂URDF模型

一、URDF建模方法

URDF(Unified Robot Description Format),统一机器人描述格式,包含link和joint以及相关属性描述文件。
Link:
描述机器人某个刚体部位的外观及物理属性;
描述连杆尺寸(size)、颜色(color)、形状(shape)、惯性矩阵(inertial matrix),碰撞检测(collision properties)等;
每个link需要包含三个参数:visual;collision;inertial matrix;其中visual是必须的,其他两个可以有,也可以没有.
每个link都会成为一个坐标系.
URDF建模_第1张图片
(1)visual:
geometry(几何形状):描述刚体的形状;
origin(坐标变换):包含xyz(平移变换,米)和rpy(旋转偏移,弧度);
(2)collision:
geometry(几何形状):描述刚体的碰撞外观,简化为简单的几何形状;
origin(坐标变换):包含xyz(平移变换)和rpy(旋转偏移,弧度);
joint:
描述两个link之间的关系,分为六种类型;
包含关节运动的位置和速度限制;
URDF建模_第2张图片
URDF建模_第3张图片
parent link是前一个link,child link是另一个link;
origin链接这两个link,表示后一个与前一个相对位置,即坐标系的偏移;
axis是绕xyz轴旋转,0表示不转,1表示旋转;
limit:限位,单位为弧度.

二、从零写一个移动机器人URDF模型

(1)创建ros包以及文件夹:
URDF建模_第4张图片
ros包添加urdf以及xacro依赖,ros包下面添加上述四个文件夹;
(2)编写模型数据
在urdf文件夹下面创建一个mbot.urdf文件,先编写一个底盘数据,如下图所示;
URDF建模_第5张图片
其中坐标系为原点处,圆柱体高为0.16米,半径为0.2米,外观为黄色;
(3)编写launch文件
URDF建模_第6张图片
param做一个描述,描述名保存在rosmaster里面,后面是模型的路径;
joint_state_publisher是一个功能插件,可以修改模型参数,不断广播关节状态的值;
robot_state_publisher,通过订阅joint_state_publisher进行tf坐标更新;
(4)运行实现
URDF建模_第7张图片
左上角的topic为base_link,可以修改urdf的参数对模型进行不同的变化。
(5)添加关节
URDF建模_第8张图片
添加一个左轮的link以及左轮与底盘的joint,格式如上所示;
注意上图rpy中的r,转换为角度就是90度,也就是说左轮竖直放置;
origin描述轮子与底盘的相对位置变化,在y轴(绿色)有0.19的平移,在z轴(蓝色)有0.05的平移;
axis表示绕y轴进行旋转;
如下图所示:
URDF建模_第9张图片
添加两个前后支撑轮:
URDF建模_第10张图片
如下所示:
URDF建模_第11张图片
添加激光雷达:
URDF建模_第12张图片
URDF建模_第13张图片
添加Kinect:
URDF建模_第14张图片
此处调用了Kinect模型文件。
URDF建模_第15张图片

三、从零写一个机械臂URDF模型

前述步骤和上面一样,从数据建模开始:
编写数据
URDF建模_第16张图片
创建launch文件
URDF建模_第17张图片
运行实现
URDF建模_第18张图片
左上角修改topic,base_link,然后add里面添加robotmodel
URDF建模_第19张图片
机械臂底座
添加第一个link
URDF建模_第20张图片
同理,再创建其他五个连杆,同样的结构;
运行效果如下图:
URDF建模_第21张图片
添加夹爪
URDF建模_第22张图片
添加一个非实际意义刚体,只用来产生一个坐标系,便于定位物体抓取点;
URDF建模_第23张图片
运行效果:
URDF建模_第24张图片
本文主要根据胡春旭教学视频进行设计实现。

你可能感兴趣的:(ros)