坐标系

1、地心惯性坐标系(iii系,inertialframeinertial\ frameinertial frame)
地心惯性坐标系是太阳系内的一个惯性坐标系,不随地球而转动。地心惯性坐标系用oixiyizio_ix_iy_iz_ioi​xi​yi​zi​表示,原点为地球中心,oixio_ix_ioi​xi​和oiyio_iy_ioi​yi​轴在地球赤道平面内,其中oixio_ix_ioi​xi​轴指向春分点(赤道面与黄道面的交线再与天球相交的交点之一,赤经为0,赤纬为0),春分点是天文测量中确定恒星时的起始点,oizio_iz_ioi​zi​轴为地球自转轴,并指向北极。惯性传感器的输出就是以该坐标系为参考基准的。

2、地球坐标系(eee系,earthframeearth\ frameearth frame)
地球坐标系用oexeyezeo_ex_ey_ez_eoe​xe​ye​ze​表示,原点为地球中心,oexeo_ex_eoe​xe​和oeyeo_ey_eoe​ye​轴在地球赤道平面内,其中指向本初子午线,轴为地球自转轴,并指向北极。系与地球固连,也称为地心地固坐标系(Earth−CenteredEarth−Fixed,ECEFEarth-Centered Earth-Fixed, ECEFEarth−CenteredEarth−Fixed,ECEF),地球坐标系相对于惯性坐标系的角运动大小就是地球自转角速率,其值通常取
ωie=7.2921151467rad/s=15.0410671786°/h\omega_{ie} = 7.2921151467\ rad/s = 15.0410671786\ °/h ωie​=7.2921151467 rad/s=15.0410671786 °/h

3、地理坐标系(ggg系,geographicframegeographic\ framegeographic frame)
地理坐标系用表示ogxgygzgo_gx_gy_gz_gog​xg​yg​zg​,原点定义为运载体的重心或中心,ogxgo_gx_gog​xg​轴指向地理东向,ogygo_gy_gog​yg​轴指向地理北向,ogzgo_gz_gog​zg​轴垂直于当地旋转椭球面指向天向。地理坐标系相对于地球坐标系的关系可由运载体的地理坐标表示,即经度、纬度和椭球高度

4、导航坐标系(nnn系,navigationframenavigation\ framenavigation frame)
导航坐标系用表示onxnynzno_nx_ny_nz_non​xn​yn​zn​,它是惯导系统在求解导航参数时所采用的参考坐标系。纯惯导系统的高度通道在原理上是发散的,因而惯导系统多采用当地水平坐标系作为参考坐标系,以实现水平和高度通道的解耦,在惯导系统长时间导航定位时只进行水平定位解算,而简单地将高度通道设置为固定值。地理坐标系就是一种当地水平坐标系,并且它的ogygo_gy_gog​yg​轴指向北向,随运载体在地球表面上的移动而移动。除地球极点外(实际应用中需排除极点附近),各地的地理坐标系是唯一的,书中(严恭敏的书《捷联惯导算法于组合导航原理》)选取“东–北–天”地理坐标系作为导航参考坐标系,能够适用于除极区外的全球导航应用,这种惯导系统常常称为指北方位惯导系统。

5、载体坐标系(或称体系,bbb系,bodyframebody\ framebody frame)
载体坐标系用obxbybzbo_bx_by_bz_bob​xb​yb​zb​表示,其原点定义为运载体的重心或中心,obxbo_bx_bob​xb​轴沿载体横轴向右,obybo_by_bob​yb​轴沿载体纵轴向前,obzbo_bz_bob​zb​轴沿载体立轴向上。系与载体固连,载体坐标系相对于导航坐标系的方位关系可用一组欧拉角来描述。
ωnbn=ωibb−ωinb=ωibb−Cbn(ωinn×)Cnbωinn=ωien−ωenn\begin{aligned} \omega_{nb}^n &= \omega_{ib}^b-\omega_{in}^b=\omega_{ib}^b-C_b^n(\omega_{in}^n\times)C_n^b \\ \omega_{in}^n &= \omega_{ie}^n-\omega_{en}^n \end{aligned} ωnbn​ωinn​​=ωibb​−ωinb​=ωibb​−Cbn​(ωinn​×)Cnb​=ωien​−ωenn​​
ωnbn\omega_{nb}^nωnbn​:机体坐标系(bbb系)相对于导航坐标系(nnn系)的角速度在导航坐标系(nnn系)得投影。
ωibb\omega_{ib}^bωibb​:陀螺输出的是机体坐标系(bbb系)相对于惯性坐标系(iii系)的角速度。
ωinn\omega_{in}^nωinn​:导航坐标系(nnn系)相对于惯性系(iii系)的角速度。
ωien\omega_{ie}^nωien​:地球自转引起的导航坐标系(nnn系)旋转,地球坐标系(eee系)相对于惯性坐标系(iii系)的角速度ωie\omega_{ie}ωie​在导航坐标系(nnn系)下投影。
ωenn\omega_{en}^nωenn​:惯导系统在地球表面附近移动因地球表面弯曲而引起的导航坐标系(nnn系)旋转。

ωien=[0ωiecos(Latitude)ωiesin(Latitude)]ωenn=[−vNRM+h−vERN+hvERN+htan(Latitude)]\begin{aligned} \omega_{ie}^n &=[0 \ \omega_{ie}cos(Latitude) \ \omega_{ie}sin(Latitude) ] \\ \omega_{en}^n &=[-\frac{v_N}{R_M+h} \ -\frac{v_E}{R_N+h} \ \frac{v_E}{R_N+h}tan(Latitude) ] \end{aligned} ωien​ωenn​​=[0 ωie​cos(Latitude) ωie​sin(Latitude)]=[−RM​+hvN​​ −RN​+hvE​​ RN​+hvE​​tan(Latitude)]​

注:由于iii系是绝对不动的惯性参考坐标系,它与时间无关,不需标注时刻;而nnn系和bbb系相对于iii系都是动坐标系,均跟时间有关,需标注时刻。
例如:
Cb(m)n(m)=Cin(m)Cb(m)iC_{b(m)}^{n(m)}=C_{i}^{n(m)}C_{b(m)}^{i} Cb(m)n(m)​=Cin(m)​Cb(m)i​
角标括号中的符号mmm表示tmt_mtm​时刻。
上述描述,均摘自严龚敏老师的《捷联惯导算法与组合导航原理》。

导航坐标系-东北天坐标系(ENU)对应机体坐标系-右前上坐标系(RFU)

导航参考坐标系为“东-北-天”(ENU)地理坐标系,机体坐标系满足右手定则为“右-前-上”(RFU)坐标系。

旋转顺序和相对应的旋转角度

