当前位置: 首页 > news >正文

Ubuntu 20.04 装 ROS Noetic 踩坑记:从 rosdep init 超时到小海龟跑起来

Ubuntu 20.04 安装 ROS Noetic 全流程实战指南

第一次接触ROS(Robot Operating System)时,那种既兴奋又忐忑的心情至今记忆犹新。作为一个专为机器人开发设计的开源框架,ROS在学术界和工业界都有着广泛的应用。然而,对于新手来说,安装过程往往成为第一道门槛。本文将带你完整走过Ubuntu 20.04上安装ROS Noetic的全过程,特别是那些官方文档没有详细说明的"坑点"。

1. 环境准备与基础安装

在开始之前,确保你的Ubuntu 20.04系统已经更新到最新状态。打开终端(Ctrl+Alt+T),执行以下命令:

sudo apt update && sudo apt upgrade -y

1.1 设置软件源

ROS的软件包通过APT仓库分发,我们需要先添加ROS官方源。由于网络原因,国内用户建议使用清华大学的镜像源:

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

1.2 添加GPG密钥

为了验证软件包的完整性,需要添加ROS的GPG密钥:

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

1.3 安装ROS Noetic完整版

更新APT缓存后,安装ROS Noetic桌面完整版,这个版本包含了ROS、rqt、rviz、机器人通用库等:

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

安装过程可能需要15-30分钟,取决于你的网络速度。如果中途遇到网络问题导致失败,可以尝试重新执行安装命令。

提示:安装完成后,可以查看已安装的ROS包列表:apt list --installed | grep ros-noetic

2. 解决rosdep初始化与更新问题

2.1 安装rosdep工具

rosdep是ROS的依赖管理工具,在安装ROS包时自动处理系统依赖。首先确保安装了正确版本的rosdep:

sudo apt install python3-rosdep2

2.2 处理rosdep init失败

执行sudo rosdep init时,最常见的错误是无法从GitHub下载默认源列表。这是因为raw.githubusercontent.com的访问问题。解决方法如下:

  1. 查询当前可用的IP地址:

    ping raw.githubusercontent.com
  2. 修改/etc/hosts文件,添加解析记录:

    sudo nano /etc/hosts

    在文件末尾添加(IP地址以实际查询结果为准):

    185.199.108.133 raw.githubusercontent.com
  3. 如果仍然失败,可以尝试手动下载文件并放置到正确位置:

    sudo mkdir -p /etc/ros/rosdep/sources.list.d sudo wget https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list -O /etc/ros/rosdep/sources.list.d/20-default.list

2.3 解决rosdep update超时

rosdep update命令需要从多个GitHub仓库获取数据,经常会因网络问题失败。我们可以通过修改Python源码添加代理:

  1. 找到需要修改的文件位置:

    sudo find /usr/lib/python3/dist-packages -name "*.py" | xargs grep -l "raw.githubusercontent"
  2. 对每个找到的文件,在GitHub URL前添加代理前缀https://ghproxy.com/。例如:

    sudo sed -i 's/https:\/\/raw.githubusercontent.com/https:\/\/ghproxy.com\/https:\/\/raw.githubusercontent.com/g' /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py
  3. 修改完成后,再次运行:

    rosdep update

    应该能看到类似下面的成功输出:

    reading in sources list data from /etc/ros/rosdep/sources.list.d Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml ...

3. 环境配置与基础测试

3.1 设置环境变量

为了让系统找到ROS命令,需要将ROS环境变量添加到bashrc中:

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

3.2 安装常用工具

安装一些常用的ROS开发工具:

sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

3.3 验证安装

输入以下命令测试ROS是否安装成功:

roscore

如果看到类似下面的输出,说明ROS核心服务启动成功:

... logging to /home/user/.ros/log/xxxxx started core service [/rosout]

按Ctrl+C停止roscore。

4. 运行小海龟仿真

4.1 启动ROS Master

打开第一个终端,启动ROS核心服务:

roscore

4.2 启动小海龟仿真器

打开第二个终端,启动小海龟仿真节点:

rosrun turtlesim turtlesim_node

此时应该能看到一个蓝色窗口,中间有一只小海龟。

4.3 启动控制节点

打开第三个终端,启动键盘控制节点:

rosrun turtlesim turtle_teleop_key

保持这个终端为活动窗口,使用键盘方向键控制小海龟移动。

4.4 理解ROS节点

可以通过以下命令查看当前运行的节点:

rosnode list

输出应该包含:

/rosout /teleop_turtle /turtlesim

5. 常见问题与解决方案

5.1 安装后找不到roscore命令

如果输入roscore提示命令未找到,可能是环境变量未正确设置。检查:

