0

我正在使用 PX4 工具链来构建自主无人机。我通过 Gazebo 模拟器使用它,使用 ROS 和 MAVROS。现在,我需要研究寻路算法,而不是传感器,所以我想要 Gazebo 模拟的“地面实况”地图。如果可能的话,能够通过 ROS 的 Octomap 节点使用它会很棒。

我所能做的就是将深度相机点云连接到 ROS octomap 节点,并使用 RViz 进行查看,如本教程中所述。我考虑过在我的世界中放置深度相机传感器,以便用八图表示来近似地面真实世界,但它看起来很复杂而且效率不高。

那么有没有办法生成当前 Gazebo 世界模拟的点云表示,并将其连接到 Octomap ?

非常感谢您的帮助 !:)

4

1 回答 1

0

我发布我的解决方案,因为它可能会发生在其他人身上。

最后,我编写了一个脚本来将 Gazebo 世界转换为 octomap .bt 文件。它主要使用这个参考。首先,我将 .world、.sdf 和 .dae 文件转换为 .dae 文件。这是在 python 脚本中完成的,通过解析 .world 和 .sdf 文件的 XML 并使用 pycollada 库来解析 .dae 文件。然后,我使用 Blender 将 .dae 场景转换为 .obj。然后,使用链接中的程序,我将 .obj 转换为体素表示 .binvox,最后转换为 octomap .bt 文件。

我的代码:https ://github.com/rhidra/autopilot/tree/master/world_to_octomap

我的代码,尤其是用于解析 .world 和 .sdf 的 python 脚本,非常简陋。对于一个复杂的问题来说,这可能太简单了。

我希望它会帮助别人!

于 2020-07-16T15:48:10.500 回答