确定由n系到b系得旋转顺序为Z—X—YZ—X—YZ—X—Y,n系到b系分别对应欧拉角yaw(Z)yaw(Z)yaw(Z),pitch(X)pitch(X)pitch(X),roll(Y)roll(Y)roll(Y),满足右手旋转时为正值。
yawyawyaw:绕ZZZ轴旋转的角度,逆时针旋转并且满足右手定则为正值。注意:北偏西方向对应的角度值是正值。
pitchpitchpitch:绕XXX轴旋转的角度,逆时针旋转并且满足右手定则为正值。
rollrollroll:绕YYY轴旋转的角度,逆时针旋转并且满足右手定则为正值。

欧拉角到旋转矩阵(Euler2DCM.m)

输入:欧拉角eulernbeuler_{nb}eulernb​是n系到b系旋转的角度,旋转顺序为Z—X—YZ—X—YZ—X—Y,分别对应欧拉角yaw(Z)yaw(Z)yaw(Z),pitch(X)pitch(X)pitch(X),roll(Y)roll(Y)roll(Y)(满足右手旋转时为正值)。
输出:姿态旋转矩阵矩阵DCMnbDCM_{nb}DCMnb​即为CnbC_n^bCnb​,旋转顺序为Z—X—YZ—X—YZ—X—Y。

Z轴对应旋转角度yawyawyaw的旋转矩阵为(yawyawyaw:满右手旋转的为正值)
RotationMatrixZ=[cos(yaw)sin(yaw)0−sin(yaw)cos(yaw)0001]RotationMatrix_{\tiny Z}=\begin{bmatrix} cos(yaw) &sin(yaw) &0\\ -sin(yaw) &cos(yaw) &0\\ 0 &0 &1\\ \end{bmatrix} RotationMatrixZ​=⎣⎡​cos(yaw)−sin(yaw)0​sin(yaw)cos(yaw)0​001​⎦⎤​
X轴对应旋转角度pitchpitchpitch的旋转矩阵为(pitchpitchpitch:满右手旋转的为正值)
RotationMatrixX=[1000cos(pitch)sin(pitch)0−sin(pitch)cos(pitch)]RotationMatrix_{\tiny X}=\begin{bmatrix} 1 &0 &0\\ 0 &cos(pitch) &sin(pitch)\\ 0 &-sin(pitch) &cos(pitch)\\ \end{bmatrix} RotationMatrixX​=⎣⎡​100​0cos(pitch)−sin(pitch)​0sin(pitch)cos(pitch)​⎦⎤​
Y轴对应旋转角度rollrollroll的旋转矩阵为(rollrollroll:满右手旋转的为正值)
RotationMatrixY=[cos(pitch)0−sin(pitch)010sin(pitch)0cos(pitch)]RotationMatrix_{\tiny Y}=\begin{bmatrix} cos(pitch) &0 &-sin(pitch)\\ 0 &1 &0\\ sin(pitch) &0 & cos(pitch)\\ \end{bmatrix} RotationMatrixY​=⎣⎡​cos(pitch)0sin(pitch)​010​−sin(pitch)0cos(pitch)​⎦⎤​
姿态旋转矩阵CnbC_n^bCnb​(左乘)为
Cnb=RotationMatrixY∗RotationMatrixX∗RotationMatrixZC_n^b=RotationMatrix_{\tiny Y}*RotationMatrix_{\tiny X}*RotationMatrix_{\tiny Z}\\ Cnb​=RotationMatrixY​∗RotationMatrixX​∗RotationMatrixZ​
Cnb=[cos(yaw)∗cos(roll)−sin(heading)∗sin(pitch)∗sin(roll)sin(yaw)∗cos(roll)+cos(yaw)∗sin(pitch)∗sin(roll)−cos(pitch)∗sin(roll)−sin(yaw)∗cos(pitch)cos(yaw)∗cos(pitch)sin(pitch)cos(yaw)∗sin(roll)+sin(yaw)∗sin(pitch)∗cos(roll)sin(yaw)∗sin(roll)−cos(yaw)∗sin(pitch)∗cos(roll)cos(pitch)∗cos(roll)]C_n^b=\begin{bmatrix} cos(yaw)*cos(roll)-sin(heading)*sin(pitch)*sin(roll) &sin(yaw)*cos(roll)+cos(yaw)*sin(pitch)*sin(roll) &-cos(pitch)*sin(roll)\\ -sin(yaw)*cos(pitch) & cos(yaw)*cos(pitch) &sin(pitch)\\ cos(yaw)*sin(roll)+sin(yaw)*sin(pitch)*cos(roll) &sin(yaw)*sin(roll)-cos(yaw)*sin(pitch)*cos(roll) &cos(pitch)*cos(roll)\\ \end{bmatrix} Cnb​=⎣⎡​cos(yaw)∗cos(roll)−sin(heading)∗sin(pitch)∗sin(roll)−sin(yaw)∗cos(pitch)cos(yaw)∗sin(roll)+sin(yaw)∗sin(pitch)∗cos(roll)​sin(yaw)∗cos(roll)+cos(yaw)∗sin(pitch)∗sin(roll)cos(yaw)∗cos(pitch)sin(yaw)∗sin(roll)−cos(yaw)∗sin(pitch)∗cos(roll)​−cos(pitch)∗sin(roll)sin(pitch)cos(pitch)∗cos(roll)​⎦⎤​

旋转矩阵到欧拉角(DCM2Euler.m)

