throbber
!
`
`'i
`
`IROS ’92
`
`VOLUME 1
`
`PROCEEDINGS OFTHE 1992
`lEEE/RSJ INTERNATIONAL CONFERENCE ON
`
`‘VINTELLIGENT ROBOTS
`AND SYSTEMS
`
`lUl.
`(.'S'tk ;
`Sensor-based Robotics And Opportunties For Its Industrial Applications
`
`I
`
`July 7-10,1992
`
`Raleigh, North Carolina, USA
`
`SPONSORED BY
`The IEEE Industrial Electronics Society * The Robotics Society of Japan
`The Society of Instrumentation and Control Engineers
`The IEEE Robotics and Automation Society * The New Technology Foundation
`
`Page 1 of 13
`
`Mercedes Exhibit 1007
`
`

`
`i
`
`I
`
`i
`
`f.
`
`\Q
`
`~
`
`i\T
`a !0
`-<
`. o
`. :r 44-31
`
`N > 1
`C . 1
`
`^O'^S Hq
`V THE \
`* MILTON S.li
`EISENHOWER
`LIBRARY ^
`
`1992 lEEE/RSJ International Conference on Intelligent Robots and Systems
`
`Abstracting is permitted with credit to the source. Libraries are premitted to photocopy beyond the limits of
`U.S. copyright law for private use of patrons those articles in this volume that cany a code at the bottom of the
`first page provided the p>er-copy fee indicated in the code is paid through the Copyright Clearance Center,
`29 Congress Street, Salem, MA 01970. Instructors are premitted to photocopy isolated articles for noncommercial
`classroom use without fee. For other coping, reprint, or republication permission, wnte to the Staff Director of
`PubUshing Services at the IEEE, 345 East 47th Street, New York, NY 10017-2394. All rights reserved. Copyright©
`1992 by The Institute of Electrical and Electronics Engineers, Inc.
`
`X-} c.
`
`/5
`
`IEEE Catalog Number. 92CH3181-5
`ISBNCasebound: 0-7803-0738-0
`Softbound; 0-7803-0737-2
`Microfiche: 0-7803-0739-9
`Library of Congress Number 92-53498
`AddilitHial copies of this publication are available from
`
`lEEE Service Center
`445 Hoes Lane
`Piscataway, NJ 08854-4150
`1-800-678-IEEE
`
`Page 2 of 13
`
`

`
`Table of Contents
`
`Organization
`
`Welcoming Messages
`
`Volume 1 (pages 1-702)
`
`Space Robotics: I (Special Session)
`Maneuvering and Manipulation of Flying Space Tclerobotics System ..
`K. Machida, Y. Toda, and T. Iwata
`-
`Mobility and Manipulation of a Light-Weight Space Robot ^...................
`Y. Xu, B. Brown, S. Aoki, and T. Kanade
`Integrating Robotic Functions and Operator Supervision using Petri Nets
`D.R. Lefehvre and G.N. Saridis
`Task Level Programming and Robot Autonomy .......................................
`G. Giralt, R. Alami, and R. Chatila
`-
`
`Force/Torque Sensing (Special Session)
`Load Carrying Capacities of ISO 9409-1 Bolt Patterns for Compact Six Degree of Freedom
`Force-Torque Transducers ........................................................................................................
`J. Ramming
`A Simplistic Approach to the Redesign of a Forcc/Torque Sensor ...........................................
`D.M. Perry
`Has Forcc/Torque Sensing Gained Factory Acceptance? ..........................................................
`K. Morris
`Implementation Results of a Hybrid Learning Force Control Scheme ....................................
`K. Gulielmo and N. Sadegh
`
`Coordinated Manipulation
`Cartesian-Space Kalman-Bascd Predictive Compensation For Computation Delays in Leader-
`Follower Coordination of Two Manipulators: Formulation and Experimental Validation ......
`Z. Turn eh
`Multi Point Compliance Control of Dual Ann Robots .................................................................
`A. Jazidie, T. Tsuji, and K. Ito
`
`IX
`
`111
`
`V
`
`3
`
`11
`
`20
`
`27
`
`37
`
`41
`
`44
`
`47
`
`59
`
`65
`
`s I I t
`
`I
`
`s
`
`‘I

