1. Field of the Invention
The present invention relates to a system of a PC-based robot control machine. More particularly, the present invention relates to a task-based robot control system for multi-tasking, in which an existing hardware-based robot control machine type can be applied as a new software-based robot control machine and software-based multi-tasking is enabled, whereby it is significantly advantageous for a user to construct work environment as compared with an existing PC-based control machine, and the productivity can be improved and the production line design cost can be saved through the improvements of user convenience.
2. Background of the Related Art
A PC-based control machine refers to a software-based control machine in which a hardware or firmware-based control machine implemented by existing DSP or ASIC is programmed using software so that it can be used in a PC. A main reason why the application of a PC system to the robot control machine is required is that as the complexity of the production line is increased, it is necessary for a robot control machine to perform several tasks at the same time while driving the robot.
The robot control machine may be classified into a part (an upper control machine) that processes a program with respect to the motion of the robot and a part (a lower control machine) that controls a machine apparatus. The upper control machine refers to a task program processing part that should be performed by the robot and performs communication with the robot work programming interface, etc. The lower control machine refers to a trajectory plan of the robot and a servo-controlled part and is directly related to the accuracy of the motion of the robot through real-time control.
The existing PC-based control machine is concentrated on the development of a lower control system since it has a dedicated board-based control machine type. This is because there is no need for an additional apparatus for implementing the multi-tasking function since one control machine can control a number of robots in the PC-based control machine.
From this point of view, the upper control machine is responsible for only exchanging information between the user and the control machine. The upper control machine has a Man Machine Interface (MMI)-based centralized control machine configuration, and the lower control machine has a dedicated type.
a and 1b illustrate the configuration of an existing hardware-based robot control machine.
In an initial hardware-based control system, a control machine corresponding to a subject work robot performs a task on a one-to-one basis as shown in
b corresponds to a hardware-based control machine type 2. This type includes one main control machine 2, a sub control machine12a having a number corresponding to that of a lower control machine, and a sub control machine22b. The sub control machine12a controls a robot13a, and the sub control machine22b controls a robot23b.
The construction as shown in
a shows the related art robot control system. The robot control system of
In the hardware-based control machine type3 of
b shows the construction of a robot control machine of a robot control system employing a PC in the related art. The robot control machine of
The lower control machine 8 is an actual device driver level having dedicated software for controlling hardware. The MMI 6 of the upper control machine is an application program used to configure tasks by a user. The scheduler 7 is responsible for scheduling tasks, which will be performed by the control machine, according to the priority. It can be seen that in such a construction, the task scheduler 7 decides the priorities of all tasks. This configuration is referred to as the centralized control architecture. In order for the scheduler 7 to schedule tasks according to the priority, a worker must know all situations in constructing work environment.
The centralized control architecture is executed according to a task procedure in which all situations are predicted in accordance with a procedure-oriented method. In the procedure-oriented method, tasks are performed according to a predetermined order. Therefore, if the complexity of a task is increased, a user may feel difficult in constructing the task. This characteristic is causes since the control machine is designed on the basis of the lower control machine 8. This is in breach of the modularized concept of the PC-based control machine.
Furthermore, as a gap in the hardware development between manufacturers reduces, the performance is decided depending on the software configuration. In addition, as a real-time OS is developed in a hardware access method for guaranteeing the real-time property is developed, real-time control of hardware is made possible through software.
Due to averaged hardware developments and a developed real-time OS, prominence is given to the developments of an upper control machine as a method for enhancing the efficiency of the PC-based control machine.
In the above-mentioned related art centralized control type PC-based control machine, however, a user has to manage items of all tasks according to the priority. It is thus difficult to make the best use of the properties of the PC-based control machine with user convenience being added thereto on the basis of various software functions.
Accordingly, the present invention has been made in view of the above problems occurring in the prior art, and an embodiment of present invention relates to a robot control system through a task-based distributed control method not a centralized control method.
In an embodiment of the present invention, the term “task” refers to a job file necessary to drive the robot. The term “task-based” refers to a task on which the robot will operate. The robot is the subject to execute the task in the robot control system. The task can be accessed as a concept to perform the task by a single robot.
In addition, in the task-based control system, since each task operates independently, it does not affect other tasks although an exceptional situation happens during the task. If this method is applied to a business robot control machine, the complexity occurring in the existing robot system design process can be reduced and the degree of understanding on the task by a user can be increased. It is thus possible to improve the productivity and save the cost for constructing development environment.
In accordance with the present invention, an existing hardware-based robot control machine type can be applied as a new software-based robot control machine and software-based multi-tasking is enabled. Accordingly, a user can construct work environment efficiently in comparison with an existing PC-based control machine.
A distributed control type control machine according to the present invention can construct an independent robot system according to a job file of a minimal unit, which is desired by a user.
The present invention provides a control system through a virtual robot control machine as a task-based robot control machine. The control system is constructed to have a parallel configuration not a vertical hierarchical configuration. In the control machine configuration, the priority needs not to be set on a task basis and a user needs not to perform arbitrary setting unlike the existing PC-based control machine. Therefore, lots of convenience can be provided to a user who constructs work environment. This characteristic is related to an increase in the productivity.
A task-based robot control system for multi-tasking according to an embodiment of the present invention includes:
robot system interface means that receives a control command for controlling a robot;
system kernel means that controls the creation and distinction of one or more software-based virtual robot control machines of virtual robot controller means, which will be described later, in a software way and controls the synchronization between the virtual robot control machines, based on the control command received from the robot system interface means;
the virtual robot controller means having one or more software-based virtual robot control machines whose creation and distinction are controlled under the control of the system kernel means, wherein a generated virtual robot control machine processes a robot control execution sentence input through the robot system interface means; and
hardware means that actually drives the robot according to a control signal generated by the processing of the execution sentence by the virtual robot control machine.
Further objects and advantages of the invention can be more fully understood from the following detailed description taken in conjunction with the accompanying drawings in which:
a and 1b illustrate the configuration of an existing hardware-based robot control machine;
a and 2b illustrate the configuration of an existing hardware-based robot control machine and a PC-based robot control machine;
The present invention will now be described in detail in connection with embodiments with reference to the accompanying drawings.
A plurality of virtual controllers 1-N are arranged in parallel in a task-based software controller 100.
The virtual controllers 1-N are constructed to control corresponding robots 1 to N, respectively. The controller 100 refers to a robot control system including a software-based virtual robot control machine to be described later.
As shown in
The robot control system includes:
an external apparatus 10 including a High Level Robot Program Language (HRPL);
a robot system interface unit 20 that receives a control command for controlling a robot from the HRPL of the external apparatus 10;
a system kernel 40 that controls the creation and distinction of one or more software-based virtual robot control machines within a virtual robot control machine unit 30 in a software way and also controls a synchronization task for multi-tasking control between the virtual robot control machines, based on the control command received from the robot system interface unit 20;
the virtual robot control machine unit 30 having one or more software-based virtual robot control machines whose creation and distinction are controlled in a software way under the control of the system kernel 40, wherein a created software-based virtual robot control machine processes an execution sentence input through the robot system interface unit; and
a hardware unit 50 that actually drives the robot according to a control signal generated by the processing of the execution sentence by the virtual robot control machine.
In the virtual robot control machine unit 30, the creation and distinction of the software-based virtual robot control machines are controlled and a created software-based virtual robot control machine processes a robot control execution sentence.
The system kernel is a module shared between the control machines, for controlling the creation and distinction of the software-based virtual robot control machines of the virtual robot control machine unit and implementing a multi-axis control system through a synchronization task between the software-based virtual robot control machines.
The hardware unit 50 includes a Peripheral Component Interconnect (PCI) interface DSP system, an I/O board, a sensor board, and so on, and actually drives the robot.
The robot system interface level 20 includes a communication module (RUSH: Robot User Shell) 21 that provides connection with an external module of the software-based robot controller according to the present invention, a Robot User Shell Protocol (RUSHP) 22 (i.e., a communication protocol to be used in the communication module (RUSH) 21), for providing a user with the same kind of a protocol regardless of communication means, and a robot debugger (RDB) 23 for performing a debugging task before a user performs an infinite-repetitive task of the robot system.
The virtual robot control machine unit 30 includes an internal Virtual Robot Control Machine (VRCM) execution module 31 for executing a job file written using a robot language, a scheduler 32 for processing a multi-tasking within the virtual robot control machine, and a trajectory generation module (i.e., a robot-dependent module) 33 for creating a trajectory along which the robot will operate.
The system kernel 40 includes an Inter VRCM Communication (IVC) module 41 (i.e., a message transfer module for internal communication between the software-based virtual robot control machines, for managing a synchronization task between robots, a system synchronization module 42 that synchronizes an operating time between an OS for a general user and a real-time OS, a virtual robot control machine management module 43 for managing software-based virtual robot control machines created in plural numbers, a shared module 44 that stores the whole data of the software-based robot controller, and a hardware device drive module 45 that performs communication between the software-based virtual robot control machines and external hardware.
In the robot control system constructed above according to an embodiment of the present invention, if a user specifies a task robot and writes and inputs a robot execution sentence through the external apparatus 10, the robot execution sentence is complied according to the HRPL and is then input to the communication module 21. At this time, the robot user shell protocol 22 supports a protocol such that the user can input the robot execution sentence using the same command system regardless of a communication method (for example, RS232, RS485, or the like) between the external apparatus 10 and the communication module 21.
If a robot control command and the robot execution sentence are input, the virtual robot control machine management module 43 of the system kernel 40 generates a software-based virtual robot control machine within the virtual robot control machine unit 30.
The generated virtual robot control machine controls the execution module 31 to execute the execution sentence, which has been written and input by the user, and to generate a robot control signal. The generated robot control signal is transferred to the hardware unit 50 in order to control the robot.
As a result, in an embodiment of the present invention, when the number of robots to be controlled is plural, a plurality of virtual robot control machines are created within one controller 100 so that the respective virtual robot control machines control corresponding robots, respectively.
The present embodiment of the present invention proposes a real-time OS-based distributed control type control machine configuration in order to implement multi-tasking. In the existing PC-based control machine, the robot control machine is divided into the upper control machine and the lower control machine. In the present embodiment, however, the robot control machine is divided into a hard real-time control machine and a soft real-time control machine.
The soft real-time control machine manages the entire system other than the connection portion that actually drives the robot. The soft real-time control machine performs tasks, such as the management of job files desired by a user, the management of robot parameters and a state monitoring task of a robot that now operates.
As shown in
The soft real-time control machine may be divided into a part that manages a job file written by a user, a communication module that is responsible for communication with the external module and a part that transfers a driving instruction of the robot.
The present embodiment has its purpose to implement a distributed control type robot control machine in which a plurality of robots can be controlled and multi-tasking is enabled. Therefore, the control machine and the robot do not correspond to each other 1:1 or 1:N, but correspond to each other N:N where the number of the control machines is the same as that of the robots to be controlled.
To this end, the present embodiment has introduced a concept called a virtual robot control machine. The virtual robot control machine is a robot control machine of a software form. In this machine, an existing micro controller serves to perform an instruction. The virtual robot control machine has a software shape and can produce as many robot control machines as a number that can be allowed by the specifications of a PC used by a user.
The virtual robot control machine corresponds to a robot to be controlled on a one-to-one basis and performs a task in a separated region. In the present embodiment, the modules of
The virtual robot control machine manager (VRCM manager) 103 of
The present embodiment is related to the robot control system that allows for a multi-tasking function. The term “general multi-tasking” means that a plurality of tasks can be performed at the same time.
If the concept is applied to the robot control machine, a variety of situations generated from work environment can be processed while the robot performs the motion task. The various situations may include an event generated on a robot basis and an event generated between robots that operate. The present embodiment proposes the virtual robot control machine scheduler (VRCM scheduler) 104 of
The present embodiment is based on an independent concept of the virtual robot control machine 106 so that the reference of multi-tasking can be expanded from one robot.
The virtual robot control machine scheduler (VRCM scheduler) 104 is responsible for processing a variety of events occurring from tasks that operate. Events processed by the VRCM scheduler 4 may include a periodic interrupt, an intermittent interrupt, a parallel processing sentence, a specific message wait and a user's request for instruction processing.
An event occurring between tasks, i.e., an event between the robots is implemented through the IVC 109. The IVC 109 is a software module existing in the device driver of the PC. It refers to a kind of a memory region shared by the plurality of virtual robot control machines generated by the VRCM manager 103.
If TASK1 and TASK2 are executed through the IVC 109 at the same time, a necessary task execution order can be managed through semaphore or the implementation of an event. The VRCM scheduler 4 is a module of a soft real-time control machine. This means that it is impossible to guarantee the real-time property that must be included in the robot control machine. The execution of a corresponding module itself is also meaningless.
The present embodiment proposes the operation of the soft real-time VRCM scheduler 104 using the hardware operating reference time control machine 110 of the real-time control machine in order to assign the real-time property to the VRCM scheduler 104 included in the soft real-time control machine. The VRCM scheduler 104 operates according to an operating reference time of the hardware operating reference time control machine 110 of a motion controller (i.e., a real-time region), which is received through the IVC 109.
This configuration means that the soft real-time control machine, i.e., an application program of the soft real-time Os can be made real-time. The software-based robot control machine becomes a major basis that may replace the existing hardware-based robot control machine. It can be seen that the update of the reference time on which the VRCM scheduler 104 operates is received from the real-time control machine.
The VRCM 106 of
The IVC 109 of
The RUSH 102 is an integrated communication module that supports communications between the PC-based control machine and the external module. The RUSH 102 is responsible for changing an externally received communication protocol into the VRCM 106 protocol. The RUSH 102 has been simply described because it is not related to the multi-tasking task that is described in the present embodiment.
In step (S1), it is determined whether mode is on-line mode. This step refers to a state where a task-related robot does not operate according to an operating mode-related instruction of the virtual robot control machine.
Step (S2) corresponds to a module performed by the operation of the step (S1). It corresponds to a module that performs a specific function according to a user's instruction in the case of the on-line module. A pertinent operation performs a robot-related setting task of a user.
Step (S3) corresponds to an operating mode-related instruction of the robot control machine and is an opposite state to that of the step (S1). This means that the robot begins starting a task.
Step (S4) corresponds to a related instruction to determine whether the robot operates. In this step, it is determined whether the robot operates for debugging purpose or performs a task. Step (S5) corresponds to a robot motion-related instruction and indicates a motion that operates in a debug state.
In step (S6), a task for the robot that operates in debug mode is driven by the user. Step (S7) corresponds to an instruction to determine whether there is a task that is now active, of multi-tasking. Step (S8) corresponds to an instruction to determine whether a task that is now active is an interrupt-related task.
Step (S9) corresponds to an interrupt execution routine selected in step (S8). Step (S10) corresponds to an instruction to determine whether the mode should enter the standby mode in a state where a task that is now active has consumed its operating cycle. Step (S11) corresponds to a module that changes the task selected in step (S10) into the standby mode.
Step (S12) corresponds to an instruction to determine whether there are instructions transferred by other virtual robot control machines while the virtual robot control machine is operated. If it is determined that there are instructions transferred by other virtual robot control machines, the instructions are stored in the instruction storage space.
In step (S13), if other interrupts are generated while a current task performs an interrupt-related task, interrupt information generated in the interrupt storage space is stored.
Step (S14) corresponds to a module that receives a temporal reference instruction from the real-time OS for assigning the real-time property to the soft real-time OS. The temporal reference instruction becomes a reference time for task scheduling of the virtual robot control machine.
Step (S15) corresponds to a module that changes the real-time information, which is received from the step (S14), into an operating reference time of the virtual robot control machine.
Step (S16) corresponds to a module that determines whether there is an external instruction to be performed in a task that is now active. If it is determined that there is an instruction to be performed, a current task becomes empty in order to change the current task into a task for performing the stored instruction.
Step (S17) corresponds to a module that performs a related task if there is an instruction selected in step (S16).
Step (S18) corresponds to a module that processes a new task when an instruction that instructs the new task to be performed is input. Step (S19) corresponds to an instruction to determine whether there is any task that is now active for a scheduling task. If there is a task that is now active, the task is allowed to continue to operate.
Step (S20) corresponds to a module that replaces a task, which will be performed next, with a current task in the task storage of the virtual robot control machine scheduler if there is no task that is now active in step (S19).
In
If a parallel processing situation is generated, a parallel processing task is stored behind a task 1 that is now active and is then performed after 201 is carried out (203). In the event that a new task is generated from a task that is now active, a new task is generated and is stored next to the task that is now active (204). Reference numeral “205” designates a space for storing a task that will enter the standby mode.
Referring to
A RUSH server module 303 changes an instruction, which is received from a communication server module of a virtual robot control machine, into one that may be used by the virtual robot control machine.
A RUSF session module 304 is an instruction transfer module that selects and performs an instruction which is received from the RUSH server module 303 and is suitable for a user's purpose.
An operating module 305 is a robot-related lower operating module that performs a specific instruction selected by the RUSH session module 304.
A VRCM management module 306 manages the creation and extinction of virtual robot control machines using a virtual robot control machine manager that manages the virtual robot control machines.
An execution module 307 performs a specific operation selected by the management module 306 according to a virtual robot control machine-related instruction. A shared module 308 is a shared storage space that stores all information about the virtual robot control machines for the monitoring task of the robot monitoring module 302.
Referring to
In step 403, the message transferred in step 402 is changed into one suitable for communication means. In step 404, the message is transferred through actual communication means. Step 405 corresponds to a message receiving module of the user level in the same manner as 402. In this step, user data of the instruction received from 406 are received.
In step 406, the message received from specific communication means is changed into one suitable for an integrated protocol in the same manner as step 403. In step 407, the message is received through the specific communication means. In step 408, a communication-related instruction of the message received from step 406 is transferred to a server or a client.
In step 409, the instruction received from step 408 is changed into a type of specific communication means. In step 410, the message is transferred to the server or the client through specific communication means.
The RUSH 102 of
A user can communicate using the same API regardless of the type of a communication module connected to the PC through the layer configuration. RUSH(2) exists in an external module that will communicate with the PC-based control machine of the present embodiment at the same time.
As in
As described above in detail, according to the present invention, an existing hardware-based robot control machine type can be applied as a new software-based robot control machine. Furthermore, software-based multi-tasking is made possible. Therefore, a user can construct work environment very effectively in comparison with an existing PC-based control machine type. In addition, since user convenience is enhanced, the productivity can be improved and the production line design cost can be saved.
While the present invention has been described with reference to the particular illustrative embodiments, it is not to be restricted by the embodiments but only by the appended claims. It is to be appreciated that those skilled in the art can change or modify the embodiments without departing from the scope and spirit of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2006-4771 | Jan 2006 | KR | national |