输入:姿态旋转矩阵DCMnbDCM_{nb}DCMnb​即为CnbC_n^bCnb​,旋转顺序为Z—X—YZ—X—YZ—X—Y
输出:欧拉角eulernbeuler_{nb}eulernb​是n系到b系分别对应欧拉角yaw(Z)yaw(Z)yaw(Z),pitch(X)pitch(X)pitch(X),roll(Y)roll(Y)roll(Y)(满足右手旋转时为正值)。
当∣Cnb(2,3)∣≤0.999999|C_n^b(2,3)| \leq 0.999999∣Cnb​(2,3)∣≤0.999999 ,
pitch=atan2(Cnb(2,3),Cnb(1,3)2+Cnb(3,3)2)roll=−atan2(Cnb(1,3),Cnb(3,3))yaw=−atan2(Cnb(2,1),Cnb(2,2))\begin{aligned} pitch&=atan2(C_n^b(2,3),\sqrt{C_n^b(1,3)^2+C_n^b(3,3)^2} )\\ roll&=-atan2(C_n^b(1,3),C_n^b(3,3)) \\ yaw&=-atan2(C_n^b(2,1),C_n^b(2,2))\\ \end{aligned} pitchrollyaw​=atan2(Cnb​(2,3),Cnb​(1,3)2+Cnb​(3,3)2​)=−atan2(Cnb​(1,3),Cnb​(3,3))=−atan2(Cnb​(2,1),Cnb​(2,2))​
当Cnb(2,3)>0.999999C_n^b(2,3) > 0.999999Cnb​(2,3)>0.999999,
pitch=atan2(Cnb(2,3),Cnb(1,3)2+Cnb(3,3)2)≈π/2roll+yaw=atan2(Cnb(3,1),Cnb(1,1))\begin{aligned} pitch&= atan2(C_n^b(2,3),\sqrt{C_n^b(1,3)^2+C_n^b(3,3)^2} ) \approx \pi/2\\ roll+yaw&= atan2(C_n^b(3,1),C_n^b(1,1)) \\ \end{aligned} pitchroll+yaw​=atan2(Cnb​(2,3),Cnb​(1,3)2+Cnb​(3,3)2​)≈π/2=atan2(Cnb​(3,1),Cnb​(1,1))​
当Cnb(2,3)<−0.999999C_n^b(2,3) < -0.999999Cnb​(2,3)<−0.999999,
pitch=atan2(Cnb(2,3),Cnb(1,3)2+Cnb(3,3)2)≈−π/2roll−yaw=atan2(Cnb(3,1),Cnb(1,1))\begin{aligned} pitch&= atan2(C_n^b(2,3),\sqrt{C_n^b(1,3)^2+C_n^b(3,3)^2} )\approx -\pi/2\\ roll-yaw&= atan2(C_n^b(3,1),C_n^b(1,1)) \\ \end{aligned} pitchroll−yaw​=atan2(Cnb​(2,3),Cnb​(1,3)2+Cnb​(3,3)2​)≈−π/2=atan2(Cnb​(3,1),Cnb​(1,1))​
在∣Cnb(2,3)∣>0.999999|C_n^b(2,3)| > 0.999999∣Cnb​(2,3)∣>0.999999 时,rollrollroll和yawyawyaw无法单独分开,在指定其中一个角度时才能确定另一个角度值,一般确定yaw=0yaw=0yaw=0,则rollrollroll === atan2atan2atan2(Cnb(3,1)C_n^b(3,1)Cnb​(3,1),Cnb(1,1)C_n^b(1,1)Cnb​(1,1)) 。

欧拉角到四元数(Euler2Quaternion.m)

输入:欧拉角eulernbeuler_{nb}eulernb​是n系到b系分别对应欧拉角yaw(Z)yaw(Z)yaw(Z),pitch(X)pitch(X)pitch(X),roll(Y)roll(Y)roll(Y)(满足右手旋转时为正值)。
输出:四元数QuaternionnbQuaternion_{nb}Quaternionnb​是n系到b系的四元数,旋转顺序Z—X—YZ—X—YZ—X—Y。

Z轴对应旋转角度yaw的旋转矩阵为(yaw:满右手旋转时角度为正值)
旋转轴为:[001][0\; 0\;1][001]
旋转角度为:yawyawyaw
四元数为:QuaternionZ=[cos(yaw/2),0,0,sin(yaw/2)]Quaternion_{\tiny Z}=[cos(yaw/2),0,0,sin(yaw/2)]QuaternionZ​=[cos(yaw/2),0,0,sin(yaw/2)]

X轴对应旋转角度pitch的旋转矩阵为(pitch:满右手旋转时角度为正值)
旋转轴为:[100][1\; 0\;0][100]
旋转角度为:pitchpitchpitch
四元数为:QuaternionX=[cos(pitch/2),sin(pitch/2),0,0]Quaternion_{\tiny X}=[cos(pitch/2),sin(pitch/2),0,0]QuaternionX​=[cos(pitch/2),sin(pitch/2),0,0]

Y轴对应旋转角度roll的旋转矩阵为(roll:满右手旋转时角度为正值)
旋转轴为:[010][0\; 1\;0][010]
旋转角度为:rollrollroll
四元数为:QuaternionY=[cos(roll/2),0,sin(roll/2),0]Quaternion_{\tiny Y}=[cos(roll/2),0,sin(roll/2),0]QuaternionY​=[cos(roll/2),0,sin(roll/2),0]

四元数为:
QuaternionZ=[cos(yaw/2),0,0,sin(yaw/2)]Quaternion_{\tiny Z}=[cos(yaw/2),0,0,sin(yaw/2)]QuaternionZ​=[cos(yaw/2),0,0,sin(yaw/2)]
QuaternionX=[cos(pitch/2),sin(pitch/2),0,0]Quaternion_{\tiny X}=[cos(pitch/2),sin(pitch/2),0,0]QuaternionX​=[cos(pitch/2),sin(pitch/2),0,0]
QuaternionY=[cos(roll/2),0,sin(roll/2),0]Quaternion_{\tiny Y}=[cos(roll/2),0,sin(roll/2),0]QuaternionY​=[cos(roll/2),0,sin(roll/2),0]
四元数QuaternionnbQuaternion_{nb}Quaternionnb​(右乘)为:
Quaternionnb=QuaternionZ∗QuaternionX∗QuaternionYQuaternionnb=[cos(pitch/2)∗cos(roll/2)∗cos(yaw/2)−sin(pitch/2)∗sin(roll/2)∗sin(yaw/2)sin(pitch/2)∗cos(roll/2)∗cos(yaw/2)−cos(pitch/2)∗sin(roll/2)∗sin(yaw/2)cos(pitch/2)∗sin(roll/2)∗cos(yaw/2)+sin(pitch/2)∗cos(roll/2)∗sin(yaw/2)cos(pitch/2)∗cos(roll/2)∗sin(yaw/2)+sin(pitch/2)∗sin(roll/2)∗cos(yaw/2)]\begin{aligned} Quaternion_{nb}&=Quaternion_{\tiny Z}*Quaternion_{\tiny X}*Quaternion_{\tiny Y}\\ Quaternion_{nb}&= \begin{bmatrix} cos(pitch/2)*cos(roll/2)*cos(yaw/2) - sin(pitch/2)*sin(roll/2)*sin(yaw/2)\\ sin(pitch/2)*cos(roll/2)*cos(yaw/2) - cos(pitch/2)*sin(roll/2)*sin(yaw/2)\\ cos(pitch/2)*sin(roll/2)*cos(yaw/2) + sin(pitch/2)*cos(roll/2)*sin(yaw/2)\\ cos(pitch/2)*cos(roll/2)*sin(yaw/2) + sin(pitch/2)*sin(roll/2)*cos(yaw/2)\\ \end{bmatrix} \end{aligned} Quaternionnb​Quaternionnb​​=QuaternionZ​∗QuaternionX​∗QuaternionY​=⎣⎢⎢⎡​cos(pitch/2)∗cos(roll/2)∗cos(yaw/2)−sin(pitch/2)∗sin(roll/2)∗sin(yaw/2)sin(pitch/2)∗cos(roll/2)∗cos(yaw/2)−cos(pitch/2)∗sin(roll/2)∗sin(yaw/2)cos(pitch/2)∗sin(roll/2)∗cos(yaw/2)+sin(pitch/2)∗cos(roll/2)∗sin(yaw/2)cos(pitch/2)∗cos(roll/2)∗sin(yaw/2)+sin(pitch/2)∗sin(roll/2)∗cos(yaw/2)​⎦⎥⎥⎤​​

