树莓派4b安装Ubuntu20.04桌面版并安装ROS1-Noetic和ROS2-Foxy
树莓派4b安装Ubuntu20.04桌面版并安装ROS1-Noetic和ROS2-Foxy
1 树莓派4b安装Ubuntu20.04
1.0 引言
树莓派4b并未适配1804及2004的桌面版Ubuntu(官方镜像连接),而ROS未免会需要图形界面,故有以下几种方法安装Ubuntu20.04桌面版:
- 安装Server版本,这种方法实测无法安装GPU驱动导致界面卡顿,图形显示不正常。
- 参照国外大神给出的教程,详见:Raspberry Pi 4 / 400 Ubuntu USB Mass Storage Boot Guide,在他的博客里也可以找到Ubuntu1804的桌面版镜像
- 安装官方支持的Ubuntu Mate(链接),下文只讲这种方法。
1.1 准备工作
这里需要下载几个工具:balenaEtcher、
还需要准备一个SD卡,推荐使用32GB
1.2 镜像烧录
打开balenaEtcher,选择镜像,选择SD卡,点击flash即可
1.3 开启树莓派
将SD卡插到树莓派上,接上显示器,上电开机
按照提示一步一步操作
1.4 换清华源
树莓派安装的是ARM版本的Ubuntu,所以要使用 ubuntu-ports 镜像。
1 | # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 |
然后更新+升级
1 | sudo apt-get update |
下文讲解ROS的安装。本文只讨论二进制安装,源码安装之后单独出一篇文章讲述。
2 安装ROS1-Noetic
Ubuntu20.04推荐版本为Noetic,此版本也为LTS,所以本文安装Noetic版本ROS1。
2.1 设置sources.list
1 | 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 设置秘钥
1 | sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 |
这里会出现无法连接至密钥服务器,请科学上网。
2.3 安装完整桌面版
1 | sudo apt install ros-noetic-desktop-full |
2.4 设置环境
1 | echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc |
2.5 测试
1 | roscore |
如果成功安装则可以看到ROS版本为Noetic。
2.6 卸载
未测试过!!!
如需卸载,运行:
1 | 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仓库
添加仓库
1 | sudo apt update && sudo apt install curl gnupg lsb-release |
验证GPG key
1 | sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg |
将仓库加入软件源
1 | 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缓存
1 | sudo apt update |
桌面版安装
1 | sudo apt install ros-galactic-desktop |
3.3 设置环境
1 | echo "source /opt/ros/galactic/setup.bash" >> ~/.bashrc |
此时应该报错如下:
1 | 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版本过旧,先更新一下
1 | sudo apt-get install vim |
使用vi打开环境变量文件
1 | vi ~/.bashrc |
滚动到最后,在以下两句前加#注释掉
1 | source /opt/ros/noetic/setup.bash |
在后面加入
1 | echo "ros noetic(1) or ros2 galactic(2)?" |
刷新终端source ~/.bashrc
,然后输入1或2即可在当前终端内应用对应的环境变量
3.4 测试
输入ros2
,出现相关command的提示即为安装成功
3.5 卸载
如需卸载,运行:
1 | sudo apt remove ~nros-galactic-* && sudo apt autoremove |
然后自行删除相关的环境变量