Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Navigator v0.01

Welcome to the Autonomous Navigation Documentation repository. This project serves as a comprehensive knowledge base, reference guide, and practical resource for mobile robot navigation, SLAM (Simultaneous Localization and Mapping), motion planning, and ROS/ROS2 implementation.


📌 Overview

This repository aggregates architectural concepts, algorithmic explanations, setup guides, and configuration references required to deploy autonomous navigation stacks on mobile robots (e.g., differential drive, ackermann steering, holonomic platforms).

Key Focus Areas

  • Localization & Mapping: 2D/3D SLAM algorithms (Cartographer, GMapping, RTAB-Map, AMCL).
  • Path Planning & Navigation: Global planners (A*, Dijkstra) and local controllers (TEB, DWA, Regulated Pure Pursuit).
  • Robot Operating System: Integration guides for ROS 1 and ROS 2 (Nav2).
  • Sensor Fusion: Integrating LiDAR, IMU, Wheel Odometry, and Depth Cameras (robot_localization, Extended Kalman Filters).

🏗 System Architecture

The typical navigation pipeline documented in this repository follows the standard ROS 2 / Nav2 conceptual framework:


+-----------------------------------------------------------------------+
|                                 MAP                                   |
+-----------------------------------------------------------------------+
|                                                 |
v                                                 v
+--------------+       +-------------------+     +---------------+
| Global Planner| ----> |  Behavior Tree    | --> | Local Planner |
|  (A*, Dijkstra|       |  (BT Navigator)   |     | (TEB / DWA)   |
+--------------+       +-------------------+     +---------------+
|
v
+--------------+
| Motor Control|
|  (/cmd_vel)  |
+--------------+


📁 Repository Structure


Autnomous-nav-DOCS/
├── docs/
├── slam/                  # SLAM algorithms setup & tuning guidelines
│   ├── 2d_slam.md
│   └── 3d_slam.md
├── navigation/            # Path planning, obstacle avoidance, & costmaps
│   ├── costmap_config.md
│   └── controller_tuning.md
├── sensors/               # Sensor calibration, driver setups, & fusion
│   ├── imu_calibration.md
│   └── lidar_fusion.md
├── ros2_nav2/             # Nav2 stack setup, launch files, and param templates
└── assets/                # Diagrams, architecture flowcharts, & media


🚀 Quick Start & Prerequisites

Prerequisites

  • OS: Ubuntu 22.04 LTS (Jammy Jellyfish) or later
  • Framework: ROS 2 Humble / Iron / Jazzy
  • Dependencies:
    sudo apt update
    sudo apt install ros-<ros2-distro>-navigation2 \
                     ros-<ros2-distro>-nav2-bringup \
                     ros-<ros2-distro>-turtlebot3*
    
    

### Getting Started

1. **Clone the Repository:**
```bash
git clone [https://github.com/hermanumrao/Autnomous-nav-DOCS.git](https://github.com/hermanumrao/Autnomous-nav-DOCS.git)
cd Autnomous-nav-DOCS

  1. Explore Documentation: Browse through the docs/ or specific topic directories to view detailed guides on system configuration and sensor tuning.

⚙️ Hardware & Simulation Setup

Simulated Testbench

To test navigation workflows without physical hardware:

export TURTLEBOT3_MODEL=waffle
ros2 launch nav2_bringup tb3_simulation_launch.py slam:=True

Physical Robot Target Specs

  • Microcontroller/SBC: Raspberry Pi 4 / NVIDIA Jetson Orin Nano
  • Sensors: 2D RPLiDAR A1/A2, 6-axis IMU (MPU6050/BNO055), Wheel Encoders
  • Motor Drivers: L298N / Cytron MDD10A driven via Arduino/ESP32 ROS2 nodes

🤝 Contributing

Contributions, fixes, and updates to documentation are welcome!

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/NewDocSection).
  3. Commit your Changes (git commit -m 'Add documentation for 3D LiDAR SLAM').
  4. Push to the Branch (git checkout origin feature/NewDocSection).
  5. Open a Pull Request.

📄 License

Distributed under the MIT License. See LICENSE for more details.