0. 手臂轨迹规划(Manipulator Trajectory Planning)引言

(1) 轨迹:

机械手臂(的末端点或者操作点)的位置、速度、加速度对时间的历程;

可进一步定义成{T}相对{G}的状态历程(和手臂种类无关,{G}也可随时间变动,比如传送带)。

(2)理想轨迹:

理想轨迹,必须是Smooth Path(i.e.,continuous with continuous first derivative)。 Smooth Path不仅要求位置上连续,而且要求速度上也必须连续,若速度上不连续,速度曲线会有很多转折点,在转折点上,其加速度有可能突破限制(力学限制),连续速度曲线加速度变化不大,若速度变化不连续,在那一瞬间,执行器需要提供巨大扭力符合加速度要求,不符合真实的情况。

  • via point,在轨迹规划过程中,往往还需要到达特定的中间位置,该位置叫做via point;
  • initial point , 初始位置、姿态;
  • final point,目标位置、姿态;

轨迹规划,常常在两个不同空间下进行处理,第一个是Joint Space,即将规划细化到每一个Joint上进行;另外一个是Cartesian Space上的轨迹规划,即当前知道手臂位置,直接在手臂末端点空间姿态上进行规划。

2. Joint Space下的轨迹规划

(1)步骤

  • 定义{T} 相对于{G}的initial point, via, final point, [公式] (包含移动和转动自由度)。
    • i = 1: initial
    • i = 2~N-1: via points
    • i = N+1: final
    • 注意,规划只有6个自由度,但是Trans Matrics有16个参数,故将其以6个参数方式来表达:
上面是移动,下面是转动
旋转矩阵里,9个数字有3个自由度,即6个限制条件,若各自规划9个数字,没有加以限制,有可能形成的矩阵很大几率不符合Rotation Matrix的形式,无法满足6个限制条件。所以我们直接以3个自由度形式进行规划。
  • 做Inverse Kinematics: 将手臂末端点状态转换到joint状态: [公式]
  • 所有joints规划smooth trajectories
  • 做Forward Kinematics:将joint状态转换到手臂末端点状态,检查末端点在Cartesian Space下轨迹的可行性

(2)示例

  • joint space [公式]
  • Cartesian space [公式]

经历了上述步骤,最后一步,进行Trajectory Checking... ,看看手臂在运动时,有没有碰倒障碍物,或者有没有满足其他的一些条件... ...

3. Cartesian-Space下的轨迹规划

(1)步骤

  • 定义{T} 相对于{G}的initial point, via, final point, [公式] (包含移动和转动自由度)。
    • i = 1: initial
    • i = 2~N-1: via points
    • i = N+1: final
    • 注意,规划只有6个自由度,但是Trans Matrics有16个参数,故将其以6个参数方式来表达:
  • 在上述需求下,直接对所有手臂末端点规划smooth trajectories。
  • 做Inverse Kinematics: 将规划好手臂末端点状态的轨迹点转换到joint状态 [公式]
  • 检查joint状态在Joint-Space下轨迹的可行性(有没有达到执行器的极限位置...blabla)
  • COMMENTS
    • Cartersian 方法用的比较多,因为其可以规划更具物理直观意义的轨迹。
    • 缺点: 较高的运算负载(IK),规划完了做IK。
      • 比如已知init point,2个via points,1个final point,Joint Space的方法,只须做4次IK。
      • 若4s空间,先在Cartesian下做规划,在做IK,运算量就大很多,比如规划出1000个路径,做IK,就需要算4000次。
    • 对Real Time下,电脑的计算能力考验比较大。

(2) 示例

经历了上述步骤,最后一步,进行Trajectory Checking... ,检测各个Joint运动有没有超出限制... ...