机器人穿过德雷克地板
robot passing through the floor in drake
我有一个简单的差动驱动机器人模型。当我在 drake 中开始模拟时,它穿过地板并且不会停留在地板上。我的 URDF 文件确实为每个 link 定义了碰撞。但是,运行模拟的时候好像不服从。
我确实尝试过焊接底盘,这似乎可以让机器人留在地板上。然而,由于机器人不能移动,这就完成了差动驱动机器人的目的。同样,如果我没有定义 builder.Connect(scene_graph.get_query_output_port(),plant.get_geometry_query_input_port());
它在 simulation.AdvanceTo() 中给出错误,但我确实看到我的机器人停留在地板上。应该做什么来纠正这个问题。我的 urdf 在 https://pastebin.com/jPRnsD83
可用
我的代码可以在
https://pastebin.com/T7rp9q3T
任何帮助将不胜感激。
有一个答案似乎不见了。我不确定发生了什么,但是,我会在这里重申。
查看您的 pastebin 代码,您似乎实际上没有声明地平面。所以,没有什么能阻止你的机器人永远坠落。
这里是添加地面的机器人模拟示例:
https://github.com/RobotLocomotion/drake/blob/master/examples/atlas/atlas_run_dynamics.cc#L54-L65
此外,您可能会受益于 Sean Curtis 给出的示例中的 "more modern" 做事方式,即:
- AddMultibodyPlantSceneGraph():甚至不需要参考
get_query_output_port()
。
- ConnectContactResultsToDrakeVisualizer():不需要玩
DrakeLcm
不必要的对象。
我有一个简单的差动驱动机器人模型。当我在 drake 中开始模拟时,它穿过地板并且不会停留在地板上。我的 URDF 文件确实为每个 link 定义了碰撞。但是,运行模拟的时候好像不服从。
我确实尝试过焊接底盘,这似乎可以让机器人留在地板上。然而,由于机器人不能移动,这就完成了差动驱动机器人的目的。同样,如果我没有定义 builder.Connect(scene_graph.get_query_output_port(),plant.get_geometry_query_input_port());
它在 simulation.AdvanceTo() 中给出错误,但我确实看到我的机器人停留在地板上。应该做什么来纠正这个问题。我的 urdf 在 https://pastebin.com/jPRnsD83
可用我的代码可以在 https://pastebin.com/T7rp9q3T
任何帮助将不胜感激。
有一个答案似乎不见了。我不确定发生了什么,但是,我会在这里重申。
查看您的 pastebin 代码,您似乎实际上没有声明地平面。所以,没有什么能阻止你的机器人永远坠落。
这里是添加地面的机器人模拟示例:
https://github.com/RobotLocomotion/drake/blob/master/examples/atlas/atlas_run_dynamics.cc#L54-L65
此外,您可能会受益于 Sean Curtis 给出的示例中的 "more modern" 做事方式,即:
- AddMultibodyPlantSceneGraph():甚至不需要参考
get_query_output_port()
。 - ConnectContactResultsToDrakeVisualizer():不需要玩
DrakeLcm
不必要的对象。