Most users of Quanser systems are well-aware of QUARC, the rapid control prototyping software. Seamlessly integrated with Simulink®, QUARC significantly speeds up the control design and implementation process. But very few people realize that real-time control by Quanser goes way back. Back to the days before Simulink was released and Microsoft Windows became widespread.
Do you remember DOS?
The DOS-based real-time control application developed by Dr. Jacob Apkarian, Quanser’s Founder and Chief Technology Officer, was the first attempt at connecting control design with actual hardware in real time. While it did its job well, the learning curve for the students in the lab was fairly steep. Paul Karam, Quanser’s Director of Engineering recollects that from his undergrad student days quite well.
Real-time Control Meets Windows
As Microsoft Windows took over, Jacob wanted to develop a graphical way of implementing control design in Windows. He assigned that task to Quanser’s Chief Scientist, Dr. Dan Madill. The result, WinCon 1.0, came before the existence of code generation from The MathWorks’ Simulink toolbox. Originally, WinCon had fixed controllers. Users could select a PD or PID controller, for example, tune the gains, and deploy the controller to hardware in real time.
When Simulink code generation was first released, there was still no way to do real-time coding. However, Simulink’s ability to generate C code opened a new opportunity for Quanser’s software developers. They came out with a new version, WinCon 2.0, which meant no more pre-canned controllers. Integrated with Simulink, WinCon 2.0 automatically generated control code and ran it on hardware in real-time. Actually, Quanser was the first one to generate real-time code from Simulink and interface to hardware.
WinCon worked well with successive versions of Windows, but as time went on, the technical challenges of providing real-time performance on Windows grew. That’s when the software team moved WinCon on to the RTX real-time kernel. As the demand for new devices and more features increased, WinCon’s architecture began to show its age.
A Real-time Revolution
That’s when Dan decided to rewrite the software completely, creating a new paradigm. The next version of the real-time control software, QUARC, expanded the scope of its predecessor, WinCon, and was much more integrated with Simulink.
In designing QUARC, the main focus was on generating hard real-time code for the QNX operating system. QUARC for Windows served for testing, as the team found it a lot easier to debug on Windows than on a remote QNX machine. As it turned out, the Windows version of QUARC ran well enough to provide soft real-time control, and given the prevalence of the Windows OS in academia and the ease of supporting new devices, the Windows target began to dominate.
However, the design approach of supporting multiple operating systems proved to be extremely useful. Using “wrapper layers” that abstracted the operating system, every operating system looked the same to QUARC in terms of coding. It meant a consistent user experience and made later Linux support much easier.
Since the original inception, there has never been much rework and re-architecture of QUARC. It has always been a smooth expansion and growth of the feature set, from the host blocks to speech recognition and remote autonomous targets. That shows how stable, robust, and reliable the foundations and the original code design are.
As a result, QUARC was a real-time revolution: extremely versatile, portable, flexible and verifiable. With QUARC, doing simulations and real-time control became seamless. That ensured it would be a great performer in teaching, as well as fundamental and advanced research.
A Few Examples
There are many examples highlighting the capabilities of QUARC. Take the Toronto Rehab Institute‘s Challenging Environment Assessment Laboratory (CEAL). With the large motion platform and multiple advanced simulators capable of recreating different real-world environments and situations, QUARC is the lab’s brain. It allows the TRI’s team to quickly design and develop models and deploy them to a network of distributed computers that run the synchronization of all system components of this advanced research application in real time. Without QUARC, such a complex environment would be almost impossible to manage efficiently.
The Advanced Telerobotics Framework is another example of leveraging QUARC as a rapid prototyping development and integration environment for a very advanced distributed system including multiple manipulators with extensive sensing and immersive haptic teleoperation.
But the best example and testament to the flexibility and extensibility of QUARC, and the quality of its architecture is that it always readily adapts to new needs, emerging applications and technologies. Our team can easily build on the foundation layer of QUARC and its architecture to not only support advanced image processing, AI, or machine learning but also branch out and build bridges to other now well-established environments such as Python and ROS.