第十章 PX4-Pixhawk-姿态控制

第十章 PX4-Pixhawk-姿态控制    

- 这一章节我们对姿态控制进行解析,姿态解算我们还是从启动文件开始,找到姿态解算的启动文件rc.mc_app,这里面找到姿态解算的启动项为mc_att_control start 这里面不带任何参数,直接就是start。 
根据编译规则我们可以知道调用的事mc_att_control_main.cpp文件,这里我们不对这个函数之间的调用和new在继续去解读,如果不懂得就去参考前面几篇博客。这里我们直接到task_main函数中去进行解读。 
首先还是订阅相关数据和更新相关数据主要是PID数据和相关限幅数据这里写图片描述。注意哦,姿态相关的参数都是在这里看的出可以调节的,调节的参数在mc_att_control params.c中,这些参数大家如果不怕炸鸡可以去试着调一调。 
接着进入大循环,首先还是防阻塞时间配置,配置好了之后就跑到轮询中。首先是对采样时间限制在2ms到20ms之间,然后就是更新飞机的相关数据这里写图片描述。 
到这里就开始进入到控制模式了,首先是对姿态速度控制模式是否被使能,这个主要是利用遥控来控制来控制俯仰和横滚的速率的,然后判断遥控给出的值是否超过阈值,如果超过了就采用rattitude模式,前提是还要被使能,否则就进入角度控制模式这里写图片描述。 
根据流程来说我们还是先分享角度控制吧。首先在角度控制中需要判断是否为那种尾座式飞机,我们这里只分析多旋翼,所以我们这里只对多旋翼的分析一下,多旋翼的就直接进入到姿态控制函数中这里写图片描述。我们直接进入到conrtol_attitude函数中,这里的参数是时间间隔参数在积分项会用到。 
首先获取期望值,至于获取哪些值就自己到msg文件中自己去看,里面具体也有注释比较容易懂,都是英文写的,要是实在英语不过关就在线去。然后再获取期望油门值这里写图片描述。然后通过期望四元素经过DCM得到旋转R矩阵这里写图片描述。然后就是计算偏航值,这里的算法自己去找找理论去,这个利用了向量的计算方法这里写图片描述,然后计算偏差角度这里写图片描述。这一堆里面涉及到很多的理论,基本是向量运算,本人实力有限也不确定能不能讲清楚,所以这里不对这些来详细解读,这些里面主要是对偏航来做一系列计算。 
回到函数我们会知道在经过姿态控制函数之后就得到了姿态的期望值roll、pich、yaw、油门这里写图片描述然后进行发布数据。 
进入到else中这里是对速度控制,然后遥控控制又超过了阈值,这里会将遥控数据经过转换得到期望值这里写图片描述最后进行发布数据。 
接着就进入到角度度控制环路中这里写图片描述这里面首先就是获取控制的角速率包括roll、pich、yaw这里写图片描述计算当前角速率和期望角速率的偏差,然后计算控制量,这里面就用到了PID调节接着就是对各个数据的范围进行判定,这里就不用说了吧,对于搞飞机的这里的算法还是没问题吧。经典PID而已。 
到这里就基本讲完了,主要是计算控制量然后发布数据。这里提一下那些模式的控制在commander.cpp中这个文件我们也会讲,不过这个比较远,因为PX4里面的东西还远远没有讲完,有兴趣的同学可以先去看看,那里面可以说是APP层的一个控制,很多的命令控制都在这个文件中。

猜你喜欢

转载自blog.csdn.net/csshuke/article/details/79632395
今日推荐