四元数QuaternionbnQuaternion_{bn}Quaternionbn​(右乘)为:
Quaternionbn=QuaternionY∗QuaternionX∗QuaternionZQuaternionbn=[cos(pitch/2)∗cos(roll/2)∗cos(yaw/2)−sin(pitch/2)∗sin(roll/2)∗sin(yaw/2)cos(pitch/2)∗sin(roll/2)∗sin(yaw/2)−sin(pitch/2)∗cos(roll/2)∗cos(yaw/2)−cos(pitch/2)∗sin(roll/2)∗cos(yaw/2)−sin(pitch/2)∗cos(roll/2)∗sin(yaw/2)−cos(pitch/2)∗cos(roll/2)∗sin(yaw/2)−sin(pitch/2)∗sin(roll/2)∗cos(yaw/2)]\begin{aligned} Quaternion_{bn}&=Quaternion_{\tiny Y}*Quaternion_{\tiny X}*Quaternion_{\tiny Z}\\ Quaternion_{bn}&= \begin{bmatrix} cos(pitch/2)*cos(roll/2)*cos(yaw/2) - sin(pitch/2)*sin(roll/2)*sin(yaw/2)\\ cos(pitch/2)*sin(roll/2)*sin(yaw/2) - sin(pitch/2)*cos(roll/2)*cos(yaw/2)\\ -cos(pitch/2)*sin(roll/2)*cos(yaw/2) - sin(pitch/2)*cos(roll/2)*sin(yaw/2)\\ -cos(pitch/2)*cos(roll/2)*sin(yaw/2) - sin(pitch/2)*sin(roll/2)*cos(yaw/2)\\ \end{bmatrix} \end{aligned} Quaternionbn​Quaternionbn​​=QuaternionY​∗QuaternionX​∗QuaternionZ​=⎣⎢⎢⎡​cos(pitch/2)∗cos(roll/2)∗cos(yaw/2)−sin(pitch/2)∗sin(roll/2)∗sin(yaw/2)cos(pitch/2)∗sin(roll/2)∗sin(yaw/2)−sin(pitch/2)∗cos(roll/2)∗cos(yaw/2)−cos(pitch/2)∗sin(roll/2)∗cos(yaw/2)−sin(pitch/2)∗cos(roll/2)∗sin(yaw/2)−cos(pitch/2)∗cos(roll/2)∗sin(yaw/2)−sin(pitch/2)∗sin(roll/2)∗cos(yaw/2)​⎦⎥⎥⎤​​

四元数到旋转矩阵(Quaternion2DCM.m)

输入:四元数QuaternionnbQuaternion_{nb}Quaternionnb​是n系到b系的四元数,旋转顺序Z—X—YZ—X—YZ—X—Y
输出:姿态旋转矩阵DCMnbDCM_{nb}DCMnb​即为CnbC_n^bCnb​,旋转顺序为Z—X—YZ—X—YZ—X—Y
四元数QuaternionnbQuaternion_{nb}Quaternionnb​对应:
q0=Quaternionnb(1)q_0= Quaternion_{nb}(1)q0​=Quaternionnb​(1)
q1=Quaternionnb(2)q_1= Quaternion_{nb}(2)q1​=Quaternionnb​(2)
q2=Quaternionnb(3)q_2= Quaternion_{nb}(3)q2​=Quaternionnb​(3)
q3=Quaternionnb(4)q_3= Quaternion_{nb}(4)q3​=Quaternionnb​(4)
对应旋转矩阵DCMnbDCM_{nb}DCMnb​,如下:
DCMnb=[q0∗q0+q1∗q1−q2∗q2−q3∗q32∗(q1∗q2+q0∗q3)2∗(q1∗q3−q0∗q2)2∗(q1∗q2−q0∗q3)q0∗q0−q1∗q1+q2∗q2−q3∗q32∗(q2∗q3+q0∗q1)2∗(q1∗q3+q0∗q2)2∗(q0∗q1−q2∗q3)q0∗q0−q1∗q1−q2∗q2+q3∗q3]\begin{aligned} DCM_{nb}= \begin{bmatrix} &q0*q0+q1*q1-q2*q2-q3*q3 &2*(q1*q2+q0*q3) &2*(q1*q3-q0*q2)\\ &2*(q1*q2-q0*q3) &q0*q0-q1*q1+q2*q2-q3*q3 &2*(q2*q3+q0*q1)\\ &2*(q1*q3+q0*q2) &2*(q0*q1-q2*q3) &q0*q0-q1*q1-q2*q2+q3*q3\\ \end{bmatrix} \end{aligned} DCMnb​=⎣⎡​​q0∗q0+q1∗q1−q2∗q2−q3∗q32∗(q1∗q2−q0∗q3)2∗(q1∗q3+q0∗q2)​2∗(q1∗q2+q0∗q3)q0∗q0−q1∗q1+q2∗q2−q3∗q32∗(q0∗q1−q2∗q3)​2∗(q1∗q3−q0∗q2)2∗(q2∗q3+q0∗q1)q0∗q0−q1∗q1−q2∗q2+q3∗q3​⎦⎤​​
对应旋转矩阵DCMbnDCM_{bn}DCMbn​,如下:
DCMbn=[q0∗q0+q1∗q1−q2∗q2−q3∗q32∗(q1∗q2−q0∗q3)2∗(q1∗q3+q0∗q2)2∗(q1∗q2+q0∗q3)q0∗q0−q1∗q1+q2∗q2−q3∗q32∗(q2∗q3−q0∗q1)2∗(q1∗q3−q0∗q2)2∗(q0∗q1+q2∗q3)q0∗q0−q1∗q1−q2∗q2+q3∗q3]\begin{aligned} DCM_{bn}= \begin{bmatrix} &q0*q0+q1*q1-q2*q2-q3*q3 &2*(q1*q2-q0*q3) &2*(q1*q3+q0*q2)\\ &2*(q1*q2+q0*q3) &q0*q0-q1*q1+q2*q2-q3*q3 &2*(q2*q3-q0*q1)\\ &2*(q1*q3-q0*q2) &2*(q0*q1+q2*q3) &q0*q0-q1*q1-q2*q2+q3*q3\\ \end{bmatrix} \end{aligned} DCMbn​=⎣⎡​​q0∗q0+q1∗q1−q2∗q2−q3∗q32∗(q1∗q2+q0∗q3)2∗(q1∗q3−q0∗q2)​2∗(q1∗q2−q0∗q3)q0∗q0−q1∗q1+q2∗q2−q3∗q32∗(q0∗q1+q2∗q3)​2∗(q1∗q3+q0∗q2)2∗(q2∗q3−q0∗q1)q0∗q0−q1∗q1−q2∗q2+q3∗q3​⎦⎤​​

