MoveIt!
- MoveIt! is a very popular Motion Planning Framework.
- It is a set of packages and tools used for Robotic Manipulation in ROS.
- MoveIt! contains software for manipulation, motion planning, kinematics, collision checking etc.
- It also has a RViz plugin which can be used to perform Motion Planning from RViz itself.
- There are also plenty of Python APIs for Moveit! and ROS which can be used to write ROS Nodes that control Robotic Manipulators.
- In this section we are going to learn how to use MoveIt! with ROS and Gazebo.
MoveIt! Architecture

NOTE: The moveit_commander for python is under development for ROS 2, we will be using other alternatives.
move_group Node
- This node is the most essential part of MoveIt! which connects all the part of the MoveIt! system together.
- This node collects information from the Robot and passes it to various open source plugins available in MoveIt! which are responsible for Motion Planning, IK etc.
- This node then passes the instructions from these plugins to the Robot controller which makes the robot move.
- Python MoveIt! APIs are used to command the
move_groupnode to perform actions such as pick/place, IK, FK, among others. move_groupuses the Planning Scene Monitor to maintain a planning scene, which is a representation of the world and the current state of the robot.