Trajectory Generation——机器人运动轨迹生成 learn & mark:

一般来说控制机器人(or Motor)运动一个轨迹需要经过这些步骤:

  • 操作空间轨迹规划(直线和圆弧就比较简单了,如果是未知的轨迹例如壁障,可通过概率路标-sample based,快速扩展随机树-RRT,tree based等算法生成的壁障轨迹 (google OMPL)。想学习 A* 算法,点这里。
  • 以时间(或者距离,误差精度and其他)为参数,获得轨迹上的MultiPoints,或者生成pvt数据,再通过机器人逆运动学和雅克比求得关节空间的位置和速度—关节空间pvt数据。
  • 重要的一步,generate reference inputs to motion control system:如果是PTP运动,则在关节空间通过梯形或者 double S 规划获得需要运动的轮廓轨迹;如果是连续轨迹运动,则通过多个点的样条插值,生成光滑的轨迹(cubic spline—加速度连续)。通常来说生成光滑的轨迹一般会结合拟合和插值两种算法(因为通过CAM软件或者其他软件生成的轨迹一般不会直接用来输出,需要通过拟合或者插值算法来使得轨迹的速度和加速度满足约束,否则会对机器造成很大的震动等。)。
  • 再通过 pid 或者 piv 算法跟踪生成的轮廓轨迹,加个速度前馈(即驱动器上的速度偏置)能有更好的动态响应。

在工业应用上,一般走个直线或者圆弧就基本上能处理大多数的轨迹了,涉及到未知空间的轨迹规划还是应用比较少,所以操作空间一般来说轨迹比较简单,就不介绍了。

这里主要简单介绍一下不同轨迹生成的算法区别:

PTP

梯形 ( 即 Linear Segments with Parabolic Blends —LSPB ):
Trajectory Generation——机器人运动轨迹生成 learn & mark:_第1张图片
优点:就是简单粗暴,能够很方便计算出速度、加速度是否超限。
缺点:加速度不连续

Double S:
Trajectory Generation——机器人运动轨迹生成 learn & mark:_第2张图片
优点:优点多多滴
缺点:计算复杂,存在无解的情况。

MultiPoint

起点和终点速度不定(v0=0.1, v1=0.2),为了速度和加速度不超限,需要调整同步时间。

速度连续的:
Trajectory Generation——机器人运动轨迹生成 learn & mark:_第3张图片

加速度连续的 (端点处都为0):
Trajectory Generation——机器人运动轨迹生成 learn & mark:_第4张图片

方法 see link: Jerk-bounded manipulator trajectory planning

Want more? This will give you an ans:
1. http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html
2. https://www.redblobgames.com/pathfinding/a-star/introduction.html (超级形象的 A* 算法 step by step)
3. 一份ppt

你可能感兴趣的:(Robotics,机器人)