匿名无人机飞控代码整理2
这次是开关状态任务Swtich_State_Task(1)
首先,仍然不知道这是啥
然后,开始看程序。。。
switchs.baro_on = 1;
命名带baro,通常是气压的意思,这里是气压开关打开?表示一个状态应该是
然后一个超大的if括号:
if(sens_hd_check.of_ok || sens_hd_check.of_df_ok)
{
of是光流、of_df可能是光流解耦合?如果两个有一个好了,那么进入if的执行程序。
if(sens_hd_check.of_ok)
{of_qua_condition = OF_QUALITY;of_alt_condition = (u16)OF_ALT;
}
else //sens_hd_check.of_df_ok
{of_qua_condition = of_rdf.quality;of_alt_condition = Laser_height_cm;
}
of_qua_condition (光流质量)和of_alt_condition(光流高度)是啥,没看懂。。。。
如果of好了,那么把这两个变量赋值,如果of没好,那肯定of_df好了,就赋其他值,没看懂。。
if(of_qua_condition>50 ){if(of_quality_delay<1000){of_quality_delay += dT_ms;}else{of_quality_ok = 1;}}else{of_quality_delay =0;of_quality_ok = 0;}
如果光流质量大于50,那么等待,1000ms后,认为可用,of_quality_ok 。否则不可用,of_quality_ok =0;
if(of_alt_condition<600){of_tof_on_tmp = 1;if(of_alt_delay<2000){of_alt_delay += dT_ms;of_alt_ok = 1;}}else{of_tof_on_tmp = 0;if(of_alt_delay>0){of_alt_delay -= dT_ms;of_alt_ok = 0;} }
如果光流高度小于600cm,认为可用,持续2000ms,具体跟上面有点不一样,不知道为啥,反正就of_alt_ok 有效就完了。。。
if(flag.flight_mode == LOC_HOLD){ if(of_alt_ok && of_quality_ok){switchs.of_flow_on = 1;}else{switchs.of_flow_on = 0;}}else{of_tof_on_tmp = 0;switchs.of_flow_on = 0;}
如果flag.flight_mode等于loc_hold,也就是位置固定,那么两个都ok,开关switchs.of_flow_on就会打开,如果有不ok的,就不打开。
如果flag.flight_mode不等于loc_hold,即此时不是定位状态,那么全0就完了。。
switchs.of_tof_on = of_tof_on_tmp;
这个of_tof_是啥模块没看懂。。再说
}
else
{switchs.of_flow_on = switchs.of_tof_on = 0;
}
接最开始的大if,如果都不ok,直接置零
if(sens_hd_check.tof_ok)
{if(0)//(Laser_height_mm<1900){switchs.tof_on = 1;}else{switchs.tof_on = 0;}
}
else
{switchs.tof_on = 0;
}
激光模块,看样子是阉割了。。。
gps也没了,开心
if(uwb_data.online && flag.flight_mode == LOC_HOLD)
{switchs.uwb_on = 1;
}
else
{switchs.uwb_on = 0;
}
uwb,查了查是定位的,估计用不上。。。
//OPMV
if(opmv.offline==0 && flag.flight_mode == LOC_HOLD)
{switchs.opmv_on = 1;
}
else
{switchs.opmv_on = 0;
}
openmv,一样,没了。。
总结一下,这段代码应该是通过检测硬件情况来设置硬件开关,如果成功检测到并符合要求,开关打开,否则断开。。。
匿名无人机飞控代码整理2相关推荐
- 匿名无人机飞控代码整理
看了半天,各部分都看得都很零散,写的也很简略,但目前为止还是无法对系统各部分做具体一点的整合,今天试试看... 1.先从主函数起,进入主轮询函数 Main_Task(); 这个主函数的调用就在一个wh ...
- 匿名无人机飞控代码整理1
工程估计要看很多遍才能顺下来,而且有的地方需要看的比较细,对于一些比较重要又比较难的部分打算写下来一点一点分析. 姿态解算部分先跳过,姑且就认为它的imu算法(长的一批)可以得到正确的姿态信息. 这次 ...
- 匿名无人机飞控代码整理3
搞了半天还没看到有用的东西,接下来开始看角速度环.电机控制.姿态角获取.角度环这部分,一起看是因为联系比较紧密. 下午看高度和位置部分.... 首先看姿态角速度环控制: Att_1level_Ctrl ...
- 2021-05-24匿名凌霄飞控代码解读Drv_AnoOf.c和LX_FC_EXT_Sensor.c
5.24:匿名凌霄飞控代码解读Drv_AnoOf.c和LX_FC_EXT_Sensor.c 注意:两部分的代码结合读,先看懂AnoOf.c然后再看对光流数据处理的文件Sensor.c 1.Drv_An ...
- 一飞智控CEO齐俊桐:一篇文章教你看透无人机飞控这十年
origin: http://www.leiphone.com/news/201702/YO2bskI7smE1U8TA.html "无人机"--又一个被国人玩坏了的单词 ▲ 科幻 ...
- 【匿名无人机】遥控器重新对码步骤
本篇只针对拓空者对码错误:红灯呼吸频闪, 已明确判断为对码错误的情况进行设置. [匿名无人机]遥控器升级中文版固件_FS-i6S 目录 1.遥控器型号 2.接收机型号 3.对码过程 4.接收机设置S ...
- 无人机飞控 ardupilot Copter-4.0.7 库简介
无人机飞控 ardupilot Copter-4.0.7 库简介 官方文档-库说明 核心库: 库名称 作用 AP_AHRS 使用 DCM 或 EKF 进行姿态估计 AP_Common 所有草图和库所需 ...
- 无人机飞控 ardupilot Copter-4.0.7 库示例
无人机飞控 ardupilot Copter-4.0.7 库示例 亲自使用库的示例是探索学习代码的第一步.遵循arduino传统,我们为大多数库提供了示例."示例"只是一个主程序, ...
- 无人机相关资料整理-备忘
近期一直在学习无人机相关基础知识以及平台搭建方面的知识,搜集了很多网站的相关信息,有一些比较有用的github.中英文资料.谈论区网址.还收藏了一些免费的课程,以及自己已购买的课程的链接.有些普及的教 ...
最新文章
- “稳定”凸包----poj1228
- CV之LabelImg:图片标注工具之LabelImg(图像标注工具)的简介、安装、使用方法详细攻略
- Google IO 谈 AI First,我们却发现了更多
- 在mac下安装matplotlib,xlrd
- [Redux/Mobx] 说说Redux的实现流程
- 《极品飞车12》官方网站公布发售日
- 推动运营商安全标准体系建设
- OpenGL基础26:Assimp库
- C# 将已有程序封装为DLL文件,供其他程序调用
- bzoj1043 下落的圆盘
- dhcp协议_什么是DHCP?总结DHCP优缺点和工作原理
- Echarts 中国地图(包括china.js文件)
- 偏最小二乘法PLS和PLS回归的介绍及其实现方法
- Java 爬取行政区划代码
- python 空间法向量可视化_三维空间中平面的法向量计算
- insgram 网页分享_instagram网页版登陆使用图文教程
- 无人驾驶-控制-自行车模型
- 利器解读:Linux 内核调测中最最让开发者头疼的 bug 有解了|龙蜥技术
- JAVA下载和安装详细过程
- 有一个强大又好看的,赛过Typora,阿里开发的语雀编辑器
热门文章
- OpenGL学习脚印: 二维纹理映射(2D textures)
- Apache ZooKeeper - ZooKeeper 集群中 Leader 与 Follower 的数据同步策略
- 爬虫神器之 PyQuery 实用教程(一)
- 在NER任务中CRF层的作用(例子)
- Java使用FreeMarker模版技术动态生成word实践
- win7 计算机右键没有属性,Win7右键点击计算机/文件没有属性选项怎么办?
- QMUI源码学习第一天
- SPFA算法求最短路
- JAVA实现数据库编程第三章_[数据库]使用Java实现数据库编程—03 第三章 高级查询(一)...
- 数据库中存储图片等文件的小探讨