00001 #ifndef _B21R_CONST_H
00002 #define _B21R_CONST_H
00003 
00004 
00005 
00006 typedef struct RFLEX_CONFIG {
00007         double x;
00008         double y;
00009         double theta;
00010 } RFLEX_CONFIG;
00011 
00012 typedef struct RFLEX_SONARS_CONFIG {
00013         RFLEX_CONFIG tab[48];
00014 } RFLEX_SONARS_CONFIG;
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023  
00024 
00025 
00026 
00027 
00028  
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037  
00038 
00039 
00040 
00041  
00042 
00043 
00044 
00045  
00046 
00047 
00048 
00049 
00050 
00051 
00052 
00053 #define RA_UP_TH    0.2525
00054 #define RA_UP    (0.66/2)
00055 
00056 #define RA_DOWN_TH 0.2625
00057 #define RA_DOWN (0.66/2)
00058 
00059 #define THETA_US_UP (0.065/RA_UP_TH)
00060 #define THETA_UP_2 (THETA_US_UP/2)
00061 
00062 
00063 
00064 #define THETA_US_DOWN THETA_US_UP 
00065 #define THETA_DOWN_2 (THETA_US_DOWN/2)
00066 
00067 
00068 #define X_SONAR_UP(ang) RA_UP*cos(ang)
00069 #define Y_SONAR_UP(ang) RA_UP*sin(ang)
00070 #define X_SONAR_DOWN(ang) RA_DOWN*cos(ang)
00071 #define Y_SONAR_DOWN(ang) RA_DOWN*sin(ang)
00072 
00073 
00074 #define RFLEX_SONARS_UP_CONFIG_CONST \
00075 {X_SONAR_UP(+23*THETA_UP_2), Y_SONAR_UP(+23*THETA_UP_2),  +23*THETA_UP_2}, \
00076 {X_SONAR_UP(+21*THETA_UP_2), Y_SONAR_UP(+21*THETA_UP_2),  +21*THETA_UP_2}, \
00077 {X_SONAR_UP(+19*THETA_UP_2), Y_SONAR_UP(+19*THETA_UP_2),  +19*THETA_UP_2}, \
00078 {X_SONAR_UP(+17*THETA_UP_2), Y_SONAR_UP(+17*THETA_UP_2),  +17*THETA_UP_2},\
00079 {X_SONAR_UP(+15*THETA_UP_2), Y_SONAR_UP(+15*THETA_UP_2),  +15*THETA_UP_2}, \
00080 {X_SONAR_UP(+13*THETA_UP_2), Y_SONAR_UP(+13*THETA_UP_2),  +13*THETA_UP_2}, \
00081 {X_SONAR_UP(+11*THETA_UP_2), Y_SONAR_UP(+11*THETA_UP_2),  +11*THETA_UP_2}, \
00082 {X_SONAR_UP(+9*THETA_UP_2), Y_SONAR_UP(+9*THETA_UP_2),  +9*THETA_UP_2}, \
00083 {X_SONAR_UP(+7*THETA_UP_2), Y_SONAR_UP(+7*THETA_UP_2),  +7*THETA_UP_2}, \
00084 {X_SONAR_UP(+5*THETA_UP_2), Y_SONAR_UP(+5*THETA_UP_2),  +5*THETA_UP_2}, \
00085 {X_SONAR_UP(+3*THETA_UP_2), Y_SONAR_UP(+3*THETA_UP_2),  +3*THETA_UP_2}, \
00086 {X_SONAR_UP(+THETA_UP_2)  , Y_SONAR_UP(+THETA_UP_2),    +THETA_UP_2},   \
00087 {X_SONAR_UP(-THETA_UP_2)  , Y_SONAR_UP(-THETA_UP_2),    -THETA_UP_2},   \
00088 {X_SONAR_UP(-3*THETA_UP_2), Y_SONAR_UP(-3*THETA_UP_2),  -3*THETA_UP_2}, \
00089 {X_SONAR_UP(-5*THETA_UP_2), Y_SONAR_UP(-5*THETA_UP_2),  -5*THETA_UP_2}, \
00090 {X_SONAR_UP(-7*THETA_UP_2), Y_SONAR_UP(-7*THETA_UP_2),  -7*THETA_UP_2}, \
00091 {X_SONAR_UP(-9*THETA_UP_2), Y_SONAR_UP(-9*THETA_UP_2),  -9*THETA_UP_2}, \
00092 {X_SONAR_UP(-11*THETA_UP_2), Y_SONAR_UP(-11*THETA_UP_2),  -11*THETA_UP_2}, \
00093 {X_SONAR_UP(-13*THETA_UP_2), Y_SONAR_UP(-13*THETA_UP_2),  -13*THETA_UP_2}, \
00094 {X_SONAR_UP(-15*THETA_UP_2), Y_SONAR_UP(-15*THETA_UP_2),  -15*THETA_UP_2}, \
00095 {X_SONAR_UP(-17*THETA_UP_2), Y_SONAR_UP(-17*THETA_UP_2),  -17*THETA_UP_2}, \
00096 {X_SONAR_UP(-19*THETA_UP_2), Y_SONAR_UP(-19*THETA_UP_2),  -19*THETA_UP_2}, \
00097 {X_SONAR_UP(-21*THETA_UP_2), Y_SONAR_UP(-21*THETA_UP_2),  -21*THETA_UP_2}, \
00098 {X_SONAR_UP(-23*THETA_UP_2), Y_SONAR_UP(-23*THETA_UP_2),  -23*THETA_UP_2} 
00099 
00100 #define RFLEX_SONARS_DOWN_CONFIG_CONST \
00101 {X_SONAR_DOWN(-THETA_DOWN_2)  , Y_SONAR_DOWN(-THETA_DOWN_2),    -THETA_DOWN_2},   \
00102 {X_SONAR_DOWN(-3*THETA_DOWN_2), Y_SONAR_DOWN(-3*THETA_DOWN_2),  -3*THETA_DOWN_2}, \
00103 {X_SONAR_DOWN(-5*THETA_DOWN_2), Y_SONAR_DOWN(-5*THETA_DOWN_2),  -5*THETA_DOWN_2}, \
00104 {X_SONAR_DOWN(-7*THETA_DOWN_2), Y_SONAR_DOWN(-7*THETA_DOWN_2),  -7*THETA_DOWN_2}, \
00105 {X_SONAR_DOWN(-9*THETA_DOWN_2), Y_SONAR_DOWN(-9*THETA_DOWN_2),  -9*THETA_DOWN_2}, \
00106 {X_SONAR_DOWN(-11*THETA_DOWN_2), Y_SONAR_DOWN(-11*THETA_DOWN_2),  -11*THETA_DOWN_2}, \
00107 {X_SONAR_DOWN(-13*THETA_DOWN_2), Y_SONAR_DOWN(-13*THETA_DOWN_2),  -13*THETA_DOWN_2}, \
00108 {X_SONAR_DOWN(-15*THETA_DOWN_2), Y_SONAR_DOWN(-15*THETA_DOWN_2),  -15*THETA_DOWN_2}, \
00109 {X_SONAR_DOWN(-17*THETA_DOWN_2), Y_SONAR_DOWN(-17*THETA_DOWN_2),  -17*THETA_DOWN_2}, \
00110 {X_SONAR_DOWN(-19*THETA_DOWN_2), Y_SONAR_DOWN(-19*THETA_DOWN_2),  -19*THETA_DOWN_2}, \
00111 {X_SONAR_DOWN(-21*THETA_DOWN_2), Y_SONAR_DOWN(-21*THETA_DOWN_2),  -21*THETA_DOWN_2}, \
00112 {X_SONAR_DOWN(-23*THETA_DOWN_2), Y_SONAR_DOWN(-23*THETA_DOWN_2),  -23*THETA_DOWN_2}, \
00113 {X_SONAR_DOWN(+23*THETA_DOWN_2), Y_SONAR_DOWN(+23*THETA_DOWN_2),  +23*THETA_DOWN_2}, \
00114 {X_SONAR_DOWN(+21*THETA_DOWN_2), Y_SONAR_DOWN(+21*THETA_DOWN_2),  +21*THETA_DOWN_2}, \
00115 {X_SONAR_DOWN(+19*THETA_DOWN_2), Y_SONAR_DOWN(+19*THETA_DOWN_2),  +19*THETA_DOWN_2}, \
00116 {X_SONAR_DOWN(+17*THETA_DOWN_2), Y_SONAR_DOWN(+17*THETA_DOWN_2),  +17*THETA_DOWN_2}, \
00117 {X_SONAR_DOWN(+15*THETA_DOWN_2), Y_SONAR_DOWN(+15*THETA_DOWN_2),  +15*THETA_DOWN_2}, \
00118 {X_SONAR_DOWN(+13*THETA_DOWN_2), Y_SONAR_DOWN(+13*THETA_DOWN_2),  +13*THETA_DOWN_2}, \
00119 {X_SONAR_DOWN(+11*THETA_DOWN_2), Y_SONAR_DOWN(+11*THETA_DOWN_2),  +11*THETA_DOWN_2}, \
00120 {X_SONAR_DOWN(+9*THETA_DOWN_2), Y_SONAR_DOWN(+9*THETA_DOWN_2),  +9*THETA_DOWN_2}, \
00121 {X_SONAR_DOWN(+7*THETA_DOWN_2), Y_SONAR_DOWN(+7*THETA_DOWN_2),  +7*THETA_DOWN_2}, \
00122 {X_SONAR_DOWN(+5*THETA_DOWN_2), Y_SONAR_DOWN(+5*THETA_DOWN_2),  +5*THETA_DOWN_2}, \
00123 {X_SONAR_DOWN(+3*THETA_DOWN_2), Y_SONAR_DOWN(+3*THETA_DOWN_2),  +3*THETA_DOWN_2}, \
00124 {X_SONAR_DOWN(+THETA_DOWN_2)  , Y_SONAR_DOWN(+THETA_DOWN_2),    +THETA_DOWN_2}  
00125 
00126 #define RFLEX_SONARS_CONFIG_CONST { \
00127  RFLEX_SONARS_UP_CONFIG_CONST, \
00128  RFLEX_SONARS_DOWN_CONFIG_CONST \
00129 }
00130 
00131 
00132 #endif