采用树莓派作为ROS系统的物理载体时,树莓派有三个系统可以选择:
Ubuntu:Ubuntu的ARM架构系统。
Raspberry Pi OS :树莓派官方32位系统。
RaspiOS:树莓派官方64位系统。
选择树莓派的系统时,最佳选择是选64位的Ubuntu和RaspiOS,通常都不会选择Raspberry Pi OS,因为使用32位系统,基本意味着你需要全套编译ROS系统,而不能通过apt install 包名
的方法使用已编译好的包。
RaspiOS和Ubuntu相比,RaspiOS天然具备图形化和VNC,避免掉了安装相应软件所需消耗的时间(挺折腾的)。而Ubuntu通常只有字符界面,图形界面和VNC需要安装,当相比RaspiOS而已,稳定性和性能要好一点(截止今天RaspiOS只是一个beta版本)。
ROS有主要推荐使用两个版本:
Meldoic
Noetic
Noetic
相比Meldoic
,结束维护的时间点更远(Noetic
2025,Meldoic
2023年),而且Noetic
支持Python3
,相比Meldoic
支持Python2
也是一大优势。但是由于Meldoic
出现的时间更久,有很多功能包已经提供了Meldoic
的编译版本,但还未提供Noetic
的编译版本,因此需要自行进行编译(也不难)。Noetic
对应的Ubuntu
版本为20.04
(),Meldoic
对应的是18.04
。
因此安装时,请注意安排自己的喜好,这里由三种方案可供选择:
Raspberry Pi OS + Noetic:只能选Noetic
Ubuntu 18.04 + Meldoic
Ubuntu 20.04 + Noetic
安装通用步骤
下载镜像。镜像由对应小节提供。
烧写镜像。烧写工具可选择
rpi-imager
,下载地址https://www.raspberrypi.org/downloads。
选择操作系统时,请选择使用自定义镜像
选项。
配置WiFi。具体由对应小节提供。
配置
ssh
。在内存卡的boot
目录中创建空文件ssh
。启动。给树莓派上电。
获取
IP
。通过路由器管理界面获取树莓派设备的IP
。
raspios+noetic
下载镜像:https://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/raspios_arm64/
配置WiFi。在内存卡的
boot
目录中创建wpa_supplicant.conf
。
1country=CN
2ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
3update_config=1
4
5network={
6ssid="wifi名"
7psk="密码"
8key_mgmt=WPA-PSK
9priority=2
10}
配置
ssh
。在boot
目录中创建空文件ssh
。配置树莓派源。
1# 备份
2pi@raspberrypi:~ $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
3# 修改文件
4pi@raspberrypi:~ $ sudo vi /etc/apt/sources.list
5deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
6deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
7deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
8deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
9
10# 备份
11pi@raspberrypi:~ $ sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
12# 修改文件内容
13pi@raspberrypi:~ $ sudo /etc/apt/sources.list.d/raspi.list
14deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ buster main
15deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main
配置
Python
源。修改文件/etc/pip.conf
。
1pi@raspberrypi:~ $ sudo vi /etc/pip.conf
2[global]
3extra-index-url=https://pypi.tuna.tsinghua.edu.cn/simple
修改默认的
Python
链接。
1# 删除python2的Python指向
2pi@raspberrypi:~ $ sudo rm /usr/bin/python
3# 将python指向python3
4pi@raspberrypi:~ $ sudo ln -s /usr/bin/python3 /usr/bin/python
安装
ros-noetic-desktop
。ros-noetic-desktop-all
官方还未编译。
1# 添加源
2pi@raspberrypi:~ $ sudo sh -c 'echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
3# 添加秘钥
4pi@raspberrypi:~ $ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
5# 更新安装包列表
6pi@raspberrypi:~ $ sudo apt update
7
8pi@raspberrypi:~ $ sudo apt install ros-noetic-desktop -y
9# 如果安装libgl-dev报错
10# 更新系统
11pi@raspberrypi:~ $ sudo dpkg -i --force-overwrite /var/cache/apt/archives/libgl-dev_1.3.0-7~bpo10+1_arm64.deb
12pi@raspberrypi:~ $ sudo apt update
13# 重新安装
14pi@raspberrypi:~ $ sudo apt --fix-broken install
15# 配置环境变量
16pi@raspberrypi:~ $ echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
17pi@raspberrypi:~ $ source ~/.bashrc
18# 校验
19pi@raspberrypi:~ $ whereis roscore
20roscore: /opt/ros/noetic/bin/roscore
配置桌面。
1 pi@raspberrypi:~ $ sudo raspi-config
2 # 配置登录即启动桌面:3 Desktop Autologin Desktop GUI, automatically logged in as 'pi' user
3 # 配置ssh和vnc:5 开启ssh和vnc
4 # 配置操作系统扩容到整个内存卡:Advanced Options->Expand Filesystem
5 # 配置分辨率:Advanced Options->Resolution->DMT82
6 # finish->选择重启
7 # 重启后,按提示配置即可
使用vnc软件连接设备即可。
Ubuntu+Melodic
下载地址:https://ubuntu.com/download/raspberry-pi,选18.04 64bit。
配置WiFi密码。修改
system-boot
目录下的network-config
文件,WiFi
名若有空格,则需要冒号。
1version: 2
2ethernets:
3 eth0:
4 dhcp4: true
5 optional: true
6wifis:
7 wlan0:
8 dhcp4: true
9 optional: true
10 access-points:
11 WiFi名:
12 password: "密码"
配置
ssh
。在system-boot
目录中创建空文件ssh
。改ubuntu源。
1# 备份
2ubuntu@ubuntu:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
3# 修改
4ubuntu@ubuntu:~$ sudo vi /etc/apt/sources.list
5deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
6deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
7deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
8deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
配置
Python
源。同树莓派+raspios+noetic
一节。安装
ros
1# 添加源
2pi@raspberrypi:~ $ sudo sh -c 'echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
3# 添加秘钥
4pi@raspberrypi:~ $ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
5# 更新安装包列表
6pi@raspberrypi:~ $ sudo apt update
7
8# 安装ros-melodic-ros-base
9pi@raspberrypi:~ $ sudo apt install ros-melodic-ros-base -y
10# 配置环境变量
11pi@raspberrypi:~ $ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
12pi@raspberrypi:~ $ source ~/.bashrc
13# 校验
14pi@raspberrypi:~ $ whereis roscore
15roscore: /opt/ros/melodic/bin/roscore
Ubuntu+Noetic
下载地址:https://ubuntu.com/download/raspberry-pi,选20.04 64bit。
配置WiFi密码。同
树莓派安装Ubuntu+Melodic
一节。配置
ssh
。同树莓派安装Ubuntu+Melodic
一节。改ubuntu源。
1# 备份
2ubuntu@ubuntu:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
3# 修改
4ubuntu@ubuntu:~$ sudo vi /etc/apt/sources.list
5# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
6deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal main restricted universe multiverse
7deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-updates main restricted universe multiverse
8deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-backports main restricted universe multiverse
9deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ focal-security main restricted universe multiverse
配置
Python
源。同树莓派+raspios+noetic
一节。安装
ros
1# 将python指向python3
2ubuntu@ubuntu:~$ sudo ln -s /usr/bin/python3 /usr/bin/python
3# 添加源
4pi@raspberrypi:~ $ sudo sh -c 'echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
5# 添加秘钥
6pi@raspberrypi:~ $ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
7# 更新安装包列表
8pi@raspberrypi:~ $ sudo apt update
9
10# 安装ros-noctic-ros-base
11pi@raspberrypi:~ $ sudo apt install ros-noetic-ros-base -y
12# 配置环境变量
13pi@raspberrypi:~ $ echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
14pi@raspberrypi:~ $ source ~/.bashrc
15# 校验
16pi@raspberrypi:~ $ whereis roscore
17roscore: /opt/ros/noetic/bin/roscore
物理开发机安装ROS
物理开发机器安装ROS和树莓派安装ROS的区别在于,根据系统的区别,调整对应的系统源。
参考
清华ubuntu源:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
meldoic安装:http://wiki.ros.org/melodic/Installation/Ubuntu
noetic安装:http://wiki.ros.org/noetic/Installation/Ubuntu
ubuntu mate:https://ubuntu-mate.org/ports/raspberry-pi/