详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!

2023-05-16

  本篇文章写于2020.10,经过很多小伙伴的验证,文章所介绍的步骤是可以正常完成安装的,现在是2021.10,经过近期的探索,我将安装步骤进行了进一步的优化,使安装变得更加快速,更加简单,我已经验证了其可行性,期待更多的小伙伴们一起来验证,最新版安装教程链接如下:【请点击此处跳转】

  当然如果你在最新版文章中,遇到了没有提及的错误,可以返回本文章寻找解决方法。


   1、添加ROS软件源

     将以下命令复制到ubuntu的终端执行

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

     或者用下面这条命令(据说这条命令可以提高下载速度)

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

   2、添加密钥

     将以下命令复制到ubuntu的终端执行

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

     成功后会显示如下界面:


   3、更新软件源

     将以下命令复制到ubuntu的终端执行(在这里顺便说一下,如果用wifi更新慢或者失败的话,切换至手机热点,再执行下面的命令试一下)

sudo apt update

     成功后会显示如下界面:


   4、做完上面的三步就可以开始安装ROS了

     将以下命令复制到ubuntu的终端执行(安装ROS的指令)

sudo apt install ros-melodic-desktop-full

     因ubuntu版本的不同其安装指令也有可能不同,我的是ubuntu20.04 执行上面的代码时显示:无法定位软件包 ros-melodic-desktop-full ,然后改为执行下面的命令来安装:

sudo apt install ros-noetic-desktop-full

     会显示如下界面:


     输入Y继续(保证有网络),就这568MB我下了整整一天。。。。。前80%挺快的用了1分钟左右吧,从81%到100%那速度是真慢啊,当然你可以尝试换一下软件源试一试,换源方法见文章Ubuntu如何通过简单的几步操作来配置系统的软件源、找不到软件和更新怎么办?(带动态图文介绍)

     如果在安装过程中你有事需要关闭电脑,可以输入ctrl+c暂停安装,然后正常关闭就可以了,下一次有时间继续安装的时候,按ctrl+alt+t打开终端后,按↑就可以调出之前输入过的安装命令sudo apt install ros-noetic-desktop-full,然后回车输入密码后,就可以继续安装了,我就是分3次下完的。。。

     安装完后的界面如下(我又重新输入了一遍安装命令,确认已经是最新版了):


   5、初始化rosdep

     输入以下的命令,先对其初始化一下

           sudo rosdep init

     如果出现以下界面,那么恭喜你,你可以省下一些麻烦了,直接跳到第6步就行了:

     如果出现了以下几种错误,也不要担心,下面几种错误我都经历过 ,当然也就为大家整理好了解决方法

   (1)错误1:找不到命令

     尝试着输入以下命令

         sudo apt install python-rosdep2

     或者:

         sudo apt install python3-rosdep2

    这时候它会出现以下的界面,输入Y继续



    到这里如果再输入sudo rosdep init命令试试,如果出现了之前介绍的,我们想要的界面,请跳到第6步,若出现了新的错误,请继续看本步(第5步)的内容

   (2)错误2:ERROR: cannot download default sources list from:https : //raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.

    输入以下命令:

       sudo gedit /etc/hosts

    然后在打开的hosts文件中添加如下的内容,然后保存退出

        199.232.28.133 raw.githubusercontent.com

    到这里如果再输入sudo rosdep init命令试试,如果出现了之前介绍的,我们想要的界面,请跳到第6步,若出现了新的错误,请继续看本步(第5步)的内容

   (3)错误3:ERROR: default sources list file already exists: /etc/ros /rosdep/sources.list.d/20-default.listPlease delete if you wish to re-initialize

   输入以下命令:

           sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

    到这里如果再输入sudo rosdep init命令试试,应该就会出现了之前介绍的我们想要的界面了

   6、更新rosdep

    输入以下命令:

        rosdep update

    怎么说呢,这一步真的很令人难受,很容易出现没有找到资源或者链接超时之类的错误,比如:unable to process source或error loading sources list: The read operation timed out

    我在网上查阅了很多的资料,但是针对每个人的网络不同这些效果也不同,以上的错误多半是网络原因导致的,可以切换成手机热点试一下,每个人的状况可能不太一样,反正我试了一下毫无作用,然后当天试了20遍左右(也就是只要出错了,就再输入rosdep update重新试一下),一直出错,然后我有点事就出去了,等到第二天下午再试的时候一遍就成功了(所以说,不急着用的同学,在试了几遍后如果一直错误,可以换不同的时间段再试(说白了,这个跟你的网络波动有关,玄学。。。)),成功后的界面如下所示:


    急着用的小伙伴只能不断的重复试了,下面介绍一种我在网上查到的一种用vim提高成功几率的方法(我没试过哈)

    (1)需要先安装vim

     输入以下指令,首先切换到root用户

           sudo su root

     输入以下指令,下载安装vim,然后输入y,确定下载安装

        sudo apt-get install vim

     最后输入vim,确认一下有没有安装成功

    (2)利用vim调大DOWNLOAD_TIMEOUT的值

    更改 /usr/lib/python2.7/dist-packages/rosdep2/下的三个文件sources_ list.py、gbpdistro_support.py、rep3.py中的DOWNLOAD_TIMEOUT = 15.0值,改大一点,可以改成60试一下

