Design and build a differential-drive robot that performs self-localization, obstacle avoidance, and autonomous movement indoors using LiDAR and a camera. Processing is split across an edge unit and a PC to keep real-time performance within a limited wireless bandwidth budget. Safety is handled by a dual layer of control software and a physical kill switch, so a single failure never leads directly to an accident.
Figure 1 — The safety supervisor intervenes with top priority in both autonomous and manual modes. Sensor input is processed on the edge unit, and only decimated data is sent to the PC.
Can now be driven manually with a controller, and estimates its own position from wheel rotation counts.
Can now build a map of its surroundings automatically using LiDAR (a sensor that measures distance to nearby objects with a laser) and a camera.
Can now move automatically to a destination picked on the map, avoiding obstacles along the way.
Automatically slows down and stops when approaching an obstacle, making collisions with walls or objects less likely (though not entirely preventable).
Battery level and sensor connection status can now be checked in real time from a browser.
If the control computer stops unexpectedly, manual control and the physical emergency stop button keep working independently.
Verified communication with the chassis, motor driver, and encoders, and achieved manual driving with odometry estimation. Laid the groundwork for every stage that followed.
Integrated the LiDAR and camera, achieved 2D map generation via SLAM, and then moved to high-precision self-localization using 3D LiDAR-Inertial Odometry.
Implemented goal-reaching with Nav2 and confirmed autonomous movement to a specified point, with a safe handover between manual and autonomous operation.
Migrated to a setup that keeps sensor acquisition and safety supervision on the edge unit while mapping and navigation run on the PC, preserving real-time performance under limited wireless bandwidth.
Built out the obstacle guard, status dashboard, and physical e-stop, and continue to iterate through field testing and improvement.
A read-only status dashboard built entirely on the edge unit using standard libraries, with no extra ROS package dependencies.
August 19, 2026A distributed setup that offloads heavy processing to a PC while keeping drive control and safety supervision on the edge unit, and the decimation design that carries sensor data over limited wireless bandwidth.
August 13, 2026The twist_mux pipeline that safely arbitrates between autonomous planning and manual commands, and the obstacle guard's asymmetric clamp that limits only the forward component.
August 6, 2026Building a 2D map on top of 3D LiDAR-derived odometry and driving to a goal autonomously with Nav2, plus a serious bug found along the way.
July 31, 2026A self-localization design that switches between FAST-LIO and an EKF depending on whether LiDAR is present, and the drift accuracy measured on real runs.
July 25, 2026The serial protocol linking the upstream computer to the motor-control microcontroller, and the autonomous fail-safe that kicks in when communication drops.
July 16, 2026The aluminum-frame chassis, differential drivetrain, a power system built on a power-tool battery, and the LiDAR/camera sensor setup.