Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Mobile Robotics & ROS 2 Portfolio

A comprehensive collection of production-grade robotics simulations, perception pipelines, and autonomous navigation architectures implemented using ROS 2 Humble, Gazebo, OpenCV, and Python/C++.


Core Engineering Modules

1. Distributed ROS 2 Architecture & Control Loops

  • Multi-Node Coordination: Developed modular Python packages utilizing independent nodes to execute concurrent geometric trajectories (circles, squares, triangles) via cmd_vel topic streaming.
  • Proportional Navigation (Pursuit Control): Engineered custom tracking nodes implementing proportional control loops to calculate Euclidean distance and heading errors between dynamic entities.
  • Deterministic File I/O: Built persistent state mechanisms into ROS 2 nodes to bypass execution resets using local file handlers.
  • System Observability: Configured automated launch files (turtlesim_launch.py), implemented rosbag data logging for flight-recorder playback, and visualized real-time kinematic data using rqt_plot.

2. Autonomous Navigation & Mapping (Nav2 & SLAM)

  • Reactive LiDAR Navigation: Subscribed to raw TurtleBot3 /scan topics in Gazebo to filter out inf/NaN sensor anomalies and execute real-time reactive obstacle avoidance based on directional arrays.
  • SLAM & Localization: Configured Cartographer and AMCL particle filters to map static environments and manage initial pose convergence within RViz.
  • Global & Local Costmaps: Integrated the Nav2 stack, utilizing global costmaps for long-distance path planning (NavFn/Smac Planner) and rolling local costmaps for dynamic collision avoidance via the DWB controller.
  • Waypoint Mission Planning: Programmatically commanded autonomous inspection patrols using multi-waypoint coordinate injection and Behavior Server recovery routines (spinning/backing up).

3. Embodied AI & Computer Vision (OpenCV)

  • Vision-Based Target Tracking: Processed raw /camera/image_raw streams inside custom ROS 2 nodes using OpenCV, implementing dual-range HSV color segmentation and pixel-area thresholding (m00 > 50000) for robust feature extraction.
  • Subsumption Control Architecture: Fuzzed vision data with /scan LiDAR streams to build state-machine behaviors prioritizing obstacle avoidance, short-term visual memory, and random-walk recovery when targets are lost.
  • Robot Modeling (URDF): Designed custom mobile robot descriptions from scratch, defining physical offsets (base_footprint), continuous differential drive wheels, caster assemblies, and mounted LiDAR sensors.

Repository Structure

  • week1/ — ROS 2 workspace setup, custom Python package creation, persistent run counters, and parameters.
  • week2/ — Turtlesim node execution, custom trajectory paths, and interactive rqt node graph / service management.
  • week3/ — Multi-node concurrent execution using math libraries (math.pi) to eliminate open-loop accumulation drift.
  • week4/ — Automated launch files, proportional follower control logic, and rosbag recording.
  • week5/ — SLAM mapping infrastructure configuration.
  • week6/ — Reactive LiDAR obstacle avoidance and raw sensor data filtering.
  • week7/ — Nav2 stack integration, costmap inflation tuning, and multi-waypoint mission scripting.
  • week8/ — URDF mobile robot modeling, joint kinematics, and sensor mounting.
  • week9/ — OpenCV HSV color-segmentation, target tracking, and multi-sensor fusion state machines.

Running the Simulations

Ensure you are running an Ubuntu 22.04 environment with ROS 2 Humble installed.

Clone and build the workspace and run specific lab nodes using standard ROS 2 commands:

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/M-Abdullah5/MR_Lab_MuhammadAbdullah.git
cd ..
colcon build --symlink-install
source install/setup.bash
ros2 run my_turtle_package circle_node

About

Mobile Robotics Labs

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages