CONTROL METHOD OF A ROBOT SYSTEM AND APPARATUS FOR REALIZING THE SAME

Abstract: When a robot system has a program module group (31 - 36) within a central control unit (30) for performing required program processing, the associated portions of the robot (11 - 15, 11′ - 13′), and a plurality of peripheral control modules (16 - 20) for controlling the associated portions (11 - 15, 11′- 13′) of the robot, a communication module (37) is provided to perform com­ munication between the modules. In the system there is provided with a queue buffer (39) for sequentially storing the present status information, a source module name, and the message. The communication module (37) monitors transmission from the respective module, stores a message in the queue buffer (39), forms a transmit request list (41), sequentially receives the destination module name and the message in accordance with a recep­ tion procedure of the source module, and stores the source name module and the message in the queue buffer (39) in accordance with the destination module. Sub­ sequently, the communication module (37) sequentially searches the message to be transmitted in a queue buffer (39), and checks the status of the destination modules. If the status of a destination module is set in an enabled state, the message is transmitted in accordance with a transmission procedure of the destina­ tion module. If not, the message is left in the queue buffer (39) and will be transmitted in the next transmission cycle.

Description: The present invention relates to a robot system having a central control unit for managing the entire operation of the robot system and a plurality of peripheral control modules for controlling the operations of the respective portions of the robot. More particularly, the present invention relates to a communication control method of transmitting operation information among program modules of the central control unit, among control modules, and between the program modules and the control modules; and an apparatus for realizing the method. Generally, along with widening in application range, both the mechanism and control systems of industrial robot become complicated. Regarding the control system, it is divided into peripheral control modules for controlling the respective portions of the mechanism and signal processing and a central control unit for managing and controlling the entire operation. Conventional industrial robots operate in accordance with a permanent work program. The peripheral equipment such as a sensor belongs to the robot controller and performs input/output of a simple signal in response to a communication instruction incorporated in the robot language. In the conventional robot system, no serious problems occur when the robot performs a comparatively simple operation. However, when the robot system is a so-called multifunction system, it has a plurality of peripheral control modules for independently controlling the respective portions of the robot. It also includes in the central control unit a plurality of program modules, which can concurrently be performed to exchange instruction signals between any two of the control modules and the program modules. In such a multifunction system, the following problems arise. Each peripheral control module and each program module of the central control unit must have a work program that can cope with any possible situations. As a result, when the operation of the robot system is changed, or when the operation sequence of each control module is changed, a new work program must be created. Since the respective portions of the robot are controlled using instructions having simple contents, it is difficult for the robot to have a complicated function. When a certain operation is instructed to a robot section and completion of the instructed operation is waited, the central control unit and each program module must monitor a signal transmitted from the corresponding robot section in a program manner, and other program processes cannot be performed during this monitoring. Furthermore, when each program processing module of the central control unit independently and parallelly processes the program, it cannot control a corresponding control module immediately based on the processing result if other processing modules use the communication line. Prior art document WO 83/01520 discloses a robot apparatus having a manipulator arm including plural motors to move the arm, and control means for the arm, a common bus and a common memory are connected to the bus. The control means comprises microprocessor based controllers for each joint of the arm and microprocessor based computation means for performing computations to control the movements of the arm, and a common control means for coordinating the activities of other modular control means. Thus, in this robot apparatus the microprozessors which operate in parallel with one another share a common bus and common memory, and the control means can be readily expanded by inclusion of other modular components through interconnection on the common bus. It is an object of the present invention to provide (a) a communication control method of a robot system wherein when the arrangement of control modules is changed, a communication control can be performed without changing the program of each program module, when a new function is added to the robot, the method can sufficiently scope with it, and the operation of the respective portions of the robot can appropriately reflect the processing state and a request of each module, and (b) an apparatus for realizing such method. To solve this object the present invention provides a control method and a control apparatus as stated in claims 1 and 6, respectively. The robot system according to the present invention comprises a plurality of program modules each for independently performing required program processing in the central control unit, a robot mechanism, and a plurality of control modules for controlling associated portions of the robot mechanism. In the robot system, communication is performed among program modules, among the control modules, and between the program modules and the peripheral control modules. For this purpose, in the present invention, a communication module is provided for performing communication management. Each module includes a data base on the connection style for communication with other module, a status buffers and a queue buffer for the modules. The status buffer stores the current status information of the each module, and the queue buffer sequentially stores the names of source modules, each of which has sent a message to a destination module, and the message itself. When a certain message is to be transmitted from one module to another, the destination module name and the message are transmitted to the communication module. The communication module alternately monitors messages transmitted from modules within the system, and the state of the queue buffer. When a message is transmitted, the destination module name and the message are read in accordance with a reception procedure of the source module described in the connection style data base. Then, the source module name and the message are stored in the queue buffer of the destination module. The stored message is monitored and found in the queue buffer. When the status of the destination module is in the enabled state, the source module name and the message are transmitted to the destination module in accordance with the transfer procedure described in the connection style data base. In this manner, according to the present invention, even if the arrangement of the control modules or program modules is altered, the control method can cope with it by altering the communication transfer status data base of the communication module. The message arrival order to a specific module is maintained at the reception order of the communication module by the queue. Therefore, even when a new function is added to the robot, the control method can sufficiently cope with it, and the respective portions of the robot can appropriately reflect the program processing state and request of each module. This invention can be more fully understood from the following detailed description when taken in conjunction with the accompanying drawings, in which: Fig. 1 is a block diagram of a multifunction robot system according to an embodiment of the present invention; Fig. 2 is a flowchart for explaining the operation of an intermodule communication control module; and Fig. 3 shows the arrangement of a queue buffer used for communication control. A robot system according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings. Fig. 1 shows the arrangement of a robot system according to an embodiment of the present invention. Referring to Fig. 1, the robot system has, e.g., 7-degree-of-freedom arms 11 and 11', 6-degree-of-freedom dynamic amount measuring sensors 12 and 12', and 4-degree-of-freedom hands 13 and 13'. Stereo camera 15 for obtaining visual information is provided above robot main body 10 through neck 14. Arm control module 16 controls arms 11 and 11' in accordance with an arm control instruction. Right and left hand control modules 17 and 18 control hands 13 and 13' in accordance with right and left hand control instructions, respectively. Head-eye control module 19 controls swing of neck 14 in accordance with input control instructions. Image proccesing hardware module 20 fetches image data in accordance with an input control instruction and transmits it. These peripheral control modules 16 to 20 respectively have a function to transmit and receive data. Central control unit 30 for managing the operation of the overall robot system is connected to terminal 40 and control modules 16 to 20 through external communication line 21. Terminal 40 displays the processing results of respective control modules 16 to 20 and the processing results of the respective program modules 31 to 37 of control unit 30. Necessary information is entered as required from terminal 40 by an operator. Central control unit 30 has supervisor module 31, work procedure generation modules 32 and 33, image processing modules 34 to 36, and communication module 37. Module 31 sends various control instructions to modules 16 to 20 and 32 and 33 to progress the overall operations. Work procedure generation modules 32 and 33 and image processing modules 34 to 36 serve as follows. Module 32 generates the parts assembly sequence from the structure of an assembly sample. Module 33 determines the operation sequences and operation amounts of the respective portions of the robot based on the parts assembly sequence. Module 34 fetches images of the assembly sample and estimates its structure. Module 35 detects a correction amount of a hand when a part is to be gripped. Module 36 detects relative positions of parts when they are to be assembled. Communication module 37 is connected to program modules 31 to 36 through internal communication system 38, and enables bidirectional communication among modules 31 to 36 in central control unit 30, among control modules 16 to 20, and between modules 31 to 36 and modules 16 to 20. Communication program module 37 is connected to transmission request list 41, queue buffer 39, and queue list 42. Buffer 39 has queue areas 39-16, 39-17,..., and 39-36 corresponding to respective modules 16 to 36, as shown in Fig. 3. Each area sequentially stores a source module name (S.M.) and a message (MES.). The status of the module is also stored. When a transmission request is supplied, a number assigned to the module that has generated the transmission request is written in list 41. The number can be an identifier such as a module name. List 42 indicates whether a message is stored in each area of buffer 39 by means of 1 bit, i.e., 1 or 0. The number of messages stored in each area can be written in list 42 instead of 1 or 0 to indicate the presence of messages. The operation of the robot system having the above arrangement will be described with reference to Fig. 2. In step S2 module 37 monitors a transmission request from modules 16 to 20 and 31 to 36. If no transmission request is supplied, i.e., if NO in step S2, step S16 is executed. However, if YES in step S2, i.e., if a transmission request is supplied from e.g., module 16 to module 32 and from module 32 to module 17, numbers assigned to modules 16 and 32 are written in transmission request list 41 in step S4. In step S6, it is checked whether transmission request list 41 is empty. If NO in step S6, step S8 is executed, and the numbers stored in list 41 are read out starting from the head of list 41. In step S10, data is output from a module identified by its number, i.e., module 16 in this example. The data includes a destination module name and a message. A source module name is discriminated from the assigned number. The source module name and received message are written in area 39-32 of queue buffer 39 in accordance with the destination module name. In this case, when a message to be transmitted is already written in area 39-32, the source module name and message are written after it. Therefore, necessary data can be stored in buffer 39 while designating an appropriate destination module among modules 16 to 20 and 31 to 36. Then, queue list 42 is updated to include a message corresponding to module 32 in step S12. Then, step S6 is executed again. Since a transmission request supplied from module 32 is present in transmission request list 41, steps S8 to S12 are repeated in the same manner as described above. When it is determined in step S6 that transmission request list 41 is empty, step S16 is executed, and it is checked from queue list 42 whether a message to be transmitted is present in queue buffer 39. If a message to be transmitted is present in buffer 39, it is output from buffer 39 to a corresponding module in a predetermined order. In this example, the order is module 16-20 and then module 31-36. In step S18, it is first checked from queue list 41 whether a message destined to module 16 is present. If there is no such message, the same check is performed for module 17. If there is such a message, it is checked in step S20 whether destination module 17 is in an enabled state from the status written in area 39-17 of queue buffer 39. If NO in step S20, the flow returns to step S16. Assume that the processing for each destination module has progressed and that checking is to be performed for module 32 in step S18. A message destined to module 32 has been received in advance and written in queue buffer 39. Thus, NO is obtained in step S18 and it is checked in step S20 whether module 32 is in the enabled state. If YES in step S20, the message and the source module name that are read out from buffer 39 are transmitted to module 32 together with a destination module name in step S22. Then, queue list 42 is updated in step S24 and step S16 is executed. In this manner, a message is transmitted only once to each destination module. When a module status change occurs, the enable/disable state of a corresponding one of modules 16 to 20 and 31 to 36 is updated by transmitting the changed module state to the status of queue buffer 39 through module 37. When the flow returns to step S2 from step S16, if no transmission request is generated, steps S16 to S24 are executed and a message is transmitted only once to each destination module. In the embodiment described above, the transmission and reception sequences of each module can be kept unchanged. Since mutual communication among the respective modules is performed through module 37, the physical state of a destination module need not be considered, the entire arrangement can be simplified, and the flexibility of each module can be improved. Even when the system arrangement or the operating state is changed, only the program of module 37 need be modified and the information transmission path need not be modified. Modules 16 to 20 and 31 to 36 need not monitor the communication line, resulting in a simplified program. The same or different operation instructions can be supplied to a plurality of modules at once, and thus the parallel operations of the respective portions of the robot can be executed. When the program modules are increased in size, a plurality of central control units can be coupled through a communication module and an increase in communicational complexity can be prevented.

