Home | Tutorials | Wiki | Issues
Ask Your Question
0

Friction Not Working Between URDF and Database Model

asked 2017-08-03 11:25:28 -0500

rkeatin3 gravatar image

I am trying to model and control a conveyor using ROS/Gazebo, but right now it seems that objects I place on top of it just stay in place when I actuate it.

Here are screenshots showing the collision properties of the link from the URDF file and an example object: image description image description

I have attached the URDF file for the conveyor (ignore the .sdf extension added so that I could post it here). C:\fakepath\conveyor.urdf.xacro.sdf

Any ideas on how to debug this? Thanks!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-08-08 10:04:35 -0500

Duckfrost gravatar image

updated 2017-08-08 10:19:31 -0500

I suppose you have the problem when moving the conveyor with the controllers. I made some tests to see what could be happening. My conclusion is that its highly probable that its something to do with the physiscs engine. Here you have a video that you can see the inconsistency in the way the objects interact with the standard ODE setting: Video Answer

conveyor belt working

Because depending on when and how the frictions work or they don't. Normally if you move the belt slow enough it will work because it will give the system time to make the friction calculations.

My recommendation is that you try different configurations in the ODE parameters in the world. Also try different friction parameters to make the friction bigger. But As I sais it seems more of a ODE system issue than the friction coeficients values.

You could for example try using the "world" solver type instead of the "quick". Its more precise. Also increase the itterations and the update rate.

I post here as much code as I can:

conveyor.urdf.xacro

main.launch

friction_test_object.urdf

conveyor.world

spawn_friction_test_object.launch

spawn_conveyor.launch

conveyor.yaml

conveyor_start_control.launch

edit flag offensive delete link more

Comments

Thanks for this incredibly thorough answer! It turns out that using the PositionJointInterface (as opposed to the EffortJointInterface) was the main problem I was facing; there was no friction at all using that interface. Maybe the lack of dynamics means that it wasn't exerting any force on the box? I did see problems with the conveyor significantly slipping underneath the database model I had been using, but using a custom model with high friction values solves that problem.

rkeatin3 gravatar imagerkeatin3 ( 2017-08-10 16:10:29 -0500 )edit
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2017-08-03 11:22:49 -0500

Seen: 62 times

Last updated: Aug 08