树莓派4b安装Ubuntu20.04桌面版并安装ROS1-Noetic和ROS2-Foxy

1 树莓派4b安装Ubuntu20.04

1.0 引言

树莓派4b并未适配1804及2004的桌面版Ubuntu(官方镜像连接),而ROS未免会需要图形界面,故有以下几种方法安装Ubuntu20.04桌面版:

  1. 安装Server版本,这种方法实测无法安装GPU驱动导致界面卡顿,图形显示不正常。
  2. 参照国外大神给出的教程,详见:Raspberry Pi 4 / 400 Ubuntu USB Mass Storage Boot Guide,在他的博客里也可以找到Ubuntu1804的桌面版镜像
  3. 安装官方支持的Ubuntu Mate链接),下文只讲这种方法。

1.1 准备工作

这里需要下载几个工具:balenaEtcher

还需要准备一个SD卡,推荐使用32GB

1.2 镜像烧录

打开balenaEtcher,选择镜像,选择SD卡,点击flash即可

1.3 开启树莓派

将SD卡插到树莓派上,接上显示器,上电开机

按照提示一步一步操作

1.4 换清华源

树莓派安装的是ARM版本的Ubuntu,所以要使用 ubuntu-ports 镜像

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-proposed main restricted universe multiverse

然后更新+升级

sudo apt-get update
sudo apt-get upgrade

下文讲解ROS的安装。本文只讨论二进制安装,源码安装之后单独出一篇文章讲述。

2 安装ROS1-Noetic

Ubuntu20.04推荐版本为Noetic,此版本也为LTS,所以本文安装Noetic版本ROS1。

2.1 设置sources.list

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

2.2 设置秘钥

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

这里会出现无法连接至密钥服务器,请科学上网。

2.3 安装完整桌面版

sudo apt install ros-noetic-desktop-full

2.4 设置环境

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

2.5 测试

roscore

如果成功安装则可以看到ROS版本为Noetic。

2.6 卸载

未测试过!!!

如需卸载,运行:

sudo apt-get purge ros-* && sudo apt-get autoremove

然后自行删除相关的环境变量

3 安装ROS2-Galactic

ROS2目前官网推荐版本为Galactic,虽然Galactic修复了Foxy的许多bug,但是Foxy的资料比Galactic多一些,所以本文安装Foxy

Foxy正在向Galactic迁移,本文安装最新版本的Galactic

3.1 添加ROS2 apt仓库

添加仓库

sudo apt update && sudo apt install curl gnupg lsb-release

验证GPG key

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

将仓库加入软件源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

3.2 安装ROS2包

上文设置了仓库,需要更新apt缓存

sudo apt update

桌面版安装

sudo apt install ros-galactic-desktop

3.3 设置环境

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

此时应该报错如下:

ROS_DISTRO was set to ‘noetic’ before. Please make sure that the environment does not mix paths from different distributions. 

出现该警告的原因在于环境变量中同时存在ROS1、ROS2。如果要切换使用ROS1和ROS2,则应该修改环境变量。

3.3.1 更新vim

预装的vim版本过旧,先更新一下

sudo apt-get install vim

使用vi打开环境变量文件

vi ~/.bashrc

滚动到最后,在以下两句前加#注释掉

source /opt/ros/noetic/setup.bash
source /opt/ros/galactic/setup.bash

在后面加入

echo "ros noetic(1) or ros2 galactic(2)?"
read edition
if [ "$edition" -eq "1" ];then
  source /opt/ros/noetic/setup.bash
else
  source /opt/ros/galactic/setup.bash
fi

刷新终端source ~/.bashrc,然后输入1或2即可在当前终端内应用对应的环境变量

3.4 测试

输入ros2,出现相关command的提示即为安装成功

3.5 卸载

如需卸载,运行:

sudo apt remove ~nros-galactic-* && sudo apt autoremove

然后自行删除相关的环境变量

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