ROS2 Jazzy Navigation2 (Nav2)
·
在WSL Ubuntu中部署ROS2 Jazzy Navigation2 (Nav2)
我会帮你从零开始,在WSL Ubuntu环境下完整部署ROS2 Jazzy版本的Navigation2(Nav2),包括环境准备、安装配置、功能验证等核心步骤。
一、环境准备
1. 确认WSL环境
首先确保你的WSL是Ubuntu 24.04(ROS2 Jazzy推荐版本):
# 检查WSL版本
wsl --version
# 查看已安装的发行版
wsl --list --verbose
# 如果不是Ubuntu 24.04,安装对应版本
wsl --install -d Ubuntu-24.04
2. 配置Ubuntu基础环境
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装必要依赖
sudo apt install -y curl gnupg2 lsb-release git
# 设置locale(避免ROS2中文乱码)
sudo apt install -y locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
二、安装ROS2 Jazzy
1. 添加ROS2软件源
# 添加ROS2 GPG密钥
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加源到sources.list.d
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
2. 安装ROS2 Jazzy完整版
sudo apt update
# 安装ROS2 Jazzy桌面完整版(包含RViz、Nav2等)
sudo apt install -y ros-jazzy-desktop-full
# 安装开发工具
sudo apt install -y python3-colcon-common-extensions python3-rosdep python3-vcstool
3. 初始化ROS2环境
# 初始化rosdep(首次使用必须)
sudo rosdep init
rosdep update
# 设置环境变量(临时生效)
source /opt/ros/jazzy/setup.bash
# 永久添加环境变量到bashrc
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
# 生效配置
source ~/.bashrc
三、安装并配置Nav2
1. 安装Nav2二进制包(推荐新手)
# 安装Nav2核心包
sudo apt install -y ros-jazzy-navigation2 ros-jazzy-nav2-bringup
# 安装仿真器(用于验证Nav2功能)
sudo apt install -y ros-jazzy-turtlebot3-gazebo ros-jazzy-turtlebot3-navigation2
2. 创建工作空间(可选,用于源码编译)
如果需要自定义Nav2功能,建议创建源码工作空间:
# 创建工作空间目录
mkdir -p ~/nav2_ws/src
cd ~/nav2_ws/src
# 克隆Nav2源码(Jazzy分支)
git clone https://github.com/ros-planning/navigation2.git -b jazzy
# 安装依赖
cd ~/nav2_ws
rosdep install --from-paths src --ignore-src -r -y
# 编译工作空间
colcon build --symlink-install
# 添加工作空间环境变量
echo "source ~/nav2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
四、验证Nav2功能
1. 配置TurtleBot3模型
# 设置TurtleBot3模型(永久生效)
echo "export TURTLEBOT3_MODEL=waffle" >> ~/.bashrc
source ~/.bashrc
2. 启动Nav2仿真示例
终端1:启动Gazebo仿真环境
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
终端2:启动Nav2导航功能
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True
终端3:发送导航目标(可选)
# 启动RViz(可视化导航)
ros2 launch turtlebot3_navigation2 rviz_launch.py
# 或通过命令行发送目标点
ros2 action send_goal /navigate_to_pose nav2_msgs/action/NavigateToPose "{pose: {header: {frame_id: map}, pose: {position: {x: 2.0, y: 0.0, z: 0.0}, orientation: {w: 1.0}}}}"
五、常见问题解决
1. WSL中Gazebo黑屏/卡顿
# 安装WSL图形界面支持
sudo apt install -y mesa-utils libgl1-mesa-glx
# 设置GPU加速(需要Windows 11 + WSL2)
echo "export LIBGL_ALWAYS_SOFTWARE=0" >> ~/.bashrc
source ~/.bashrc
2. rosdep update失败
# 替换rosdep源(解决网络问题)
sudo sed -i 's/raw.githubusercontent.com/ghproxy.com\/https:\/\/raw.githubusercontent.com/g' /usr/lib/python3/dist-packages/rosdep2/sources_list.py
rosdep update
3. Nav2节点启动失败
# 检查节点状态
ros2 node list
# 查看日志
ros2 run rclpy_logger logger
# 重新加载参数
ros2 param load /nav2_controller ~/nav2_ws/src/navigation2/nav2_controller/params/default_params.yaml
总结
- 核心步骤:WSL Ubuntu 24.04 → 安装ROS2 Jazzy → 安装Nav2二进制包/源码编译 → 用TurtleBot3仿真验证功能。
- 关键配置:必须设置
TURTLEBOT3_MODEL和use_sim_time:=True才能正常运行仿真导航。 - 常见问题:WSL中Gazebo需配置图形加速,rosdep失败可替换源,Nav2启动异常需检查参数和依赖。
通过以上步骤,你可以在WSL Ubuntu中完整运行ROS2 Jazzy的Nav2导航功能,适合新手学习和开发。如果需要自定义导航算法,可以基于源码工作空间进行二次开发。
更多推荐



所有评论(0)