别再为ROS Noetic安装发愁了!保姆级Ubuntu20.04配置指南(含ARM开发板/Jetson避坑要点)
2026/5/4 7:30:29 网站建设 项目流程

别再为ROS Noetic安装发愁了!保姆级Ubuntu20.04配置指南(含ARM开发板/Jetson避坑要点)

第一次接触ROS的新手们,是否曾被各种安装报错折磨得怀疑人生?从sudo apt update失败到密钥错误,再到ARM平台特有的源配置问题,这些坑我都踩过。本文将用最接地气的方式,带你避开所有雷区,一次性搞定ROS Noetic的安装。

1. 环境准备:打好基础才能事半功倍

在开始安装ROS之前,我们需要确保Ubuntu20.04系统本身处于最佳状态。很多安装失败的问题其实都源于基础环境没配置好。

1.1 更换国内软件源

国内用户最常遇到的第一个拦路虎就是软件源连接超时。默认的国外源在国内访问速度慢且不稳定,我们需要更换为国内镜像源。

备份原有源列表

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

编辑源列表(以阿里云源为例):

sudo nano /etc/apt/sources.list

将文件内容替换为以下阿里云源配置:

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

提示:如果使用NVIDIA Jetson等ARM平台,需要将源地址中的ubuntu替换为ubuntu-ports,例如http://mirrors.aliyun.com/ubuntu-ports/

1.2 系统更新与升级

更换源后,执行以下命令确保系统是最新的:

sudo apt update && sudo apt upgrade -y

常见问题排查:

  • 如果遇到Failed to fetch错误,检查网络连接和源配置是否正确
  • 出现GPG error可以尝试sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [缺失的密钥ID]

2. ROS Noetic核心安装

基础环境就绪后,我们就可以开始安装ROS Noetic了。这部分是核心步骤,但也是最容易出问题的地方。

2.1 添加ROS软件源

使用清华大学的ROS镜像源可以大幅提高下载速度:

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

2.2 添加ROS密钥

密钥验证是确保软件包安全的重要环节:

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

如果遇到密钥服务器连接问题,可以尝试以下备用方案:

sudo apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

2.3 安装ROS桌面完整版

更新软件包索引后安装ROS:

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

安装过程可能需要较长时间(约30分钟到1小时,取决于网络速度)。如果中途断网导致安装失败,可以执行:

sudo apt --fix-broken install

3. 依赖管理工具rosdep的配置

rosdep是ROS的依赖管理工具,但它的初始化(init)和更新(update)经常让国内用户头疼。

3.1 使用rosdepc替代方案

推荐使用国内开发者"小鱼"提供的rosdepc工具,它能完美解决网络问题:

sudo pip3 install rosdepc sudo rosdepc init rosdepc update

注意:如果系统没有安装pip3,需要先执行sudo apt install python3-pip

3.2 传统rosdep的配置方法

如果坚持使用官方rosdep,可以尝试以下优化方案:

sudo rosdep init rosdep update --include-eol-distros

常见问题解决方案:

  • 遇到超时可以设置更长的超时时间:rosdep update --default-timeout=60
  • 完全失败时可以手动下载索引文件:wget https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list

4. ARM平台特殊配置

对于NVIDIA Jetson系列或其他ARM开发板,有几个关键点需要特别注意。

4.1 系统源配置差异

ARM平台需要使用ubuntu-ports而非普通的ubuntu源。以清华源为例:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main universe restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main universe restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main universe restricted deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main universe restricted

4.2 交叉编译工具链

如果需要在x86主机上为ARM平台交叉编译ROS包,需要安装交叉编译工具:

sudo apt install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf

4.3 Jetson平台性能优化

针对Jetson的特定优化:

sudo nvpmodel -m 0 # 设置为最大性能模式 sudo jetson_clocks # 启用jetson_clocks

5. 环境配置与测试

安装完成后,还需要进行一些必要的配置和测试。

5.1 环境变量设置

将ROS环境变量添加到bashrc中:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc

如果使用zsh等其他shell,需要相应修改:

echo "source /opt/ros/noetic/setup.zsh" >> ~/.zshrc source ~/.zshrc

5.2 经典小乌龟测试

验证ROS是否安装成功:

roscore & # 启动ROS核心 rosrun turtlesim turtlesim_node # 启动小乌龟仿真 rosrun turtlesim turtle_teleop_key # 启动键盘控制

5.3 创建工作空间

建议为开发项目创建独立的工作空间:

mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

6. 常见问题解决方案

