轴角法
先考你两个控制中的实际问题,如果你都会,可以出门左转刷抖音看小姐姐去了。
请接题:
- 已知无人车的姿态用ZYZ转序的欧拉角可表示分别为abc,求汽车纵向前馈需要补偿的加速度(用abc和g来表示)??可以理解为把一张A4纸的一边抬起来,小车要从一个底角沿着对角线走到另一个对角。
- 开源飞控PX4中的姿态控制的逻辑是这样的,先控制倾斜再控制旋转, 也就是先把roll和pitch的误差控制到0,再控制yaw角的误差为零, 先tilt后torsion。请问这在控制器里要如何实现??
我相信同时会做这两道题的人不超过10%,即使你是做飞控或者车辆控制的。
答案将在本系列的最后一篇给出,知乎大神多,先别戳穿我啊。
除非你是做电机控制的,是一维的世界,否则,飞控,航天,导弹,车辆,机器人等等这些控制领域,你会一直和旋转打交道,一定要懂一点刚体旋转的关键知识。
想当年,我刚毕业的时候,就是一心想着把电机控制做精做专,没办法,当年就是这样图样图深泡。 我到公司报道的时候,满怀激情地表述了我控制基础还不错,想继续深入做下去的决心。领导点了点头,说现在导航组缺人,你先去帮忙搭模型吧。。。。。。
我大学完全没学过刚体旋转,没学过导航,没学过力学。
我反抗了几下子,没鸟用,那就只能把XX当享受了。我运气很好,遇到了两个乐于专研讨论的导航专业聪明小伙伴,我边学边问边交流,就这样学习了起来。国企(研究所)有一点很好,愿意培养你,给你大量的机会去学习。
所以我是从一个小白成长到小菜的,我知道控制需要哪三板斧。
废话说完了,进入正题。
我会按照顺序来讲:轴角法,四元数,旋转矩阵,欧拉角,罗德里格斯公式和他们之间的转换。至于为什么这个顺序,看完你就明白了。
1 等效轴角坐标系表示法
我眼中最简洁的表示方式。
在二维的坐标系中,xy坐标系经过绕z轴按照右手定则旋转a角度,得到了x`y`坐标系。这种情况下:轴角法的轴就是Z轴,角就是a角。二维还是比较好理解的。
这就上图来一个标准的定义:
这就是最简单的表示方法:轴角法。
这种表示方式一定明明白白的理解,因为它是后续的基础。
轴角法有两个优点,两个硬伤。
优点一:同轴的两次旋转可以直接相加来等效为一次旋转。
优点二:定义简单,相对直观。
硬伤一:一个xyz坐标系和另一个x`y`z`,轴角法表示是唯一的吗(角度规定在0-180)?答案是否定的,因为当旋转角度是0的时候,旋转轴可以是任意的,等效为求解 0×x=0 这个方程;也就是说这时候无解了。但是在应用中,一一对应很重要,这也就暴露出了轴角法表示的最致命的问题。
硬伤二:两次连续的旋转怎样合成呢?或者说是两个旋转如何做差呢?答案是没办法,除非借助其他表示方法。
事实上,有人已经证明了,虽然旋转的自由度是三,但是仅仅用三个数表示必然会出问题(我忘了原话怎么说的了。。。)。
那需要几个呢?最少四个数。
好了,应用最广泛的,逼格最高的四元数来了。
四元数和轴角法什么关系呢?是如何解决轴角法两大硬伤的呢??
请听下回分解。
专栏里每一篇都是我一个字一个字打的,都是我认为的原创干货。
欢迎指正讨论,转载请注明,认同请点赞。
这个系列的文章很容易出错,希望大佬们多多指正补充。
仅仅收藏是学不会的,还得点赞。
刚体旋转系列
专栏文章列表
这篇文章写了第二个问题的一些答案,建议先别看啊。
参考文献:
1 机器人学导论
2 视觉slam十四讲
https://medium.com/@behreajj/3d-rotations-in-processing-vectors-matrices-quaternions-10e2fed5f0a3
https://en.wikipedia.org/wiki/Category:Rotation_in_three_dimensions
评论(0)
您还未登录,请登录后发表或查看评论