nuttx飞控操作系统

NuttX飞控系统

程序设计思路,首先我们不管里面操作系统是怎么样实现。在这个系统中我们学会用API就行了。

主处理器运行NuttX实时操作系统,所有功能都通过任务进程实现[4]。主要的进程有传感器数据采集、姿态估算、姿态控制、飞行器状态识别与切换、协处理器控制、日志记录。进程间进行通信是程序结构的重要部分。  也就是说在飞机中就有几个主要进程控制飞机。每个进程负责些什么呢。

如图3所示,

传感器数据采集进程: 采集的所有传感器数据。

姿态估计进程: 利用传感器数据估算出飞行器当前姿态。

协处理器通信进程: 获取遥控数据。

状态识别进程: 结合传感器数据、飞行器姿态和遥控数据识别出飞行器当前模式。

姿态控制进程: 通过飞行器姿态、遥控数据、飞行器模式计算出当前所需的PID控制量并推送至uORB。

协处理器通信进程 :再将订阅的PID控制量通过高速串口发送至协处理器。

多个进程进行通信: uORB 订阅主题 ,发布主题。

协处理器和主处理器的关系:

主处理器通信部分采用DMA方式直接填充至PWM匹配输出寄存器,最大程度地减小CPU的干预。失联识别在定时器20 ms中断中实现,每次进中断会读取DMA传输计数器的值并记录,再与上次的记录值进行比较,如果两个值不相等,则说明数据连接正常;相反,如果连接断开,两个值将会相等,据此实时地判断出连接的通断状态。主循环中只需要判断通断标志位,如果检测到连接断开,协处理器则会启用失效保护功能:通过SPI总线读取MPU6000芯片的加速度和角速度数据,利用四元数姿态融合算法[8]得到姿态信息,转换成欧拉角之后,再用PID控制器保持飞行器的水平姿态,直到与主处理器的连接恢复正常,再将电机控制权交还给主处理器。用欧拉角表示刚体姿态方便几何推导,但是存在万向节死锁,即当刚体的3个万向节中两个的轴发生重合时,会出现失去一个自由度的情况。四元数法则不存在这个问题,并且运算步骤也相对简单,适合在本文控制系统的协处理器中运用

时间: 2024-09-30 18:32:53

nuttx飞控操作系统的相关文章

Nuttx操作系统

前几天答辩的时候看到有同学在用,回来后查了点资料. 来源:天又亮了 1  NuttX 实时操作系统 NuttX 是一个实时操作系统(RTOS),强调标准兼容和小型封装,具有从8位到32位微控制器环境的高度可扩展性.NuttX 主要遵循  Posix 和 ANSI 标准,对于在这些标准下不支持的功能,或者不适用于深度嵌入环境的功能(如 fork()),采用来自 Unix 和常见 RTOS (如 VxWorks)的额外的标准 API.NuttX 的第一个版本由 Gregory Nutt 于 2007

无人机--飞控科普

无人机是无人驾驶飞机的简称(Unmanned Aerial Vehicle,UAV),是利用无线电遥控设备和自备的程序控制装置的不载人飞机,包括无人直升机.固定翼机.多旋翼飞行器.无人飞艇.无人伞翼机.广义地看也包括临近空间飞行器(20-100 公里空域),如平流层飞艇.高空气球.太阳能无人机等.从某种角度来看,无人机可以在无人驾驶的条件下完成复杂空中飞行任务和各种负载任务,可以被看做是“空中机器人”. 飞控系统是无人机完成起飞.空中飞行.执行任务和返场回收等整个飞行过程的核心系统,飞控对于无人

NuttX 介绍

(嵌入式 实时操作系统 rtos nuttx 7.1) NuttX 介绍 转载请注明出处:http://blog.csdn.net/zhumaill/article/details/24197637 1  NuttX 实时操作系统 NuttX 是一个实时操作系统(RTOS).强调标准兼容和小型封装,具有从8位到32位微控制器环境的高度可扩展性.NuttX 主要遵循  Posix 和 ANSI 标准,对于在这些标准下不支持的功能,或者不适用于深度嵌入环境的功能(如 fork()),採用来自 Uni

