# 使用 ROS/Gazebo Classic 的 OctoMap 3D 模型

OctoMap 库 (打开新窗口) 是一个开源库,用于根据传感器数据生成体积三轴环境模型。无人机可利用这些模型数据进行导航和避障。

本指南介绍如何使用 八方图经典仿真场景Gazebo 转子模拟器 (打开新窗口) 和 ROS。

# 安装

安装需要 ROS、 经典仿真场景Gazebo 和旋转模拟器插件。按照 转子模拟器说明 (打开新窗口) 安装。

接下来,安装 八方图 图书馆

苏都 apt-get 安装 ros-indigo-octomap ros-indigo-octomap-mapping rosdep 安装 octomap_mapping rosmake octomap_mapping

现在,打开 ~/catkin_ws/src/rotors_simulator/rotors_gazebo/CMakeLists.txt 并在文件底部添加以下几行:

查找软件包(需要八轴地图)
包含目录(${octomap_include_dirs}。)
链接库(${octomap_libraries})

开放 ~/catkin_ws/src/rotors_simulator/rotors_gazebo/package.xml 并添加以下几行:

<;构建依赖>;八图<;/build_depend>;
<;运行依赖>;八图<;/run_depend>;

运行以下两行:

备注

第一行将默认 shell 编辑器更改为 编辑.建议使用经验不足的用户使用此功能。 vim (默认编辑器),否则可以省略。

出口 编辑='gedit'(编辑
rosed octomap_server octomap_tracking_server.launch

并更改以下两行:

<;停止 名字="frame_id"; 类型="字符串"; 价值=地图 />;
...
<;!--remap ="cloud_in"; ="/rgbdslam/batch_clouds"; /-->;

到:

<;停止 名字="frame_id"; 类型="字符串"; 价值="世界"; />;
...
<;重映射 ="cloud_in"; ="/firefly/vi_sensor/camera_depth/depth/points"; />;

# 运行模拟

单独 终端窗口。这将打开 经典仿真场景Gazebo, Rviz 和一个八路图服务器。

roslaunch rotors_gazebo mav_hovering_example_with_vi_sensor.launch mav_name:=firefly rviz roslaunch octomap_server octomap_tracking_server.launch

Rviz将窗口左上角的 "固定框架 "字段从 "地图 "改为 "世界"。现在点击左下角的添加按钮,选择标记阵列。然后双击 MarkerArray,将 "标记主题 "从"/free_cells_vis_array "更改为"/occupied_cells_vis_array"。

现在你应该能看到地板的一部分了。

经典仿真场景Gazebo 窗口,在红色转子前面插入一个立方体,你就可以在 Rviz.

Gazebo 中的 OctoMap 示例