Table of Contents
Course Description
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 using recorded videos. 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.
More details of why you have to take this course are given below.
What is ROS?
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.
Why learn ROS?
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.
Why ROS difficult?
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.
Why ROS Developer Learning Path?
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
Course Eligibility
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
Course Requirements
In order to successfully execute the ROS Developer Learning path course, you should have the following things.
- A Windows 7/10, Mac or Ubuntu computer with >= 4 GB of RAM
- Optional: Two USB drive: 8GB drive and 32 GB drive
- Optional: Raspberry Pi and Arduino
Course Syllabus
Here are the course modules discussing in the ROS Learning Path course.
Module 1: ROS for Absolute Beginners
Learning Prerequisites of Robot Operating System
- Learning Ubuntu Linux for ROS
- Learning C++ for ROS
- Learning Python for ROS
Kickstarting Robot programming using 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
Programming with ROS – Part 1
- 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
Programming with ROS – TF Part 2
- 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
Modeling a robot in ROS using URDF
- 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
Simulating your robot using Gazebo
- 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
Building autonomous food delivery mobile robot using ROS
- 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
Building Pick-Place application using Robotic arm
- Introduction to ROS MoveIt!
- Interfacing Simulated robotic arm to MoveIt!
- Path planning using MoveIt!
- Grasping using MoveIt!
- Implement pick-place using MoveIt! and Gazebo
Working with ROS perception
- 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
ROS and Embedded System programming
- 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
Module 2: Mastering ROS for Robotics Programming
Mastering Robot Modelling using URDF
- 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
- Creating your URDF/xacro for a four legged robot
- 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
- Assigning ros controllers to the robot moving robot
Mastering Autonomous Navigation using ROS
- Deep dive into ROS Navigation stack
- Configuring and fine-tuning navigation stack
- Using different path planners in the Navigation stack: TEB planner
- Deep dive into ROS move_base node
- Deep dive into ROS SLAM Gmapping
- Creating Map using ROS SLAM
- Working with AMCL
- Testing AMCL and Navigation stack
- Testing Autonomous Navigation in real hardware: Turtlebot3
Mastering 2D and 3D SLAM
- ROS Cartographer
- Hector SLAM
- RTAB SLAM
- ROS ORB SLAM
- LOAM
Mastering ROS MoveIt!
- Deep dive into ROS MoveIt!
- Configuring and fine-tuning MoveIt! for any robot
- Using different planners in MoveIt!
- Using different IK solvers in MoveIt!
- Interfacing perception in MoveIt!
- Complex motion planning and pick-place
- Interfacing MoveIt! in Gazebo and real robots
- Programming using MoveIt! APIs
- FlexBE and MoveIt! planning
Mastering ROS Perception
- Deep dive into ROS interface of OpenCV and PCL
- Creating ROS nodelets for working with PCL
- 2D & 3D Object detection using ROS
- YOLO 2D and 3D Object detection using ROS
- ROS-Perception projects
Creating Web application using ROS
- Introduction to Robot Webtools
- Introduction to ros bridge server
- Introduction to roslibjs, ros2djs and ros3djs
- Introduction to roslibpy and rosbag.js
- Introduction to worldview and Webviz
- Working with ROS Control center
- Creating web based teleop app for your robot
Reinforcement Learning in ROS using OpenAI Gym
- Introduction to ROS and OpenAI Gym
- Interfacing OpenAI Gym and ROS
- Turtlebot3 and OpenAI
Developing a Social robot in ROS
- Modeling the CAD of the robot
- Simulating social robot in Gazebo
- Assigning ROS controllers
- Designing the circuit of the robot
- Creating hardware prototype
- Writing speech recognition and TTS in ROS
- Creating Face tracker in ROS
- Creating face animation using OpenCV
- Testing robot
ROS Industrial
- Introduction to ROS Industrial
- Creating URDF for the robot
- Creating IK solver for industrial robot
- ROS Industrial MoveIt!: ABB, Fanuc, Motoman
Docker for ROS App deployment
- 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
- ROS Docker in Raspberry Pi
Testing and Deployment of your Code
- 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
Module 3: ROS Advanced
ROS-Gazebo plugins
- Deep dive into ROS Gazebo plugin
- Writing your first Gazebo plugin
- Implementing a sensor in Gazebo using plugin
Rviz and Rqt Plugins
- Deep dive into Rviz and Rqt plugins
- Working with existing Rviz and Rqt plugins
- Creating new Rviz plugin for visualization
- Creating new Rqt plugin
ROS-Controllers
- Deep dive into Controllers in ROS
- Configuring ROS controllers for your robot
- Writing ROS controllers for your robot
- Interfacing ROS controllers to actual actuator
ROS Path planners
- 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
ROS in Self-driving cars
- 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
Migrating from ROS 1 to ROS 2
- 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
Course Schedule
There will be changes in the schedule and it will be notified once you enrol in this course.
- Q&A and interaction: 8 hrs/week
- Total Estimated course time: 140- 170 hr
Course Features
Here are the main features of the ROS Developer Learning path
Mentorship in ROS projects
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.
Certification
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.
Tutorial Code and Instructions
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.
Free 200$ worth ROS books
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.
Technical Assistance
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
Internship as ROS Developer
If you are performing well in the course, there is a chance for you to work as an intern in Qbotics Labs. You will get a chance to work with challenging ROS projects and get the real feel of working as a ROS developer.
Enroll in ROS Developer Learning Path
You can enrol in the ROS Developer Learning path by clicking the following button. Enrol today, only limited seats are available.
Update: The course is no longer accepting new enrolment
FAQ
There are free tutorials available to learn ROS, why should I join this course then?
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.
Why this course is costly compared to existing courses?
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.
Is the course fee payable in advance? Is it refundable?
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.
Is there an EMI Scheme available for payment?
Yes, there is.
Please send a message in the contact form or send a mail to therobocademy@gmail.com if you have any queries,
What time will be these online classes? If I can't attend classes, will I able to attend it later?
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
How many students will be there for this class?
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.
Will I get technical support after the course?
Yes, you will get 1-month extra support after this course.
Contact
If you have any queries regarding the course, please send a message below