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]
有两条报错
-
第一条报错
- 错误原因:缺少公钥
- 解决方案:尝试获取公钥没有成功,所以简单粗暴的把源给关掉了(改成了备份文件)
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
-
第二条报错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.list
、google-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
- 查看内核使用的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
- 查看gcc默认版本,并且切换到7.5(我这里已经切换过来了)
- 先把gcc-7加入候选
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7
- 然后查看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
- 再更新就能成功了
- 先把gcc-7加入候选
- 查看内核使用的gcc版本
错误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的用户