map_generator

提示

map_generator节点可用于模拟真实环境中的感知信息,生成用于路径规划的全局点云和局部点云地图。

map_generator节点对应的源码文件路径如下,分别对应有map_generator.cpp和map_generator_node.cpp

/Prometheus/Modules/simulator_utils/map_generator

如何运行

全局点云

launch运行:

roslaunch prometheus_simulator_utils map_generator.launch
  • 启动后可以在rivz中看到绿色的全局点云
  • map_name为地图名称,注意选择与地图对应的gazebo world
  • 如果不需要启动gazebo显示,可以将gazebo_enable设置为false
  • swarm_num为无人机数量,默认为1
  • 与地图相关的参数可以在map_generator.cpp文件中修改,也可以引出到launch文件中修改,具体说明见代码注释
  • 此时由于没有发布无人机odom,因此在rviz中只能订阅到全局点云信息,而没有局部点云信息

image.png

运行结果展示

image.png

运行终端信息

默认的launch参数配置为

image.png

map_name和gazebo world应遵循如下对应关系

  • planning_test 对应 planning_test.world
  • planning_test2 对应 planning_test2.world

局部点云

launch运行:

roslaunch prometheus_simulator_utils map_generator.launch

image.png

运行结果

  • 启动之后可以在rviz中看到绿色的全局点云以及橙色的局部点云
  • 局部点云必须要使用到无人机的odom数据,这个launch启动也加载了fake_odom,会在下一章节中详细介绍fake_odom模块。

节点详解

image.png

节点图

gazebo节点与map_generator相互独立

  • 内置planning_test,planning_test2,random,test四种地图(可通过参数配置选择地图种类或自行构建地图,PS:如果需要gazebo显示,自行构建的地图需要自行构建gazebo环境)

定时发布全局点云数据

  • 话题名称:/map_generator/global_cloud
  • 话题类型:sensor_msgs::PointCloud2
  • 发布频率可通过参数配置,默认为1Hz

image.png

定时发布局部点云数据

  • 发布局部点云需提供无人机的odom信息,订阅话题为:/uav(id)/prometheus/odom
  • 话题名称:/uavid/map_generator/local_cloud
  • 话题类型:sensor_msgs::PointCloud2
  • 发布频率可通过参数配置,默认为10Hz

image.png

TODO

  • 目前laser_sim_node.cpp仍在测试阶段,功能为模拟激光雷达数据