From 6fcdeae7316212335a84e1f7f30f1372195f9de6 Mon Sep 17 00:00:00 2001 From: Elena Ai Date: Sat, 14 Mar 2026 09:25:02 +0100 Subject: [PATCH 01/10] refactor: move Eduro platform from drivers to platforms and update configs --- config/eduro-followme-dual-uwb.json | 2 +- config/eduro-followme-uwb.json | 2 +- config/eduro-followme-vanjee.json | 2 +- config/eduro-followme.json | 2 +- config/eduro-followpath.json | 2 +- config/eduro-go-vanjee.json | 2 +- config/eduro-go.json | 2 +- config/eduro-ro2019-lord.json | 2 +- config/eduro-ro2019.json | 2 +- config/eduro-subt-estop-lora-wifi-jetson.json | 2 +- config/eduro-subt-estop-lora-wifi.json | 2 +- config/eduro-subt-estop-lora.json | 2 +- config/eduro-subt-estop.json | 2 +- config/eduro-subt.json | 2 +- config/eduro-two-lidars.json | 2 +- config/eduro.json | 2 +- osgar/drivers/__init__.py | 1 - osgar/{drivers => platforms}/eduro.py | 0 osgar/{drivers => platforms}/test_eduro.py | 2 +- 19 files changed, 17 insertions(+), 18 deletions(-) rename osgar/{drivers => platforms}/eduro.py (100%) rename osgar/{drivers => platforms}/test_eduro.py (97%) diff --git a/config/eduro-followme-dual-uwb.json b/config/eduro-followme-dual-uwb.json index 21c0b1814..a390c6385 100644 --- a/config/eduro-followme-dual-uwb.json +++ b/config/eduro-followme-dual-uwb.json @@ -14,7 +14,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons"], "init": {} diff --git a/config/eduro-followme-uwb.json b/config/eduro-followme-uwb.json index e45fa5475..43d80f75a 100644 --- a/config/eduro-followme-uwb.json +++ b/config/eduro-followme-uwb.json @@ -12,7 +12,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons"], "init": {} diff --git a/config/eduro-followme-vanjee.json b/config/eduro-followme-vanjee.json index 9d33054e7..8461f7eae 100644 --- a/config/eduro-followme-vanjee.json +++ b/config/eduro-followme-vanjee.json @@ -14,7 +14,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons"], "init": {} diff --git a/config/eduro-followme.json b/config/eduro-followme.json index 562c6f7b0..d06b20f7d 100644 --- a/config/eduro-followme.json +++ b/config/eduro-followme.json @@ -12,7 +12,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons"], "init": {} diff --git a/config/eduro-followpath.json b/config/eduro-followpath.json index 76b6cb387..a01cfe3af 100644 --- a/config/eduro-followpath.json +++ b/config/eduro-followpath.json @@ -13,7 +13,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons"], "init": {} diff --git a/config/eduro-go-vanjee.json b/config/eduro-go-vanjee.json index ad0f5df1f..70eadf153 100644 --- a/config/eduro-go-vanjee.json +++ b/config/eduro-go-vanjee.json @@ -13,7 +13,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons"], "init": {} diff --git a/config/eduro-go.json b/config/eduro-go.json index db2f4819e..b7683d223 100644 --- a/config/eduro-go.json +++ b/config/eduro-go.json @@ -13,7 +13,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons"], "init": {} diff --git a/config/eduro-ro2019-lord.json b/config/eduro-ro2019-lord.json index ff646c9bd..8187d1311 100644 --- a/config/eduro-ro2019-lord.json +++ b/config/eduro-ro2019-lord.json @@ -11,7 +11,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons", "voltage"], "init": {} diff --git a/config/eduro-ro2019.json b/config/eduro-ro2019.json index c6dec0d3d..2bc351021 100644 --- a/config/eduro-ro2019.json +++ b/config/eduro-ro2019.json @@ -11,7 +11,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons", "voltage"], "init": {} diff --git a/config/eduro-subt-estop-lora-wifi-jetson.json b/config/eduro-subt-estop-lora-wifi-jetson.json index 73a0f4b26..6633cc229 100644 --- a/config/eduro-subt-estop-lora-wifi-jetson.json +++ b/config/eduro-subt-estop-lora-wifi-jetson.json @@ -30,7 +30,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons", "voltage"], "init": {} diff --git a/config/eduro-subt-estop-lora-wifi.json b/config/eduro-subt-estop-lora-wifi.json index 4d0f10cb7..f3d523c26 100644 --- a/config/eduro-subt-estop-lora-wifi.json +++ b/config/eduro-subt-estop-lora-wifi.json @@ -30,7 +30,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons", "voltage"], "init": {} diff --git a/config/eduro-subt-estop-lora.json b/config/eduro-subt-estop-lora.json index 871fa6f40..d825c9e90 100644 --- a/config/eduro-subt-estop-lora.json +++ b/config/eduro-subt-estop-lora.json @@ -30,7 +30,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons", "voltage"], "init": {} diff --git a/config/eduro-subt-estop.json b/config/eduro-subt-estop.json index ed36fd264..5b442ddd8 100644 --- a/config/eduro-subt-estop.json +++ b/config/eduro-subt-estop.json @@ -30,7 +30,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons", "voltage"], "init": {} diff --git a/config/eduro-subt.json b/config/eduro-subt.json index 1f592b115..ebf510c7b 100644 --- a/config/eduro-subt.json +++ b/config/eduro-subt.json @@ -30,7 +30,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons", "voltage"], "init": {} diff --git a/config/eduro-two-lidars.json b/config/eduro-two-lidars.json index 6ecd7bcac..9b0b8512b 100644 --- a/config/eduro-two-lidars.json +++ b/config/eduro-two-lidars.json @@ -11,7 +11,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons"], "init": {} diff --git a/config/eduro.json b/config/eduro.json index fa9b56c72..46dfaa3f7 100644 --- a/config/eduro.json +++ b/config/eduro.json @@ -12,7 +12,7 @@ } }, "eduro": { - "driver": "eduro", + "driver": "osgar.platforms.eduro:Eduro", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "buttons"], "init": {} diff --git a/osgar/drivers/__init__.py b/osgar/drivers/__init__.py index 14fdc159c..4ebd53b44 100644 --- a/osgar/drivers/__init__.py +++ b/osgar/drivers/__init__.py @@ -12,7 +12,6 @@ udp="osgar.drivers.logsocket:LogUDP", http="osgar.drivers.logsocket:LogHTTP", lidar="osgar.drivers.sicklidar:SICKLidar", - eduro="osgar.drivers.eduro:Eduro", cortexpilot="osgar.drivers.cortexpilot:Cortexpilot", usb="osgar.drivers.logusb:LogUSB", replay="osgar.drivers.replay:ReplayDriver", diff --git a/osgar/drivers/eduro.py b/osgar/platforms/eduro.py similarity index 100% rename from osgar/drivers/eduro.py rename to osgar/platforms/eduro.py diff --git a/osgar/drivers/test_eduro.py b/osgar/platforms/test_eduro.py similarity index 97% rename from osgar/drivers/test_eduro.py rename to osgar/platforms/test_eduro.py index 1250d6c96..8d1924d93 100644 --- a/osgar/drivers/test_eduro.py +++ b/osgar/platforms/test_eduro.py @@ -2,7 +2,7 @@ from unittest.mock import MagicMock from datetime import timedelta -from osgar.drivers.eduro import Eduro, sint32_diff, CAN_triplet +from osgar.platforms.eduro import Eduro, sint32_diff, CAN_triplet from osgar.bus import Bus From 74816d2ffe546601a9faf09dd5ae7bf5029623bc Mon Sep 17 00:00:00 2001 From: Elena Ai Date: Sat, 14 Mar 2026 09:29:22 +0100 Subject: [PATCH 02/10] refactor: move Kloubak platform from drivers to platforms and update configs --- config/kloubak-slot.json | 2 +- config/kloubak2-subt-estop-lora-jetson.json | 2 +- config/kloubak2-subt-estop-lora.json | 2 +- config/kloubak3-no-sensors.json | 2 +- config/kloubak3-subt-estop-lora-jetson.json | 2 +- config/kloubak3-subt-estop-lora.json | 2 +- config/pcan-kloubak.json | 2 +- osgar/drivers/__init__.py | 1 - osgar/{drivers => platforms}/kloubak.py | 0 osgar/{drivers => platforms}/test_kloubak.py | 2 +- 10 files changed, 8 insertions(+), 9 deletions(-) rename osgar/{drivers => platforms}/kloubak.py (100%) rename osgar/{drivers => platforms}/test_kloubak.py (98%) diff --git a/config/kloubak-slot.json b/config/kloubak-slot.json index d9aa5bd05..a261db3c3 100644 --- a/config/kloubak-slot.json +++ b/config/kloubak-slot.json @@ -11,7 +11,7 @@ } }, "kloubak": { - "driver": "kloubak", + "driver": "osgar.platforms.kloubak:RobotKloubak", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d"], "init": {} diff --git a/config/kloubak2-subt-estop-lora-jetson.json b/config/kloubak2-subt-estop-lora-jetson.json index fb7d9f5c7..39762fb13 100644 --- a/config/kloubak2-subt-estop-lora-jetson.json +++ b/config/kloubak2-subt-estop-lora-jetson.json @@ -27,7 +27,7 @@ } }, "kloubak": { - "driver": "kloubak", + "driver": "osgar.platforms.kloubak:RobotKloubak", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "bumpers_front", "bumpers_rear", diff --git a/config/kloubak2-subt-estop-lora.json b/config/kloubak2-subt-estop-lora.json index 8943f209a..783a4a8c4 100644 --- a/config/kloubak2-subt-estop-lora.json +++ b/config/kloubak2-subt-estop-lora.json @@ -42,7 +42,7 @@ } }, "kloubak": { - "driver": "kloubak", + "driver": "osgar.platforms.kloubak:RobotKloubak", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "bumpers_front", "bumpers_rear", diff --git a/config/kloubak3-no-sensors.json b/config/kloubak3-no-sensors.json index ebb9d7157..e19333ae6 100644 --- a/config/kloubak3-no-sensors.json +++ b/config/kloubak3-no-sensors.json @@ -14,7 +14,7 @@ } }, "kloubak": { - "driver": "kloubak", + "driver": "osgar.platforms.kloubak:RobotKloubak", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d"], "init": { diff --git a/config/kloubak3-subt-estop-lora-jetson.json b/config/kloubak3-subt-estop-lora-jetson.json index da6087d61..f7a7f7b2b 100644 --- a/config/kloubak3-subt-estop-lora-jetson.json +++ b/config/kloubak3-subt-estop-lora-jetson.json @@ -34,7 +34,7 @@ } }, "kloubak": { - "driver": "kloubak", + "driver": "osgar.platforms.kloubak:RobotKloubak", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "bumpers_front", "bumpers_rear", diff --git a/config/kloubak3-subt-estop-lora.json b/config/kloubak3-subt-estop-lora.json index f529671d5..ac82eb223 100644 --- a/config/kloubak3-subt-estop-lora.json +++ b/config/kloubak3-subt-estop-lora.json @@ -32,7 +32,7 @@ } }, "kloubak": { - "driver": "kloubak", + "driver": "osgar.platforms.kloubak:RobotKloubak", "in": ["slot_can", "slot_desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d", "bumpers_front", "bumpers_rear", diff --git a/config/pcan-kloubak.json b/config/pcan-kloubak.json index 86faed5d2..7a00e158d 100644 --- a/config/pcan-kloubak.json +++ b/config/pcan-kloubak.json @@ -11,7 +11,7 @@ } }, "kloubak": { - "driver": "kloubak", + "driver": "osgar.platforms.kloubak:RobotKloubak", "in": ["can", "desired_speed"], "out": ["can", "encoders", "emergency_stop", "pose2d"], "init": {} diff --git a/osgar/drivers/__init__.py b/osgar/drivers/__init__.py index 4ebd53b44..4ee380005 100644 --- a/osgar/drivers/__init__.py +++ b/osgar/drivers/__init__.py @@ -17,7 +17,6 @@ replay="osgar.drivers.replay:ReplayDriver", lordimu="osgar.drivers.lord_imu:LordIMU", pcan="osgar.drivers.pcan:PeakCAN", - kloubak="osgar.drivers.kloubak:RobotKloubak", usbcam="osgar.drivers.usbcam:UsbCam", rosmsg="osgar.drivers.rosmsg:ROSMsgParser", lora="osgar.drivers.lora:LoRa", diff --git a/osgar/drivers/kloubak.py b/osgar/platforms/kloubak.py similarity index 100% rename from osgar/drivers/kloubak.py rename to osgar/platforms/kloubak.py diff --git a/osgar/drivers/test_kloubak.py b/osgar/platforms/test_kloubak.py similarity index 98% rename from osgar/drivers/test_kloubak.py rename to osgar/platforms/test_kloubak.py index bb8b4b7bc..6cd1f4a3c 100644 --- a/osgar/drivers/test_kloubak.py +++ b/osgar/platforms/test_kloubak.py @@ -2,7 +2,7 @@ import math from unittest.mock import MagicMock -from osgar.drivers.kloubak import (compute_desired_erpm, compute_desired_angle, +from osgar.platforms.kloubak import (compute_desired_erpm, compute_desired_angle, WHEEL_DISTANCE, compute_rear, CENTER_AXLE_DISTANCE, RobotKloubak, get_downdrop_bumpers, MAX_JOINT_ANGLE, CAN_ID_ENCODERS, ENC_SCALE) From 3565c66fa8eee158f21ff9d1563709443720f7b5 Mon Sep 17 00:00:00 2001 From: Elena Ai Date: Sat, 14 Mar 2026 09:34:01 +0100 Subject: [PATCH 03/10] refactor: move Spider platform from drivers to platforms and update configs --- config/ro2018-simulation.json | 2 +- config/ro2018-spider-gps-imu.json | 2 +- config/spider-camera.json | 2 +- config/spider-rtk.json | 2 +- config/spider-velodyne.json | 2 +- config/spider.json | 2 +- config/test-spider-gps-imu.json | 2 +- config/test-spider.json | 2 +- osgar/drivers/__init__.py | 2 -- osgar/{drivers => platforms}/spider.py | 0 osgar/{drivers => platforms}/test_spider.py | 2 +- 11 files changed, 9 insertions(+), 11 deletions(-) rename osgar/{drivers => platforms}/spider.py (100%) rename osgar/{drivers => platforms}/test_spider.py (94%) diff --git a/config/ro2018-simulation.json b/config/ro2018-simulation.json index 5c40ab52c..5227cd0f5 100644 --- a/config/ro2018-simulation.json +++ b/config/ro2018-simulation.json @@ -9,7 +9,7 @@ "init": {} }, "spider": { - "driver": "simulator", + "driver": "osgar.drivers.simulator:SpiderSimulator", "in": ["move"], "out": ["position", "orientation", "status"], "init": { diff --git a/config/ro2018-spider-gps-imu.json b/config/ro2018-spider-gps-imu.json index 6aa7329e6..55008bf2d 100644 --- a/config/ro2018-spider-gps-imu.json +++ b/config/ro2018-spider-gps-imu.json @@ -33,7 +33,7 @@ "init": {"port": "/dev/ttyUSB0", "speed": 115200} }, "spider": { - "driver": "spider", + "driver": "osgar.platforms.spider:Spider", "in": ["raw"], "out": ["can", "status"], "init": {} diff --git a/config/spider-camera.json b/config/spider-camera.json index 7c18f6495..38afc693b 100644 --- a/config/spider-camera.json +++ b/config/spider-camera.json @@ -11,7 +11,7 @@ } }, "spider": { - "driver": "spider", + "driver": "osgar.platforms.spider:Spider", "in": ["can", "move"], "out": ["can"], "init": {} diff --git a/config/spider-rtk.json b/config/spider-rtk.json index 25d4e7b12..a35b059c7 100644 --- a/config/spider-rtk.json +++ b/config/spider-rtk.json @@ -11,7 +11,7 @@ } }, "spider": { - "driver": "spider", + "driver": "osgar.platforms.spider:Spider", "in": ["can", "move"], "out": ["can"], "init": {} diff --git a/config/spider-velodyne.json b/config/spider-velodyne.json index 14df6616f..12b7c0a8f 100644 --- a/config/spider-velodyne.json +++ b/config/spider-velodyne.json @@ -11,7 +11,7 @@ } }, "spider": { - "driver": "spider", + "driver": "osgar.platforms.spider:Spider", "in": ["can", "move"], "out": ["can"], "init": {} diff --git a/config/spider.json b/config/spider.json index 067db3f45..03772dab9 100644 --- a/config/spider.json +++ b/config/spider.json @@ -11,7 +11,7 @@ } }, "spider": { - "driver": "spider", + "driver": "osgar.platforms.spider:Spider", "in": ["can", "move"], "out": ["can"], "init": {} diff --git a/config/test-spider-gps-imu.json b/config/test-spider-gps-imu.json index 0a679121a..2ba16c333 100644 --- a/config/test-spider-gps-imu.json +++ b/config/test-spider-gps-imu.json @@ -27,7 +27,7 @@ "init": {"port": "/dev/ttyUSB0", "speed": 115200} }, "spider": { - "driver": "spider", + "driver": "osgar.platforms.spider:Spider", "in": ["raw"], "out": ["can"], "init": {} diff --git a/config/test-spider.json b/config/test-spider.json index 578d7b989..8850d2f56 100644 --- a/config/test-spider.json +++ b/config/test-spider.json @@ -3,7 +3,7 @@ "robot": { "modules": { "spider": { - "driver": "spider", + "driver": "osgar.platforms.spider:Spider", "in": ["can"], "out": ["can"], "init": {} diff --git a/osgar/drivers/__init__.py b/osgar/drivers/__init__.py index 4ee380005..b21dc6744 100644 --- a/osgar/drivers/__init__.py +++ b/osgar/drivers/__init__.py @@ -2,10 +2,8 @@ all_drivers = dict( gps="osgar.drivers.gps:GPS", imu="osgar.drivers.imu:IMU", - spider="osgar.drivers.spider:Spider", serial="osgar.drivers.logserial:LogSerial", can="osgar.drivers.canserial:CANSerial", - simulator="osgar.drivers.simulator:SpiderSimulator", tcp="osgar.drivers.logsocket:LogTCPStaticIP", tcpdynamic="osgar.drivers.logsocket:LogTCPDynamicIP", tcpserver="osgar.drivers.logsocket:LogTCPServer", diff --git a/osgar/drivers/spider.py b/osgar/platforms/spider.py similarity index 100% rename from osgar/drivers/spider.py rename to osgar/platforms/spider.py diff --git a/osgar/drivers/test_spider.py b/osgar/platforms/test_spider.py similarity index 94% rename from osgar/drivers/test_spider.py rename to osgar/platforms/test_spider.py index 626fcbd2f..4ef4025f5 100644 --- a/osgar/drivers/test_spider.py +++ b/osgar/platforms/test_spider.py @@ -2,7 +2,7 @@ from unittest.mock import MagicMock from datetime import timedelta -from osgar.drivers.spider import Spider, CAN_triplet, sint8_diff +from osgar.platforms.spider import Spider, CAN_triplet, sint8_diff from osgar.bus import Bus From 44da3e1e292506d62a761dab6992ea48cf867bdf Mon Sep 17 00:00:00 2001 From: Elena Ai Date: Sat, 14 Mar 2026 09:36:03 +0100 Subject: [PATCH 04/10] refactor: move Maria platform from drivers to platforms and update configs --- config/maria-ros.json | 2 +- config/maria.json | 2 +- osgar/drivers/__init__.py | 1 - osgar/{drivers => platforms}/maria.py | 0 osgar/{drivers => platforms}/test_maria.py | 2 +- 5 files changed, 3 insertions(+), 4 deletions(-) rename osgar/{drivers => platforms}/maria.py (100%) rename osgar/{drivers => platforms}/test_maria.py (96%) diff --git a/config/maria-ros.json b/config/maria-ros.json index fba430012..7a3a69360 100644 --- a/config/maria-ros.json +++ b/config/maria-ros.json @@ -57,7 +57,7 @@ "init": {"port": "/dev/lora", "speed": 115200} }, "maria": { - "driver": "maria", + "driver": "osgar.platforms.maria:RobotMaria", "in": ["desired_speed", "raw"], "out": ["emergency_stop", "pose2d", "raw", "encoders"], "init": {} diff --git a/config/maria.json b/config/maria.json index c4574d988..d972ebf4f 100644 --- a/config/maria.json +++ b/config/maria.json @@ -11,7 +11,7 @@ } }, "maria": { - "driver": "maria", + "driver": "osgar.platforms.maria:RobotMaria", "in": ["desired_speed", "raw"], "out": ["emergency_stop", "pose2d", "raw", "encoders"], "init": {} diff --git a/osgar/drivers/__init__.py b/osgar/drivers/__init__.py index b21dc6744..9edbc32f2 100644 --- a/osgar/drivers/__init__.py +++ b/osgar/drivers/__init__.py @@ -21,7 +21,6 @@ vesc="osgar.drivers.vesc:MotorDriverVESC", opencv="osgar.drivers.opencv:LogOpenCVCamera", zeromq="osgar.drivers.logzeromq:LogZeroMQ", - maria="osgar.drivers.maria:RobotMaria", timer="osgar.drivers.timer:Timer", realsense="osgar.drivers.realsense:RealSense", realsense_multicam="osgar.drivers.realsense:Multicam", diff --git a/osgar/drivers/maria.py b/osgar/platforms/maria.py similarity index 100% rename from osgar/drivers/maria.py rename to osgar/platforms/maria.py diff --git a/osgar/drivers/test_maria.py b/osgar/platforms/test_maria.py similarity index 96% rename from osgar/drivers/test_maria.py rename to osgar/platforms/test_maria.py index a33a820ac..2d190729e 100644 --- a/osgar/drivers/test_maria.py +++ b/osgar/platforms/test_maria.py @@ -2,7 +2,7 @@ import datetime from unittest.mock import MagicMock -from osgar.drivers.maria import RobotMaria, SpeedControl, MAX_PWM +from osgar.platforms.maria import RobotMaria, SpeedControl, MAX_PWM class RobotTankMariaTest(unittest.TestCase): From a520fe9f67daf2ab8df1637806ef2f5821a30adb Mon Sep 17 00:00:00 2001 From: Elena Ai Date: Sat, 14 Mar 2026 09:38:21 +0100 Subject: [PATCH 05/10] refactor: move Cortexpilot platform from drivers to platforms and update configs --- config/robik-subt-estop.json | 2 +- osgar/drivers/__init__.py | 1 - osgar/{drivers => platforms}/cortexpilot.py | 0 osgar/{drivers => platforms}/test_cortexpilot.py | 2 +- 4 files changed, 2 insertions(+), 3 deletions(-) rename osgar/{drivers => platforms}/cortexpilot.py (100%) rename osgar/{drivers => platforms}/test_cortexpilot.py (98%) diff --git a/config/robik-subt-estop.json b/config/robik-subt-estop.json index bb62847cc..a1bcb7adc 100644 --- a/config/robik-subt-estop.json +++ b/config/robik-subt-estop.json @@ -28,7 +28,7 @@ } }, "cortexpilot": { - "driver": "cortexpilot", + "driver": "osgar.platforms.cortexpilot:Cortexpilot", "in": ["raw", "desired_speed"], "out": ["raw", "encoders", "emergency_stop", "pose2d", "scan", "orientation", "rotation", "voltage"], "init": {} diff --git a/osgar/drivers/__init__.py b/osgar/drivers/__init__.py index 9edbc32f2..5ab6f008e 100644 --- a/osgar/drivers/__init__.py +++ b/osgar/drivers/__init__.py @@ -10,7 +10,6 @@ udp="osgar.drivers.logsocket:LogUDP", http="osgar.drivers.logsocket:LogHTTP", lidar="osgar.drivers.sicklidar:SICKLidar", - cortexpilot="osgar.drivers.cortexpilot:Cortexpilot", usb="osgar.drivers.logusb:LogUSB", replay="osgar.drivers.replay:ReplayDriver", lordimu="osgar.drivers.lord_imu:LordIMU", diff --git a/osgar/drivers/cortexpilot.py b/osgar/platforms/cortexpilot.py similarity index 100% rename from osgar/drivers/cortexpilot.py rename to osgar/platforms/cortexpilot.py diff --git a/osgar/drivers/test_cortexpilot.py b/osgar/platforms/test_cortexpilot.py similarity index 98% rename from osgar/drivers/test_cortexpilot.py rename to osgar/platforms/test_cortexpilot.py index 4f20c6fa7..3d6509132 100644 --- a/osgar/drivers/test_cortexpilot.py +++ b/osgar/platforms/test_cortexpilot.py @@ -2,7 +2,7 @@ from unittest.mock import MagicMock from datetime import timedelta -from osgar.drivers.cortexpilot import Cortexpilot +from osgar.platforms.cortexpilot import Cortexpilot from osgar.bus import Bus # data for old Robik From 6c38f147b422777ba47781318acf875b16eeb374 Mon Sep 17 00:00:00 2001 From: Elena Ai Date: Sat, 14 Mar 2026 09:41:47 +0100 Subject: [PATCH 06/10] refactor: move Deedee platform from drivers to platforms and update configs --- config/deedee-demo.json | 6 +++--- config/deedee-subt.json | 4 ++-- osgar/{drivers => platforms}/deedee.py | 0 3 files changed, 5 insertions(+), 5 deletions(-) rename osgar/{drivers => platforms}/deedee.py (100%) diff --git a/config/deedee-demo.json b/config/deedee-demo.json index 6abb33643..393dd1402 100644 --- a/config/deedee-demo.json +++ b/config/deedee-demo.json @@ -11,18 +11,18 @@ } }, "demo": { - "driver": "osgar.drivers.deedee:Demo", + "driver": "osgar.platforms.deedee:Demo", "in": ["tick", "pose2d"], "out": ["desired_speed"] }, "deedee": { - "driver": "osgar.drivers.deedee:Deedee", + "driver": "osgar.platforms.deedee:Deedee", "in": ["desired_speed", "info", "tick"], "out": ["cmd", "pose2d", "emergency_stop", "stdout"], "init": {} }, "slip": { - "driver": "osgar.drivers.deedee:Slip", + "driver": "osgar.platforms.deedee:Slip", "in": ["packet", "raw"], "out": ["packet", "raw"], "init": {} diff --git a/config/deedee-subt.json b/config/deedee-subt.json index 2e674e0dc..1018692cb 100644 --- a/config/deedee-subt.json +++ b/config/deedee-subt.json @@ -32,13 +32,13 @@ } }, "deedee": { - "driver": "osgar.drivers.deedee:Deedee", + "driver": "osgar.platforms.deedee:Deedee", "in": ["desired_speed", "info", "tick"], "out": ["cmd", "pose2d", "emergency_stop", "stdout"], "init": {} }, "slip": { - "driver": "osgar.drivers.deedee:Slip", + "driver": "osgar.platforms.deedee:Slip", "in": ["packet", "raw"], "out": ["packet", "raw"], "init": {} diff --git a/osgar/drivers/deedee.py b/osgar/platforms/deedee.py similarity index 100% rename from osgar/drivers/deedee.py rename to osgar/platforms/deedee.py From 6f31a7cdff9d10564ea6b1ae30fb23b1ff8c87b5 Mon Sep 17 00:00:00 2001 From: Elena Ai Date: Sat, 14 Mar 2026 09:43:40 +0100 Subject: [PATCH 07/10] refactor: update remaining platform driver paths in config files --- config/bare-skiddy.json | 2 +- config/cortexpilot-no-camera.json | 2 +- config/cortexpilot-only.json | 2 +- config/cortexpilot.json | 2 +- config/skiddy-subt.json | 2 +- config/test-robik.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/bare-skiddy.json b/config/bare-skiddy.json index 2304bf20d..24ce8fb37 100644 --- a/config/bare-skiddy.json +++ b/config/bare-skiddy.json @@ -25,7 +25,7 @@ } }, "cortexpilot": { - "driver": "osgar.drivers.cortexpilot:Cortexpilot", + "driver": "osgar.platforms.cortexpilot:Cortexpilot", "in": ["raw", "desired_speed"], "out": ["raw", "encoders", "emergency_stop", "pose2d", "scan"], "init": {} diff --git a/config/cortexpilot-no-camera.json b/config/cortexpilot-no-camera.json index 5780adef4..f84503165 100644 --- a/config/cortexpilot-no-camera.json +++ b/config/cortexpilot-no-camera.json @@ -11,7 +11,7 @@ } }, "cortexpilot": { - "driver": "osgar.drivers.cortexpilot:Cortexpilot", + "driver": "osgar.platforms.cortexpilot:Cortexpilot", "in": ["raw", "desired_speed"], "out": ["raw", "encoders", "emergency_stop", "pose2d", "scan"], "init": {} diff --git a/config/cortexpilot-only.json b/config/cortexpilot-only.json index 35794cf90..2895a6446 100644 --- a/config/cortexpilot-only.json +++ b/config/cortexpilot-only.json @@ -3,7 +3,7 @@ "robot": { "modules": { "cortexpilot": { - "driver": "osgar.drivers.cortexpilot:Cortexpilot", + "driver": "osgar.platforms.cortexpilot:Cortexpilot", "in": ["raw", "desired_speed"], "out": ["raw", "encoders", "emergency_stop", "pose2d", "scan", "orientation", "rotation", "voltage"], "init": {} diff --git a/config/cortexpilot.json b/config/cortexpilot.json index 3a819e6cd..1110a5dbc 100644 --- a/config/cortexpilot.json +++ b/config/cortexpilot.json @@ -11,7 +11,7 @@ } }, "cortexpilot": { - "driver": "osgar.drivers.cortexpilot:Cortexpilot", + "driver": "osgar.platforms.cortexpilot:Cortexpilot", "in": ["raw", "desired_speed"], "out": ["raw", "encoders", "emergency_stop", "pose2d", "scan"], "init": {} diff --git a/config/skiddy-subt.json b/config/skiddy-subt.json index 25620df53..6486417b5 100644 --- a/config/skiddy-subt.json +++ b/config/skiddy-subt.json @@ -25,7 +25,7 @@ } }, "cortexpilot": { - "driver": "osgar.drivers.cortexpilot:Cortexpilot", + "driver": "osgar.platforms.cortexpilot:Cortexpilot", "in": ["raw", "desired_speed"], "out": ["raw", "encoders", "emergency_stop", "pose2d", "scan"], "init": {} diff --git a/config/test-robik.json b/config/test-robik.json index 3c2b707c8..9730e72cc 100644 --- a/config/test-robik.json +++ b/config/test-robik.json @@ -9,7 +9,7 @@ "init": {"port": "/dev/ttyACM0", "speed": 115200} }, "cortexpilot": { - "driver": "cortexpilot", + "driver": "osgar.platforms.cortexpilot:Cortexpilot", "in": ["raw", "desired_speed"], "out": ["raw", "encoders", "emergency_stop", "pose2d", "scan", "orientation", "rotation", "voltage"], "init": {} From cb1aa85e95b71808f38d717b37e100181a080349 Mon Sep 17 00:00:00 2001 From: Elena Ai Date: Sat, 14 Mar 2026 17:54:09 +0100 Subject: [PATCH 08/10] doc: add platforms/README.md with robot descriptions and update root README --- README.md | 2 +- osgar/platforms/README.md | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 osgar/platforms/README.md diff --git a/README.md b/README.md index 5590f5350..b526ec4c2 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ OSGAR was originally developed by [robotika.cz](https://robotika.cz) and has bee # Applications & Robots -OSGAR has been the core software framework for a variety of robotic platforms and prestigious competitions: +OSGAR has been the core software framework for a variety of robotic platforms and prestigious competitions. See [OSGAR Platforms](osgar/platforms/README.md) for more details. John Deere X300R diff --git a/osgar/platforms/README.md b/osgar/platforms/README.md new file mode 100644 index 000000000..dbe77cddd --- /dev/null +++ b/osgar/platforms/README.md @@ -0,0 +1,39 @@ +# OSGAR Platforms + +This directory contains drivers and configuration for various robotic platforms supported by OSGAR. + +## Supported Robots + +### Matty +* **Description:** 4-wheel drive articulated robot with a passive joint. +* **Driver:** `osgar.platforms.matty:Matty` +* **Links:** [Technical details](https://robotika.vosrk.cz/robots/matty/), [Matty Twins](https://robotika.cz/robots/matty-twins/) + +### Eduro +* **Description:** Rugged 4-wheel drive robot used in various outdoor competitions. +* **Driver:** `osgar.platforms.eduro:Eduro` + +### Kloubak +* **Description:** Articulated robot developed at CZU (Czech University of Life Sciences Prague). +* **Driver:** `osgar.platforms.kloubak:RobotKloubak` +* **Repository:** [tf-czu/kloubak](https://github.com/tf-czu/kloubak) + +### Spider +* **Description:** Spider3 Rider platform, often used with Velodyne and GPS for autonomous navigation. +* **Driver:** `osgar.platforms.spider:Spider` + +### Maria +* **Description:** A small tank-like robot with a text-based communication protocol. +* **Driver:** `osgar.platforms.maria:RobotMaria` + +### Cortexpilot (Robik, Skiddy) +* **Description:** Driver for robots from cortexpilot.com, including Robik and Skiddy. +* **Driver:** `osgar.platforms.cortexpilot:Cortexpilot` + +### Deedee +* **Description:** Delivery-style robot with SLIP-encoded communication. +* **Driver:** `osgar.platforms.deedee:Deedee` + +### FR07 (Yuhesen) +* **Description:** Commercial outdoor delivery platform FR-07 Pro from Yuhesen. +* **Driver:** `osgar.platforms.yuhesen:FR07` From c891e0a40326a4894ec231714f561b7d0710fdd6 Mon Sep 17 00:00:00 2001 From: Elena Ai Date: Sat, 14 Mar 2026 18:10:39 +0100 Subject: [PATCH 09/10] doc: correct Eduro description and add Cortexpilot link --- osgar/platforms/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/osgar/platforms/README.md b/osgar/platforms/README.md index dbe77cddd..2a8fb69a8 100644 --- a/osgar/platforms/README.md +++ b/osgar/platforms/README.md @@ -10,8 +10,9 @@ This directory contains drivers and configuration for various robotic platforms * **Links:** [Technical details](https://robotika.vosrk.cz/robots/matty/), [Matty Twins](https://robotika.cz/robots/matty-twins/) ### Eduro -* **Description:** Rugged 4-wheel drive robot used in various outdoor competitions. +* **Description:** Rugged tricycle robot used in various outdoor competitions. * **Driver:** `osgar.platforms.eduro:Eduro` +* **Link:** [Robotika.cz Eduro](https://robotika.cz/robots/eduro/) ### Kloubak * **Description:** Articulated robot developed at CZU (Czech University of Life Sciences Prague). @@ -27,7 +28,7 @@ This directory contains drivers and configuration for various robotic platforms * **Driver:** `osgar.platforms.maria:RobotMaria` ### Cortexpilot (Robik, Skiddy) -* **Description:** Driver for robots from cortexpilot.com, including Robik and Skiddy. +* **Description:** Driver for robots from [cortexpilot.com](https://cortexpilot.com), including Robik and Skiddy. * **Driver:** `osgar.platforms.cortexpilot:Cortexpilot` ### Deedee From 64b9f9717b1d7c28437dfe4a48e26ec6ea07d740 Mon Sep 17 00:00:00 2001 From: Martin Dlouhy Date: Sun, 15 Mar 2026 18:36:47 +0100 Subject: [PATCH 10/10] osgar/platforms/README.md - FIXUP Ouster --- osgar/platforms/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osgar/platforms/README.md b/osgar/platforms/README.md index 2a8fb69a8..60dc44066 100644 --- a/osgar/platforms/README.md +++ b/osgar/platforms/README.md @@ -20,7 +20,7 @@ This directory contains drivers and configuration for various robotic platforms * **Repository:** [tf-czu/kloubak](https://github.com/tf-czu/kloubak) ### Spider -* **Description:** Spider3 Rider platform, often used with Velodyne and GPS for autonomous navigation. +* **Description:** Spider3 Rider platform, often used with Ouster lidar and GPS for autonomous navigation. * **Driver:** `osgar.platforms.spider:Spider` ### Maria