在 Linux 上构建 Bebop¶
这些说明阐明了如何为以下设备构建 ArduPilot Bebop 飞行控制器板。有关 Bebop 的更多详情,请查阅 这里.
提示
在以下设备上运行 ArduPilot 的说明 Bebop 2 可以在这里找到.
警告
进行本文所述的更改将使您的保修失效!派诺特的技术支持将无法帮助您解决这一问题或恢复您的原始软件。
警告
黑客攻击商业产品是有风险的!这种软件仍在不断发展,您很可能会发现飞行器存在各种问题,从飞行性能不佳到软件完全冻结不等。
尽管如此,恢复无人机几乎总是有可能的,ardupilot 开发团队的成员可能会帮助人们破解或恢复他们的 Bebop。 这个谷歌群组.
升级固件¶
截至 2015 年 11 月,Bebop 随附的 Linux 版本无法运行 ArduPilot,必须升级。要对其进行升级,您需要下载一个自定义版本 这里.
要升级到此版本:
为 Bebop 充电
连接其 Wi-Fi 网络 (BebopDrone-XXXX)
通过 ftp 连接
ftp 192.168.42.1
转到 eMMC 目录
CD 内部_000
上传更新文件
提出问题 bebopdrone_update.plf
通过 telnet 连接 Bebop
远程登录 192.168.42.1
备注
此处出现 telnet 错误表明 Bebop 当前固件没有打开正确的端口。手动重启 Bebop 以完成更新。
同步和重启
同步 重新启动
等待 Bebop 执行更新(可能需要几分钟时间)
备注
在此期间不要关闭 Bebop
更新完成后,您可以再次通过 WLAN 和 telnet 进行连接,并检查软件版本是否显示为 0.0.0(非官方版本),以验证更新是否完成。
猫 版本.文本
为 Bebop 搭建 ArduCopter¶
提示
如果只想试用(实验性的)二进制版本,可以跳过这一步。
以下步骤展示了如何为 Bebop 创建一个自定义版本的 Copter 软件:
安装 armhf 工具链¶
安装派诺特版本的 linaro arm-linux-gnueabihf 工具链,可从 这里
安装(工具链将在 /opt 中解压缩)
苏都 dpkg -i 鹦鹉学舌-工具-linuxgnutools-2016.02-linaro_1.0.0-2_amd64.辩论
在 PATH 变量中添加工具链路径
export PATH=/opt/arm-2016.02-linaro/bin:$PATH
下载并编译 ArduCopter¶
克隆 ardupilot 软件仓库
git 复制 --递归-子模块 https://github.网/ArduPilot/ardupilot.git CD ardupilot
构建飞行控制固件的方法几乎相同。 为 Pixhawk 建造 构建命令除外:
./waf 配置 --官方=呜呜 --天电 ./waf 构建
剥离二进制文件以减少内存占用:
上膛-linux-吟游诗人-剥离 ArduCopter.小精灵 -o 自动飞行器
上传固件¶
如果您还没有按照前面的步骤构建固件,可以下载二进制版本 这里
再次通过 ftp 连接,进入 eMMC 目录
将 arducopter 二进制
提出问题 自动飞行器
通过 telnet 连接 Bebop
将 arducopter 复制到 /usr/bin,并更改权限
cp /数据/ftp/内部_000/自动飞行器 /我们/箱柜 chmod +x /我们/箱柜/自动飞行器
启动 ArduPilot¶
通过远程登录连接
关闭常规(飞行)控制器
kk
发射旋翼飞行器
自动飞行器 -A udp:192.168.42.255:14550:bcast -B /设计/ttyPA1 -C udp:192.168.42.255:14551:bcast -l /数据/ftp/内部_000/APM/原木 -t /数据/ftp/内部_000/APM/地形
更改 GPS 配置¶
为了让 Bebop 的 GPS 发送 APM 的 NMEA 驱动程序能够理解的 NMEA 帧,您需要更改其配置。为此,您需要如前所述停止内置(飞行)控制器(先不要启动 Copter):
下载 gps_config 文件 这里
通过 ftp 连接 Bebop,并按照上文 "升级固件 "部分的提示进入 eMMC 目录
将配置文件
提出问题 gps_config.文本
通过 telnet 连接 Bebop
复制 gps_config.txt 在 /etc/
cp /数据/ftp/内部_000/gps_config.文本 /等等/
启动 GPS 配置更新程序
libgps_cli
等待控制台显示 NMEA 信息
停止 libgps_cli 键入 Ctrl-C
启动 Copter¶
自动执行 Copter 启动要比手动连接方便得多。要做到这一点,启动脚本需要按以下方式进行修改。
警告
这部分至关重要,因为您必须编辑启动脚本。如果您在这里做错了什么,您的 Bebop 可能会无法正常启动。如果出现这种情况,您就必须使用 UART 电缆来恢复。
启动脚本位于 /etc/init.d/rcS.您需要对其进行编辑,删除启动普通(飞行)控制器的行,代之以启动 Copter。问题行如下:
龙启动器.吁 -out2null 及样品;
替换为
自动飞行器 -A udp:192.168.42.255:14550:bcast -B /设计/ttyPA1 -C udp:192.168.42.255:14551:bcast -l /数据/ftp/内部_000/APM/原木 -t 数据/ftp/内部_000/APM/地形 及样品;
为了避免手动编辑文件,请下载 此 rcS 文件。
复制原始 rcS 文件以用于恢复
cp /等等/启动.d/rcS /等等/rcS_backup
通过 ftp 连接到 Bebop,然后将 rcS 文件放入 eMMC,就像之前处理其他文件一样。
然后手动复制以覆盖 /etc/init.d/rcS 并更改权限
cp /数据/ftp/内部_000/rcS /等等/启动.d/rcS chmod +x /等等/启动.d/rcS
同步和重启
同步 重新启动
如果您想让 Bebop 恢复正常,重新使用正常的(飞行)控制器和应用程序,只需更换 /etc/init.d/rcS 与备份文件同步并重新启动
cp /等等/rcS_backup /等等/启动.d/rcS 同步 重新启动
备注
如果您将软件恢复正常并通过 FreeFlight 智能手机应用程序使用 Bebop,可能会要求您升级软件版本。如果这样做,您必须重复之前的一些步骤,至少是 GPS 配置、复制 arducopter 和修改 init 脚本。至于是否需要升级到自定义版本,这将取决于某些选项在下一版本中是否可用。后续信息...
恢复¶
如果出了问题,您无法再启动 Bebop
UART 端口位于 Bebop 右侧颈部下方(面向前置摄像头)。
您需要把聚苯乙烯往回拉一点,但应该不会造成太大的损坏。
获取 UART 电缆,如 这个 或任何 FTDI 3 针电缆(GND TXD RXD)
获取标题,如 这些 然后像这样将它们插入电缆:
备注
电缆的颜色代码通常是
黑色 = 接地
黄色 = RXD
橙色 = TXD
像这样将电缆插入 Bebop:
备注
注意引脚布局:
黑色:前部
黄色:中间
橙色:背面
安装 UART 终端仿真器(如 minicom),并在 Bebop 接通电源后将其连接到 Bebop。
将备份的 rcS 文件复制回原处,同步并重新启动:
挂载 -o 重装,rw / cp /等等/rcS_backup /等等/启动.d/rcS 同步 重新启动
飞行¶
FreeFlight 3 与 ArduPilot 不兼容,因此您必须使用 支持的 GCS 之一.通过 Wi-Fi 与 Bebop 连接,然后启动 GCS,如果将链接设置为 UDP(以防万一),它应该会自动连接。
"这款" 天空控制器 与 apm 的常规固件不兼容。您需要闪存一个替代版本,才能用它控制您的 Bebop(相关信息即将发布......)。
为了手动驾驶 Bebop,Mission Planner地面站 GCS 用户可以使用 游戏板,如此处所述.或者使用 Bebop 上 777 端口的 RCOutput UDP 接口、Linux PC(或板型 Raspberry Pi)和 USB 游戏手柄。
在 Linux 上通过 UDP 的 RC 控制 Bebop¶
为了通过 UDP 的 RC 控制 Bebop 的 arducopter,您可以编写一个应用程序,使用 本协议 并每 10ms 发送一个数据包
或使用 遥控操纵杆 Linux 应用程序
为此,请克隆 git 仓库:
git 复制 https://github.网/jberaud/遥控操纵杆.git
建造它
CD 遥控操纵杆 生产
插入 USB 游戏手柄(输入 joystick_remote -help 会显示支持的游戏手柄列表)
如果您的游戏手柄不受支持,只要您知道它的映射,就能轻松添加对它的支持
通过 Wi-FI 连接 Bebop 并启动应用程序:
./遥控操纵杆 -d /设计/输入/js[X] -t [游戏板] -r 192.168.42.1:777
其中,[X] 是您可以轻松找到的游戏手柄的设备编号,通常为 0,但如果您的笔记本电脑已包含加速计等输入设备,则有时为 1;[gamepad] 是受支持的游戏手柄之一。
因此,对于映射到 /dev/input/js0 上的 XBox 360 游戏手柄,命令行变为
./遥控操纵杆 -d/设计/输入/js0 -t xbox_360 -r 192.168.42.1:777
必须在 Copter 的参数中设置飞行模式,才能使用按钮设置飞行模式
基本配置和框架参数¶
为了进行基本配置和校准,您可以使用任何一个通用控制系统并执行以下操作
磁强计校准
遥控校准
加速度计校准
多亏了 Leonard Hall,我们才有了一套非常好的飞行稳定调整参数,您可以在这里找到 这里
已知限制¶
与 UBlox GPS 相比,Bebop 的 GPS 性能并不出色,因此在 Loiter、PosHold 和其他 GPS 模式下,Bebop 会出现明显的漂移。
在 "自动 "模式下执行任务效果尚可,但我们建议您使用非 GPS 模式(如 AltHold 或 Stabilize)起飞和着陆。
将开展一些工作来改进对 GPS 的支持
目前正在开发光流
目前不支持视频流和捕捉