• Ubuntu20.04安装ROS


    Ubuntu20.04安装ROS

    Excerpt

    ubuntu安装方式有两种,一种是安装ubuntu系统,另一种是在windows下安装虚拟机,在虚拟机里安装ubuntu。下面为双系统安装ubuntu(用虚拟机装ubuntu会很卡,bug很多,除非电脑配置极好,否则不建议用虚拟机装ubuntu…


    ubuntu安装方式有两种,一种是安装ubuntu系统,另一种是在windows下安装虚拟机,在虚拟机里安装ubuntu。下面为双系统安装ubuntu(用虚拟机装ubuntu会很卡,bug很多,除非电脑配置极好,否则不建议用虚拟机装ubuntu)

    一、配置Linux清华镜像源

    1.1 介绍

    我们在下载很多基础的工具请求的基本上是国外的服务器,这对于国内用户来说,无疑是非常糟糕的体验,其下载速度慢、请求失败往往成为很多刚入门Linux的小白最大的困扰。

    不过好在国内有着稳定高速且免费的镜像网站,我们可以通过修改系统配置文件来享受这些优秀的网站资源。

    清华源:https://pypi.tuna.tsinghua.edu.cn/simple/
    阿里云:https://mirrors.aliyun.com/pypi/simple
    中科大:https://pypi.mirrors.ustc.edu.cn/simple/
    
    • 1
    • 2
    • 3

    1.2 开始配置

    这里我以 Ubuntu 20.04LTS 为例来配置 清华源

    首先进入清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn)

    在列表里选择自己的系统,这里我选择的是 Ubuntu,点击后面的问号图案

    进入后选择自己的系统版本 20.04LTS

    随即文本框中会生成你需要的 sources.list 文件内容,打开 Ubuntu 的终端,输入下面的命令

    sudo apt update
    
    # 将 sources.list 拷贝到桌面,留个备份,防止修改以后出现问题,备份在主目录下
    cp /etc/apt/sources.list ~/Desktop    
    
    # 打开 sources.list 进行编辑
    sudo gedit /etc/apt/sources.list
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    打开文件后,将里面的所有内容替换为之前网页内文本框里的内容,例如

    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
    
    # 预发布软件源,不建议启用
    # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    然后保存关闭,这样清华源就配置好啦!

    2.1 开始安装:配置公钥

    在前面的操作中,我们已经为完成了国内源的配置,这将会让我们后面的install 一路畅通。不过还需要再做一个准备,那就是配置公钥

    公钥是 Ubuntu 系统的一种安全机制,配置公钥让系统信任。

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

    2.2 系统更新

    更新系统,确保自己的Debian软件包和索引是最新的。

    2.3 安装ROS

    大家注意自己的 Ubuntu 版本,我的是 20.04 对应的是 ROS 版本是 noetic

    # Ubuntu 20.04 
    sudo apt install ros-noetic-desktop-full
    
    # Ubuntu 18.04 
    sudo apt install ros-melodic-desktop-full
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里遇到了很沙雕的问题,E: 无法定位软件包 ros-noetic-desktop-full,换源阿里云后无效,又输入了两个命令行:

    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-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    
    • 1
    • 2

    然后运行sudo apt install ros-noetic-desktop-full,成功!

    好吧,当时确实可以正常下载了,但是最后速度很慢,直接回宿舍睡觉,第二天到工位果然又报错了,

    E: Sub-process /usr/bin/dpkg returned an error code (1)

    输入以下命令成功解决:

    现将info文件夹更名

    sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk
    
    • 1

    新建一个新的info文件夹

    sudo mkdir /var/lib/dpkg/info
    
    • 1

    安装修复

    sudo apt-get update
    sudo apt-get install -f
    
    • 1
    • 2

    执行完上一步操作后,在info文件夹下生成一些文件,现将这些文件全部移到info.bk文件夹下

    sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bk
    
    • 1

    把自己新建的info文件夹删掉

    sudo rm -rf /var/lib/dpkg/info
    
    • 1

    恢复原有info文件夹,修改名字

    sudo mv /var/lib/dpkg/info.bk /var/lib/dpkg/info
    
    • 1

    然后再执行

    sudo apt install ros-noetic-desktop-full
    
    • 1

    成功!

    2023.7.25更新:

    E: 无法定位软件包 ros-noetic-desktop-full,也有可能是软件源的问题,可以先换清华或者阿里云试一试。

    三、配置ROS

    3.1 初始化rosdep

    sudo rosdep init && rosdep update
    
    • 1

    这里再次报错 sudo: rosdep:找不到命令

    解决办法:

    单独输入 sudo rosdep init 显示

    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
    
    • 1

    然后输入命令 sudo rosdep update显示超时,又再次输入sudo rosdep init发现报了新错误

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

    输入以下命令:

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

    199.232.28.133 raw.githubusercontent.com
    
    • 1

    再输入sudo rosdep init命令试试,成功解决。然后再继续输入 sudo rosdep update,发现还是报超时的错误,然后专门查了rosdep update报错的问题,如下:

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

    由于 rosdep update 请求的网站是 raw.githubusercontent.com,对于大部分人来说,该命令报错的原因主要是 timed out。网上一般的方法都是通过修改 /etc/ros/rosdep/sources.list.d/20-default.list 的请求地址。但我自己通过这个方法并不能解决问题,报错中仍然出现请求 raw.githubusercontent.com 时出现 timed out。

    尝试过很多方法,特别复杂的就不说了,有两种方法:

    • 一种是修改连接网络,多换几个网络试试,比如换个手机热点,但这种方法是玄学问题,很浪费时间,而且大部分台式机并不会配备无线网卡,需要自己加;
    • 一种是将rosdep修改为rosdepc,因为rosdepc使用的是国内的源,rosdep初始化失败是因为其使用的是github,国内无法访问。安装步骤如下:

    (此处封神,绝对是rosdep update报超时错误的最佳解决方案!)

    安装rosdepc

    如果显示没有pip可以试试pip3。

    sudo pip3 install rosdepc
    
    • 1

    如果pip3还没有

    sudo apt-get install python3-pip
    sudo pip install rosdepc
    
    • 1
    • 2

    使用

    sudo rosdepc init
    rosdepc update
    
    • 1
    • 2

    到这应该就没问题了,继续下一步,胜利在望!

    3.2 环境变量设置

    这里容易出错,大家直接复制粘贴就好

    注意对应自己的版本修改目录名

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

    3.3 安装 rosinstall

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

    3.4 测试ROS

    打开第一个终端窗口,运行 roscore

    出现如下图的情况,就证明运行成功

    打开第二个终端窗口,输入:

    rosrun turtlesim turtlesim_node
    
    • 1

    当出现有一个海龟的窗口,证明运行成功了(每次生成的海龟类型是随机的)

    打开第三个终端窗口,输入:

    rosrun turtlesim  turtle_teleop_key
    
    • 1

    出现这样的提示后,我们用鼠标聚焦第三个终端窗口,便可以通过按下 ↑ ↓ ← →键来对小海龟进行控制了。

    3.5 安装完成

    到了这里,恭喜你已经完成了ROS的安装、配置且运行。

    ps:本人从今年初已经装过不下10遍ubuntu和ros,但还是有没遇到过的报错,ubuntu本身就极其容易报错,不同的设备报的错还不一样,所以不要用最新版本的ubuntu!刚开始用ubuntu和ros确实很搞心态,耐住性子,最后会发现其实还挺简单的~

  • 相关阅读:
    Springboot写电商系统(2)
    DevicData-D-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
    二进制转换16进制 快速心算
    企业如何选择低代码开发平台
    基于Vue+nodejs+Element-ui的聊天框项目
    2022世界人工智能大会开幕,天翼云注智城市数字化转型
    2022年夏季《移动软件开发》实验报告六
    linux读取U盘操作
    bug总结问题集和知识点集(一)
    使用Ubuntu虚拟机离线部署RKE2高可用集群
  • 原文地址:https://blog.csdn.net/feichangyanse/article/details/132611914