Reusing MoveIt configuration package or not?
Hi,
Imagine that we have to create a package where we develop simple motion planning for UR5 robotic arm.
Since, we have repositories available, downloaded from this link . Thus, in our catkin workspace, we have ~/catkin_ws/src/universal_robot/
which includes ur5_moveit_config
as well as ur_description
folders, containing necessary configs and launch files.
In this case, is it necessary to create a MoveIt configuration package using the MoveIt Setup Assistant (MSA) again?. From the tutorial on using MoveIt Setup Assistant, we read
Additionally, it generates other necessary configuration files for use with the MoveIt pipeline.
Suppose, we write motion planning code using move_group_interface
. Then, we can simply test the planning for pose and joint-space goals using the following sequence of commands.
roslaunch ur5_moveit_config demo.launch
roslaunch p4_moveit_pkg smp_basic.launch option:="1"
First one refers to the launch file from the downloaded repositories, and the second launch file includes the motion planning node that we created.
Is this the correct way to develop motion planning code, or do we need to create MoveIt
configurations under our package and use those launch files?
Edit:
thanks @gvdhoorn,
This can work, but what about the parts the robot is mounted on? Do you also insert that as collision objects?
That could work, but seems unnecessary to me: I doubt the robot changes its mounting at runtime? It would make sense to me to add a priori known static obstacles to a URDF describing your workcell (or whatever equivalent you have).
This is indeed a useful suggestion that I did not know before. There are some parts, such as walls, and the mounting surface, or the table in front of the robot that will remain static. Currently, on the Teach Pendant, we set some safety thresholds for some surfaces, namely, the table and the walls, such that our robotic arm will not hit these when in motion. However, since the computed motion plans are agnostic to these set safety limits, its not an ideal situation at runtime. How do we add these in the URDF file ?
Concerning your other comment,
Unless I'm mistaken, the .launch files provided by UniversalRobots/Universal_Robots_ROS_Driver are not started by the MoveIt configuration packages. You have to do that yourself. So that doesn't seem to be any different from what the result would be from running the MSA yourself again, would it?
You are right about the drivers. These need to be started when we test on real robotic arms, and we use the launch files given under UniversalRobots/Universal_Robots_ROS_Driver
. Probably, I was making some mistake when writing my launch files. So, the correct way to test is to start demo.launch
either from roslaunch ur5_moveit_config demo.launch
which is from the repositories, or roslaunch p4_moveit_pkg demo.launch
if locally generated MSA configuration under p4_moveit_pkg
. and then start the launch file, which contains user developed motion_planning node only roslaunch p4_moveit_pkg smp_basic.launch option:="1"
. And, our launch file, needs to contain only the nodes that we want to run?
<launch> ...