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

警告

PX4 不生产这种(或任何)自动驾驶仪。请联系 生产商 (打开新窗口) 硬件支持或合规问题。

警告

该飞行控制器支持 PX4 试验性.

这是 Raspberry Pi 2/3 Navio2 自动驾驶仪的开发人员快速入门手册。它允许您构建 PX4 并将其传输到 RasPi,或直接构建。

Ra Pi 图像

# 操作系统图像

使用 用于 Navio 2 的 Emlid RT Raspbian 映像 (打开新窗口).默认映像已完成下面显示的大部分设置步骤。

警告

确保不要升级系统(更具体地说是内核)。通过升级,可能会安装一个缺乏必要硬件支持的新内核(可以通过 ls /s/ys/class/pwm目录不应为空)。

# 设置访问

Raspbian 映像已经设置了 SSH。用户名为 "pi",密码为 "raspberry"。你可以通过网络连接到 RPi2/3(以太网默认设置为 DHCP),然后继续配置 WiFi 访问。在本指南中,我们假设用户名和密码保持默认值。

要设置 RPi2/3 加入本地无线网络,请遵循以下步骤 本指南 (打开新窗口).

从网络中查找 Pi 的 IP 地址,然后使用 SSH 进行连接。

ssh pi@<;IP 地址>;

# 扩展文件系统

安装操作系统并连接后,请确保 扩展文件系统 (打开新窗口)这样 SD 卡上就有足够的空间。

# 禁用 Navio RGB 叠加

现有的 Navio RGB 叠加功能要求 PX4 为 RGB 灯使用 GPIO。编辑 /boot/config.txt 注释启用 navio-rgb 覆盖。

#dtoverlay=navio-rgb

# 更改主机名

为避免与网络上的任何其他 RPis 发生冲突,我们建议您将默认主机名更改为合理的名称。我们在设置时使用了 "px4autopilot"。通过 SSH 连接到 Pi,并按照以下说明操作。

编辑主机名文件:

苏都 纳米 /etc/hostname

改变 木莓 为您想要的任何主机名(单词,字符有限)

接下来,您需要更改主机文件:

苏都 纳米 /etc/hosts

更改条目 127.0.1.1 raspberry127.0.1.1 <YOURNEWHOSTNAME>;

完成此步骤后重启 Pi,使其重新与网络关联。

# 设置 Avahi(Zeroconf)

为了更方便地连接到 Pi,我们建议设置 Avahi (Zeroconf),通过直接指定 Pi 的主机名,可以从任何网络轻松访问 Pi。

苏都 apt-get 安装 avahi-daemon
苏都 insserv avahi-daemon

接下来,设置 Avahi 配置文件

苏都 纳米 /etc/avahi/services/multiple.service

将此添加到文件 :

<?xml版本="1.0"独立='否'?>;
<!DOCTYPE 服务组 系统 "avahi-service.dtd";>;
<;服务组>;
        <;名字 替换万事达卡=";";>;%h</名字>;
        <;服务>;
                <;类型>;_设备信息._tcp</类型>;
                <;>;0</>;
                <;txt-record>;型号=RackMac</txt-record>;
        </服务>;
        <;服务>;
                <;类型>;_ssh._tcp</类型>;
                <;>;22</>;
        </服务>;
</服务组>;

重启守护进程

苏都 /etc/init.d/avahi-daemon 重启

就是这样。您应该可以从网络上的任何计算机直接通过主机名访问您的 Pi。

TIP

您可能需要在主机名中添加 .local 才能发现它。

# 配置 SSH 公钥

为了让 PX4 开发环境自动将可执行文件推送到电路板,您需要配置 RPi 的无密码访问。为此,我们使用了公钥验证方法。

要生成新的 SSH 密钥,请输入以下命令(选择一个合理的主机名,如 <YOURNANME>@<YOURDEVICE>;.在这里,我们使用了 pi@px4autopilot)

这些命令需要在 HOST 开发计算机上运行!

ssh-keygen -t rsa -C pi@px4autopilot