sudo vim /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
sudo vim /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo vim /usr/lib/python2.7/dist-packages/rosdep2/rep3.py

    打开文件,在命令行模式输入“:/DOWNLOAD_TIMEOUT”搜索到参数设置的地方,修改过后输入:wq保存退出就行了。这个修改过后只是成功的几率会高很多,后面执行命令的时候发现卡住了就Ctrl + C重来多执行几次试一下

   7、设置环境变量

    输入以下命令:

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

    或者下面的这行代码,注意到底是melodic还是noetic或者是kinetic是由你的ubuntu的版本决定的,比如我的ubuntu是20.04版本的,对应的是noetic,也就是应该下面的这行代码,而不是上面那行

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

    输入以下命令,运行该脚本让环境变量生效

        source ~/.bashrc

   8、 安装rosinstall

    输入以下命令:

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

     如果提示没有可安装候选,如下所示:

    按照提示更换软件包就行了,按照提示更改为以下命令:

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

   9、 验证ROS是否安装成功

    按正常来说ROS到这里就安装完成了,现在我们来验证一下,输入以下命令:

        roscore

    如果出现了以下的问题说明,之前的安装没有安装全

    输入以下命令,把没安装的安装一下就好了(如果显示有几个安装包无法下载,是因为网络的原因重新输入以下命令就行了)

      sudo apt install ros-noetic-desktop-full

    到这里再输入roscore看一下,若安装成功会显示如下界面:

    然后我们启动一下小海龟的仿真器试一试,按ctrl+alt+t打开一个新的终端,输入以下命令

            rosrun turtlesim turtlesim_node

    按ctrl+alt+t再打开一个新的终端,输入以下命令

          rosrun turtlesim turtle_teleop_key

    这时候你按键盘上的↑↓←→键就可以控制小海龟移动了!!!

     那么恭喜你的ROS已经成功安装完了!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!! 的相关文章

