Closed BolunDai0216 closed 1 year ago
If I understand correctly, you re-created panda_moveit_config
from scratch following the MSA tutorial and only using this newly created config, you observe the failure? (I just tested the released panda_moveit_config, version 0.8.1, w/o any issues).
Could you please provide the generated config/*.srdf
file? Probably the pre-defined robot poses are wrong, leading to a collision in the initial pose.
Note that the MSA tutorial is exemplary here only and does not define all robot poses required for the remaining tutorials.
If I understand correctly, you re-created
panda_moveit_config
from scratch following the MSA tutorial and only using this newly created config, you observe the failure? (I just tested the released panda_moveit_config, version 0.8.1, w/o any issues). Could you please provide the generatedconfig/*.srdf
file? Probably the pre-defined robot poses are wrong, leading to a collision in the initial pose. Note that the MSA tutorial is exemplary here only and does not define all robot poses required for the remaining tutorials.
Yes, I recreated it from scratch following the MSA tutorial. The generatedpanda.srdf
file is:
<?xml version="1.0" encoding="UTF-8"?>
<!--This does not replace URDF, and is not an extension of URDF.
This is a format for representing semantic information about the robot structure.
A URDF file must exist for this robot as well, where the joints and the links that are referenced are defined
-->
<robot name="panda">
<!--GROUPS: Representation of a set of joints and links. This can be useful for specifying DOF to plan for, defining arms, end effectors, etc-->
<!--LINKS: When a link is specified, the parent joint of that link (if it exists) is automatically included-->
<!--JOINTS: When a joint is specified, the child link of that joint (which will always exist) is automatically included-->
<!--CHAINS: When a chain is specified, all the links along the chain (including endpoints) are included in the group. Additionally, all the joints that are parents to included links are also included. This means that joints along the chain and the parent joint of the base link are included in the group-->
<!--SUBGROUPS: Groups can also be formed by referencing to already defined group names-->
<group name="panda_hand">
<link name="panda_hand"/>
<link name="panda_leftfinger"/>
<link name="panda_rightfinger"/>
</group>
<group name="panda_arm">
<chain base_link="panda_link0" tip_link="panda_link8"/>
</group>
<!--GROUP STATES: Purpose: Define a named state for a particular group, in terms of joint values. This is useful to define states like 'folded arms'-->
<group_state name="ready" group="panda_arm">
<joint name="panda_joint1" value="0"/>
<joint name="panda_joint2" value="-0.7853"/>
<joint name="panda_joint3" value="0"/>
<joint name="panda_joint4" value="-2.3561"/>
<joint name="panda_joint5" value="0"/>
<joint name="panda_joint6" value="1.5707"/>
<joint name="panda_joint7" value="0.7853"/>
</group_state>
<!--END EFFECTOR: Purpose: Represent information about an end effector.-->
<end_effector name="panda_hand" parent_link="panda_link8" group="panda_hand"/>
<!--VIRTUAL JOINT: Purpose: this element defines a virtual joint between a robot link and an external frame of reference (considered fixed with respect to the robot)-->
<virtual_joint name="virtual_joint" type="fixed" parent_frame="world" child_link="panda_link0"/>
<!--DISABLE COLLISIONS: By default it is assumed that any link of the robot could potentially come into collision with any other link in the robot. This tag disables collision checking between a specified pair of links. -->
<disable_collisions link1="panda_hand" link2="panda_hand_sc" reason="Adjacent"/>
<disable_collisions link1="panda_hand" link2="panda_leftfinger" reason="Adjacent"/>
<disable_collisions link1="panda_hand" link2="panda_link3" reason="Never"/>
<disable_collisions link1="panda_hand" link2="panda_link4" reason="Never"/>
<disable_collisions link1="panda_hand" link2="panda_link4_sc" reason="Never"/>
<disable_collisions link1="panda_hand" link2="panda_link5_sc" reason="Default"/>
<disable_collisions link1="panda_hand" link2="panda_link6" reason="Never"/>
<disable_collisions link1="panda_hand" link2="panda_link6_sc" reason="Never"/>
<disable_collisions link1="panda_hand" link2="panda_link7" reason="Adjacent"/>
<disable_collisions link1="panda_hand" link2="panda_link7_sc" reason="Default"/>
<disable_collisions link1="panda_hand" link2="panda_rightfinger" reason="Adjacent"/>
<disable_collisions link1="panda_hand_sc" link2="panda_leftfinger" reason="Default"/>
<disable_collisions link1="panda_hand_sc" link2="panda_link3" reason="Never"/>
<disable_collisions link1="panda_hand_sc" link2="panda_link4" reason="Never"/>
<disable_collisions link1="panda_hand_sc" link2="panda_link4_sc" reason="Never"/>
<disable_collisions link1="panda_hand_sc" link2="panda_link5" reason="Default"/>
<disable_collisions link1="panda_hand_sc" link2="panda_link5_sc" reason="Default"/>
<disable_collisions link1="panda_hand_sc" link2="panda_link6" reason="Never"/>
<disable_collisions link1="panda_hand_sc" link2="panda_link6_sc" reason="Never"/>
<disable_collisions link1="panda_hand_sc" link2="panda_link7" reason="Default"/>
<disable_collisions link1="panda_hand_sc" link2="panda_link7_sc" reason="Default"/>
<disable_collisions link1="panda_hand_sc" link2="panda_rightfinger" reason="Default"/>
<disable_collisions link1="panda_leftfinger" link2="panda_link3" reason="Never"/>
<disable_collisions link1="panda_leftfinger" link2="panda_link4" reason="Never"/>
<disable_collisions link1="panda_leftfinger" link2="panda_link4_sc" reason="Never"/>
<disable_collisions link1="panda_leftfinger" link2="panda_link6" reason="Never"/>
<disable_collisions link1="panda_leftfinger" link2="panda_link6_sc" reason="Never"/>
<disable_collisions link1="panda_leftfinger" link2="panda_link7" reason="Never"/>
<disable_collisions link1="panda_leftfinger" link2="panda_link7_sc" reason="Never"/>
<disable_collisions link1="panda_link0" link2="panda_link0_sc" reason="Adjacent"/>
<disable_collisions link1="panda_link0" link2="panda_link1" reason="Adjacent"/>
<disable_collisions link1="panda_link0" link2="panda_link1_sc" reason="Default"/>
<disable_collisions link1="panda_link0" link2="panda_link2" reason="Never"/>
<disable_collisions link1="panda_link0" link2="panda_link2_sc" reason="Never"/>
<disable_collisions link1="panda_link0" link2="panda_link3" reason="Never"/>
<disable_collisions link1="panda_link0" link2="panda_link3_sc" reason="Never"/>
<disable_collisions link1="panda_link0" link2="panda_link4" reason="Never"/>
<disable_collisions link1="panda_link0" link2="panda_link4_sc" reason="Never"/>
<disable_collisions link1="panda_link0_sc" link2="panda_link1" reason="Default"/>
<disable_collisions link1="panda_link0_sc" link2="panda_link1_sc" reason="Default"/>
<disable_collisions link1="panda_link0_sc" link2="panda_link2" reason="Never"/>
<disable_collisions link1="panda_link0_sc" link2="panda_link2_sc" reason="Never"/>
<disable_collisions link1="panda_link0_sc" link2="panda_link3" reason="Never"/>
<disable_collisions link1="panda_link0_sc" link2="panda_link3_sc" reason="Never"/>
<disable_collisions link1="panda_link0_sc" link2="panda_link4" reason="Never"/>
<disable_collisions link1="panda_link0_sc" link2="panda_link4_sc" reason="Never"/>
<disable_collisions link1="panda_link1" link2="panda_link1_sc" reason="Adjacent"/>
<disable_collisions link1="panda_link1" link2="panda_link2" reason="Adjacent"/>
<disable_collisions link1="panda_link1" link2="panda_link2_sc" reason="Default"/>
<disable_collisions link1="panda_link1" link2="panda_link3" reason="Never"/>
<disable_collisions link1="panda_link1" link2="panda_link3_sc" reason="Default"/>
<disable_collisions link1="panda_link1" link2="panda_link4" reason="Never"/>
<disable_collisions link1="panda_link1" link2="panda_link4_sc" reason="Never"/>
<disable_collisions link1="panda_link1_sc" link2="panda_link2" reason="Default"/>
<disable_collisions link1="panda_link1_sc" link2="panda_link2_sc" reason="Default"/>
<disable_collisions link1="panda_link1_sc" link2="panda_link3" reason="Never"/>
<disable_collisions link1="panda_link1_sc" link2="panda_link3_sc" reason="Default"/>
<disable_collisions link1="panda_link1_sc" link2="panda_link4" reason="Never"/>
<disable_collisions link1="panda_link1_sc" link2="panda_link4_sc" reason="Never"/>
<disable_collisions link1="panda_link2" link2="panda_link2_sc" reason="Adjacent"/>
<disable_collisions link1="panda_link2" link2="panda_link3" reason="Adjacent"/>
<disable_collisions link1="panda_link2" link2="panda_link3_sc" reason="Default"/>
<disable_collisions link1="panda_link2" link2="panda_link4" reason="Never"/>
<disable_collisions link1="panda_link2" link2="panda_link4_sc" reason="Never"/>
<disable_collisions link1="panda_link2_sc" link2="panda_link3" reason="Never"/>
<disable_collisions link1="panda_link2_sc" link2="panda_link3_sc" reason="Default"/>
<disable_collisions link1="panda_link2_sc" link2="panda_link4" reason="Never"/>
<disable_collisions link1="panda_link2_sc" link2="panda_link4_sc" reason="Never"/>
<disable_collisions link1="panda_link3" link2="panda_link3_sc" reason="Adjacent"/>
<disable_collisions link1="panda_link3" link2="panda_link4" reason="Adjacent"/>
<disable_collisions link1="panda_link3" link2="panda_link4_sc" reason="Always"/>
<disable_collisions link1="panda_link3" link2="panda_link5" reason="Never"/>
<disable_collisions link1="panda_link3" link2="panda_link5_sc" reason="Always"/>
<disable_collisions link1="panda_link3" link2="panda_link6" reason="Never"/>
<disable_collisions link1="panda_link3" link2="panda_link6_sc" reason="Never"/>
<disable_collisions link1="panda_link3" link2="panda_link7" reason="Never"/>
<disable_collisions link1="panda_link3" link2="panda_link7_sc" reason="Never"/>
<disable_collisions link1="panda_link3" link2="panda_rightfinger" reason="Never"/>
<disable_collisions link1="panda_link3_sc" link2="panda_link4" reason="Always"/>
<disable_collisions link1="panda_link3_sc" link2="panda_link4_sc" reason="Always"/>
<disable_collisions link1="panda_link3_sc" link2="panda_link6" reason="Never"/>
<disable_collisions link1="panda_link3_sc" link2="panda_link6_sc" reason="Never"/>
<disable_collisions link1="panda_link3_sc" link2="panda_link7" reason="Never"/>
<disable_collisions link1="panda_link4" link2="panda_link4_sc" reason="Adjacent"/>
<disable_collisions link1="panda_link4" link2="panda_link5" reason="Adjacent"/>
<disable_collisions link1="panda_link4" link2="panda_link5_sc" reason="Default"/>
<disable_collisions link1="panda_link4" link2="panda_link6" reason="Never"/>
<disable_collisions link1="panda_link4" link2="panda_link6_sc" reason="Never"/>
<disable_collisions link1="panda_link4" link2="panda_link7" reason="Never"/>
<disable_collisions link1="panda_link4" link2="panda_link7_sc" reason="Never"/>
<disable_collisions link1="panda_link4" link2="panda_rightfinger" reason="Never"/>
<disable_collisions link1="panda_link4_sc" link2="panda_link5" reason="Never"/>
<disable_collisions link1="panda_link4_sc" link2="panda_link5_sc" reason="Default"/>
<disable_collisions link1="panda_link4_sc" link2="panda_link6" reason="Never"/>
<disable_collisions link1="panda_link4_sc" link2="panda_link6_sc" reason="Never"/>
<disable_collisions link1="panda_link4_sc" link2="panda_link7" reason="Never"/>
<disable_collisions link1="panda_link4_sc" link2="panda_link7_sc" reason="Never"/>
<disable_collisions link1="panda_link4_sc" link2="panda_rightfinger" reason="Never"/>
<disable_collisions link1="panda_link5" link2="panda_link5_sc" reason="Adjacent"/>
<disable_collisions link1="panda_link5" link2="panda_link6" reason="Adjacent"/>
<disable_collisions link1="panda_link5" link2="panda_link6_sc" reason="Always"/>
<disable_collisions link1="panda_link5" link2="panda_link7_sc" reason="Always"/>
<disable_collisions link1="panda_link5_sc" link2="panda_link6_sc" reason="Always"/>
<disable_collisions link1="panda_link5_sc" link2="panda_link7_sc" reason="Default"/>
<disable_collisions link1="panda_link5_sc" link2="panda_rightfinger" reason="Default"/>
<disable_collisions link1="panda_link6" link2="panda_link6_sc" reason="Adjacent"/>
<disable_collisions link1="panda_link6" link2="panda_link7" reason="Adjacent"/>
<disable_collisions link1="panda_link6" link2="panda_link7_sc" reason="Always"/>
<disable_collisions link1="panda_link6" link2="panda_rightfinger" reason="Never"/>
<disable_collisions link1="panda_link6_sc" link2="panda_link7" reason="Always"/>
<disable_collisions link1="panda_link6_sc" link2="panda_link7_sc" reason="Always"/>
<disable_collisions link1="panda_link6_sc" link2="panda_rightfinger" reason="Never"/>
<disable_collisions link1="panda_link7" link2="panda_link7_sc" reason="Adjacent"/>
<disable_collisions link1="panda_link7" link2="panda_rightfinger" reason="Never"/>
<disable_collisions link1="panda_link7_sc" link2="panda_rightfinger" reason="Never"/>
</robot>
Another issue that I found is the automatically generated Self-Collision Matrix is different from the Self-Collision Matrix of the released version of panda_moveit_config
. Is this because the released version is using an older version of the URDF file? I noticed the URDF relative path in .setup_assistant
is different from the newest version of franka_description
.
Did you also do some post-processing to the config files after they are generated by MSA? If that is the case, would it be possible to also point out some of the necessary changes that need to be made?
The self-collision matrix looks perfectly fine. Sure, the definitions in the .srdf are different, but the resulting matrices are identical: | panda_moveit_config release 0.8.1 | your panda_moveit_config generated from scratch |
---|---|---|
Yes, the released .srdf config was manually tweaked to handle the very special .urdf description of the Panda robot (defining both fine and coarse collision models). This is nothing to be handled in the basic MSA tutorial.
The actual culprit for your failure was due to a missing initial configuration for the finger joints: Looks like the zero configuration creates a collision between both fingers as indicated in the Status
tab of the MotionPlanning
plugin in rviz.
Opening the fingers beforehand, resolved that problem.
I noticed the URDF relative path in
.setup_assistant
is different from the newest version offranka_description
.
That was already fixed in 584e88375500e215f1881513e69f5366f0291fd4, but not yet released.
The self-collision matrix looks perfectly fine. Sure, the definitions in the .srdf are different, but the resulting matrices are identical:
panda_moveit_config release 0.8.1 your panda_moveit_config generated from scratch Yes, the released .srdf config was manually tweaked to handle the very special .urdf description of the Panda robot (defining both fine and coarse collision models). This is nothing to be handled in the basic MSA tutorial.
The actual culprit for your failure was due to a missing initial configuration for the finger joints: Looks like the zero configuration creates a collision between both fingers as indicated in the
Status
tab of theMotionPlanning
plugin in rviz. Opening the fingers beforehand, resolved that problem.I noticed the URDF relative path in
.setup_assistant
is different from the newest version offranka_description
.That was already fixed in 584e883, but not yet released.
The collision matrix I am getting looks like this:
I am using the URDF file from franka_description
: https://github.com/frankaemika/franka_ros/blob/develop/franka_description/robots/panda/panda.urdf.xacro, and giving the additional command: hand:=true
Hm, looks like I didn't load your panda.srdf. In any case, the Panda robot requires a very special AllowedCollisionMatrix, which cannot be found by the algorithm used by MSA. So, please continue the tutorials with the released panda_moveit_config.
Hm, looks like I didn't load your panda.srdf. In any case, the Panda robot requires a very special AllowedCollisionMatrix, which cannot be found by the algorithm used by MSA. So, please continue the tutorials with the released panda_moveit_config.
I see. Actually, I am trying to create a moveit_config package for Franka Research 3 (FR3).
Do you know if one exists on GitHub?
I see the only difference in the URDF file between panda and FR3 is the joint limits. Do you think I can simply change the joint_limits.yaml
file and make it work for FR3?
I am trying to create a moveit_config package for Franka Research 3 (FR3). Do you know if one exists on GitHub?
I don't think so.
I see the only difference in the URDF file between panda and FR3 is the joint limits. Do you think I can simply change the
joint_limits.yaml
file and make it work for FR3?
Yes, to switch panda_moveit_config to FR3, you probably just need to load the correct .urdf and adapt joint limits.
The same thing is happening to me, I am not able to replicate any of the tutorials on the site, I am using ROS Melodic. Before, everything was working perfectly fine, but the upgrade broke all my work.
@CamiloMGS, please describe your issue in more detail. What did you upgraded? What does not work anymore? Please provide error logs.
Thanks for your quick response, Starting with the "roslaunch panda_moveit_config demo.launch" demo I am getting these errors.
Running roslaunch panda_moveit_config demo.launch
with the system-installed packages works just fine for me.
If you adapted the panda_moveit_config
following the tutorials, I refer to: https://github.com/ros-planning/panda_moveit_config/issues/125#issuecomment-1278551429 and https://github.com/ros-planning/panda_moveit_config/issues/125#issuecomment-1279345087 (both in this thread!) Please read the comments in a thread before you add more questions to it.
@rhaschke Can you tell me your current setup, please?
I tested with MoveIt 1.0.11 and panda_moveit_config 0.7.8 installed from Bionic/Melodic .deb packages.
Now when I launch the command for the Pick and Place toturial I get these errors.
There is a collision between the to-be-grasped object
and panda_hand_sc
, a coarse collision model around the hand.
This coarse collision model was only recently introduced by Franka and unfortunately it doesn't play with the old pick+place code. One needs to explicitly disable collisions between hand and object.
Please try https://github.com/ros-planning/moveit_tutorials/pull/741 and report back.
By the way, I suggest to update to ROS Noetic. MoveIt Melodic doesn't receive much of maintenance these days anymore.
Hi,
I was trying to replicate this repo by following the moveit setup assistance tutorial. However, after launching
demo.launch
, when I runI get the following error:
Would it be possible to help me understand the issue?
Thanks in advance!