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.
Week 1
Introduction
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
Week 2
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
Week 3
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
Week 4
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
Week 5
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
Week 6
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

Taught By

Kostas Daniilidis

Sid Deliwala

Transcript

[MUSIC] To kick things off, we'll talk about dynamical systems. You're going to be thinking about a mechanical dynamical system. But that's not the only form they come in. Processes of all sorts, including weather and population dynamics. And you model these dynamical systems. This is a Lorenzo contractor. It's a dynamical system that was originally for modeling atmospheric convection, and it has this chaotic and beautiful behavior. All dynamical systems can be expressed as ordinary differentially equations or ODE's. The order of an ordinary differential equation is the highest order derivative that appears in the expression. For instance, in the equation above, you are seeing an nth order ODE. Mechanical systems are usually second order, and that's the kind of system we'll be thinking mostly about in this capstone. You've already seen this in prior physics courses. Remember Newtons's second law, or force is mass times the second derivative of position. And generalizations of that give you second order ordinary differential equations. Now we're going to talk a bit about state-space. Think about this example of a block on a frictionless plane being acted on by a force F. Newton's concept of inertia means that you need velocity to think about future evolution of the system. That's what state means. State essentially captures all the information you need about a system to predict what it's going to do next. So let's define this vector equation, where x1 is the position and x2 is the velocity of this block on a frictionless plane. Then you can write this expression that involves only x dot. That is the first derivative of x. X is called the state, and so you noticed that we've turned the second order, ODE, into a first order, but higher dimensional system. MATLAB can integrate first order differential equations for you, of any dimension. And that's the tool we're going to use for the rest of the capstone. Let's talk about numerical ODE integration just a bit so you know what MATLAB's doing under the hood. Let's talk about, this will be x dot equal alpha, where alpha is initially chosen to be a constant. We can use a fixed time step and turn this continuous integral into a bunch of discrete steps. This means that we set x at time k plus 1 equal to x at time k. Plus alpha times dt. This process is called Euler integration. But if alpha is now allowed to be a function of time and not fixed, the results will be inaccurate using these fixed time steps. Here's a cartoon demonstrating this. MATLAB can actually estimate how the right hand side is changing. It'll automatically pick the best timestep. There's a function called ode45 in MATLAB that does this for you. This will only work when the right hand side is smooth. This means that it doesn't jump around and certainly isn't discontinuous. When we introduce noise in [INAUDIBLE] simulations later on in the cast, we will have problems with ode45 and we will have to resort to a fixed timestep solver. Just to finish up here is an example of a simple second order system a harmonic oscillator. The ode is x double dot equals minus x. The initial conditions that we'll choose are that x at time zero is one, and x dot at time zero is zero. Here's simple MATLAB code that will compute this integral for you, and it will also plot the results. You should get something like this. You're encouraged to try this, in MATLAB.

Explore our Catalog

Join for free and get personalized recommendations, updates and offers.