This Colcon workspace contains the autonomous driving stack for a custom-built Ackermann steering platform.
Before introducing ROS 2 middleware, we developed a pure Python HAL (ackermann_hal.py) to interface with the low-level mechatronics, handling:
- Asynchronous I2C communication with the traction motor controller.
- Slew-rate limited PWM control for the steering servo.
- Software-based anti-backlash compensation and offset calibration.
src/ackermann_core/hardware/: Containsackermann_hal.py(Base driver).src/ackermann_core/tools/: Containssteering_calibration.py(Bench tool for mechanical tuning).
Next steps: Wrap the HAL into a base_controller_node and implement I2C encoder odometry.