Skip to main content
Resume
← All projects

Autonomous systems

PreRunner

A self-contained ROS 2 research platform for autonomous navigation and future learning-based racing.

Status Active research platform · 2026 — ongoing
Technologies
  • ROS 2 Jazzy
  • Nav2
  • SLAM Toolbox
  • Robot Localization EKF
  • Python
  • C++
  • Raspberry Pi 5
  • LiDAR
  • IMU
  • Foxglove

Overview

PreRunner converts a stock LaTrax Prerunner into a self-contained autonomous research vehicle. A Raspberry Pi 5 runs Ubuntu 24.04 and ROS 2 Jazzy with all sensing and compute onboard.

The platform is the current evolution of the hardware first developed for AutoNav. Its present focus is dependable mapping, localization, state estimation, and autonomous route execution; iterative racing control is the next phase.

Problem and context

Future racing experiments depend on localization and control infrastructure that can be measured without motion capture, fixed anchors, or offboard compute. Commodity sensors also introduce practical failure modes: variable LiDAR scan cardinality, motion distortion, encoder quantization, actuator deadband, and incomplete observability.

The engineering work therefore treats navigation as a system problem. Sensor ownership, transform ownership, command arbitration, diagnostics, launch composition, and repeatable bag analysis are designed alongside the planner and controller.

Build log

Hardware progression

01 / 06
  1. Original RC chassis during drivetrain development with wheel-encoder wiring visible
    Development stage · Drivetrain Magnets and a hall-effect sensor were added to measure wheel motion during drivetrain bring-up.
  2. Early PreRunner onboard sensing and compute electronics stack held in one hand
    Development stage · Electronics Early onboard stack combining compute, LiDAR, IMU, power distribution, and interface electronics.
  3. Front Onshape view of the complete PreRunner CAD assembly on the stock chassis geometry
    CAD integration · Front Onshape assembly used to package the electronics sled and LiDAR around the stock chassis.
  4. Rear Onshape view of the complete PreRunner CAD assembly on the stock chassis geometry
    CAD integration · Rear Rear CAD view showing the mounting structure, power layout, and sensor integration.
  5. Current assembled PreRunner with LiDAR, compute, electronics, and RC vehicle platform integrated
    Current hardware · Integrated LiDAR, compute, sensing, and drive electronics are integrated on the vehicle platform.
  6. Current PreRunner installed in a custom-cut foam transport case
    Current hardware · Transport Custom-cut foam insert secures the assembled vehicle in a hard transport case.

Technical approach

SLAM Toolbox builds maps and provides fixed-map localization. An extended Kalman filter combines the available motion estimates, while Nav2 plans and executes point-to-point and multi-waypoint routes using a regulated pure-pursuit controller.

Custom ROS 2 packages handle the BNO085 IMU, hall-effect wheel encoder, motor interface, telemetry, command adaptation, scan canonicalization, and operator goal management. Hardware-owning services are kept separate from application launch files so each resource has one owner. The onboard sensor and compute stack uses a custom Onshape-designed mounting sled built around the stock LaTrax Prerunner chassis, with a hall-effect encoder integrated into that chassis for drivetrain motion sensing.

Key engineering details

Localization pipeline

An LD19 LiDAR feeds separate scan paths for laser odometry, SLAM Toolbox, and Nav2 costmaps. Fixed-bin scan rebinning prevents the mapper from silently rejecting variable-length scans.

State estimation

RF2O laser odometry and BNO085 inertial data are fused through Robot Localization with an explicit map → odom → base_link transform chain.

Drive interface

A drive adapter converts Nav2 SI-unit commands into the normalized steering and throttle interface, including steering geometry, bounded speed control, watchdog behavior, and teleoperation pre-emption.

Measurement and validation

ROS bags and typed diagnostics — visualized live in Foxglove — are used to validate localization cadence, pose corrections, yaw behavior, encoder estimates, actuator response, and configuration changes before later phases depend on them. Custom control components also have Python unit and integration tests covering command conversion, saturation, timing, direction handling, and safety behavior.

Results and outcomes

The vehicle currently performs autonomous point-to-point and multi-waypoint navigation in a cluttered indoor environment, including U-turns and tight-clearance routes.

Bring-up, SLAM localization, and the first fixed-map Nav2 phase are functionally complete. Racing with Pure Pursuit, model-predictive control, and learning-based control remains ongoing and is not presented as a completed result.

Next steps are autonomous exploration of unknown environments, followed by progressively increasing autonomous speed to investigate localization, control, and traction limits.