我正在使用PX4工具链来构建一架自主无人机。我使用ROS和MAVROS通过Gazebo模拟器使用它。现在,我需要研究路径查找算法,而不是传感器,所以我想要一个Gazebo模拟的“地面实况”地图。如果可能的话,能够通过ROS的Octomap节点使用它将是一件很棒的事情。
我所能做的,就是将一个深度相机点云连接到ROS octomap节点,并使用RViz查看它,就像this tutorial中解释的那样。我想过在我的世界里到处放置深度相机传感器,以便用八幅地图表示近似地面真实世界,但它看起来很复杂,而且效率不是很高。
那么,有没有一种方法可以生成当前Gazebo世界模拟的点云表示,并将其连接到Octomap?
非常感谢您的帮助!:)
发布于 2020-07-16 23:48:11
我张贴我的解决方案,因为它可能会发生在其他人。
最后,我编写了一个脚本,将一个Gazebo世界转换为一个octomap .bt文件。它主要使用this reference。首先,我将.world、.sdf和.dae文件转换为.dae文件。这是在python脚本中完成的,方法是解析.world和.sdf文件的XML,并使用pycolada库解析.dae文件。然后,我使用混合器将.dae场景转换为.obj格式。然后,使用链接中的程序,我将.obj转换为体素表示.binvox,最后转换为八幅图.bt文件。
我的代码:https://github.com/rhidra/autopilot/tree/master/world_to_octomap
我的代码,特别是用于.world和.sdf解析的python脚本,非常简单。对于一个复杂的问题,它可能太简单了。
我希望它能帮助一些人!
https://stackoverflow.com/questions/62903784
复制相似问题