CMU-自主探索导航系统(TARE & FAR Planner)部署
去年CMU机器人实验室团队开源了整套的自主探索导航系统,相关文章还荣获IROS2022 最佳学生论文。因此想在实验室的设备上试一下,先跑个官方demo试试。但中文互联网搜索结果的文章质量果然不出我所料,全都是互相抄,下载下来的源码CmakeList文件都是错的😅,最后还是去CMU这个项目的官网才把demo跑起来了。下面记录一下部署过程,我的系统环境是Ubuntu20.04、ROS1 Noetic。
一、安装仿真环境
先安装CMU团队制作的仿真环境,仿真环境包含多楼层停车场、隧道、森林、校园等多种复杂环境,能把这些环境跑好说明这个自主探索导航系统还是很有普适性的。

先安装依赖环境
1 | sudo apt update |
克隆开源存储库
1 | git clone https://github.com/HongbiaoZ/autonomous_exploration_development_environment.git |
更换分支,并编译。
1 | cd autonomous_exploration_development_environment |
如果可以科学上网,运行脚本下载模拟环境,由于网络环境不同,下载可能需要一会。
1 | ./src/vehicle_simulator/mesh/download_environments.sh |
当然也可以下载官方整理的百度网盘:
1 | 链接:https://pan.baidu.com/share/init?surl=7PFWGbQGLLfPy1mHNiiS4A |
将在百度网盘下载的”autonomous_exploration_environments.zip”解压之后放在src/vehicle_simulator/mesh文件夹下。最终的mesh文件夹结构应该和下面的一致:
1 | mesh |
然后运行仿真环境
1 | source devel/setup.sh |
现在,可以通过点击RVIZ中的“waypoint”按钮发送航路点,然后点击一个点来设置航路点。车辆将导航到航路点,避开沿途的障碍物。请注意,航路点应该是可到达的,并且在车辆附近。
或者,可以运行ROS节点来发送一系列路点。在另一个终端中,转到文件夹并获取ROS工作区,然后使用下面的命令行运行ROS节点。:
1 | roslaunch waypoint_example waypoint_example_garage.launch |
存储库包含一组不同类型和规模的模拟环境。要在特定环境下启动系统,请使用下面的命令行。将“environment”替换为环境名称,即’campus’,、’indoor’,、’garage’、 ‘tunnel’和’forest’。现在,用户可以使用RVIZ中的“Waypoint”按钮来导航车辆。要在Gazebo GUI中查看环境中的车辆,在启动文件中设置’gazebo_gui = true’,该文件位于’src/vehicle_simulator/launch’中。
1 | roslaunch vehicle_simulator system_environment.launch |
二、TARE Exploration Planner部署
同样的,先克隆仓库:
1 | git clone https://github.com/caochao39/tare_planner.git |
编译后就可以运行了
1 | cd tare_planner |
去上一步的工作空间下运行仿真环境:
1 | source devel/setup.sh |
然后在现在的工作空间下运行TARE自主探索算法:
1 | source devel/setup.sh |
现在,应该看到自主探索的行动。同样的,要在不同的环境中启动,使用下面的命令行,并将“environment”替换为开发环境中的一个环境名称,即’campus’, ‘indoor’, ‘garage’, ‘tunnel’, 和 ‘forest’。
1 | roslaunch vehicle_simulator system_environment.launch |
三、FAR Planner部署
克隆仓库
1 | git clone https://github.com/MichaelFYang/far_planner |
编译
1 | cd far_planner |
同样的,去第一个工作空间下运行仿真环境:
1 | source devel/setup.sh |
然后在现在的工作空间下运行FAR-Planner算法
1 | source devel/setup.sh |
现在,我们可以发送一个目标,通过单击在RVIZ的“Goalpoint”按钮,然后点击一个点设置的目标。车辆将导航到目标,并在沿途建立一个可见性图表(青色)。可见性图所覆盖的区域变成了自由空间。当在自由空间中导航时,计划者使用构建的可见性图,当在未知空间中导航时,计划者试图发现通往目标的方法。通过点击“Reset Visibility Graph”按钮,规划器将重新初始化可见性图。通过取消选中“Planning Attemptable”复选框,规划器将首先尝试在空闲空间中找到一条路径。这条路将以绿色显示。如果不存在这样的路径,规划器会一起考虑未知空间。路径将以蓝色显示。通过取消选中”Update Visibility Graph“复选框,规划器将停止更新可见性图。
如果是实车可以用手柄遥控,这里是仿真环境,Rviz右下角有一个虚拟遥控器,可以遥控车辆移动,并且移动过程中会自动调用局部路径规划自动避开障碍物。