pixhawk入门知识

Pixhawk是一种先进的自动驾驶仪,由PX4开放硬件项目设计和3D机器人制造.它具有来自ST公司先进的处理器和传感器技术,以及NuttX实时操作系统,能够实现惊人的性能,灵活性和可靠性控制任何自主飞行器.Pixhawk旗舰版模块将伴随着新的外设选项,包括数字空速传感器,外部多色LED指示灯支持和外部磁强计.所有的外围设备自动检测和配置. 该Pixhawk系统的优点包括:集成多线程,类似Unix / Linux类的编程环境:全新的自动驾驶功能,如任务和飞行行为的Lua脚本:一个自定义PX4驱动层

pixhawk 整体架构的认识

此篇blog的目的是对px4工程有一个整体认识,对各个信号的流向有个了解,以及控制算法采用的控制框架. PX4自动驾驶仪软件可分为三大部分:实时操作系统.中间件和飞行控制栈. 1.NuttX实时操作系统 提供POSIX-style的用户操作环境(如printf(), pthreads,/dev/ttyS1,open(),write(),poll(),ioctl()),进行底层的任务调度. 2.PX4中间件 PX4中间件运行于操作系统之上,提供设备驱动和一个微对象请求代理(micro object

PX4/Pixhawk---高速成为开发人员(Windows)

1 高速成为开发人员新手教程(翻译)---官方 1.1 编译环境之版本号控制系统 (1)安装MSysGIT 安装完毕后,配置GIT. 安装注意 安装过程中除了以下一步外,其它的步骤都採用默认安装. GIT中文乱码 D:\Program Files (x86)\Git\etc中的git-completion.bash文件最后一行加上: alias ls='ls --show-control-chars --color=auto' 在GIT终端输入以下的命令能够提高GIT的输出格式 git conf

PX4/Pixhawk---快速成为开发者(Windows)

1 快速成为开发者入门教程(翻译)---官方 1.1 编译环境 (1)安装MSysGIT 安装完成后,配置GIT. 安装注意 安装过程中除了下面一步外,其他的步骤都采用默认安装. GIT中文乱码 D:\Program Files (x86)\Git\etc中的git-completion.bash文件最后一行加上: alias ls='ls --show-control-chars --color=auto' 在GIT终端输入下面的命令可以提高GIT的输出格式 git config --glob

面向物联网的几大开源操作系统

在过去的十年间,大多数新型开源操作系统已从移动市场转向物联网市场.本文介绍了面向物联网的许多新型开源操作系统.我们之前的文章介绍了开源物联网框架,以及面向物联网和消费者智能家居设备的Linux和开源开发硬件. 除了介绍面向物联网的新型嵌入式Linux发行版外,我还介绍了OpenWrt等几款比较老的轻量级发行版,它们在这个领域迎来了新生.虽然Linux发行版主要针对网关和集线器,但是面向物联网的非Linux开源操作系统取得了同样迅猛的发展,它们可以在微控制器单元(MCU)上运行,通常面向物联网边缘

“全员编程,广泛嵌入”(九)—— 现代嵌入式操作系统模型

前面10来篇文章,啰嗦了一大通后,"全员编程,广泛嵌入"时代的操作系统模型,也逐步清晰,呼之欲出了.本质上来说,无论什么时代的操作系统,都有其基本内涵和外延构成.内涵就是由内核构成,是一个基本稳定的选择题,例如是否支持mmu,是否支持多进程等.对于需求的变化和发展,则通过外延的变化来适应.其内涵和外延,共同组成了现代操作系统. 我们需要开发新操作系统么?答案是肯定的,没有听说过有了格力空调,美的空调就不需要了. 我们需要从新开发操作系统内核么?不一定! 对于操作系统来说,有一个好内核永