
Explore Linux as the open source foundation for robotics software, tracing its Unix roots, the Linux kernel and GNU tools, and how Debian, Red Hat, and Ubuntu shaped its distributions.
Learn to install terminator or tmux and manage multiple Linux terminal windows to streamline robotic software development, boost efficiency, and reduce errors.
Explore docker images as immutable blueprints with all dependencies, then run containers to create isolated, ephemeral environments and understand how docker differs from virtual machines.
Understand how Docker containers run in isolation, use volumes for persistent data shared with the host, and navigate bridge and host networking to expose services.
Learn to create a Dockerfile that runs a Python hello script, build with docker build, tag images, and compare base versus slim images for lightweight deployment.
Learn to build advanced docker images from an ubuntu base image, install dev tools and python, and use a dockerfile and entrypoint to clone a repo, compile, and run.
Define and run docker compose services with a YAML file to manage development containers. Override startup commands, configure volumes and environment variables, and explore scaling options using docker compose.
Explore git terminology by treating commits as snapshots that save your project's state and enable reverting changes. Use branches for isolated, parallel development and merging back to main.
Learn to manage Git repositories on GitHub with SSH authentication, configure remotes (origin, backup), push with upstream tracking, and ignore the build directory with a .gitignore file.
Learn how to use git fetch and git rebase to incorporate updates from the upstream main branch into a feature branch, rewriting history for a clean, up-to-date feature.
Create a readme.md to document your repository with markdown, outlining dependencies, setup, and how to clone, build, run, and format code blocks.
See how ros 2 manages drivers and interfaces, enabling you to reuse a module across robots with different cameras and motors and simplify integration as a robot operating system.
Explore how ROS 2 uses device drivers to control hardware via a standardized interface, enabling camera applications to send commands and retrieve data without low-level protocol concerns.
Learn how ros2 actions connect an action server and client via goal, feedback, and result messages to manage long-running tasks like autonomous navigation and cancel when needed.
Explore how to create your first ROS 2 package from scratch, and understand underlay and overlay workspace layers for source code, configuration, parameters, and launch files.
Build an autonomous mobile robot with ROS 2 and Bumper Bot, learning to download open-source code, install dependencies, run examples, and explore packages for description, control, mapping, and navigation.
Explore Gazebo as a ROS 2 physics engine that simulates robot motion and sensors, enabling virtual environments and seamless transition of the same interface from simulation to real hardware.
Dive into an immersive, hands-on journey from foundational computing to cutting-edge robotics. In this course, you’ll master essential developer tools (Linux command line, Git for version control, Docker containers, and VS Code IDE) and then apply them directly to robotics with ROS 2.
We follow a learning-by-doing philosophy – “Learning is an active process. We learn by doing, only knowledge that is used sticks in your mind.” – so you’ll build real projects at every step. For example, you’ll set up a complete ROS 2 workspace on Linux inside a Docker container (as recommended by robotics best practices) and use Visual Studio Code to code and debug without worrying about OS conflicts. Step by step, you’ll write ROS 2 nodes and control topics and services, first in simulation and then on a physical robot – closing the loop between virtual testing and real-world application. This way, theoretical concepts immediately turn into working robot demos, ensuring the new skills truly stick in your mind.
What you will learn
Linux & Dev Environment: Navigate the Linux terminal, install packages, and configure a developer setup on Ubuntu. You’ll use the terminal to interact with the filesystem, schedule tasks, and automate tasks with bash scripts, just as professional robotics engineers do.
Containerized Workflows: Use Docker to create isolated, reproducible development environments. You will learn how to download and use thousands of Docker Images available on Docker Hub and how to create your own custom images with Dockerfile.
Master Git, the professional Version Control System: Use Git and Github to track, commit and manage your code like a pro. Software Development is all about collaboration and community! You'll learn how to use Git and Github to collaborate with others, create branches, forks, and pull requests.
IDEs for Robotics Development: You will explore various Integrated Development Environments that will help you develop new cool features for your robot, streamlining your coding workflow.
ROS 2 Core Concepts: Learn ROS 2 fundamentals by writing your own nodes in Python or C++, publishing/subscribing to topics, calling services, and handling actions. Each concept is reinforced with practical examples and experiments on a simulated robot, following the “learn by doing” approach.
Simulation & Gazebo: Build a robot model and test its behavior in Gazebo simulation. You’ll practice digital twin techniques and see how changes in your code immediately affect the virtual robot, mirroring techniques from successful robotics courses.
Deploy to Real Robot: Transfer your simulation code to hardware. You’ll connect sensors and actuators, run your ROS 2 nodes on a real robot, and observe your software come to life in the real world. This completes the cycle of learning – from code to simulated testing to actual robot control.
By the end of this course, you’ll have a portfolio of real-world projects: from setting up Linux-based dev environments with Docker to running ROS 2 on physical robots. On the way, you will master Git as a collaboration tool and as a time machine that will let you go back in time to previous versions of your code.
You’ll gain the confidence and skills to tackle modern robotics challenges – learning by building and experimenting every step of the way.