2

我正在使用hinge2joints 来模拟球形轮子。我已经设置了参数,即锚点和 2 轴(y,z)。当我改变关节的位置时,轮子会根据需要旋转。运行模拟并移动机器人后,这两个罕见的轮子根本不动并打滑机器人。

机器人模型:我正在模拟一辆叉车,它有一个主动转向的脚轮,两个罕见的球形轮和叉上的两个圆柱形轮。除了球形轮外,脚轮和圆柱形轮子在运行模拟时会根据需要旋转。

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
  }
}
4

1 回答 1

1

我看到你没有这些关节的马达。这可能意味着您对控制这些关节不感兴趣,而只想让您的球体自由旋转。

在这种情况下,一种更稳定、更有效的解决方案是将这些球体作为固定(没有任何关节)固体添加到您的机器人并设置特定的接触材料(https://www.cyberbotics.com/doc/reference /solid#solid-fields)并在接触属性(https://www.cyberbotics.com/doc/reference/contactproperties)中将摩擦力设置为非常低的值。

或者,如果您希望球体实际旋转,您可以使用球形接头 ( https://www.cyberbotics.com/doc/reference/balljoint ),但之前的方法效率更高。

于 2019-06-18T10:37:02.310 回答