
Explore a live, hands-on introduction to ROS, demystifying nodes, publish/subscribe, services, rosbags, and language options in Python and C++, while navigating catkin, make, and CMake.
Learn to install ROS on Windows, macOS, or Linux by running a Linux virtual machine with Lubuntu via VirtualBox and importing a preconfigured VM, then verify the ROS installation.
Learn basic Linux commands and navigation in the terminal, including ls, cd, mkdir, and editing files with gedit or vim, plus using sudo and rm and home directory shortcuts.
Create a catkin workspace and a beginner package in ROS. Learn to set dependencies like standard messages and Python or C++ support for building and running code.
Create a ros cpp node named talker, initialize a node handle, advertise a std_msgs string publisher on the topic very important message, and publish a timed string every second.
Replicate the c++ publish node in python by creating a talker python node that publishes std_msgs string messages on the important_message topic at 2 hertz.
Learn to build a ros package with catkin tools and add a C++ executable. Configure cmake, source devel/setup.bash, start roscore, and run both Python and C++ nodes.
Learn to inspect and verify ROS publishers and topics with command-line tools like rosnode list, rostopic info, and rostopic echo while running talker nodes in Python and C++.
Create a second ROS node as a subscriber to receive messages from the talker, implementing a callback, message queue, and ROS spin to print data in real time.
Demonstrate how ROS messages are language-agnostic by connecting a C++ publisher to a Python subscriber using the same topic name, important message, and show bidirectional cross-language communication.
Create an intermediate ROS package, copy and adapt build files, and streamline sourcing by updating the bashrc to auto source the catkin workspace and enable tab completion.
Learn to create a custom ros message by defining node status, a nested count and matrix, and embedding messages, then build with cmake and inspect with ros message info.
Rewrite a ROS talk publisher in C++ to enable unit tests, building a testable Talker class with a node handle, loop rate, and status publishing.
Restructure the python talker node into a testable class with init and step, publish node status messages, and run it from a separate talker node to enable unit tests.
demonstrates writing a Google Test unit for a talker class, isolating ROS calls from node creation, updating the CMake, and initializing ROS time for standalone tests.
Learn to create unit tests in C++ with gtest for ROS, including manual and automated approaches that run roscore in the background using launch files and catkin build.
Learn how to write Python unit tests with nose tests, including creating a simple addition class, defining test functions, and importing code via a path hack before running catkin tests.
Learn to run Python unit tests with ROS in the background by creating a test file and validating a talker node’s ROS communication and rate.
Record ros topics with ros bag to capture real-world sensor data for offline testing. Replay the bag to run algorithms on authentic data and validate behavior without live field deployment.
Learn to log in ROS using c++ and python, printing to console and saving to ROS bags. Differentiate debug, info, warning, and error messages and adjust logger level for debugging.
Launch both C++ and Python nodes with a roslaunch file, manage settings via the ros core and parameter server, and explore global/local parameters and topic remapping.
Create an advanced ros package from scratch by writing CMakeLists and package.xml, add dependencies such as ros cpp and rospy, enable generate messages commands, and organize scripts, src, and srv.
Explore how services and clients enable request–response communication in ROS by creating a .srv file that adds two numbers and returns the sum, with Python and C++ examples.
Learn to implement a ROS service and client in C++ using a service file, including advertising the service and creating a service server with a callback. The lecture covers request and response handling, building with cmake, and running separate service and client nodes to produce a numeric result like 25.
Learn to create a ros python service and a client with a node, exposing a service named ad pie. Handle the addition request and return the sum to the client.
Import functionality between packages with package.xml and establish build order from intermediate to advance packages. Avoid circular dependencies by using a common package and speed builds with No DAPs.
Learn to include functionality from other packages in C++, test with a Talker class, and fix header exposure by configuring include_directories in the catkins package.
Learn to import functionality from other packages in Python for ROS. Build setup.py, configure catkin, and position talker files in an intermediate package with __init__.py to enable cross-package access.
The outro guides a question and answer period on ROS basics—publishers, subscribers, topics, and messages—plus launch, services, and course Q&A expectations.
Robot Operating System (ROS) is an essential tool for any roboticist to know. Whether you are building a robot for a side project or building out your skills to upgrade your career, this course will get you competent with ROS fast!
For the last 2-3 years I've used ROS every single day so I'm very familiar for what ROS knowledge is important and what can be skipped. ROS is very large, and as a beginner there are so many things ROS offers it can be tough to know what to focus on. Trying to learn everything right away can make the learning feel daunting. In this course I cover all the essential fundamentals to get you started with ROS.
In this course I'll live code everything from scratch. This way you can see every detail and you won't miss out on what is typically skipped in these types of tutorials. I also provide a pre-configured Virtual Machine that will allow you to run ROS on your computer whether you are using Mac, Windows, or Linux.
Few of the topics covered in this course are:
Creating your First Node
ROS Publisher
ROS Subscriber
Basic ROS Commands
Creating custom ROS Messages
ROS compatible Unit Tests
How to use ROS Bags
ROS Launch files
Proper ROS Logging
ROS Services / Clients
Importing Functionality from other ROS Packages
What are you waiting for? Jump in now and learning! If you are trying to upgrade your Robotics skills, this course is essential to your journey!