TrajOpt
AdvancedA motion-planning method and open-source library that finds locally optimal, collision-free robot trajectories via sequential convex optimization.
TrajOpt was proposed by John Schulman, Pieter Abbeel, and colleagues at UC Berkeley at RSS 2013, with an extended version published in IJRR in 2014. It formulates motion planning as trajectory optimization: the decision variables are a sequence of joint waypoints, the objective favors a short, smooth path, and the constraints are joint limits and collision avoidance. The collision constraint is non-convex, so TrajOpt uses sequential convex optimization: each round it linearizes the cost and constraints near the current trajectory into a convex quadratic program, solves it within a trust region, and iterates. Collisions are represented using signed distance (negative when penetrating) plus a hinge penalty, with the penalty coefficient increased in an outer loop if it isn't enough; it also checks the convex hull of the robot's shape between two adjacent timesteps, guaranteeing it never ‘passes through’ a thin obstacle even in continuous time. The paper reports it solving more problems, faster, than OMPL's sampling-based planners and CHOMP. Its drawback is that it only guarantees a local optimum and can fail when the initial trajectory is too poor. The ROS-Industrial project Tesseract now maintains its C++ implementation.
ExampleTo make a 7-axis arm reach into a bookshelf compartment to grab an item, you give it an initial joint-space linear-interpolation trajectory that passes straight through the shelf; TrajOpt then iteratively pushes the colliding waypoints away from the shelf while keeping the trajectory smooth.
- Also called
- Sequential Convex Trajectory Optimization, trajopt_ros, Tesseract TrajOpt
- Related
- Trajectory Optimization · Sequential Quadratic Programming · Covariant Hamiltonian Optimization for Motion Planning · STOMP · Collision Checking · Open Motion Planning Library (OMPL)
- Sources
- Schulman et al.: Finding Locally Optimal, Collision-Free Trajectories with Sequential Convex Optimization (RSS 2013)
TrajOpt documentation (UC Berkeley RLL)
tesseract-robotics/trajopt (GitHub)