Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Customer Solutions

Remote Control of a Rhino Robot Using LabVIEW 6i and DataSocket Technology

Author(s):

A.M. Shiver, Purdue University; E.C. Cooney, Purdue University

Industry:

University/Education

Product:

LabVIEW, PXI/CompactPCI

The Challenge:

Providing both on-campus and distance learning students with experiences in motion control system design and implementation using state-of-the-art industry technology.

The Solution:

Using National Instruments LabVIEW 6i with DataSocket technology and PCI-7344 motion controller to implement a modular control application that works with an existing robot and four-axis driver.


Hardware
Using the existing Rhino Robotics Ltd. SCARA and the locally fabricated driver, we can keep costs to a minimum. The driver circuits convert TTL level signals for four axes to the ±12 V high current signals necessary for the servomotors of the robot. Because the analog motion control output of the PCI-7344 is unsuitable for the TTL level input of the driver, we use the PCI-7344 digital I/O ports used for motion control output. We achieve closed-loop feedback by bringing encoder and home signals in through the PCI-7344 motion control circuits.

Digital motion control signals pass to the driver through a CB68-LP terminal block. Feedback signals pass to the motion control card through a UMI-7764 universal motion interface (UMI) accessory. Each of four axes of the robot connects to the power driver through a 10-pin connector.

Modular Low-Level Functions Facilitate Reuse
The LabVIEW FlexMotion library of programs (VIs) does not handle motion control from digital I/O ports, so we created locally designed programs. A library of modular building block VIs performs functions from mapping port and bit connection information for each axis, to moving an individual axis to the home position. With this modular design, we gain a large degree of flexibility in hardware and software modifications, which students can reuse in advanced on-campus motion control experiments.

Reprogramming for changes in hardware can be as simple as opening a VI and changing port and bit numbers in the front panel. Although we wrote these programs for use with the PCI-7344 motion controller, they have a modular design, which you can quickly modify for use with a PCI-6602 counter/timer card when you need robot control software in an advanced controls class.

Individual Axis Control
Individual axis control VIs use the modular building blocks for movement control and LabVIEW FlexMotion VIs for closed-loop feedback. Although we cannot implement proportional or pulse-width modulated control using digital I/O, a nested loop arrangement moves the axis to within a few encoder counts of desired position, and then pulses power to the axis until position is within one encoder count of the targeted position.

Simultaneous Four-Axis Control
The main program front panel has control and indicators that interface with the four individual axis controls used as subVIs, which permits simultaneous control of all four axes.

Remote Operation Using DataSocket Technology
We implemented remote operation using National Instruments DataSocket communication protocol. The DataSocket Server application runs on the local robot control PC. The DataSocket Server accepts published data from applications and broadcasts data to subscribing applications. All data passed between the remote and local VIs is channeled through the DataSocket Server.

During remote operation, the controls and indicators of the Robot Remote Control VI subscribe to axis position data and publish axis target position data. The controls and indicators of the Local Robot Move Server VI subscribe to axis target position data and publish axis position data. The remote user has immediate feedback in the axis position data published by the Local Robot Move Server VI. Streaming video from a Web camera also provides visual feedback. A third-party server publishes the Web camera video, which we can access via an ActiveX control on the front panel of the Robot Remote Control VI.

Implementing DataSocketCommunication
DataSocket communication relies on the DataSocket Server, which may or may not run on the same computer as client applications. With default permissions on the DataSocket Server, we have access only to the computer it runs on. To achieve communication outside that computer, we can use the DataSocket Server Manager to configure the Server to accept published data from the computer or host running a client application, and to allow the host that is running a subscribing client application to read data. To use remote communication outside the local area network (LAN), as in this application, it is necessary to run the DataSocket Server on a computer with a static IP address.

Conclusion
We have replaced an antiquated DOS-based robot controller with up-to-date equipment at minimum expense, and achieved reliable control of the robot across our LAN and from across the United States via the Internet. The DataSocket technology and modular design format of this project form a foundation for future student experiments with remote sensors and data acquisition.

For more information, contact:

A.M. Shiver and E.C. Cooney

Electrical Engineering Technology Department

Purdue School of Engineering and Technology Indianapolis

799 West Michigan Street

Indianapolis, IN 46202

Tel: (317) 274-7738

Fax: (317) 278- 0789

E-mail: eccooney@iupui.edu.

View the PDF
shivercooney.pdf

View the entire user solution in Adobe Acrobat PDF format.