Skip to content

tarekbzahid/AutoNav-ROS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

33 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

AutoNav-ROS

Autonomous Navigation ROS Platform

ROS Platform Python License

๐Ÿ“š Course Project: ECG711 - Embedded Systems for Automation

An autonomous mobile robot platform built with ROS (Robot Operating System), featuring differential drive navigation, SLAM mapping, PID control, and real-world hardware implementation on Jetson Nano.

Physical Robot

Yahboom ROSMASTER X1 Robot with RPLidar A3 and Jetson Nano

Author

Tarek Z YouTube Playlist: ECG 711 Course Videos

๐ŸŽฏ Project Highlights

This repository demonstrates practical applications of embedded systems concepts in robotics, including:

  • ROS Architecture - Multi-node communication and topic-based messaging
  • Differential Drive Kinematics - Mathematical modeling and simulation
  • PID Control Systems - Autonomous goal-seeking navigation
  • 3D Robot Modeling - URDF/XACRO for Gazebo and RViz
  • Sensor Fusion - IMU and LiDAR integration
  • SLAM Implementation - Real-time mapping with gmapping/Hector SLAM
  • Embedded Hardware - Jetson Nano + STM32 motor control

๐Ÿ“ธ Visual Showcase

RViz Visualization
RViz Robot Model Visualization
URDF modeling with sensor integration
PID Navigation
PID Controller Navigation
Autonomous goal-seeking behavior
SLAM Mapping
Real-time SLAM Mapping
Gmapping with RPLidar A3
Generated Map
Environment Map Output
Occupancy grid from SLAM

๐Ÿ—๏ธ System Architecture

graph TD
    A[Driver Node] -->|cmd_vel| B[Robot Base Controller]
    C[Goal Position] -->|target_pose| D[PID Controller Node]
    D -->|cmd_vel| B
    B -->|wheel_velocities| E[Differential Drive Kinematics]
    E -->|pose| F[Localization]
    G[RPLidar A3] -->|scan| H[SLAM Node<br/>gmapping/hector]
    I[IMU Sensor] -->|imu_data| F
    H -->|map| J[Navigation Stack]
    F -->|odom| H
    J -->|visualization| K[RViz]
    H -->|map| K

    style A fill:#4CAF50
    style D fill:#2196F3
    style H fill:#FF9800
    style B fill:#9C27B0
    style K fill:#F44336
Loading

๐Ÿ› ๏ธ Technologies Used

Category Technology
Framework ROS Melodic
Programming Python 3
Simulation Gazebo, RViz
Operating System Ubuntu 18.04
Computing Platform NVIDIA Jetson Nano
Microcontroller STM32 (Motor Control)
Sensors RPLidar A3, IMU
Algorithms Gmapping SLAM, Hector SLAM, PID Control

๐Ÿ“š Project Modules

Built the foundation for robot control with a driver-simulator architecture.

Implementation:

  • Driver Node: Publishes differential wheel velocity commands via cmd_vel topic
  • Simulator Node: Real-time pose calculation using differential drive kinematics

Skills: ROS topics, publishers/subscribers, differential kinematics, pose estimation


Developed intelligent autonomous navigation using closed-loop PID control.

Implementation:

  • Driver Node: Publishes target destinations as Pose2D messages
  • Controller Node: PID-based trajectory planning with error minimization

Skills: PID tuning, feedback control systems, autonomous navigation algorithms


Created accurate 3D robot models for simulation and visualization.

Implementation:

  • URDF/XACRO robot description with sensor integration
  • RPLidar A3 sensor model and mounting configuration
  • Gazebo physics simulation and RViz real-time visualization

Skills: Robot modeling (URDF/XACRO), sensor integration, simulation environments


Deployed the complete system on real hardware with full sensor integration.

Implementation:

  • Hardware assembly: Jetson Nano + STM32 + motors + LiDAR + power system
  • Ubuntu 18.04 and ROS Melodic installation on embedded platform
  • Multi-stage calibration: IMU, linear velocity, angular velocity
  • Real-world SLAM mapping using gmapping algorithm

Skills: Embedded Linux, hardware-software integration, sensor calibration, production robotics


โœจ Key Features

  • โœ… Multi-Node ROS Architecture - Distributed system design with topic-based communication
  • โœ… Differential Drive Control - Mathematical modeling and real-time kinematics
  • โœ… PID-based Navigation - Autonomous goal-seeking with tuned controllers
  • โœ… SLAM Mapping - Real-time environment mapping using LiDAR
  • โœ… Sensor Fusion - IMU and odometry integration for accurate localization
  • โœ… Hardware Integration - Complete embedded system deployment on Jetson Nano
  • โœ… Simulation & Visualization - Gazebo physics simulation and RViz 3D visualization
  • โœ… Production-Ready Calibration - Systematic sensor and actuator tuning procedures

Getting Started

Prerequisites

  • Ubuntu 18.04 (or compatible)
  • ROS Melodic
  • Python 3
  • Catkin build system

Basic Setup

  1. Clone this repository:

    git clone https://github.com/tarekbzahid/ECG711-Embedded-Systems-for-Automation.git
    cd ECG711-Embedded-Systems-for-Automation
  2. Navigate to the specific assignment directory:

    cd "Assignment 1"  # or Assignment 2, 3, 4
  3. Follow the instructions in each assignment's README for detailed setup and execution steps.

Building a Catkin Workspace (General)

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source devel/setup.bash

Project Structure

ECG711-Embedded-Systems-for-Automation/
โ”œโ”€โ”€ Assignment 1/          # Differential drive simulation
โ”‚   โ”œโ”€โ”€ catkin_ws/
โ”‚   โ”œโ”€โ”€ images/
โ”‚   โ””โ”€โ”€ README.md
โ”œโ”€โ”€ Assignment 2/          # PID controller navigation
โ”‚   โ”œโ”€โ”€ catkin_ws/
โ”‚   โ”œโ”€โ”€ images/
โ”‚   โ””โ”€โ”€ README.md
โ”œโ”€โ”€ Assignment 3/          # URDF modeling and visualization
โ”‚   โ”œโ”€โ”€ catkin_ws/
โ”‚   โ”œโ”€โ”€ images/
โ”‚   โ””โ”€โ”€ README.md
โ”œโ”€โ”€ Assignment 4/          # Physical robot setup
โ”‚   โ”œโ”€โ”€ images/
โ”‚   โ””โ”€โ”€ README.md
โ””โ”€โ”€ README.md              # This file

Resources

๐Ÿ“„ License

This project was developed as part of ECG711 (Embedded Systems for Automation) coursework and is intended for educational purposes.

Acknowledgments

  • Course instructor and teaching assistants
  • Yahboom for robot hardware and documentation
  • ROS community for excellent documentation and packages

About

An autonomous mobile robot platform built with ROS (Robot Operating System), featuring differential drive navigation, SLAM mapping, PID control, and real-world hardware implementation on Jetson Nano. Project files for ECG711 Embedded Systems for Automation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors