frankaemika/franka_ros

Link3 and Link4 have self collision problem

Closed this issue · 9 comments

Recently, this PR has been merged related to the detailed and coarse collision models.
At the end of PR, in this comment #199 (comment) as shown link3 and link4 have self collision problem with other links of the robot and in fact in RViz are shown in red.
Here is the gif from that comment:
SRR-1202

I could also reproduce this problem.
I have investigated a bit, and apparently the problem is from

<xacro:link_with_sc name="link3" gazebo="${gazebo}">
<self_collision_geometries>
<xacro:collision_capsule xyz="0 0 -0.145" radius="${0.06+safety_distance}" length="0.15" />
</self_collision_geometries>
</xacro:link_with_sc>
and
<xacro:link_with_sc name="link4" gazebo="${gazebo}">
<self_collision_geometries>
<xacro:collision_capsule xyz="0 0 0" radius="${0.06+safety_distance}" length="0.12" />
</self_collision_geometries>
</xacro:link_with_sc>
.
Apparently, the values for radius and length are high.
A workaround I found was to reduce both of those values to 0.01, and the self collision problem was fixed, as you can see in the following gif:

selfcollision-2022-07-07_21.13.56.mp4

However, I am not sure how those values are computed and set in the xacro files, and if the problem is from those values or from how they are used later on in the pipeline.
cc @gollth and @rhaschke

If at all, this issue should be reported in panda_moveit_config. Which version of panda_moveit_config are you using? The latest noetic-devel branch from source? At least, I cannot confirm your issue with this latest version.

thank you, @rhaschke, for your response.
Here is my config:

  • ROS Noetic
  • panda_moveit_config: branch noetic-devel (from source)
  • franka_ros: develop branch

At least, I cannot confirm your issue with this latest version.

As I mentioned in the beginning, this issue also existed when merging the PR.Have a look on this #199 (comment)

If at all, this issue should be reported in panda_moveit_config.

I can open an issue in that repo, but since I was not sure about it and I saw this #199 (comment) I opened it here. Let me know what do you think.

The coarse collision models are OK and resemble what is used by the (real) robot controller. Thus, please open an issue in panda_moveit_config. Please also provide the joint configuration causing the collision.
Do you use the latest release version of MoveIt?

Hi @kouroshD

thanks for catching this. I completely missed that in my original comment. However I agree with @rhaschke and cannot reproduce this with the latest noetic-devel or MoveIt & panda_moveit_config.

In any case reducing the capsules to only 1cm length seems a bit aggressive. This won't protect the entity of the shells anymore:

Screenshot from 2022-07-08 10-29-40

@rhaschke if this is actually an issue, isn't it required to also fix the URDF here or is panda_moveit_config enough?

I guess @kouroshD isn't using the latest MoveIt version, which introduced auto-disabling collisions in SRDF. The URDF is fine.

@kouroshD, did this issue resolved when using the latest MoveIt version? If not, please file a bug report at panda_moveit_config and provide an exact joint configuration triggering the collision.

Thank you for your support @rhaschke and @gollth .
As you pointed out correctly, my MoveIt was not in the latest version. I will try to check the problem today and will inform you later on. Btw, as a curiosity, do you have any Conda environment description able to install Ros-desktop; and MoveIt from the source files. I had the ROS-desktop installed in a Conda env and wanted to install MoveIt from the source, but I faced some problems due to the dependencies. I thought you may have tried by chance.

In any case, I will update you about the problem on this issue.

Do you have any Conda environment description able to install ROS-desktop?

No. ROS is targeting the system installation of python. I suggest to have a look here: https://github.com/RoboStack/ros-noetic

This issue seems to be solved. I will close it now. Free free to reopen it if the issue is still there.