A sidewalk-friendly autonomous delivery robot designed for scalable logistics.
The Autonomous Delivery Wagon (ADW) is a heavy-duty autonomous robot platform, based on a modified garden wagon chassis, and tailored for real-world delivery applications. Designed with affordability, modularity, and functionality in mind, ADW is engineered to carry up to 600 lbs while navigating sidewalks and varied terrains autonomously.
tldr; designing an autonomous bot for local food delivery (ie. doordash, ubereats) by utilizing sidewalks
-
Modified Commercial Wagon Base
- Reinforced steel-frame platform
- Custom axle replacement for improved durability
- Integrated 350W high-torque motor and servo system for controlled mobility
-
Advanced Perception Stack
- Mounted 3D LiDAR with 360Β° horizontal and 90Β° vertical FOV for robust environmental awareness
- Mono camera for object detection and tracking
- Real-time obstacle detection and path planning
-
Compute & Autonomy
- Powered by NVIDIA Jetson Nano
- Running SLAM (Simultaneous Localization and Mapping) and ROS (Robot Operating System) for localization and autonomous decision-making
-
Planned Capabilities
- Manual control phase (for testing and calibration)
- Data collection for SLAM and AI model tuning
- Autonomous path planning and dynamic rerouting
- Secure delivery logic with compartment locking
Current Phase: Finalizing steering for precise movement
Upcoming Phase: LiDAR Point Cloud and Mono Camera RGB data fusion
- β Modify base wagon and install axle/motor system
- β π Integrate motor and servo components
- β Mount 3D LiDAR and mono camera
- β Building housing and electronics mount
- β Manual control setup
- ππ§ͺ Upcoming: SLAM data collection and initial autonomy tests
Hardware:
Modified Wagon Frame β’ Custom Axle β’ 350W Motor β’ 3D LiDAR (360Β°x90Β°) β’ Mono Camera β’ Servo Steering
Software & Compute:
NVIDIA Jetson Nano β’ ROS β’ SLAM β’ Python β’ C++
To create a low-cost, sidewalk-compatible autonomous delivery robot platform inspired by real-world AVs. Aiming to utilize sidewalk infastracture for logistics (ie doordash, ubereats).
π status as of 05/28/25 [current servo not reliable π€¦ββοΈ, attempting to replace with RS380 12V steering motor βοΈ]
- kept blowing even under low current
- has inline fuse of 5A and board still blew at quick stall, brought inline fuse down to 3A, still blew the board
- context, this is the second servo that blew up despite having inline fuse below rated stall current: "Stall current at locked ( 12.6V ): 8.3A"
- should have listened to amazon 'frequently returned' warning π
- designed and printed new holder
- but currently experiencing tensions at specific areas due to minor measurement issues +/-1mm
- forward-right seems to be sliding
- noticed left wheel has less grip compare to right wheel
- further investigation shows that right wheel is slightly floating
- noticed wagon chassis is sagging more to left side
- resulting to a lower left wheel and higher right wheel
- removing air from left wheel to lower left side and theoretically balance
- there was slight improvement but issue persist
- investigate what causing chassis imbalance and attempt fix
- dive into adding suspension
- might result to more complication
- will take more time on steering mechanism development, pushing data fusion and collection dev further.
- Found out SDA and SCL can be enabled through device tree for Jetson Nano Pin 27/28
- used another PCA PWM controller for servo - resulted to cleaner signals and eliminated twitching
- but this solution met by another issue, Jetson only has two 5V pins (was being used by motor driver and pca_1) - see block diagram above for new wiring as solution
Steering mech is resolved!! but currently experiencing servo twitching, even with no mechanical load. After investigation, the issue appears to stem from the PWM signal quality from Jetson Nano pin 32.
- PWM Signal from Jetson Pin 32 (GPIO12) appears to be a sine-like waveform, not a proper square wave.
- Observed via oscilloscope: signal is unstable and inconsistent, likely due to software-based PWM emulation.
- In contrast, a PWM signal from a PCA9685 (driven through IΒ²C from the Jetson) is a clean square wave.
- Jetson GND is confirmed stable, as it was used during both tests (pin 32 vs PCA).
Pin 32 PWM Signal (Sine-Like) PCA9685 PWM Signal (Clean Square Wave)
- Only one PCA9685 is available and is currently used for controlling a brushed motor, which runs at a different PWM frequency.
- Jetson Nano provides only one physical SDA/SCL pair, limiting direct support for multiple PCA9685 boards without hardware modifications.
The servo twitching is likely caused by the poor PWM signal quality from pin 32, not wiring or voltage instability.
- Test pin 33 (GPIO13) β a Jetson-supported PWM-capable pin that might provide a cleaner signal if properly configured through Jetson-IO.
- Explore using an IΒ²C multiplexer (e.g., TCA9548A) or software IΒ²C to add a second PCA9685 board.
- Investigate options to clean the signal from pin 32 using a low-pass filter or buffer (if switching pins isn't viable).
- Collect and share oscilloscope screenshots comparing pin 32 vs PCA outputs for further debugging and validation.
Steering Mechanism Development Log
Currently facing challenges in designing and printing parts for a stable and precise steering mechanism.
Approaches Tried:
Direct rotational steering: Mounted the servo directly on the pivoting axle assembly.
- Issue: The servo moved with the steering assembly, causing instability and limiting the range of motion.
Lever-actuated steering using PVC arms: Connected the servo to the wagonβs front axle with makeshift linkages.
- Issue: This setup lacked precision and mechanical robustness.
Current approach β Drag link steering:
Mounting the servo to the fixed chassis and connecting it to the steering arm via a push-pull linkage (drag link).
Goal: Achieve better mechanical control, increase range of motion, and keep the servo stationary for consistent torque application.
This is an ongoing solo project β open to collaboration, ideas, or advice.
Feel free to open an issue or contact directly with feedback.
To be determined.
More updates coming soon β follow commits and README changes as the project evolves!






























