Compute Core
The Raspberry Pi 4 Model B serves as the central processing unit — running the SLAM engine, managing sensor I/O, and maintaining the live spatial map in real time.
| Component | Specification | Role |
|---|---|---|
| Raspberry Pi 4 Model B | Broadcom BCM2711 · 4-core 1.8 GHz | Main compute · SLAM runtime |
| RAM | 4 GB LPDDR4-3200 | Map buffer · process isolation |
| Storage | 32 GB Class 10 microSD | OS · map persistence |
| OS | Raspberry Pi OS Lite (64-bit) | Headless runtime |
| Power | USB-C 5V/3A · optional LiPo HAT | Field portable |
Sensing Array
Three complementary sensors on the I²C bus and a dedicated UART LiDAR unit provide full spatial and thermal situational awareness.
| Sensor | Interface | Key Spec | Purpose |
|---|---|---|---|
| RPLIDAR A1M8 | UART / USB | 360° · 5.5 Hz · 12 m range | Primary LiDAR — 2D SLAM |
| MLX90640 | I²C (0x33) | 32×24 px · −40 to +300°C | Thermal array — victim detection |
| MPU-6050 | I²C (0x68) | 6-DOF IMU · 16-bit ADC | Gyroscope + accelerometer — odometry correction |
| BMP280 | I²C (0x76) | ±1 hPa · ±0.5°C | Ambient temp / pressure logging |
Software Stack
The SLAM pipeline is implemented in Python, leveraging established robotics libraries with a lightweight custom mapping layer tuned for resource-constrained hardware.
| Component | Library / Tool | Notes |
|---|---|---|
| SLAM Engine | Hector SLAM / custom EKF | 2D occupancy grid mapping |
| LiDAR Driver | rplidar-python | Slamtec SDK wrapper |
| Thermal Driver | smbus2 · custom MLX90640 lib | 32×24 frame @ 4 Hz |
| IMU Fusion | mpu6050-raspberrypi | Complementary filter |
| Map Output | PGM / PNG via Pillow | Compatible with ROS map_server |
| Runtime | Python 3.11 · asyncio | Non-blocking sensor loop |
How SLAM Works
Simultaneous Localization and Mapping (SLAM) allows the module to build a spatial map of its surroundings while simultaneously tracking its own position within that map — without GPS or any prior knowledge of the environment.
Scan
LiDAR emits 360° laser pulses, measuring the time-of-flight to reflect distance to every surface within range.
Match
Each new scan is compared against the current map using iterative closest point (ICP) matching to estimate movement.
Update
The occupancy grid is updated with new obstacle data, and the EKF corrects positional drift using IMU sensor fusion.