Browse Prior Art Database

Top Level Software Design for Data-Driven Robotic Applications

IP.com Disclosure Number: IPCOM000042214D
Original Publication Date: 1984-May-01
Included in the Prior Art Database: 2005-Feb-03
Document File: 3 page(s) / 17K

Publishing Venue

IBM

Related People

Harris, WE: AUTHOR

Abstract

Many good candidates for robot applications are data-driven: the manufacturing task of the robot over a class of functionally similar parts differs only in the places to which the robot moves. This description presents the top level software design for one data driven robotic application (electronic card assembly) which has been successfully implemented. The software design describes a functional decomposition that maintains good program modularity and facilitates management of program space. Furthermore, it is a general solution which can be used in implementing other data-driven (or generic) robotic applications, including electronic card test, pilot hole drilling, and cable harnessing. As mentioned above, this design was developed in the course of implementing an assembly system for electronic cards.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 37% of the total text.

Page 1 of 3

Top Level Software Design for Data-Driven Robotic Applications

Many good candidates for robot applications are data-driven: the manufacturing task of the robot over a class of functionally similar parts differs only in the places to which the robot moves. This description presents the top level software design for one data driven robotic application (electronic card assembly) which has been successfully implemented. The software design describes a functional decomposition that maintains good program modularity and facilitates management of program space. Furthermore, it is a general solution which can be used in implementing other data-driven (or generic) robotic applications, including electronic card test, pilot hole drilling, and cable harnessing. As mentioned above, this design was developed in the course of implementing an assembly system for electronic cards. The task was to insert and secure a variety of square modules into printed circuit boards using the IBM RS-I robot. This application, called the MISL (Module Insertion with Silver Lining) application will be used throughout for illustration. In designing the data base, the application writer must define the entities or "objects" about which he must keep information. For the card assembly system, these objects and their attributes include: Parts: Electronic components - for each component, its dimensions, the location of the reference pin, and the pin configuration. PC cards - dimensions and fixture requirements. Assembly data - for each card, which component goes where and in what orientation. Part feeders - for each feeder, the type of component which it holds, its location in the robot work area, and its status (e.g., currently loaded component, empty or full). Fixtures - each entry describes a card holding fixture, its location in the robot work area, the number of cards which it holds, and the location and orientation of each card. Calibration information - the relationship between the positional information in the various data bases and the most recently measured robot-positioning errors. The design of the application program is presented from two viewpoints. The first is a bottom-up view, in which the lower level or basic functions are discussed. The second is a top- down view, in which the top level functional decomposition is explored. First, consider the bottom-up view: In bringing up the electronic card assembly application, the programmer took advantage of two packages which were already implemented. One was a "terminal interface" package (for communicating with the user via the terminal); the other was a calibration math package (for basic linear algebra operations). The programmer wrote two additional packages which may have general use in other applications. The first was a "data base" primitive package, which generally takes care of fetching from and writing to the various data base files, searching, channel management, and the like. The second was a "pow...