在Raspberry Pi 4上安装Ubuntu 20.04 + ROS noetic(不带显示器)

在Raspberry Pi 4上安装Ubuntu 20.04 + ROS noetic(不带显示器)

1. 所需设备

所需设备:

  • 树莓派 4 B 型

  • wifi

  • microSD 卡:最小 32GB

  • MicroSD 转 SD 适配器

  • (可选)显示器,鼠标等

2. 树莓派镜像烧录器

如果没有显示器,那么需要使用树莓派镜像烧录器,官网下载即可。

首先选择操作系统,接下来找到 Ubuntu Server 20.04.5版本。

接下来配置一下系统的初始化选项:

  • "开启SSH服务"以启用 SSH
  • "设置用户名"
  • "配置wifi"(重要):这将启用 Wi-Fi 并自动连接到提供的网络+密码。当然,这个 Wi-Fi 网络应该与当前电脑连接的网络相同,否则本教程的其余部分将不起作用。

接下来烧录等待即可。

3. 寻找Raspberry Pi 4 的ip地址

从计算机中弹出并取出 SD 卡。确保 Raspberry Pi 已关闭电源(拔掉电源线),将 micro SD 卡放入相应的插槽中,然后再打开 Raspberry Pi 4 的电源。应该看到 Pi 上的绿色 LED 随机闪烁。这意味着 Pi 正在启动并使用 SD 卡工作。如果绿色 LED 没有随机闪烁,可能是因为烧录操作不成功,需要重新烧录。

Pi 4 将尝试使用提供的名称和密码连接到目前的 Wi-Fi 网络。

下一步是查找Raspberry Pi在网络内的 IP 地址是什么。

Notice:如果以下步骤一开始没有看到 Pi 地址,则等待至少 2 分钟后再次关闭/打开树莓派的电源。

3.1 Windows

Windows可以使用Advanced IP Scanner

所要做的就是单击"扫描"并等待。

可以看到我的Raspberry Pi的地址是192.168.178.40.

3.2 Linux/Ubuntu

通常使用nmap来实现这一点(需要先安装nmap:sudo apt install nmap)。

首先找到网络IP地址和子网掩码。运行ifconfig命令:

