【问题标题】:robot passing through the floor in drake机器人穿过德雷克地板
【发布时间】:2020-06-04 02:28:41
【问题描述】:

我有一个简单的差动驱动机器人模型。当我在 drake 中开始模拟时,它会穿过地板并且不会停留在地板上。我的 URDF 文件确实为每个链接定义了冲突。但是,在运行模拟时,它似乎不服从它。

我确实尝试过焊接底盘,这似乎有助于将机器人留在地板上。然而这完成了差动驱动机器人的目的,因为机器人不能移动。同样,如果我不定义builder.Connect(scene_graph.get_query_output_port(),plant.get_geometry_query_input_port());

它在模拟中出现错误。AdvanceTo() 但我确实看到我的机器人停留在地板上。应该做些什么来纠正这个问题。我的 urdf 可在https://pastebin.com/jPRnsD83 获得

我的代码可以在 https://pastebin.com/T7rp9q3T

我们将不胜感激。

【问题讨论】:

    标签: drake


    【解决方案1】:

    曾经有一个答案似乎不见了。我不确定发生了什么,但是,我会在这里重申一下。

    查看您粘贴的代码,看来您实际上并没有声明接地层。所以,没有什么可以阻止你的机器人永远坠落。

    这是一个添加地面的机器人模拟示例:

    https://github.com/RobotLocomotion/drake/blob/master/examples/atlas/atlas_run_dynamics.cc#L54-L65

    【讨论】:

      【解决方案2】:

      此外,您可能会受益于 Sean Curtis 给出的示例中“更现代”的做事方式,即:

      • AddMultibodyPlantSceneGraph():甚至不需要参考get_query_output_port()
      • ConnectContactResultsToDrakeVisualizer():不需要不必要地使用DrakeLcm 对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多