MoveIt! platform
MoveIt is an open source robotics manipulation platform for developing algorithms in robotics, prototyping robotic systems designs, benchmarking algorithms and commercial applications. The platform is developed and maintained in the sope of an open source project that is the result of the combined efforts of a large international community and multiple organizations.
MoveIt runs on top of ROS and builds on the ROS messaging and build systems and utilizes some of the common tools in ROS like the ROS Visualizer (Rviz) and the ROS robot format (URDF).
The components of MoveIt provide various functionalities for robotics manipulation and integration with ROS which makes the repository of the platform quite extensive. The the MoveIt repository is a metapackage composed of many packages which makes working with MoveIt hard at the beginning. However, learning using MoveIt is made easier by a comprehensive collection of tutorials for separate MoveIt components. You can browse through the tutorials at ros-planning.github.io/moveit_tutorials/.
Robot configuration for MoveIt with MoveIt Setup Assistent
The MoveIt Setup Assistant is a graphical user interface for configuring any robot for use with MoveIt. Its primary function is generating a Semantic Robot Description Format (SRDF) file for your robot. Additionally, it generates other necessary configuration files for use with the MoveIt pipeline.
Further in this chapter, we will use the URDF of the Fanuc LR Mate 200id robot used for the urdf exercises. This execise is similar to the case in MoveIt Tutorials where the Panda robot is used.
For seting up the robot using the Setup Assistent, we need a description of the robot. We will use the urdf that we generated in the previous exercise.
Starting the Setup Assistant
To start the MoveIt Setup Assistant we will use a launch file from the moveit_setup_assistant
package which is one of the packages in the moveit
metapackage:
roslaunch moveit_setup_assistant setup_assistant.launch
A graphical user interface of the wizard shows up. We will Create New MoveIt Configuration Package.
Loading the urdf file
Open the file explorer by clicking Browse and find the urdf file we created in the previous exercise on the disc. Finish loading the files by clicking Load files.
Upon loading the files you will see the message Success! Use the navigation pane to continue. In the following we will configure the settings for planning and control.
Setting Self-Collision Checking
The wizard enables automatic generation of the collision matrix for collision checking. Click on Self-Collisions in the left panel and Generate Collision Matrix.
The next setting in the left panel is Virtual Joints. Since we have a link from base_frame
to world
already defined in our urdf, we will not add any virtual joints.
Defining Planning Groups
We will define only one planning group for the arm. Click on Planning Group in the left panel and Add Group. Enter the name of the planning group: fanuc_arm
and select the kdl_kinematic_plugin
as the Kinematic Solver. Leave all the other kinematics parameters as they are.
Next, click on Add Joints button to add the joints that belong to the defined planning group. From the list of Available joints select joint_1
, joint_2
, joint_3
, joint_4
, joint_5
, and joint_6
(click on joint_1
and then click on joint_6
while holding down the Shift
key) and add them to Selected joints (click on the button with the >
sign).
Save the settings. The fanuc_arm
planning group is now in the list of Current Groups.
Adding Robot Poses
A robot pose is a set of joint values of the planning group. Here, we will define a robot pose for the robot initial position. Click on Robot poses and Add pose button.
The joint values can be set using sliders or input field. Set the input fields for all joints to 0. Set the name of the pose to zeroes
and click Save.
Creating ROS Controllers
Click on ROS Control in the left panel and on the Auto Add FollowJointsTrajectory Controllers For Each Planning Group.
This will automatically generate the settings for the fanuc_arm_controller
which will show up in the controller list.
Upgrading the robot urdf for Gazebo compatibility
To simulate robot movement in Gazebo, transmissions and controllers for the robot joints need to be defined. MoveIt Setup Assistant can auto-generate the changes for the urdf description for Gazebo compatibility.
Click on Simulation in the right panel and then Generate URDF. The changes to the urdf code are shown in green. Copy the whole code (click Copy to Clipboard at the bottom of the window) and replace the contents of the fanuc.urdf
file with the copied code.
Finishing the setup
The input of the robot settings is completed, at the end we need to add the information about the author and generate the configuration files and save them to a desired location on the disk.
To generate and save the configuration files click on Configuration Files on the left panel and enter the path to the configuration package directory. In our case, name the package directory fanuc_moveit_config
and place it into the src
folder of the fanuc_ros
workspace. The path in the input field should look like: [path to rosinljubljana directory]/fanuc_ros/src/fanuc_moveit_config
.
To close the Setup Assistant click the Exit the Setup Assistant button.
In the terminal, move to the workspace folder (fanuc_ros
), build it (catkin_make
), and source the setup.bash
file (source devel/setup.bash
)
Running the demo with Rviz
We can now run the demo in Rviz by using the launch file that was generated by the Setup Assistant:
roslaunch fanuc_moveit_config demo.launch
The Rviz config is set to show the Motion planning display where you can plan and execute movement of the robot.
Running the demo with Rviz and Gazebo
The Setup Assistent also provides a launch file to simulate the robot in Gazebo:
roslaunch fanuc_moveit_config demo_gazebo.launch