Technical Articles

Winning the Cornell Cup Student Competition with a Robotic Arm Exoskeleton

By Nicholas McGill and Nicholas Parrotta, University of Pennsylvania


For patients undergoing physical therapy, a powered upper-body exoskeleton fitted around the injured limb can increase range of motion and rebuild muscle strength. Exoskeletons are also emerging as tools for augmenting able-bodied performance.

As our fourth-year undergraduate capstone project, we designed and built a controllable, wireless exoskeleton called Titan Arm (Figure 1). Titan Arm is capable of lifting more than 40 pounds while providing precise metrics on the angle of the elbow.

Figure 1. The Titan Arm robotic exoskeleton.
Figure 1. The Titan Arm robotic exoskeleton.

We designed and built this proof-of-concept arm in just eight months. We constructed a working prototype consisting of custom frame elements that we milled ourselves, a brushed DC motor, two 18.5 V lithium polymer batteries, a cable drive transmission, a mechanical brake, Hall effect sensors, and other components. We relied on MATLAB® for evaluating early design decisions and plotting data streamed wirelessly from the arm’s sensors.

Titan Arm won first place and $10,000 at the Cornell Cup USA student engineering competition, as well as winning second place in the senior design project competition sponsored by Penn’s School of Engineering and Applied Science. Titan also won the James Dyson Award, beating out over 650 applications from 18 countries. This was the first time that an American team has won the award.

Forming the Project Team

Our capstone project team consisted of four mechanical engineering students. We came together as a team late in our third year. Joining the two of us were Niko Vladimirov, who has a strong interest in mechatronics, and Elizabeth Beattie, who has years of experience in orthopedics. We found we had complementary skills that spanned mechatronics, electronics, orthopedics, manufacturing, mechanical design, and embedded systems.

The four of us had another important thing in common: several years of experience with MATLAB—or as we call it, “an engineer’s best friend.”

Developing Our MATLAB and Simulink Skills

Throughout each year of the mechanical engineering curriculum, we used MATLAB and Simulink® to apply the concepts and theory learned in class, developing the skills we would use to design the Titan Arm system.

We began solving problems with MATLAB in MEAM 105: An Introduction to Scientific Computing. In this first-year course we used MATLAB to simulate physical and chemical systems, analyze experimental data, conduct Monte Carlo numerical experiments, and interact with sensors and actuators. The following year, in MEAM 248: Sophomore Design Lab, we used MATLAB to model, simulate, and visualize a passive dynamic walking robot moving down an inclined plane. This course was taught by Dr. Jonathan Fiene, who was also our advisor on the Titan Arm project. Third-year assignments with MATLAB included data acquisition and processing. For example, we performed rocket motor testing by acquiring strain gauge data from a metal beam with Data Acquisition Toolbox™ and calculating the thrust curves with MATLAB.

In our introductory course on control systems, we used Simulink to develop a controller for a model train set in which one train followed another around a track. The goal was to control the velocity of the trailing train to maintain a set distance behind the leading train even if it changed speeds. We built a Simulink model of the system, developed a proportional-integral-derivative (PID) controller, and tuned the gains to meet the project requirements.

Using MATLAB and Simulink on the Titan Arm Project

Before designing Titan Arm, we consulted a physical therapist in the University of Pennsylvania Health System. The therapist told us that rehabilitation of an injured limb focuses on improving the patient’s strength and range of motion. Based on these early talks, we knew that Titan Arm would need sensors to provide data on the angle of the elbow joint, a wireless communication link to transmit this data, and a way to visualize it. Before we could do any of that work, however, we had to design the actual arm.

Our initial idea was to mimic the muscles in the human arm, using actuators in place of biceps and triceps muscles to flex and extend the exoskeleton’s elbow joint. When we modeled and analyzed this design in MATLAB, we discovered that it would require two actuators (in this case, motors) because the biceps and triceps muscles flex at different rates. To keep down costs, we adopted a simpler design in which a single motor actuates the elbow joint via a cable drive transmission (Figure 2).

Figure 2. The Titan Arm motor and cable drive transmission.
Figure 2. The Titan Arm motor and cable drive transmission.

We used MATLAB to guide several other early design decisions. For example, we performed analysis in MATLAB to calculate and visualize the arm’s joint space, or the space within which it could move. Our teammate Elizabeth used MATLAB to evaluate cable strength during mechanical tests in which she applied a tensile force to various cables and measured the resulting displacement.

When we began designing the Titan Arm control system, we used Simulink to try out ideas, including PID and proportional-integral (PI) controllers. Our simulations showed that a simple proportional velocity controller would meet our requirements.

As the project progressed, we constructed a prototype exoskeleton frame and mounted the motor, the transmission, the braking system, and four Hall effect sensors, including one at the elbow joint and three at the shoulder joint. These sensors provided the detailed data on the position of the arm that physical therapists need to monitor and measure improvements in range of motion. A BeagleBone board mounted near the arm’s batteries acquires data from the Hall effect sensors and transmits it wirelessly via UDP. We wrote a MATLAB script that runs on an Intel® DE2i board to process the UDP packets and display the data graphically as it streams live from Titan Arm (Figure 3). MATLAB really helped the design process at the testing stage. It allowed us to quickly try different parameters and visualize the results immediately, without having to wait to postprocess the data.

Figure 3. Live streaming data from Hall effect sensors displayed in MATLAB.
Figure 3. Live streaming data from Hall effect sensors displayed in MATLAB.

As part of our usability testing, our teammate Niko showed how Titan Arm enabled him to lift a 40-pound weight with a bicep curl (Figure 4).

Figure 4. Niko Vladimirov lifting 40 pounds with the Titan Arm.
Figure 4. Niko Vladimirov lifting 40 pounds with the Titan Arm.

The Cornell Cup and Beyond

After presenting the completed Titan Arm as our capstone project and receiving our Cornell Cup award, the four members of our team graduated with bachelor’s degrees in mechanical engineering. We have continued to use the design skills that we developed on the project, as well as the experience we gained with MATLAB and Simulink. Elizabeth is pursuing a Ph.D. at Penn, and Niko is working as a mechanical engineer at IDEO.

The two of us are pursuing postgraduate degrees, and continuing to develop the Titan Arm. Currently we are exploring the use of electromyography as a way to control the arm with the nerve signals that normally control muscles, which could lead to the use of Titan Arm as an assistive technology.

Published 2014 - 92160v00