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. To learn more about the SRDF, you can go through the URDF/SRDF Overview page.
MoveIt! and ROS
git clone https://github.com/AcutronicRobotics/MARA_ROS1.git
cd ~/ws_moveit/src rm -rf mara_moveit_config catkin clean mara_moveit_config
roslaunch moveit_setup_assistant setup_assistant.launch
Click on the Create New MoveIt! Configuration Package button to bring up the following screen:
Click on the browse button and navigate to the MARA_ROS1/mara_description/urdf/mara_robot_camera_top.urdf.xacro this file is included inside the cloned repository (MARA_ROS1). Choose that file and then click Load Files. The Setup Assistant will load the files (this might take a few seconds) and present you with this screen:
The Default Self-Collision Matrix Generator searches for pairs of links on the robot that can safely be disabled from collision checking, decreasing motion planning processing time. These pairs of links are disabled when they are always in collision, never in collision, in collision in the robot’s default position or when the links are adjacent to each other on the kinematic chain. The sampling density specifies how many random robot positions to check for self collision. Higher densities require more computation time while lower densities have a higher possibility of disabling pairs that should not be disabled. The default value is 10,000 collision checks. Collision checking is done in parallel to decrease processing time.
Click on the Self-Collisions pane selector on the left-hand side and click on the Generate Collision Matrix button. The Setup Assistant will work for a few second before presenting you the results of its computation in the main table.
Virtual joints are used primarily to attach the robot to the world. For the MARA we will define only one virtual joint attaching the base_link of the MARA to the world world frame. This virtual joint represents the motion of the base of the robot in a plane.
Planning groups are used for semantically describing different parts of your robot, such as defining what an arm is, or an end effector.
We will first add MARA's arm as a planning group
Now, click on the Add Joints button. You will see a list of joints on the left hand side. You need to choose all the joints that belong to the arm and add them to the right hand side. The joints are arranged in the order that they are stored in an internal tree structure. This makes it easy to select a serial chain of joints.
Add the gripper
The Setup Assistant allows you to add certain fixed poses into the configuration. This helps if, for example, you want to define a certain position of the robot as a Home position.
We have already added the gripper of the MARA. Now, we will designate this group as a special group: end effectors. Designating this group as end effectors allows some special operations to happen on them internally.
The passive joints tab is meant to allow specification of any passive joints that might exist in a robot. These are joints that are unactuated on a robot (e.g. passive casters.) This tells the planners that they cannot (kinematically) plan for these joints because they can’t be directly controlled. The MARA does not have any passive joints so we will skip this step.
The 3D Perception tab is meant to set the parameters of the YAML configuration file for configuring the 3D sensors sensors_3d.yaml.
e.g. point_cloud parameters:
In case of sensors_3d.yaml was not needed, choose None.
ROS Control is a set of packages that include controller interfaces, controller managers, transmissions and hardware_interfaces, for more details please look at ros_control documentation
ROS Control tab can be used to auto generate simulated controllers to actuate the joints of your robot. This will allow us to provide the correct ROS interfaces MoveIt!.
Catkin requires author information for publishing purposes
You are almost there. One last step - generating all the configuration files that you will need to start using MoveIt!
The MoveIt! RViz plugin
Setup IKFast Inverse Kinematics Solver
See the URDF and SRDF page for more details on the components of the URDF and SRDF mentioned in this tutorial.