在 Snapdragon 上安装软件
高通骁龙飞行器 已停用(已被取代,但 PX4 尚不支持更新版本)。本文档是为现有用户提供的,但将在未来版本中删除。
要让平台运行完整的 VIO 系统,需要多个组件。下文概述了所使用的不同版本。下面提供了详细的安装说明。
软件 | 测试版本 | 链接/提交 ID |
---|---|---|
ROS | 靛蓝 | 这里 |
马弗罗斯 | 0.23.1 | 这里 |
MAVLink | release/kinetic/mavlink/2018.5.5-0 | 这里 |
PX4 | 师 | 这里 |
Snap VIO | 师 | 这里 |
骁龙 Linux | 3.1.3.1 | 这里 |
DSP 固件 | 3.1.3.1 | 这里 |
高通 MV | 1.0.2 | 这里 |
防止烧砖
为防止因 ADSP 固件出错而导致系统在启动时挂起,请在继续操作前进行以下更改。通过 USB 将 Snapdragon 插入电脑,然后打开 Android 调试外壳:
adb shell
请注意,骁龙 Flight 需要由外部电源供电。USB 供电是不够的。请一如既往地在接通电源前取下道具!
编辑文件 /usr/local/qr-linux/q6-admin.sh:
vim /usr/local/qr-linux/q6-admin.sh
注释掉以下几行:
# 等待 adsp.mdt 出现 #while [ ! -s /lib/firmware/adsp.mdt ]; do # sleep 0.1 #done
最后
# Don't leave until ADSP is up #while [ "`cat /sys/kernel/debug/msm_subsys/adsp`" != "2" ]; do # sleep 0.1 #done
更新 Linux 映像
更新 Snapdragon 上的 Linux 映像会删除所有内容。
获取最新 Flight_x.x_JFlash.zip
从 这里 并解压缩。在解压后的文件夹中有一个必须用于更新 Linux 映像的脚本。为 Snapdragon Flight 供电,使用微型 USB 电缆连接并运行:
sudo ./jflash.sh
更新 DSP 处理器固件
获取最新 Flight_x.x_qcom_flight_controller_hexagon_sdk_add_on.zip 从 这里 并解压缩。
在解压后的文件夹中,运行
./installfcaddon.sh adb shell sudo reboot
克隆 PX4 固件和版本
在电脑上克隆 PX4 固件 repo,并按下文所述进行构建。
如果您尚未克隆固件 repo:
cd ~ mkdir src cd src git clone [email protected]:PX4/Firmware.git
一旦进入固件的本地副本:
cd Firmware git submodule update --init --recursive export FC_ADDON=<location-of-extracted-flight-controller-addon> make clean make atlflight_eagle_default make atlflight_eagle_default upload adb push ROMFS/px4fmu_common/mixers/quad_x.main.mix /usr/share/data/adsp
安装 ROS
设置 Snapdragon Flight 连接到本地 Wi-Fi 网络,这样就能轻松地直接克隆 git 仓库。为此,请打开 adb shell 并编辑文件 /etc/wpa_supplicant/wpa_supplicant.conf
并添加本地网络设置:
adb shell vim /etc/wpa_supplicant/wpa_supplicant.conf
在这里,添加 Wi-Fi 设置:
network={ ssid="我现有的网络 ssid" psk="我现有的密码" }
最后,将系统设置为工作站模式。此外,编辑站网络接口配置文件还能防止 ssh 终端滞后:(所有操作均在 adb shell 中进行)
/usr/local/qr-linux/wificonfig.sh -s station echo 'wireless-power off' |sudo tee -a /etc/network/interfaces.d/.qca6234.cfg.station sudo reboot
现在,要安装 ROS,首先要设置本地语言、 来源列表 和密钥(在 adb 或 ssh shell)
export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 sudo locale-gen en_US.UTF-8 sudo dpkg-reconfigure locales sudo update-locale LANG=C LANGUAGE=C LC_ALL=C LC_MESSAGES=POSIX sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 sudo apt-get update sudo apt-get install ros-indigo-ros-base #(产生错误) sudo apt-get -f -o Dpkg::Options::="--force-overwrite" install
编辑您的 ~/.bashrc
以获取 ros 环境的源代码:
sudo chown -R linaro /home/linaro echo "source /opt/ros/indigo/setup.bash" >> /home/linaro/.bashrc source .bashrc
安装一些额外的软件包
在使用 ROS 之前,你需要初始化 Rosdep。Rosdep 可以让你轻松地为要编译的源代码安装系统依赖项,也是运行 ROS 中某些核心组件所必需的:
sudo rosdep init rosdep update
安装 ROS 后,OpenCL 库也会被 ROS 安装,从而导致与摄像头管道发生冲突。要解决这个问题,请执行以下操作:
sudo dpkg -r libhwloc-plugins sudo dpkg -r ocl-icd-libopencl1:armhf
现在,设置你的工作区:
source .bashrc mkdir -p /home/linaro/ros_ws/src cd ros_ws/src catkin_init_workspace cd .
在 Snapdragon 上创建交换目录
为了避免在编译 MAVROS 时内存不足,需要创建一个交换文件:
sudo fallocate -l 1G /mnt/1GB.swap sudo mkswap /mnt/1GB.swap sudo swapon /mnt/1GB.swap echo '/mnt/1GB.swap none swap sw 0 0' |sudo tee -a /etc/fstab
安装 MAVROS & MAVLink
为了运行 MAVROS 和 MAVLink,您需要安装一些 Python 工具,然后克隆代码并查看适当的提交以确保兼容性。
sudo apt-get install python-pip sudo apt-get install python-rosinstall sudo apt-get update sudo apt-get install python-rosinstall-generator sudo apt-get install python-catkin-tools rosinstall_generator --rosdistro kinetic mavlink | tee /tmp/mavros.rosinstall rosinstall_generator --rosdistro kinetic --upstream mavros | tee -a /tmp/mavros.rosinstall wstool init src wstool merge -t src /tmp/mavros.rosinstall wstool update -t src -j4 rosdep update sudo rosdep install --rosdistro indigo --from-paths src --ignore-src -y cd src/mavros git checkout 0.23.1 cd .../catkin build echo 'source /home/linaro/ros_ws/devel/setup.bash' >> /home/linaro/.bashrc source .../bashrc
柔荑花序
是必要的,因为它创建了 /home/linaro/ros_ws/devel
目录。这里将生成生成库和可执行文件。它还会生成一个新的 bash 安装脚本,其中包括使用 "ros_ws" 工作区的相应环境变量。
安装地理信息系统
MAVROS 需要在系统中安装地理信息系统。请按照以下步骤在 Snapdragon 上安装:
mkdir -p /usr/share/geographiclib /home/linaro/ros_ws/src/mavros/mavros/scripts/install_geographiclib_datasets.sh mkdir /usr/share/geographiclib/GeographicLib cd /usr/share/geographiclib mv geoids/ GeographicLib/
安装 Snap VIO
首先,下载(到电脑)1.0.2 版 骁龙机器视觉 SDK 从 这里.软件包名称为 mv<version>.deb.
将 deb 软件包推送到 Snapdragon 并安装:
adb push mv<version>.deb /home/linaro adb shell sync adb shell dpkg -i /home/linaro/mv<version>.deb mkdir /opt/qcom-licenses
机器视觉 SDK 运行需要许可证文件。从以下地址获取研发许可证文件 这里.许可证文件需要放在目标上的以下文件夹中: /opt/qcom-licenses/.
使用以下命令将许可证文件推送到目标机:
adb push snapdragon-flight-license.bin /opt/qcom-licenses/ adb shell sync
现在,我们准备克隆 snap vislam 节点:
adb shell cd ~/ros_ws/src git clone https://github.com/PX4/ros-examples catkin build