Customer SolutionsDeveloping a New Library of VIs for a Re-Engineered Laboratory Robot
Author(s):Silpa Wairatpanij, Indiana University School of Informatics; Douglas G Perry, Indiana University School of Informatics
Industry:Life Science
Product:LabVIEW, Motion Control, Vision
The Challenge:Creating an entirely new robotic control system for a laboratory robot.
The Solution:Replacing the existing controller with a National Instruments motion controller and developing a new library of programming VIs for users to perform task-level programming in National Instruments LabVIEW.
The Zymate™ XP from Caliper LifeSciences is a four degree-of-freedom cylindrical workspace robot used for automated sample preparation in laboratories. The robot is excellent for showing the principles of laboratory robotics. The Indiana University School of Informatics offers a course in data acquisition and laboratory automation that uses LabVIEW as a core teaching tool because of its superb functionality for data acquisition and instrument control. We wanted to extend this functionality to demonstrate robot control as well. Therefore, to take advantage of the full capabilities of LabVIEW, we re-designed the robot using hardware from National Instruments. Re-Engineering with NI Hardware We stripped down the robot to its frame and kept only the articulating parts of the robot. All of the analog position sensors were replaced with new digital encoders. To replace the controller, we chose the NI PXI-7358 motion controller instead of other third-party controllers because of its simultaneous control of eight motion axes, full compatibility with LabVIEW, and rapid systems testing using the NI Measurement & Automation Explorer. All the actuators (servo motors) of the robot axes were driven by two MID-7654 units, one for the body of the robot and the other for tools and peripheral devices. Software Development with LabVIEW We separated software development into five different layers: 1) user interface, 2) task layer, 3) motion layer, 4) trajectory path planning layer, and 5) controller layer. We started with the most important layer, the trajectory path planning layer, which moves the robot from its current position to any destination in the robot workspace. To move from point A to point B, we needed to create a position profile according to the intended position and orientation of the destination point, as well as the appropriate velocity, acceleration, and deceleration. To accomplish this, we created a library of mathematic operation To determine the position and orientation of the robot, the position of each axis was acquired from encoders in counts, then converted into units, either degrees or millimeters depending on the type of joint motion. To assure accurate unit conversion, we used an image acquisition system for angular motion and a laser distance measurement system for linear motion. For angular motion joints, we created a pattern of two adjacent triangles attached to the center of the axis, and attached an IEEE 1394 CCD camera above the axis. We were amazed by how quickly and easily the NI Vision Assistant guided us on how to create pattern matching applications, which provided the orientation of that pattern. Then, we moved the robot in counts and obtained the orientation in degrees, and used a linear fit to create a conversion equation. For linear motion joints, we performed the same procedure using a laser distance measurement device. After arrays of position for all axes were generated by the trajectory path planning layer, the controller layer then fed these arrays to the controller buffer, and used a contoured move method to move the robot along the path. This layer not only fed the position arrays to the controller, but also executed preloaded controller onboard programs for finding reference procedures. These programs executed every time the system was turned on to reset all the axis positions to zero before performing any other operation. Another task for this layer was a one-time setup that loaded all the parameters of each axis, such as PID gains and I/O signal routing. VIs in the task layer were the final Each segment of the motion layer interpreted the location from the task layer to the position and determined whether or not “via path” points were needed, then gave all the parameters to the trajectory path planning layer. All coordinates of the locations were stored in and retrieved from a database using the Database Connectivity Toolkit. Lastly, the user interface layer was used only when the user wanted to change the system setting, perform calibration, define locations, and monitor the system. We used the 3D Picture Control Toolkit to create a 3-D picture representing the movement of the robot. We started by drawing a 3-D model of each axis of the robot in SolidWorks™. We then imported each model into LabVIEW, and positioned it accordingly to the position that had been acquired from the controller. The result was a spectacular, real-time, virtual representation of the movement of the robot. Successful Robot Control System Re-Design In conclusion, users can create their own robot procedures to perform operations using the robot with the LabVIEW environment. The entire project took less than a year to complete because of the ease of design afforded by LabVIEW and National Instruments. In the future, we will add a task scheduling layer to this project for multi-device control and use network client-server schemes for remote control. For more information, contact: Silpa Wairatpanji Tel: (317) 278-9207 E-mail: siwairat@iupui.edu
|

