Mobile Robotics Engineer

Luqman
Course Overview
Welcome to your pathway to becoming a Robotics Software Engineer. This comprehensive program is designed to elevate your software engineering skills, focusing on practical robotics applications using C++ and ROS2. You’ll begin with core concepts and progress through advanced topics, providing you with a deep understanding of software development for robotics.
Modules Overview:
Robots URDF and Kinematics Modeling
- Explore URDF for robot modeling, add 3D meshes for mobile robots and robotic arms, and understand physical properties through Gazebo simulations.
Robotics Sensing and Processing
- Work with ROS2 to process sensor data, learning both online and offline data processing methods essential for real-world robotics.
Control Systems with ROS2 Control
- Study control systems including PID, LQR, and optimal control techniques, and implement these in various robotics projects using
ros2_control
with multiple controller types.
Version Control with GitHub
- Master GitHub for version control, collaborative development, and best practices in managing robotics projects.
Mapping and SLAM
- Learn to perform SLAM for both 2D and 3D environments, write mapping algorithms, and utilize ROS2 for robust 2D and 3D mapping.
Path Planning Algorithms
- Discover path planning algorithms, including RRT, A*, and Grid Sweep, for effective navigation within robotic applications.
Navigation
- Integrate mapping, planning, and control to enable mobile robot navigation using Nav2, building towards autonomous robot movement.
Algorithm Development :
- Developing Path Planning , Control System and Sensor Fusion algorithms
Throughout the learning path, you’ll engage in hands-on assignments that reinforce key concepts from each module.
Our clear submission process and dedicated Discord channel ensure you receive ongoing support and feedback on your journey.
Course Content
- Learning Path Guidelines
-
Robots URDF and Kinematics Modeling
-
Module Introduction
00:01:00 -
Understanding Transforms
00:04:00 -
Static Transforms with TF2
00:08:11 -
Mobile Robot and Transforms in URDF
00:05:08 -
Robot Structure Tree with URDF
00:06:14 -
Creating a Mobile Robot with URDF
00:05:37 -
Adding Visual Body Elements in URDF
00:05:46 -
URDF changes for Gazebo
00:05:12 -
Gazebo Plugins and why?
00:02:44 -
Mobile robot drive pluging for Gazebo
00:04:12 -
Gazebo vs Rviz Comparison
00:00:49 -
Simulation vs Real Robot Challenges
00:00:58 -
Mobile Robot Development Components and Wiring
00:02:13 -
Building robot
00:11:11 -
Electric Mottor Driving Components
00:02:21 -
Programming the MicroController using Platformio
00:04:40 -
Porgramming Motor Controlling
00:05:32 -
Understand difference between ROS2 , Platformio , Gazebo
00:01:19 -
MicroROS example on ESP32
00:05:02 -
MicroROS node Communication
00:06:50 -
MicroROS complete Server Client Example
00:06:33 -
Velocity sending standard in ROS2 Ecosystem
00:01:16 -
Creating cmd_vel topic through microROS
00:06:38 -
Sending Velocity to drive Robot
00:06:31 -
Module 1 : Recap
00:01:21 -
URDF and Robot Creation in ROS 2
-
-
Robotics Sensing and Processing
-
Module Introduction
00:00:36 -
Project Maze Solving
00:02:20 -
Alias for easy compilation and building
00:05:00 -
Lidar Sensor on Turtlebot3
00:06:11 -
Lidar Data Understanding
00:02:28 -
Lidar Data Grouping
00:03:17 -
Maze Creation
00:02:08 -
Maze and World Arrangement
00:06:23 -
Maze Solving Understanding
00:06:22 -
Maze Solving Using Lidar
00:04:41 -
As a developer you write good code.
00:00:58 -
Maze Solving Code Design
00:03:45 -
Restructuring Maze Solving project Code
00:09:48 -
Project Vision based Line Following
00:01:04 -
Camera Sensor Data Understanding
00:04:42 -
Gazebo Line World
00:01:51 -
Line Segmentation
00:05:23 -
Boundary Extraction
00:06:00 -
Mid Point Extraction
00:04:09 -
Line Following
00:07:30 -
Simulation to Real Robot Positioning
00:00:56 -
Real Robot Sensors
00:00:30 -
Encoder Sensor Interface on ESP32
00:03:41 -
Encoder Sensor Output Analysis
00:02:14 -
IMU Sensor Interfaceon ESP32
00:02:52 -
IMU Sensor Output Analysis
00:01:45 -
Creating libraries for IMU and Encoders
00:09:54 -
Analysing output of our sensors
00:00:36 -
Why we need MicroROS
00:00:30 -
MicroROS Interface for our Robot
00:08:39 -
Analysing MicroROS communication
00:02:34 -
Connecting Robot Upper Portion for Lidar
00:03:06 -
Why do we need a raspberry pi ?
00:01:06 -
Installing Ubuntu on RPI
00:07:05 -
Visualizing Lidar Data in RVIZ2
00:03:35 -
Understanding Lidar Data visually
00:05:59 -
Processing Lidar Data by splitting
00:03:40 -
ESP32 MicroROS and RPI ROS2 Communication
00:09:48 -
Generating Odom from Encoders
00:10:52 -
Sensor Data Manipulation for Robot Control
-
-
Control Systems with ROS2 Control
-
Module Introduction
-
C++ Efficient Programming Habit
00:01:00 -
ROS2 Controllers Requirments
00:03:22 -
Custom Velocity Controllers
00:08:36 -
Controllers Interfaces
00:01:20 -
Testing Custom Controllers
00:04:26 -
Revisting Ros2_control interface
00:03:00 -
Control System a subject
00:00:50 -
Feedback Controlling for Go to Goal
00:02:55 -
Linear Goal
00:06:59 -
Improving Robot Reaction
00:03:44 -
Proportional Controller
00:04:13 -
2D Planer Goal
00:11:21 -
Improving Reaction
00:04:28 -
Optimizing Go to Goal Behaviour
00:03:30 -
Enhancing Robot Control for Smooth Motion
-
-
Mapping and SLAM
-
Mapping Introduction
00:00:53 -
What is Occupancy Grid
00:02:28 -
Custom Occupancy Grid Node
00:05:41 -
Basic Mapping Algorithm Introduction
00:01:52 -
Lidar to Grid Node
00:05:44 -
Cartographer Mapping Basic Working
00:03:18 -
Creating A Maze for Map Creation
00:09:27 -
ROS2 Slamtoolbox Online Async Mapping
00:08:30 -
Parameters Values Effect on Mapping
00:07:11 -
PNG Image to 2D map
00:07:41 -
3D Rtap Visual Mapping
-
SLAM for Slambot
00:00:58 -
Recording Data for mapping
00:03:42 -
Gmapping on ROS2 Bag
00:05:32 -
Building the Map with Slambot
00:04:13 -
Hardware Inaccuracies
00:00:44 -
Odometry Testiing for SLAMBot
00:03:12 -
Improving SLAM for our robot
00:07:52 -
ROS 2 Mapping with SLAM
-
Types of Mapping and next steps
-
-
Version Control with Github
-
Introduction to Version Control
-
How Github is useful ?
-
Creating a Custom Repository
-
Why we have Branches ?
-
Practices in Branches
-
Getting History and Reverting Back
-
Commit Back
-
Submodules for Multi level Repositories
-
Adding Submodules
-
Running Packages with Dependencies
-
Bash Scripting
-
Github Actions for automation
-
Creating Github Actions
-
-
Path Planning Algorithms
-
Module Introduction Path Planning
00:00:54 -
Grid Sweep Algorithm
00:04:21 -
Visualizing Grid Sweep
00:07:37 -
Improving Grid Sweep
00:05:07 -
File Organizing for Better Code
00:08:45 -
Astar Path Planning Algorithm
00:03:28 -
Astar Interfacing Code
-
Linkedin List in C++
00:05:07 -
Multi Queues
00:06:31 -
Completing Astar with ROS2 Interface
00:08:58 -
Understanding Costmap Server
00:07:27 -
Planner Server and Its Usage
00:06:02 -
Adding Custom Planner into Nav2 Stack
00:01:48 -
Nav2 planner Interface for our Algorithm
00:15:29 -
Adding our Astar as a planner to Nav2
00:05:04 -
Testing Astar Planning with Nav2 Interface
00:04:05 -
Path Planning with A* and RRT
-
- Navigation
-
Algorithm Development for Robotics
-
Starting a complex Algorithm
00:01:05 -
Introduction to Linear Quadratic Control
00:05:15 -
Architecture of LQR
00:04:36 -
Creating LQR Library
00:10:58 -
LQR ROS2 Node
00:10:08 -
Running LQR with Tb3
00:06:29 -
Rapidly Exploring Random trees Algorithm
00:02:46 -
RRT Node Library
00:01:00 -
Writing Node Class
00:04:25 -
Unit Testing Node Class
00:10:28 -
RRT Working Revisit
00:01:59 -
Writing RRT
00:11:08 -
Testing RRT Class Functionality
00:12:48 -
RRT ROS2 Node Integeration
00:05:36 -
Module Introduction to Sensor Fusion
-
Why we need Kalman Filters
-
Important concepts of Statistics and Kalman Filters
-
Implementation of Linear Kalman Filter
-
State estimation along X and Y axis
-
Noise Effect on KF
-
More advance approach
-
Introduction to EKF
-
Implementation of Extended Kalman Filter
-
Adding Functionality in Custom EKF
-
ROS2 Node for Utilize EKF
-
ROS2 EKF Package for Robot Localization
-
Penumetsa Sri Sai Ashish Varma
An exceptional course! The smooth transition from theory to coding and simulations made learning easy. The assignments were enjoyable and helped me clearly understand key robotics concepts. I truly enjoyed every part of this course.