At Udacity, we work closely with leading industry employers to develop the right curriculum to support your career advancement. We believe there is no better way to understand exactly what skills top employers are looking for than to speak directly to those companies and professionals. Today, as a result of insights gleaned from our collaborators in the field of robotics, we are announcing the next generation of our Robotics Software Engineer Nanodegree program!
The changes we are rolling out are expressly focused on today’s intense demand for robotics talent. We know that top employers are seeking engineers with these core robotics skills: ROS, Gazebo, C++, and robotics algorithms. So, we’re introducing a newly streamlined and laser-precise version of our program that will focus specifically on these core skills in a single, four-month intensive term.
Over the course of the program, you will complete five interactive and hands-on projects. These projects will form the core of an outstanding work portfolio that you can use to showcase your advanced skills to recruiters and hiring managers upon graduating from the program.
Let’s look at each project now, and explore the skills you’ll learn, the tools you’ll use, and the concepts you’ll master!
1. Gazebo World
Robot simulation is an essential tool in every roboticist’s toolbox. A well-designed simulator makes it possible to rapidly test algorithms, design robots, perform regression testing, and train AI systems using realistic scenarios. In our program, you’ll begin by prototyping robots in the Gazebo simulator. Gazebo offers the ability to accurately and efficiently simulate populations of robots in complex indoor and outdoor environments. You’ll begin by learning how to build new environments and deploy assets in Gazebo.
In the Build My World project, you will work with Gazebo to simulate the inside and outside of a one-floor environment that will house your future robot. As you do so, you will gain proficiency with Gazebo, and with C++ plugins.
2. ROS Essentials
In this second module, you will tackle the Robot Operating System (ROS), beginning with an architectural overview of the Robot Operating System Framework. From there, you’ll learn about ROS workspace structure, essential command line utilities, and how to manage software packages within a project. Harnessing these skills will be key to building shippable software using ROS. Following this, you’ll explore ROS Nodes, which are a key abstraction that allows a robot system to be built modularly. You’ll be writing nodes in C++ to control a robotic arm in Gazebo.
In the Go Chase It! project, you’ll use ROS to design and build a mobile robot. Then, you will house your new robot in the environment you built in your first project. Eventually, you will program your robot with C++ and ROS to chase a ball through this environment. As you work to successfully complete this project, you’ll acquire skills in: ROS catkin workspaces, ROS packages, ROS nodes, ROS launch files, RViz integration, and C++.
The world you create in the first project, and the robot you design in this one, will form the base for all of your upcoming projects in the program.
In this third module, you will learn to use probabilistic localization algorithms to estimate a robot’s position and orientation. First, you will learn what it means to localize and gain an understanding of the challenges inherent to the process. Next, you will learn what a Kalman filter is, and understand its importance in estimating noisy data. Inside a lab, you will implement an Extended Kalman Filter package with ROS to estimate the position of a robot. You will then learn the MCL (Monte Carlo Localization) algorithm to localize robots. Finally, you will code the MCL algorithm in C++.
In the Where Am I? project, you will develop an autonomous driving system to localize your robot. First, you will write a C++ node that will navigate your robot through a series of waypoints. Then you will localize it with an AMCL localization package in ROS. Accomplishing this will involve gaining skills in: Localization algorithms, Kalman Filter and MCL, ROS parameters, ROS packages integration, and C++.
4. Mapping and SLAM
In the fourth module, you will study mapping algorithms. By combining mapping with the skills you learned in the previous three lessons, you’ll be able to implement Simultaneous Localization and Mapping, commonly referred to by its acronym: SLAM. You will first learn the occupancy grid mapping algorithm, and code it with C++. Then, you will learn how to simultaneously map an environment and localize a robot relative to the map with the Grid-based FastSLAM algorithm. You will then apply what you’ve learned to interface a turtlebot with a Grid-based FastSLAM package with ROS to map an environment. Finally, you will learn how to simultaneously map an environment and localize a robot relative to the map with the GraphSLAM algorithm.
In the Map My World Robot project, you will use an RTAB-Map SLAM package with ROS to simultaneously localize your robot and create 2D and 3D maps of your world. You will gain skills in: Mapping and SLAM algorithms, Occupancy Grid Mapping, Grid-based FastSLAM and GraphSLAM, ROS debugging tools, and C++.
5. Path Planning and Navigation
Finally, in this fifth module, you will learn how to search for a path and navigate it with classical, sample-based, and probabilistic algorithms. First, you will learn a number of classic path planning approaches that can be applied to low-dimensional robotic systems. Then, you will code the BFS and A* algorithms in C++. Next, you will learn about sample-based and probabilistic path planning, and how they can improve on the classic approach.
In the Home Service Robot project, you will integrate everything you’ve learned in this Nanodegree program to build a home service robot that will navigate to pick up and deliver objects inside a world of your own creation! You will gain skills in Path Planning search algorithms, ROS navigation stack, and C++.
We know firsthand from our industry partners and collaborators just how intense the demand is for qualified robotics talent, and we know the skills and experience recruiters and hiring managers want to see in their job candidates. With the changes we’ve introduced to the program, we can ensure that you’re learning exactly the right skills, and gaining exactly the right experience.
We’re excited to make this new curriculum available to you and looking forward to seeing what you build! But most important of all, we’re anticipating fantastic career results for you as you immerse yourself in the program, acquire these valuable skills, and ultimately move further into the field to start making new impacts on the future of robotics.
Are you ready to launch and advance a successful robotics career? Start learning today.