2

I am using hinge2joints to model spherical wheels. I have set the parameters i.e. anchor and 2 axis(y, z). The wheel rotates as desired when I change the position of joints. After running the simulation and moving the robot, these two rare wheels do not move at all and skids the robot.

Robot model: I am simulating a forklift which has one actively steered castor wheel, two rare spherical wheels and two cylindrical wheels at the fork. Apart from spherical wheels, castor and cylindrical wheels rotates as desired while running the simulation.

DEF fts_rear_right_spherical_wheel Hinge2Joint {
  jointParameters HingeJointParameters {
    axis 0 1 0
    anchor 0.27 -0.2 0.085
  }
  jointParameters2 JointParameters {
  }
  endPoint Solid {
    translation 0.27 -0.2 0.085
    rotation 0 0 1 1.5708
    children [
      DEF left_spherical_wheel_BB Shape {
        appearance PBRAppearance {
        }
        geometry Sphere {
          radius 0.075
          subdivision 3
        }
      }
    ]
    name "solid(1)"
    contactMaterial "wheel3"
    boundingObject USE left_spherical_wheel_BB
  }
}
Tahir Mahmood
  • 305
  • 1
  • 11

1 Answers1

1

I see that you don't have any motor for these joints. Which probably means that you are not interested in controlling these joints but just want to allow your sphere to rotate freely.

In that case, a way more stable and efficient solution to do this is to add these spheres as fix (without any joint) Solids to your robot and set a specific contact material (https://www.cyberbotics.com/doc/reference/solid#solid-fields) and in the contact properties (https://www.cyberbotics.com/doc/reference/contactproperties) set the friction to a very low value.

Alternatively, if you want your sphere to actually rotate you can use a ball joint (https://www.cyberbotics.com/doc/reference/balljoint) but the previous method is much more efficient.

David Mansolino
  • 1,713
  • 7
  • 13