导航坐标系-北东地坐标系(NED)对应机体坐标系-前右下坐标系(FRD)

导航参考坐标系为“北-东-地”(NED)地理坐标系,机体坐标系满足右手定则为“前-右-下”(FRD)坐标系。

旋转顺序和相对应的旋转角度

确定由n系到b系得旋转顺序为Z—Y—XZ—Y—XZ—Y—X,n系到b系分别对应角度yaw(Z)yaw(Z)yaw(Z),pitch(Y)pitch(Y)pitch(Y),roll(X)roll(X)roll(X),满足右手旋转时为正值。
yawyawyaw:绕ZZZ轴旋转的角度,逆时针旋转并且满足右手定则为正值,注意:北偏东方向对应的角度值是正值。
pitchpitchpitch:绕YYY轴旋转的角度,逆时针旋转并且满足右手定则为正值。
rollrollroll:绕XXX轴旋转的角度,逆时针旋转并且满足右手定则为正值。

欧拉角到旋转矩阵(Euler2DCM.m)

输入:欧拉角eulernbeuler_{nb}eulernb​是n系到b系旋转的角度,旋转顺序为Z—Y—XZ—Y—XZ—Y—X,分别对应欧拉角yaw(Z)yaw(Z)yaw(Z),pitch(Y)pitch(Y)pitch(Y),roll(X)roll(X)roll(X)(满足右手旋转时为正值)。
输出:姿态旋转矩阵矩阵DCMnbDCM_{nb}DCMnb​即为CnbC_n^bCnb​,旋转顺序为Z—Y—XZ—Y—XZ—Y—X。

Z轴对应旋转角度yaw的旋转矩阵为(yaw:满右手旋转的为正值)
RotationMatrixZ=[cos(yaw)sin(yaw)0−sin(yaw)cos(yaw)0001]RotationMatrix_{\tiny Z}=\begin{bmatrix} cos(yaw) &sin(yaw) &0\\ -sin(yaw) &cos(yaw) &0\\ 0 &0 &1\\ \end{bmatrix} RotationMatrixZ​=⎣⎡​cos(yaw)−sin(yaw)0​sin(yaw)cos(yaw)0​001​⎦⎤​
Y轴对应旋转角度pitch的旋转矩阵为(pitch:满右手旋转的为正值)
RotationMatrixY=[cos(pitch)0−sin(pitch)010sin(pitch)0cos(pitch)]RotationMatrix_{\tiny Y}=\begin{bmatrix} cos(pitch) &0 &-sin(pitch)\\ 0 &1 &0\\ sin(pitch) &0 & cos(pitch)\\ \end{bmatrix} RotationMatrixY​=⎣⎡​cos(pitch)0sin(pitch)​010​−sin(pitch)0cos(pitch)​⎦⎤​
X轴对应旋转角度roll的旋转矩阵为(roll:满右手旋转的为正值)
RotationMatrixX=[1000cos(roll)sin(roll)0−sin(roll)cos(roll)]RotationMatrix_{\tiny X}=\begin{bmatrix} 1 &0 &0\\ 0 &cos(roll) &sin(roll)\\ 0 &-sin(roll) &cos(roll)\\ \end{bmatrix} RotationMatrixX​=⎣⎡​100​0cos(roll)−sin(roll)​0sin(roll)cos(roll)​⎦⎤​
姿态旋转矩阵CnbC_n^bCnb​(左乘)为
Cnb=RotationMatrixX∗RotationMatrixY∗RotationMatrixZC_n^b=RotationMatrix_{\tiny X}*RotationMatrix_{\tiny Y}*RotationMatrix_{\tiny Z}\\ Cnb​=RotationMatrixX​∗RotationMatrixY​∗RotationMatrixZ​
Cnb=[cos(pitch)∗cos(yaw)cos(pitch)∗sin(yaw)−sin(pitch)cos(yaw)∗sin(pitch)∗sin(roll)−cos(roll)∗sin(yaw)cos(roll)∗cos(yaw)+sin(pitch)∗sin(roll)∗sin(yaw)cos(pitch)∗sin(roll)sin(roll)∗sin(yaw)+cos(roll)∗cos(yaw)∗sin(pitch)cos(roll)∗sin(pitch)∗sin(yaw)−cos(yaw)∗sin(roll)cos(pitch)∗cos(roll)]C_n^b=\begin{bmatrix} cos(pitch)*cos(yaw) &cos(pitch)*sin(yaw)&-sin(pitch)\\ cos(yaw)*sin(pitch)*sin(roll) - cos(roll)*sin(yaw) &cos(roll)*cos(yaw) + sin(pitch)*sin(roll)*sin(yaw) &cos(pitch)*sin(roll)\\ sin(roll)*sin(yaw) + cos(roll)*cos(yaw)*sin(pitch) &cos(roll)*sin(pitch)*sin(yaw) - cos(yaw)*sin(roll) &cos(pitch)*cos(roll)\\ \end{bmatrix} Cnb​=⎣⎡​cos(pitch)∗cos(yaw)cos(yaw)∗sin(pitch)∗sin(roll)−cos(roll)∗sin(yaw)sin(roll)∗sin(yaw)+cos(roll)∗cos(yaw)∗sin(pitch)​cos(pitch)∗sin(yaw)cos(roll)∗cos(yaw)+sin(pitch)∗sin(roll)∗sin(yaw)cos(roll)∗sin(pitch)∗sin(yaw)−cos(yaw)∗sin(roll)​−sin(pitch)cos(pitch)∗sin(roll)cos(pitch)∗cos(roll)​⎦⎤​

旋转矩阵到欧拉角(DCM2Euler.m)

