A comprehensive collection of production-grade robotics simulations, perception pipelines, and autonomous navigation architectures implemented using ROS 2 Humble, Gazebo, OpenCV, and Python/C++.
- Multi-Node Coordination: Developed modular Python packages utilizing independent nodes to execute concurrent geometric trajectories (circles, squares, triangles) via
cmd_veltopic 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), implementedrosbagdata logging for flight-recorder playback, and visualized real-time kinematic data usingrqt_plot.
- Reactive LiDAR Navigation: Subscribed to raw TurtleBot3
/scantopics in Gazebo to filter outinf/NaNsensor 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).
- Vision-Based Target Tracking: Processed raw
/camera/image_rawstreams 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
/scanLiDAR 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.
week1/— ROS 2 workspace setup, custom Python package creation, persistent run counters, and parameters.week2/— Turtlesim node execution, custom trajectory paths, and interactiverqtnode 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, androsbagrecording.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.
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