TerrainPilot Buggy
An autonomous electric off road buggy built around drive by wire control, LiDAR perception, ROS2 navigation, and embedded edge computing.
Tech stack
- Python
- C++
- ROS2
- Jetson Orin Nano
- Pandar40P LiDAR
- IMU
- GPS
- SLAM
- Sensor Fusion
- CAN Bus
- Linux
- OpenCV
- NumPy
- Motor Control
- 48V Battery System
Overview
A self driving off road vehicle platform designed to navigate unstructured terrain using LiDAR, GPS, IMU data, and onboard autonomy software. The buggy replaces manual steering with a motorized drive by wire system and uses a Jetson Orin Nano running ROS2 to process sensor data, estimate position, detect terrain features, and generate navigation commands.
Problem & solution
- Built an electric off road vehicle platform powered by a 48V 150Ah battery and high speed motor system
- Replaced traditional steering input with a motorized drive by wire control system for autonomous steering commands
- Integrated Pandar40P LiDAR, GPS, IMU, and onboard compute into a ROS2 based autonomy stack
- Used SLAM and sensor fusion to estimate vehicle position across rough outdoor terrain where GPS alone can be unreliable
- Designed control logic for speed, steering, obstacle awareness, route following, and safe manual override behavior
- Processed LiDAR point cloud data to support terrain mapping, obstacle detection, and local navigation decisions
- Structured the system around separate ROS2 nodes for sensor input, localization, planning, control, telemetry, and safety monitoring
What I learned
- How autonomous vehicles combine hardware, embedded systems, robotics software, and real time control
- How to use LiDAR, GPS, and IMU data together instead of relying on one sensor source
- How ROS2 organizes robotics systems into nodes, topics, messages, transforms, and launch files
- How drive by wire systems turn software commands into physical steering and motion control
- How to think about safety, fallback behavior, manual override, and testing when software controls a real vehicle
- How to debug robotics problems across sensors, wiring, Linux services, ROS2 logs, calibration files, and physical hardware