36 __author__ =
'Cody Jorgensen, Antons Rebguns' 37 __copyright__ =
'Copyright (c) 2010-2011 Cody Jorgensen, Antons Rebguns' 40 __maintainer__ =
'Antons Rebguns' 41 __email__ =
'anton@email.arizona.edu' 48 DXL_MODEL_NUMBER_L = 0
49 DXL_MODEL_NUMBER_H = 1
53 DXL_RETURN_DELAY_TIME = 5
54 DXL_CW_ANGLE_LIMIT_L = 6
55 DXL_CW_ANGLE_LIMIT_H = 7
56 DXL_CCW_ANGLE_LIMIT_L = 8
57 DXL_CCW_ANGLE_LIMIT_H = 9
59 DXL_LIMIT_TEMPERATURE = 11
60 DXL_DOWN_LIMIT_VOLTAGE = 12
61 DXL_UP_LIMIT_VOLTAGE = 13
66 DXL_ALARM_SHUTDOWN = 18
67 DXL_OPERATING_MODE = 19
68 DXL_DOWN_CALIBRATION_L = 20
69 DXL_DOWN_CALIBRATION_H = 21
70 DXL_UP_CALIBRATION_L = 22
71 DXL_UP_CALIBRATION_H = 23
72 DXL_TORQUE_ENABLE = 24
74 DXL_CW_COMPLIANCE_MARGIN = 26
75 DXL_CCW_COMPLIANCE_MARGIN = 27
76 DXL_CW_COMPLIANCE_SLOPE = 28
77 DXL_CCW_COMPLIANCE_SLOPE = 29
81 DXL_GOAL_POSITION_L = 30
82 DXL_GOAL_POSITION_H = 31
85 DXL_TORQUE_LIMIT_L = 34
86 DXL_TORQUE_LIMIT_H = 35
87 DXL_PRESENT_POSITION_L = 36
88 DXL_PRESENT_POSITION_H = 37
89 DXL_PRESENT_SPEED_L = 38
90 DXL_PRESENT_SPEED_H = 39
91 DXL_PRESENT_LOAD_L = 40
92 DXL_PRESENT_LOAD_H = 41
93 DXL_PRESENT_VOLTAGE = 42
94 DXL_PRESENT_TEMPERATURE = 43
95 DXL_REGISTERED_INSTRUCTION = 44
101 DXL_SENSED_CURRENT_L = 56
102 DXL_SENSED_CURRENT_H = 57
105 DXL_TORQUE_CONTROL_MODE = 70
106 DXL_GOAL_TORQUE_L = 71
107 DXL_GOAL_TORQUE_H = 72
108 DXL_GOAL_ACCELERATION = 73
128 DXL_INSTRUCTION_ERROR = 64
129 DXL_OVERLOAD_ERROR = 32
130 DXL_CHECKSUM_ERROR = 16
132 DXL_OVERHEATING_ERROR = 4
133 DXL_ANGLE_LIMIT_ERROR = 2
134 DXL_INPUT_VOLTAGE_ERROR = 1
138 DXL_MIN_COMPLIANCE_MARGIN = 0
139 DXL_MAX_COMPLIANCE_MARGIN = 255
141 DXL_MIN_COMPLIANCE_SLOPE = 1
142 DXL_MAX_COMPLIANCE_SLOPE = 254
148 DXL_MAX_SPEED_TICK = 1023
149 DXL_MAX_TORQUE_TICK = 1023
151 KGCM_TO_NM = 0.0980665
152 RPM_TO_RADSEC = 0.104719755
156 DXL_MODEL_TO_PARAMS = \
158 113: {
'name':
'DX-113',
159 'encoder_resolution': 1024,
160 'range_degrees': 300.0,
161 'torque_per_volt': 1.0 / 12.0,
162 'velocity_per_volt': (54 * RPM_TO_RADSEC) / 12.0,
163 'rpm_per_tick': 0.111,
166 116: {
'name':
'DX-116',
167 'encoder_resolution': 1024,
168 'range_degrees': 300.0,
169 'torque_per_volt': 2.1 / 12.0,
170 'velocity_per_volt': (78 * RPM_TO_RADSEC) / 12.0,
171 'rpm_per_tick': 0.111,
174 117: {
'name':
'DX-117',
175 'encoder_resolution': 1024,
176 'range_degrees': 300.0,
177 'torque_per_volt': 3.7 / 18.5,
178 'velocity_per_volt': (85 * RPM_TO_RADSEC) / 18.5,
179 'rpm_per_tick': 0.111,
182 12: {
'name':
'AX-12',
183 'encoder_resolution': 1024,
184 'range_degrees': 300.0,
185 'torque_per_volt': 1.5 / 12.0,
186 'velocity_per_volt': (59 * RPM_TO_RADSEC) / 12.0,
187 'rpm_per_tick': 0.111,
190 300: {
'name':
'AX-12W',
191 'encoder_resolution': 1024,
192 'range_degrees': 300.0,
193 'torque_per_volt': 0.2 / 12.0,
194 'velocity_per_volt': (470 * RPM_TO_RADSEC) / 12.0,
195 'rpm_per_tick': 0.111,
198 18: {
'name':
'AX-18',
199 'encoder_resolution': 1024,
200 'range_degrees': 300.0,
201 'torque_per_volt': 1.8 / 12.0,
202 'velocity_per_volt': (97 * RPM_TO_RADSEC) / 12.0,
203 'rpm_per_tick': 0.111,
206 10: {
'name':
'RX-10',
207 'encoder_resolution': 1024,
208 'range_degrees': 300.0,
209 'torque_per_volt': 1.3 / 12.0,
210 'velocity_per_volt': (54 * RPM_TO_RADSEC) / 12.0,
211 'rpm_per_tick': 0.111,
214 24: {
'name':
'RX-24',
215 'encoder_resolution': 1024,
216 'range_degrees': 300.0,
217 'torque_per_volt': 2.6 / 12.0,
218 'velocity_per_volt': (126 * RPM_TO_RADSEC) / 12.0,
219 'rpm_per_tick': 0.111,
222 28: {
'name':
'RX-28',
223 'encoder_resolution': 1024,
224 'range_degrees': 300.0,
225 'torque_per_volt': 3.7 / 18.5,
226 'velocity_per_volt': (85 * RPM_TO_RADSEC) / 18.5,
227 'rpm_per_tick': 0.111,
230 64: {
'name':
'RX-64',
231 'encoder_resolution': 1024,
232 'range_degrees': 300.0,
233 'torque_per_volt': 5.3 / 18.5,
234 'velocity_per_volt': (64 * RPM_TO_RADSEC) / 18.5,
235 'rpm_per_tick': 0.111,
238 106: {
'name':
'EX-106',
239 'encoder_resolution': 4096,
240 'range_degrees': 250.92,
241 'torque_per_volt': 10.9 / 18.5,
242 'velocity_per_volt': (91 * RPM_TO_RADSEC) / 18.5,
243 'rpm_per_tick': 0.111,
244 'features': [DXL_SENSED_CURRENT_L]
246 107: {
'name':
'EX-106+',
247 'encoder_resolution': 4096,
248 'range_degrees': 250.92,
249 'torque_per_volt': 10.9 / 18.5,
250 'velocity_per_volt': (91 * RPM_TO_RADSEC) / 18.5,
251 'rpm_per_tick': 0.111,
252 'features': [DXL_SENSED_CURRENT_L]
254 360: {
'name':
'MX-12W',
255 'encoder_resolution': 4096,
256 'range_degrees': 360.0,
257 'torque_per_volt': 0.2 / 12.0,
258 'velocity_per_volt': (470 * RPM_TO_RADSEC) / 12.0,
259 'rpm_per_tick': 0.114,
260 'features': [DXL_GOAL_ACCELERATION]
262 29: {
'name':
'MX-28',
263 'encoder_resolution': 4096,
264 'range_degrees': 360.0,
265 'torque_per_volt': 2.5 / 12.0,
266 'velocity_per_volt': (55 * RPM_TO_RADSEC) / 12.0,
267 'rpm_per_tick': 0.114,
268 'features': [DXL_GOAL_ACCELERATION]
270 310: {
'name':
'MX-64',
271 'encoder_resolution': 4096,
272 'range_degrees': 360.0,
273 'torque_per_volt': 6.0 / 12.0,
274 'velocity_per_volt': (63 * RPM_TO_RADSEC) / 12.0,
275 'rpm_per_tick': 0.114,
276 'features': [DXL_CURRENT_L, DXL_TORQUE_CONTROL_MODE, DXL_GOAL_ACCELERATION]
278 320: {
'name':
'MX-106',
279 'encoder_resolution': 4096,
280 'range_degrees': 360.0,
281 'torque_per_volt': 8.4 / 12.0,
282 'velocity_per_volt': (45 * RPM_TO_RADSEC) / 12.0,
283 'rpm_per_tick': 0.114,
284 'features': [DXL_CURRENT_L, DXL_TORQUE_CONTROL_MODE, DXL_GOAL_ACCELERATION]