随机推荐

  • STM32 四轴无人机的设计——基于HCSR04超声波模块的距离检测与警报设计

    1 系列总述 从现在开始将会进入四轴无人机的制作 xff0c 我是第一次制作四旋翼 xff0c 从前没有接触过这个方面 xff0c 手边的参考资料只有一本四轴的设计书和正点原子F405飞控的源码 xff0c 所以代码逻辑设计方面肯定有所欠缺
  • 【C++基础】inline与内联函数

    目录 引入 inline 关键字inline使用限制类中的成员函数与inline 引入 inline 关键字 为了解决一些频繁调用的小函数大量消耗栈空间 xff08 栈内存 xff09 的问题 xff0c 特别的引入了 inline 修饰符
  • 串口通信的基本原理详解

    目录 串口通信 串口通信的两种基本方式 异步数据的数据发送过程 异步通信的数据接收过程 9针串口 xff08 DB9 xff09 TTL与RS232区别 TTL RS232 xff1a 串口通信的数据格式 通讯方式 偶校验与奇校验 停止位
  • jeston nano安装Ubuntu镜像时启动遇到问题

    A start job is running for End user configuration after initial OEM installation 开始我跑了一下午 43 一晚上 xff0c 都没成功 xff0c 第二天 xf
  • cmake 常用变量、常用环境变量、常用语法总结

    一 cmake 变量引用的方式 前面我们已经提到了 使用 进行变量的引用 在 IF 等语句中 是直接使用变量名而不通过 取值 二 cmake 自定义变量的方式 主要有隐式定义和显式定义两种 隐式定义的例子 xff1a PROJECT 指令
  • Java基础篇:Iterator迭代器

    一 什么是Iterator xff1a 迭代器 Iterator 是一个对象 xff0c 它的工作是遍历并目标序列中的对象 xff0c 它提供了一种访问一个容器 container 对象中的各个元素的方法 xff0c 把访问逻辑从不同类型的
  • 2022-2-19 ros环境变量

    学习时间及标题 xff1a 2022 2 19 ros环境变量 学习内容 xff1a 1 添加环境变量 xff1a source span class token operator span span class token operato
  • EGO-Planner: An ESDF-free Gradient-based Local Planner for Quadrotors(论文学习)

    EGO规划器 xff1a 一种基于ESDF自由梯度的四转子局部规划器 摘要 ESDF地图被广泛运用在局部地图的梯度方向和大小估计之中 xff0c 但是由于我们在进行轨迹优化的过程中 xff0c 只用到了ESDF地图中很小的一部分 xff0c
  • cmake "undefined reference to"

    main函数在调用其他 c或 cpp文件的函数时 xff0c 有以下几种情况 函数名写错 没有将其他 c或 cpp文件链接到main o xff0c 导致main函数在执行时找不到需要调用的函数 的解决方法 修改CMakeLists txt
  • STM32串口详解

    实验一 xff1a 简单的利用串口接收中断回调函数实现数据的返回 关于串口调试助手 xff0c 还应知道 xff1a 发送英文字符需要用一个字符即8位 xff0c 发送汉字需要两个字符即16位 xff0c 如上图 xff0c 发送汉字 姜
  • RLException: [xx.launch] is neither a launch file in package [x] nor is [x] a launch file name的解决方法

    ROS学习过程中 xff0c 遇到问题 xff1a RLException xx launch is neither a launch file in package x nor is x a launch file name 出现的问题
  • numpy 中 shape 与 size 属性

    因为需要生成一个和现有矩阵大小相等的矩阵 xff0c 故查找了相关资料 span class token operator gt gt span span class token operator gt span span class to
  • Ubtuntu+C语言实现网络通信附源代码

    下面这个案例是我用C在ubtuntu上面写的网络编程案例 2 网络编程 xff08 1 xff09 OSI七层模型理想化 应用层 xff1a app xff0c 应用程序 表示层 xff1a 对数据进行加工 会话层 xff1a 建立会话 x
  • Jetson Nano的GPIO口学习

    1 配置GPIO库 https github com NVIDIA jetson gpio 1 安装pip工具 sudo apt get update sudo apt get install python3 pip sudo apt ge
  • 22.11.22 TCP与UDP 客户端与服务器 协议搭建

    ubuntu 64 ubuntu yuyu yu 11 cat Tcp Cli c 客户端 include lt stdio h gt include lt sys types h gt include lt sys socket h gt
  • cmake交叉编译配置

    cmake交叉编译配置 很多时候 xff0c 我们在开发的时候是面对嵌入式平台 xff0c 因此由于资源的限制需要用到相关的交叉编译 即在你host宿主机上要生成target目标机的程序 里面牵扯到相关头文件的切换和编译器的选择以及环境变量
  • OS——gcc、g++、gdb、vim、vs code的基本使用

    文章目录 g 43 43 的使用gdb的使用vim的使用vscode的使用vs code的安装vs code中C 43 43 的编译运行配置 如果想要学习如何在CentOS 7中安装配置gcc g 43 43 gdb zhs和oh my z
  • make和cmake

    编程人员已经使用CMake和Make很长一段时间了 当你加入一家大公司或者开始在一个具有大量代码的工程上开展工作时 xff0c 你需要注意所有的构建 你需要看到处跳转的 CMakeLists txt 文件 你应该会在终端使用 cmake 和
  • ubuntu自带python与anaconda python环境的切换

    ubuntu的python可分为三大类 xff1a 1 ubuntu自带的python环境 一般安装在 usr bin 中python2和python3可以共存 2 anaconda自带的base环境 3 在anaconda中创建的虚拟py
  • 详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!

    本篇文章写于2020 10 xff0c 经过很多小伙伴的验证 xff0c 文章所介绍的步骤是可以正常完成安装的 xff0c 现在是2021 10 xff0c 经过近期的探索 xff0c 我将安装步骤进行了进一步的优化 xff0c 使安装变得