1.下载并跑通开源Navigation2代码。
2.实现在二维仿真环境中的导航。
下载nav2可以用apt直接安装二进制文件,这样就像是下载软件一样,不能改动源代码,只能使用。
cpp
sudo apt install ros-humble-navigation2
sudo apt install ros-humble-nav2-bringup
sudo apt install ros-humble-turtlebot3-gazebo
由于我需要更改源码的局部规划功能,故需要下载源码进行编译,我所用的是Ubuntu22.04, ros2-humble, 故需要在左上角的分支中选择humble版本的代码,下载zip个格式(因为直接gitclone 拉取不下来)。
官方网址如下: https://github.com/ros-navigation/navigation2/tree/humble

下载完毕,解压到nav2_ws/src工作空间下,进行依赖环境的安装和代码编译。
- 自动下载工作空间下的src中,所有功能包中package.xml中的所有依赖。
cpp
rosdep install --from-paths src --ignore-src -r -y
| 参数 | 含义 |
| rosdep install | 安装依赖包 |
| --from-paths src | 扫描 src/ 目录下所有包的 package.xml,读取里面的依赖声明 |
| --ignore-src | 跳过 src/ 里正在编译的源码包本身,只装外部依赖 |
| -r | 遇到某个包装失败不中断,继续装其他的 |
-y |
自动确认,不让你手动按 y |
|---|
- 由于直接colcon build编译会卡死闪退。
原因:不能12个CPU线程全部运行会卡死。
解决:你的机器如果有 12核 ,设 -j12 就是让12 个编译任务同时跑,编译最快。 设 -j2 就是只同时跑 2 个任务(两个cpp文件),速度慢,但内存占用少
cpp
MAKEFLAGS="-j2" colcon build --symlink-install
- 运行nav2的启动代码。
cpp
ros2 launch nav2_bringup bringup_launch.py \map:=/home/robot/nav2_ws/src/navigation2-humble/nav2_bringup/maps/MG_map.yaml