我正在使用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
}
}发布于 2019-06-18 18:37:02
我看你没有这些关节的马达。这可能意味着您对控制这些关节不感兴趣,而只是希望允许球体自由旋转。
在这种情况下,更稳定、更有效的解决方案是将这些球体作为固定(无任何关节)实体添加到机器人中,然后设定特定的接触材料(https://www.cyberbotics.com/doc/reference/solid#solid-fields),并在接触特性(https://www.cyberbotics.com/doc/reference/contactproperties)中将摩擦力设定为非常低的值。
或者,如果希望球体实际旋转,可以使用球关节(https://www.cyberbotics.com/doc/reference/balljoint),但前面的方法效率更高。
https://stackoverflow.com/questions/56632407
复制相似问题