写在前面

虽然有很多关于px4博客,但还是想自己亲手写,一来记录自己的学习过程,以备将来复习,二来方便后来者参考学习,好多西当然要大家分享。

关于px4飞控程序的博客,我打算写成一个系列,目前计划包括的内容有:
1.win10操作系统和Ubuntu操作系统开发px4程序需要安装的软件及怎么安装。
2.nuttx操作系统介绍。
3.px4代码结构。
4.uORB介绍。
5.关键模块代码分析,可能分多篇进行。
6.添加自己的模块。
7.与ROS通信。
8.在模拟器中测试所写代码。

win10操作系统开发px4程序需要安装的软件及怎么安装

需要安装的软件:

a.px4_toolchain_installer_v14_win.exe(开发工具链)。
b.px4driver.msi(px4usb驱动)。
a和b的下载地址:https://dev.px4.io/zh/setup/dev_env_windows.html
虽然它官方的Guide要求下载QT Creator IDE,但是它在后面也说了

所以不推荐用qt来开发(我曾经尝试安装过,编译过程遇到很多麻烦,问题一个接一个,最后只能作罢)。

c.cmake-3.3.2-win32-x86.exe。一定要用32位的cmake,不管你的电脑是32位还是64位。版本的话,我用的3.3.2是没有问题的,现在最高到3.9.1,没有试过,各位有用这一方法的如果用过更高版本的,可在评论区留言。
c的下载地址:https://cmake.org/download/

d.jdk-8u131-windows-i586.exe(Java SDK)。也是一定要用32位的,不管你的电脑是32位还是64位。这个版本应该没有限制,直接下载最新版即可。
d的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

e.python-2.7.13.msi,版本的话,2.7.3到2.7.13都可以。我下载的是2.7.13。
e的下载地址:https://www.python.org/downloads/

f.gcc-arm-none-eabi-5_4-2016q2-20160622-win32.zip,或者gcc-arm-none-eabi-5_4-2016q3-20160926-win32.zip。
f的下载地址:https://launchpad.net/gcc-arm-embedded/+download

安装顺序:

1.安装px4_toolchain_installer_v14_win,安装在c盘或者d盘的根目录,我是安装在d盘根目录,安装完成后d盘根目录下会出现一个叫“px4”的目录。
px4工具链安装完成目录

在开始菜单出现PX4Console、PX4Ecplise等工具。

2.安装cmake-3.3.2-win32-x86.exe,安装的时候一定要把CMake加入到系统路径中。

3.安装jdk-8u131-windows-i586.exe,安装完成后在在命令行输入 java -version来查看Java是否配置成功。

4.安装python-2.7.13.msi,安装在c盘或者d盘的根目录,我是安装在d盘根目录,安装完成后d盘根目录下会出现一个叫“Python27”的目录。

python27安装完成

5.然后把目录D:\Python27\Scripts加入环境变量Path下。因为该目录下有pip.exe和easy_install.exe两个可执行文件,一会要用到。打开命令行,切换的目录D:\Python27\Scripts,执行如下两条命令(必须):
pip install jinja2
easy_install empy catkin_pkg
安装这两个模块。

6.把D:\px4目录下的Python27删除,如果不放心可以减切到别处。把D:\Python27整个文件夹复制的D:\px4下。注意一定要先删除在复制过来。

7.解压gcc-arm-none-eabi-5_4-2016q2-20160622-win32.zip,把解压缩后的4个文件夹替换到目录D:\px4\toolchain。

测试安装是否成功:

打开PX4console,切换到目录D:\px4\workspace下,执行:

git clone https://github.com/PX4/Firmware.git

下载完毕后,切换到Firmware文件夹,执行:

cd Firmware

然后更新固件子模块,执行:

git submodule update --init --recursive

下载完毕后可以进行编译,执行:

make px4fmu-v2_default

如果成功,说明环境配置没有问题,可以在图形界面Eclipse下进行开发。

配置Eclipse:

1.打开PX4Eclipse。选择workspace,即下载的固件的位置,我是在上一步中把固件下载到D:\px4\workspace中。

2.建立工程。File -> New -> Makefile Project with Existing Code,
填写工程名,选择下载的固件的路径,我是D:\px4\workspace\Firmware

因为我已经建立了叫Firmware的工程,所以这里的Finish按钮是灰色的,正常情况点击“Finish”按钮建立工程。

3.界面布局调整。Window -> Reset Perspective…。

eclipse界面

4.创建编译目标px4fmu-v2_default 。在下图红框点击,(这个框在右上角)

然后出现:

同理创建其它的:px4fmu-v2_default upload,px4fmu-v2_lpe等等。

5.双击刚才创建的px4fmu-v2_default,即可进行编译。或者双击px4fmu-v2_default upload,在编译完成后可进行下载。

Ubuntu16.04开发px4程序环境配置

Ubuntu上的配置没什么可以说的,官方的帮助文档很详细,我当初根据官方文档一步一步来,最终成功编译PX4固件,没有遇到什么问题。具体参考:https://dev.px4.io/zh/setup/dev_env_linux.html和
https://dev.px4.io/zh/setup/building_px4.html。