shell 复制代码
$ ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.43.138  netmask 255.255.255.0  broadcast 192.168.43.255
        inet6 fe80::4024:2554:eea4:f97b  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:28:65:38  txqueuelen 1000  (Ethernet)
        RX packets 36560  bytes 42335654 (42.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8763  bytes 671459 (671.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 947  bytes 82515 (82.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 947  bytes 82515 (82.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

在这个例子中,我的Ubuntu主机的IP地址是192.168.43.138,子网掩码是255.255.255.0(24位)。

现在,使用nmap和刚刚获取的数据:

shell 复制代码
$ sudo nmap -sP 192.168.43.0/24
Starting Nmap 7.80 ( https://nmap.org ) at 2023-04-26 13:50 CEST
Nmap scan report for _gateway (192.168.43.1)
Host is up (0.015s latency).
MAC Address: 8E:F5:A3:DB:03:27 (Unknown)
Nmap scan report for ubuntu (192.168.43.56)
Host is up (0.049s latency).
MAC Address: DC:A6:32:02:46:50 (Raspberry Pi Trading)
Nmap scan report for LAPTOP-27UBLNO7 (192.168.43.234)
Host is up (0.00057s latency).
MAC Address: 7C:B2:7D:9E:95:DA (Intel Corporate)
Nmap scan report for ed-vm (192.168.43.138)
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.07 seconds

然后我们找到了树莓派的IP地址:192.168.43.56。

3.3 有屏幕

直接输入

bash 复制代码
$ ip addr 

输出类似于:

bash 复制代码
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether e4:5f:01:49:a8:b6 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether e4:5f:01:49:a8:b7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.40/24 brd 192.168.178.255 scope global dynamic wlan0
       valid_lft 863983sec preferred_lft 863983sec

4. 连接到树莓派

在Windows上打开终端,只需在Windows搜索栏中键入"cmd",然后启动"命令提示符"。 我在这里使用了vscode,因为非常适合未来的开发,在这里非常推荐。

键入以下命令:

shell 复制代码
$ ssh pi@192.168.178.40

将"pi"替换为树莓派镜像烧录器的高级设置中输入的任何其他用户名。同时,使用上一步中刚刚找到的IP地址,而不是192.168.178.40。

然后将看到类似于以下内容:

复制代码
The authenticity of host '192.168.178.40 (192.168.178.40)' can't be established.
ED25519 key fingerprint is SHA256:WI67l/jru1i2vEnrHWLbzoV+1s71Dt0AJtg6JBP8faI.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.178.40' (ED25519) to the list of known hosts.
pi@192.168.178.40's password:

需要在第一个问题中输入"yes",然后使用烧录器的高级设置中设置的密码。

然后将看到类似于以下内容:

bash 复制代码
Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-1090-raspi aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sun Aug  6 10:11:16 UTC 2023

  System load:  0.47               Temperature:            55.0 C 
  Usage of /:   31.3% of 28.94GB   Processes:              168    
  Memory usage: 4%                 Users logged in:        0      
  Swap usage:   0%                 IPv4 address for wlan0: 192.168.178.40    

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

183 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

29 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm

New release '22.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Jul 20 12:13:32 2023 from 192.168.163.155
pi@ubuntu:~$ 

5. 安装ROS noetic

设置sources.list

将计算机设置为接受packages.ros.org的软件。

bash 复制代码
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

这行命令将ROS软件包源添加到sources.list文件中。

bash 复制代码
sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

这两行命令用于安装curl(如果还没有安装curl)并导入ROS软件包的公共密钥。

bash 复制代码
sudo apt update

这行命令用于更新可用的软件包列表。

安装桌面版

ROS-Base中的所有内容以及rqt和rviz等工具。

bash 复制代码
sudo apt install ros-noetic-desktop

这行命令用于安装ROS桌面版,它包括ROS-Base中的所有内容以及一些工具(如rqt和rviz)。

bash 复制代码
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

这两行命令用于将ROS环境变量添加到bashrc文件中,并在当前会话中立即加载这些变量。

安装python3-rosdep,python3-rosinstall,python3-rosinstall-generator,python3-wstool和build-essential等软件包。

bash 复制代码
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

这行命令用于安装一些常用的ROS依赖工具和编译所需的基本软件包。

初始化rosdep

在使用许多ROS工具之前,需要初始化rosdep。rosdep可以为要编译的源代码轻松安装系统依赖项,并且某些ROS核心组件需要它来运行。如果还没有安装rosdep,请按照以下方式安装。

bash 复制代码
sudo apt install python3-rosdep

这行命令用于安装rosdep。

执行以下命令来初始化rosdep。

bash 复制代码
sudo rosdep init
rosdep update

这两行命令用于初始化rosdep,并获取最新的rosdep规则。

测试

接下来可以运行roscore来检查ros的安装。

bash 复制代码
roscore
相关推荐
JANGHIGH8 分钟前
vmware安装ubuntu虚拟机后与主机win10共享文件夹
linux·运维·ubuntu
GHL2842710908 分钟前
vmware中无法看到共享文件夹
linux·运维·服务器
范纹杉想快点毕业32 分钟前
嵌入式C语言实战开发详解
linux·运维·算法
天骄t36 分钟前
数据库入门:SQLite实战指南
linux
张某人的胡思乱想1 小时前
周末随笔-整理ubuntu环境
linux·运维·ubuntu
翔云 OCR API1 小时前
智能发票查验接口在财务自动化中的技术实现与应用价值
linux·运维·自动化
硬核子牙1 小时前
送别2025,喜迎2026
linux
大聪明-PLUS2 小时前
FUSE:如何编写自己的文件系统
linux·嵌入式·arm·smarc
钟佩颖2 小时前
STM32
stm32·单片机·嵌入式硬件
平凡灵感码头2 小时前
天天在用的芯片:78L05 电源稳压器详解
单片机·嵌入式硬件