@@ -276,6 +276,9 @@ def _parse_message(self) -> int:
276
276
elif code == ord ('q' ):
277
277
# imu position
278
278
_ , self .roll , self .pitch , self .yaw = self .packeter .unpacketC3F ()
279
+ if code == ord ('w' ):
280
+ # wheels position
281
+ _ , self .left_wheel ._position , self .right_wheel ._position = self .packeter .unpacketC2F ()
279
282
elif code == 0x7E :
280
283
# firmware version
281
284
_ , * self .version = self .packeter .unpacketC3B ()
@@ -390,14 +393,16 @@ def __init__(self, packeter: ucPack, label: int, wheel_diameter_mm: float = WHEE
390
393
self ._label = label
391
394
self ._wheel_diameter_mm = wheel_diameter_mm
392
395
self ._speed = None
396
+ self ._position = None
393
397
394
398
def reset (self , initial_position : float = 0.0 ):
395
399
"""
396
400
Resets the wheel reference position
397
401
:param initial_position:
398
402
:return:
399
403
"""
400
- pass
404
+ self ._packeter .packetC2B1F (ord ('W' ), self ._label & 0xFF , ord ('Z' ), initial_position )
405
+ uart .write (self ._packeter .msg [0 :self ._packeter .msg_size ])
401
406
402
407
def set_pid_gains (self , kp : float = MOTOR_KP_DEFAULT , ki : float = MOTOR_KI_DEFAULT , kd : float = MOTOR_KD_DEFAULT ):
403
408
"""
@@ -408,7 +413,7 @@ def set_pid_gains(self, kp: float = MOTOR_KP_DEFAULT, ki: float = MOTOR_KI_DEFAU
408
413
:return:
409
414
"""
410
415
411
- self ._packeter .packetC1B3F (ord ('P' ), self ._label , kp , ki , kd )
416
+ self ._packeter .packetC1B3F (ord ('P' ), self ._label & 0xFF , kp , ki , kd )
412
417
uart .write (self ._packeter .msg [0 :self ._packeter .msg_size ])
413
418
414
419
def stop (self ):
@@ -441,6 +446,13 @@ def get_speed(self) -> float:
441
446
"""
442
447
return self ._speed
443
448
449
+ def get_position (self ) -> float :
450
+ """
451
+ Returns the wheel position (angle with respect to the reference)
452
+ :return:
453
+ """
454
+ return self ._position
455
+
444
456
def set_position (self , position : float , unit : str = 'deg' ):
445
457
"""
446
458
Sets left/right motor speed
0 commit comments