首页 > 解决方案 > 在 Drake 中生成和操作多个模型到 iiwa arm MeshCat 仿真中

问题描述

我正在尝试进行一个简单的模拟,其中 iiwa 手臂从塔中拾取泡沫砖。然而,我一直在寻找一种方法来生成多个砖块并移动它们。下面的代码块是我当前如何生成这个塔,但这导致砖无法移动它们生成的 Z 平面。

sdf = FindResourceOrThrow("drake/examples/manipulation_station/models/061_foam_brick.sdf")
z=0.35
for i in range(2):
        planar_joint_frame = plant.AddFrame(FixedOffsetFrame("planar_joint_frame", plant.world_frame(), RigidTransform(RotationMatrix.MakeZRotation(np.pi/2),[-0.4, 0.2, z])))
        instance = parser.AddModelFromFile(sdf, f"object{i}")   
        plant.AddJoint(PlanarJoint(f"joint{i}", planar_joint_frame, plant.GetFrameByName("base_link", instance), damping=[0,0,0]))
        z+=0.05

是否有另一种方法可以生成可由 iiwa 手臂操作的多个模型?

标签: drake

解决方案


如果您希望它们在 3D 中自由移动,那么您不想添加平面关节。事实上,你不需要任何联合(让他们自由)。你可能想要一些简单的东西

for i in range(2):
  instance = parser.AddModelFromFile(sdf, f"object{i}")

??


推荐阅读