有几种模糊的方法描述,比如“使用createMultiBody
方法”或“使用最大坐标”,但是没有其他信息。在
更具体地说,我使用loadURDF
方法加载我用SolidWorks创建的对象,但我希望它们只绕z轴旋转,只绕x和y轴移动。我怎样才能做到这一点?有没有一种方法可以在整个环境中实现这一点?在
编辑:我基本上想做的是:
import pybullet as p
p.connect(p.DIRECT)
OBJECT_1 = p.loadURDF("/location/of/object1.urdf")
OBJECT_2 = p.loadURDF("/location/of/object2.urdf")
OBJECT_3 = p.loadURDF("/location/of/object3.urdf")
OBJECT_4 = p.loadURDF("/location/of/object4.urdf")
# code to prevent the motion of OBJECT_1, OBJECT_2, OBJECT_3, and OBJECT_4
# (or the entire simulation) along the z axis.
# code to prevent the rotation of OBJECT_1, OBJECT_2, OBJECT_3, and OBJECT_4
# (or the entire simulation) along the x and y axes.
while True:
p.stepSimulation()
p.disconnect()
不久前我找到了一个半满意的解决方案;如果有更好的解决方案,请分享。在
虽然您不能从python绑定的Bullet实现这一点,但是可以通过引入一个没有冲突形状的“world”链接从URDF(或SDF)文件引入这些约束,然后在world和对象之间定义约束。作为一个例子,请参考这个example of a biped multibody constrained to moving in the y and z axes。在
相关问题 更多 >
编程相关推荐