Motion planning for robotic systems is an active area of research and has seen rapid development in the last few years. However, the available motion planning tools often are from disparate software frameworks that make integration and evaluation with the Robot Operating System (ROS) open source framework difficult. This issue restricts SwRI’s proposed solutions, limiting solution performance, and reducing the likelihood of follow on work. Our team identified a promising open source motion planner known as TrajOpt that generates robot trajectories by local optimization. The research team’s hypothesis was that if TrajOpt was incorporated into the ROS framework, it could become the new de facto planner utilized where an optimization based planner is required.
The technical approach was to first evaluate TrajOpt against identified industrial problems within the ROS Framework. The second, dependent on the first, was to integrate TrajOpt within the ROS Framework. The evaluation focused on three metrics: Success Fraction, Average Planning Time, and Average Normed Length. The evaluation involved defining a set of valid objectives for each of the identified industrial applications. Then the project team collected the performance data for each of the objectives using TrajOpt and existing ROS motion planners.
Following the evaluation, the integration process included setup of a benchmarking environment within the existing implementation (OpenRave + Bullet). This allowed for testing during the transition to ROS to ensure that the underlying performance is not hindered. Lastly OpenRave was replaced with ROS/Tesseract’s Kinematics, and Bullet was replaced with ROS/Tesseract’s Collision Libraries in the TrajOpt core libraries.
The objective was to evaluate the viability of TrajOpt when applied to Industrial applications. The motion planner TrajOpt was first evaluated against two benchmarking environments for which it outperformed the other motion planners with one exception, the 14 DOF trajectory norm. This is most likely due to TrajOpt maintaining a set distance (2.5cm) from obstacles, where the other planners do not, resulting in a longer trajectory.
TrajOpt was run against a representative industrial application. The application chosen was an 8 DOF problem, where the robot picked up a seat off of a conveyor and loaded the seat into a car. This is very challenging task, given the amount of manipulation required to pass through the doorway and set the seat without colliding with the car structure. The final trajectory found using TrajOpt with continuous collision checking enabled is shown in the Figure below. The trajectory included 50 states and took 0.482 seconds to find a valid trajectory, which is well within a reasonable planning time for this complex path.