Skip to content

Commit db5e9f2

Browse files
committed
feat: get_drive_speed
1 parent e1508be commit db5e9f2

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

arduino_alvik.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ def __init__(self):
4949
self.right_tof = None
5050
self.top_tof = None
5151
self.bottom_tof = None
52+
self.linear_velocity = None
53+
self.angular_velocity = None
5254
self.version = [None, None, None]
5355

5456
def begin(self) -> int:
@@ -174,6 +176,13 @@ def drive(self, linear_velocity: float, angular_velocity: float):
174176
self.packeter.packetC2F(ord('V'), linear_velocity, angular_velocity)
175177
uart.write(self.packeter.msg[0:self.packeter.msg_size])
176178

179+
def get_drive_speed(self) -> (float, float):
180+
"""
181+
Returns linear and angular velocity of the robot
182+
:return: linear_velocity, angular_velocity
183+
"""
184+
return self.linear_velocity, self.angular_velocity
185+
177186
def set_servo_positions(self, a_position: int, b_position: int):
178187
"""
179188
Sets A/B servomotor angle
@@ -286,9 +295,12 @@ def _parse_message(self) -> int:
286295
elif code == ord('q'):
287296
# imu position
288297
_, self.roll, self.pitch, self.yaw = self.packeter.unpacketC3F()
289-
if code == ord('w'):
298+
elif code == ord('w'):
290299
# wheels position
291300
_, self.left_wheel._position, self.right_wheel._position = self.packeter.unpacketC2F()
301+
elif code == ord('v'):
302+
# robot velocity
303+
_, self.linear_velocity, self.angular_velocity = self.packeter.unpacketC2F()
292304
elif code == 0x7E:
293305
# firmware version
294306
_, *self.version = self.packeter.unpacketC3B()

0 commit comments

Comments
 (0)