PX4项目学习::(一)项目介绍::源码目录介绍

2023-05-16

代码目录:
1 boards
各种飞控硬件平台的配置文件

2 build
编译产生的目录,make之后生成的文件放置在这个目录

3 cmake
cmake编译配置目录

4 Documentation
开发者文档目录,包括代码说明等

5 launch
仿真环境用到的文件,包括ROS节点配置等

6 mavlink
通讯协议文件,定义和实现PX4与地面站之间的通讯协议。

7 msg
uORB消息定义文件,定义PX4程序之间通讯的消息格式

8 platforms
系统平台实现的文件,包括PX4采用的Nuttx操作系统的源代码。

9 ROMFS
系统启动调用的脚本,ROMFS\px4fmu_common\ini.d\rcS是启动脚本,rcS中又调用rc.sensors,rc.mc_apps等文件。
rcS:最先启动的脚本,负责挂载SD,启动uORB、配置系统参数等。
rc.sensors:启动传感器驱动。
rc.mc_apps:启动上层应用,如commander(指令处理)、att_control(姿态控制)、pos_control(位置控制)等。

10 src
源代码目录,包含驱动、测试示例、模块实现等源代码。
10.1 drivers
包含了飞控硬件系统中使用的所有驱动代码。
10.2 examples
PX4系统给的一些简单的实例,为了便于开发者做二次开发调试测试使用。如px4_simple_app,示例了如何通过uORB获取需要的数据。
10.3 lib
包含一些标准库,如矩阵运算、加密/解密、PID算法等
10.4 modules
包含所有上层应用的模块实现,PX4的上层程序都是通过模块的形式来运行(类似于ROS里面的节点),每一个模块订阅和发布uORB信息。模块包括姿态解算、姿态控制、位置控制、命令处理(commander)等。其中commander是实现整个任务模式调度的代码,包括pixhawk灯显控制、飞行模式切换、上锁解锁等。下面是其中一些module的介绍:

attitude_estimator_ekf:采用EKF算法实现的姿态估计
attitude_estimator_q: 使用mahony的互补滤波算法实现姿态解算。
mc_att_control:即multi-copter attitude control,多轴飞行器的姿态控制算法实现,主要就是姿态的内外环PID控制,外环角度控制,内环角速度控制。
mc_pos_control: multi-copter position control,多轴飞行器的位置控制算法实现,主要是位置的内外环PID控制,外环速度控制,内环加速度控制。
commander: 整个系统的任务调度,包括命令处理、事件处理、飞行模式切换等。
land_detector: 飞行过程中使用land模式降落或者落地时的落地监测部分,内部会监测Z轴速度和加速度等。
local_position_estimator: 常说的LPE算法实现位置解算。
mavlink: 和地面站通信的通信协议,结合地面站QGC源码配合修改,或者仅仅调用mavlink内部的API接口,即可通过无线信号将所需的数据显示在地面站QGC上,此方法是一种实时监测目标数据的方法。
logger: 关于log日志的读写函数。

飞控固件的生成由make来实现,如
$ make px4_fmu-v3_default #v3默认
$ make px4_sitl_default gazebo #gazebo仿真

总结
整个代码实现主要涉及的包含

  1. platforms - 系统实现,系统底层实现,如分时控制,多线程调度,消息机制等
  2. src/drivers - 驱动实现,设备驱动,如陀螺仪/加速度计、GPIO、I2C等硬件底层实现
  3. src/modules - 应用实现,控制模块、任务调度等
  4. ROMFS/px4fmu_common/ini.d/rcS - 启动脚本,里面指定了启动哪些程序、哪些模块
  5. Makefile - 系统编译生成的配置
  6. 研究整个项目的生成和运行可以了解rcS,Makefile等编译生成文件和启动脚本
  7. 了解系统底层实现可以看platforms,src/drivers等目录内容
  8. 了解飞行控制的实现和算法主要查看src/modules中的内容。

