如何将 Gazebo 世界转换为点云?

问题描述 投票:0回答:3

我正在使用 PX4 工具链构建自主无人机。我通过 Gazebo 模拟器使用 ROS 和 MAVROS。目前,我需要研究路径查找算法,而不是传感器,所以我想要一个 Gazebo 模拟的“地面实况”地图。如果可能的话,如果能够通过ROS的Octomap节点使用它那就太好了。

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

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

非常感谢您的帮助! :)

ros robot gazebo-simu mavlink octomap
3个回答
1
投票

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

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

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

我的代码,特别是用于.world和.sdf解析的python脚本,非常初级。对于复杂的问题来说,这可能太简单了。

我希望它能帮助别人!


0
投票

我编写了 ROS2 Gazebo World 插件来通过服务获取 2D (.pgm) 和 3D (点云 .pcd) 地图。

签出 -> https://github.com/arshadlab/gazebo_map_creator/tree/master


0
投票

有一种方法可以从 Gazebo 世界生成 Ground Truth Octomap。请参阅此存储库ground_truth_octomap_from_gazebo_world

© www.soinside.com 2019 - 2024. All rights reserved.