当前位置: 首页 > wzjs >正文

福州仓山区seo排名关键词

福州仓山区,seo排名关键词,建网站论坛,食品包装设计公司哪家好目录 1、概述(图解) 一、数据存储层(Storage) 二、外部通信层(External Connectivity) 三、核心通信枢纽(Message Bus) 四、硬件驱动层(Drivers) 五、飞…

目录

1、概述(图解)

一、数据存储层(Storage)

二、外部通信层(External Connectivity)

三、核心通信枢纽(Message Bus)

四、硬件驱动层(Drivers)

五、飞行控制核心层(Flight Control)

2、Flight Stack 飞行栈

PX4 高级飞行栈

3、中间件

4、更新速率

5、运行时环境

后台任务

6、特定操作系统信息

NuttX 操作系统

Linux/macOS 操作系统


参考:PX4用户手册

PX4 Architectural Overview | PX4 Guide (v1.15)

1、概述(图解)

如图所示,为 PX4 的各个组成部分,图的上半部分是中间件模块,下半部分则展示了飞行栈的各个组件。

上图中展示了系统各模块的功能及交互关系,具体分析如下:

一、数据存储层(Storage)

  • Database:通过 dataman 存储任务(Missions)、地理围栏(Geofence)等数据,可写入 SD 卡或内存(RAM)。
  • Parameters:借助 param 存储参数,支持 EEPROM、SD 卡、FLASH 等存储介质,实现参数的读取与写入。
  • Logging:通过 logger 将数据记录至 SD 卡,或通过 MAVLink 协议传输,用于飞行数据回溯分析。

二、外部通信层(External Connectivity)

  • MAVLink:通过 UART 或 UDP 接口,实现无人机与外部设备(如地面站)的通信,是主流的无人机通信协议。
  • FastRTPS:借助 micrortps_bridge,通过 UART 或 UDP 实现 CDR 序列化通信,适用于实时性要求高的场景。

三、核心通信枢纽(Message Bus)

  • 以 uORB 为消息总线,作为系统内部数据交互的核心通道,连接存储、外部通信、飞行控制、驱动等模块,实现数据高效传输。

四、硬件驱动层(Drivers)

  • 包含 Camera Control(相机触发控制)、GPSRC Input(支持 PPM/SBUS 等遥控输入协议)、IMU Drivers(通过 SPI、UAVCAN、I²C 接口驱动惯性测量单元)等,负责硬件设备的控制与数据采集。

五、飞行控制核心层(Flight Control)

 

  1. 状态与模式管理
    • State Machine:通过 commander 实现飞行模式切换、解锁 / 上锁(Arming)等功能。
    • Autonomous Flight:利用 navigator 处理自主飞行任务,如航点任务(Missions)、返航(RTL)等。
  2. 控制算法链
    • Position Controller:处理位置控制,输出姿态设定值,包含多旋翼(mc_pos_control)与固定翼(fw_pos_control_l1)控制逻辑。
    • Attitude & Rate Controller:负责姿态与角速度控制,输出推力和扭矩设定值,支持多旋翼、固定翼等不同机型的控制算法。
    • Control Allocation:通过 control_allocator 进行控制分配,将控制指令转换为电机和舵机的设定值。
    • Output Driver:最终通过 PWM、UART、CAN 等接口,驱动电调(ESC)和舵机,实现飞行控制。
  3. 辅助模块
    • RC Handling:处理遥控输入(rc_update),切换手动控制(manual_control)。
    • Sensors Hub:整合传感器数据,处理故障切换,为系统提供惯性测量单元(IMU)、空速等数据。
    • Position & Attitude Estimator:利用 ekf2 等算法,融合 GPS、光流、距离传感器等数据,估计无人机位置与姿态。

 

源代码被划分为独立的模块 / 程序(在图中以等宽字体显示)。通常一个构建模块恰好对应一个模块。

提示

在运行时,你可以在 shell 中使用 top 命令查看正在执行哪些模块,并且每个模块都可以通过 <模块名> start/stop 单独启动 / 停止。虽然 top 命令是 NuttX shell 特有的,但其他命令也可以在软件在环仿真(SITL)的 shell(pxh>)中使用。有关这些模块的更多信息,请参阅《模块与命令参考》。

图中的箭头表示模块之间最重要连接的信息流。实际上,连接数量比图中显示的要多得多,并且某些数据(例如参数相关数据)会被大多数模块访问。

模块之间通过名为 uORB 的发布 - 订阅消息总线进行通信。使用发布 - 订阅机制意味着:

  • 系统具有反应性 —— 它是异步的,在有新数据时会立即更新。
  • 所有操作和通信完全并行化。
  • 系统组件能够以线程安全的方式从任何地方获取数据。

信息

这种架构允许这些模块中的任何一个都能快速且轻松地被替换,甚至在运行时也可以。

2、Flight Stack 飞行栈

飞行栈是一套用于自主无人机的制导、导航和控制算法集合。它包括固定翼、多旋翼和垂直起降飞行器机体的控制器,以及姿态和位置估算器。

下图展示了飞行栈组成部分的概览。它涵盖了从传感器、遥控(RC)输入和自主飞行控制(导航器),到电机或舵机控制(执行器)的完整流程。

PX4 高级飞行栈

估算器获取一个或多个传感器输入,将其整合,并计算飞行器状态(例如,根据惯性测量单元(IMU)传感器数据计算姿态)

控制器是一种组件,它将设定值以及测量值或估算状态(过程变量)作为输入。其目标是调整过程变量的值,使其与设定值匹配。输出是为最终达到该设定值而进行的修正。例如,位置控制器将位置设定值作为输入,过程变量是当前估算的位置,输出则是使飞行器朝着期望位置移动的姿态和推力设定值。

混控器接收力指令(如 “向右转”),并将其转换为各个电机的指令,同时确保不超出某些限制。这种转换因飞行器类型而异,并且取决于多种因素,例如电机相对于重心的布置方式,或飞行器的转动惯量。
 

3、中间件

中间件主要由嵌入式传感器的设备驱动程序、与外部设备(如伴随计算机、地面控制站等)的通信模块,以及 uORB 发布 - 订阅消息总线组成。

此外,中间件还包含一个仿真层,该仿真层使得 PX4 飞行代码能够在桌面操作系统上运行,并在模拟的 “虚拟世界” 中控制一台由计算机模拟的飞行器。

4、更新速率

由于各个模块会等待消息更新,通常情况下是由驱动程序来定义模块的更新速度。

大多数惯性测量单元(IMU)驱动程序以 1 千赫兹(kHz)的频率对数据进行采样,对采样数据进行整合后,再以 250 赫兹(Hz)的频率发布数据。

系统的其他部分,比如导航器,并不需要如此高的更新速率,因此运行速度会慢很多。

可以通过在系统上运行 uorb top 命令来实时查看消息的更新速率。

5、运行时环境

PX4 可在多种提供 POSIX 应用程序编程接口(API)的操作系统上运行,比如 Linux、macOS、NuttX 或 QuRT。并且它还应该具备某种形式的实时调度功能(例如先进先出调度,FIFO)。

模块间的通信(使用 uORB)是基于共享内存实现的。整个 PX4 中间件运行在单一的地址空间中,也就是说,所有模块之间共享内存。

信息

该系统的设计理念是,只需付出最小的努力,就能够让每个模块在独立的地址空间中运行(需要修改的部分包括 uORB、参数接口、数据管理模块(dataman)和性能监测模块(perf))。

模块有两种不同的执行方式:

  1. 任务方式:模块在其自身的任务中运行,拥有自己的堆栈和进程优先级。
  2. 工作队列任务方式:模块运行在一个共享的工作队列中,与该队列上的其他模块共享相同的堆栈以及工作队列线程优先级。
  • 所有任务必须以协作的方式运行,因为它们之间不能相互中断。
  • 多个工作队列任务可以在一个队列上运行,并且可以存在多个队列。
  • 工作队列任务可以通过指定未来的一个固定时间来进行调度,也可以通过 uORB 主题更新回调来调度。

在工作队列上运行模块的优点是它使用的随机存取存储器(RAM)较少,并且有可能减少任务切换的次数。

缺点是工作队列任务不允许进入睡眠状态,或者轮询消息,也不允许进行阻塞式输入输出操作(比如从文件中读取数据)。

长时间运行的任务(进行大量计算的任务)可能也应该在单独的任务中运行,或者至少在单独的工作队列中运行。

信息

在工作队列上运行的任务不会显示在 top 命令的输出中(只能看到工作队列本身,例如显示为 wq:lp_default)。可以使用 work_queue status 命令来显示所有处于活动状态的工作队列项目。

后台任务

px4_task_spawn_cmd() 函数用于启动新的任务(在 NuttX 系统中)或线程(在支持 POSIX 标准的系统如 Linux 或 macOS 中),这些新任务或线程独立于调用它们的(父)任务运行:

以下是 C++ 代码示例:

independent_task = px4_task_spawn_cmd("commander",                    // 进程名称SCHED_DEFAULT,                  // 调度类型(循环轮转调度RR或先进先出调度FIFO)SCHED_PRIORITY_DEFAULT + 40,    // 调度优先级3600,                           // 新任务或线程的堆栈大小commander_thread_main,          // 任务(或线程)的主函数(char * const *)&argv[0]        // 传递给新任务的空指针// (此处是命令行参数)。);

6、特定操作系统信息

NuttX 操作系统

NuttX 是在飞行控制板上运行 PX4 的主要实时操作系统(RTOS)。它是开源的(遵循 BSD 许可证),具有轻量级、高效且非常稳定的特点。

模块作为任务来执行:它们拥有各自的文件描述符列表,但共享单一的地址空间。一个任务仍然可以启动一个或多个共享该文件描述符列表的线程。

每个任务 / 线程都有一个固定大小的堆栈,并且有一个周期性任务会检查所有堆栈是否剩余足够的可用空间(基于堆栈着色技术来判断)。

Linux/macOS 操作系统

在 Linux 或 macOS 系统上,PX4 在单个进程中运行,并且模块在各自的线程中运行(不像在 NuttX 系统中那样对任务和线程进行区分)。

http://www.dtcms.com/wzjs/248464.html

相关文章:

  • 金华东阳网站建设百度浏览器打开
  • 做的比较好的购物网站关键词歌词打印
  • 网站建设网上商城优化网站的方法
  • 多少企业需要网站建设seo关键词优化软件官网
  • 网站推广营销怎么做seo优化关键词排名
  • 南昌市房产网哈尔滨关键词优化方式
  • 商丘市做1企业网站的公司热搜词排行榜关键词
  • 想调用等三方网站数据该怎么做如何点击优化神马关键词排名
  • 全国大型免费网站建设天津百度优化
  • 深圳商业网站建设哪家好网络新闻发布平台发稿
  • 婚纱摄影网站设计毕业论文网络推广员的工作内容和步骤
  • 沧州网站建设的集成商全国广告投放平台
  • dw做网站的流程百度极速版推广员怎么申请
  • 手机在线做ppt的网站seo排名点击首页
  • 织梦网站打开速度慢人工智能培训心得体会
  • 怎么用vs2010做网站seo最强
  • 扬州做企业网站哪家公司好成人职业技能培训有哪些项目
  • 做平面设计的网站新手seo入门教程
  • 台州自助建站系统免费行情网站的推荐理由
  • 韩国优秀网站培训体系
  • 我做网站编辑写文章很慢怎么办全网营销推广靠谱吗
  • 百度搜索不到任何网站电子商务网站建设与管理
  • 网站建设公众号小程序推广开发口碑营销的名词解释
  • 做php网站教程视频搜索引擎关键词优化
  • 中文wordpress主题苏州seo关键词排名
  • 合肥建设企业网站免费做网站
  • 网站收录怎么设置百度网盘下载速度慢破解方法
  • 网站开发实战课程新闻稿撰写
  • 自己做优惠劵网站赚钱吗临沂做网站推广的公司
  • 众筹网站怎么做推广站长工具seo综合查询可以访问