根据多年ROS教学经验,我整理了新手最常遇到的10个问题及其解决方案:

  1. sudo apt update失败

    • 检查网络连接
    • 确认源配置正确
    • 尝试更换不同的国内源
  2. 密钥错误

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys [缺失的密钥ID]
  3. ARM平台找不到软件包

    • 确认使用的是ubuntu-ports
    • 检查系统架构是否正确:dpkg --print-architecture
  4. rosdep init失败

    • 使用rosdepc替代
    • 或手动创建配置文件
  5. Python版本问题

    • ROS Noetic需要Python3
    • 检查默认Python版本:python --version
  6. 图形界面卡顿

    • 在远程连接时使用-Y而非-X选项
    • 或者配置ROS使用非图形模式
  7. 权限问题

    sudo usermod -aG dialout $USER
  8. 时间同步问题

    sudo apt install chrony sudo chronyc makestep
  9. Gazebo启动失败

    sudo apt install libignition-math4
  10. 网络配置问题

    • 确保所有设备在同一网络
    • 正确设置ROS_MASTER_URIROS_IP

7. 进阶配置与优化

为了让ROS运行得更顺畅,这里分享几个实用的优化技巧。

7.1 网络配置优化

多机通信时的网络配置:

export ROS_MASTER_URI=http://主控机IP:11311 export ROS_IP=本机IP

7.2 开机自启动服务

创建systemd服务自动启动roscore:

sudo nano /etc/systemd/system/roscore.service

添加以下内容:

[Unit] Description=ROS Core Service After=network.target [Service] Type=simple User=your_username ExecStart=/opt/ros/noetic/bin/roscore Restart=on-failure [Install] WantedBy=multi-user.target

7.3 性能监控工具

安装有用的监控工具:

sudo apt install htop nvtop

7.4 自定义bash提示符

~/.bashrc中添加:

export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\[\033[01;33m\]$(__git_ps1)\[\033[00m\]\$ '

8. 实用工具推荐

这些工具能让你的ROS开发效率提升数倍:

  1. Terminator:终端分屏工具

    sudo apt install terminator
  2. Fishros工具集:一键安装各种ROS相关工具

    wget http://fishros.com/install -O fishros && . fishros
  3. VS Code ROS扩展

    • 安装VS Code
    • 搜索安装ROS插件
  4. rqt工具集:可视化调试工具

    sudo apt install ros-noetic-rqt*
  5. PlotJuggler:数据可视化工具

    sudo apt install ros-noetic-plotjuggler
  6. ROS导航工具

    sudo apt install ros-noetic-navigation
  7. Gazebo模型下载

    wget -P ~/.gazebo/models/ http://file.ncnynl.com/ros/gazebo_models.txt
  8. ROS多机通信工具

    sudo apt install ros-noetic-multimaster-fkie
  9. ROS包管理工具

    sudo apt install python3-rosdep2 python3-rosinstall python3-rosinstall-generator python3-wstool
  10. 硬件加速工具

    sudo apt install ros-noetic-robot-upstart

9. 不同开发板的特殊配置

针对市面上主流的ARM开发板,这里给出具体的配置建议。

9.1 NVIDIA Jetson系列

Jetson设备需要特别注意GPU驱动和电源管理:

sudo apt install nvidia-jetpack sudo /usr/bin/jetson_clocks

9.2 Raspberry Pi

树莓派上的优化配置:

sudo apt install ros-noetic-raspicam-node sudo raspi-config # 启用摄像头等接口

9.3 Rockchip平台

RK3399等开发板的配置:

sudo apt install linux-headers-$(uname -r)

9.4 其他ARM开发板

通用ARM开发板建议:

sudo apt install linux-firmware sudo apt install firmware-brcm80211

10. 开发实践建议

根据多年ROS开发经验,分享几个让项目更顺利的建议:

  1. 版本控制:从一开始就使用git管理代码

    sudo apt install git git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
  2. 文档习惯:为每个包创建README.md

    • 记录包的功能
    • 依赖关系
    • 使用说明
  3. 模块化开发:遵循ROS最佳实践

    • 每个功能独立成包
    • 清晰的接口定义
    • 合理的依赖管理
  4. 持续集成:设置自动化测试

    sudo apt install ros-noetic-rostest
  5. 性能分析:定期检查系统负载

    rostopic hz /topic_name
  6. 安全备份:定期备份关键配置

    tar -czvf ros_backup.tar.gz ~/.ros /etc/apt/sources.list* /etc/ros/rosdep/
  7. 社区参与:遇到问题时

    • 先查ROS Wiki
    • 再搜索GitHub Issues
    • 最后在ROS Answers提问
  8. 学习资源:推荐的学习路径

    • 官方Tutorials
    • ROS By Example
    • 实践项目驱动学习
  9. 硬件选择:开发板选购建议

    • 初学者:Raspberry Pi
    • 中级项目:Jetson Nano
    • 高级应用:Jetson AGX Xavier
  10. 调试技巧:高效的调试方法

    • 使用rqt_graph查看节点关系
    • 用rosbag记录和回放数据
    • 逐步增加日志输出级别

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询