从零开始一个机械臂

从零开始一个机械臂
chonqin从零开始一个机械臂
学习路线规划
linux基础、ROS基础、ROS通信
机械臂仿真:
- urdf文件
- gazebo仿真的搭建
- xacro插件
ros_control基础控制
机械臂运动学解算
moveit框架
上下层整合通信
机械臂仿真
urdf、xacro、gazebo是什么
Urdf:
- 本质上是一个 XML 格式文件,用来描述描述机器人模型的结构信息
- 包括机械臂的连杆(link)、关节(joint)、轮子、各种机器人结构
Xacro:
- 他是一个插件,能自动生成对应的urdf文件
- 通过定义一些宏、变量来减少编写urdf源文件的工作内容
gazebo:
- 他是一个URDF模型运动的仿真平台
- 能根据URDF文件的信息记载机器人模型、计算物理碰撞、运行传感器、操控机器人运动
注意:
URDF 不能单独使用,需要结合 Rviz 或 Gazebo。它只是一个文件,需要在 Rviz 或 Gazebo 中渲染成图形化的机器人模型,才可以使用。
URDF详细解读
robot
urdf 中为了保证 xml 语法的完整性,使用了robot标签作为根标签,所有的 link 和 joint 以及其他标签都必须包含在 robot 标签内,在该标签内可以通过 name 属性设置机器人模型的名称
name: 指定机器人模型的名称
其他标签都是子级标签
link
urdf 中的 link 标签用于描述机器人某个部件(也即刚体部分)的外观和物理属性,比如: 机器人底座、轮子、激光雷达、摄像头…每一个部件都对应一个 link, 在 link 标签内,可以设计该部件的形状、尺寸、颜色、惯性矩阵、碰撞参数等一系列属性。
- 属性:name
- 子标签:
visual用于描述外观,可选的标签如下
- 标签1: box(盒状)
- 属性:size=长(x) 宽(y) 高(z)
- 标签2: cylinder(圆柱)
- 属性:radius=半径 length=高度
- 标签3: sphere(球体)
- 属性:radius=半径
- 标签4: mesh(为连杆添加皮肤)
- 属性: filename=资源路径(格式:package://
/ )/文件
- 属性: filename=资源路径(格式:package://
- 标签1: box(盒状)
origin 设置偏移量与倾斜弧度
- 属性1: xyz=x偏移 y便宜 z偏移
- 属性2: rpy=x翻滚 y俯仰 z偏航 (单位是弧度)
metrial 设置材料属性(颜色)
- 属性: name
- 标签: color
- 属性: rgba=红绿蓝权重值与透明度 (每个权重值以及透明度取值[0,1])
collision —> 连杆的碰撞属性
Inertial —> 连杆的惯性矩阵
1 | <link name="base_link"> |
joint
urdf 中的 joint 标签用于描述机器人关节的运动学和动力学属性,还可以指定关节运动的安全极限。
1.属性
- name —> 为关节命名
- type —> 关节运动形式
- continuous: 旋转关节,可以绕单轴无限旋转
- revolute: 旋转关节,类似于 continues,但是有旋转角度限制
- prismatic: 滑动关节,沿某一轴线移动的关节,有位置极限
- planer: 平面关节,允许在平面正交方向上平移或旋转
- floating: 浮动关节,允许进行平移、旋转运动
- fixed: 固定关节,不允许运动的特殊关节
2.子标签
parent(必需的)
parent link的名字是一个强制的属性:
- link:父级连杆的名字,是这个link在机器人结构树中的名字。
child(必需的)
child link的名字是一个强制的属性:
- link:子级连杆的名字,是这个link在机器人结构树中的名字。
origin
- 属性: xyz=各轴线上的偏移量 rpy=各轴线上的偏移弧度。
axis
- 属性: xyz用于设置围绕哪个关节轴运动。
1 | <!-- |
