Electrical and computer engineering students at Georgia Institute of Technology learn embedded control design in ECE 4555: Embedded and Hybrid Control Systems. While the course covers embedded control systems of all types, it places a heavy emphasis on mobile robots. Robotics helps bridge the gap between theory and practice in a way that engages and motivates students like little else.
In the most recent version of the course, students had more time to work with robots in class, thanks to an inverted (or flipped) classroom and a massive open online course (MOOC). More than 40,000 students participated in the MOOC worldwide, including the 30 third- and fourth-year students in ECE 4555 at Georgia Tech. The videotaped lectures and online assignments in the MOOC enabled me to flip the on-campus classroom: Students learned theory from MOOC videos, and spent classroom time developing controllers in MATLAB® and working with actual robots.
The results were outstanding. In all my years of teaching, I’ve never seen such a high level of energy and enthusiasm—even though the flipped classroom demanded more time than a typical three-credit class. In class surveys, students gave the course an average of 4.9 points out of 5, and although the MOOC was far more advanced than most online courses, more than 5000 students completed it, far exceeding the average retention rate.
Using a MOOC to Invert the Classroom
When I started teaching ECE 4555 I focused on general embedded control, but soon moved into robotics as the primary application domain. The first time that we taught the course with actual robots, I was so pleased with the results that I decided to add more robotics—and a much richer set of problems. I found, however, that as the assignments grew more complex, the students stopped being systematic in their design approach. I was faced with a dilemma. I wanted lots of robotics in the classroom, but I still needed time to teach the theory and make it both meaningful and accessible.
I flipped the classroom so that the students could learn the background material and theory outside class and spend class time working with me and my teaching assistant to develop control systems and test them on Khepera III robots (Figure 1).
Once I had decided to use an inverted classroom, the next question was, “Where will the material come from?” At that point, I opted to jump in with both feet and create a MOOC, Control of Mobile Robots. Since I would be depending on the MOOC to teach my on-campus students, I could not water down the material. I developed seven weekly modules, each with eight sublectures and a homework assignment covering topics such as linear systems, control design, hybrid systems, and navigation. To make the MOOC broadly accessible, I used MATLAB to present control design examples in the lectures and as extra programming assignments, but did not require students to use MATLAB to complete assignments.
Introducing the Sim.I.am Simulator
In ECE 4555, I faced a challenge common to many similar undergraduate courses: I had far more students than robots. Even working in groups, students had to spend much of their limited time with their robot debugging the control program instead of optimizing and enhancing it. The solution was to build a robot simulator in MATLAB. Developed by a teaching assistant, the Sim.I.am simulator enables students to write control programs in MATLAB and debug them in a virtual world (Figure 2). The same MATLAB code can then be used without modification to control a Khepera robot in the lab. The connection between simulation and actual robots is made possible by a thin TCP/IP server on the robots that enables the simulator to send the control signals from the controllers to the Khepera robots instead of their simulated counterparts.
Sim.I.am was instrumental to the success of the MOOC, as well. Online students who had MATLAB used the simulator to complete optional programming exercises. Students without access to MATLAB could download a standalone version of the simulator created with MATLAB Compiler™. While the students could not develop their own control programs using this version, they could experiment by setting controller gains to tune the system and see how their choices affected the behavior of the simulated robot.
Sim.I.am is designed to be adaptable to a variety of use cases. It can easily be modified to support other types of differential drive robots. It has a Simulink® interface that can be used as an alternative to programming in MATLAB. In addition to relying on the simulator as a teaching tool, I use it in my own research.
Programming Robots in MATLAB
After two weeks of in-class lessons on embedded controls, my on-campus students switched to the MOOC videos to learn new concepts. They came the first class session each week prepared to apply those concepts by developing MATLAB programs to run in Sim.I.am. In the second session, they tested and refined the programs on the Khepera robots. I did not have to spend class time teaching MATLAB because they had all learned programming with MATLAB in CS 1371: Computing for Engineers, a required course for all engineering majors at Georgia Tech.
For their first in-class assignment, students used MATLAB to program the robot to steer from a starting point to a goal using the movement of the robot’s actuators to estimate its change in position. They created a single input, single output proportional integral derivative (PID) design, tuning it to ensure that the robot did not oscillate as it drove, and that the actuators did not saturate. While actuator saturation is simulated by Sim.I.am, effects such as skidding and slippage are not. As a result, students learned to cope with real-world effects as they worked to improve algorithms that performed well in the simulator but less so on the robot.
In the second assignment, they had to make the robot move and turn away from any obstacle that it encountered. This assignment required them to write a MATLAB program that controlled the robot based on data acquired from the robot’s sensors.
Next, the students had to combine what they had learned in the first two assignments to design a controller that could get a robot to its goal while avoiding obstacles. For this objective, classic control design techniques are no longer sufficient; the system must switch between different controllers. In the following weeks, we added cul-de-sacs and multiple objects to the robots’ environment. To enable the robots to navigate these more complex environments, students implemented sliding mode controls. They used Control System Toolbox™ to explore and analyze design ideas before implementing them in code.
When the seven-week MOOC ended, I had planned to spend the four weeks remaining in the Georgia Tech semester lecturing on supervisory control topics. However, the students were so engaged and excited to work with the robots that I opted instead to use that time to expand their final design projects. Each student group came up with their own project idea (subject to instructor approval), and implemented it using MATLAB, Sim.I.am, and the Khepera robots. Among the most impressive were a program that moved multiple robots in formation and a simultaneous localization and mapping (SLAM) design that automatically built a map of its environment as it explored (Figure 3).
Gaps Bridged and Lessons Learned
Practicing engineers apply theory to make something happen in the real world. In ECE 4555, the students learned to do the same. They also learned several widely applicable engineering skills that transcend embedded controller design. Like practicing engineers, they argued about control designs and learned to identify the best ones.
In many group efforts, one student does all the work. This was not the case in ECE 4555. On many teams every student took the initiative to develop a solution, and then the team picked one to develop and optimize. Some teams were initially inclined to hack together a solution. They started fast, but soon discovered the value of slowing down to think through a design before rushing to implement it. They also learned how to assess and manage real-world effects. Such effects are easily dismissed when you are only doing simulations, and not actually smelling the burnt capacitor.
I’m now a firm believer in flipped classrooms, and the MOOC was invaluable to making ours a huge success. Other institutions have recognized the advantages as well; next year the University of Hawaii will flip an upper-level design course using Control of Mobile Robots.
On campus, I plan to incorporate the Simulink interface to Sim.I.am. Further improvements may include adapting it to work on a less expensive robotics platform.