From 872073352bc6699b659610d10d4c938f6cccaf9f Mon Sep 17 00:00:00 2001 From: Piv <18462828+Piv200@users.noreply.github.com> Date: Thu, 19 Mar 2020 23:35:23 +1030 Subject: [PATCH] Rework slam streamer for easier testing --- slam/slam_streamer.py | 6 +++--- tracking/devices/factory.py | 10 ++++++++++ tracking/{ => devices}/mock_lidar.py | 0 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 tracking/devices/factory.py rename tracking/{ => devices}/mock_lidar.py (100%) diff --git a/slam/slam_streamer.py b/slam/slam_streamer.py index b4ef3f4..3e598a0 100644 --- a/slam/slam_streamer.py +++ b/slam/slam_streamer.py @@ -1,10 +1,10 @@ import zmq from breezyslam.algorithms import RMHC_SLAM from breezyslam.sensors import RPLidarA1 as LaserModel -from rplidar import RPLidar as Lidar from slam.SlamController_pb2 import SlamScan, SlamLocation import messaging.message_factory as mf import messaging.messages as messages +import tracking.devices.factory as lidar_fact # Left here as was used in the example, configure as necessary. @@ -40,8 +40,8 @@ class SlamStreamer: # Adapted from BreezySLAM rpslam example. # Connect to Lidar unit. For some reason it likes to be done twice, otherwise it errors out... - lidar = Lidar(self._lidar_connection) - lidar = Lidar(self._lidar_connection) + lidar = lidar_fact.get_lidar(self._lidar_connection) + lidar = lidar_fact.get_lidar(self._lidar_connection) print('Initialised lidar') diff --git a/tracking/devices/factory.py b/tracking/devices/factory.py new file mode 100644 index 0000000..af80f17 --- /dev/null +++ b/tracking/devices/factory.py @@ -0,0 +1,10 @@ +from tracking.devices.mock_lidar import MockLidar +from rplidar import RPLidar +import tracking.lidar_loader as loader + + +def get_lidar(connection: str): + if connection == 'TEST': + return MockLidar(loader.load_scans_bytes_file("tracking/out.pickle")) + else: + return RPLidar(connection) diff --git a/tracking/mock_lidar.py b/tracking/devices/mock_lidar.py similarity index 100% rename from tracking/mock_lidar.py rename to tracking/devices/mock_lidar.py