导入URDF文件
pybullet.loadURDF(path,position,orientation,flags=0):向物理服务器发送信息,加载URDF文件;返回创建模型的ID
创建约束
pybullet.createConstraint(parentBodyUniqueId, parentLinkIndex, childBodyUniqueId, childLinkIndex, jointType, jointAxis, parentFramePosition, childFramePosition):对两个连杆的关节进行约束
各参数意义(
可参考:https://docs.google.com/document/d/10sXEhzFRSnvFcl3XxNGhnD4N2SedqwdAvK3dsihxVUA/edit#heading=h.fq749wu22x4c
创建一个约束:
floor_id = p.loadURDF('plane.urdf')
box_id = p.loadURDF(fileName='cube_no_rotation.urdf',basePosition=[2,2,0],baseOrientation=p.getQuaternionFromEuler([0, 0, 0]),useFixedBase=True)
p.createConstraint(floor_id, -1, box_id, 0, p.JOINT_FIXED, [0, 0, 0], [2, 2, 0], [0, 0, 0]) # 添加约束
注:有时候URDF文件并非只有一个关节,只固定一个还是会使其运动,所以需要尽可能得使多个关节固定,才能保证最后加载的物体不会移动。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!