登录
加入联盟
找回密码
航空人生
新一代连飞客户端下载
空管人生
中国航空运动协会推荐
WEFLY
模拟飞行玩家聊天工具
门户
文章
商城
二手市场
外包服务
模飞软件
硬件设备
飞行体验
学院
云课堂
问答
资料下载
论坛
模拟飞行
低空飞行
太空探索
航圈
资源
素材
下载
企业
无人机论坛
»
论坛
›
无人机DIY专区
›
飞控开发区
›
Pixhawk飞控
›
最近想要好好学一下px4开源飞控代码,应该怎么入手,从 ...
返回列表
发新帖
查看:
801
|
回复:
1
最近想要好好学一下px4开源飞控代码,应该怎么入手,从哪里 ...
[复制链接]
瞬云无人机
瞬云无人机
当前离线
积分
1524
窥视卡
雷达卡
43
主题
756
帖子
1524
积分
金牌飞友
金牌飞友, 积分 1524, 距离下一级还需 1476 积分
金牌飞友, 积分 1524, 距离下一级还需 1476 积分
积分
1524
飞币
754
注册时间
2017-8-18
发消息
发表于 2022-10-25 22:03:30
|
显示全部楼层
|
阅读模式
px4开源飞控代码学习
应该
,
代码
,
怎么
,
入手
,
哪里
相关帖子
•
“空中的士”创造万亿新风口!低空经济进入发展快车道,你怎么看?
•
(4)俄乌危机中消费级航拍机是怎么丢炸弹的?
•
汽车真的能上天吗?小鹏:怎么不能啊!
•
无人机拍摄图片视频怎么同步传送到手机上?
•
熊猫有些变态!无人机也挂超高音速导弹量身定做!这让老美还怎么活呀!
•
带屏控fcc无人机怎么开
•
哪里有低空、哪里就有我!带兄弟们打卡第七届上海进博会,四家参展eVTOL主机厂,分别是:时的科技、沃兰特航空、御风未来、览翼航空!一直为低空发声的路上!
•
2024年双11大疆无人机推荐!入门、进阶、高端无人机大选购!1000-10000元价位覆盖!高性价比!无人机怎么选?
•
低空飞行哪里能飞,怎么飞……无锡正式发布低空空域图和航线图
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
halalahaa11111
halalahaa11111
当前离线
积分
1627
窥视卡
雷达卡
37
主题
820
帖子
1627
积分
金牌飞友
金牌飞友, 积分 1627, 距离下一级还需 1373 积分
金牌飞友, 积分 1627, 距离下一级还需 1373 积分
积分
1627
飞币
806
注册时间
2017-8-30
发消息
发表于 2022-10-25 22:15:05
|
显示全部楼层
无人机开发调试,飞控日志是非常关键的部分。
有一个笑话,说没有什么问题是一个日志不能解决的,如果有,那就再来一个。
虽然是笑话,不过确是反映了飞控日志的重要性,那么这一篇我们来聊一下PX4的日志库。
我们分两部分来讲
PX4日志库的实现原理
PX4常用的日志消息
实现原理
PX4的日志库实现做得非常好,用户可以仅增加一行代码即可将自己需要的数据增加到日志中。
因而这一部分对于大部分同学的作用不大,毕竟大多数开发者都是基于PX4的框架开发应用层或者算法层,底层大多情况不需要过于关心。
PX4的日志库是基于uORB消息机制实现的,简单而言就是监听需要记录日志的消息,有数据更新则copy写入SD卡中,原理非常简单。
这样的设计的好处是用户使用非常简单,仅需要将需要记录的消息添加到日志监听列表中 add_topic()。
如果同学使用APM开源飞控,添加飞控日志,会发现比PX4要复杂一些,需要手动修改不少地方,如果多人同时修改日志容易引起冲突,比如日志id的定义冲突。
下图简要梳理一下日志系统工作的原理
由图可以知道,日志的记录主要由:
初始化添加需要记录的日志列表
日志监听线程 Logger::run()
日志写入线程 LogWriterFile::run()
日志监听和日志写入为什么分为两个线程,感兴趣的同学可以研究一下,这里就不深入讨论了。
PX4常用的日志消息
我们在飞控开发和使用中主要需要关注哪些数据呢。我们可以将日志数据大致分为一下几类:
传感器数据:陀螺仪、加速度计、罗盘、gps等等
控制指令:遥控器输入、地面站指令、航点任务指令
输出指令:控制信号的输出
飞行状态信息:飞行姿态、飞行模式、解锁状态等
控制状态信息:位置、速度、姿态、角速度等控制指令
ekf信息:传感器融合状态
所有的日志消息都可以在 /msg 路径下找到。
传感器数据
传感器数据消息包括:
sensor_gyro:陀螺仪数据
sensor_accel:加速度计数据
sensor_mag:罗盘数据
sensor_baro:气压计数据
sensor_gps:gps数据
很多的飞行问题都是由于传感器异常引起的,通过传感器的状态即可定位故障原因。
比较容易出现问题的有罗盘和gps,引起飞机跑飞炸鸡的概率比较高一些。
其它传感器出问题的概率会稍微低一些,如果你比较幸运也会发现一些奇怪的现象,比如陀螺仪或者加速度计某个轴的数据异常,可以通过对比多个传感器数据发现。
控制指令
控制指令消息包括:
rc_channels:遥控器输入
navigator_mission_item:航点任务指令
vehicle_command:地面站/nsh等终端发送的控制指令
输出指令
执行机构的故障也是飞行炸鸡的主要问题之一,通过分析飞控的控制输出可以大致定位是否是执行机构的问题。
actuator_outputs:飞控输出的控制信号
飞行状态信息
vehicle_local_position:位置与速度信息
vehicle_attitude:飞行姿态数据
vehicle_status:飞行状态数据,包括解锁、起飞、失控等状态数据
commander_state:飞行模式
控制状态信息
由控制状态信息可以分析飞行的性能,比如分析稳定性,控制精度、响应速度等等。
vehicle_local_position_setpoint:位置与速度控制指令
vehicle_attitude_setpoint:姿态控制指令
vehicle_rates_setpoint:角速率控制指令
ekf信息
ekf信息是飞控的传感器融合状态数据,包括观测量、协方差、融合状态、异常标志等。
PX4的ekf状态机还是满复杂的,这里不深入讨论,后面讲到px4的ekf2模块时再详细讲吧。
PX4还有很多其它的日志记录,也反应了很多的飞行状态信息,比如cpuload记录了飞控cpu和内存的占用率,radio_status记录了遥控器信号质量等等,感兴趣的同学可以大致浏览一下/msg文件夹。
当然PX4现有的日志消息也不能反映飞控的所有状态信息,在遇到特定的异常时不妨增加一些自己的调试信息,有助于分析问题。
往期分享:
AcmeGCS-12-地图与任务规划优化
再见2021,你好2022
PX4-10-系统启动流程
这里会不定期更新一些我整理的无人机相关知识,欢迎关注分享。
回复
支持
反对
使用道具
举报
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入联盟
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表