PX4项目学习::(七)飞控栈:commander

        PX4的飞行控制程序通过模块来实现,与飞控相关的模块主要有commander,navigator,pos_control,att_control这几个,分别可以在src/modules目录中找到。

  1. commander - 指令/事件处理模块,主要负责对地面站、遥控器以及其它部分发布的cmd命令,处理指令、遥控器输入和各种事件,设定飞行器状态和控制模式。包括vehicle_command::VEHICLE_CMD_DO_SET_MODE、VEHICLE_CMD_DO_SET_HOME和VEHICLE_CMD_NAV_GUIDED_ENABLE、VEHICLE_CMD_NAV_TAKEOFF等命令(从名称差不多就能知道相应的命令对应的功能)。
  2. navigator - 导航模块,根据指定的任务输出导航轨迹
  3. pos_control - 位置控制,根据指定的轨迹或者位置实施位置控制,输出飞行器目标姿态
  4. att_control - 姿态控制,控制飞行器姿态,使飞行器达到预期的速度/加速度等

整体的控制框架大致如下

在这里插入图片描述

1. commander
        由commander.cpp实现,它的主要作用是对事件/消息做出响应,并根据事件/消息控制飞行器的状态和飞行模式,分析commander.cpp的源代码,它的输入输出如下图:

在这里插入图片描述

        其中椭圆形表示模块,在程序中对应具体的module实现,方形表示信息,通过orb_publish,orb_subscribe等函数发布和订阅。

        commander的主要输入包括遥控器输入(manual_control_setpoint)、飞行器命令(vehicle_command)和着陆判断(vehicle_land_detect)、电池状态(battery_status、system_power)等信息。输出主要有飞行器状态(vehicle_state)、飞行器控制模式(vehicle_control_mode)等信息。其中黄色部分为最主要输出信息。

(36条消息) PX4代码阅读笔记(三)——飞行控制框架_星光2020的博客-CSDN博客_px4代码阅读笔记

(36条消息) PX4代码阅读笔记(四)——commander详解_星光2020的博客-CSDN博客_px4 电池状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值