4 · ROS Noetic 安装

好,到了最让人兴奋的一步——装 ROS。说实话,我当年第一次装 ROS 的时候,被 rosdep 折腾到怀疑人生。但别担心,这一章我会把每一步拆开揉碎了讲,你跟着走就行。

添加源 & 密钥 apt 安装 rosdep init 测试 工作空间创建 & 小乌龟验证 catkin_make → roscore → turtlesim

4.1 添加软件源与密钥

ROS Noetic 对应 Ubuntu 20.04。我个人习惯先把源配好,避免后面出现 404。打开终端,一行一行来:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt install curl -y
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update

这里有个小坑——有时候 raw.githubusercontent.com 被墙,密钥加不上。我遇到过两次,解决办法是手动下载 ros.asc 文件,或者换国内镜像源。不过大部分情况下,上面三行就能搞定。

4.2 安装 ROS Noetic 完整版

我建议直接装 desktop-full,里面包含了 rviz、gazebo、各种常用库。省得后面缺包再补,麻烦。

sudo apt install ros-noetic-desktop-full -y

装完之后,别忘了配置环境变量。你想想看,每次开终端都要手动 source 多累?直接写进 .bashrc 一劳永逸:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
💡 我的习惯: 装完立刻运行 roscore 测试一下。如果能看到 started core service 之类的信息,说明 ROS 已经活了。

4.3 rosdep 初始化与配置

rosdep 是 ROS 的依赖管理工具。说白了,它帮你自动安装某个包需要的系统依赖。但初始化这一步,嗯,这里要注意——很多人卡在这一步。

sudo rosdep init
rosdep update

如果 sudo rosdep init 报错说 找不到命令,先安装:

sudo apt install python3-rosdep -y

我曾经在服务器上配环境,rosdep update 一直超时。后来发现是网络问题,换成手机热点就好了。你也可以试试加代理,或者直接修改 /etc/hosts 把 raw.githubusercontent.com 指向可用 IP。

⚠️ 避坑: 如果你用的是国内网络,rosdep update 大概率会失败。别慌,可以搜索「rosdep 国内镜像」替换源列表。或者用我下面这个临时方案:
sudo apt install python3-rosdep2 然后手动下载更新文件。但最稳妥的还是科学上网。

4.4 创建工作空间

工作空间就是你的 ROS 项目文件夹。我习惯叫 catkin_ws,你也可以叫别的。但记住,后面所有 SLAM 代码都会放在这里。

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make

第一次 catkin_make 会生成 build 和 devel 两个文件夹。然后 source 一下:

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

你可以用 echo $ROS_PACKAGE_PATH 检查一下,如果能看到你的工作空间路径,就说明配置成功了。

4.5 小乌龟测试 —— 验证安装

终于到了最好玩的部分。ROS 自带一个小乌龟模拟器,用来验证整个通信框架是否正常。开三个终端,或者用 tmux 分屏:

终端命令说明
1roscore启动 ROS 主节点
2rosrun turtlesim turtlesim_node启动小乌龟窗口
3rosrun turtlesim turtle_teleop_key键盘控制乌龟移动

看到一只小乌龟在蓝色窗口里,并且你能用方向键控制它移动——恭喜,ROS Noetic 安装成功!

🎯 验证要点: 如果乌龟不动,检查一下 rosrunturtlesim 节点启动后闪退,原因是缺少 qt 依赖,装一下 sudo apt install ros-noetic-qt-gui 就好了。

嗯,到这里 ROS 环境就彻底跑通了。你先把小乌龟玩熟,感受一下 ROS 的发布/订阅模式,后面章节会深入讲解。