官方文档:https://www.cmu-exploration.com/
一、安装与配置:
适用版本: Ubuntu 18.04 ROS Melodic and Ubuntu 20.04 with ROS Noetic.
如果使用 Ubuntu 22.04 with ROS2 Humble, 则需要配置ROS2【https://drive.google.com/file/d/1a01RSrPFan9SV2g2BFP_8GGtnamAdGIc/view?usp=sharing】
git clone https://github.com/HongbiaoZ/autonomous_exploration_development_environment.git
cd autonomous_exploration_development_environment
git checkout distribution
catkin_make
如果报错:
CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:707 (message):
None of the required 'libusb' found
安装:
sudo apt-get install libusb-dev
- 通过执行脚本下载仿真环境(500M左右):
./src/vehicle_simulator/mesh/download_environments.sh
如果不能顺利下载,那么通过https://drive.google.com/file/d/1GMT8tptb3nAb87F8eFfmIgjma6Bu0reV/view进行下载,并放置在:src/vehicle_simulator/meshes
二、启动:
source devel/setup.sh
roslaunch vehicle_simulator system_garage.launch
- 发布waypoint进行执行:
roslaunch waypoint_example waypoint_example_garage.launch
使用不同虚拟环境: ‘campus’, ‘indoor’, ‘garage’, ‘tunnel’, and ‘forest’.
roslaunch vehicle_simulator system_[environment].launch ## []更换为上面的名字
例如forest的效果:
indoor效果:
三、自动导航模型
是否发送导航的边界以及速度是可选的。默认速度为2m/s。发送信息示例位于包waypoint_example
其中:
-
避障:位于包
local_planner
运动基元(动力学模型?)预先加载在模型中;
坐标框表示车辆,黄点表示无碰撞路径;
路线规划器会沿路线发送车辆附近的路点,使用来自terrain_analysis
包的地形图来确定地形的可穿越性 -
地形可穿越性分析:
terrain_analysis
包分析地形的局部平滑度,并将成本关联到地形图上的每个点
系统发布地形图消息,其中每个消息包含一组’pcl::PointXYZI’类型的点。x, y, z的一个点表示的坐标和强度字段存储成本。地形地图以车辆为中心,覆盖10m × 10m的区域。
terrain_analysis_ext
包将地形图扩展到40m x 40m的区域。扩展的地形图将激光雷达点保持在10秒的滑动窗口内,距离车辆4米以内的非衰减区域。
在自主导航系统中,地形图由避碰模块使用,扩展地形图由高级规划模块使用。要在RVIZ中查看地形图或扩展地形图,单击“面板->显示”并选中“terrainMap”或“terrainMapExt”。绿色的点是可穿越的,红色的点是不可穿越的。
- 路点跟踪:
在接收到路点后,系统将车辆引导到该路点。有关调整路径跟随控制的信息,即速度,偏航率,加速度,前视距离,增益和改变车辆大小,参考https://github.com/jizhang-cmu/ground_based_autonomy_basic
四、显示
通过点击“面板->显示”并勾选“overallMap”、“探索区域”和“轨迹”,可以在RVIZ中查看环境、探索区域和车辆轨迹的整体地图。
此外,系统实时绘制三个指标,分别可视化探索体积、行驶距离和算法运行时间。要绘制运行时,用户需要将这些数字作为以下ROS主题的消息发送。
在运行结束时,记录的指标与车辆轨迹一起保存到src/vehicle_simulator/log
文件中。
请注意,由于Gazebo的繁重CPU负载,实时因子< 1 -模拟时钟比真实时钟慢。这里,我们使用模拟时钟来记录运行的时间持续时间,因为它受不同计算机上时钟速度的影响较小
效果:
视频如下:
autonomous_exploration