Technical Articles

Teaching Robotic Control Concepts with a Robotic Arm, an Arduino Microcontroller, and Simulink

By Eric Marchand, Prytanée National Militaire


Whenever possible I introduce real systems into the classroom to analyze, model, and solve complex physical systems. When students can actually see how control commands affect system behavior, the entire learning experience becomes more meaningful to them. To help students tackle hands-on projects, I introduce them to MATLAB® and Simulink®. They grasp these tools easily and are soon using them to modify models to meet specific control requirements. More importantly, the students use MATLAB and Simulink to control real systems running in real time.

Recently, I added an ABB industrial robotic arm to my lesson plans (Figure 1). The control unit for the arm had been broken for some time, rendering the entire arm unusable. I seized the opportunity to create an entirely new control unit based on an Arduino Mega microcontroller managed via an interface based on MATLAB and Simulink. 

Figure 1.  The ABB robotic arm, named ERICC 3, in the lab.

Figure 1. The ABB robotic arm, named ERICC 3, in the lab. 

Building New Robot Control Hardware

Before the ABB robot could be used in class, I had to replace its original control unit, which was damaged beyond repair. I constructed a substitute controller based on the Arduino microcontroller. It included all the necessary interfaces and boards for processing inputs from the robot’s encoders and motor current sensors (Figure 2).

Figure 2. Control box with Arduino control board as well as a USB port and other I/O connectors.

Figure 2. Control box with Arduino control board as well as a USB port and other I/O connectors.

Educational lab equipment can be very expensive. I was able to create a custom setup with a microcontroller ready to be programmed in the MATLAB and Simulink environment for less than 100 euros. Compared with a black-box system, this setup gives me much greater control over what I can teach and how.

Teaching Control Software Principles with ERICC3

To help the students get started, I created a simple presentation page in Simulink that outlines the startup, shutdown, and homing procedures to use when working with the robot (Figure 3).

Figure 3. Simulink interface for controlling the ERICC3 robot, including start-up and shut-down procedures.

Figure 3. Simulink interface for controlling the ERICC3 robot, including startup and shutdown procedures.

In class, I introduced the principles of control theory. I highlighted the limitations of a direct control chain and explained how more complex feedback loops are often needed to meet the constraints or requirements of a particular control scenario. I then demonstrated these concepts via a simulation in Simulink and on ERICC3.

The class was divided into groups of four or five students, and each group was assigned a role, such as project management, experimentation, or simulation. In addition to completing the responsibilities of their assigned role, each group had to make a final oral presentation to the entire class.

Among the first tasks the students tackled was developing a PID control model in Simulink for a single motor. They used this model to optimize servo parameters via simulation before running the controller in real time on the Arduino Mega with the robotic arm. They then performed a gap analysis, generating a plot to compare commanded position and speed with actual position and speed measurements collected during experiments (Figure 4). 

Figure 4. PD controller model and plot of commanded and actual position and speed.

Figure 4. Top: PID controller model. Bottom: Plot of commanded and actual position and speed.

I gave the students a specification describing a series of movements for the arm to perform. They had to use the specification to extend or modify a Stateflow® chart (Figure 5), which they then used as a supervisory controller that automates initialization of the arm and its movement while continuously monitoring each motor’s current.

Figure 5. Stateflow chart for automatic guidance and control of the robot’s shoulder, elbow, wrist, and pincher.

Figure 5. Stateflow chart for automatic guidance and control of the robot’s shoulder, elbow, wrist, and pincher.

Next Steps

There are several areas in which I can improve the lessons that I teach with the robotic arm. I see opportunities, for example, to add more control parameters and to compare model simulation results with measured results. I also plan to incorporate frequency response analysis with Bode plots in MATLAB. Each concept or principle introduced will be tied to a practical implementation with the robot. Concrete, tangible experiences are more memorable than anything a textbook or on-screen simulation can provide.

About the Author

Eric Marchand is a professor of industrial engineering sciences at Prytanée National Militaire. He teaches the two-year CPGE (Classes Préparatoires aux Grandes Écoles) level class, which aims to prepare students for the Grandes Écoles.

Published 2019

View Articles for Related Capabilities