1.2.1 规划抓取物体的路径
思考控制机械臂抓取静态球的问题(见图1.1)。假设球的位置是给定的。首先,我们必须选择一条机械臂从空间初始位置到球所在位置的路径。有无数条路径可以使机械臂到达球的位置。但需要一个标准来决定哪条路径最好。在机器人技术中,这个问题通常通过优化来解决。最简单的方法是优化笛卡儿空间中的最短路径。
假设我们只控制机器人的末端执行器,而忽略方向。机器人末端执行器的状态为x∈ℝ3。初始化时,机器人处于位置x(0)=x0∈ℝ3,并且必须移动到目标位置x*(T)∈ℝ3。如果没有约束,则从x0到x*的最短路径是一条直线。为了证明这一点,让我们假设一个函数f(x),它描述了从x0到x*的路径。在每个时间步δt,机器人以增量δx(t)移动,其优化公式如下:
其中,T为到达目标位置所需的时间。
图1.1 机器人的任务是抓取静态球(图a)。路径的数量是无限的,它们根据初始位置而变化(其中一些显示在图b中)
通过三角不等式,我们可以设置。问题的解是两点之间的线。时间T决定了机械臂的移动速度。为了使系统尽可能快地移动,同时避免超调(overshoot),可以使用临界阻尼系统方程。这种系统将沿路径的加速度确定为由比例微分(PD)控制的两个项的组合:一个是弹簧项,根据距离分段运动到目标位置;另一个是阻尼项,随着速度的增加将减缓到达目标位置的运动速度,即
用K和D作为弹簧系数和阻尼系数。K和D之间的关系可以确保准确到达目标位置,并且不会发生超调。由于机器人不能以任意快的速度移动,因此必须以这样的方式设置参数K和D,以确保路径在动态上是可行的。当机器人沿直线移动时,可以相对容易地设置参数的极限[66]。然而,有许多原因导致直线路径既不理想也不可行,例如,当机器人必须避开障碍物时,或当它必须抓住具有特定方向的物体时(例如,抓住杯子的把手)。当路径是非线性的并且机器人需要沿途加速和减速时,将更难计算最优路径。一种方法是通过一系列直线(称为样条)或一系列多项式来分解路径。现在已经有多种方法可以进行这种分解(见[89])。然而,只有当环境是静态的时候,才可以很好地进行样条分解。