The Introduction to Robotics Specialization introduces you to the concepts of robot flight and movement, how robots perceive their environment, and how they adjust their movements to avoid obstacles, navigate difficult terrains and accomplish complex tasks such as construction and disaster recovery. You will be exposed to real world examples of how robots have been applied in disaster situations, how they have made advances in human health care and what their future capabilities will be. The courses build towards a capstone in which you will learn how to program a robot to perform a variety of movements such as flying and grasping objects.
How can we create agile micro aerial vehicles that are able to operate autonomously in cluttered indoor and outdoor environments? You will gain an introduction to the mechanics of flight and the design of quadrotor flying robots and will be able to develop dynamic models, derive controllers, and synthesize planners for operating in three dimensional environments. You will be exposed to the challenges of using noisy sensors for localization and maneuvering in complex, three-dimensional environments. Finally, you will gain insights through seeing real world examples of the possible applications and challenges for the rapidly-growing drone industry.
Mathematical prerequisites: Students taking this course are expected to have some familiarity with linear algebra, single variable calculus, and differential equations.
Programming prerequisites: Some experience programming with MATLAB or Octave is recommended (we will use MATLAB in this course.) MATLAB will require the use of a 64-bit computer.
Robotic systems typically include three components: a mechanism which is capable of exerting forces and torques on the environment, a perception system for sensing the world and a decision and control system which modulates the robot's behavior to achieve the desired ends. In this course we will consider the problem of how a robot decides what to do to achieve its goals. This problem is often referred to as Motion Planning and it has been formulated in various ways to model different situations. You will learn some of the most common approaches to addressing this problem including graph-based methods, randomized planners and artificial potential fields. Throughout the course, we will discuss the aspects of the problem that make planning challenging.
How can robots determine their state and properties of the surrounding environment from noisy sensor measurements in time? In this module you will learn how to get robots to incorporate uncertainty into estimating and learning from a dynamic and changing world. Specific topics that will be covered include probabilistic generative models, Bayesian filtering for localization and mapping.
How can robots use their motors and sensors to move around in an unstructured environment? You will understand how to design robot bodies and behaviors that recruit limbs and more general appendages to apply physical forces that confer reliable mobility in a complex and dynamic world. We develop an approach to composing simple dynamical abstractions that partially automate the generation of complicated sensorimotor programs. Specific topics that will be covered include: mobility in animals and robots, kinematics and dynamics of legged machines, and design of dynamical behavior via energy landscapes.
How can robots perceive the world and their own movements so that they accomplish navigation and manipulation tasks? In this module, we will study how images and videos acquired by cameras mounted on robots are transformed into representations like features and optical flow. Such 2D representations allow us then to extract 3D information about where the camera is and in which direction the robot moves. You will come to understand how grasping objects is facilitated by the computation of 3D posing of objects and navigation can be accomplished by visual odometry and landmark-based localization.
In our 6 week Robotics Capstone, we will give you a chance to implement a solution for a real world problem based on the content you learnt from the courses in your robotics specialization. It will also give you a chance to use mathematical and programming methods that researchers use in robotics labs.
You will choose from two tracks - In the simulation track, you will use Matlab to simulate a mobile inverted pendulum or MIP. The material required for this capstone track is based on courses in mobility, aerial robotics, and estimation. In the hardware track you will need to purchase and assemble a rover kit, a raspberry pi, a pi camera, and IMU to allow your rover to navigate autonomously through your own environment
Hands-on programming experience will demonstrate that you have acquired the foundations of robot movement, planning, and perception, and that you are able to translate them to a variety of practical applications in real world problems. Completion of the capstone will better prepare you to enter the field of Robotics as well as an expansive and growing number of other career paths where robots are changing the landscape of nearly every industry.
Please refer to the syllabus below for a week by week breakdown of each track.
MIP Track: Using MATLAB for Dynamic Simulations
AR Track: Dijkstra's and Purchasing the Kit
Quiz: A1.2 Integrating an ODE with MATLAB
Programming Assignment: B1.3 Dijkstra's Algorithm in Python
MIP Track: PD Control for Second-Order Systems
AR Track: Assembling the Rover
Quiz: A2.2 PD Tracking
Quiz: B2.10 Demonstrating your Completed Rover
MIP Track: Using an EKF to get scalar orientation from an IMU
AR Track: Calibration
Quiz: A3.2 EKF for Scalar Attitude Estimation
Quiz: B3.8 Calibration
MIP Track: Modeling a Mobile Inverted Pendulum (MIP)
AR Track: Designing a Controller for the Rover
Quiz: A4.2 Dynamical simulation of a MIP
Peer Graded Assignment: B4.2 Programming a Tag Following Algorithm
MIP Track: Local linearization of a MIP and linearized control
AR Track: An Extended Kalman Filter for State Estimation
Quiz: A5.2 Balancing Control of a MIP
Peer Graded Assignment: B5.2 An Extended Kalman Filter for State Estimation
MIP Track: Feedback motion planning for the MIP
AR Track: Integration
Quiz: A6.2 Noise-Robust Control and Planning for the MIP
Peer Graded Assignment: B6.2 Completing your Autonomous Rover
CJ Taylor, Daniel E. Koditschek, Daniel Lee, Jianbo Shi, Kostas Daniilidis, Sid Deliwala and Vijay Kumar