PlanningAndExecution

Input

 * Joint state information (e.g., sensor_msgs::JointState messages for the robot's current configuration)
 * 3D sensor information (e.g., Kinect, laser, stereo)
 * User specified queries
 * start state can be specified if trajectory execution is specified; otherwise, the robot current state is used
 * goal representation using constraints

Output

 * Computed motion plans displayed in rviz via moveit_msgs::DisplayTrajectory
 * Computed motion plans passed to corresponding trajectory controllers as moveit_msgs::RobotTrajectory messages
 * As controllers execute the input trajectory, the current state of the robot and that of the environment is monitored.
 * If the trajectory remaining for execution appears to produce illegal behaviour in the future (e.g., collision), the execution is stopped and a recovery behaviour is triggered.
 * The default recovery behaviour is computing a new motion plan to the original goal. Execution times are usually a fraction of a second.

API
This functionality is available programmatically:
 * ROS Interface
 * MoveGroup Interface
 * Python Interface

Required Capabilities

 * Maintaining a world representation
 * Planning trajectories
 * Executing and monitoring trajectories