6 * @brief Acttuators library
10 * actuators.h 09/02/25
12 * Robot's actuators control.
14 * Copyright: (c) 2008 CTU Dragons
15 * CTU FEE - Department of Control Engineering
16 * License: GNU GPL v.2
19 \defgroup actlib Actuators control library
21 Actuators library serves as a single control point for all the actuators
28 /* Chelas: original values */
29 //#define CHELA_CLOSED 0xFF
30 //#define CHELA_TIGHT 0xA0
31 //#define CHELA_OPEN 0x20
32 //#define CHELA_LOOSE 0x80
35 #define CHELA_CLOSED 0xFF
36 #define CHELA_TIGHT 0xD8
37 #define CHELA_OPEN 0x20
38 #define CHELA_LOOSE 0xA8
40 /* FIXME: (temporary, LPCs not ready) Timeout */
41 #define CHELA_TIMEOUT 0x07
44 #define BELTS_IN 0xA0 // 160
45 #define BELTS_OFF 0x64 // 100
46 #define BELTS_OUT 0x28 // 40
48 #define LIFT_SHIFT 0x1C
49 /* Positions of lift */
50 #define LIFT_GROUND_POS 0x001A
51 #define LIFT_TRAVEL_POS 0x0028
52 #define LIFT_BELOW_HOLDER_POS 0x00E0
53 #define LIFT_IN_HOLDER_POS 0x0118
54 #define LIFT_FLOOR1 0x00E0
55 #define LIFT_FLOOR2 0x01A0
56 #define LIFT_FLOOR3 0x0264
57 #define LIFT_FLOOR4 0x0322
58 #define LIFT_MAX 0x03C0
60 /* Holder positions */
61 #define HOLDER_CLOSED 0xFF
62 #define HOLDER_TIGHT 0xE0
63 #define HOLDER_LOOSE 0xDA
64 #define HOLDER_OPENED 0x10
67 #define PUSHER_INSIDE 0
68 #define PUSHER_LINTEL_BOUNDARY 0xC0
69 #define PUSHER_OUTSIDE PUSHER_LINTEL_BOUNDARY
71 /* Hokuyo pitch angle limits */
72 #define HOKUYO_PITCH_MAX 0xF8
73 #define HOKUYO_PITCH_HORIZONTAL 0xC0
74 #define HOKUYO_PITCH_MIN 0x00
76 /* Actuators status bits */
77 #define ACT_ST_LIFT_ERR 0x01 /* TODO */
83 void act_init(struct robottype_orte_data *ortedata);
85 void act_lift(unsigned short int position);
86 void act_chelae(unsigned char left, unsigned char right);
87 void act_belts(unsigned char left, unsigned char right);
88 void act_holder(unsigned char position);
89 void act_pusher(unsigned short int position);
90 void act_hokuyo(unsigned char angle);
96 #endif /* ACTUATORS_H */