URDF建模

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

一、URDF建模方法

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

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

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

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

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

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值