输入:姿态旋转矩阵DCMnbDCM_{nb}DCMnb​即为CnbC_n^bCnb​,旋转顺序为Z—Y—XZ—Y—XZ—Y—X
输出:欧拉角eulernbeuler_{nb}eulernb​是n系到b系分别对应欧拉角yaw(Z)yaw(Z)yaw(Z),pitch(Y)pitch(Y)pitch(Y),roll(X)roll(X)roll(X)(满足右手旋转时为正值)。
当∣Cnb(1,3)∣≤0.999999|C_n^b(1,3)| \leq 0.999999∣Cnb​(1,3)∣≤0.999999 ,
pitch=−atan2(Cnb(1,3),Cnb(2,3)2+Cnb(3,3)2)roll=atan2(Cnb(2,3),Cnb(3,3))yaw=atan2(Cnb(1,2),Cnb(1,1))\begin{aligned} pitch&=-atan2(C_n^b(1,3),\sqrt{C_n^b(2,3)^2+C_n^b(3,3)^2} )\\ roll&=atan2(C_n^b(2,3),C_n^b(3,3)) \\ yaw&=atan2(C_n^b(1,2),C_n^b(1,1))\\ \end{aligned} pitchrollyaw​=−atan2(Cnb​(1,3),Cnb​(2,3)2+Cnb​(3,3)2​)=atan2(Cnb​(2,3),Cnb​(3,3))=atan2(Cnb​(1,2),Cnb​(1,1))​
当Cnb(1,3)>0.999999C_n^b(1,3) > 0.999999Cnb​(1,3)>0.999999,
pitch=−atan2(Cnb(1,3),Cnb(2,3)2+Cnb(3,3)2)≈π/2roll+yaw=atan2(Cnb(3,1),Cnb(2,1))\begin{aligned} pitch&= -atan2(C_n^b(1,3),\sqrt{C_n^b(2,3)^2+C_n^b(3,3)^2} ) \approx \pi/2\\ roll+yaw&= atan2(C_n^b(3,1),C_n^b(2,1)) \\ \end{aligned} pitchroll+yaw​=−atan2(Cnb​(1,3),Cnb​(2,3)2+Cnb​(3,3)2​)≈π/2=atan2(Cnb​(3,1),Cnb​(2,1))​
当Cnb(1,3)<−0.999999C_n^b(1,3) < -0.999999Cnb​(1,3)<−0.999999,
pitch=−atan2(Cnb(1,3),Cnb(2,3)2+Cnb(3,3)2)≈−π/2roll−yaw=atan2(Cnb(3,1),Cnb(2,1))\begin{aligned} pitch&= -atan2(C_n^b(1,3),\sqrt{C_n^b(2,3)^2+C_n^b(3,3)^2} )\approx -\pi/2\\ roll-yaw&= atan2(C_n^b(3,1),C_n^b(2,1)) \\ \end{aligned} pitchroll−yaw​=−atan2(Cnb​(1,3),Cnb​(2,3)2+Cnb​(3,3)2​)≈−π/2=atan2(Cnb​(3,1),Cnb​(2,1))​
在∣Cnb(1,3)∣>0.999999|C_n^b(1,3)| > 0.999999∣Cnb​(1,3)∣>0.999999 时,rollrollroll和yawyawyaw无法单独分开,在指定其中一个角度时才能确定另一个角度值,一般确定yaw=0yaw=0yaw=0,则rollrollroll === atan2atan2atan2(Cnb(3,1)C_n^b(3,1)Cnb​(3,1),Cnb(2,1)C_n^b(2,1)Cnb​(2,1)) 。

欧拉角到四元数(Euler2Quaternion.m)

输入:欧拉角eulernbeuler_{nb}eulernb​是n系到b系分别对应欧拉角yaw(Z)yaw(Z)yaw(Z),pitch(Y)pitch(Y)pitch(Y),roll(X)roll(X)roll(X)(满足右手旋转时为正值)。
输出:四元数QuaternionnbQuaternion_{nb}Quaternionnb​是n系到b系的四元数,旋转顺序Z—Y—XZ—Y—XZ—Y—X

Z轴对应旋转角度yaw的旋转矩阵为(yaw:满右手旋转时角度为正值)
旋转轴为:[001][0\; 0\;1][001]
旋转角度为:yawyawyaw
四元数为:QuaternionZ=[cos(yaw/2),0,0,sin(yaw/2)]Quaternion_{\tiny Z}=[cos(yaw/2),0,0,sin(yaw/2)]QuaternionZ​=[cos(yaw/2),0,0,sin(yaw/2)]

Y轴对应旋转角度pitch的旋转矩阵为(pitch:满右手旋转时角度为正值)
旋转轴为:[010][0\;1\; 0][010]
旋转角度为:pitchpitchpitch
四元数为:QuaternionX=[cos(pitch/2),0,sin(pitch/2),0]Quaternion_{\tiny X}=[cos(pitch/2),0,sin(pitch/2),0]QuaternionX​=[cos(pitch/2),0,sin(pitch/2),0]

X轴对应旋转角度roll的旋转矩阵为(roll:满右手旋转时角度为正值)
旋转轴为:[100][1\; 0\; 0][100]
旋转角度为:rollrollroll
四元数为:QuaternionY=[cos(roll/2),0,sin(roll/2),0]Quaternion_{\tiny Y}=[cos(roll/2),0,sin(roll/2),0]QuaternionY​=[cos(roll/2),0,sin(roll/2),0]

