This Learning path aims to teach ROS in a very structured way in order to transform you from a beginner to an expert ROS developer. The students will get coaching from the prerequisites of ROS to the advanced concepts of ROS. The mode of teaching will be online live classes. Students will get a chance to interact with the instructor and clarify their doubts. The expected time period of the complete course will be 3 months including the capstone project. You will have regular assignments and a capstone project in order to get the certificate.
The more details of why you have to take this course are given below.
R.O.S stands for Robot Operating System. It is not a real operating system. ROS is called a meta operating system because it is having features of a real operating system. It is a Free & Open Source Robotics Software framework mainly for programming complex robots.
It is a great software tool for quickly prototyping a robot software, without the need of writing everything from scratch. We can even think of using ROS on the real robot products but it may require extra refining of the prototype code and should keep code quality standards.
ROS is one of the software framework using in most of the universities for robotics research. Other than academic research, ROS is also using in robotics companies to prototype their software. ROS is also used by the hobbyist to create different robot applications.
If you are a roboticist or aspiring roboticist, ROS will be a great tool to program robots. Knowing ROS doesn't mean that you know all about robotics, but instead, it will be a useful tool to prototype your robotics algorithms.
There are great opportunities for ROS programmers in academic research as well as corporate, so learning ROS will be a great addition to your skills to pursue a robotics career.
Learning ROS is not a very easy task. ROS is having official tutorials to get started, but for understanding those tutorials either you should have good experience in C++, Python, and Linux or you need a good mentor in order to get started.
It will take time to get used to the ROS concepts, ROS commands, and ROS APIs. ROS programming is mainly involve sending/receiving data from multiple nodes, in order to program in such an environment, your understanding in the ROS platform should be very clear.
The ROS Developer learning path is an initiative for teaching the complete aspects of Robot programming and ROS in a nutshell. It is very difficult to master ROS by yourself in a span of 2 to 3 months. This course can help you to master in ROS within this time.
The online live classes, Q&A, and personal interaction with the instructor can definitely help you to accelerate your understanding of ROS.
The existing tutorials on ROS in the web will help you to understand about ROS, but most of the tutorials are scattered and you may lose your direction in learning while following those tutorials. Also, it is it's very difficult to get personal mentoring from the author who wrote the tutorials.
The ROS Developer Learning path is aiming to solve those issues and be a personal mentor to accelerate your ROS knowledge
Those who are meeting the mandatory requirements are eligible for this course. It will be great if they also know the optional requirements. The optional requirements will be covered in the classes.
- Mandatory: Basic understanding of any of the programming languages
- Mandatory: Interest and basic understanding in Robotics
- Optional: Understanding of Ubuntu Linux and Linux commands
- Optional: Object-Oriented Concepts, C++, Python
In order to successfully execute the ROS Developer Learning path course, you should have the following things.
- A Windows 7/10 or Ubuntu computer with >= 4 GB of RAM
- Optional: Two USB drive: 8GB drive and 32 GB drive
- Optional: Raspberry Pi and Arduino
Here are the course modules discussing in the ROS Learning Path course.
- What is a Robot?
- Robotics in a nutshell
- Different types of robots
- Applications of robotics
- Selecting sensors, actuators and computing unit for your robot
- Building your own robot
- What is Robot Programming?
- How to program a robot?
- Software frameworks for programming robots
- Learning Ubuntu Linux for ROS
- Learning C++ for ROS
- Learning Python for ROS
- What is Robot Programming?
- Getting started with ROS
- ROS Equation
- Why use ROS?
- Installing ROS
- ROS Architecture and concepts
- ROS Filesystem
- ROS Coding styles, IDE
- ROS Hello World
- ROS TurtleSim
- ROS Workspace and package
- ROS Client libraries: roscpp & rospy
- Understanding roslaunch, rosbag, Rviz, rqt
- Implementing Topics, Service, Parameters
- Learning ROS programming using TurtleSim: roscpp and rospy
- Understanding ROS concepts using TurtleSim
- Moving TurtleSim using ROS programming
- What is ROS TF?
- Understanding Transformation and frames
- Working with TF broadcaster and listener
- Creating TF for your robot
- Working with ROS TF tools
- TurtleSim projects
- Draw your caricature using TurtleSim
- Object tracking using TurtleSim
- What is URDF & xacro?
- Understanding URDF & xacro
- Writing your own URDF and xacro
- Visualizing your robot
- Interacting with the robot model
- Moving the robot model
- Introduction to Gazebo simulator
- Getting started with Gazebo
- Gazebo models and plugins
- Spawning models into Gazebo
- Interacting with a simulated robot
- Working with Husky, Turtlebot3, and x-arm simulation
- Visualizing robot sensor data in Rviz
- Creating your own mobile robot and robot arm simulation
- Visualizing robot in Rviz
- Introduction to ROS controllers
- Interacting with robot models
- Moving robots using ROS programming
- What is an autonomous mobile robot?
- Creating a robot model of a delivery robot
- Understanding the basics of ROS navigation stack
- Interfacing our mobile robot to ROS navigation stack
- Implement Mapping and Localization using SLAM and AMCL
- Commanding robot using GUI
- Introduction to ROS MoveIt!
- Interfacing Simulated robotic arm to MoveIt!
- Path planning using MoveIt!
- Grasping using MoveIt!
- Implement pick-place using MoveIt! and Gazebo
- What is robot perception?
- Introduction to ROS perception stacks
- Working with ROS OpenCV and Point Cloud
- Robotic vision using OpenCV and ROS
- Point cloud processing using PCL and ROS
- Example projects using OpenCV and PCL
- Introduction to ROS serial
- Working with ROS and Arduino
- Working with ROS and Tiva C Launchpad
- Working with ROS and Raspberry Pi
- Interfacing RPI camera to ROS
- Interfacing GPIO pins of RPI using ROS
- Interfacing sensors to RPI and ROS
- Controlling motors from RPI and ROS
- Implementing a PID controller using RPI and ROS
- Deep dive into ROS URDF and xacro
- Discussing various tags in URDF
- Creating your own URDF/xacro for your robot
- Creating your URDF/xacro for a mobile robot
- Creating your URDF/xacro for a robotic arm
- Working with Joint state publisher and robot state publisher
- Working with Gazebo URDF tags and Spawning in Gazebo
- Writing launch file to simulation and visualization
- Deep dive into ROS Navigation stack
- Configuring and fine-tuning navigation stack
- Using different path planners in Navigation stack
- Deep dive into ROS move_base node
- Deep dive into ROS MoveIt!
- Configuring and fine-tuning MoveIt! for any robot
- Using different planners in MoveIt!
- Interfacing perception in MoveIt!
- Complex motion planning and pick-place
- Programming using MoveIt! APIs
- Deep dive into ROS interface of OpenCV and PCL
- Creating ROS nodelets for working with PCL
- 2D & 3D Object detection using ROS
- YOLO Object detection using ROS
- ROS-Perception projects
- Mastering Docker concepts and commands
- Working with Docker-ROS container
- Deploying your ROS app in docker
- Working with NVIDIA Docker and ROS
- Working with ROS Gazebo with Docker
- Mastering GitHub and Travis CI for ROS project
- Creating and pushing a ROS project in GitHub
- Integrating Continuous Integration using Travis CI
- Releasing your ROS package
- Adding your own package in ROS distro
- List of SLAM wrappers in ROS
- Gmapping, Cartographer
- Deep dive into Visual SLAM
- Configuring different SLAM package for your robot
- Deep dive into Controllers in ROS
- Configuring ROS controllers for your robot
- Writing ROS controllers for your robot
- Interfacing ROS controllers to actual actuator
- Deep dive into ROS Nodelets
- Writing your first Nodelets
- Implementing vision algorithms using ROS nodelets
- Deep dive into ROS Gazebo plugin
- Writing your first Gazebo plugin
- Implementing a sensor in Gazebo using plugin
- Deep dive into ROS based path planners
- Working with existing planners in ROS
- Configuring a planner for your robot
- Writing your own planner for your robot
- Deep dive into Rviz and Rqt plugins
- Working with existing Rviz and Rqt plugins
- Creating new Rviz plugin for visualization
- Creating new Rqt plugin
- Deep dive into the self-driving car technology
- Discussing hardware to built a self-driving car
- Discussing software architecture
- ROS based software for self-driving car
- Working with Autoware project
- Simulating and Visualizing a self-driving car
- Visualization of Self-driving data in Webviz & XVIZ
- Deep dive into Deep learning frameworks
- Interfacing deep learning frameworks to ROS
- Working with Object detection using ROS deep learning stacks
- Understanding core concepts of ROS 2
- Migrating from ROS 1 to ROS 2
- ROS 2 concepts
- ROS 2 programming
- ROS 2 simulation in Gazebo
- Introduction to ROS Navigation 2 and MoveIt! 2
- Configuring simulated robot mobile robot with Navigation 2
- Configuring simulated robot arm with MoveIt! 2
- ROS 2 perception
There will be changes in the schedule and it will be notified once you enroll in this course.
- Lecture: 4 hrs/week (alternate days)
- Q&A and interaction: 8 hrs/week
- Total Estimated course time: 140- 170 hr
Here are the main features of ROS Developer Learning path
The learning path will be live classes. There will be an opportunity to interact and ask doubts to the instructor during teaching. If anyone can't attend live sessions, there will be recordings of the classes and they can interact with the instructor either personally or the discussion channel.
You will get mentorship to your ROS project if you are planning to work on any ROS projects. The instructor can give you guidelines on how to proceed with your project.
After successfully completing the course, assignments, and final projects, you will get awarded a course completion certificate from Lentin Joseph on behalf of Robocademy. If anyone just audits the course, they will get the participation certificates.
After the course completion, the student will have access to all study materials, codes, and discussion channel content. After completing the course and awarding certificate, students will be added to a public group so that, they can in touch with the Robocademy community and ask doubts.
Each student will get e-copies ROS books and individual chapters which are written by Lentin Joseph based on the topics discussing in the class.
In additional live class and mentorship, if you have difficulties in setting Ubuntu/ROS in your PC, you will get technical support from the instructor. The support can be either through remote desktop connection or through a voice call
Enroll in ROS Developer Learning Path
You can enroll in the ROS Developer Learning path by clicking the following button. Enroll today, only limited seats are available.
Lentin Joseph is an author, roboticist, and robotics entrepreneur. He runs a robotics software consultancy company called Qbotics Labs. He has 10 years of experience in the robotics domain primarily in the Robot Operating System, OpenCV, and PCL.
He has authored 8 books in ROS, namely, Learning Robotics using Python first and the second edition, Mastering ROS for Robotics Programming first and second edition, ROS Programming: Building powerful robots, ROS Robotics Projects first and second edition, and Robot Operating System for Absolute Beginners.
He has pursued his Masters in Robotics and Automation and worked at Robotics Institute, CMU, USA. He is also a TEDx speaker.
Yes, there are free tutorials and courses available on the web, but the issue with ROS is, there is no courses or tutorial teaches you A-Z of ROS. There are free tutorials and videos, but they are scattered on the web and students may not get a proper direction to learn ROS. There is a definite chance to get stuck while following ROS tutorial, having a mentor can solve that issue.
This course is not a pre-recorded course and the entire learning path is planned for a span of 3 months. It will have live classes and interactions, discussions, projects, assignments, etc to teach ROS in an actual way. Live interactions can help students to clear their doubts without any delay. The course will have at least 40 hours of training and the remaining time for the interactions and projects.
The course fee has to pay in advance. It should be a one-time payment. Regarding the refunding, if the student is not at all happy with the course and if they can come up with a solid reason, we will refund a part of the fee amount. It will depend on when they ask for a refund. After getting a refund, they are not eligible to get a certificate.
All live classes will be recorded, so if anyone can't attend the classes, you can audit the course and you can contact the instructor if you have any queries
The maximum students in a batch will be between 10 to 20. That is the maximum number of students who can include in an online class like this. The instructor can able to personally interact with all the students in order to make the learning effective.
Yes, you will get 1-month extra support after this course.
If you have any queries regarding the course, please send a message below