MoveIt
Introduction to MoveIt
MoveIt is an integrated development platform in ROS, consisting of a variety of function packages for manipulating robotic arms, including: motion planning, manipulation, control, inverse kinematics, 3D perception, and collision detection.
The figure below shows the high-level structure of the main node move_group provided by Moveit. It is like a combiner: it integrates all individual components together and provides a series of actions and services for users to use.
User Interface
Users can access the operations and services provided by move_group in three ways:
- In C++: Use the move_group_interface package to facilitate the practical use of move_group.
In Python: Use the moveit_commander package.
Via GUI: Use Rviz (ROS Visualizer) from Motion-commander.
move_group can be configured using the ROS parameter server, from which it can also get the robot's URDF and SRDF.
Configuration
move_group is a ROS node. It uses the ROS parameter server to get three kinds of information:
URDF - move_group looks up the robot_description parameter on the ROS parameter server to get the robot's URDF.
SRDF - move_group looks up the robot_description_semantic parameter on the ROS parameter server to get the robot's SRDF. The SRDF is usually created by the user using the MoveIt Setup Assistant.
MoveIt Configuration - move_group will look up additional configuration specific to MoveIt on the ROS parameter server, including joint limits, kinematics, motion planning, perception, and other information. Configuration files for these components are automatically generated by the MoveIt setup assistant and stored in the configuration directory of the corresponding MoveIt configuration package for the robot.
How to use MoveIt
mycobot_ros
now has MoveIt integrated.
Open the command line and run:
- mycobot 280-JetsonNano version:
roslaunch mycobot_280jn_moveit mycobot_moveit.launch
The running effect is as follows:
You can plan and execute, demonstration effect:
If you need to let the real robot arm execute the plan synchronously, you need to open another command line and run:
- mycobot 280-JetsonNano version:
# mycobot The default serial port name of 280-JetsonNano version is "/dev/ttyTHS1" and the baud rate is 1000000.
rosrun mycobot_280jn_moveit sync_plan.py _port:=/dev/ttyTHS1 _baud:=1000000