之前做了一个使用Unity3D作为三维显示的三维姿态显示上位机,在使用过程中偶尔会出现点小问题,当然呢,这个几率还是非常小的,就是Unity3D三维渲染引擎偶尔会崩溃,因此,我使用SharpGL再次做了这个三维姿态上位机(这个上位机来自于一个开源的x-IMU-AHRS的算法)。
我只使用了其中的三维显示部分,毕竟OpenGL这东西太难了,要让我从0起步还是算了吧,当然重写时还用到了dnSpy这个开源的并且很有用的反编译软件,特意看了IMUAPI.dll中关于四元数求旋转矩阵部分的代码,当然,看完后发现这就是一个右乘旋转矩阵,如果你还不知道什么是右乘旋转矩阵,请看这篇文章。此外,我使用欧拉角来描述旋转矩阵的过程中发现该三维显示中的旋转矩阵使用的是 秦永元《惯性导航》在第一章中描述的坐标系旋转方式,具体描述可以看这篇文章。
源代码明天放:
完整工程链接:
三维姿态显示上位机 C# + SharpGL + HID
未经允许不得转载:爱站程序员基地 » 三维姿态显示上位机 C# + SharpGL + HID