
5-1 机械手臂轨迹规划引言机械手臂轨迹规划在机械臂任务操作过程当中不可或缺抓取物体拿到指定位置这个过程除了IK就还包括机械臂的轨迹规划。这里给出轨迹的定义轨迹机械手臂的末端点或操作点的位置、速度、加速度对时间的历程可以进一步地定义成{T}相对{G}的状态历程这个状态历程和手臂类型无关{G}也可随时间变动物体随着传送带动。下面这张PPT更加形象的描述了轨迹的定义当机械臂夹爪夹住杯子挂到墙上的这一运动历程就是一条轨迹物件取放任务中手臂末端点或物件的运动历程即是轨迹规划所进行的内容。理想轨迹是一条平滑的路径即轨迹是连续的其轨迹的一阶导数也是连续的同时在一条轨迹当中会有起始点和终点起始点和终点之间存在一个或多个途径点。5-2 Joint Space下的轨迹规划这里我们重申一下Joint Space(关节空间)和Cartesian Space(笛卡尔空间)Joint Space描述的是整个机械臂每一个关节分别处于什么角度所有关节角度变量组成的空间就是Joint SpaceCartesian Space又叫工作空间它描述的是机械臂末端执行器在三维空间中的位置和姿态。在Joint Space下的轨迹规划整体流程描述如下第一在Cartesian Space定义机械臂末端需要经过的关键点起始点、途径点和终止点用数学描述就是末端点坐标系{T}相对于目标点坐标系{G}起始点途径点和终止点并且不再是用旋转矩阵的方式进行描述而是通过六个参数的方式来表达GXT[GPTorgROT(GKT,θ)][xyzϕθψ]; {}^{G}X_{T} \begin{bmatrix} {}^{G}P_{Torg}\\ ROT({}^{G}K_T,\theta) \end{bmatrix} \begin{bmatrix} x\\ y\\ z\\ \phi\\ \theta\\ \psi \end{bmatrix};GXT[GPTorgROT(GKT,θ)]xyzϕθψ;第二将每个末端点状态(起始点、途径点和终止点)转换到机械臂的关节状态(角度)这一过程就是IK举个例子假设有一个六关节的机械臂系统其中一个末端点状态为GXT[0.50.20.490∘0] {}^{G}X_{T} \begin{bmatrix} 0.5\\ 0.2\\ 0.4\\ 90^\circ\\ 0 \end{bmatrix}GXT0.50.20.490∘0这需要用IK算法解算机械臂系统的每一个关节应该是多少角度假设计算为q[20∘35∘−10∘50∘30∘20∘]; q \begin{bmatrix} 20^\circ\\ 35^\circ\\ -10^\circ\\ 50^\circ\\ 30^\circ\\ 20^\circ \end{bmatrix};q20∘35∘−10∘50∘30∘20∘;第三由步骤二一个途径点就会对应一个关节状态向量此步骤需要将所有途径点对应的关节状态向量中的每一个关节做平滑轨迹处理。假设所有途径点对应的关节状态向量为q1,q2,q3,⋯ ,qN1q_1,q_2,q_3,\cdots,q_{N1}q1,q2,q3,⋯,qN1对于第一个关节假设其途径点的角度为0—20—40—…—10(终止点)需要根据这些角度规划一条平滑轨迹对所有关节都是如此第四将关节状态转换到手臂末端点状态这一步正是FK步骤三中知道了所有所有途径点对应的关节状态向量通过关节状态向量转换到末端点的状态检查末端点在笛卡尔空间下轨迹的可行性可能会有障碍物。下面有一个六自由度机械臂六个关节只有三个途径点的例子进行说明上述步骤首先将每个末端点状态(起始点、途径点和终止点)转换到机械臂的关节状态(角度)这在下方PPT中体现为IK变换其次将途径点当中的所有关节状态规划出一条平滑轨迹这体现为Trajectory planning然后将关节状态转换到手臂末端点状态下方PPT中体现为FK变换最后检查末端点形成的轨迹是否会有障碍物。