gazebosim / gazebo-classic

Gazebo classic. For the latest version, see https://github.com/gazebosim/gz-sim
http://classic.gazebosim.org/
Other
1.19k stars 480 forks source link

URDF links without geometry cause spurious contacts. #1745

Open osrf-migration opened 9 years ago

osrf-migration commented 9 years ago

Original report (archived issue) by Stefan Kohlbrecher (Bitbucket: Stefan_Kohlbrecher).


This is running 14.04/ROS Indigo/Gazebo4 (from drcsim with .debs). I haven't tried with Gazebo6 from .debs yet.

I have a robot model that has an empty base_link (no geometry, inertial properties or visuals), see model here. When I try to make this model slide around in an empty world (by applying forces), I get lots of contacts between base_link and the ground plane. Given that no geometry has been specified for base_link, this should not happen.

See video. I set the chassis link to be frictionless, but not the base_link. This apparently causes the issues observed in the video, as the base_link contacts have default friction parameters, resulting in non-sliding behavior. Once I set the "no friction" params for base_link, too, the model slides over the ground as expected.

It appears that due to the fixed joint between both links, both get lumped into one gazebo link. It is counter-intuitive that the empty base_link apparently inherits the chassis_link's collision geometry, but keeps the default friction parameters.

Is this behavior expected or will this be changed?

osrf-migration commented 9 years ago

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


Where do you set the chassis link to be frictionless? I didn't see it in that xacro file

osrf-migration commented 9 years ago

Original comment by Stefan Kohlbrecher (Bitbucket: Stefan_Kohlbrecher).


In the tracker_chassis.gazebo.xacro.xml file. I added added the option to switch between two modes of locomotion yesterday as described here and thus set friction properties inside the macros in case different ones are needed between approaches.

Note that the problem disappeared for my use case after setting the friction properties also for the base_link as a workaround, but it can be expected that the observed behavior can cause hard to debug problems for others in the future. What I haven't tested yet is if the base_link friction params always override the chassis_link settings.

osrf-migration commented 9 years ago

Original comment by John Hsu (Bitbucket: hsu, GitHub: hsu).


properties for child link (e.g. mu) should have been carried over with the collision as part of the reduction process. This appears fixed in my latest refactor of the lumping process in sdformat pull request #225.

Actually I needed some test cases, so added files fixed_joint_reduction_collision_extension.urdf and fixed_joint_reduction_collision_extension_empty_parent.urdf. I tested running gz sdf -p on them and believe they are behaving correctly in the collision_blobs branch.

osrf-migration commented 8 years ago

Original comment by Nate Koenig (Bitbucket: Nathan Koenig).