Jetson Orin Nano + RPLIDAR S2L based AMR platform with SLAM, A* navigation, MCU firmware, web UI, power system, and CAD/PCB assets. Built for indoor logistics and research.
⚠️ Operate only in controlled indoor environments after a proper risk assessment and follow the startup/operation procedures. See the User Manual for intended use and safety guidance.
- SLAM & Navigation (C++) — ICP/EKF/A* from scratch, OpenCV/Eigen, RPLIDAR SDK hooks https://github.com/AMR-Vanguard/Slam-From-scratch-and-Navigation ([GitHub][1])
- Velocity Command Generation — Kinematics → linear/angular velocity profiles (C++ demo) https://github.com/AMR-Vanguard/Velocity_command_Generation ([GitHub][2])
- Firmware (ATmega32U4) — motor control + USB serial protocol (C, Microchip Studio) https://github.com/AMR-Vanguard/AMR-firmware ([GitHub][3])
- Web User Interface (React + TypeScript + Vite) — mapping controls, live map, MQTT https://github.com/AMR-Vanguard/User-Interface ([GitHub][4])
- Power System — calculations, distribution, DC-DC architecture and notes https://github.com/AMR-Vanguard/Power ([GitHub][5])
- Schematic & PCB — MCU adapter + motor controller (Altium) https://github.com/AMR-Vanguard/Schematic-and-PCB-design ([GitHub][6])
- Enclosures & CAD — AMR body, MCU case, sketches (SolidWorks) https://github.com/AMR-Vanguard/Enclosure_designs ([GitHub][7])
(Org landing page with all repos: ([GitHub][8]))
- 360° LiDAR SLAM with ICP scan matching, EKF sensor fusion, loop-closure & map refinement. ([GitHub][1])
- A* path planning + differential-drive motion control with smooth acceleration profiles. ([GitHub][1]) ([GitHub][3])
- Web UI: start/stop mapping, click-to-goal navigation, live map (base64 chunked), XY telemetry, docs links. ([GitHub][4])
- Hardware stack: RPLIDAR S2L, BNO055 IMU, ATmega32U4 MCU, Jetson Orin Nano (also compatible with Jetson Nano per SDK).
- LiDAR: RPLIDAR S2L, 360°, ~0.12° res. At 10 m range, max adjacent-beam spacing ≈ 2.1 cm (Δx = r·θ).
- Processor: Target Jetson Orin Nano (ARM Linux). RPLIDAR SDK supports embedded ARM Linux (e.g., Orin Nano); the team also validated with Jetson Nano.
- MCU: ATmega32U4 for motor control over drivers (USB serial).
- IMU: BNO055 (on-board fusion).
# On Jetson (Ubuntu), install deps
sudo apt update
sudo apt install -y build-essential cmake libopencv-dev
# Clone and build
git clone https://github.com/AMR-Vanguard/Slam-From-scratch-and-Navigation.git
cd Slam-From-scratch-and-Navigation
mkdir build && cd build
cmake ..
make
# Run
./mainRequires Eigen and the RPLIDAR S2L SDK (place Eigen in External/eigen, SDK in rplidar_sdk/). ([GitHub][1])
- Open the AMR-firmware solution in Microchip Studio, target ATmega32U4, then build/flash via USB bootloader. Features PWM motor drive and serial command handling. ([GitHub][3])
git clone https://github.com/AMR-Vanguard/User-Interface.git
cd User-Interface
npm install
npm run devDefault MQTT WS broker: ws://test.mosquitto.org:8081. Topics include:
amr/state(map,start,stop)amr/coordinates/x-axis,amr/coordinates/y-axisamr/map/image(base64 image chunks) ([GitHub][4])
- Power on robot + Jetson, open the local web UI.
- Start Mapping → SLAM builds a 2D map in real-time.
- Click destination on map → coordinates auto-filled.
- Start to navigate (A* over SLAM map, obstacle-aware); Stop for immediate halt.
- Intended use: structured indoor facilities; not for public or clinical spaces.
- Robot interface: main Power button, LED battery voltage, BMS charge switch, XT60 port, USB for comms.
- Battery: GAONENG GNB 6S 22.2 V 5000 mAh; charge at 0.5–1 C; observe storage/thermal precautions.
- Perception: RPLIDAR S2L → scan data → ICP → occupancy grid
- Localization: EKF (IMU + odometry + LiDAR consistency)
- Planning: A* global → velocity profiler (v, ω) → MCU over USB serial
- Control: ATmega32U4 → motor drivers → wheels
- Ops UI: React/Vite app via MQTT (WS) for map/telemetry/commands ([GitHub][1]) ([GitHub][3]) ([GitHub][4])
This is a multi-repo project; each sub-repo has its own license (e.g., SLAM: MIT; Firmware: GPL-3.0; Enclosure: MIT). Check the LICENSE file in each repository. ([GitHub][1]) ([GitHub][3]) ([GitHub][7])
- SLAM algorithm design grounded in Probabilistic Robotics and refined through iterative lab mapping & navigation trials.
- Hardware selections and error analysis documented in the EDR design report.
See Power repo for torque, current and distribution notes (e.g., 25 kg robot, 5 kg payload, mapping ≈105 W). ([GitHub][5])