本笔记记录了使用Universal Robot(优傲机器人)过程中的心得体会与技巧分享,旨在帮助用户更好地理解和操作该款协作型机器人。
### 优傲机器人使用笔记
#### 坐标系与姿态表示方法
在操作优傲机器人时,了解不同的坐标系及其相互关系至关重要。这些坐标系帮助我们精确地控制机器人的位置和姿态。
1. **基座坐标系**(Base Coordinate System):
- 定义:竖直向上方向作为正z轴,电源线所在的方向定义为正y轴。
- 功能:用于定义机器人的基础参考坐标系。所有的运动和位置计算都基于此坐标系进行。
2. **TCP坐标系**(Tool Center Point Coordinate System):
- 定义:TCP是指工具中心点,其z轴沿工具中心方向向外延伸,电缆所在的平面定义为负y轴。
- 功能:TCP是机器人末端执行器的位置参考点。通过精确控制此位置和姿态来实现对工件的准确操作。
3. **法兰盘坐标系**(Flange Coordinate System):
- 定义:安装在手腕上的固定参考坐标系,用于连接机器人手腕与工具。
- 功能:虽然文档中提到该坐标系“不存在”,但实际上它是存在的,并且是连接机器人手腕和工具之间的过渡坐标系。
#### 姿态表示方法
优傲机器人的六维度姿态通常采用以下形式:
- `p[x y z rx ry rz]`:前三个分量(x、y、z)代表平移;后三个分量(rx、ry、rz)代表Rodrigues旋转。
- 使用Rodrigues公式可以将这三个旋转分量转换为一个便于进行数学运算的旋转矩阵。
#### 机器人运动指令
优傲机器人支持多种运动指令,这些指令通过URScript脚本语言发送给机器人执行。
1. **movej指令**:
- 描述:关节空间运动指令。用于控制各关节独立移动至目标位置。
- 示例:`movej([2.5, -2.0, -1.3, 0.56, 1.39, 0.0], a=1.0, v=0.08, r=0.01)`。
- 参数说明:
- `a`:加速度。
- `v`:速度。
- `r`:融合半径。
2. **movel指令**:
- 描述:线性空间运动指令。使机器人末端执行器沿直线路径移动到目标位置。
- 示例:`movel(p[x y z rx ry rz], a=1.0, v=0.08, r=0.01)`。
- 参数说明:
- `p`:目标位置的姿态向量。
3. **movep指令**:
- 描述:路径规划指令。通常用于执行复杂的运动轨迹,例如先沿直线再转圆弧等。
- 示例:`movep(p[x y z rx ry rz], a=1.0, v=0.08, r=0.01)`。
4. **融合半径(r)参数**:
- 描述:定义了两个连续路径段之间平滑过渡的程度,值越大则过渡越平缓。
5. **伺服模式**:
- 描述:允许用户实时控制机器人运动。适用于需要高精度和灵活性的应用场景。
- 特点:可以使用DH参数表示机械臂末端中心点(TCP),便于进行复杂的运动规划。
#### Denavit-Hartenberg (DH) 参数
DH参数是一种描述机器人连杆几何特性和运动学特性的重要方式。
1. **UR5的DH参数**:
- `a`:连杆长度。
- `d`:连杆偏置。
- `α`:扭转角。
- 示例:对于UR5系列机械臂,其DH参数如下所示:
```
a = [0, -0.42500, -0.39225, 0, 0, 0]
d = [0.089159, 0, 0, 0.10915, 0.09465, 0.0823]
α = [1.570796327, 0, 0, 1.570796327, -1.570796327, 0]
```
2. **UR10的DH参数**:
- `a`:连杆长度。
- `d`:连杆偏置。
- `α`:扭转角。
- 示例:对于UR10系列机械臂,其DH参数如下所示:
```
a = [0, -