PX4代码学习系列博客(1)——开发环境配置相关推荐

  1. PX4代码学习系列博客(6)——offboard模式位置控制代码分析(之前转载过,这是第二次转载了)

    我刚刚发现这篇文章去年八月份的时候转载过一次了 https://blog.csdn.net/sinat_16643223/article/details/107874349 转载自:https://b ...

  2. PX4代码学习系列博客(5)——在px4中添加自己的模块

    怎么在px4中添加自己的模块 在"px4固件目录结构和代码风格"这一节,曾经说过NuttX是一个实时的嵌入式系统,上面可以像windows那样运行程序.那既然是应用程序,那我们应该 ...

  3. 点云深度学习系列博客(二): 点云配准网络PCRNet

    目录 一. 简介 二. 基础结构 三. 项目代码 四. 实验结果 总结 Reference 今天的点云深度学习系列博客为大家介绍一个用于点云配准的深度网络:PCRNet [1].凡是对点云相关应用有些 ...

  4. android中页面自动跳转,【学习笔记-安卓开发】8. Android Studio如何实现页面自动跳转(安卓学习系列博客)...

    先将上上一篇博客中写在页面里的button以及相关代码删除 8.如何让页面自动跳转 在安卓开发中有一个非常重要的Handler 当我们输入Handler会出现两个提示,一个是os中的,一个是loggi ...

  5. 点云深度学习系列博客(四): PointNet代码精讲

    目录 1. 代码解析 1.1 初始化 1.2 数据载入 1.3 模型载入 1.4 训练代码 2. 实验结果 Reference 最近开始上手点云深度学习项目,相比之前纸上谈兵的阶段,此时我将把更多的精 ...

  6. 【技术博客】2020.04.28-简单塔防游戏和棋牌游戏构架学习 ——学习系列博客(一)构架初探

    序言,保卫萝卜项目作为自己学习整体游戏项目的开始,还是很有收获的. 项目初步实现了分管关卡地图编辑.场景结构.关卡选择.游戏地图等主要功能,同时内部构架采用了MVC加单例的构架,对我这种初学者还是很有 ...

  7. 点云深度学习系列博客(一): 点云特征学习网络PCPNet

    目录 一. 简介 二. 基础结构 三. 项目代码 四. 实验结果 总结 Reference 最近开始研究点云分析的相关项目,经过文献调研我发现,近几年比较热的方法,基本都是基于深度学习框架设计的.正好 ...

  8. 从零搭建个人博客(1)-webpack环境配置

    本文作为搭建个人博客的开端,将会配置环境,以后做别的project也可以以此开始.代码托管在github. code: https://github.com/MSChuan/Blog-UI, demo ...

  9. 深度强化学习系列: 多巴胺(Dopamine)环境配置和实例分析

    Paper: Dopamine–a research framework for deep reinforcement Learning Github: https://github.com/goog ...

  10. 需要跟前辈学习的博客

    个人学习的博客 java开发 http://www.blogjava.net/amigoxie/archive/2007/09/26/148207.html

最新文章

  1. 表的插入、更新、删除、合并操作_15_ 按照默认值更新表
  2. SAP Fiori Elements 公开课第一单元概要介绍
  3. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 2
  4. Java实现Oracle数据库备份
  5. nginx基于端口的虚拟主机配置实战
  6. 攻防世界 crypto Railfence
  7. Creative Cloud Cleaner Tool mac卸载adobe系列软件详细教程
  8. 【夜读】自我提升的8个好习惯,迷茫时看一看
  9. 华为云SSL证书申请流程
  10. eclipse常用快捷方式
  11. 共享软件作者怎样才能月入万元(一)
  12. 用QT做串口通讯,读取身份证信息
  13. 今天,发鸡腿了!!!
  14. Turtlebot3 buger在仿真环境下建图导航
  15. 如何识别手写文字python_如何快速使用Python神经网络识别手写字符?(文末福利)...
  16. 59.java编程思想——创建窗口和程序片 Swing
  17. win10专业版没有触摸板选项_win10移动鼠标或触控板都没有任何反应如何解决
  18. 剖析Oculus Rift的Room Scale功能设计
  19. 微型计算机定义,微处理器、微型计算机与微型计算机系统的定义
  20. 以太坊智能合约ganache+truffle集成开发实验

热门文章

  1. 学习笔记(1):Linux操作系统入门培训_Linux/Unix基础培训教程视频课程-01.Linux入门培训之_软硬件平台介绍...
  2. 简单工厂模式-实现简易计算器
  3. 《初等数论》:整除性概念及其性质、质数与合数
  4. ut红种状态解决办法汇总
  5. PMP工具与技术总结
  6. html实现个人空间主页(附源码)
  7. 淘宝 卖家信用等级的图示
  8. 软件系统演示脚本实践(草稿)
  9. apk改之理 java源码_ApkIDE改之理最新版+环境包下载
  10. FlashFXP绿色版下载与怎么用