(60条消息) 五、无人机知识笔记(中级:控制原理与程序实现)_手可摘星辰不去高声语的博客-CSDN博客_无人机里的disarm 

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

PX4项目学习::(一)项目介绍::源码目录介绍 的相关文章

  • Ubuntu18.04安装PX4踩坑、报错及解决方案整理

    笔者最近需要跑无人机巡检大坝的仿真 xff0c 于是在自己的Ubuntu2018 04中开始安装PX4 xff0c 问过不少之前已经装过PX4的师兄和同学 xff0c 都曾在PX4安装过程中踩过许多坑 xff0c 耗费了不少时间 xff0c
  • PX4 GAZEBO无人机添加相机并进行图像识别

    PX4 GAZEBO无人机添加摄像头并进行图像识别 在之前完成了ROS的安装和PX4的安装 xff0c 并可以通过roslaunch启动软件仿真 接下来为无人及添加相机 xff0c 并将图像用python函数读取 xff0c 用于后续操作
  • PX4代码学习系列博客(6)——offboard模式位置控制代码分析

    分析offboard模式的代码需要用到以下几个模块 local position estimator mavlink mc pos control mc att control mixer 程序数据走向 mavlink 一般的offboar
  • PX4 Bootloader下载及编译过程中的问题解决

    买来的雷迅的板子都是Bootloader已经烧进去了 xff0c Fireware也已经刷进去了 如果是自制的板子 xff0c 上位机根本没法识别板子 xff0c 必须先烧写下载Bootloader后编译好的bin文件 这篇记一下自己下载及
  • px4源码编译指南

    px4源码编译指南 强烈推荐大家去看官网的英文文档 xff0c 国内的博客杂七杂八 xff0c 官网的中文也很久没有更新 xff0c 这几天自己踩了很多坑 xff0c 写个教程希望能帮助到大家 xff08 本文选用平台是pixhawk1 1
  • PX4源代码下载编译

    sudo git clone https github com PX4 PX4 Autopilot git recursivegit submodule update init recursivegit submodule update r
  • PX4飞控之PWM输出控制

    PX4飞控之PWM输出控制 多旋翼电调如好盈XRotor xff0c DJI通用电调等都支持PWM信号来传输控制信号 常用的400Hz电调信号对应周期2500us xff0c 一般使用高电平时间1000us 2000us为有效信号区间 xf
  • PX4模块设计之一:SITL & HITL模拟框架

    PX4模块设计之一 xff1a SITL amp HITL模拟框架 1 模拟框架1 1 SITL模拟框架1 2 HITL模拟框架 2 模拟器类型3 MAVLink API4 总结 基于PX4开源软件框架简明简介的框架设计 xff0c 逐步分
  • PX4模块设计之十三:WorkQueue设计

    PX4模块设计之十三 xff1a WorkQueue设计 1 WorkQueue启动2 WorkQueue接口2 1 基本接口2 2 辅助接口2 3 WorkQueue任务函数2 3 1 Flat Build2 3 2 Protected
  • PX4模块设计之三十四:ControlAllocator模块

    PX4模块设计之三十四 xff1a ControlAllocator模块 1 ControlAllocator模块简介2 模块入口函数2 1 主入口control allocator main2 2 自定义子命令custom command
  • 【px4】运行mavsdk中的offboard example

    运行MAVSDK中的offboard例子时无人机不执行 想控制无人机前后左右移动 xff0c 在按照官方教程实现offboard 插件的时候 发现用action插件能正常起飞和降落 但是一旦执行到offboard的插件代码的时候就会自动降落
  • px4无人机常识介绍(固件,px4等)

    专业名词解释 aircraft 任何可以飞或者可以携带物品还是搭载旅客的飞行器统称为飞机 航空器 uav 无人驾驶飞机 vehicle 飞行器 airplane plane aero plane 有机翼和一个或多个引擎的飞行器统称为飞机 D
  • pixhawk px4 commander.cpp

    对于复杂的函数 xff0c 要做的就是看函数的输入是什么 来自哪里 xff0c 经过处理后得到什么 给谁用 xff0c 这样就可以把程序逻辑理清 中间的分析就是看函数如何处理的 span class hljs keyword extern
  • PX4软件在环仿真注意点

    注 xff1a 最新内容参考PX4 user guide 点击此处 PX4下载指定版本代码和刷固件的三种方式 点击此处 PX4sitl固件编译方法 点击此处 PX4开发指南 点击此处 PX4无人机仿真 Gazebo 点击此处 px4仿真 知
  • PX4 OffBoard Control

    终于还是走上了这一步 xff0c 对飞控下手 xff0c 可以说是一张白纸了 记录一下学习的过程方便以后的查阅 目录 一 ubuntu18 04配置px4编译环境及mavros环境 二 PX4的OffBoard控制 1 搭建功能包 2 编写
  • PX4模块设计之二十七:LandDetector模块

    PX4模块设计之二十七 xff1a LandDetector模块 1 LandDetector模块简介2 模块入口函数2 1 主入口land detector main2 2 自定义子命令custom command 3 LandDetec
  • 四、无人机知识笔记(初级:基本运动原理)

    笔记来源于 沈阳无距科技 工业级无人机的中国名片 编程外星人 目录 一 多旋翼直升机 二 基本飞行姿态 三 多旋翼飞行原理 四 反扭力与偏航运动 五 螺旋桨 六 有刷电机和无刷电机 七 电调与PWM信号 八 动力电池 九 遥控器 十 机架设
  • 2020DCIC智慧海洋建设算法赛学习01-赛题北京及地理数据分析常用工具

    序 本系列的博客旨在学习2020DCIC智能算法赛 智慧海洋建设的优秀方案 对地理数据分析问题积累一些思路和经验 作为这一系列博客的开篇 这篇博客主要内容包括对赛题的解析和对项目中会用到的一些常用的地理数据分析工具的简要介绍 1 赛题背景
  • 使用jpa插入数据报错“could not execute statement; SQL [n/a];nested exception.DataException

    前言 在写开始采集接口 用swagger测试时 报了一个这样的错 使用jpa插入数据报错 could not execute statement SQL n a nested exception DataException 这个错误网上找了
  • colab 导出csv文件

    生成之后download即可 from google colab import files files download train csv

