Dr. Aman Behal of the University of Central Florida (UCF) is an Assistant Professor in Electrical Engineering with a special interest in robotics research that leads to improving the lives of people with physical disabilities. He runs the Assistive Robotics Lab at UCF, where he and his research assistant, Zhao Wang, are adding intelligence to a commercially-produced robotic arm to help paraplegics perform everyday tasks through a variety of touch or audio commands. With Quanser’s assistance, he found a way to integrate programming languages and more quickly prototype a working model of the robot arm.
Bridging the gap between C/C++ and Matlab
Working with a commercially-available robotic arm in the lab, Dr. Behal and his research assistant Zhao Wang were endeavoring to add intelligence to it, including controllers, cameras, and voice sensors, to perform specific assistive tasks. Their immediate problem was that the entire programming process was taking a great deal of time. In fact, Dr. Behal found they were spending most of their time working on a lower level of control, such as dealing with the basic inputs and outputs of the robot, when they really wanted to focus on programming higher-level robotic activity, specifically, the human-robot interaction and the interface that was their main focus.
“We eventually solved our low-level problems by dealing with the robot manufacturer, but we wasted a lot of time in the end,” says Dr. Behal. “No researcher wants to do this because they’re interested in doing the programming work that leads directly to active simulation, achieving results and taking the research to a productive level. That way they can demonstrate the usefulness of the project and attract funding.”
One key element of the robot arm’s new level of intelligence was a vision-based controller Dr. Behal’s researchers added to it. Visual intelligence would help the robot arm locate objects that its gripper would pick up.
The slow progress was a continuing problem. “We developed a new algorithm and the easiest place to test it was in Matlab. Unfortunately, the rest of our system was coded in C language. We didn’t know how to get our two types of programming languages to talk together, without re-programming everything in Matlab. We were looking at more lost time and needless work.
QUARC unites programming languages easily
Once Dr. Behal outlined his predicament to a visiting Quanser Academic Solutions Advisor, the answer emerged. The Quanser Advisor suggested that the key to making two incompatible languages “talk” to one another lies within using QUARC® control design software, which offers a rapid control development and deployment environment, and specifically, QUARC’s Stream API.
QUARC has the communications blocksets and the capability to speak both languages and make them work as one. As a result, the robot’s vision-based controller was programmed to identify objects and pick them up easily and quickly.
This ability to share memory and bridge the two languages basically allowed research assistant Wang to quickly take the simulation they were running in Matlab and join it with the program they had running in C/C++ outside of Matlab. Then, just by dragging and dropping Stream API blocks into the Simulink model and one click, they were able to actually get these programs to talk.
“By understanding two different programming languages, QUARC helped us to prototype the system and produced a working simulation very, very quickly,” says research assistant Wang. “In one week I installed QUARC, took the interactive tutorial available online from Quanser and used QUARC successfully to do rapid prototyping of the experiment. It just worked as we intended it to. We did high-level programming of the robot’s vision-based controller very quickly and accurately.” Because the experimental results exactly matched what research associate Wang saw in the simulation, he was able to actually drop the simulated robot and use the experimental robot in no time.
Since QUARC was introduced into this project three years after it started, some of the programming, however laborious, was already done. Once QUARC was brought into the project, programming was simple and the vision-based control became robust. “If we had been aware of QUARC when we began this assistive robotic project, it would have sped up this project a great deal. We could have saved two years!”
Rapid, robust programming and enhanced collaboration opportunities
With QUARC, Dr. Behal discovered a solid foundation on which to continue his work in assistive robotics. “Everything you do becomes a layer you can build upon. QUARC has made our programming faster and more robust. That will allow us to build upon the human-robot interaction algorithm more efficiently in the future. More importantly, QUARC allowed us to move forward quickly by unifying our old and new programming platforms.”
Ultimately QUARC becomes a very useful tool for rapidly moving from research into collaborative development, according to Dr. Behal. “In the future we will probably be involved with different research groups with different capabilities. Most of their research work will likely be implemented in Matlab and, with QUARC, we now have the capability to incorporate their modules into our robot. So it will be very easy for research groups to contribute to our project.”
Now that Quanser software has been of such value to his research project, Dr. Behal is actively considering integrating Quanser hardware products such as the SRV02 rotary systems in his teaching role, specifically for classroom demonstrations and lab experiments. His students can then look forward to memorable, hands-on learning across a wide range of rotary control experiments.