ROS知识1:ROS2安装

本文目的

安装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 ##成功运行

在这里插入图片描述

错误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的用户

在这里插入图片描述

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS2编程基础课程文档 ROS 2(机器人操作系统2)是用于机器人应用的开源开发套件。ROS 2之目的是为各行各业的开发人员提供标准的软件平台,从研究和原型设计再到部署和生产。 ROS 2建立在ROS 1的成功基础之上,ROS 1目前已在世界各地的无数机器人应用中得到应用。 特色 缩短上市时间 ROS 2提供了开发应用程序所需的机器人工具,库和功能,可以将时间花在对业务非常重要的工作上。因为它 是开源的,所以可以灵活地决定在何处以及如何使用ROS 2,以及根据实际的需求自由定制,使用ROS 2 可以大幅度提升产品和算法研发速度! 专为生产而设计 凭借在建立ROS 1作为机器人研发的事实上的全球标准方面的十年经验,ROS 2从一开始就被建立在工业级 基础上并可用于生产,包括高可靠性和安全关键系统。 ROS 2的设计选择、开发实践和项目管理基于行业利 益相关者的要求。 多平台支持 ROS 2在Linux,Windows和macOS上得到支持和测试,允许无缝开发和部署机器人自动化,后端管理和 用户界面。分层支持模型允许端口到新平台,例如实时和嵌入式操作系统,以便在获得兴趣和投资时引入和推 广。 丰富的应用领域 与之前的ROS 1一样,ROS 2可用于各种机器人应用,从室内到室外、从家庭到汽车、水下到太空、从消费 到工业。 没有供应商锁定 ROS 2建立在一个抽象层上,使机器人库和应用程序与通信技术隔离开来。抽象底层是通信代码的多种实现, 包括开源和专有解决方案。在抽象顶层,核心库和用户应用程序是可移植的。 建立在开放标准之上 ROS 2中的默认通信方法使用IDL、DDS和DDS-I RTPS等行业标准,这些标准已广泛应用于从工厂到航空 航天的各种工业应用中。 开源许可证 ROS 2代码在Apache 2.0许可下获得许可,在3条款(或“新”)BSD许可下使用移植的ROS 1代码。这两个 许可证允许允许使用软件,而不会影响用户的知识产权。 全球社区 超过10年的ROS项目通过发展一个由数十万开发人员和用户组成的全球社区,为机器人技术创建了一个庞大 的生态系统,他们为这些软件做出贡献并进行了改进。 ROS 2由该社区开发并为该社区开发,他们将成为未 来的管理者。 行业支持 正如ROS 2技术指导委员会成员所证明的那样,对ROS 2的行业支持很强。除了开发顶级产品外,来自世界 各地的大大小小公司都在投入资源为ROS 2做出开源贡献。 与ROS1的互操作性 ROS 2包括到ROS 1的桥接器,处理两个系统之间的双向通信。如果有一个现有的ROS 1应用程序, 可 以通过桥接器开始尝试使用ROS 2,并根据要求和可用资源逐步移植应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值