Drake 中的真实模拟:将真实世界传感器数据导入 Drake MultibodyPlant 的正确方法是什么

Real-To-Sim in Drake: What's The Proper Way to Get Real-World Sensor Data Into a Drake MultibodyPlant

我一直在通读 Drake 文档和我找到的任何教程,但我还没有看到关于此的任何详细信息problem/goal,所以我想我会试着在这里问一下。

目标:
我目前的项目是我有一个带有传感器的真实世界的古田摆,以获得状态向量 q_sim = [x, theta, xdot, thetadot].
的 cartpole 等效值 我希望能够拥有一个真实世界的状态向量 q_real,它“覆盖”模拟的 cartpole 状态向量 q_sim(从 Parser(plant=cart_pole).AddModelFromFile(sdf_path) 派生的 MBP 获取)。因此,由此产生的行为将是这样的:垂直移动真实世界的钟摆将(实时)反映在垂直移动的模拟钟摆中。最终,我的目标是让 furuta 钟摆能够通过反映状态向量的手推车模拟实时进行摆动和平衡行为,q_real

我的想法About/Tried:

额外:
我还注意到在 drake github https://github.com/RobotLocomotion/drake/issues/12912about 上有一个关于 2020 年 drake MBP 的官方教程。有人知道除了 Doxygen 之外该教程是否有任何更新吗?

我认为您不想用模拟数据覆盖您的 MBP 设备。正常的工作流程是提供一个不同的系统来读取您的传感器并提供与您的 MBP 相同的端口。

在极端情况下,您甚至可以将所有传感器和执行器驱动程序封装到一个它们自己的系统中,就像 MBP 的“模拟”一样。这就是我在 ManipulationStationManipulationStationHardwareInterface 中提供的模式。除了 doxygen,您还可以看这里:https://manipulation.csail.mit.edu/robot.html#section4