]> rtime.felk.cvut.cz Git - eurobot/public.git/blobdiff - src/hokuyo/hokuyo.h
hokuyo: Fix bug in hokuyo transformation
[eurobot/public.git] / src / hokuyo / hokuyo.h
index 088c6aa05075759301c4510c99db000ec2675cf0..962d63766eba083f7aff4b78e7af2c198c74065a 100644 (file)
@@ -1,17 +1,19 @@
 #ifndef HOKUYO_H
 #define HOKUYO_H
 
-#include <orte.h>
+#include <math.h>
+#include <robottype.h>
 
-#define HOKUYO_BEAMS_IN_CLUSTER 40
-#define HOKUYO_CLUSTER_CNT 17
+#define HOKUYO_ARRAY_SIZE (sizeof(((struct hokuyo_scan_type*)0)->data) / sizeof(((struct hokuyo_scan_type*)0)->data[0]))
 
-#define HOKUYO_CLUSTER_TO_DEG(x) (-113.0+(x*HOKUYO_BEAMS_IN_CLUSTER*(360.0/1024.0)))
-#define HOKUYO_CLUSTER_TO_RAD(x) (M_PI/180 * (113.0)-(x*HOKUYO_BEAMS_IN_CLUSTER*((2*M_PI)/1024.0)))
+#define HOKUYO_SPLIT_DIVISION 1024
+#define HOKUYO_INITIAL_MEASUREMENT 44
+#define HOKUYO_FINAL_MEASUREMENT 725
+#define HOKUYO_START_ANGLE (239.77/2)
 
-#define HOKUYO_DEVICE "/dev/ttyPSC2"   // /dev/ttyACM0
+#define HOKUYO_INDEX_TO_DEG(x) ((HOKUYO_START_ANGLE-(x)*360.0/HOKUYO_SPLIT_DIVISION) * HOKUYO_ORIENTATION)
+#define HOKUYO_INDEX_TO_RAD(x) (HOKUYO_INDEX_TO_DEG(x)/180.0*M_PI)
 
-int hokuyo_get_scan();
-void scan_publisher_callback(const ORTESendInfo *info, void *vinstance, void *arg);
+#define HOKUYO_DEG_TO_INDEX(d) ((HOKUYO_START_ANGLE-(d)/HOKUYO_ORIENTATION)/(360.0/HOKUYO_SPLIT_DIVISION))
 
 #endif //HOKUYO_H