它可以以多少种方式移动?
自由度:运动的几何
一个 自由度(DOF) 是一个独立的运动方式。理解自由度是理解机器人如何与空间相互作用的第一步。
在3D空间中的位置 需要3个自由度:x(左右),y(前后),z(上下)。一个空间点有3个自由度。
方向 添加了3个:滚动(关于前进轴的旋转)、俯卧(关于侧轴的旋转)、俯卧(关于垂直轴的旋转)。一个刚性体在空间中有 6个自由度 :3个位置+3个方向。
机器人手臂&自由度:
- 一个 6轴articulated手臂 (如工业机器人)有6个关节,每个关节添加1个自由度。有6个自由度,末端手柄可以在工作空间中达到任何位置和方向:它有完全的空间自由度。
- 一个 4轴SCARA 机器人有4个自由度:它可以在平面上任何位置定位并旋转,但无法倾斜工具。适合在平面上进行取放置操作。
- 一个 3轴Cartesian/gantry 机器人有3个自由度:它可以在一个盒状空间中的任何位置定位,但无法调整工具。适合3D打印。
多于6个自由度:一个7轴机器人是 冗余的 :它比完全空间定位所需的自由度多。额外的自由度让它能够绕障碍物达到,就像人类的手臂能够绕过东西达到。冗余是几何上的优势。
自由度与任务要求
一个工厂需要为三个不同任务提供机器人:(A)沿着汽车车身曲线上喷胶,(B)从输送带上拾取芯片并将其放置在平坦的电路板上,(C)从多个角度对3D复杂连接进行焊接。
机器人的两种运动学方向
运动学:动态几何
运动学是不考虑力情况下的运动学。在机器人学中,它是纯粹的几何:关节角度与末端效ector位置之间的关系。
正向运动学(FK): 给定所有关节角度→计算末端效ector的位置与朝向。这是‘容易’的方向。
对于一个2连杆平面臂:如果关节1位于角度θ₁,关节2位于角度θ₂,链长度分别为L₁和L₂,末端效ector位于:
- x = L₁ cos(θ₁) + L₂ cos(θ₁ + θ₂)
- y = L₁ sin(θ₁) + L₂ sin(θ₁ + θ₂)
对于6轴臂,FK使用一个链条的同胚变换矩阵:每个关节都贡献一个4×4矩阵,编码旋转和平移。将这六个矩阵相乘,得到末端效ector的姿态。它是机械的,但总是产生一个唯一的答案。
逆向运动学(IK): 给定一个期望的末端效ector位置与朝向→计算关节角度,实现它。这是‘困难’的方向。
IK很难,因为:
- 多个解决方案:一个6轴臂可以以多种配置达到同一位置(肘部向上 vs. 肘部向下,手腕翻转 vs. 不翻转)。可能有8个或更多的有效解决方案。
- 无解决方案:如果目标位于工作空间之外,没有关节角度可以工作。
- 奇异点:在某些姿势时,两个关节轴对齐,机器人失去一个DOF:就像舵锁。靠近奇异点时,Cartesian运动需要巨大的关节速度。
逆向运动学:为什么它很难?
考虑一个简单的2连杆平面臂,L₁ = L₂ = 1米。末端效ector需要到达点(1.0,1.0)。
从基座到目标的距离为sqrt(1² + 1²) = sqrt(2) ≈ 1.414 m。由于L₁ + L₂ = 2 m > 1.414 m,点是可达的。
可达性形状
工作空间:机器人可以到达的几何体积
端效应器可以到达的所有点集称为 工作空间外形。它的形状完全取决于机器人的几何形状。
六轴articulated臂:工作空间大约是一个空心球体。最大可达范围的外部边界是所有链接都伸展的情况。内部边界存在是因为手臂无法足够地折叠回到自身以达到太近的基座点。截面看起来像一个环形(圆环)。
SCARA:工作空间是一个圆柱体。手臂水平扫描(生成一个圆形的截面)并垂直移动Z轴。结果是一个平坦的圆柱体:水平方向上的可达范围较宽,垂直方向受限。
Cartesian/Gantry:工作空间是一个矩形盒子。每个轴沿一个维度线性移动。简单、可预测、易于编程:但因为机器人必须与其工作空间相同大小,所以它是bulkier的。
工作空间中的奇异点:在某些姿态中,机器人失去一个DOF。在伸展的articulated臂(在其工作空间的外部边界)处于奇异点:它无法进一步向外移动端效应器。手腕奇异点发生在当两个手腕关节轴对齐时。处于奇异点时,雅可比矩阵的秩降低,机器人的有效DOF暂时减少。
灵活工作空间 vs. 可达工作空间:可达工作空间是端效应器至少可以以一种方式到达的点集。灵活工作空间是端效应器可以实现任意任意方向的点集。灵活工作空间总是可达工作空间的子集:通常要小得多。
根据工作空间选择机器人
一个工厂单元有三个站点按照L形排列。站点A在左侧,站点B正前方,站点C在右侧略高(300mm)。机器人需要从A站点取零件,到B站点进行操作,并将完成零件放置在C站点:所有操作都从一个单独的安装位置进行。
配置空间:机器人的抽象几何
配置空间:动力学规划的家
配置空间(C空间)是机器人领域最强大的几何抽象之一。不是在考虑机器人的物理形状,而是将其整个状态表示为一个N维空间中的单个点。
对于一个有N个关节的机器人,C空间有N个维度:一个轴每个关节角。机器人的所有可能姿态都是C空间中的一个单点。一个动作(一系列姿态)是一个通过C空间的曲线。
C空间中的障碍物:物理世界中的一个障碍物在C空间中成为一个禁止区域。如果将机器人放在关节角(θ₁,θ₂,...,θN)位置将导致碰撞,那么这个点位于C空间障碍物内部。物理世界中的简单箱子在C空间中的形状是奇怪的。
路径规划 = 寻找一个无碰撞曲线:给定一个起始配置(C空间中的一个点)和一个目标配置(另一个点),找到一个不进入任何禁止区域的连续曲线。
算法:
- A* (网格化):将 C-空间划分为网格,搜索最短路径。对于低维度(2-3 DOF)效果良好,但随着维数的增加,网格大小会以指数速度增长。
- RRT (快速探索随机树):在 C-空间中构建一颗随机样本的树,向未探索的区域生长。对于高维度(6+ DOF)效果较好。虽然不具最优性,但在寻找可行路径方面速度较快。
- PRM (概率路线图):预计算一张随机无碰撞配置的图,然后在图中搜索。对于在相同环境中进行多次查询时效果较好。
几何见解:一个 6-DOF 机器人的路径规划问题是一个在 6D 空间中穿过曲线的问题。维数的增加使得精确解决方案变得不可能:概率方法(RRT,PRM)是实际上采用的方法。
配置空间思维
一个 2-连杆平面臂(2 DOF)在一个带有单个矩形障碍物的房间中工作。第一个关节从 0° 到 360° 变化,第二个关节从 0° 到 360° 变化。配置空间是一个 2D 平方:θ₁ 在一个轴上,θ₂ 在另一个轴上。