# BeagleBone Blue

警告

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

警告

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

BeagleBone Blue (打开新窗口) 是一款基于 Linux 的一体化计算机。虽然它是为机器人技术而优化的,但这块小巧而廉价的电路板拥有飞行控制器所需的所有传感器和外围设备。本主题将介绍如何设置电路板以运行 PX4,其中包括 librobotcontrol (打开新窗口) 机器人软件包。

BeagleBone - 标签图

# 操作系统图像

BeagleBone Blue 图片可在此处找到:

有关闪存操作系统图像的信息,请访问 本页 (打开新窗口).其他有用信息可参见 常见问题 (打开新窗口).

TIP

您也可以选择更新到实时内核。 librobotcontrol 能与实时内核正常运行。

更新本文档时的最新操作系统图像是 bone-debian-10.3-iot-armhf-2020-04-06-4gb.img.xz (打开新窗口).

# 跨编译器构建(推荐)

推荐的 PX4 制作方法 BeagleBone Blue 在开发计算机上编译,然后将 PX4 可执行二进制文件直接上传到 BeagleBone Blue。

TIP

建议采用这种方法 本地构建 由于部署速度快、使用方便。

备注

构建 PX4 需要 librobotcontrol (打开新窗口) 会自动包含在构建过程中(但如果需要,也可以单独安装和测试)。

# Beaglebone Blue WIFI 设置

为了方便访问电路板,您可以通过无线网络将其连接到家庭网络。

步骤是(在黑板上执行):

苏都 su
connmanctl connmanctl>;扫描 wifi connmanctl>;服务
#(此时,你会看到网络 SSID 出现。)
connmanctl>;连接人>;接通 <;SSID>;
	输入密码 connmanctl>;

备注

的格式。 <SSID>; 上面通常是文本 "wifi",然后是一串其他字符。输入命令后,系统会提示您输入 wifi 密码。

# 在 Beaglebone 上使用 SSH root 登录

可以通过以下方式在电路板上启用 Root 登录:

苏都 su
回响 "允许根登录 yes"; >>;  /etc/ssh/sshd_config &&; systemctl restart sshd

# 交叉编译器设置

  1. 首次设置 rsync (用于通过网络(WiFi 或以太网)将文件从开发计算机传输到目标板)。对于 rsync 在 SSH 上使用密钥身份验证,请按照此处(在开发机器上)的步骤操作:
    1. 如果之前未生成 SSH 密钥,则生成该密钥:

      ssh-keygen -t rsa
      
      1. 输入 //无密码
      2. 输入
      3. 输入
    2. 将 BeagleBone Blue 板定义为 Beaglebone/etc/hosts 并将 SSH 公钥复制到板上,以实现无密码 SSH 访问:

      ssh-copy-id debian@beaglebone
      
    3. 或者,您也可以直接使用 beaglebone 的 IP:

      ssh-copy-id debian@<IP>;
      
    4. 当提示您是否信任时:是

    5. 输入根密码

  2. 交叉编译设置
    1. 工具链下载
      1. 首先将工具链安装到 /opt/bbblue_toolchain/gcc-arm-linux-gnueabihf.下面是使用软链接选择要使用的工具链版本的示例:

        mkdir -p /opt/bbblue_toolchain/gcc-arm-linux-gnueabihf
        chmod -R 777 /opt/bbblue_toolchain
        CD /opt/bbblue_toolchain/gcc-arm-linux-gnueabihf
        

        ARM 交叉编译器 BeagleBone Blue 请访问 Linaro 工具链二进制文件网站 (打开新窗口).

        TIP

        工具链中的 GCC 应与内核中的 BeagleBone Blue.一般的经验法则是选择 GCC 版本不高于操作系统映像自带的 GCC 版本的工具链。 BeagleBone Blue.

        下载并解压 gcc-linaro-13.0.0-2022.06-x86_64_arm-linux-gnueabihf.tar.xz (打开新窗口) 到 bbblue_toolchain 文件夹中。

        ARM 交叉编译器的不同版本 BeagleBone Blue 请访问 Linaro 工具链二进制文件网站 (打开新窗口).

        wget https://snapshots.linaro.org/gnu-toolchain/13.0-2022.06-1/arm-linux-gnueabihf/gcc-linaro-13.0.0-2022.06-x86_64_arm-linux-gnueabihf.tar.xz
        卷烟 -xf gcc-linaro-13.0.0-2022.06-x86_64_arm-linux-gnueabihf.tar.xz
        

        TIP

        工具链的 GCC 版本应与内核兼容。 BeagleBone Blue.

        一般来说,选择的工具链的 GCC 版本应不高于操作系统映像自带的 GCC 版本。 BeagleBone Blue.

      2. 将其添加到 ~/.profile 的 PATH 中,如下所示

        出口 路径=$PATH:/opt/bbblue_toolchain/gcc-arm-linux-gnueabihf/ gcc-linaro-13.0.0-2022.06-x86_64_arm-linux-gnueabihf/bin
        

        备注

        注销并登录以应用更改,或在当前 shell 中执行同一行。

      3. 通过下载 PX4 源代码,然后运行设置脚本来设置其他依赖项:

        git clone https://github.com/PX4/PX4-Autopilot.git --recursive
        
    bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools
    
        您可能需要编辑上传目标,以便与您的设置相匹配:```sh nano PX4-Autopilot/boards/beaglebone/blue/cmake/upload.cmake # 在第 37 行更改 [email protected] TO root@beaglebone (或 root@<IP>) ``` 有关更多信息,请参阅 [开发环境设置](../dev_setup/dev_env_linux_ubuntu.md) 说明。
    
    