四元数为:
QuaternionZ=[cos(yaw/2),0,0,sin(yaw/2)]Quaternion_{\tiny Z}=[cos(yaw/2),0,0,sin(yaw/2)]QuaternionZ​=[cos(yaw/2),0,0,sin(yaw/2)]
QuaternionY=[cos(pitch/2),0,sin(pitch/2),0]Quaternion_{\tiny Y}=[cos(pitch/2),0,sin(pitch/2),0]QuaternionY​=[cos(pitch/2),0,sin(pitch/2),0]
QuaternionX=[cos(roll/2),sin(roll/2),0,0]Quaternion_{\tiny X}=[cos(roll/2),sin(roll/2),0,0]QuaternionX​=[cos(roll/2),sin(roll/2),0,0]
四元数QuaternionnbQuaternion_{nb}Quaternionnb​(右乘)为:
Quaternionnb=QuaternionZ∗QuaternionY∗QuaternionXQuaternionnb=[cos(pitch/2)∗cos(roll/2)∗cos(yaw/2)+sin(pitch/2)∗sin(roll/2)∗sin(yaw/2)cos(pitch/2)∗sin(roll/2)∗cos(yaw/2)−sin(pitch/2)∗cos(roll/2)∗sin(yaw/2)sin(pitch/2)∗cos(roll/2)∗cos(yaw/2)+cos(pitch/2)∗sin(roll/2)∗sin(yaw/2)cos(pitch/2)∗cos(roll/2)∗sin(yaw/2)−sin(pitch/2)∗sin(roll/2)∗cos(yaw/2)]]\begin{aligned} Quaternion_{nb}&=Quaternion_{\tiny Z}*Quaternion_{\tiny Y}*Quaternion_{\tiny X}\\ Quaternion_{nb}&= \begin{bmatrix} cos(pitch/2)*cos(roll/2)*cos(yaw/2) + sin(pitch/2)*sin(roll/2)*sin(yaw/2)\\ cos(pitch/2)*sin(roll/2)*cos(yaw/2) - sin(pitch/2)*cos(roll/2)*sin(yaw/2)\\ sin(pitch/2)*cos(roll/2)*cos(yaw/2) + cos(pitch/2)*sin(roll/2)*sin(yaw/2)\\ cos(pitch/2)*cos(roll/2)*sin(yaw/2) - sin(pitch/2)*sin(roll/2)*cos(yaw/2)]\\ \end{bmatrix} \end{aligned} Quaternionnb​Quaternionnb​​=QuaternionZ​∗QuaternionY​∗QuaternionX​=⎣⎢⎢⎡​cos(pitch/2)∗cos(roll/2)∗cos(yaw/2)+sin(pitch/2)∗sin(roll/2)∗sin(yaw/2)cos(pitch/2)∗sin(roll/2)∗cos(yaw/2)−sin(pitch/2)∗cos(roll/2)∗sin(yaw/2)sin(pitch/2)∗cos(roll/2)∗cos(yaw/2)+cos(pitch/2)∗sin(roll/2)∗sin(yaw/2)cos(pitch/2)∗cos(roll/2)∗sin(yaw/2)−sin(pitch/2)∗sin(roll/2)∗cos(yaw/2)]​⎦⎥⎥⎤​​
四元数QuaternionbnQuaternion_{bn}Quaternionbn​(右乘)为:
Quaternionbn=QuaternionX∗QuaternionY∗QuaternionZQuaternionbn=[cos(pitch/2)∗cos(roll/2)∗cos(yaw/2)+sin(pitch/2)∗sin(roll/2)∗sin(yaw/2)sin(pitch/2)∗cos(roll/2)∗sin(yaw/2)−cos(pitch/2)∗sin(roll/2)∗cos(yaw/2)−sin(pitch/2)∗cos(roll/2)∗cos(yaw/2)−cos(pitch/2)∗sin(roll/2)∗sin(yaw/2)sin(pitch/2)∗sin(roll/2)∗cos(yaw/2)−cos(pitch/2)∗cos(roll/2)∗sin(yaw/2)]\begin{aligned} Quaternion_{bn}&=Quaternion_{\tiny X}*Quaternion_{\tiny Y}*Quaternion_{\tiny Z}\\ Quaternion_{bn}&= \begin{bmatrix} cos(pitch/2)*cos(roll/2)*cos(yaw/2) + sin(pitch/2)*sin(roll/2)*sin(yaw/2)\\ sin(pitch/2)*cos(roll/2)*sin(yaw/2) - cos(pitch/2)*sin(roll/2)*cos(yaw/2)\\ -sin(pitch/2)*cos(roll/2)*cos(yaw/2) - cos(pitch/2)*sin(roll/2)*sin(yaw/2)\\ sin(pitch/2)*sin(roll/2)*cos(yaw/2) - cos(pitch/2)*cos(roll/2)*sin(yaw/2)\\ \end{bmatrix} \end{aligned} Quaternionbn​Quaternionbn​​=QuaternionX​∗QuaternionY​∗QuaternionZ​=⎣⎢⎢⎡​cos(pitch/2)∗cos(roll/2)∗cos(yaw/2)+sin(pitch/2)∗sin(roll/2)∗sin(yaw/2)sin(pitch/2)∗cos(roll/2)∗sin(yaw/2)−cos(pitch/2)∗sin(roll/2)∗cos(yaw/2)−sin(pitch/2)∗cos(roll/2)∗cos(yaw/2)−cos(pitch/2)∗sin(roll/2)∗sin(yaw/2)sin(pitch/2)∗sin(roll/2)∗cos(yaw/2)−cos(pitch/2)∗cos(roll/2)∗sin(yaw/2)​⎦⎥⎥⎤​​

四元数到旋转矩阵(Quaternion2DCM.m)

输入:四元数QuaternionnbQuaternion_{nb}Quaternionnb​是n系到b系的四元数,旋转顺序Z—Y—XZ—Y—XZ—Y—X
输出:姿态旋转矩阵DCMnbDCM_{nb}DCMnb​即为CnbC_n^bCnb​,旋转顺序为Z—Y—XZ—Y—XZ—Y—X
四元数QuaternionnbQuaternion_{nb}Quaternionnb​对应:
q0=Quaternionnb(1)q_0= Quaternion_{nb}(1)q0​=Quaternionnb​(1)
q1=Quaternionnb(2)q_1= Quaternion_{nb}(2)q1​=Quaternionnb​(2)
q2=Quaternionnb(3)q_2= Quaternion_{nb}(3)q2​=Quaternionnb​(3)
q3=Quaternionnb(4)q_3= Quaternion_{nb}(4)q3​=Quaternionnb​(4)
对应旋转矩阵DCMnbDCM_{nb}DCMnb​,如下:
DCMnb=[q0∗q0+q1∗q1−q2∗q2−q3∗q32∗(q1∗q2+q0∗q3)2∗(q1∗q3−q0∗q2)2∗(q1∗q2−q0∗q3)q0∗q0−q1∗q1+q2∗q2−q3∗q32∗(q2∗q3+q0∗q1)2∗(q1∗q3+q0∗q2)2∗(q0∗q1−q2∗q3)q0∗q0−q1∗q1−q2∗q2+q3∗q3]\begin{aligned} DCM_{nb}= \begin{bmatrix} &q0*q0+q1*q1-q2*q2-q3*q3 &2*(q1*q2+q0*q3) &2*(q1*q3-q0*q2)\\ &2*(q1*q2-q0*q3) &q0*q0-q1*q1+q2*q2-q3*q3 &2*(q2*q3+q0*q1)\\ &2*(q1*q3+q0*q2) &2*(q0*q1-q2*q3) &q0*q0-q1*q1-q2*q2+q3*q3\\ \end{bmatrix} \end{aligned} DCMnb​=⎣⎡​​q0∗q0+q1∗q1−q2∗q2−q3∗q32∗(q1∗q2−q0∗q3)2∗(q1∗q3+q0∗q2)​2∗(q1∗q2+q0∗q3)q0∗q0−q1∗q1+q2∗q2−q3∗q32∗(q0∗q1−q2∗q3)​2∗(q1∗q3−q0∗q2)2∗(q2∗q3+q0∗q1)q0∗q0−q1∗q1−q2∗q2+q3∗q3​⎦⎤​​
对应旋转矩阵DCMbnDCM_{bn}DCMbn​,如下:
DCMbn=[q0∗q0+q1∗q1−q2∗q2−q3∗q32∗(q1∗q2−q0∗q3)2∗(q1∗q3+q0∗q2)2∗(q1∗q2+q0∗q3)q0∗q0−q1∗q1+q2∗q2−q3∗q32∗(q2∗q3−q0∗q1)2∗(q1∗q3−q0∗q2)2∗(q0∗q1+q2∗q3)q0∗q0−q1∗q1−q2∗q2+q3∗q3]\begin{aligned} DCM_{bn}= \begin{bmatrix} &q0*q0+q1*q1-q2*q2-q3*q3 &2*(q1*q2-q0*q3) &2*(q1*q3+q0*q2)\\ &2*(q1*q2+q0*q3) &q0*q0-q1*q1+q2*q2-q3*q3 &2*(q2*q3-q0*q1)\\ &2*(q1*q3-q0*q2) &2*(q0*q1+q2*q3) &q0*q0-q1*q1-q2*q2+q3*q3\\ \end{bmatrix} \end{aligned} DCMbn​=⎣⎡​​q0∗q0+q1∗q1−q2∗q2−q3∗q32∗(q1∗q2+q0∗q3)2∗(q1∗q3−q0∗q2)​2∗(q1∗q2−q0∗q3)q0∗q0−q1∗q1+q2∗q2−q3∗q32∗(q0∗q1+q2∗q3)​2∗(q1∗q3+q0∗q2)2∗(q2∗q3−q0∗q1)q0∗q0−q1∗q1−q2∗q2+q3∗q3​⎦⎤​​