`
`3I
`
`I
`
`Page 3 of 13
`
`

`
`/
`<
`
`>f
`
`m
`
`'iSt'
`rS
`
`A Generic Geometrical Path Planning For the Coordinated Motion of Two Manipulators
`JZ.C. Lai
`Coordination Specification for a Robotic Platform System..............................................
`F.Y. Wang, M. Mittmann, and G.N. Saridis
`Control of Mechanical System with Man-Machine Interaction .........................................
`K. Kosuge, Y. Fujisawa, and T. Fiikuda
`
`Adaptive Control
`Stability and Performance of Sampled-Data Robot Adaptive Controllers ............................
`G. Warshaw, H.M. Schwartz, and H. Asmer
`A Direct Adaptive Control Melliod With Desired Compensation for Robotic Manipulators
`H. Asmer, H.M. Schwartz, and G.D. Warshaw
`Implementation of a PC-Based Adaptive Control Scheme for an Industrial Robot..............
`K.C. Kushal and J. Sneckenberger
`Experimental Analysis of a Centralized/Decentralized Controller for Robotic Manipulators
`G. Yanovski, EJ. Davison, DM, Lokhorst, and J.K. Mills
`The Learning of Reactive Control Parameters Through Genetic Algorithms......................
`M. Pearce, R. Arkin, and A. Ram
`
`2-D Vision
`Some Problems in Perspective System Theory and Its Application to Machine Vision.....
`B. Ghosh, M. Jankovic, and Y.T. Wu
`A Combined Extended Circular Image and Spatial Occupancy approach to 2-D Contour
`Matching ....................................................................................................................................
`E. Milios and TJ. Horton
`Determination of Object Location via Decomposition of Movement ...................................
`X. Cao, G. Hu, and N. Shrikhande
`The Acquisition of Distance and Orientation of a Mobile Robot with a Concept of Virtual
`Corner Point..............................................................................................................................
`M. Park, H. Kim, D. Woo, and M. Park
`A Unification Theory for Early Vision ..................................................................................
`H. Jeong and J.G. Kim
`
`Dexterous Manipulation
`A Self-learning Controller for Monocular Grasping....................
`P.P. van der Smagt, B.J.A. Krose, and F.C.A. Groen
`Multi-Agent Architecture for Controlling a Multi-Fingered Robot
`T. Matsui, T. Omata, and Y. Kuniyoshi
`Mechanical and Control Features of the UB Hand Version 2.....
`C. Melchiorri and G. Vassura
`Grasp Recognition Using the Contact Web.....................................
`S.B. Kang and K. Ikeuchi
`
`X
`
`71
`
`79
`
`87
`
`95
`
`105
`
`114
`
`122
`
`130
`
`139
`
`147
`
`155
`
`163
`
`169
`
`177
`
`182
`
`187
`
`194
`
`Page 4 of 13
`
`

`
`A Computer Implementation of Fractal Based Inference Network Classifier for
`Sensorimotor Robot Hand Preshaping ..........................................................
`A. Erkman and C.V. Bay sal
`A System for Planning and Executing Two-Finger Force-Closure Grasps of Curved 2D Objects
`D. Siam, J. Ponce, and B. Faverjon
`
`202
`
`210
`
`Space Robotics: II (Special Session)
`Muliisensory Shared Autonomy—A Key Issue in the Space Robot Technology Experiment
`
`G. Hirzinger, /. Heindl, K. Landzettel, and B. Brunner
`Teleoperated Satellite Repair Experiments ..........................................................................
`H. Das, PS. Schenker, H. Zak, andA.K. Bejezy
`A Predictive Display with Force Feedback and its Application to Remote Manipulation
`System with Transmission Time Delay................................................................
`r. Kotoku
`Time Delay Insensitive Teleoperation ................................................................
`R. Paul, T. Lindsay, and C. Sayers
`Motion Estimation of Unknown Object for Space Robotic Missions........................................
`Y. Masiitani, Y. Okada, F. Miyazaki
`
`Manipulator Modeling and Control
`Experimental Study of the Identification Methods for an Industrial Robot Manipulator........
`K. Yoshida, N. ikeda, H. Mayeda
`Using Adaline Neural Networks for Compensation of Structured Uncertainty in Manipulators
`A. Kuan and B. Bavarian
`A Multi-Population Genetic Algorithm and Its Application to Design of Manipulators ...........
`J.O. Kim and P. Khosla
`'
`■
`On the Development of a Fuzzy Model-Based Controller for Robotic Manipulators ...............
`J.Y. Lai andJ.J. Shieh
`Adaptive Control of Robot Manipulators .................................................................................
`H. Yu, L.D. Seneviratne, and S.W.E. Earles
`
`■i
`
`'d.
`st
`
`I I
`
`IiI
`
`I
`
`221
`
`231
`
`239
`
`247 .
`
`255
`
`263
`
`271
`
`279
`
`287
`
`293
`
`301
`
`309
`
`317
`
`High-Level Control
`Robotic Control in
`an Uncertain Environment; Hypothesis Testing, Identification and
`Accommodation ..
`C. Maciag and G. Cook
`The Segmented Bus: A Dynamically Segmcntable Interprocessor Communication Network
`lor Intelligent Robot Systems .................................................
`C. M. Aras, R.C. Luo, and D.S. Reeves
`Propositional Logic Applied to Execution Control ......................................
`B. Degallaix, J.P. Thihault, and M. Ghallah
`Integration of Real-Time Software Modules for Reconfigurable Sensor-based Control
`D. B. Stewart, R.A. Volpe, and P. Khosla
`A Blackboard, Activity-Based Control Architecture for a Mobile Platform ..................
`R. Liscano, R.E. Fayek, and G.M. Kararn
`........
`
`.............
`
`XI
`
`Systems ... 325
`
`333
`
`Page 5 of 13
`
`

