当前位置:网站首页>APM电机输出逻辑(Motors类详解)
APM电机输出逻辑(Motors类详解)
2022-07-29 20:37:00 【公子_羽】
一、概述
电机类是控制类与PWM输出之间的桥梁。向上屏蔽了机架类型,动力类型;向下输出了控制类输出的控制值(归一化-1~1之间的数值)。
二、类图分析
见图(1)左下角部分,AP_Motors是其他所有电机类的父类。多旋翼的话是AP_MotorsMulticopter类继承AP_Motors;变浆距类飞行器是AP_MotorsHeli继承AP_Motors。这通过编译命令控制(./waf copter 生成前一个;./waf heli生成后一个)。再后一层的子类通过地面站的参数控制,取决于所选的机架类型。
电机控制的类图
图(1)
见图(1)右上角部分,AC_AttitudeControl类包含AP_Motors电机类的引用,在被AC_AttitudeControl_Multi继承,最后包含于Copter中。因此Copter中的*attitude_control指针所指向的区域包含AP_Motors部分的代码。同时,Copter类也包含*Motors的指针。
在Copter::init_ardupilot()函数中调用allocate_motors()函数。

图(2)
如图(2)所示,在初始化的时候,根据motor_frame_class参数,实例化具体的Copter::motors指针。再将Copter::motors指针作为参数,传给attitude_control类初始化。因此attitude_control类中的motors就是Copter::motors。
三、电机输出分析
在Copter::fast_loop()函数中以400Hz频率调用motors_output().
下图是APM飞控电机输出的调用顺序图(以直升机输出为例)。向下箭头表示调用关系。

hal.rcout->push()函数输出PWM.
hal.rcout->write(uint8_t chan,uint16_t period_us):该函数将period_us脉宽的pwm写入chan通道。chan从0开始计数,0表示1通道。
边栏推荐
- QT安装、创建项目与调试,在VS中的使用:手把手教程
- Durable rules (persistent rules engine) learning notes
- MySQL - 设计游戏用户信息表
- 从实例学Kettle(一):获取股票行情数据
- About the choice of x86, x64, x86_64, ARM 64, ARM 32 when installing software
- 关于论青少年尽早学少儿编程之说
- 探索创客教育在线管理实施体系
- JSP Servlet JDBC MySQL CRUD Sample Tutorial
- SwiftUI * @State 相关问题
- LeetCode 593 有效的正方形[数学] HERODING的LeetCode之路
猜你喜欢
随机推荐
Cobaltstrike and BurpSuite desktop shortcut configuration
Panorama Tutorial丨How to shoot sunrise and sunset scenes in VR panoramic shooting?
SAG1-MIC8复合DNA基因疫苗|新型脂质-HAP-DNA复合体|实验要求
Permutations of a small feat: cantor
7 行代码搞崩溃 B 站,原因令人唏嘘!
什么是数据安全性?
Minimal jvm source code analysis
The Ministry of Human Resources and Social Security announced that "database operation administrator" has become a new occupation, and OceanBase participated in the formulation of occupational standar
Samba server configuration (when a server is required)
MySQL Data Query - Simple Query
UDP协议详解
mdnice-test
[Database] mysql date format conversion
Bug fix: Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255]
mos管闩锁效应理解学习
LeetCode 0144. 二叉树的前序遍历:二叉树必会题
:style中颜色使用函数动态获取赋值
The demand for VR live broadcast marketing is increasing, and the data module is paving the way for us
嵌入式分享合集24
如何进入董事会:给CIO的十条建议


![[ACTF2020 新生赛]Exec 1](/img/1e/a3c19d514207e6965d09c66b86e519.png)






