Skip to content

IkkiOcean/NAMI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NAMI – Navigational Autonomous Mapping Intelligence

LiDAR-based Autonomous Robot for Indoor Navigation and Logistics Automation

ROS Python License Platform

NAMI Robot

Major Academic Project (2025–2026)
B.Tech Computer Science & Engineering (Artificial Intelligence)
Dr. APJ Abdul Kalam University, India


πŸ“– Overview

Many indoor environments such as offices, hospitals, and warehouses still rely on manual transportation of files, supplies, and materials. This consumes valuable time and diverts staff from their core responsibilities.

NAMI addresses this challenge by introducing an autonomous navigation system that can map unknown indoor environments, localize itself, plan optimal routes, and avoid obstaclesβ€”all without requiring external infrastructure such as magnetic tracks or fiducial markers.

The system demonstrates that robust autonomous navigation can be achieved using classical SLAM algorithms on affordable hardware, making logistics automation accessible for educational institutions and small-scale deployments.

Key Goals

  • βœ… Infrastructure-free navigation – No magnetic tracks, QR codes, or pre-installed markers
  • βœ… Autonomous environment mapping – Builds maps while exploring unknown spaces
  • βœ… Real-time obstacle avoidance – Safely navigates around static and dynamic obstacles
  • βœ… Reliable operation – Maintains consistent performance in dynamic environments

πŸŽ₯ Demo

NAMI Navigation Demo

NAMI autonomously mapping and navigating through an office corridor environment


✨ Features

  • πŸ—ΊοΈ SLAM-based Mapping – Simultaneous Localization and Mapping for real-time map generation
  • πŸ“‘ 360Β° LiDAR Scanning – Complete environmental perception with YDLIDAR X2
  • 🧭 Intelligent Path Planning – A* algorithm for optimal route calculation
  • 🚧 Dynamic Obstacle Avoidance – Real-time detection and route adjustment
  • πŸ€– Autonomous Navigation – Point-to-point navigation without human intervention
  • πŸ’» Embedded Processing – Runs on Raspberry Pi 4 without GPU acceleration
  • πŸ”‹ Extended Operation – 5+ hours continuous runtime on battery

πŸ—οΈ System Architecture

Hardware Components

Circuit Diagram

Component Model/Type Specifications
Processor Raspberry Pi 4B Quad-core ARM Cortex-A72 @ 1.5GHz, 4GB RAM
LiDAR Sensor YDLIDAR X2 360Β° coverage, 8-12m range, 0.45Β° resolution, 6-7Hz scan rate
IMU MPU-6050 6-axis (accelerometer + gyroscope), 100Hz, DMP fusion
Wheel Encoders Optical coupling 100 pulses/revolution, 5mm resolution
Motors DC Brushed Gearmotor 125 RPM @ 12V, dual-shaft configuration (4 motors)
Motor Driver L298N H-Bridge Dual channel, 2A per channel
Battery 3S LiPo 11.1V, 5200mAh, 57.72Wh capacity
Chassis Differential Drive 35cm Γ— 30cm Γ— 20cm, 5cm ground clearance

Software Stack

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          ROS Humble (Ubuntu 20.04)          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Navigation & Planning                      β”‚
β”‚  β”œβ”€ SLAM Toolbox (mapping & localization)   β”‚
β”‚  β”œβ”€ A* Global Planner (path planning)       β”‚
β”‚  └─ DWA Local Planner (obstacle avoidance)  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Sensor Processing                          β”‚
β”‚  β”œβ”€ ydlidar_ros_driver (LiDAR)              β”‚
β”‚  β”œβ”€ encoder_odom.py (wheel odometry)        β”‚
β”‚  └─ mpu6050_driver (IMU fusion)             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Motor Control & Actuation                  β”‚
β”‚  └─ motor_bridge.py (L298N control)         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

βš™οΈ How It Works

1. Environment Scanning

The YDLIDAR X2 sensor continuously scans 360Β° around the robot, generating approximately 800 distance measurements per rotation at 6-7Hz frequency.

2. Simultaneous Localization and Mapping (SLAM)

  • Graph-based SLAM fuses LiDAR scans with wheel odometry and IMU data
  • Builds a 2D occupancy grid map (5cm resolution)
  • Maintains robot pose estimate within the map
  • Loop closure detection corrects accumulated drift

3. Path Planning

  • Global planner uses A algorithm* to compute optimal paths through the occupancy grid
  • Considers obstacles, clearance, and distance to goal
  • Updates routes when new obstacles are detected