`
`Raleigh, NC July 7-10, 1992
`Proceedings of the 1992 EEE/RSJ International Conference on Intelligent Robots and Systems
`Integration of Real-Time Software Modules for
`Reconfigurable Sensor-Based Control Systems
`David B. Stewart^, Richard A. Volpe^, Pradeep K. Khosla^
`
`'^Department of Electrical and Computer Engineering and Tlie Robotics Institute
`Carnegie Mellon University. Pittsburgh, PA 15213
`*The Jet Propulsion Laboratory, California Institute of Teclinology
`4800 Oak Grove Drive, Pasadena, California 91109.
`
`Abstract—In this paper we develop a framework for Integrat­
`ing real-time software modules that comprise a reconfigurable
`multi-sensor based system. Our framework is based on the pro­
`posed concept of a global database of state Information through
`which real-time software modules exchange information. This
`methodology allows the development and integration of reusable
`software in a complex multiprocessing environment. A reconfig­
`urable sensor-based control system consists of many software
`modules, each of which can be modelled using a slmplihed version
`of a port automaton. Our new state variable table mechanism can
`be used in both statically and dynamically reconfigurable systems,
`and It is completely processor independent. Individual modules
`may also be combined into larger modules to aid in building large
`systems, and to reduce bus and CPU utilization. An efficient im­
`plementation of the state variable table mechanism, which has
`been integrated into the Chimera II Real-Time Operating Sys­
`tem, is also described.
`Keywords—reconfigurable sensor-based control systems, reus­
`able so^.ware, real-time operating systems, interprocessor com­
`munication, spin-locks, real-time software modelling.
`I. Introduction
`Real-time sensor based control systems arc complex. In order to
`develop such systems, control strategies are needed to interp-et and
`process sensing information for generating control signals. There has
`been considerable effort devoted to addressing this aspect of real-time
`control systems. However, ev«i with robust control algorithms, a so­
`phisticated software environment is necessary for efficient implemen­
`tation into a robust system. The level of sophistication is even greater
`if this system is to be generalized so that it is reconfigurable and can
`perform more than a single task or application. Obviously, a real-time
`operating system (RTOS) is part of this software environment. How­
`ever, it is also necessary to have a layer of abstraction between the
`RTOS and control algorithms that makes the implementation efficient,
`allows for easily expanding and/or changing tlie control strategies,
`and reduces development costs by incorporating the concept of reus­
`able software. The development of this layer of abstraction is further
`motivated by the realization that real-time control systems are typical­
`ly implemented in opcn-architecture multiprocessor environments.
`Several issues, such as configuring reusable modules to perform a job,
`
`■Jlic rcsurch r^xRXed in thi» paper ii rupported, in pan by. U.S. Army AMCOM and
`DARPA under contract DAAA-2189-C-0001, the National AerooauUca and Space Ad­
`ministration (NASA), the Department of Electrical and Computer Engineering, and by
`The Robotic* Institute at Carnegie Mellon Univereiiy. Paitial luppon for David B. Stewart
`U provided by the Natural Sciences and Engineering Research Council of C’anada
`(NSERC) through a Graduate Scholarship.
`I'he research reported in this paper was also performed, in part, for the Jet Propulsion
`I-aboratory (JPL), California Institute of Technology, for the Remote Surface Inspection
`system development ar>d accompanying projecu 126] under a contract with NASA. Rcf-
`ertmee herein to any specific commercial product, {nocess, or service by trade name, irade-
`maik, manufacturer, or otherwise, does not constitute or imply its endorsement by the
`United States Government or JK-.
`0-7803-0737-2/92$03.00 199201EEE
`
`325
`
`allocating modules to processors, communicating between various
`modules, synchronizing modules running on separate processors, and
`determining correctness of a configuration, arise in this context.
`In this paper we develop a framework for integrating real-time soft­
`ware modules that comprise a reconfigurable mulU-sensor based sys­
`tem. Our framework is based on the proposed concept of a global da­
`tabase of state information through which real-time software modules
`exchange information. This methodology allows the development and
`integration of reusable software in a complex multiprocessing envi­
`ronment.
`We define a control module as a reusable software module williin a
`real-Ume sensor-based control subsystem. A reconfigurable system
`consists of many control modules, each of which can be modelled us -
`ing a simplified version of a port automaton [22], as shown in Fig. 1.
`£ach module has zero or more input ports, and zero or more output
`ports. Each port corresponds to a data item required or generated by
`the control module. A module which obtains data from sensors may
`not have any input ports, while a module which sends new data to ac­
`tuators may not have any output ports. We assume that each control
`module is a separate task^. A control module can also interface with
`other subsystems, such as vision systems, path-planners, or expert
`systems.
`A link between two modules is created by connecting an output
`port of one module to an appropriate input of another module. A legal
`configuration is obtained if for every input port in the system, there is
`one, and only one, output port connected to it. An extension of the port
`automata theory is presented in 112], where asplit connector allows a
`single output to be fanned into multiple output ports, and a join con­
`nector allows multiple input ports to be merg^ into a single input
`port. The split connector replicates the output multiple times. For Uic
`join connector, a combining algorithm, such as a weighted average, is
`required to merge the data.
`
`input ports ^
`
`control
`nnodulG
`
`>yi
`:—►ym
`
`output ports
`
`communication with
`sensors, actuators,
`and other subsystems
`
`Fig. 1: Port automaton model of a control module
`
`1. We define a task as a sq>arate thread of control within a multitasking operating sys-
`t«n. The definition is consistent with that d* the Chimera U Real-Time C^ierating System
`[23], and is also known as a rfireodin Mach andPOSIX.anda figXtweigfirprocersinsome
`other operating systems.
`
`Page 6 of 13
`
`

`
`Other environments developed for robot control ([1][2](3](5][14])
`lack the flexibility required for the design and implementation of
`reconfigurable systems. The design of these programming environ­
`ments is generally based on heuristics rather than on software archi­
`tecture models, and lends itself only to single-configuration systems.
`Tlie environments also do not make clear distinctions between module
`interfaces and module content, thus lacking a concrete framework
`which would allow development of modules independent of die target
`application and target hardware.
`In this paper, we propose a metliod of using state variables for sys­
`tematically integrating reusable control modules in a real-time multi­
`processor environment. Our design can be used with both statically
`and dynamically reconfigurable systems. Section II describes the de­
`sign issues to be considered, and some of the assumptions we have
`made about the target environment. Section III gives the architectural
`details of our control module integration. Section IV describes an ef­
`ficient implementation of the state variable table mechanism, which
`has been integrated into the Chimera II Real-Time Operating System
`[23]. Finally, Section V summarizes the use of state variables for
`module integration in a reconfigurable system.
`II. Design Issues and Assumptions
`In order to design a general mechanism which can be used to inte­
`grate control modules in a multiprocessor environment, some archi­
`tectural knowledge of tlie target hardware is required. We assume an
`open-architecture multiprocessor system, which contains multiple
`general purpose processors (such as MC68030, Intel 80386, SPARC,
`etc.), which we call Real-Time Processing Units (RTPUs), on a com­
`mon bus (such as VMEbus, Multibus, Futurebus, etc.). Each proces­
`sor has its own local memory, and some memory in the system is
`shared by all processors.
`Given an open-architecture target environment, the following is­
`sues must be considered:
`Processor transparency: In order for a software module to be re­
`usable, it must be designed and written independent of the
`RTPU on which it will finally execute, since neither the hard­
`ware nor software configuration is known apriori.
`Task synchronizalioni Sensors and actuators may be operating at
`different rates, thereby requiring different tasks to have differ­
`ent frequencies. In addition, system clocks on multiple proces­
`sors may not be operating at the exact same rate, causing two
`tasks with the same frequency to have skewing problems. The
`module integration must not depend on task frequencies or
`system clocks for synchronization.
`Data integrity: When two modules communicate with each oth­
`er, a complete set of data must be transferred. It is not accept­
`able for part of a data set to be from the current cycle, while
`the rest of the data set is from a previous cycle.
`Predictability: In real-time systems, it is essential that the com­
`munication between modules is predictable, so that worst-case
`execution and blocking times can be bounded. These limes are
`required for analysis by most real-time .scheduling algorithms.
`Bus bandwidth: In an open-architecture system, a common bus is
`shared by all RTPUs. The communication between modules
`must be designed to minimize the bus traffic.
`implementation ejficiency: The design must lead to an efficient
`implementation. Communication mechanisms which incur
`large amounts of overhead are not suitable for the high fre­
`quency tasks, and therefore cannot be used.
`To address these issues, we propose a state variable tabic mecha­
`nism which allows the integration and reconfiguration of reusable
`modules in a multiprocessor, open-architecture system.
`
`326
`
`Global State Variable Table
`
`local siaio
`variable table
`
`1 r
`local state
`variable table
`
`local state
`variable table
`
`local state
`variable t^lo
`
`• • •
`
`task "N
`module
`module
`5-J
`Processor 4
`Fig. 2; Structure of state variable table mechanism
`for control module integration
`
`module
`Kl
`
`'' tik ''
`rrxxJulo
`K'i-J
`Processor K
`
`111. UHSIGN OhbTAT'li VARlABUi 1 ABLh MliUlANiyM
`The structure of our state variable table mechanism is shown in
`Fig. 2. It is based on using global shared memory for lire exchange of
`data between modules, tlius providing communication wiili minimal
`overhead. A global state variable table is stored in the shared memo­
`ry. The variables in the global state variable table are a imion of all the
`input port and output port variables of the modules Ural may be con­
`figured into the system. Tasks corresponding to each control module
`cannot access this table directly. Rather, every task has its own local
`copy of tl\e table, called ilie local stale variable table.
`Only the variables used by the task are kept up-to-date in the local
`table. No synchronization is needed to access tJiis table, since only a
`single task has access to it. At the beginning of every cycle of a task,
`Uie variables which are input ports are transferred into the local table
`from the global table. At llic end of the task’s cycle, variables which
`are output ports are copied from the local table into the global table.
`Tltis design ensures that data is always transferred as a complete set.
`When using the global stale variable table for inter-module com­
`munication, the number of transfers per second^ (Zy) for module My
`can be calculated as follows:
`n.
`
`m-
`
`i~ 1
`
`0)
`
`where «y is the number of input ports for Mj, my is tlie number of
`output ports for Mj, x,y is input variable x-, for My, y^- is output variable
`y,- for Mj, S(x) is tne transfer size of variable x, Tj is the period of My.
`state van-
`and A is the overhead required for locking and releasing the
`able table during each cycle.
`We assume that the entire global stale variable has a single lock. It
`is possible for each variable to have its own lock, in which case the
`locking overhead increases to (m+n)A. The advantage of using a sin­
`gle lock is described in Section .A..
`The bus utilization B for k modules in a particular configuration, in
`transfers per .second, is then
`
`k
`
`B =
`
`(2)
`
`We use “transfers per second” instead of CPU execution time or bus utilization time
`as a base measure for tlie resource requirements of the communication mechanism, since
`it is a hardware independent measurement.
`
`Page 7 of 13
`
`

`
`(3)
`
`Thus using our state variable table design, we can accurately deter­
`mine the CPU and bus utilization required for the inter-module
`com-
`munication witliin a configuration.
`A configuration is legal if the following holds true:
`k, ntj
`ff ^>
`k,m.
`n :V;; = 0 A
`U X.J Q
`ytj
`V
`V=i,» 1
`''V=1.» = 1 ^
`v=i.«=i yy
`The first term represents the intersection of all output variables
`from all modules. If two modules have the same outputs, tlien a join
`connector is required. Modules with conflicting outputs can modify
`their ouq^ut port variables, such that they are two separate, intermedi­
`ate variables. A join connector is a separate module which performs
`some kind of combining operation, such as a weighted average. Its in­
`put ports are tlie intermediate variables, while its single output port is
`die output variable that was originally in conflict. Tlie bandwidtli
`re-
`quired can then be calculated by treating Uie join connector as a regu­
`lar module. Split connectors are not required in our design, since mul­
`tiple tasks can specify the same input port, in which case data is
`obtained from the same location widiin the global state variable table.
`ITie second term in (3) states that for every input port, there must be a
`module with a corresponding output port.
`Using state variables for module integration is processor indepen­
`dent. Whedier multiple modules run on the same RTPU, or each mod­
`ule runs on a separate RTPU, the maximum bus bandwidth required
`for a particular configuration remains constant, as computed in (2). In
`the next section we give more details on typical modules within a
`reconfigurable sensor-based control system.
`A. Control Module Library
`Tlie state variable table mechanism is a means of integrating con­
`trol modules, which have been developed with a reusable and
`recon-
`figurable interface. Once a module is developed, it can be placed into
`a library, and incorporated into a user’s application as needed. A sam­
`ple control module library is shown in Fig. 3. The classification of dif­
`ferent module types is for convenience only. There is no difference in
`tlie interfaces of say, a robot interface module and a digital controller
`module. We expect that existing robot control libraries (e.g. I2][10]),
`can be repackaged into reusable modules in order to use tliem iii
`reconfigurable systems.
`The following variable notation is used:
`6: joint position
`x: Cartesian position
`0: joint velocity
`x: Cartesian velocity
`0: joint acceleration
`'x: Cartesian acceleration
`X; joint torque •
`f: Cartesian force/torque
`u: control signal
`J: Jacobian
`z: wild-card: match any variable
`The following subscript notation is used:
`d: desired (as input by user or paiii planner)
`r; reference (computed value, commanded on each cycle)
`m: measured (obtained from sensors on each cycle)
`y: wild-card: match any subscript
`Robot interface modules communicate directly with rolxnic hard­
`ware. In general a rolxii is controlled by sending joint torques to an ap­
`propriate input/output port, as represented by flie torque-mode robot
`interface module. The current joint position and joint velocity of the
`robot can also be retrieved from the hardware interface. With some ro­
`bots, direct communication with the robot actuator is not possible.
`The robot provides its own controller, to which reference joint posi­
`tions must be sent. The position-mode robot interface is a module for
`this type of robot interface. Other
`actuators or computer controlled
`machinery may also have similar interface modules. The frequency of
`flicse modules is generally dependent on the robot hardware; some-
`
`limes it is fixed, other times it may be set depending on die application
`requirements.
`The sensor modules are similar to the robot interface modules, in
`that they communicate with device hardware, such as force sensors,
`tactile sensors, and vision subsystems. In the case of a force/torque
`sensor, a 6-DOF foredtorque sensor module inputs raw strain gauge
`values and converts tliem into an array of force and torque values, in
`Newtons and Newton-meters respectively.^ For a visual servoing ap­
`plication [18], much of die reading and preprocessing of images is
`performed by specialized vision subsystems. These systems may gen­
`erate some data, from which a new desired Cartesian position is de­
`rived. as illustrated by the visual servoing interface module.
`The teleoperation input modules are also sensor modules. They
`have been classified separately in order to distinguish user input from
`other sensory input. In our control module library the teleoperation
`modules read from a 6 DOF trackball, thus both modules are similar.
`Tlie difference is the type of preprocessing performed by each mod­
`ule, allowing the trackball to be used either for generating velocities
`(which can be integrated to obtain positions), or force, for when the
`robot is in contact with the environment.
`Trajectory generators are another way of getting desired forces
`or
`positions into the control loop. The input may come from outside thc
`control loop, such as from the user (e.g. keyboard), from a predefined
`trajectory file, or from a paili-planning subsystem.
`Differentiator and integrator modules perform lime differential and
`integrals respectively. For example, joint velocities may be obtained
`by differentiating joint positions. Only the value of the current cycle
`is supplied as input. Previous values are not required, as the modules
`^e designed with memory, and keep track of the positions and veloc­
`ities of previous cycles. The current lime is assumed to be known by
`all modules.
`Digital controller modules are generally the heart of any configura­
`tion. In our sample library, we have trajectory interpolators, a PID
`joint position controller, a resolved acceleration controller [11 ]. an im­
`pedance controller [6], and other supporting modules such as forward
`and inverse kinematics, Jacobian operations [19], inverse dynamics
`[8], and a damped least squares algorithm [29j. Given the proper input
`and output port matching, various controller modules can be integrat­
`ed to perform different types of control. Sometimes a particular
`con-
`trol configuration will not need all of its inputs. Those inputs are often
`set to zero. The zero module provides a constant value 0 to an input
`stream. Theoretically this would be a single task wliich always copies
`the constant variable to the global state variable table. However, in
`practice, tlie global state variable table only has to be updated once,
`after wlfich lime the module no longer has to execute, thus saving on
`lx)th RTPU and bus bandwidtli. This practice is erjuivalcnt to setting
`flic frequency of task zero to infinity.
`Many of the modules require initialization information. For
`exam-
`pie, flic PID controller module requires gains, and forward kine­
`matics and Jacobian module requires the robot configuration. Uiese
`values can also be passed via the global state variable table, and
`are
`read only once from flie table. However, for simplicity in our dia­
`grams, we have not shown these initialization inputs.
`Given a library of modules, several legal configurations may be
`possible. Fig. 4 shows one possible configuration for a telcopcratcd
`robot with a torque-mode interface. Each module is a separate task
`and can execute on its own RTPU, or multiple modules may share the
`same RTPU, without any code modification. Tlie state variable table
`mechanism allows the freciuency of each task to be different. Tlie
`sc-
`lection of frequencies will often be constrained by the available hard-
`I'or consisiciicy among modules, all input and output variables have
`by the systeme internaiionale (SI).
`
`units defined
`
`327
`
`Page 8 of 13
`
`

`
`J
`
`t
`
`Telfdperation In^ut Modules.:; ^
`6-DOF
`6-DOF
`trackball
`trackball
`x-velodty
`force
`
`• :
`
`w
`
`:'fr6m;VackbSl|;;/:: ' '
`. raw referehde.'dafalV
`
`V T
`
`• :frbrti trackball;
`raw:referencedata
`
`: Robert InlSrfaca Modules
`
`V'.^r:':^
`
`i torque-mode
`robot
`interface
`
`^ :
`•'.
`
`■
`
`pigilaCCOTfrolIers
`
`“N
`
`Cartesian
`, trajectory
`interpolator
`
`:
`.. .»-
`
`' “m—b
`
`forward
`kinematics
`and Jacobian .
`\
`
`frptri robot:
`■.rtp 'rdbdt: ■' S "
`raW'^qtie::;.--
`^ '^'i^Wloirit:?
`ppsitfon idatta;. 'CdfTifTtarid T;- ■'
`
`®rrk->[ joint pos/vel
`trajectory
`i
`interpolator
`
`inverse
`kinematics
`
`wm
`
`> ,posiiion-mode 0
`m
`. e,r.::7!
`‘
`" robot
`• ' ■
`.®rh' ■
`interface
`
`■.;i:lr6rh';rbbqiA.
`raw joint ;
`'■■•pp^yeldati;
`Vi
`
`■•Mrbbot;';
`joi,ritm6v'e:y/'
`^ajmmand ■;,;
`E/
`DlfferenllatbpB ahdIMpgralbrs ■ i
`
`PID joint
`position
`controller
`
`► u .
`'
`
`' ®iri
`- : •
`0
`
`■M
`»*
`resolved
`: Xd acceleration f->;u
`•xm
`controller
`
`inverse
`dynamics
`
`•Tr:'i
`
`• .
`. . ®m
`
`j-> Jacobian
`multiply
`
`xd"--+
`
`Jacobian
`transpose
`
`'^m
`
`^r
`
`time a;
`%Z.
`:v.: differentiator
`:a\\__________
`
`.H- .■
`• ' '
`
`■2y.-
`
`v_
`
`^rn-H>
`time . . ..
`Xm-W
`integrator
`, *m
`■ y V^
`
`X,m '
`
`impedance
`controller “
`
`■ u
`
`zero
`
`■s
`
`-►..xj:
`
`{, Trajectory Geherators : i; ■
`trajectory
`trajectory
`generator
`generator
`x-position
`0-position
`Fa
`from user, file,
`froiTi;user,:'file'.':'. :
`iror path-plan.ning. , or pathiipiannjrjg
`, . subsystem;:; :
`i '.subsysterri' .
`
`r
`damped
`least squares f^ ®r'.
`"N .
`from t't sensor
`^ 0
`y :
`; raw. strain
`gauge data.
`y V.
`
`Z'
`
`: Sensor Mpdutes:;
`6-DOF : ^
`force/lorque
`sensor
`
`'
`
`visual
`servoing
`interface
`
`W
`, A:;frpjn.yisipri: A.AA ■;
`''■rsubsyslemiA';; ;a.''
`
`I’lg. 3: Sample Control Module Library
`
`ware. For example, the robot interface may require that a new torque
`be supplied every 2 msec cycle time (500 Hz frequency), while the
`trackball may only supply data every 33.3 msec (30 Hz frequency).
`Digital control module.? do not directly communicate witJi hardware,
`and can execute at any frequency. Generally the frequency for the con­
`trol modules will be a multiple of the robot interface frequency. When
`using tlie state variable table for corrununication between the mod­
`ules, any combination of frequencies among tasks will work. This al­
`lows frequencies to be set as required by the application, as opposed
`to being constrained by the communications protocol.
`
`X r
`
`^ 0
`m
`Jacobian
`<—
`4— ^
`multiply
`
`'’ forward
`kinematics ^
`0m
`and Jacobian)
`
`C zero
`
`>
`
`fBsolvod
`.... accelsration
`controller /
`
`u
`
`6-DOF ^ ^
`tractoall _ ^
`l^x-velocity
`
`time
`Integrator
`
`0
`m
`
`0
`
`u
`
`rpr
`inverse
`J dynamics
`
`from trackball:
`raw reference
`data
`
`-V 0_.
`pOfqua-mortftX "
`robot
`^ Inteiiace J—~
`
`n °m
`
`to rc^t:
`from robot:
`raw torque
`raw Joint
`position data commar>d
`
`Fig. 4: Example of module integration: Cartesian tcicopcratlon
`
`328
`
`B. Reusable Modules and Reconfigurable Systems
`The primary goal of the global state variable table mechanism is to
`integrate reusable control modules in a reconfigurable, multiprocessor
`system. The previous section gave examples of control modules, and
`a sample configuration. In this section, we will give an example of
`reconfiguring a system to use a different controller, without changing
`the sensor and robot interface modules.
`Fig. 5 shows two different visual servoing configurations demon­
`strating the concept of reusable modules. Both configurations obtain
`a new desired Cartesian position from a visual servoing subs

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket