Ubuntu下PX4飞控开发环境搭建

2023-05-16

双清微电子
前言:PX4支持Pixhawk、pixracer、高通骁龙飞控板、树莓派、派诺特等硬件。PX4是构建在Nuttx实时操作系统上的。
第一步:安装Linux基础软件
第二步:下载源代码
第三步: 安装编译工具
第四步:安装python相关模块
第五步:编译Firmware
第六步:安装Qt 5.7.1(qmake)
第七步:编译qgroundcontrol
第八步:安装jmavsim仿真必需软件
第九步:SITL方式飞控仿真
第十步:HITL方式飞控仿真

声明:所有操作均在Ubuntu16.04中验证无误,硬件板子是Pixhawk v2版本。

第一步:安装Linux基础软件
权限设置: sudo usermod -a -G dialout $USER
删除管理代理:sudo apt remove modemmanager

sudo apt install vim ctags vtags -y //安装Linux下文本编译工具和源码浏览工具

使用ssh构造git远程服务器和本地电脑的通道
CTRL+ALT+T打开终端
ssh-keygen -t rsa -C “cuigaosheng@sina.com”
Enter file in which to save the key(/home/cugiaosheng/.ssh/id_rsa): 直接回车
Enter passphrase (empty for no passphrase):直接回车
Enter passphrase again:直接回车
你将会看到以 RSAA 2048 和 SHA256未成的长方形图案。
cd ~/.ssh 你将会看到 id_rsa id_rsa.pub,
将id_rsa.pub中(ssh-rsa开头)拷贝到远程服务器的Settings(右上角下拉) -> SSh keys中 (code.aliyun.com ->最左栏Profile->ssh Keys)

第二步:下载源代码
PX4代码托管地点 https://github.com/PX4/Firmware
sudo apt install git git-core -y
git clone --recursive https://github.com/mavlink/qgroundcontrol.git
git clone --recursive https://github.com/PX4/Firmware.git
下载完成后, 运行git submodule init && git submodule update确保源代码完整 。

第三步: 安装编译工具
sudo apt install cmake gcc-arm-none-eabi -y

第四步:安装python相关模块
sudo apt install python-argparse python-empy python-jinja2 build-essential genromfs -y
sudo apt install python-pip -y
pip install pyserial
(
备注:如果是python 3.5,运行命令以下
sudo apt-get install python3-pip
pip3 install pyserial

双清微电子独家赞助
第五步:编译Firmware
sudo apt install ninja-build -y(忍者可加快再次编译速度)
cd Firmware
make px4fmu-v2_default
出现下面两行说明编译成功
[100%] Generating nuttx-px4fmu-v2-default.px4
[100%] Built target build/firmware_px4fmu-v2
编译完成。
下一步我们下载编译好的固件到飞控
插入飞控usb接口,执行命令sudo make px4fmu-v2_default upload就能完成下载。有时候插上飞控却没动作,可能是权限问题,需要设置udev权限。步骤如下:
sudo gedit /etc/udev/rules.d/10-px4.rules
加入以下内容
SUBSYSTEM==“usb”, ATTRS{idVendor}“26AC”, GROUP=“users”, MODE=“0666”
SUBSYSTEM
"usb", ATTRS{idVendor}“0483”, GROUP=“users”, MODE=“0666”
SUBSYSTEM
"usb", ATTRS{idVendor}“0403”, ATTRS{idProduct}“6001”, GROUP=“users”, MODE=“0666”
保存并关闭文件,
重新启动udev,sudo restart udev
重新插拔usb线,出现下面这句,意味着下载成功。
[100%] Built target upload
另外:如果出现下面错误
Board can accept larger flash images (2M bytes) than board config (1M bytes). Please use the correct board configuration to avoid lacking critical functionality.
意思是板子的flash不够大,不能接收镜像。你的板子很有可能是mRo Pixhawk, 执行以下命令解决问题:
make clean
make px4fmu-v3_default
make px4fmu-v3_default upload
第六步:安装Qt 5.7.1(qmake)
sudo chmod a+x qt-opensource-linux-x64-5.7.1.run //添加可执行权限
./qt-opensource-linux-x64-5.7.1.run -> 下一步 ->Skip -> 下一步
请指定将在其中安装Qt5.7.1的文件夹 设为/opt/Qt5.7.1
-> 下一步 -> I have read and agree to 选中 -> 安装

完成后,在/opt/Qt5.7.1/5.7/gcc_64/bin/中可以看到qmake。
添加qmake软连接到/usr/local/bin/
sudo ln -s /opt/Qt5.7.1/5.7/gcc_64/bin/qmake /usr/local/bin/qmake
./qmake --version可以看到qmake版本号

第七步:编译qgroundcontrol
安装编译qgroundcontrol所需支持模块
sudo apt install espeak libespeak-dev libudev-dev libsdl2-dev -y
安装视频流所需支持模块
sudo apt install gstreamer1.0* libgstreamer-plugins-base1.0-dev

cd qgroundcontrol
mkdir build
cd build
qmake …/qgroundcontrol.pro

如果没有单独设置环境, 采用下面命令~/Qt5.7.1/5.7/gcc_64/bin/qmake …/qgroundcontrol.pro

make 
cd /home/cuigaosheng/src/qgroundcontrol/build/release 
运行./QGroundcontrol

第八步:安装jmavsim仿真必需软件
//sudo add-apt-repository ppa:openjdk-r/ppa (可省略)
//sudo apt-get update (可省略)
sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y

第九步:SITL软件在环仿真]方式飞控仿真
通过jmavsim软件仿真飞控代码
1.关闭qgroundcontrol,确保串口可用。
2.打开终端,cd Firmware && make posix_sitl_default jmavsim 。
3.等待jmavsim右下角出现init mavlink, 打开qgroundcontrol。

第十步:HITL[硬件在环仿真]方式飞控仿真
通过jmavsim硬件仿真飞控代码
1.关闭qgroundcontrol,确保飞控串口可用。
2.打开终端,cd Firmware/Tools ,并运行命令 ./jmavsim_run.sh -q -d /dev/ttyACM0
3.等待jmavsim右下角出现init mavlink, 打开QGroundcontrol。
双清微电子独家赞助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu下PX4飞控开发环境搭建 的相关文章

随机推荐

  • 2020电赛小记

    64 2020电赛总结 xff08 吐槽 xff09 2020电赛小记 本篇全为吐槽 xff0c 不是经验贴 坐标青岛某双非 说不上最恶心不过够恶心 20年参加电赛 xff0c 和一个大三的师哥组队 xff0c 在组期间任劳任怨 xff0c
  • 如何通过nodejs快速搭建一个服务器

    在前端开发过程中 xff0c 可能某些时候需要自己搭建一台服务器用于一些文件图片请求或者进行后端相关知识的学习 本文主要讲解如何通过nodejs进行一个基础服务器的搭建 xff0c 包括如何将文件布置的服务器 xff0c 以及基础接口的开发
  • import 一些已有的模块,会出现红色下划线

    导入tensorflow 以及使用print xff0c 都会出现红色下划线 xff0c 然而程序是没有错误的 这种情况其实可以不用管 xff0c 是可以正常运行的 xff1b 但是 xff0c 如果看着不舒服 xff0c 可以进行以下过程
  • UCOSIII(1)——SVC与PenSV实现任务切换

    本文基于STM32F407ZGT6 SVC异常 xff1a SVC 系统服务调用 xff0c 亦简称系统调用 用于产生系统函数的调用请求 SVC 异常是必须立即得到响应的应用程序执行 SVC 时都是希望所需的请求立即得到响应 在 UCOS
  • Windows编程之核心书籍推荐

    一 Windows程序设计 xff08 第5版 珍藏版 xff09 Windows程序设计 xff08 第5版 珍藏版 xff09 这是一本经典的Windows编程圣经 xff0c 曾经伴随着近50万Windows程序员步入编程殿堂 xff
  • 使用dockerfile创建镜像报错

    do 34 docker build requires exactly 1 argument See docker build help Usage docker build OPTIONS PATH URL Build an image
  • 基于MxNet实现目标检测-YoloV4【附部分源码及模型】

    文章目录 前言目标检测发展史及意义一 数据集的准备1 标注工具的安装2 数据集的准备3 标注数据4 解释xml文件的内容 二 网络结构的介绍三 代码实现0 工程目录结构如下1 导入库2 配置GPU CPU环境3 数据加载器4 模型构建5 模
  • http://www.houdeblog.com/fakeoakleys/ 45121

    Big Buddha Womens Bb Gate FlatsAmazon Price 42 Kluane SpakeThis Hub was last updated on September 4 2008Christina Aguile
  • QT QGC安装包生成问题

    最后生成安装包的时候 xff0c 提示错误 xff1a FAILURE Build failed with an exception What went wrong Execution failed for task 39 compileD
  • 位置式 PID 控制算法和增量式 PID 控制算法

    数字 PID 控制算法通常分为位置式 PID 控制算法和增量式 PID 控制算法 一 位置式 PID 算法 span class token function e span span class token punctuation span
  • GPS北斗模块串口助手输出测试

    GPS北斗模块测试 材料 北斗模块 usb转ttl 杜邦线 1 模块接线如下图所示 可用5v跟3 3v 2 usb转ttl连接电脑通电指示灯亮 3 电脑通过串口调试助手可以收到北斗模块发送的数据 还没定位信息 波特率为9600 4 接上天线
  • Jetson Nano外接

    外接显示器 HDIM接口用于显示器 xff0c 直接通过HDMI的连线器接入支持接口的显示器 也可使用DVI的转接口 xff0c 但不建议使用VGA的转接口 xff0c 这种接入方式对于转接线和显示器有很大的依赖性 外接电源可以通过Micr
  • Docker无介绍快使用,docker拉取Nginx(六)

    Docker无介绍快使用 xff0c docker拉取Nginx xff08 六 xff09 问题背景Docker无介绍快使用 xff0c 安装部署hello测试 xff08 一 xff09 Docker无介绍快使用 xff0c docke
  • 【教程向】通过windows在树莓派3B上安装Ubuntu MATE 16.04.2 (Xenial)

    本文参考了http www ituring com cn article 273613 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 6
  • Docker无介绍快使用,docker拉取rabbitmq(十三)

    Docker无介绍快使用 xff0c docker拉取rabbitmq xff08 十三 xff09 问题背景Docker无介绍快使用 xff0c 安装部署hello测试 xff08 一 xff09 Docker无介绍快使用 xff0c d
  • 【ROS2&AI】电脑摄像头、intel-D435,利用ros2发布订阅图像(Python)

    本文欲分享两个代码来实现图像的传输 xff0c 利用ros2 xff0c ROS2 xff5e 配置 xff1a Ubuntu20 04 Python ROS2 foxy opencv xff1b 电脑相机 or Intel D435相机
  • 2021年嵌入式面试题汇总(最新经典)

    写在前面 xff1a 秋招嵌入式开发方向 xff0c 经过了很多场的笔试与面试 xff0c 在准备的过程中看了非常多的资料 xff0c 现在把他们整理一下 xff0c 有的资料看过了觉得不错就保存下来了 xff0c 如果有不对的地方 xff
  • 垂直起降无人机 Gazebo + PX4 HITL simulation

    环境 xff1a ubuntu版本 xff1a 20 04 px4固件版本 xff1a stable v1 12 3 QgroundControl版本 xff1a v4 14 飞控硬件 xff1a pixhawk cuav v5 43 ga
  • PX4飞控源码L1制导律详解

    PX4飞控源码L1制导律详解 本文目的在于帮助大家看清楚L1制导律选择参考点的策略 xff0c 所以作者将与L1知道无关的代码添加删除线 所有以下划线开头的变量在PX4中都是全局变量 xff0c 在下面的函数中 xff0c 有 target
  • Ubuntu下PX4飞控开发环境搭建

    双清微电子 前言 xff1a PX4支持Pixhawk pixracer 高通骁龙飞控板 树莓派 派诺特等硬件 PX4是构建在Nuttx实时操作系统上的 第一步 xff1a 安装Linux基础软件 第二步 xff1a 下载源代码 第三步 安