树莓派4B安装 Ubuntu20.04 + ROS Noetic 踩坑记录

写在开头

本文记录了给一台树莓派4B配置ROS开发环境的全部操作过程,和在实际操作过程中遇到的各种问题的解决方法,希望对有相同需求的小伙伴们有帮助。

本文的目标是直接在树莓派上开发ROS,因而在安装时与目标相关的力求“装全套”;如果仅需使用树莓派作为机器人中控设备而安装ROS,请参考这篇文章

1. 准备工作

下表中列出了本文中使用到的所有硬件和软件。

名称备注
硬件树莓派4B8G RAM版本
SD卡 容量128G至少需要32G
显示器,键盘,鼠标

(有些无线鼠标会出现延迟问题,解决方法后面会讲)

网线(可选)
软件官方烧写软件

下载:Raspberry Pi Imager

Ubuntu 系统镜像文件

下载:Ubuntu Server 20.04.03 LTS 64-bit

(注意要选对版本)

SD卡格式化软件(可选)

SD Card Formatter

(移动到页面最底部,点击 Accept 即可下载)

2. 安装思路

ROS目前的最新发行版为ROS Noetic,与其对应的系统则为Ubuntu 20 LTS,因此本次的安装思路非常明确:先安装Ubuntu 20.04 LTS,随后配置网络,更新,安装GNOME图形桌面,最后安装ROS。

3. Ubuntu的安装

3.1 格式化SD卡

如图1,打开SD卡格式化软件,选择“Quick format” -> 然后点击"Format"即可。

 图1

3.2 将Ubuntu系统烧写到SD卡中

首先,如图1,打开Ubuntu官网的下载页面,下载正确的系统版本,选择:“Install Ubuntu on a Raspberry Pi”  -> “Download Ubuntu Server” -> "Ubuntu Server 20.04.3 LTS" -> "Download 64-bit"。如图2,左侧黄线标记处为正确的版本。

图2

下载完毕后,打开树莓派官方提供的烧录器,点击:“选择操作系统” -> “使用自定义镜像” -> 选择刚刚下载好的镜像文件;然后点击 "选择SD卡" -> 选择刚刚格式化过的SD卡;最后点击“烧录”,等待烧写完毕即可拔出SD卡。

 图3

3.3 启动树莓派,设置密码

将烧录好的SD卡直接插入树莓派的卡槽中,然后插上鼠标、键盘、显示器,最后插上电源,等待系统自己启动。

初次登陆,默认的用户名和密码都是ubuntu,首次成功登录后,系统会提示用户修改密码。修改完成后,输入以下命令,设置root密码。

sudo passwd

3.4 配置网络

接下来需要手动配置网络。

输入以下命令,打开网络配置文件,直接从结尾处添加个人wifi的配置信息,如图4。

sudo vim /etc/netplan/50-cloud-init.yaml

 图4

此处简略说明vim的操作:

        - 打开文件后,按“i”键,进入insert模式,然后可以通过方向键移动光标;

        - 编辑完成后,先按下Esc键,退出insert模式,然后输入“:wq”,再按Enter键,即可保存退出;

        - 未编辑时直接退出要输入“:q”,不保存修改强制退出要输入":q!"

在输入时,该yaml文件的格式需要特别注意:

        - 不同层级间的缩进不同,相同层级的缩进要保持相同;

        - 冒号如果不在行尾,则需要和后面的内容用空格隔开;

        - 如果wifi名称存在空格,则必须加上双引号;但如果不存在空格,则不能加引号

        - 密码无论如何都要加上双引号

编辑完成后,保存退出,然后输入以下命令检查是否有错误。

sudo netplan --debug try

如果出现任何错误,可以使用以下命令查看具体信息。

sudo netplan --debug generate

如果没有错误,则输入以下命令确认应用新配置。

sudo netplan --debug apply

然后,重启树莓派

sudo reboot

3.5 更新,安装GNOME图形桌面

重启后,系统会自动连上网,如果联网失败,则需重复3.3步骤,检查配置是否正确。

如果一切正常,便可以输入以下命令,将所有安装的依赖库都更新到最新版本。

sudo apt update
sudo apt upgrade

初次更新,该过程会持续较长时间。更新完成后,即可输入以下命令安装GNOME图形界面。

sudo apt install ubuntu-desktop -y

该过程也会持续一段时间,安装结束后,再次重启树莓派。

sudo reboot

重启后,系统便会自动加载图形界面,用户只需输入密码进行登录即可。

进入桌面后,用户可以在屏幕的右上角找到“Settings”按钮,如图5,然后找到左侧栏目的最后一项“About”,查看系统版本等信息,如图6。

 图5

图6

3.6 解决一些小问题

在安装完图形界面后,笔者还遇到了下列问题,此处一并记录之。

3.6.1 鼠标延迟问题

笔者使用的是无线鼠标,不论将鼠标插在树莓派上的哪个USB接口上都存在1秒左右的延迟。要解决该问题,需要修改如下的配置文件:

sudo vim /boot/firmware/cmdline.txt

如图7所示,在第一行的末尾添加上

usbhid.mousepoll=0

 图7

保存文件后重启,鼠标延迟就会消失。