echo $ROS_PACKAGE_PATH

如果没有输出或输出不正确,重新执行:

source /opt/ros/noetic/setup.bash

5.2 图形界面显示问题

如果在远程服务器上安装,需要通过SSH连接并显示图形界面,需要添加X11转发:

ssh -X username@hostname

5.3 软件包依赖问题

安装特定ROS包时可能会遇到依赖问题,可以使用rosdep自动安装依赖:

rosdep install --from-paths src --ignore-src -r -y

6. ROS开发环境进阶配置

6.1 创建工作空间

标准的ROS开发流程从创建工作空间开始:

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

6.2 设置工作空间环境

将工作空间的环境设置添加到bashrc:

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

6.3 安装常用功能包

一些常用的ROS功能包可以提前安装:

sudo apt install ros-noetic-rviz ros-noetic-gmapping ros-noetic-navigation

7. ROS网络配置技巧

7.1 多机通信设置

在多台机器上使用ROS时,需要设置环境变量:

export ROS_MASTER_URI=http://master_ip:11311 export ROS_IP=your_local_ip

7.2 查看ROS网络信息

rostopic list # 查看所有话题 rosservice list # 查看所有服务 rosmsg list # 查看所有消息类型

8. 性能优化与调试

8.1 提高编译速度

使用-j参数并行编译:

catkin_make -j$(nproc)

8.2 ROS日志管理

ROS日志默认存储在~/.ros/log,可以定期清理:

rosclean check rosclean purge

8.3 可视化工具

安装一些有用的可视化工具:

sudo apt install ros-noetic-rqt ros-noetic-rqt-common-plugins

启动rqt图形界面:

rqt
http://www.jsqmd.com/news/682018/

相关文章:

  • 时间序列预测入门避坑:Prophet和LSTM的5个常见误区与调优技巧(基于AirPassengers数据集)
  • AI 时代流量新入口:新无敌门锁携手昊客网络抢占GEO豆包营销先机 - 深圳昊客网络
  • Windows 11 下从零构建Chromium:环境配置与编译实战
  • 2026联想电脑代理商:行业发展三大核心趋势 - 速递信息
  • 如何永久保存微信聊天记录:开源工具的完整使用指南与智能分析
  • 学术“变形金刚”:书匠策AI如何一键解锁期刊论文全流程?
  • 探讨佛山偶联剂价格,中杰化工性价比怎样 - myqiye
  • Visual Studio工具箱里找不到自定义控件?手把手教你排查WinForm控件库引用失败的5个坑
  • VSCode远程开发必备:5分钟搞定服务器oh-my-zsh环境,终端效率翻倍
  • 从Log4j2漏洞看企业安全:我们当时的应急响应复盘与长期加固建议
  • 告别Boost和Qt?用Poco C++库从零搭建一个跨平台HTTP服务器(附完整源码)
  • P11054
  • 4月22日成都地区华岐产镀锌钢管(Q235B;内径DN15-200mm)现货报价 - 四川盛世钢联营销中心
  • 别再只写计数器了!用Microsemi Libero SoC点亮LED的三种Verilog实现思路对比
  • Treble Check终极指南:3分钟快速检测安卓设备兼容性的免费工具
  • PL2303老芯片复活指南:Windows 10/11终极驱动解决方案
  • 游戏搬砖党看过来:定时执行专家VBS脚本全攻略,实现自动挂机、领奖励(鼠标键盘模拟)
  • 雄县邦讯商贸:西城浴袍回收电话 - LYL仔仔
  • Xilinx DDR4 MIG 与 PCIe 协同设计的工程实践与调试
  • 多相滤波器组在实时频谱分析仪(RTSA)里是怎么工作的?一个工程师的视角
  • 2026佛山聚硅酸乙酯优质供应商,价格实惠的有哪些 - mypinpai
  • 别再只会F5/F8了!SAP ABAP Debugger里那些被忽略的‘神器’按钮详解(含变量监控与数据修改)
  • BDD100K:大规模自动驾驶数据集的多任务学习完整解决方案
  • 如何用Python命令行工具永久保存网易云音乐
  • 河南金迪机械设备:南阳木片燃烧机出售家公司 - LYL仔仔
  • 全面战争模组开发终极指南:RPFM高效工作流解析
  • 聊聊2026年宜兴餐厅推荐服务,看看哪家性价比更高 - 工业设备
  • 2026年通辽设备搬运机构推荐top榜单/附近搬家,个人搬家,搬家公司,精品搬家,工厂搬迁 - 品牌策略师
  • 如何用League Akari本地工具箱快速提升英雄联盟游戏效率:终极免费指南
  • 变压器科普与厂家选型全攻略:从参数到售后 - 资讯焦点