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.

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.

Load URDF file

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.

Load URDF file

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.

Define planning group.

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).

Add joints.

Save the settings. The fanuc_arm planning group is now in the list of Current Groups.

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.

Add robot pose.

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.

Robot pose added.

Creating ROS Controllers

Click on ROS Control in the left panel and on the Auto Add FollowJointsTrajectory Controllers For Each Planning Group.

Add ROS controller.

This will automatically generate the settings for the fanuc_arm_controller which will show up in the controller list.

fanuc_arm_controller added.

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.

Adapt urdf description for Gazebo.

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.

Enter Author Information.

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.

Generating configuration files.

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