# 树莓派 2/3 Navio2 自动驾驶仪
警告
PX4 不生产这种(或任何)自动驾驶仪。请联系 生产商 (打开新窗口) 硬件支持或合规问题。
警告
该飞行控制器支持 PX4 试验性.
这是 Raspberry Pi 2/3 Navio2 自动驾驶仪的开发人员快速入门手册。它允许您构建 PX4 并将其传输到 RasPi,或直接构建。
# 操作系统图像
使用 用于 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 raspberry
至 127.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_rsa
和 id_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