3.6.2 搜索不到无线网络列表,但实际上已连接网络

由于之前手动配置了文件,此时桌面右上角的WIFI图标显示找不到任何wifi信号,要解决此问题,需要在“/etc/netplan”目录下创建一个新文件:

sudo vim /etc/netplan/01-network-manager-all.yaml

然后输入如下内容:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

保存退出后,重启网络管理服务:

sudo service network-manager restart

 再重启一下树莓派,即可解决此问题。

3.6.3 找不到软件中心

不知为何,在完成上述操作后,笔者发现在系统里竟然找不到Ubuntu的软件中心。不过没关系,输入以下命令安装一下即可。

sudo apt install gnome-software

3.7 语言问题

关于系统语言,笔者强烈建议保持Ubuntu默认的英文环境,这样可以避免很多潜在的问题,比如路径无法识别之类的错误。当然,安装中文输入法还是可以的,详见这篇文章

至此,Ubuntu系统安装完成!

4. 安装ROS

4.1 更换软件源

在下载ROS时,如果身处国内,可能会因为网络问题导致下载失败。如果出现这种情况,则需要更换软件源,具体做法请参考这篇文章。笔者由于暂居国外,没有这方面的需要,此处不再赘述。

4.2 Ubuntu软件和更新的设置

如图8所示,打开Ubuntu的"Software and Update",勾选前四项。

图8

4.2 按照官方教程安装ROS

如果前面一切都配置无误的话,安装ROS还是很简单的,直接按照官方教程操作即可。除此以外还有古月居的ROS安装教程,解释得很详细,此处仅罗列出所有的命令,小伙伴们按部就班地操作即可。

# 添加ros软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

# 如果没有安装curl
sudo apt install curl

# 设置密钥
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

# 更新软件源
sudo apt update

# 安装ros
sudo apt install ros-noetic-desktop-full

# 设置环境变量 
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

# 运行该脚本,让环境变量生效
source ~/.bashrc

# 安装开发ROS必要的package
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

# 初始化
sudo rosdep init
rosdep update

完成上述操作后,可输入以下命令验证ROS是否已安装成功:

roscore

 如果命令行界面如图9所示,说明安装成功。此时可以按“Ctrl+C”退出。

 图9

至此,ROS安装完成!

5. ROS学习资源网站

文章最后,笔者罗列了一些对学习ROS有帮助的网上资源,前路漫漫,愿与诸君共勉!

网址备注
ROS官网ROS WikiROS学习必看
古月居主页古月居 - ROS机器人知识分享社区很好ROS学习网站
古月居ROS入门21讲【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程_哔哩哔哩对初学者很友好
官方推荐书籍ROS_Robot_Programming_English

点击下载链接,提供中文版免费下载!

其它推荐书籍Books - ROS Wiki
  • 4
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
树莓派4B可以安装Ubuntu 20.04桌面版。首先,你需要下载适用于树莓派4BUbuntu 20.04桌面版的映像文件。你可以在官方网站上找到适用于树莓派4BUbuntu Mate 20.04桌面版的种子文件。安装Ubuntu 20.04桌面版有几种方法,其中一种是安装Server版本并手动安装图形界面。然而,这种方法可能导致GPU驱动无法正常安装,从而导致界面卡顿和图形显示异常。另一种方法是参考国外大神的教程[Raspberry Pi 4 / 400 Ubuntu USB Mass Storage Boot Guide],在他的博客里也可以找到Ubuntu 18.04桌面版镜像的安装方法。下文将详细介绍这种方法以安装官方支持的Ubuntu Mate。请注意,此方法适用于Ubuntu 20.04桌面版的安装。 在开始安装之前,请确保你已经准备好以下工作: 1. 下载适用于树莓派4BUbuntu 20.04桌面版的映像文件。 2. 一个至少16GB的SD卡。 3. 一个SD卡读卡器。 4. 一台具有Ubuntu操作系统的电脑。 接下来,按照以下步骤进行安装: 1. 使用SD卡读卡器将SD卡连接到你的电脑。 2. 在你的电脑上打开终端(Terminal)。 3. 使用以下命令列出当前连接的设备,找到你的SD卡的设备名称: ``` lsblk ``` 4. 使用以下命令卸载SD卡的分区(假设设备名称为/dev/sdb): ``` sudo umount /dev/sdb* ``` 5. 使用以下命令将Ubuntu 20.04桌面版的映像文件写入SD卡(请将`path/to/image`替换为你下载的映像文件的路径,`/dev/sdb`替换为你的SD卡的设备名称): ``` sudo dd bs=4M if=path/to/image of=/dev/sdb status=progress conv=fsync ``` 6. 写入完成后,使用以下命令弹出SD卡: ``` sudo eject /dev/sdb ``` 7. 将SD卡插入树莓派4B中,并启动它。 这样,你就成功安装树莓派4BUbuntu 20.04桌面版。现在,你可以按照自己的需求进行进一步的配置和使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [树莓派4b安装Ubuntu20.04桌面版并安装ROS1-NoeticROS2-Foxy](https://blog.csdn.net/oXiaoLingTong/article/details/123161254)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [树莓派4Bubuntu-mate-20.04.1种子](https://download.csdn.net/download/sf877/85175845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值