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