ROS知识1:ROS2安装

ROS知识1:ROS2安装

  • 本文目的
  • 配置环境
    • 参考资料
    • 说明
    • bug记录
      • 错误1:sudo apt update 遇到错误
      • 错误2:出现了一些显卡报错
      • 错误3:Gtk-WARNING **: 17:32:17.210: cannot open display: :3
      • 错误4:公钥缺失
      • 错误5:os2 run turtlesim turtlesim_node小海龟运行没有界面

本文目的

安装ROS2在服务器的Ubuntu上,记录并且尝试解决其中出现的一些bug

配置环境

远程Linux服务器,ubuntu版本18.04

参考资料

Installing ROS 2 via Debian Packages

说明

  • 由于基本上完全按照参考的官方文档安装即可,这里不进行过程描述
  • 这里记录一下在本人安装过程中遇到的一些bug,以及小海龟程序验证。

bug记录

错误1:sudo apt update 遇到错误

update 出现了一些报错,有一些软件源没法更新,好像是密钥过期了,但是事实上不影响ROS2的安装,反正就是update一下更新一下软件源即可。

[root@lab-X10 /etc/apt/sources.list.d]# sudo apt update
Err:3 https://apt.repos.intel.com/mkl all InRelease                      
  The following signatures couldn't be verified because the public key is not available: 
Err:10 http://ppa.launchpad.net/linuxuprising/libpng12/ubuntu bionic Release
  404  Not Found [IP: 185.125.190.80 80]

有两条报错

  1. 第一条报错

    • 错误原因:缺少公钥
    • 解决方案:尝试获取公钥没有成功,所以简单粗暴的把源给关掉了(改成了备份文件)
      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 缺失的公钥 		#返回说找不到公钥,所以这个方法失效了
      
      sudo cd /etc/apt/sources.list.d
      sudo mv linuxuprising-ubuntu-libpng12-bionic.list linuxuprising-ubuntu-libpng12-bionic.list.bak
      
  2. 第二条报错404 not found

    • 错误原因:可能是这个软件源已经不存在了,所以没办法更新。
    • 解决方案:删掉即可,或者修改后缀名为备份文件(这样就不用删除避免后续发现搞错了还能救回来),存储系统中额外软件源的配置文件在/etc/apt/sources.list.d里面
    sudo cd /etc/apt/sources.list.d
    sudo mv linuxuprising-ubuntu-libpng12-bionic.list linuxuprising-ubuntu-libpng12-bionic.list.bak
    

    /etc/apt/sources.list.d 是一个目录,用于存储系统中额外软件源的配置文件。在 Debian 或基于
    Debian 的发行版中,这个目录包含了 .list 扩展名的文件,这些文件描述了软件包管理器(如 apt)用于获取软件包的不同源。
    这些文件中的每一个都代表一个单独的软件源。例如,你可能会在这个目录下找到像 ros2.listgoogle-chrome.list 或者其他名称相关的文件,它们描述了额外的软件源的位置和配置信息。
    通过在 /etc/apt/sources.list.d 中创建新的 .list 文件,你可以添加额外的软件源,以便系统能够从这些源中获取软件包信息。这有助于在系统中管理和更新来自不同源的软件包,或者从特定供应商获取特定软件的更新。
    要查看这个目录下的文件,你可以使用命令行工具如 ls /etc/apt/sources.list.d
    这会列出该目录下所有文件的名称,使你能够查看当前系统中已配置的软件源。

错误2:出现了一些显卡报错

执行以下命令的时候出现报错

sudo apt install ros-eloquent-desktop

ros-eloquent-desktop顺利下载但是有之前的一项显卡更新出错了,显卡升级到470驱动版本报错。
一些显卡驱动更新的错误

Errors were encountered while processing:
 nvidia-dkms-470
 nvidia-driver-470
 nvidia-driver-460
  • 报错原因:使用的gcc版本和内核的版本不一致导致安装失败。
  • 解决方案:参考了Nvidia-driver-470 does not install on Ubuntu 20.04 LTS
    1. 查看内核使用的gcc版本
      cat /proc/version
      Linux version 4.15.0-130-generic (buildd@lcy01-amd64-018) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #134-Ubuntu SMP Tue Jan 5 20:46:26 UTC 2021
      
    2. 查看gcc默认版本,并且切换到7.5(我这里已经切换过来了)
      1. 先把gcc-7加入候选
        sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7
        
      2. 然后查看gcc版本可选项并且选择对应的gcc-7
        sudo update-alternatives --config gcc
        There are 3 choices for the alternative gcc (providing /usr/bin/gcc).
          Selection    Path              Priority   Status
        ------------------------------------------------------------
          0            /usr/bin/g++-4.8   100       auto mode
          1            /usr/bin/g++-4.8   100       manual mode
          2            /usr/bin/gcc-4.8   100       manual mode
         *3            /usr/bin/gcc-7     70        manual mode
        
      3. 再更新就能成功了

错误3:Gtk-WARNING **: 17:32:17.210: cannot open display: :3

运行gedit的时候出现的

gedit 1.py
Invalid MIT-MAGIC-COOKIE-1 keyUnable to init server: Could not connect: Connection refused
(gedit:40236): Gtk-WARNING **: 14:01:05.779: cannot open display: :3

经过测试是因为登录的用户和使用该命令的用户不同(使用的对应的用户才能弹出界面),切换用户后即可

su monchell #切换成登录VNC的用户
gedit 1.py ##成功运行

ROS知识1:ROS2安装_第1张图片

错误4:公钥缺失

Err:8 http://packages.ros.org/ros2/ubuntu bionic InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
  • 解决方案,查找公钥即可
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
    

错误5:os2 run turtlesim turtlesim_node小海龟运行没有界面

和错误3一样,经过测试是因为登录的用户和使用该命令的用户不同(使用的对应的用户跑小海龟才行),切换用户后即可

su monchell #切换成登录VNC的用户

ROS知识1:ROS2安装_第2张图片

你可能感兴趣的:(ROS2学习过程,笔记,机器人)