概述
SimpleMode
Similar to the “care free” mode on other systems, this mode allows you to fly your copter as though it were pointed in the direction it was pointed when it was armed regardless of its current heading orientation. So if you hold the pitch stick forward the copter will fly away from you, pull the pitch stick back and it will come back towards home. You can even apply yaw to spin the copter in any direction but the movement of the copter’s position relative to the stick inputs will behave exactly as it did at take off.
也就是说:SimpleMode即我们所说的“无头模式"。所对应的头为解锁时刻。由于一般情况下,起飞时飞机和飞手都是”正飞“。这样,在实际飞行过程中,也就无需关注飞机的Yaw方向了。(PS:这里用到飞机的罗盘信息,也就是说Yaw值一定要可靠)
SuperSimpleMode
Super Simple mode is the same as simple mode except that it uses the vehicle’s position relative to home instead of the vehicle’s initial heading when it was armed. This means that no matter where the vehicle is, pulling the pitch back will cause it to return towards home regardless of the vehicle’s actual heading.
The advantage over simple mode is that the controls are applied from the pilot’s point of view even when the copter flies behind the pilot/home location.
也就是说:SuperSimpleMode还关联了GPS信息,推动俯仰轴,飞机会改变和Home点的距离。与SimpleMode不同的是,推动滚转轴,飞机会绕Home点“刷锅"。需要注意的是,刷锅需要保持离开Home点10米以上才可以。下图显示了(10m距离的修改地方)
在ArduPilot代码中,多处模式中均会首先调用void Copter::update_simple_mode(void)
来查看是否进入上述模式。
采用方式均为绕Z轴的旋转矩阵。前后共旋转两次:
- 首次中的
simple_cos_yaw
以及simple_sin_yaw
为解锁时记录的偏航角,表示将当先姿态偏航对准正北。 - 然后在此进行旋转,将当前的Yaw值融合进去,完成无头模式。
- 两次旋转矩阵经验证为互逆矩阵。
SuperSimpleMode的更新也取决于下面函数的更新,目前猜测该函数应该是实时更新的,具体有待对其他线程的了解之后再进行补充
最后
以上就是腼腆黑米为你收集整理的ArduPilot_SimpleMode和SuperSimpleMode的全部内容,希望文章能够帮你解决ArduPilot_SimpleMode和SuperSimpleMode所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复