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
- 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!
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/NewDocSection). - Commit your Changes (
git commit -m 'Add documentation for 3D LiDAR SLAM'). - Push to the Branch (
git checkout origin feature/NewDocSection). - Open a Pull Request.
📄 License
Distributed under the MIT License. See LICENSE for more details.