Patent Description:
With rapid development of science and technology, more and more robotic systems are used in various industrial fields which liberate workers from onerous and repetitive work. A robotic system generally comprises at least a robot and a controller attached to the robot for controlling the movements of the robot. The robot typically comprises a plurality of motors in accordance with the movement freedoms of a robotic arm. The controller is configured with kinematics and dynamics data of the robot, such as reach, weight, and inertia of each robotic arm and electric properties of each motor, which are known as system configuration.

In manufacturing robotic systems, the controllers and the robots are generally manufactured separately and they then are assembled to form a complete robotic system. The following problem might occur. A controller installed with the configuration data of one robot is attached to another robot which is different from the one robot. In this situation, when the controller controls the unmatched robot to move, the robot might move in an unexpected way. This is dangerous and might incur disastrous consequences.

Currently, there is no way to find this mismatch until the abnormal behaviors occur when the robot is controlled to move by the unmatched controller. What makes the situation worse is, even if the brake system functions, the brake usually take time, for example hundreds of milliseconds, to act completely and the robot might cause disastrous consequences during this period, for example hitting the operator or other nearby devices. Accordingly, there is a need to improve the robot control so as to safely and conveniently detect the mismatch between the controller and the robot earlier. Japanese patent application <CIT> refers to a control method for a robot controller and the robot controller, capable of preventing the robot body from being erroneously connected to the controller, at each start-up of the robot body. Type information of each of drive motors is read in from the robot body at each start-up of the controller, and is compared with the type information of the each of the drive motors stored in a subordinate CPU. A program is started up when there is matching with the type information in each of the drive motors stored in the subordinate CPU.

In a first aspect of the present disclosure, a method for controlling a robot is provided, wherein the robot comprises a plurality of motors. The method is performed by the controller and comprises: obtaining parameters of the plurality of motors, the parameters being associated with a robot to be controlled by the controller; retrieving, based on obtained parameters, models of the plurality of motors from a database accessible to the controller; determining a first identity of the robot based on the parameters comprising determining the first identity from the retrieved models; comparing the first identity with a pre-stored second identity; and in response to the first identity matching the second identity, controlling operations of the robot with the controller; wherein obtaining the parameters of the plurality of motors comprises: sending at least one excitation signal to the plurality of motors of the robot from the controller; receiving the feedback signals that are provided by the plurality of motors in response to the at least one excitation signal; and determining the parameters of the plurality of motors based on the feedback signals and the at least one excitation signal.

In some embodiments, the at least one excitation signal may comprise at least one excitation signal to windings of the at least one component.

In some embodiments, determining the first identity of the robot may comprise: determining resistance and inductance of the windings based on the feedback signals and the at least one excitation signal; and determining the first identity based on the resistance and the inductance of the windings.

In some embodiments, the pre-stored second identity may be stored in the controller. In some embodiments, the pre-stored second identity may be stored in accessible database which is local to the controller, an external database (for example, in a remote server or cloud), and/or interfaced with the controller.

In some embodiments, the plurality of motors comprises all motors of the robot.

In some embodiments, the method may further comprise: in response to the first identity mismatching the second identity, reporting an error and/or disabling operations of the robot.

In a second aspect of the present disclosure, a robotic system is provided. The robotic system comprises: a controller configured with computer program instructions therein, the instructions, when executed, causing the controller to perform the method according to the first aspect of the present disclosure: and a robot attached to the robot and configured to be controlled by the controller.

In a third aspect of the present disclosure, a computer program product is provided. The computer program product is tangibly stored in a non-transient computer readable medium and including machine executable instructions which, when executed, cause a machine to perform the method according to first aspect of the present disclosure.

Through the following detailed descriptions with reference to the accompanying drawings, the above and other objectives, features and advantages of the example embodiments disclosed herein will become more comprehensible. In the drawings, several example embodiments disclosed herein will be illustrated in an example and in a non-limiting manner, wherein:.

<FIG> schematically illustrates a block diagram of a robotic system according to some example embodiments of the present disclosure;.

<FIG> schematically illustrates a flowchart of a method for robot control according to some example embodiments of the present disclosure; and.

<FIG> schematically illustrates a flowchart of a method for robot control according to some example embodiments of the present disclosure.

Hereinafter, several example embodiments shown in the drawings will be referred to describe the principle of the present disclosure. It should be understood that these embodiments are described only for enabling those skilled in the art to better understand and then further implement the present disclosure, not intended to limit the scope of the present disclosure in any manner. It is noted that wherever practicable similar or like reference numbers may be used in the figures, and may indicates similar or like functionality.

<FIG> schematically illustrates a block diagram of a robotic system according to some example embodiments of the present disclosure. As shown in <FIG>, a robotic system for industrial applications comprises a controller <NUM> and a robot <NUM>.

The robot <NUM> typically comprises a plurality of robotic arms which are driven by a plurality of motors. For illustrative purpose, only three motors are shown in the figures, i.e., the first, second, and third motors. The motors form a motor group, which are driving mechanisms for driving the robotic arms. It is to be understood that the scope of the present disclosure is not limited to this example embodiment. The number and types of motors may vary from one to another according to the requirement of industrial applications and the movement complexity of an actuator of the robot.

The controller <NUM> is provided in the robotic system and is configured with kinematics and dynamics data of the robot, such as reach, weight, inertial and so on, which are generally called as configuration data of a system. For example, the system configuration stores the kinematics and dynamics data associated to the robot to be controlled and models of the motors. The controller <NUM> is also configured with control programs and is configured to send commands to the robot <NUM> to activate or deactivate the motors so as to control the robot arms to move along a programmed path. The controller <NUM> is shown as block diagrams in <FIG>. It is to be understood the controller may take any proper physical forms. Examples of the forms include, but are not limited to, shape of box, or a form of an electric board, or an assembly of a plurality of electric boards.

In the shown embodiments of <FIG>, the controller <NUM> also comprises several functional units <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. The details of these units will be discussed hereinafter with reference to <FIG>.

In order to form a complete robotic system, a controller has to be attached to a robot. In many cases, the physical appearance of the controllers is the same or like. One controller for controlling one kind of robots may be wrongly attached to an unmatched robot. In this case, this mismatch cannot be found by an operator until the robot is controlled to move by the controller. However, when the controller controls the unmatched robot to move, the robot might move in an unexpected way, which is dangerous. The present disclosure provides a method for robot control which can safely and conveniently detect a mismatch between a controller and a robot.

<FIG> schematically illustrates a flowchart of a method <NUM> for robot control according to some example embodiments of the present disclosure. It is to be understood that the method <NUM> may further include additional acts not shown and/or omit some acts as shown. The scope of the present disclosure is not limited in this regard.

In block <NUM>, at least one parameter associated with a robot to be controlled by a controller is obtained. In some embodiments, the at least one parameter associated with a robot may reflect the characteristic of the robot and may be used to identify the robot. The characteristic of the robot makes it possible to distinguish one robot from another robot. The at least one parameter associated with the robot can be obtained in various manners. For example, when the controller is attached to the robot, the robot might actively send the at least one parameter associated with the robot to the controller. Alternatively, the controller might send a request to the robot for the least one parameter.

In some embodiments, at least one excitation signal maybe is sent to at least one component of the robot from the controller. The at least one component generates signals in response to the at least one excitation signal and the responsive signal is feedback to the controller. The parameters are determined based on the feedback.

In block <NUM>, a first identity of the robot is determined based on the parameters. In embodiments described herein, the first identity is associated with the models of the robots. In some embodiments, the first identity may be associated with the characteristic components arranged in the robots. The characteristic components can distinguish from one robot from another. In embodiments described herein, the characteristic components are motors in the robot. In this case, a model of the motors is retrieved from a database based on the parameters. The database is accessible to the controller. The database is local to the controller, an external database, and/or interfaced with the controller. The first identity is then determined from the model.

In block <NUM>, the first identity is compared with a pre-stored second identity. In some embodiments, the pre-stored second identity may be used to identify the robot models that the controller aims to control. In some embodiments, the pre-stored second identity may be stored in the controller. For example, the pre-stored second identity may be acquired from the configuration data of the controller.

In block <NUM>, when the first identify matches the second identity, normal operations of the robot is allowed and is controlled by the controller. In some embodiments, when the first identity mismatches the second identity, an error is reported and/or operations of the robot are disabled.

According to the present disclosure, the above steps are performed before the robot is controlled to move. Accordingly, a mismatch between the controller and the robot can be detected at an early stage. Thus, the robotic system can operate in a safer way and the potential danger to operators or devices caused by the mismatch can be avoided.

As discussed above, the robot comprises a plurality of motors. The number of motors may be at least <NUM> and may be up to <NUM> or more. Since motors are core driving component in robot <NUM>, the motors can be used as characteristic components and can identify the robot. Thus, different robots can be distinguished from each other by the motors. The following takes motors in robots as an example for identifying a robot.

<FIG> schematically illustrates a flowchart of a method for robot control according to some example embodiments of the present disclosure. It is to be understood that the method <NUM> may further include additional acts not shown and/or omit some acts as shown. The scope of the present disclosure is not limited in this regard. The method <NUM> will be described with reference to <FIG>.

As shown in <FIG>, according to some example embodiments of the present disclosure, the controller <NUM> may comprises an identity comparison unit <NUM>, a system configuration unit <NUM>, an excitation unit <NUM>, a parameter process unit <NUM>, and a database <NUM>. A dashed block in <FIG> means an optional unit.

The system configuration unit <NUM> may comprise kinematics and dynamics data of the robot, such as reach, weight, inertial and so on. The excitation unit <NUM> is configured to send at least one excitation signal to at least one characteristic component (for example motors) of the robot <NUM>. The parameter process unit <NUM> is configured to receive feedbacks from the motors. In some embodiments, the parameter process unit <NUM> may also be configured to process the feedbacks to obtain the parameters of the motors.

The identity comparison unit <NUM> is configured to retrieve models of the motors from the database150 and may determine the identity of the robot <NUM> based on the received models. The database <NUM> may be local to the controller, an external database, and/or interfaced with the controller. The identity comparison unit <NUM> is also configured to obtain a pre-stored identity. In some embodiments, the identity comparison unit <NUM> obtains the pre-stored identity from the configuration data of the controller <NUM>. Alternatively, the pre-stored identity may be retrieved from the database <NUM> or another database which may be local to the controller, an external database, and/or interfaced with the controller.

In some embodiments, the excitation unit <NUM> may send excitation signals in various ways according to the property of the characteristic components of the robot <NUM>. In some embodiments, the excitation unit <NUM> can send a plurality of excitation signals to each motor in the robot <NUM> at a time respectively. In some embodiments, the excitation unit <NUM> may send only one excitation signals to one motor in the robot <NUM> at a time.

The types of excitation signals may any kind of proper signals. In some embodiments, the excitation signals can trigger electrical signals in the motors of the robot <NUM>. In some embodiments, the exciting signals may be sent to the windings of the motors. In some embodiments, according to the types of the motors, the exciting signals may be sent to the stator windings or the rotor windings of the motors. As known, the motors of the robot <NUM> are control objects of the controller and the robot <NUM> has various sensors for sensing the operational status of the motor so as to provide actuate control of the robot. In this case, the excitation signals may trigger electrical signals which can be detected by these existing sensors. In this case, there is no need to provide additional sensors. For example, the excitation signals may be sine wave signal, pulse signal, rectangular signal, and sweeping signal and so on.

As shown in <FIG>, in some embodiments, the method <NUM> of robot control of the present disclosure is performed upon the controller is powered on.

In block <NUM>, an exciting signal from the excitation unit <NUM> is sent to the motors in the robot <NUM>. For example, a set of sine wave excitation voltage is applied to a stator winding of each phase one by one.

In block <NUM>, the feedback signals of the motors are received by the parameter process unit <NUM>. Since the robot have various feedback sensors, these sensors can directly be used to collect the feedback signals and the signals can be sent to the parameter process unit <NUM> via the existing communication channel. For example, when a set of sine wave excitation voltage is applied to each phase, the feedback currents in the windings can be measured and are sent to the parameter process unit <NUM>. The feedback currents for each phase can be collected by the parameter process unit <NUM> respectively.

In block <NUM>, parameters of the motors are determined by the parameter process unit <NUM>. For example, in the above case, the resistance and inductance of each stator winding can be determined based on the exciting voltage and the feedback measured current. Thus, the robot <NUM> can be identified as a group of resistance and inductance parameters of stator windings of the motors in the robot. When this group of parameters can be used to identify the robot, this group of parameters can be considered as an identity of the robot. In some embodiments, the models of motors are further retrieved from the database <NUM> based on this group of parameters.

In block <NUM>, in identify comparison unit <NUM>, the obtained parameters of the motors are compared with pre-stored parameters. In some embodiments, the pre-stored parameters may be used to identify the motors to be controlled by the controller and are of the same type as the obtained parameters of the motors. In some embodiments, the pre-stored parameters may be models of motors. In this case, the models of the motors may be from the configuration data of the controller. In this case, the term "parameters" can be replaced by "identity" in the sense that both are for identifying the robot.

In block <NUM>, a comparison decision is made. If the obtained parameters or identity matches with the pre-stored parameters or identity, then the robot can be normally controlled (in block <NUM>). If the obtained parameters or identity mismatches with the pre-stored parameters or identity, then an error is reported and/or the robot is disabled (in block <NUM>).

According to embodiments of the present disclosure, by sending exciting signals to the windings of the motors in the robot <NUM>, the robot <NUM> is thus identified as the parameters of the motors. In this manner, there is no need to provide any additional components, the mismatch between the robot and the controller can be detected easily and safely.

Compared to an approach where a memory card is inserted or embedded to the robot to store the identity of the robot, no extra memory board and associated device are needed in embodiments of the present disclosure. Furthermore, the identity of the robot is identified as parameters of the motors. In this way, the detection can be more reliable since the motors are indispensable part of a robot and are also the control objects of the controller. Furthermore, the method can be automatically performed in/or by the controller, the mismatch between the controller and the robot can be detected at an early stage, which can further improve the safety.

In another aspect of the present disclosure, a robotic system is provided. The robotic system comprises a controller configured with computer program instructions therein, the instructions, when executed, causing the controller to perform the above method: and a robot attached to the robot and configured to be controlled by the controller.

The subject matter described herein may be embodied as a computer program product. The computer program product is tangibly stored in a non-transient computer readable medium and includes machine executable instructions. The machine executable instructions which, when executed, cause a machine to perform the methods <NUM> and <NUM> as described above.

The above-described procedures and processes, such as the methods <NUM> and <NUM> can be implemented by controller <NUM>. For example, in some embodiments, the methods <NUM> and <NUM> can be implemented as a computer software program which is tangibly embodied on a machine readable medium, for instance, the memory. In some embodiments, part or all of the computer program can be loaded to and/or installed on the controller <NUM> shown in <FIG>. The computer program, when loaded and executed by the controller <NUM>, may execute one or more acts of the methods <NUM> and <NUM> as described above. Alternatively, the controller <NUM> can also be configured to implement the methods <NUM> and <NUM> as described above in any other proper manner (for example, by means of firmware).

In the context of the subject matter described herein, a memory may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The memory may be a machine readable signal medium or a machine readable storage medium. A memory may include but not limited to an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of the memory would include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

Claim 1:
A method for controlling a robot (<NUM>) by a controller (<NUM>), wherein the robot comprises a plurality of motors, the method performed by the controller comprising:
obtaining parameters of the plurality of motors, the parameters being associated with the robot (<NUM>) to be controlled by the controller (<NUM>);
retrieving, based on obtained parameters, models of the plurality of motors from a database (<NUM>) accessible to the controller (<NUM>);
determining a first identity of the robot (<NUM>) based on the parameters comprising determining the first identity from the retrieved models;
comparing the first identity with a pre-stored second identity; and
in response to the first identity matching the second identity, controlling operations of the robot (<NUM>) with the controller (<NUM>),
wherein obtaining the parameters of the plurality of motors comprises:
sending at least one excitation signal to the plurality of motors of the robot (<NUM>) from the controller (<NUM>);
receiving the feedback signals that are provided by the plurality of motors in response to the at least one excitation signal; and
determining the parameters of the plurality of motors based on the feedback signals and the at least one excitation signal.