代码之家  ›  专栏  ›  技术社区  ›  Mark

在Drake的MultiBodyPlant中固定某些位置

  •  -1
  • Mark  · 技术社区  · 3 年前

    我有一个 MultibodyPlant 包含6自由度机器人和静止的2自由度障碍物。植物的位置矢量是8维的 [object_x_offset, object_y_offset, robot_joint_1, ..., robot_joint_6] .

    这对像这样的东西来说非常方便 IrisInConfigurationSpace 我现在可以在障碍物周围生成无碰撞区域,在运行时之前可以不确定其姿势。当我定位障碍物时,我可以简单地将每个8维凸区域向下切6维,方法是在已知的位置进行切片 [object_x, object_y] 协调。

    然而,这对于使用Drake的轨迹规划算法来说是不方便的,该算法将假设 [对象_x,对象_y] 可以控制坐标。我发现自己手动将线性约束添加到 MathematicalProgram 以固定这些坐标。

    相反,我想要一种方法来创建一个相关的 多体工厂 谁的 .num_positions() == 6 这就引出了我原来的工厂,前两个坐标固定在我选择的一些数字上。

    有简单的方法吗?

    0 回复  |  直到 3 年前
        1
  •  1
  •   Russ Tedrake    3 年前

    我们已经讨论了很长一段时间,关于在 MultibodyPlant 看见 this issue ,以供阅读。

    但我今天建议的工作流程是解析两次模型——一次包括manipuland(用于IRIS等),第二次仅解析trajopt。这也是一种常见的控制工作流。。。例如 ManipulationStation examples work this way .

    在我看来,拥有多个世界模型是非常合理的。。。物理引擎具有一个模型,而机器人控制器/规划器具有不同的模型。我确实认为能够改造现有的MultibodyPlants会更符合人体工程学,但不要认为通过解析器单独加载每一个太难。