Background
Industrial robotics applications, such as paint application and sanding, require the robot to perform a sequence of interdependent motions to successfully complete the process. The robot arm approaches the work area, moves its tool in a line along the surface, while performing the process, transitions to the start of the next line, and repeats this cycle, until the surface has been fully covered, before finally returning to its starting position. Since the positions of the robot at the start and end of each process strip determines how the robot needs to move to transition between strips, these steps must be solved in a specific order to achieve continuous smooth motion. These motions must be calculated quickly and efficiently because the time spent planning each motion factors into the cycle time for the process. The goal of this project was to create high-level planning tools that allow these types of processes to be designed quickly and solved efficiently.
![Intelligent Process Orchestration Figure 1 Example sequence of interdependent trajectories for a robotic surface processing operation.](https://www.swri.org/sites/default/files/styles/story/public/106070-fig1-example-sequence-interdependent-trajectories-robotic-surface.jpg?itok=OMO6oUjl)
Approach
This research leveraged two open-source C++ libraries, BehaviorTreeCpp and Taskflow, to create new software for managing sequential motion planning problems. Algorithms and infrastructure from the SwRI-developed Tesseract motion planning library formed the basis for this work.
Accomplishments
New modular motion planning libraries were created to implement a graph-based representation of interdependent process motion segments, which enables a sequential planning strategy to efficiently solve planning problems. For example, a robot can attempt to solve a trajectory, using a low-cost naïve strategy before committing to a rigorous but computationally expensive method.
![Intelligent Process Orchestration Figure 2 Simulated motion plan for a surface processing operation using an industrial robotic work cell.](https://www.swri.org/sites/default/files/styles/story/public/106070-fig2-simulated-motion-plan-surface-processing-operation-industrial-robotic-work-cell.jpg?itok=yuGVwKmb)
Another result was the development of a new unified high-level C++ architecture for designing industrial robot motion sequences, called the Tesseract Command Language, which simplifies the creation and modification of robotic process trajectories.
Evaluation of the new planning libraries showed that they reduced developer workload and planning processing time compared to previous solutions. The Tesseract planning library was upgraded to support the new capabilities developed during this research.