Skip to content

树莓派2/3/4 Navio2自动驾驶仪

WARNING

PX4并不生产此款(或任何一款)自动驾驶仪。 如需硬件支持或解决合规性问题,请联系制造商

这是树莓派2/3/4 Navio2自动驾驶仪的开发者 “快速入门” 指南。它能帮助你构建PX4并传输到树莓派,或者在树莓派上进行本地构建。

树莓派图片

操作系统镜像

使用预先配置好的适用于Navio 2的Emlid树莓派操作系统镜像。默认镜像已完成下面展示的大部分设置步骤。

WARNING

注意不要升级系统(更具体地说是内核)。升级可能会安装新内核,而新内核可能缺少必要的硬件支持(你可以通过ls /sys/class/pwm检查,该目录不应为空)。

设置访问权限

树莓派操作系统镜像已设置好SSH。用户名是“pi”,密码是“raspberry”。在本指南中,我们假设用户名和密码保持默认设置。

要设置树莓派连接到本地无线网络,请参考此指南,或者通过以太网线缆连接。

要通过SSH连接到树莓派,使用默认用户名(pi)和主机名(navio)。如果不行,你也可以找到树莓派的IP地址并指定它。

sh
ssh pi@navio.local

或者

sh
ssh pi@<IP地>

扩展文件系统

运行以下命令扩展文件系统,以利用整个SD卡空间:

sh
sudo raspi-config --expand-rootfs

禁用Navio RGB覆盖

现有的Navio RGB覆盖会占用PX4用于RGB灯的GPIO。编辑/boot/config.txt,注释掉启用navio - rgb覆盖的那一行。

#dtoverlay=navio-rgb

测试文件传输

我们使用SCP通过网络(WiFi或以太网)将文件从开发计算机传输到目标板。

现在就测试你的设置,尝试从开发PC通过网络将一个文件推送到树莓派。确保树莓派已联网,且你能通过SSH登录。

sh
echo "Hello" > hello.txt
scp hello.txt pi@navio.local:/home/pi/
rm hello.txt

这应该会将一个“hello.txt”文件复制到树莓派的主文件夹中。确认文件确实已复制,然后就可以进行下一步。

PX4开发环境

以下说明介绍如何在Ubuntu 18.04上安装用于构建树莓派的PX4开发环境。

WARNING

Navio 2的PX4二进制文件只能在Ubuntu 18.04上运行。

你可以在Ubuntu 20.04上使用GCC工具链构建PX4,但生成的二进制文件太新,无法在实际的树莓派上运行(截至2023年9月)。 更多信息请参考搭载树莓派操作系统的PilotPi开发者快速入门 > 使用Docker的替代构建方法

安装通用依赖项

要获取树莓派的通用依赖项:

  1. 从PX4源仓库(/Tools/setup/)下载ubuntu.shrequirements.txt
    sh
    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/ubuntu.sh
    wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/requirements.txt
  2. 在终端中运行ubuntu.sh,仅获取通用依赖项:
    sh
    bash ubuntu.sh --no-nuttx --no-sim-tools
  3. 然后按照以下章节的描述设置交叉编译器(GCC或clang)。

GCC(armhf)

Ubuntu软件仓库提供了一组预编译的工具链。请注意,Ubuntu Focal默认安装的是gcc - 9 - arm - linux - gnueabihf,但它不完全受支持,所以我们必须手动安装gcc - 8 - arm - linux - gnueabihf并将其设置为默认工具链。本指南也适用于早期的Ubuntu版本(Bionic)。 以下说明假设你尚未安装任何版本的arm - linux - gnueabihf,并将使用update - alternatives设置默认可执行文件。 使用终端命令安装:

sh
sudo apt-get install -y gcc-8-arm-linux-gnueabihf g++-8-arm-linux-gnueabihf

将它们设置为默认:

sh
sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc-8 100 --slave /usr/bin/arm-linux-gnueabihf-g++ arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabihf-g++-8
sudo update-alternatives --config arm-linux-gnueabihf-gcc

GCC(aarch64)

如果你想为ARM64设备构建PX4,需要完成本节内容。

sh
sudo apt-get install -y gcc-8-aarch64-linux-gnu g++-8-aarch64-linux-gnu
sudo update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-8 100 --slave /usr/bin/aarch64-linux-gnu-g++ aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-g++-8
sudo update-alternatives --config aarch64-linux-gnu-gcc

Clang(可选)

首先安装GCC(使用clang需要GCC)。 我们建议从Ubuntu软件仓库获取clang,如下所示:

sh
sudo apt-get install clang

以下是使用_CMake_在外部构建PX4固件的示例。

sh
cd <PX4源代码路>
mkdir build/px4_raspberrypi_default_clang
cd build/px4_raspberrypi_default_clang
cmake \
-G"Unix Makefiles" \
-DCONFIG=px4_raspberrypi_default \
-UCMAKE_C_COMPILER \
-DCMAKE_C_COMPILER=clang \
-UCMAKE_CXX_COMPILER \
-DCMAKE_CXX_COMPILER=clang++ \
../..
make

构建代码

使用以下命令指定树莓派的IP(或主机名):

sh
export AUTOPILOT_HOST=navio.local

或者

sh
export AUTOPILOT_HOST=192.168.X.X

INFO

环境变量的值应在构建前设置,否则make upload将无法找到你的树莓派。

在开发机器上构建可执行文件:

sh
cd PX4-Autopilot
make emlid_navio2

“px4”可执行文件位于**build/emlid_navio2_default/**目录中。确保你能通过SSH连接到树莓派,参考如何访问你的树莓派的说明中树莓派下armhf的相关说明。 然后使用以下命令上传:

sh
cd PX4-Autopilot
make emlid_navio2 upload

接着,通过ssh连接并在树莓派上以root身份运行:

sh
cd ~/px4
sudo./bin/px4 -s px4.config

成功构建并执行PX4后,你会看到类似如下内容:

sh

______  __   __    ___
| ___ \ \ \ / /   /   |
| |_/ /  \ V /   / /| |
|  __/   /   \  / /_| |
| |     / /^\ \ \___  |
\_|     \/   \/     |_/

px4启动中。


pxh>

自动启动

要自动启动px4,在文件**/etc/rc.local**中exit 0行之前添加以下内容(如果你使用本地构建,请相应调整):

sh
cd /home/pi &&./bin/px4 -d -s px4.config > px4.log