【开源飞控】匿名飞控TI版解析(2)

因为电赛,买来匿名飞控研究一下,感觉相比其他的一下开源飞控,易开发性和稳定性都是比较好的,但就是比较贵…匿名TI版飞控是从32版改过来的,硬件上就换了个芯片,程序里也有些东西都没删干净。整体上来说开源程度很高了,自己想改啥就改啥,不过就是光流内部是不开源的。这里整理里一下飞控框架,也是学习一下一个飞控从头到尾应该怎么写。

目录

一、飞控框架

二、框架解读

1.初始化

2.任务询调

3.关键变量


一、飞控框架

框架中比较关键的几个部分都用颜色标了一下,具体内容可以参考:匿名飞控TI版解析(1)【学习总结】

高清图片ProcessOn的链接:匿名飞控TI版框架ProcessOn

 

二、框架解读

主要就可以分为两部分,一部分初始化,一部分轮询执行任务。轮询执行任务中,一部分是解决输入量的问题,包括程控、遥赶;一部分是解决反馈的问题,包括十轴传感器、光流、tof等;再一部分是pid控制部分,包括各个pid环;还有一些其他任务,辅助我们控制或者debug,包括数传、灯语等

1.初始化

  • 系统初始化:初始化系统时钟、设置中断优先级等
  • 参数初始化:直接从eeprom里面读,或者重新设置。
  • 一些外设初始化:如usb、spi、uart等
  • 传感器校准初始化:开机校准陀螺仪、加计z轴标志
  • pid参数初始化:将Ano_Parame联合体内pid参数传递到pid参数结构体中

2.任务询调

匿名没有使用实时系统,而是直接用系统滴答定时器计时,隔1ms、2ms、6ms、11ms、20ms、50ms轮询调度任务。用icm使能的1ms中断来设置一个标志,查看是否执行1ms任务,其他的都是计时到了则执行。这样只是大致上隔这么多少时间执行一下,时间上并不一定精准,但是影响不大。

3.关键变量

  • pc_user.vel_cmps_set_h[]  程控输出,对于全自动执行任务,控制量来源就是这部分
  • fs.speed_set_h[]  遥杆和程控期望量融合后的期望量
  • sensor.Gyro_deg[]  机体角速度deg
    sensor.Gyro_rad[]  机体角速度rad
    sensor.Acc_cmss[]  机体线加速度cm
  • imu_data 这部分比较多,其中包含imu几乎全部数据,如pitch、roll、yaw,以及各坐标系下的加速度等
  • wcz_acc_fus.out  融合后高度方向加速度
    wcz_spe_fus.out  融合后高度方向速度
    wcz_hei_fus.out  融合后高度
  • OF_DX2 OF_DY2  光流回传融合后的速度
    OF_DX2FIX OF_DY2FIX

 

结语:把这个飞控看了下来,感觉还是比较清晰的,就是里面各种flag有点乱,其他还好。有些算法也想改一下,现在自己加了基于视觉的位置环,也做了图像坐标转换等。但是感觉这些个传感器很不稳定啊,非常影响系统可靠性。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值