University of Florida Students Use LabVIEW and CompactRIO to Design and Implement Dynamic Radiographic Imaging Control Software on a Mitsubishi Robotic Manipulator
"In six man-months using LabVIEW and CompactRIO, we duplicated most of what took six man-years to develop in C++ code. We also added new functionality and improved performance, so now it is easier for students to join and manage the project."
- Dr. Scott Banks,
University of Florida
Replicating existing control software to facilitate the involvement of new students and researchers, accelerate development for current researchers, decrease the amount of equipment necessary to perform controls tasks, and achieve faster loop times.
Using the NI LabVIEW Real-Time Module, the NI LabVIEW MathScript Module, and NI CompactRIO hardware to replace real-time Linux, ANSI C++, and single-purpose proprietary hardware to create an easy-to-use, high-performance control system for a robotic manipulator.
In the Orthopedic Biomechanics Laboratory at the University of Florida, we develop programs and systems to better understand and study human movement. One of these projects is a novel, robotically actuated platform currently used to research surgical imaging and characterize the mechanical properties of the human spine. In the past, we used this platform to research a dynamic tracking X-ray system to image people’s joints or implants during normal movements.
Producing a system that integrates robots, sensors, computer platforms, and programming languages is a daunting task. Therefore, this project focuses on developing and testing the control software for this system. Dynamic Radiographic Imaging Control Software (DRICS) is an easy-to-use, high-performance framework. Robotic hardware includes Mitsubushi PA10-6C serial manipulators and a custom-designed 5-axis robotic positioner.
We previously built a framework that ran under real-time (RTAI or Xenomai) Linux, required frequent kernel recompiles and patches, was built on several open source projects, and contained tens of thousands of lines of original code. Making significant changes to this code required ANSI C/C++ knowledge and tools like CMake, Subversion, and ICE. This framework worked well, but it was very intimidating to new students and researchers.
In October 2010, at the suggestion of Dr. Scott Banks, we started to trying to replicate the existing functionality of the system using LabVIEW. By early November 2010, basic functionality was up and running. We used object-oriented programming (OOP) to make the project more modular. At this point, new users just create their own controller and target generator, with the class definitions taking care of all the variable passing and type definitions. A new user does not need to modify the code that handles robot communication, data I/O, timing and simulation/visualization of the robot. Furthermore, these controllers and target generators can be tested in simulation, providing an interactive environment that is safe for both the user and the robotic equipment.
We continued development over the following months, and in January 2011 we decided to move the control loop to a real-time target. Unfortunately, the robotic arm servo-driver box only communicated via a fiber-optic implementation of the networking protocol called ARCNET, at 5 Mbit/s. At these speeds, a binary “1” is represented by a 100 ns pulse. Therefore, the only possible solution was to code the entire protocol on the field-programmable gate array (FPGA) using the LabVIEW software environment. As a lab, we had no prior experience with the LabVIEW FPGA Module. However, only a few months later, we were using the FPGA to send low-speed ARCNET messages. After we tuned and optimized the code, including increasing the clock frequency from 40 MHz to 120 MHz, we achieved full-speed communication and control of the robotic arm.
The transition to using LabVIEW and CompactRIO has helped us improve ease of use for beginners, control performance, and manage the project. The interactive LabVIEW front panel gives researchers the ability to easily input path information, switch between control schemes, and visualize the robot in 3D space online or offline. At the University of Florida Mechanical and Aerospace Department, we use LabVIEW in at least three mandatory classes, so undergrad students are more prepared to contribute research using this framework than the previous system.
Explore the NI Developer Community
Discover and collaborate on the latest example code and tutorials with a worldwide community of engineers and scientists.
Who is National Instruments?
National Instruments provides a graphical system design platform for test, control, and embedded design applications that is transforming the way engineers and scientists design, prototype, and deploy systems.