# 交叉编译和上传

编译和上传

使 beaglebone_blue_default 上传

备注

不上传时,文件存储在本地的构建文件夹中。

要测试上传的文件,请在 BeagleBone Blue 董事会:

CD /home/debian/px4 
苏都 ./bin/px4 -s px4.config 

备注

目前 librobotcontrol 需要 root 访问权限。

# 本地构建(可选)

您还可以在 BeagleBone Blue 上直接构建 PX4 版本。

获取预置库后、

  1. 选择 librobotcontrol 安装目录,并在 librobotcontrol_install_dir 环境变量,这样就不会包含其他不需要的标头
  2. 安装 robotcontrol.hrc/*$LIBROBOTCONTROL_INSTALL_DIR/include
  3. 将预构建的本地(ARM)版本 librobotcontrol.* 安装到 $LIBROBOTCONTROL_INSTALL_DIR/lib

在 BeagleBone Blue 上运行以下命令(即通过 SSH):

  1. 安装依赖项:
    苏都 apt-get 更新
    苏都 apt-get 安装 cmake python-empy
    
  2. 将 PX4 固件直接克隆到 BeagleBone Blue 上。
  3. 继续 标准构建系统安装.

# 配置更改

所有更改都可以直接在 beaglebone 上的 de px4.config 文件中进行。例如,可以将 WIFI 更改为 wlan。

备注

如果你想永久改变,就必须改变 PX4-Autopilot/posix-configs/bbblue/px4.config 然后再在构建机上进行构建。

# 启动时自动启动

下面是一个示例 [/etc/rc.local]:

#!/bin/sh -e
#
# rc.local
#
# 该脚本在每个多用户运行级别结束时执行。
# 确保脚本在成功或任何其他情况下都会 "exit 0" 退出。
# 出错时的值。
#
# 要启用或禁用此脚本,只需更改执行
# bits.
#
# 默认情况下,该脚本什么也不做。

# 等待服务启动
/bin/sleep 25

CD /home/debian/px4 /home/debian/px4/bin/px4 -d -s /home/debian/px4/px4.config >; /home/debian/px4/PX4.log 及样品; 

出口 0

以下是 systemd 服务示例 [/lib/systemd/system/px4-quad-copter.service]:

[单位]
说明=PX4 四旋翼飞行器服务
之后=network.service network-online.target 
启动限制间隔秒=0
冲突=px4-fixed-wing.service

[服务]
工作目录=/home/debian/px4
用户=根基
执行启动=/home/debian/px4/bin/px4 -d -s /home/debian/px4/px4.config  

重新启动=失灵
重启安全=1

[安装]
想要=多用户目标

# 杂项

# 动力伺服导轨

PX4 启动时,会自动为舵机供电。

# 独特功能

BeagleBone Blue 具有一些独特的功能,如多种 WiFi 接口和电源选择。请参阅 /home/debian/px4/px4.config 以使用这些功能。

# SBUS 信号转换器

来自接收器(如 FrSky X8R)的 SBUS 信号是反相信号。BeagleBone Blue 上的 UART 只能与非反相的 3.3V 信号一起工作。 本教程 包含一个 SBUS 信号逆变电路。

# 典型连接

对于带有 GPS 和 SBUS 接收器的四旋翼飞行器,以下是典型的连接方式:

  1. 将电机 1、2、3 和 4 的电调分别连接至 BeagleBone Blue 的伺服输出通道 1、2、3 和 4。如果您的电调连接器包含电源输出引脚,请将其移除,不要将其连接到 BeagleBone Blue 上伺服通道的电源输出引脚上。

  2. 如果您有与 dsm2 匹配的连接器,请将上述转换后的 SBUS 信号连接到 dsm2 端口,否则请将其连接到任何其他可用的 UART 端口,并在 "UART "中更改相应的端口。 /home/debian/px4/px4.config 因此。

  3. 将 GPS 模块的信号连接到 BeagleBone Blue 上的 GPS 端口。请注意,BeagleBone Blue 上 GPS 端口的信号引脚只有 3.3V 容差,因此请选择相应的 GPS 模块。