4. Obstacle Avoidance

  • Dynamic Window Approach (DWA) evaluates velocity commands over short time horizons
  • Real-time reaction to moving obstacles (pedestrians, furniture)
  • Maintains safety margins around obstacles

5. Motor Control & Execution

  • Translates velocity commands to differential wheel speeds
  • PWM control via L298N motor drivers
  • Continuous feedback from encoders for accurate motion

πŸ“Š Generated Maps

Office Map Apartment Map

Left: Office corridor T-shaped environment
Right: Multi-room layout with furniture

Maps generated using SLAM Toolbox. Black = obstacles, White = free space, Gray = unexplored


🎯 Applications

NAMI can be deployed in environments requiring indoor transport automation:

πŸ₯ Healthcare Facilities

  • Transporting lab samples between departments
  • Medicine delivery to nursing stations
  • Document and file distribution

🏒 Corporate Offices

  • Internal mail and document distribution
  • Supply delivery to workstations
  • Cafeteria service automation

πŸ“¦ Warehouses & Logistics

  • Inventory movement between zones
  • Order picking assistance
  • Material transport to packing stations

🏨 Hospitality Industry

  • Room service delivery
  • Luggage transportation
  • Linen and supply distribution

πŸ› οΈ Installation

Prerequisites

Hardware Requirements:

  • Raspberry Pi 4B (2GB RAM minimum)
  • 16GB+ microSD card
  • All components from hardware table above

Software Requirements:

  • Ubuntu 20.04 LTS (Raspberry Pi)
  • ROS Humble
  • Python 3.8+

Manual Component Startup

⚠️ Start in this order:

  1. Encoder Odometry (MUST START FIRST)
python3 encoder_odom.py
# Wait for "Encoder odom ready"
  1. LiDAR Driver
ros2 launch ydlidar_ros2_driver ydlidar_launch.py
  1. SLAM System
ros2 launch slam_toolbox online_async_launch.py \
    params_file:=$HOME/mapper_params_online_async.yaml
  1. Motor Control
python3 motor_bridge.py
  1. Explore Stack
python3 explore.py

πŸ”¬ Research & Development

Current Capabilities

βœ… Real-time 2D SLAM on Raspberry Pi 4
βœ… Multi-sensor fusion (LiDAR + IMU + Encoders)
βœ… Autonomous navigation in structured environments
βœ… Dynamic obstacle avoidance

Future Enhancements

  • 3D Obstacle Detection – Add depth camera (Intel RealSense)
  • Semantic Mapping – Object recognition and classification
  • Multi-Robot Coordination – Fleet management system
  • Predictive Obstacle Avoidance – ML-based trajectory prediction
  • Voice Commands – Natural language navigation interface
  • Elevator Navigation – Multi-floor operation capability
  • Battery Management – Auto-return to charging station

πŸ“š Documentation


🀝 Contributing

Contributions are welcome! This project is maintained as an educational resource.

How to contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/improvement)
  3. Commit changes (git commit -m 'Add improvement')
  4. Push to branch (git push origin feature/improvement)
  5. Open a Pull Request

Areas for contribution:

  • Improved calibration algorithms
  • Additional sensor drivers (ultrasonic integration)
  • Enhanced navigation behaviors
  • Documentation improvements
  • Bug fixes and optimization

πŸ“„ License

This project is licensed under the Creative Commons Attribution–NonCommercial 4.0 International License (CC BY-NC 4.0).

You are free to:

  • βœ… Share and adapt the material
  • βœ… Use for research or educational purposes

Under these conditions:

  • πŸ“ Proper attribution must be given to the original authors
  • 🚫 Material may not be used for commercial purposes

Full license text: https://creativecommons.org/licenses/by-nc/4.0/


πŸ‘₯ Authors

Vivek Prakash
Department of Computer Science & Engineering (Artificial Intelligence)
Dr APJ Abdul Kalam University, India

Major Academic Project (2025–2026)


πŸ“ž Contact

Issues & Questions: GitHub Issues

Email: vivekprakashindia@gmail.com


⭐ Acknowledgments

  • ROS community for excellent middleware and tools
  • SLAM Toolbox developers for robust graph-based SLAM
  • Open-source robotics community for inspiration and resources
  • YD-lidar for their documention and maintainance

πŸ“Š Project Status

🟒 Active Development – Currently maintained and accepting contributions

Last Updated: May 2026
Version: 1.0.0
ROS Distribution: Humble Target Platform: Raspberry Pi 4B


⭐ If you find this project useful, please consider giving it a star! ⭐

Built with ❀️ for autonomous robotics research and education

About

Navigational Autonomous Mapping Intelligence

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages