
Run the full ROS2 path planning and maze solving project without docker by cloning the repo, installing dependencies, building the workspace, sourcing setup, and launching the maze simulation.
Design a differential drive robot for simulation by varying wheel speeds to steer, selecting a simple two-wheel dolly platform for maneuverability, and modeling it in Fusion 360.
Model the maze solving robot in Fusion 360 by sketching a car side view, extruding to form the body, adding wheel spaces with circles, and mirroring to complete both sides.
Design a robot body in Fusion 360 using cylinders and wheels, refine with fillets and circular patterns, then export the model as a mesh and apply ROS related commands.
Import STL meshes from CAD into ROS, export base and parts as 3D mesh files, and resize them in Blender to fit simulation; establish parent–child links and joints for movement.
Resize robot meshes and establish origin-aligned parent-child relationships to build a functioning robot model, using Blender and export workflows (SDL) to accurately position joints and links.
Implement a go-to-goal algorithm in ROS2, computing distance and angle to the goal from robot and goal poses, using orientation conversion, geometry messages, and 0.2-second updates.
drive to goal by calculating angle to turn from angle to goal and distance to go, then publish velocity commands to rotate and move toward the goal.
Design and solve custom mazes for ROS2 path planning with computer vision by building start-to-end layouts, exploring multiple paths, and simulating with Gazebo to identify the best route.
Install a Gazebo camera plugin to provide a top view of the maze, configure image size and 30 fps, and record video for computer vision path planning and maze solving.
Increase camera height and fix colors from gray to blue to improve wall visibility for maze solving, then test with video recording and adjust the field of view.
Build a ROS2 video saver node to record camera frames into a 1280x720 video for computer vision tasks, using an image subscriber, cv_bridge, and OpenCV to convert and save frames.
Localize the robot at each iteration by extracting its position and orientation from the overhead image of the maze. Differentiate localization from SLAM and emphasize frame-by-frame updates for up-to-date information.
Apply background subtraction to localize the robot by modeling the static scene, extract the foreground, and track the robot across frames using absolute difference.
Builds a background extraction pipeline for robot localization, including edge detection, region of interest masking, car removal, and a background model used to compute the maze occupancy grid.
Learn to perform background subtraction for foreground extraction, detect the car with absolute difference, convert to grayscale, threshold to reveal the car mask, and compute its relative maze location.
Identify interest points in a maze occupancy grid to build a compact path graph. An interest point is a decision node, such as dead ends and turns.
Stage two covers mapping a localized maze into a graph by simplifying pathways and extracting interest points such as start, end, dead ends, and junctions using OpenCV techniques.
Test and debug the mapping module for ROS2 path planning using a tiny 10x10 maze to visualize interest points, neighbor connections, and path costs, ensuring proper reset parameters.
Implement a min-heap based priority queue to efficiently select the least-cost node in path planning. Learn binary heap properties, array representation, extract-min and decrease-key operations, and their O(log n) time.
Explore obstacle navigation theory for ROS2 maze solving, addressing localization errors, uneven surfaces, and overshoot by backtracking to new goals not too close to the last when stagnation occurs.
I celebrate everyone involved, especially you, our students, and offer a starting point for tackling robot navigation problems in ROS2 path planning and maze solving with computer vision.
This course is focus on Maze Solving behavior of robot In a Simulation based on ROS2. Computer Vision is the key focus with integrated important robotics algorithms of Motion Planning . The type of robot we will be using is Differential Drive Robot with a caster wheel . Course is structured with below main headings .
Custom Robot Creation
Gazebo and Rviz Integerations
Localization
Navigation
Path Planning
From our robot to last computer vision Node ,we will create every thing from scratch . Python Object Oriented programming practices will be utilized for better development.
Learning Outcomes
- Simulation Part
Creation Custom Robot Design in Blender ( 3D modeling )
Bringing Maze Bot into ROS Simulation powered by Gazebo and RVIZ
Drive your robot with Nodes
Add Sensor for better perception of Environment
Build different Mazes to be solved
- Algorithm Part
Localization with Fore and Back ground extraction
Mapping with Graphs Data Structure
Path Planning with
A* search
Dijikstra
DFS Trees
Min Heap
Navigation while avoiding Obstacles and GTG behavior
Pre-Course Requirments
Software Based
Ubuntu 20.04 (LTS)
ROS2 - Foxy Fitzroy
Python 3.6
Opencv 4.2
Skill Based
Basic ROS2 Nodes Communication
Launch Files
Gazebo Model Creation
Motivated mind :)
All the codes for reference are available on git hub repository of this course .
Get a good idea by going through all of our free previews available and feel free to Contact in case of any confusion :)