- Debugging/Logging - 飞行日志分析
- Debugging/Logging - ULog文件格式
- 教程
- 教程 - 地面站
- 教程 - 编写应用程序
- 教程 - QGC的视频流
- 教程 - 远距离视频流
- 教程 - u-blox M8P RTK
- 新手上路
- 新手上路 - 初始设置
- 新手上路 - 安装工具链
- 安装工具链 - Mac OS
- 安装工具链 - Linux
- Linux - Advanced Linux
- 安装工具链 - Windows
- 新手上路 - Fast RTPS installation
- 新手上路 - 代码编译
- 新手上路 - 高级配置
- 新手上路 - 贡献& 开发者电话会议
- 贡献& 开发者电话会议 - GIT例程
- 贡献& 开发者电话会议 - Documentation
- 新手上路 - Licenses
- 概念解读
- 概念解读 - 飞行模式
- 概念解读 - 结构概述
- 概念解读 - 飞行控制栈
- 概念解读 - 中间件
- 概念解读 - 混控和执行器
- 概念解读 - PWM限制状态机
- Hardware
- Hardware - 自驾仪硬件
- 机型 - 统一的基础代码
- 机型 - 参考机型
- 机型 - 添加一个新的机型
- Data Links - SiK Radio
- Data Links - Wifi数传
- Data Links - 数传
- I2C总线 - SF1XX lidar
- 传感器和执行机构总线 - UAVCAN总线
- UAVCAN总线 - UAVCAN Bootloader
- UAVCAN总线 - UAVCAN固件升级
- UAVCAN总线 - UAVCAN配置
- UAVCAN总线 - UAVCAN 的各种笔记
- 传感器和执行机构总线 - UART
- UART - uLanding Radar
- 传感器和执行机构总线 - 设置云台控制
- 传感器和执行机构总线 - 相机触发器
- Hardware - 协同电脑
- 仿真
- 仿真 - 基本仿真
- 仿真 - Gazebo仿真
- 仿真 - HITL仿真
- 仿真 - 连接到ROS
- 仿真 - AirSim仿真
- 仿真 - 多机仿真
- 中间件及架构
- 中间件及架构 - uORB消息机制
- 中间件及架构 - MAVLink消息机制
- 中间件及架构 - 守护程序
- 中间件及架构 - 驱动框架
- 模块 & 命令
- 模块 & 命令 - 命令
- 模块 & 命令 - 通信
- 模块 & 命令 - 驱动
- 模块 & 命令 - 系统
- Robotics
- Robotics - 用Linux进行外部控制
- Robotics - ROS
- ROS - 在RPi上安装ROS
- ROS - MAVROS (ROS上的MAVLink)
- ROS - MAVROS外部控制例程
- ROS - 外部位置估计
- ROS - Gazebo Octomap
- Robotics - DroneKit
- Debugging/Logging
- Debugging/Logging - FAQ
- Debugging/Logging - 系统控制台
- Debugging/Logging - 自驾仪调试
- Debugging/Logging - Sensor/Topic Debugging
- Debugging/Logging - 仿真调试
- Debugging/Logging - System-wide Replay
- Debugging/Logging - 发送调试的值
- Debugging/Logging - Profiling
- Debugging/Logging - 日志记录
- 教程 - 光流
- 教程 - ecl EKF
- 教程 - 飞行前检查
- 教程 - 着陆检测
- 教程 - Linux系统下使用S.Bus驱动
- Advanced Topics
- Advanced Topics - 系统启动
- Advanced Topics - 参数&配置
- Advanced Topics - 参考参数
- Advanced Topics - 安装Intel RealSense R200的驱动
- Advanced Topics - 切换状态估计器
- Advanced Topics - 外部模块
- Advanced Topics - STM32 Bootloader
- 测试和持续集成
- 测试和持续集成 - 持续集成
- 测试和持续集成 - Jenkins持续集成环境
- 测试和持续集成 - 综合测试
- 测试和持续集成 - Docker容器
- 测试和持续集成 - 维护
安装工具链 - Linux
我们使用Debian / Ubuntu LTS 作为Linux的标准支持版本,但是也支持Cent OS 和 Arch Linux的发行版本。
权限设置
警告:永远不要使用
sudo
来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决。
把用户添加到用户组 “dialout”:
sudo usermod -a -G dialout $USER
然后注销后,重新登录,因为重新登录后所做的改变才会有效。
安装
更新包列表,安装下面编译PX4的依赖包。PX4主要支持的系列:
- NuttX based hardware: Pixhawk series, Crazyflie,
Intel® Aero Ready to Fly Drone - Qualcomm Snapdragon Flight hardware
- Linux-based hardware: Raspberry Pi 2/3, Parrot Bebop
- Host simulation: jMAVSim SITL and Gazebo SITL
提示:安装Ninja Build System可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。
sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
sudo apt-get update
# 必备软件
sudo apt-get install python-argparse git-core wget zip
python-empy qtcreator cmake build-essential genromfs -y
# 仿真工具
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jre
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y
基于NuttX的硬件
Ubuntu配备了一系列代理管理,这会严重干扰任何机器人相关的串口(或usb串口),卸载掉它也不会有什么影响:
sudo apt-get remove modemmanager
更新包列表和安装下面的依赖包。务必安装指定的版本的包
sudo apt-get install python-serial openocd
flex bison libncurses5-dev autoconf texinfo build-essential
libftdi-dev libtool zlib1g-dev
python-empy -y
在添加arm-none-eabi工具链之前,请确保删除残余。
sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi gcc-arm-embedded
sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa
如果gcc-arm-none-eabi
版本导致PX4/Firmware编译错误,请参考the bare metal installation instructions手动安装4.9或者5.4版本的arm-none-eabi工具链。
骁龙
工具链安装
sudo apt-get install android-tools-adb android-tools-fastboot
fakechroot fakeroot unzip xz-utils wget python python-empy -y
Please follow the instructions on https://github.com/ATLFlight/cross_toolchain for the toolchain installation.
Load the new configuration:
source ~/.bashrc
需要登录到QDN。如果你还没有帐户,必须先注册一个。
将以下文件移动到交叉工具链的下载文件夹中:
mv ~/Downloads/hexagon-sdk-v3-linux.bin cross_toolchain/downloads
安装工具链和SDK,如下所示:
cd cross_toolchain
./installv3.sh
cd ..
按照说明配置开发环境。如果你接受默认安装选项,则可以在之后随时重新运行下面的命令来配置开发环境。它只会安装缺少的组件。
执行后工具和SDK将被安装到$HOME/Qualcomm/...
。 将以下内容添加到~/.bashrc
:
export HEXAGON_SDK_ROOT="${HOME}/Qualcomm/Hexagon_SDK/3.0"
export HEXAGON_TOOLS_ROOT="${HOME}/Qualcomm/HEXAGON_Tools/7.2.12/Tools"
export PATH="${HEXAGON_SDK_ROOT}/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf_linux/bin:$PATH"
加载新的配置:
source ~/.bashrc
Sysroot安装
需要一个sysroot来提供交叉编译骁龙飞控应用处理器应用程序所需的库和头文件。
qrlSDK sysroot提供了摄像头、GPU等需要的头文件和链接库。
下载 Flight_3.1.3_qrlSDK.tgz 并保存到cross_toolchain/download/
。
cd cross_toolchain
unset HEXAGON_ARM_SYSROOT
./qrlinux_sysroot.sh
将以下内容添加到~/.bashrc
:
export HEXAGON_ARM_SYSROOT=${HOME}/Qualcomm/qrlinux_v3.1.1_sysroot
加载新的配置:
source ~/.bashrc
有关sysroot的更多选项,请参见Sysroot安装。
升级ADSP固件
在构建,烧写以及运行代码之前,还需要升级ADSP固件。
参考
GettingStarted是另外一个工具链安装向导。HelloWorld和DSPAL tests可以用来验证工具链安装和DSP镜像。
DSP的信息可以通过mini-dm查看。
$HOME/Qualcomm/Hexagon_SDK/2.0/tools/mini-dm/Linux_Debug/mini-dm
提示: 在MAC上也可以使用nano-dm。
树莓派
树莓派开发者应该从下面地址下载树莓派Linux工具链。安装脚本会自动安装交叉编译工具链。如果想要用原生树莓派工具链在树莓派上直接编译,参见这里。
git clone https://github.com/pixhawk/rpi_toolchain.git
cd rpi_toolchain
./install_cross.sh
在工具链安装过程中需要输入密码。
如果不想把工具链安装在默认位置/opt/rpi_toolchain
,可以执行./install_cross.sh <PATH>
向安装脚本传入其它地址。安装脚本会自动配置需要的环境变量。
最后,运行以下命令更新环境变量:
source ~/.profile
Parrot Bebop
Parrot Bebop的开发者应该安装树莓派的Linux工具链。请跟随(这里)的介绍进行安装。
接下来安装ADB。
sh sudo apt-get install android-tools-adb -y`
完成
继续,进行第一次代码编译!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论