使用 ROS/Gazebo Classic 的 OctoMap 3D 模型
OctoMap 库 是一个开源库,用于根据传感器数据生成体积三轴环境模型。无人机可利用这些模型数据进行导航和避障。
本指南介绍如何使用 八方图 与 经典仿真场景Gazebo 转子模拟器 和 ROS。
安装
安装需要 ROS、 经典仿真场景Gazebo 和旋转模拟器插件。按照 转子模拟器说明 安装。
接下来,安装 八方图 图书馆
吁
苏都 apt-get 安装 ros-indigo-octomap(八分仪图 ros-indigo-octomap-mapping(八分地图映射
rosdep 安装 八图映射
玫瑰 八图映射
现在,打开 ~/catkin_ws/src/rotors_simulator/rotors_gazebo/CMakeLists.txt
并在文件底部添加以下几行:
吁
find_package(octomap 要求)
include_directories(${octomap_include_dirs})。
link_libraries($){octomap_libraries})
开放 ~/catkin_ws/src/rotors_simulator/rotors_gazebo/package.xml
并添加以下几行:
xml
<;构建依赖>八地图</构建依赖>;
<;运行依赖>八地图</运行依赖>;
运行以下两行:
信息
第一行将默认 shell 编辑器更改为 编辑.建议使用经验不足的用户使用此功能。 vim (默认编辑器),否则可以省略。
吁
出口 编辑='gedit';
有红花 octomap_server octomap_tracking_server.launch
并更改以下两行:
xml
<;停止 名字="frame_id"; 类型="字符串"; 价值=地图 />;
...
<!--remap from="cloud_in" to="/rgbdslam/batch_clouds" /-->;
到:
xml
<;停止 名字="frame_id"; 类型="字符串"; 价值="世界"; />;
...
<;重映射 从="cloud_in"; 至="/firefly/vi_sensor/camera_depth/depth/points"; />;
运行模拟
在 单独 终端窗口。这将打开 经典仿真场景Gazebo, Rviz 和一个八路图服务器。
吁
玫瑰发射 转子 mav_hovering_example_with_vi_sensor.launch 飞行器名称:=firefly
rviz
玫瑰发射 octomap_server octomap_tracking_server.launch
在 Rviz将窗口左上角的"'固定框架'字段从 "地图'改为 "世界'。现在点击左下角的添加按钮并选择 MarkerArray。然后双击 MarkerArray 并将 'Marker Topic' 从 /free_cells_vis_array
至 /occupied_cells_vis_array
.
现在你应该能看到地板的一部分了。
在 经典仿真场景Gazebo 窗口,在红色转子前面插入一个立方体,你就可以在 Rviz.