Go to the documentation of this file.00001 #include "comm_util_LL.h"
00002
00003 inline float degreesToRadians(float angle)
00004 {
00005 return angle * M_PI / 180.0;
00006 }
00007
00008 inline float radiansToDegrees(float angle)
00009 {
00010 return angle * 180.0 / M_PI;
00011 }
00012
00013 inline float LLToSIClimb(int16_t climb)
00014 {
00015 return ((float)(climb)) / 1000.0;
00016 }
00017
00018
00019
00020 float LLToSIAccX(int16_t acc, float g)
00021 {
00022 return ( - (float)(acc) ) / g * GRAVITY_SI ;
00023 }
00024
00025 float LLToSIAccY(int16_t acc, float g)
00026 {
00027 return ( - (float)(acc) ) / g * GRAVITY_SI ;
00028 }
00029
00030 float LLToSIAccZ(int16_t acc, float g)
00031 {
00032 return ( - (float)(acc) ) / g * GRAVITY_SI ;
00033 }
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 float LLToSIAngleRoll(int16_t angle)
00054 {
00055 float ta = degreesToRadians(((float)(-angle)) / 100.0);
00056
00057 return ta;
00058 }
00059
00060 float LLToSIAnglePitch(int16_t angle)
00061 {
00062 float ta = degreesToRadians(((float)(angle)) / 100.0);
00063
00064 return ta;
00065 }
00066
00067 float LLToSIAngleYaw(uint16_t angle)
00068 {
00069 float ta = degreesToRadians(((float)(36000-angle)) / 100.0);
00070
00071 return ta;
00072 }
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 float LLToSIAngleRateYaw(int16_t angle_rate)
00092 {
00093 return degreesToRadians( (float)(-angle_rate) * 0.015 );
00094 }
00095
00096 float LLToSIAngleRateRoll(int16_t angle_rate)
00097 {
00098 return degreesToRadians( (float)(-angle_rate) * 0.015 );
00099 }
00100
00101 float LLToSIAngleRatePitch(int16_t angle_rate)
00102 {
00103 return degreesToRadians( (float)(angle_rate) * 0.015 );
00104 }
00105
00106
00107
00108
00109
00110
00111
00112
00113 short SIToLLCmdRoll (float angle_cmd)
00114 {
00115 return -((short)(angle_cmd * 2293.578 ));
00116 }
00117
00118 short SIToLLCmdPitch (float angle_cmd)
00119 {
00120 return ((short)(angle_cmd * 2293.578 ));
00121 }
00122
00123 short SIToLLCmdYawRate (float yaw_rate_cmd)
00124 {
00125 return ((short)(yaw_rate_cmd * 460.37235));
00126 }
00127
00128 short SIToLLCmdThrust (float thrust_cmd)
00129 {
00130 return (short)(thrust_cmd * 40.95 );
00131 }
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153