TrajOpt
TrajOpt (Sequential Convex Trajectory Optimization)进阶用序列凸优化求局部最优、无碰撞机器人轨迹的运动规划方法和开源库。
TrajOpt 由 UC Berkeley 的 John Schulman、Pieter Abbeel 等在 RSS 2013 提出,2014 年扩展版发表于 IJRR。它把运动规划写成轨迹优化:决策变量是一串关节路点,目标是路径短而平滑,约束是关节限位和不碰撞。碰撞约束是非凸的,TrajOpt 用序列凸优化处理:每轮在当前轨迹附近把代价和约束线性化成凸的二次规划,在信赖域里求解,反复迭代。碰撞用有符号距离(穿透时为负)加铰链惩罚表示,惩罚不够就在外层循环加大系数;它还把相邻两个时刻机器人形状的凸包拿来检查,保证连续时间内也不会「穿过」薄障碍。论文中它比 OMPL 的采样式规划器和 CHOMP 更快、解出的问题更多。缺点是只保证局部最优,初始轨迹太差时可能失败。现在 ROS-Industrial 旗下的 Tesseract 项目维护着它的 C++ 版本。
例子让 7 轴机械臂把手伸进书架隔层取物:先给一条关节空间直线插值的初始轨迹(会穿过隔板),TrajOpt 迭代把碰撞的路点推离隔板,同时保持轨迹平滑。
- 也叫
- 序列凸优化轨迹规划、trajopt_ros、Tesseract TrajOpt
- 相关
- 轨迹优化、序列二次规划、CHOMP、STOMP、碰撞检查、OMPL
- 来源
- Schulman et al.: Finding Locally Optimal, Collision-Free Trajectories with Sequential Convex Optimization (RSS 2013)
TrajOpt documentation (UC Berkeley RLL)
tesseract-robotics/trajopt (GitHub)