坐标系、欧拉角、旋转矩阵、四元数相关推荐

  1. 刚体运动中的坐标变换-旋转矩阵、旋转向量、欧拉角及四元数

    坐标变换及其方法 1.转化关系图 2 换算关系 3.1 旋转矩阵换算至其他 3.2 四元数换算至其他 3.3 旋转向量转换至旋转矩阵与四元数 3.3 欧拉角转换到旋转矩阵和四元数 3 坐标变换 4 坐 ...

  2. 旋转矩阵、欧拉角、四元数比较

    旋转矩阵.欧拉角.四元数主要用于:向量的旋转.坐标系之间的转换.角位移计算.方位的平滑插值计算. 不同的方位表示方法适用于不同的情况.下面是我们对合理选择格式的一些建议:  l 欧拉角最容易使用.当需 ...

  3. 旋转矩阵、欧拉角、四元数理论及其转换关系

    旋转矩阵.欧拉角.四元数理论及其转换关系 author@jason_ql(lql0716) http://blog.csdn.net/lql0716 1.概述 旋转矩阵.欧拉角.四元数主要用于表示坐标 ...

  4. 3D 中的方位与角位移(旋转矩阵、欧拉角、四元数)

    文章目录 一.3D 中的方位与角位移 1. 欧拉角 (Euler angles) 2. 四元数的相关知识 2.1 复数 2.2 欧拉旋转定理 2.3 三维空间旋转的拆分 3. 四元数 (Quatern ...

  5. 车辆姿态表达:旋转矩阵、欧拉角、四元数的转换以及eigen、matlab、pathon方法实现

    目录 1 概述 2 原理 2.1 旋转矩阵 2.1.1 绕x轴旋转 2.1.2 绕y轴旋转 2.1.3 绕z轴旋转 2.2 欧拉角 2.2.1 基本思想 2.2.2 欧拉角的缺点 2.3 四元数 2. ...

  6. 欧拉角、四元数和旋转矩阵

    旋转变换 旋转变换最为直观的表示方法是"轴-角":绕着某一个过原点轴,旋转某一角度. 轴可以用一个单位长度的点[w1,w2,w3][w_1,w_2,w_3][w1​,w2​,w3​ ...

  7. 方向向量转欧拉角_【姿态表示】旋转向量、旋转矩阵、欧拉角、四元数

    1. 旋转矩阵与旋转向量旋转矩阵(Rotation Matrix)用 9 个量描述旋转的3个自由度,有冗余: 9 个量是有约束的:必须是正交矩阵,且行列式为 1 旋转向量(Rotation Vecto ...

  8. ABB机器人欧拉角与四元数的相互转化以及旋转矩阵的求法

    做项目时用到ABB机器人,直接通过ABB内置的函数可以轻松实现四元数读数与欧拉角的相互转化.但实际项目需要从示教器读出相关位置并自行计算,尤其需要计算旋转矩阵. 本文以ABB IRB120机器人(不确 ...

  9. 深入浅出无人机姿态,欧拉角,四元数,指数表示及数据转换与程序实现

    很多朋友留言或私信问到书名和出版日期.先感谢这么多朋友的支持和信任,MR.城堡会努力为大家带来更多干货.另外,交稿日期是今年12月,出版要看机械工业出版社的安排,书名和出版情况确定后,会在专栏告知大家 ...

  10. 欧拉角和四元数之间是如何转换的?

     规定: 1.航空次序欧拉角: Z轴(航偏角,yaw,Ψ) Y轴(俯仰角,pitch,θ) X轴(滚转角,roll,Φ) 2.导航坐标系(N系)为O-ENU坐标系,即东北天坐标系.且机体坐标系初始 ...

最新文章

  1. 2021年春季学期-信号与系统-第八次作业参考答案-第四小题
  2. 对ESB概念的理解(转)
  3. SQL语句学习之路3
  4. 关联分析(二):关联模式的评估
  5. Unknown column 'XXX' in 'where clause'一例排查
  6. 四则运算栈c语言程序,四则运算   c语言编程
  7. xsi:schemaLocation有何作用
  8. 简单解决XP共享连接数10限制(转)
  9. vue 设置div圆角,只设置上面两个圆角,下面两个还是正方形
  10. Servlet/JSP学习笔记(3)-Lomboz介绍+安装方法
  11. 我为什么既支持又反对接口用Map来传输数据?
  12. 搭建系统|升级选股工具,多板块个股同时提取!个股行情走势存入数据库
  13. Linux下gmtime、gmtime_r、localtime、localtime_r函数详解
  14. 三门问题代码_三门专业专业课程旨在弥合企业对开放源代码的使用与理解之间的鸿沟
  15. Beautiful Soup4(bs4)在python中解析页面信息以及csv格式
  16. 2021重庆市实验中学高考成绩查询,重庆实验中学2021年录取分数线
  17. 浅谈Asterisk的呼叫转接功能
  18. GAZEBO INSTALLATION SCRIPT Problems The following packages have unmet dependencies: gazebo11
  19. 2021河北高考正定中学成绩查询,河北正定中学
  20. 奥的斯服务器显示spb,西子奥的斯控制板故障代码一览表

热门文章

  1. 在Ubuntu系统下运行c语言程序
  2. Unrecognized option: --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED 解决办法
  3. 奔驰采用鸿蒙系统,华为10分钟秒充190公里模块出口奥地利,奔驰使用鸿蒙系统!...
  4. uniapp聊天对话滚动到底部
  5. 盘点2016最值得突击的七大海外市场:最后一年窗口期,不出海就出局!
  6. 电脑技术 计算机专业技能分类,电脑操作员有几级分类?分别是什么内容,代表什么技能 ?...
  7. 分享1个模拟各种复杂的滑动或手势操作的方法,赶紧学起来~
  8. 华为和H3c--交换技术
  9. 华为H3C ACL配置
  10. 小米打印机显示服务器错误是怎么回事,小米打印机出现不再接受此打印加密是什么意思?...