1、树莓派4B安装Ubuntu-Melotic-Ros准备工作
1.1 硬件准备
①树莓派Raspberry Pi 4
②读卡器
③TF卡(64G)
④显示屏或HDMI采集卡 以及配套的数据线(安装而言不需要也可以)
④鼠标键盘(安装而言鼠标无需,键盘必须)
④网线(非必须)
1.2 软件准备
①如果TF卡已有内容,在使用之前需要执行格式化,比如可以使用SD Card Formatter,下载地址:SD Memory Card Formatter for Windows/Mac | SD Association
②Ubuntu- Melotic下载并解压,下载地址:Ubuntu 18.04.6 LTS (Bionic Beaver)
③官方烧录(简单、适合入门级小白选手),下载地址:https://www.raspberrypi.com/software/
其他方式烧录:
win32 Disk Imager烧录软件下载并安装,下载地址: Win32 Disk Imager download | SourceForge.net
1.3 联网配置
①网线:在有路由器的情况下有网线最好,当然路由器也必须联网正常,使用网线将树莓派和路由器的网槽连接,即可展开后续的工作。
②热点:没有网线的条件下,手机热点也可以使用,修改手机热点名称为英文,保证手机联网正常。
无论热点还是网线连接,都必须进行一些网络配置,将烧录完成的TF卡插入电脑,随后弹出的对话框中点击“×”,进入磁盘“system-boot”,找到“network-config”网络配置文件,右键用记事本打开,直接点击打不开,打开文件后取消如图所示的部分注释,并且进行修改,切记:WIFI或热点名称不要加引号,官网烧录的这个文件是加引号的,密码修改,不管你是官方还是其他方式烧录,这一步都必须检查一下,密码在这一栏必须得修改才能符合我们自己的WIFI或热点密码。
1.4 其他修改
如果你有鼠标,第一次进入的时候会很卡顿,这时候你必须做如下修改,打开刚才磁盘“system-boot”下的“nobtcmd.txt”文件,添加修改如下图所示的代码:
usbhid.mousepoll=0
2、树莓派上安装Ubuntu-Melotic
2.1 插卡启动相关问题配置
将烧录完成的TF卡插入树莓派底部的卡槽中,连接网线(或者配对热点,只要按上述步骤,一般手机热点会自动匹配,当然你的电脑和手机必须要连接相同的手机热点,方便接下来的某些调试),启动树莓派,正常情况下,启动时是命令行界面,登陆使用默认账号密码(官方烧录的时候你可以修改账号和密码,即在配置的时候可以自定义账号和密码,其他烧录时,你需要修改按如下步骤)。
默认账号:ubuntu
默认密码:ubuntu
还需要根据提示修改密码。
更改密码后,系统安装完毕,不过此时是命令行式操作,下一步需要安装桌面。
如果你安装镜像的是Ubuntu18.04那可能就没有如此的幸运,开启时并不是命令行界面,而如下图所示界面(当然不需要显示屏或HDMI采集卡建立在理想状态,所有配置都不会报错的情况):
这时候面临如此境地,解决时需要替换某些文件,下载最新固件包,文件的下载地址:GitHub - raspberrypi/rpi-firmware: Firmware files for the Raspberry Pi
移步到该网站,下载start-*.elf与fixup-*.dat类型的文件,随后到磁盘“system-boot”下,粘贴替换这些文件,随后将烧录完成的TF卡插入树莓派底部的卡槽中,连接网线(或者配对热点),启动树莓派,启动时是命令行界面,配置方式如上所示。
2.2 SSH远程连接
为了安装方便,使用SSH远程连接,Ubuntu系统已经安装了SSH客户端,因此只需要在树莓派安装服务端即可,命令行输入:
sudo apt-get update
sudo apt-get install openssh-server
如果客户端需要自行安装,那么调用如下命令:
sudo apt-get install openssh-client
树莓派启动ssh服务命令:
sudo /etc/init.d/ssh start
启动后查看服务是否正常运行命令:
ps -ef | grep ssh
如果启动成功,会包含sshd与ssh两个程序,如下图所示:
或者检查SSH服务的状态,命令如下:
sudo systemctl status ssh
如果SSH服务器已启动,您应该会看到类似于"ssh is running" 或 "active (running)" 的消息,如下图所示。
如果服务未在运行,请使用以下命令启动 SSH 服务:
sudo systemctl start ssh
将树莓派的ssh服务设置为开机自启动,命令如下:
sudo systemctl enable ssh
正常情况下客户端远程登陆服务端
登陆树莓派可以调用如下命令:
ssh 账号@IP地址
然后根据提示,录入登陆密码,即可成功登陆,第一次登陆需要输入yes确认登陆的指示,如下图所示:
如果退出登陆,可以调用exit命令:
exit
如果无法正常登陆时(Connection refused),需要按上述步骤检查,或者按下述步骤排查。
2.3 SSH相关的进程问题排查
①检查 SSH 服务器状态:
sudo service ssh status
如果 SSH 服务器已启动,您应该会看到类似于 "ssh is running" 或 "active (running)" 的消息,如上述图中所示。
② 启动 SSH 服务器:
如果 SSH 服务器未运行,您可以使用以下命令启动它:
sudo service ssh start
③检查 SSH 端口:
确保防火墙允许通过 SSH 使用的默认端口 22。您可以通过以下命令检查防火墙规则:
sudo ufw status
如果防火墙正在运行,并且未允许 SSH 访问,请使用以下命令允许 SSH 访问:
sudo ufw allow ssh
④查看 SSH 服务是否启用:
确保 SSH 服务已启用:
sudo systemctl enable ssh
⑤重启 SSH 服务:
如果对配置文件进行了更改,请重启 SSH 服务以使更改生效:
sudo service ssh restart
完成上述步骤后,应该能够从电脑端成功连接到树莓派的 SSH 服务器。如果仍然遇到问题,请检查网络连接、防火墙设置和 SSH 配置是否正确。
2.4 安装软件时存在flash-kernel错误提示
在登录时输入“sudo apt-get update”之后最后弹出来如下情况:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
处理软件包fLash-kernel(--configure)时出错,需要手动删除锁文件,如果确定没有其他进程在使用dpkg,可以手动删除锁文件,效果如下图所示。使用以下命令:
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
移除“flash-kernel”与之相关的配置文件和依赖项,运行以下命令:
sudo FLASH_KERNEL_SKIP=1 dpkg --configure flash-kernel
sudo apt-get clean
sudo apt-get purge flash-kernel
2.5 Ubuntu-Melotic桌面安装
①调用命令如下命令获取树莓派的IP地址,如下图所示圈位置即为IP地址:
Ifconfig
②PC端(客户端)远程调用ssh ubuntu@ip地址登录,效果如上图SSH远程连接章节中所述一致。
接下来,可以直接安装桌面,但是为了提高安装效率,建议更换下载源,使用国内资源(此为Ubuntu18.04的镜像源,切不可为其他版本配置):
清华源:
地址:ubuntu-ports | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-proposed main restricted universe multiverse
③修改/etc/apt/sources.list文件,将上述清华源代码复制进文件,命令如下:
sudo nano /etc/apt/sources.list
④安装桌面环境(可选择:xubuntu-desktop、lubuntu-desktop、kubuntu-desktop),命令如下:
sudo apt-get install ubuntu-desktop
⑤重启桌面安装完毕,命令如下:
reboot
⑥同步时间(官方烧录选择时可以配置时间区域,此步骤可以省略)
默认情况下,树莓派系统时间是格林威治时间,而我们处于东八区,相差八个小时,需要将时间,设置为北京时间。
在/etc/profile文件中增加一行export TZ='CST-8' ,并使文件立即生效,执行命令:
sudo nano ./etc/profile
source /etc/profile
3、基于RaspberryPi4B-Ubuntu-Melotic安装ROS1
3.1 配置软件与更新
首先打开“软件和更新”对话框,具体可以在 Ubuntu 搜索按钮中搜索。打开并配置(确保勾选了“restricted”, “universe”," 和 “multiverse”),如下图所示:
3.2 设置安装源
清华源:
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'
3.3 设置key:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3.4 安装:
sudo apt update
sudo apt install ros-melodic-desktop
3.5 环境配置
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
3.6 构建软件包的依赖关系
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init
rosdep update
3.7 错误提示
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
当出现上述错误时,表明无法从指定URL下载默认的软件源列表,解决查询错误提示中域名的IP地址,然后修改 /etc/hosts 文件,添加域名与IP映射。
①访问域名查询网址:ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名
②查询域名ip,搜索框中输入: raw.githubusercontent.com,自由复制一个查询到的IP。
③修改/etc/hosts文件,命令:
sudo nano /etc/hosts
添加内容:185.199.111.133 raw.githubusercontent.com (首次粘贴继续报错,建议更换多试几个域名),保存并退出。
提示如下则已成功安装:
Ros安装可参考官方Ubuntu install of ROS Melodic文档:melodic/Installation/Ubuntu - ROS Wiki