Claims: A control method for a robot system having a control module (16 - 20) for controlling part of a robot associated therewith, a programm module (32 - 36) for performing a predetermined processing, a supervisor module (31) for controlling an entire operation of the robot system, and a communication module (37) having functions of registering names of modules in the robot system, writing the message and the module name, and selecting a module which is in an enabled state, arid for enabling bidirectional communication among the control module (16 - 20), the program module (32 - 36), and the supervisor module (31), said operations of said communication module (37) comprising the steps of: a) receiving a destination module name and a message from one of the control module (16 - 20), the program module (32 - 36), and the supervisor module (31); b) finding a source module name which has issued the destination module name and the message, sequentially writing the received message and the source module name into an area of a queue buffer (39) corresponding to the received destination module name, and forming a transmit request list (41); and c) sequentially selecting one of the destination modules to selectively transmit to the selected destination module the source module name and the message corresponding to the selected destination module when the selected module is in an enable state, sequentially searching the message to be transmitted in the queue buffer (39), and checking the status of the destination modules. The method according to claim 1, characterized in that said receiving step of said communication module (37) includes: selectively generating a transmit request from one of the control module (16 - 20), the program module (32 - 36), and the supervisor module (31); detecting the transmit request to store an identifier of the module which has generated the transmit request, in a request list; discriminating the source module name from the stored identifier; and receiving the destination module name and the message from the discriminated module. The method according to claim 1 or 2, characterized in that said transmitting step of said communication module (37) includes: preparing a queue list indicating for each module whether a message to be transmitted is stored in the queue buffer (39); and transmitting the source module name and the message to the selected module in accordance with a content of the queue list. The method according to claim 3, characterized in that said transmitting step further comprises: checking a status of the selected module; performing said checking of the status of a next selected module when the selected module is not in a transmit-enable state; and transmiting the source module name and the message to the selected module in accordance with the content of the queue list when the selected module is in the transmit-enable state. The method according to claim 3, characterized in that said transmitting step further comprises: checking the transmit request in the request list after said transmitting is performed with regard to all the modules; and performing said transmitting to transmit a remained message and a remained source module name when it is determined that the transmit request is not generated. A control apparatus for a robot system comprising: a control module (16 - 20) for controlling part of a robot associated therewith, a programm module (32 - 36) for performing a predetermined processing, a supervisor module (31) for controlling an entire operation of the robot system, and a communication module (37) having functions of registering names of modules in the robot system, writing the message and the module name, and selecting a module which is in an enabled state, and for enabling bidirectional communication among the control module (16 - 20), the program module (32 - 36), and the supervisor module (31), wherein said communication module (37) comprises receiving means for receiving a destination module name and a message from one of the control module (16 - 20), the program module (32 - 36), and the supervisor module (31); characterized in that said communication module (37) further comprises: finding means for finding a source module name which has issued the destination module name and the message, sequentially writing the received message and the source module name into an area of a queue buffer (39) corresponding to the received destination module name, and forming a transmit request list (41); and transmitting means for sequentially selecting one of the destination modules to selectively transmit to the selected destination module the source module name and the message corresponding to the selected destination module when the selected module is in an enable state, sequentially searching the message to be transmitted in the queue buffer (39), and checking the status of the destination modules. The apparatus according to claim 6, characterized in that each of said modules (16 - 20, 31 - 36) further comprises means for generating a transmit request, and said receiving means of said communication module (37) includes: said request list (41); and means for detecting the transmit request to store an identifier of a module which has generated the transmit request, in said request list (41), for discriminating the source module name from the stored identifier, and for receiving the destination module name and the message from the the discriminated module. The apparatus according to claim 7, characterized in that said transmitting means of said communication module (37) includes: a queue list (42); and means for preparing said queue list (42) indicating for each module whether a message to be transmitted is stored in the queue buffer (39), and for transmitting the source module name and the message to the selected module in accordance with a content of said queue list (42). The apparatus according to claim 8, characterized in that said transmitting means of said communication module (37) further comprises first means for checking a status of the selected module, for checking the status of a next selected module when said selected module is not in a transmit-enabled state, and for transmitting the source module name and the message to said selected module once in accordance with the content of said queue list (42) when said selected module is in the transmit-enabled state. The apparatus according to claim 8, characterized by further comprising: means for checking the transmit request in the request list (42) after operating said preparing means with regard to all the modules, and for operating said preparing means to transmit a remained message and a remained source module name when it is determined that the transmit request is not generated.

Inventors: KOHNO, YOSHIAKI C/O PATENT DIVISION
Applicants: KABUSHIKI KAISHA TOSHIBA
Application year: 1988
Main classification: G05B19
IPC codes: B25J9, G05B19, H04Q9