1
$\begingroup$

I build a new Robot with Webots (two wheel cart + 1) and build a simple controller. I can see the wheels are rotating when I start the robot, but robot is not moving at all.

I am very new to Webots and I can't see relevant answer in the search result. Perhaps, I am missing something, but can't see it.

What am I missing?

Files for can be found here

Thanks

$\endgroup$

1 Answer 1

1
$\begingroup$

The problem is the bounding objects defined for your Robot node.

Bounding objects are the physical objects used by the physics engine. Currently these objects are not moving so they create friction that prevents the robot to move:

  1. The bounding object for the two wheels should not be defined in the Robot node, but in the HingeJoint.endPoint Solid node so that they rotate.
  2. As it is implemented in your model, the back wheel doesn't rotate but it is meant to slide on the ground. But the friction between this wheel and the ground is too high and prevents the robot to move.

Here are the changes you need to apply to your world file:

  1. Change the type of the DEF back_wheel Transform node to a Solid node and move the bounding object definition of the back wheel from the Robot node to this new Solid node.

  2. Remove completely all the nodes from the Robot.boundingObject field, because the wheels bounding objects are already defined in the `HingeJoint.endPoint Solid nodes.

Additionally, if you want to simulate a rotating back wheel then you should add some specific contact properties for it:

  1. Add a ContactProperties node in WorldInfo and set the following values:

    ContactProperties {
      material1 "rear wheel"
      material2 "default"
      coulombFriction [
        0
      ]
    }
    

    coulombFriction value set to "0" completely removes the friction, but you might want to adjust it to a different value.

  2. In the new DEF back_wheel Solid node, set the contactMaterial field to "rear wheel"

Just for reference, you could also have a look at the built-in model of the NVIDIA JetBot robot that has a similar structure.

Disclaimer: I am a software developer at Webots.

$\endgroup$
1
  • 1
    $\begingroup$ Thank you Stefania! The friction of a back wheel was holding the robot. With your recommendations the robot is moving now. $\endgroup$
    – ZDima
    Nov 28, 2022 at 18:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.