输入此命令后,系统会询问你在哪里保存密钥。建议按回车键将其保存在默认位置($HOME/.ssh/id_rsa)。

现在你应该看到文件 id_rsaid_rsa.pub 在你的 .ssh 目录:

ls ~/.ssh authorized_keys id_rsa id_rsa.pub known_hosts

id_rsa 文件就是你的私人密钥。将其保存在开发计算机上。文件 id_rsa.pub 文件是你的公钥。您要把它放在要连接的目标上。

要将公钥复制到 Raspberry Pi 上,请使用以下命令将公钥添加到 Pi 上的 authorized_keys 文件中,并通过 SSH 发送:

 ~/.ssh/id_rsa.pub | ssh pi@px4autopilot cat >> .ssh/authorized_keys

请注意,这次您必须使用密码(默认为"raspberry")进行身份验证。

现在试试 ssh pi@px4autopilot 您就可以在没有密码提示的情况下进行连接。

如果您看到一条信息 ";代理人承认没有使用密钥签名。然后将 RSA 或 DSA 身份添加到身份验证代理 ssh-agent,并执行以下命令:

ssh-add

如果还不行,请使用 rm ~/.ssh/id* 并再次按照说明操作。

# 测试文件传输

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

要测试你的设置,现在尝试通过网络从开发电脑向 Pi 推送一个文件。确保 Pi 具有网络访问权限,并且可以 SSH 登录。

回响 你好; >; hello.txt
scp hello.txt pi@px4autopilot:/home/pi/
rm hello.txt

这将把一个"hello.txt"文件复制到 RPi 的主文件夹中。验证文件是否已复制,然后就可以进行下一步了。

# 构建代码

如下图所示,您可以在开发计算机上编译源代码(交叉编译器编译),也可以在 RaPi 上编译(本地编译)。

# 跨编译器构建

首先安装 Ubunto 开发计算机上的标准开发人员环境.

设置 RPi 的 IP(或主机名):

出口 AUTOPILOT_HOST=192.168.X.X

出口 AUTOPILOT_HOST=pi_hostname.domain

备注

环境变量的值应在构建之前设置,或者 上传 将无法找到您的 RPi。

生成可执行文件

CD PX4-自动驾驶仪
生产 emlid_navio2 # 用于跨编译器构建

可执行文件位于以下目录中 build/emlid_navio2_default/.确保可以通过 ssh 连接到 RPi,请参阅 说明如何访问您的 RPi.

然后用

CD PX4-自动驾驶仪
生产 上传 emlid_navio2 # 用于跨编译器构建

然后,通过 ssh 进行连接,并以(root)身份运行:

CD ~/px4
苏都 ./bin/px4 -s px4.config

# 本地构建

本机构建是直接在 Pi 上运行的构建(另一种方法是在开发计算机上运行构建,开发计算机会为 Pi 进行交叉编译,并将 PX4 可执行二进制文件直接推送到 Pi 上)。

在 Pi 上运行这些命令,在 Pi 上设置构建系统。

苏都 apt-get 更新
苏都 apt-get 安装 cmake python-empy

将固件直接克隆到 Pi 上,然后构建本地构建目标 (emlid_navio2_native).

Git 克隆 https://github.com/PX4/PX4-Autopilot.git --recursive
CD PX4-自动驾驶仪
生产 emlid_navio2_native

可执行文件位于以下目录中 build/emlid_navio2_native/.直接使用

苏都 ./build/emlid_navio2_native/px4 build/emlid_navio2_native/etc -s ./posix-configs/rpi/px4.config

成功构建后,执行 px4 会得到类似这样的结果:


______ __ __ ___
| ___ \ \ \ / / /   |
| |_/ /  \ V / / /| |
|  __/ /   \  / /_| |
| |     / /^\ \ \___  |
\_|     \/   \/     |_/ px4 开始。>;

# 自动启动

要自动启动 px4,请在文件中添加以下内容 /etc/rc.local (如果使用本地构建,请相应调整),就在 退出 0 线:

CD /home/pi &&; ./bin/px4 -d -s px4.config >; px4.log