随机推荐

  • docker知识:docker 目录结构

    docker知识 xff1a docker 目录结构 var lib docker containers image overlay2 distribution imagedb content sha256 metadata sha256
  • docker知识:docker update (更新参数)

    docker知识 xff1a docker update 更新参数 docker update restart 61 always asp3000 biquge
  • docker知识:Mac下Docker直接访问宿主机

    docker知识 Mac下Docker直接访问宿主机 mac下Docker容器访问宿主机端口 mac下的docker其实是虚拟机 xff0c 所以无法直接访问宿主机 Docker for Mac v 17 12 to v 18 02 直接使
  • SSH连接问题:连不上&不能免密登录

    一 连不上 ssh username 64 ip 报错 xff1a ssh connect to host lt ip4地址 gt port 22 Connection timed out 首先排查 xff0c 排查步骤 xff1a 1 p
  • VScode: “无法打开源文件 xxxx.h”

    原因 xff1a 缺文件 报错的文件中引用的文件 xff0c 层层索引进去 xff0c 有缺的 解决办法 xff1a 更新子模块 xff1b 重新下载源代码 xff1b 找到没有的文件 xff0c 从新的源码中复制缺失的文件 xff08 比
  • git clone PX4 环境配置与问题记录

    仿真平台基础配置 yuque com 前言 使用ubuntu下载ros px4似乎是一件十分繁琐以及困难的事情 xff0c 但是本人经过了参考大量链接 xff0c 成功安装好后 xff0c 发现这件事情其实并非难事 许多安装指导链接发布于一
  • SSH工作原理&Ubuntu20.04安装并配置SSH&设置SSH免密登录

    目录 一 SSH的介绍 xff08 服务器端 xff0c 客户端 xff09 1 SSH 远程连接工具 连接原理 xff1a 2 SSH的安全机制 3 两种级别的验证方法 xff08 登录方法 xff09 二 ssh的安装与启动 1 安装
  • SSH使用问题:无法免密登录

    一 排查服务器端 1 检查authorized keys文件权限 xff0c 并设置为700 chmod 700 authorized keys 2 检查 etc ssh sshd config文件 sudo vim etc ssh ssh
  • PX4项目学习::(一)项目架构

    目录 序 xff1a 项目整体嵌入式架构 xff1a 无人机方面做嵌入式编写的飞控总结 1软件 xff1a 2硬件 xff1a 1 PX4 Pixhawk的软件体系结构 2 下图所示为PX4的算法顶层架构 左边是整个飞控系统的控制功能实现
  • PX4项目学习::(七)飞控栈:导航(Navigator和mission控制)

    25条消息 PX4飞控之导航及任务架构 Felix ZL的博客 CSDN博客
  • 微策略春招面试总结

    春季招聘时我报的研发岗 xff0c 由于我不是杭州本地人 xff0c 故首先接到的是电话面试 xff0c 电话面试大概一周左右被通知去杭州总部面试 下面主要简述一下面试的内容 第一面是技术面 xff0c 大概持续近一个小时 首先面试官会照着
  • PX4项目学习::(六)CMakeLists.txt 文件剖析

    27条消息 PX4 CMakeLists txt 文件剖析 lipi37的博客 CSDN博客 px4 cmake makefile介绍 跟我一起写Makefile 1 0 文档 seisman github io 57条消息 PX4编译文件
  • PX4项目学习::(七)飞控栈算法梳理

    无人机算法分为三种 xff0c 分别为捷联式惯性导航系统 滤波算法和估计算法 xff08 卡尔曼滤波器 xff09 飞行控制算法 xff08 PID算法 xff09 Px4控制算法综述 1commander和navigator产生期望位置
  • PX4项目学习::(七)驱动(src-->drivers)

    PX4的spi驱动 xff0c nuttx的spi硬件抽象 古月居 guyuehome com 无人机中级篇 xff1a 第四讲 xff1a 系统级驱动程序开发 知乎 zhihu com 无人机中级篇 xff1a 第五讲 xff1a 用应级
  • PX4:二次开发:流程

    1 程序编写 xff08 用模板简单实现一个程序 xff09 gt 进阶 xff1a 不同项目下的程序规范 xff1b 调用子模块的流程 2 在Nuttx系统中注册应用并编译 为了使该程序能够编译进固件 xff0c 需要在系统的cmake文
  • 原理::定位与导航::IMU和GPS融合原理(无人驾驶)

    41条消息 动手学无人驾驶 xff08 6 xff09 xff1a 基于IMU和GPS数据融合的自车定位 自动驾驶小学生的博客 CSDN博客 41条消息 重读经典 Quaternion kinematics for the error st
  • 系统使用:vmware虚拟机如何不占用c盘

    42条消息 vmware放在D盘占用C盘空间 vmware虚拟机如何不占用c盘 wendychow001的博客 CSDN博客
  • 无人机学习指南

    学什么 xff1f 理论与开发 理论 xff1a 控制栈的原理与算法 43 通信 目的 xff1a 了解无人机的本质 知识解决的是 why 如果你遇到的问题通常是 xff0c 为什么要用欧拉角 xff1f 为什么要用滤波 xff1f 那说明
  • PX4项目学习::(八)无人机仿真综述(介绍)

    xff08 一 xff09 仿真平台 xff1a 物理化仿真平台 xff1a xff08 world 43 node xff1a 使用基础模块搭建环境 xff08 world environment xff09 与plant xff09 飞
  • PX4项目学习::(一)项目介绍::源码目录介绍

    代码目录 xff1a 1 boards 各种飞控硬件平台的配置文件 2 build 编译产生的目录 xff0c make之后生成的文件放置在这个目录 3 cmake cmake编译配置目录 4 Documentation 开发者文档目录 x