机器人理论(5)轨迹规划 :拟合曲线让机械臂连续运动

本文介绍了机器人轨迹规划的概念,强调了连续平滑曲线的重要性。讲解了如何通过三次多项式进行曲线拟合,包括未知中间点速度情况下的求解方法,并对比了Joint space和Cartesian space下轨迹规划的优缺点。文章通过实例展示了在不同空间下的轨迹规划求解过程。
摘要由CSDN通过智能技术生成

引言

在真实需求中,当我们的机械臂已经拿到了一支笔,那怎么设定轨迹让它画一只鸭子之类的呢,或者怎么样让机械臂拿到杯子后挂在墙上呢?我们需要知道手臂状态(位置状态、速度状态)和时间的关系,从而拟合出一条连续(重点)的曲线供机械臂达到目的。这就属于“轨迹规划”内容了。

目录

轨迹规划

 Joint space、Actuator space、Cartesian space的区别

Joint space下的轨迹规划

Cartesian space下的轨迹规划

Joint 、Cartesian space下轨迹规划的优缺点

如何拟合曲线 (重点)

三次多项式(Cubic Polynomials)(基础)

未知中间点速度情况下的求解

(1)“手动”定义中间点求解

(2)电脑自动生成中间点(推荐)

相关例题

(1)Cartesian space下的求解

(2)Joint space下的求解


轨迹规划

说白了就是给你两个位置点,起始点和终点,你自己定义中间点(via point),把起始点和终点用平滑曲线连起来就行。

其实就是拟合曲线嘛.........

我理解的轨迹规划的核心目的在于得到关节的驱动数值的连续平滑曲线,也就是说主要是求解曲线的未知参数。如果没有关节的驱动,你怎么到达目标位置?

轨迹:机械手臂末端点或参做点的位置、速度、加速度对时间的历程。

轨迹规划的好处:轨迹规划后,可以使用不同形态类型的机械臂使用相同轨迹。

理想轨迹是物体运动的位置连续,速度也是连续的。我们都知道,假如速度不连续,忽大忽小,这就要求它的加速度突然变大,这会给机械臂关节造成力的负担,很大可能出现误差,因此我们的轨迹规划最好是连续的。在轨迹规划下,还分两种类型的规划:Joint space、Certesian space下的轨迹规划,在这先解释下。

  •  Joint space、Actuator space、Cartesian space的区别

由该图可以看到:

Joint space:提供了关节驱动的数值\large \Theta _{i},使得我们可以顺向计算出手臂末端的位置\large _{}^{W}\textrm{P}

Cartesian space:提供手臂P相对{W} 的向量位置,即\large _{}^{W}\textrm{P},逆向反推出达到这个位置需要的驱动数值\large \Theta _{i}

Actuator space:提供了马达的状态数值,以确保得出最终关节的驱动数值(详见(三)扩展中的复合型关节的案例)

 

[前提假设]

我们的机械臂是六个自由度的,六个关节都是转轴驱动的。也假设我们已经定义好了起始、中间、终点的位置信息和姿态信息。\large D代表了我们的手末端的位置,\large \Theta代表了手末端的姿态,这两个是我们的需求点。

  • Joint space下的轨迹规划

 

 

1)知道位置,就能通过逆向运动学(IK),反向求解出有六个自由度的机械臂它六个转轴需要的角度。

2)拟合曲线,就是轨迹规划啦,得到这些点连续平滑的函数表示(多种)。就是找函数关系(横纵轴的映射)。

3)再借由顺向运动学(FK)验证这个函数能否经过我们在(1)定义好的点,使得机械臂通过我们规定的点,达到我们想要的位置,以此测试函数是否正确。

4)检验可行性,比如这个轨迹是不是可能会撞到现实空间中的某些东西之类的。

 

  • Cartesian space下的轨迹规划

1)拟合曲线,直接做轨迹规划,找出他们的函数式。

2)逆向求解出达到这个位置需要机械臂的每个转轴转动的度数,检验求解出的角度是否超出了机械臂转动角度的最大范围等。

3)检验可行性,检测该轨迹在现实中是否会碰到障碍物。

 

  • Joint 、Cartesian space下轨迹规划的优缺点

一般都是用Cartesian space做规划,因为这个更直接地符合我们的需求,直接根据需求得到轨迹就行了啊,步骤少。然而它有一个缺点是它计算量相对于Joint space大得多,因为我们是先对手臂需要的姿态\large \Theta位置\large D拟合它的曲线(从几个点变成了无数个点),然后才去计算驱动关节需要的角度——反推出好多好多个姿态位置下与之一一对应的所有驱动角度,这十分考核机械臂的算力,尤其对于实时的机械臂。而Joint space就不同了,我们先计算姿态\large \Theta位置\large D需要的关节驱动角度数值,然后再拟合这些角度数值的曲线,拟合曲线的计算比反推无数个姿态位置对应的无数个角度要简单得多。

我前面说了,我个人理解的轨迹规划的核心求解目的是——得到关节驱动的拟合曲线。如果使用Joint space的话,在第二步就能得到这个曲线,之后的3、4步都是验证而已。那

  • 54
    点赞
  • 358
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值