Robot control system, control unit, and robot control method
Patent Information
- Application Number
- JP2025059243
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-03-31
- Publication Date
- 2026-10-14
- Estimated Expiration
- 2045-03-31
Smart Images

Figure 2026166360000001_ABST
Abstract
Description
Technical Field
[0001] The technology disclosed herein relates to a robot control system, a control unit, and a robot control method related to robot control.
Background Art
[0002] Conventionally, in robot systems, a technology is known in which a controller controls an actuator based on a position command. For example, in a conventional robot system, the controller generates position commands and speed commands based on programs or the like (see Patent Documents 1 and 3). Alternatively, in the prior art, the controller receives a position command as an input and performs servo control based on the position command (see Patent Document 2).
[0003] Specifically, Patent Document 1 discloses a technology in which a control circuit generates a position command, a speed command, and an acceleration command to drive a robot. Patent Document 2 discloses a technology in which a control device controls a robot based on a received position command. Patent Document 3 discloses a technology in which an operator performs motion setting and motion control of a robot arm via an operation unit. In Patent Document 3, the controller outputs a speed command to a servo driver based on a program or the like stored in a RAM (for example, a robot teaching program or robot function settings). In other words, the controller generates the speed command based on the program or the like.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Patent Document 2
Patent Document 3
Summary of the Invention
[0005] In recent years, research and development of robots with various functions, including social robots, have progressed, and the needs for robot control have also diversified. For example, there is a need to control a robot based on a speed command given to the controller. In this case, it becomes necessary to drive actuators without a position command.
[0006] However, when a controller drives an actuator based on a given speed command, there are challenges from a functional safety perspective. Generally, in functional safety, the presence or absence of an abnormality is determined based on the actuator's position and position command measured by an encoder. When an actuator is driven based on a given speed command, there is no position command, so the question arises as to how to ensure safety. [Means for solving the problem]
[0007] The technology disclosed herein relates to a robot control system. The robot control system is A controller that controls the operation of the robot's actuators, A safety unit for determining abnormal operation of the actuator, The controller is connected to a computer that enables bidirectional communication using a predetermined communication protocol. The aforementioned computer, The controller receives a speed command that specifies the operating speed of the actuator or a torque command that specifies the torque of the actuator. The aforementioned controller The speed command or torque command is received as an input command, Based on the input command, a drive signal is generated and output to drive the actuator. The command position of the actuator corresponding to the input command is estimated, The aforementioned safety unit, The estimated command position and the position of the actuator detected using the sensor are obtained. Based on the command position and the position of the actuator, an abnormality in the operation of the actuator is determined. [Effects of the Invention]
[0008] The robot control system disclosed herein can ensure functional safety while enhancing the flexibility and scalability of robot control. [Brief explanation of the drawing]
[0009] [Figure 1] Figure 1 is a diagram illustrating the concept of the technology described herein. [Figure 2] Figure 2 is a block diagram showing an example configuration of a robot control system. [Figure 3] Figure 3 is a functional block diagram of the robot control system. [Figure 4] Figure 4 is a control block diagram of the robot control system. [Figure 5] Figure 5 shows an example of the robot's configuration. [Figure 6] Figure 6 is a flowchart showing the control flow of the robot control system. [Figure 7] Figure 7 is a flowchart showing the control flow of the robot control system. [Modes for carrying out the invention]
[0010] The following describes an embodiment of a robot system that implements the control method, with reference to the drawings. The robot system described here is illustrative.
[0011] In the present disclosure, a circuit, unit, module, or means is hardware that executes the recited functions, or hardware programmed to execute the recited functions. The hardware may be the hardware disclosed in the present specification, or other known hardware that is programmed or configured to execute the recited functions. When the hardware is a processor that is considered a type of circuit, the circuit, means, or unit is a combination of hardware and software, and the software is used to configure the hardware and / or the processor.
[0012] 1. Concept The concept of the technology of the present disclosure will be described. FIG. 1 illustrates an overall architecture including a controller and a robot corresponding to the type of the robot.
[0013] Reference numeral 10 denotes a robot controller with a minimum configuration. The robot controller 10 is capable of controlling an industrial robot 71. The industrial robot 71 is a robot limited to specific functions. The robot controller 10 includes a main processor and a servo drive unit. The servo drive unit drives an actuator of the robot. The actuator is, for example, an electric motor.
[0014] Reference numeral 20 denotes a robot controller capable of controlling an industrial robot 72. Unlike the industrial robot 71, the industrial robot 72 does not have limited functions. The industrial robot 72 is a general-purpose industrial robot. The industrial robot 72 may be, for example, an articulated robot. The robot controller 20 includes a servo drive unit 21 and a processor unit 22. The servo drive unit 21 corresponds to a unit obtained by omitting the main processor from the robot controller 10. The processor unit 22 has the main processor.
[0015] Although a detailed explanation is omitted as it is outside the subject matter of the technology disclosed herein, in robot controllers 10 and 20, the main processor generates position commands based on, for example, the robot's teaching program or the robot's function settings. The servo drive unit 21 drives the actuators based on the position commands generated by the main processor. In addition, in robot controllers 10 and 20, the main processor may also generate motion commands based on the position commands. Motion commands include velocity commands, acceleration commands, or torque commands. Motion commands may also include a combination of velocity commands, acceleration commands, and / or torque commands. The servo drive unit 21 may drive the actuators based on the motion commands generated by the main processor. In robot controllers 10 and 20, the main processor generates position commands and motion commands based on the robot's teaching program, etc., in a closed environment. Therefore, robot controllers 10 and 20 have the advantage that it is easy for the safety unit to compare the position commands generated by the main processor with the position detection values measured by sensors such as encoders. In other words, it is relatively easy for the safety unit to ensure functional safety.
[0016] The technology of this disclosure is primarily directed toward the robot control system of reference numeral 30. However, it is not excluded from applying the technology of this disclosure to the form of robot controllers 10 and 20. In the form of robot control system 30, the control unit 40 controls the driving of actuators of a robot such as a robot system 81 or a social robot 82, under the control of a computer 31. In other words, the main CPU 33, which has the function of a master, is located in the computer 31. The control unit 40 has a servo controller (hereinafter simply referred to as "controller 41") that functions as a slave of the main CPU 33. Specifically, in this disclosure, in the robot control system 30, the main CPU 33 of the computer 31 transmits a speed command or a torque command to the controller 41 of the control unit 40. The controller 41, which receives the speed command or torque command as an input command, outputs a drive signal to drive the actuators of the robot system 81 or the social robot 82 based on the input command.
[0017] Furthermore, the controller 41 estimates the command position of actuator AC based on the input command. The direction of estimation of the command position is not particularly limited. For example, a calculation method using mathematical formulas may be used as the method for estimating the command position. A calculation method for the command position using mathematical formulas will be described later. For example, the controller 41 may have a position estimation program that estimates the command position of actuator based on the input command. The controller 41 may have a machine learning model that estimates the command position of actuator based on the input command.
[0018] Computer 31 is, for example, an IPC (Industrial PC). Computer 31 may also be a commercially available computer. Computer 31 may also be, for example, a server. The server environment is not particularly limited and may be on-premises or in the cloud.
[0019] The robot system 81 is a system that includes, for example, multiple industrial robots and peripheral equipment for the robots. Peripheral equipment is a device that works in cooperation with the robots to perform tasks. Specifically, peripheral equipment includes a mobile device for moving the robots, a turntable for rotating the robots, a conveyor for transporting workpieces to the robots, or a device that performs processing on workpieces transported by the robots, such as an aligner for aligning a circuit board as a workpiece. Note that the robots are also included in the peripheral equipment. A robot as peripheral equipment is, for example, a robot that transports workpieces to the robots.
[0020] Social robots 82 differ from industrial robots 72 in that they have a larger number of actuators, or they include devices other than actuators for robot operation. These devices other than actuators include, for example, cameras for capturing images of the surrounding environment, sensors for monitoring the robot's surroundings or detecting actuator movements, or mobile devices for robot movement.
[0021] The robot system 81 or social robot 82 is equipped with a sensor Da for detecting the position of the actuator AC to be driven. The control unit 40 is equipped with a safety unit 44. The safety unit 44 determines an abnormal operation of the actuator AC based on the position of the actuator AC detected using the sensor Da and the command position estimated by the controller 41. The actuator AC and sensor Da will be described later.
[0022] Based on the above concept, the computer 31 can control the robot by transmitting a speed command or torque command to the control unit 40. Since the computer 31 does not need to create a position command, the flexibility and expandability of robot control can be increased. The control unit 40 estimates the commanded position based on the speed command or torque command. The safety unit 44 determines any abnormal operation of actuator AC based on the position of actuator AC detected using sensor Da and the commanded position estimated by controller 41, thereby ensuring functional safety. In other words, according to this disclosure, functional safety can be ensured while increasing the flexibility and expandability of robot control.
[0023] 2. Robot control system The robot control system 30 will be described below with reference to the drawings. The robot control system 30 described here is illustrative. In the block diagram shown below, the components related to this disclosure are simplified in their illustration. For example, components that are shown as directly connected may, in the actual configuration, be indirectly connected by other components placed between them. In this disclosure, the term "connection" is used as a broad concept that encompasses electrical connection. In other words, in this disclosure, the term "connection" includes not only direct connections between elements but also indirect and electrical connections via other components such as passive elements. For the sake of explanation, in the following description, the robots that the robot control system 30 drives will be collectively referred to as "robot 8". Robot 8 includes the various robots included in the aforementioned robot system 81, the social robot 82, and other robots.
[0024] Figure 2 is a block diagram showing an example configuration of the robot control system 30. Figure 3 is a functional block diagram of the robot control system 30. Figure 4 is a control block diagram of the robot control system 30.
[0025] In the following description, robot 8 comprises multiple actuators AC and multiple sensors Da. Actuator AC is, for example, an electric motor. Actuator AC is, for example, a servo motor Ma. Actuator AC is located, for example, at joint J of robot 8. Specific examples of the arrangement of actuator AC will be described later.
[0026] Multiple sensors Da each detect the position of the corresponding actuator AC and output it as an electrical signal. Sensor Da may directly detect the position of actuator AC. If sensor Da is not configured to directly detect the position of actuator AC, the position of actuator AC may be converted from the measurement value of sensor Da. For example, sensor Da includes encoder Da1. Encoder Da1 detects, for example, the rotation direction, rotation angle, rotation speed, etc. of the motor shaft of a servo motor Ma. The rotation angle of the motor shaft is an example of the actuator position. Alternatively, for example, the rotation direction, rotation angle, etc. of the motor shaft detected by encoder Da1 may be converted to the position of actuator AC. The conversion process to the position of actuator AC may be performed by encoder Da1 or by a circuit other than encoder Da1, such as controller 41. Note that sensor Da is not limited to encoder Da1. For example, a resolver or magnetic sensor may be used as sensor Da for detecting the position of actuator AC. Sensor Da may also include a torque sensor. The torque sensor detects the torque applied to the servo motor Ma and outputs it as an electrical signal. Sensor Da may be used in combination with multiple different types of sensors. In the following description, the electrical signal indicating the position of actuator AC detected using sensor Da will sometimes be referred to as the detection signal.
[0027] As shown in Figure 2, the robot 8 may include robot arms 85 and 86. Each of the robot arms 85 and 86 includes multiple servo motors Ma. Figure 5 shows an example where the robot 8 is a social robot. The robot 8 is, for example, a multi-joint robot. The robot arms 85 and 86 are, for example, vertical multi-joint arms. In Figure 5, the robot arms 85 and 86 are connected to the robot body 87 via joints J. The robot arms 85 and 86 have, for example, multiple links L and joints J connecting each link L. The servo motors Ma are, for example, located at each joint J and drive the corresponding joint J. The relationship between the servo motors Ma and joints J may be one-to-one, multiple-to-one, or one-to-many. The robot arms 85 and 86 may have the same configuration as each other, or they may have one or more common configurations.
[0028] (1) Control Unit As shown in Figure 2, the robot control system 30 comprises a computer 31 and one or more control units 40. Each control unit 40 has a controller 41. The controller 41 in Figure 2 is a multi-axis integrated controller that drives multiple-axis actuators AC with a single controller 41. Alternatively, a controller 41 may be provided for each axis. The controller 41 includes, for example, one or more servo CPUs 42. One or more servo CPUs 42 are mounted, for example, on a servo board 43. The servo CPUs 42 may consist of one or more chip-based integrated circuits. The number of servo CPUs 42 may be the same as the number of servo motors Ma, or it may be less than the number of servo motors Ma. Figure 2 shows an example where the controller 41 has two servo CPUs 42 for seven servo motors Ma.
[0029] The controller 41 receives a speed command or torque command as an input command and generates and outputs a drive signal to drive the actuator AC based on the input command. The output drive signal is input to the inverter 62 of the amplifier board 47. Furthermore, the controller 41 has a function to estimate the commanded position of the actuator AC according to the input command.
[0030] Let's describe the controller 41 in more detail. As shown in Figure 3, the controller 41 has a communication module 51, a speed control module 52, a current control module 53, and a position estimation module 54 as functional modules. Note that the functional block division in Figure 3 is for convenience only, and the configuration is not limited to Figure 3. Functional blocks may be combined with each other, or further subdivided than in Figure 3.
[0031] The functions of each module of the controller 41 can be performed using a circuit or processing circuit, including, for example, a general-purpose processor, a dedicated processor, an integrated circuit, an ASIC (Application Specific Integrated Circuit), a conventional circuit, and / or a combination thereof, configured or programmed to perform the disclosed functions. A processor is considered a processing circuit or circuit because it includes transistors and other circuits. The processor is, for example, the processor of the servo CPU 42. In other words, the functions of each module of the controller 41 are realized, for example, by a processor mounted on the servo CPU 42 executing a program stored in memory. The memory may include, for example, one or more selected from the group consisting of volatile memory such as RAM (Random Access Memory), non-volatile memory such as ROM (Read Only Memory) and flash memory, a hard disk drive (HDD), and an SSD (Solid State Drive). In addition, as the servo CPU 42, one or more selected from the group consisting of an MPU (Micro Processing Unit), GPU (Graphics Processing Unit), microprocessor, processor core, multiprocessor, ASIC (Application-Specific Integrated Circuit), FPGA (Field Programmable Gate Array), and reconfigurable processor may be used instead of a CPU (Central Processing Unit).
[0032] The communication module 51 has the function of communicating with the computer 31. Specifically, the communication module 51 has an interface circuit that conforms to a predetermined communication protocol. The communication module 51 communicates with the communication module 35 of the main CPU 33 in accordance with the predetermined communication protocol. The predetermined communication protocol has a communication bandwidth of, for example, GHz or higher. The predetermined communication protocol is, for example, EtherCAT (registered trademark). For example, the communication module 35 of the main CPU 33, which will be described later, is the master node, and the communication module 51 of the servo CPU 42 is the slave node. Note that the predetermined communication protocol may conform to a high-speed interface protocol other than EtherCAT.
[0033] The communication module 51 may have the function of receiving a detection signal output from the sensor Da that measures the state of the servo motor Ma. That is, the communication module 51 may receive the detection signal from the encoder Da1. The measurement data from the encoder Da1 may be transmitted to the main CPU 33 via the communication module 51. If the sensor Da is a torque sensor, the detection value from the torque sensor is transmitted to, for example, the servo CPU 42. The measurement data from the torque sensor may also be transmitted to the main CPU 33 via the communication module 51.
[0034] Figure 4 is a control block diagram of the robot control system 30. Figure 6 shows the control flow of the robot control system 30. Figure 6 shows the control flow of the robot control system 30 as a whole.
[0035] In S1 of Figure 6, the computer 31 transmits a speed command to the controller 41 that instructs the operating speed of actuator AC, or a torque command that instructs the torque of actuator AC.
[0036] In S2 of Figure 6, the controller 41 receives a speed command or torque command as an input command. Specifically, as shown in Figure 4, the speed control module 52 of the controller 41 receives a speed command or torque command as an input command.
[0037] In S3 of Figure 6, the controller 41 generates and outputs a target current value for driving actuator AC based on the input command. Specifically, the speed control module 52 calculates the speed deviation by subtracting the actual angular velocity obtained by differentiating the actual angular position from the speed command value. The speed control module 52 multiplies the calculated speed deviation by the speed gain. The speed control module 52 uses the speed gain to generate a target current value corresponding to the target torque output from the servo motor Ma. The speed control module 52 outputs the generated target current value to the current control module 53. The method for generating the target current value from the speed command is not limited to the above, and a calculation method using a mathematical formula may also be used.
[0038] If the received target current value is within a predetermined current limit range, the current control module 53 outputs a drive signal corresponding to that target current value to the inverter 62, which will be described later. If the received target current value is outside the predetermined current limit range, the current control module 53 outputs a drive signal corresponding to the current limited to within the current limit range to the inverter 62 of the amplifier board 47. The drive signal is, for example, a PWM signal (Pulse Width Modulation). The current control module 53 may also perform closed-loop control by receiving a current feedback signal corresponding to the output current of the inverter 62. Specifically, the error between the target current value received from the speed control module 52 and the current feedback signal may be calculated, and feedback control may be performed to reduce the error between the two.
[0039] In S4 of Figure 6, the controller 41 estimates the commanded position of actuator AC corresponding to the input command. Specifically, as shown in Figure 4, the position estimation module 54 of the controller 41 receives a speed command or torque command as an input command and estimates the commanded position of actuator AC based on the input command. The order of processing between S3 and S4 in Figure 6 is not particularly limited. Processing S3 and processing S4 can be performed independently of each other. That is, for example, processing S3 and processing S4 may be performed in parallel, or the execution times of processing S3 and processing S4 may be staggered.
[0040] For example, if the input command is a torque command, the commanded position of the actuator can be calculated using the following formula. In the formula below, τcmd is the torque command value, Ilink is the inertia matrix, Im is the motor inertia matrix, Rg is the reduction ratio, C(θout, θout) is the Coriolis term, G(θout) is the gravity term, and θout is the estimated commanded position.
[0041]
number
[0042]
number
[0043]
number
[0044]
number
[0045] The position estimation module 54 may reset the deviation for the command position estimation using the above calculation formula at predetermined time intervals. The predetermined time interval is not particularly limited and can be set arbitrarily. The predetermined time interval may be set, for example, according to the rotation angle of the servo motor Ma every second. By resetting the deviation, the error between the position estimation value and the value detected by the encoder is reduced.
[0046] When the input command is a speed command, the command position of actuator AC is estimated by, for example, integrating the input speed command from the origin position, and using that integrated value as the estimated value. The estimated command position of actuator AC is output to the safety unit.
[0047] The control unit 40 may have an amplifier board 47 and a power supply board 48. The amplifier board 47 is interposed between the servo board 43 and the actuator AC. As shown in Figure 4, the power supply board 48 has a converter 61. The converter 61 is, for example, a rectifier circuit with multiple diodes connected in a bridge configuration. The converter 61 converts the AC power supplied from the AC power source into DC power and outputs it to the inverter 62.
[0048] The amplifier board 47 may have an inverter 62. The inverter 62 is interposed between the servo CPU 42 and the actuator AC. The inverter 62 converts the DC power output from the converter 61 into AC power and outputs it from the output terminal of the control unit 40. For example, in the inverter 62, the switching elements switch in response to the drive signal output from the current control module 53 (described later), and output a drive current. The drive current output from the inverter 62 is supplied to the actuator AC via the output terminal of the control unit 40. The inverter 62 is, for example, a PWM type inverter in which switching elements such as transistors are bridged. The output of the inverter 62 is connected to the output terminal of the control unit 40. The output terminal of the control unit 40 is connected to the actuator AC of the robot R1. In this disclosure, the term "terminal" is used to refer to the concept of an input and output of current provided for the connection of an electrical circuit. For example, it is not intended to be limited to specific physical configurations such as terminal blocks, connectors, or semiconductor leads, and wires connecting circuits and elements, or wiring on a printed circuit board may also correspond to terminals.
[0049] Note that the amplifier board 47 and the power supply board 48 are not essential components. For example, the drive signal output from the controller 41 may be directly input to the actuator AC. In this case, the actuator AC may have a function to generate a drive source such as drive current and drive voltage based on the drive signal received from the controller 41. For example, the actuator AC may have a configuration equivalent to an inverter 62, either internally or as an external function.
[0050] The control unit 40 has a safety unit 44. The safety unit 44 has an abnormality detection module 57 as a functional module. The safety unit 44 includes, for example, one or more CPUs 46. The one or more CPUs 46 are mounted, for example, on a safety board 45. The functions of the safety unit 44 are realized, for example, by the execution of a program stored in memory by a processor mounted on the CPU 46. The functions of the safety unit 44 also include the functions of the abnormality detection module 57. The memory may include, for example, one or more selected from the group consisting of volatile memory such as RAM (Random Access Memory), non-volatile memory such as ROM (Read Only Memory) and flash memory, hard disk drives (HDDs), and SSDs (Solid State Drives). In addition to or instead of a CPU (Central Processing Unit), one or more components selected from the group consisting of an MPU (Micro Processing Unit), GPU (Graphics Processing Unit), microprocessor, processor core, multiprocessor, ASIC (Application-Specific Integrated Circuit), FPGA (Field Programmable Gate Array), and reconfigurable processor may be used as the CPU46. The CPU46 may consist of one or more integrated circuits on a chip.
[0051] The encoder Da at least detects the position of actuator AC and outputs the detected value as a detection signal. The encoder Da may also detect, for example, the direction and angle of movement of actuator AC using a sensor in addition to the mechanical movement, and output these as detection signals. Note that sensors other than the encoder may be used to detect the position of actuator AC. The detection method of the sensor is not particularly limited. For example, an optical sensor or a magnetic sensor may be used.
[0052] In S5 of Figure 6, the safety unit 44 acquires the position of actuator AC detected using sensor Da. For example, the safety unit 44 acquires the detected value of actuator AC's position by encoder Da1 by receiving the detection signal output from encoder Da1. The detection signal may also include detected values other than the position of actuator AC, such as the direction of movement and rotation angle of actuator AC.
[0053] In S6 of Figure 6, the safety unit 44 determines an abnormal operation of actuator AC based on the command position received from the controller 41 and the position of actuator AC detected using sensor Da. Specifically, for example, the abnormality determination module 57 determines an abnormal operation of actuator AC based on the command position received from the controller 41 and the position of actuator AC detected using sensor Da. The method for determining an abnormal operation is not particularly limited. For example, the abnormality determination module 57 compares the command position estimated by the controller 41 with the position moved by the actuator AC driven by the encoder Da, and determines that there is an abnormality if the difference in position exceeds a predetermined threshold.
[0054] If an abnormal operation of actuator AC is detected, the next step, S7, will result in a YES judgment, and the flow will proceed to S8. In S8, processing corresponding to the abnormal operation is executed. The specific processing is not particularly limited, but examples include emergency stop of robot 8, alarm activation, display on the teaching device, and protective stop of robot 8. Alarm activation includes, for example, audible alarms and alarms activated by displays or lights such as warning lights.
[0055] As shown in Figure 2, the control unit 40 has a connector 49. Connector 49 may be connected to connector 38 of the computer 31. Connector 49 is connected to the servo CPU 42. Connector 38 is connected to the main CPU 33. The servo CPU 42 communicates bidirectionally with the main CPU 33 via connectors 49 and 38 in accordance with a predetermined communication protocol.
[0056] The specific structure of connector 38 is not particularly limited. Examples of connector 38 include plugs, sockets, headers, receptacles, and pin contacts arranged on a circuit board. Connector 16A and connector 31 may be in a male-female relationship, respectively, and may be directly connected to each other without wiring. Connector 49 is not a mandatory component. For example, solder may be used instead of connector 49. The same applies to connector 38.
[0057] (2) Computer The computer 31 has a main CPU 33. The main CPU 33 controls the operation of various components of the robot 8 connected to the control unit 40 by outputting input commands to the control unit 40, for example. As shown in Figure 2, the main CPU 33 is mounted on a main board 34, for example.
[0058] The functions of the main CPU 33, for example, the functions of the command value generation module described later, are realized by the processor mounted on the main CPU 33 executing a program stored in memory. Specifically, the functions of the main CPU 33 can be performed using a circuit or processing circuit, including, for example, a general-purpose processor, a dedicated processor, an integrated circuit, an ASIC (Application Specific Integrated Circuit), a conventional circuit, and / or a combination thereof, configured or programmed to perform the disclosed functions. A processor is considered a processing circuit or circuit because it includes transistors and other circuits. The processor may consist of one or more chip-mounted integrated circuits. Memory may include, for example, one or more selected from the group of volatile memory such as RAM (Random Access Memory), non-volatile memory such as ROM (Read Only Memory) and flash memory, a hard disk drive (HDD), and an SSD (Solid State Drive).
[0059] As shown in Figure 3, the main CPU 33 may have a communication module 35 as a functional module. The communication module 35 has the function of communicating with one or more servo CPUs 42. The communication module 35 has an interface circuit that conforms to a predetermined communication protocol and is common to the communication module 51. The communication module 35 communicates with the communication module 51, for example, in accordance with the predetermined communication protocol. As mentioned above, the predetermined communication protocol has a communication bandwidth of, for example, GHz or higher. The predetermined communication protocol is, for example, EtherCAT.
[0060] The main CPU 33 has a command value generation module 36 as a functional module. The command value generation module 36 generates and outputs speed commands or torque commands for actuator AC to cause the robot 8 to perform a desired operation. A speed command is, for example, a command value that specifies the operating speed of actuator AC. A torque command is, for example, a command value that specifies the torque of actuator AC. The command value generation module 36 may also combine, for example, a position command with a speed command or torque command. For example, actuator AC may be operated by a position command up to a certain point, and then controlled by a torque command from that point onward. Alternatively, for example, the final destination position of actuator AC may be given as a position command, while the movement speed from the starting point to the final destination may be combined with one or more speed commands.
[0061] The speed command or torque command generated by the command value generation module 36 is transmitted to the servo CPU 42 via the communication modules 35 and 51. Specifically, the speed command or torque command is converted into a form compliant with the aforementioned predetermined communication protocol and transmitted to the servo CPU 42.
[0062] The command value generation module 36 may also perform feedback control. Specifically, the command value generation module 36 may receive detection data from sensor Da as a feedback signal from control unit 40. The feedback signal may include, for example, a position feedback signal or a speed feedback signal based on the detection signal of encoder Da1. The feedback signal may also include, for example, a torque feedback signal based on the detection signal of a torque sensor.
[0063] The command value generation module 36 may be configured to instruct cooperative control. For example, in the case of a robot having multiple axis robot arms 85 and 86, the command value generation module 36 may generate speed commands or torque commands so that robot arms 85 and 86 operate in coordination. For example, the speed command or torque command may be adjusted so that robot arm 86 operates in coordination with the speed command or torque command of robot arm 85. For example, the speed command or torque command for robot arms 85 and 86 may be generated by comprehensively considering the operation of robot arm 85 and the operation of robot arm 86. Furthermore, the command value generation module 36 may perform cooperative control that takes into account the vibration of the robot 8. For example, the command value generation module 36 may estimate the amount of vibration of robot arm 86 caused by the speed command or torque command of robot arm 85 and adjust the speed command or torque command for robot arm 86 to suppress the vibration of robot arm 86. For example, the movement of robot arm 85 and the movement of robot arm 86 may be comprehensively judged, and the speed commands or torque commands for robot arms 85 and 86 may be adjusted respectively to reduce vibrations of robot arms 85 and 86.
[0064] 3. Robot control method Figure 7 is a flowchart showing the control flow of the robot control system. Figure 7 shows the control flow of the robot control system 30, viewed from the control unit 40 as the central point. Here, the robot control method will be explained with reference to Figure 7.
[0065] In S11, the control unit 40 receives an input command. The input command is transmitted, for example, from the computer 31. The computer 31 and the control unit 40 are connected in a way that enables bidirectional communication according to a predetermined communication protocol. The input command includes a speed command that specifies the operating speed of actuator AC. The input command also includes a torque command that specifies the torque of actuator AC. As described above, for example, the controller 41 may receive the speed command or torque command as an input command. For example, the speed control module 52 may receive the speed command or torque command as an input command, or it may be received by another module.
[0066] In S12, the control unit 40 generates a drive signal to drive actuator AC based on the input command. The control unit 40 outputs the generated drive signal to actuator AC. For example, the aforementioned controller 41 may generate the drive signal based on the input command received from the computer 31. The generated drive signal may be output to actuator AC via the amplifier board 47. The generation of the drive signal may be performed by the aforementioned speed control module 52 and current control module 53, or by other modules having similar functions.
[0067] In S13, the control unit 40 estimates the command position of actuator AC corresponding to the input command. The command position estimation may be performed, for example, by the position estimation module 54 described above, or by another module having a similar function. The processes in S12 and S13 may be executed in parallel or one-to-one. The processes in S12 and S13 may be executed independently of each other, for example. The processes in S12 and S13 may be executed by the same servo CPU 42 or by different servo CPUs 42.
[0068] In S14, the control unit 40 obtains the position of actuator AC detected using sensor Da. The safety unit 44 described above may also obtain the position of actuator AC. As described above, for example, sensor Da may directly detect the position of actuator AC. For example, if sensor Da is not configured to directly detect the position of actuator AC, the position of actuator AC may be converted from the measurement value of sensor Da. The conversion process from the measurement value of sensor Da to the position of actuator AC may be performed within sensor Da or using a circuit other than sensor Da. Sensor Da includes, for example, encoder Da1. The control unit 40 obtains the detected value of the position of actuator AC by encoder Da1 by receiving the detection signal output from encoder Da1.
[0069] In S15, the control unit 40 determines an abnormal operation of actuator AC based on the command position estimated in S13 and the position of actuator AC acquired in S14. The method for determining an abnormal operation is not particularly limited. For example, the control unit 40 may compare the command position estimated in S13 with the position of actuator AC acquired in S14 and determine that there is an abnormality if the difference in position exceeds a predetermined threshold.
[0070] If an actuator malfunction is detected, the next step, S16, will result in a YES decision, and the flow will proceed to S17. In S17, processing corresponding to the malfunction will be executed. The specific processing is not limited to these, but examples include emergency stop of robot 8, alarm activation, display on the teaching device, and protective stop of robot 8. Alarm activation includes, for example, audible alarms and alarms activated by displays or lights such as warning lights. If no actuator malfunction is detected, S16 will result in a NO decision. Then, according to the subsequent input commands, the processing from S11 described above will be executed and repeated.
[0071] [Pattern] The above-mentioned embodiment is a specific example of the following embodiment.
[0072] (Aspect 1) In the first aspect of this disclosure, A controller (41) that controls the drive of the actuator (AC) of the robot (8), A safety unit (44) for determining an abnormal operation of the actuator (AC), The controller (41) is connected to a computer (31) that enables bidirectional communication using a predetermined communication protocol. The aforementioned computer (31) The controller (41) receives a speed command that instructs the operating speed of the actuator (AC) or a torque command that instructs the torque of the actuator (AC). The controller (41) The speed command or torque command is received as an input command, Based on the input command, a drive signal is generated and output to drive the actuator (AC). The command position of the actuator (AC) corresponding to the input command is estimated, The aforementioned safety unit (44) The estimated command position and the position of the actuator (AC) detected using the sensor (Da) are obtained. Based on the command position and the position of the actuator, an abnormality in the operation of the actuator (AC) is determined. Robot control system.
[0073] In this disclosure, the robot can be controlled by a computer (31) transmitting a speed command or torque command to a control unit (40). Since the computer (31) does not need to create a position command, the flexibility and expandability of the robot control can be increased. Furthermore, the control unit (40) estimates the commanded position based on the speed command or torque command. The safety unit (44) determines the abnormal operation of the actuator (AC) based on the position of the actuator (AC) detected using a sensor (Da) and the commanded position estimated by the controller (41), thereby ensuring functional safety. In other words, according to this disclosure, functional safety can be ensured while increasing the flexibility and expandability of the robot control.
[0074] (Aspect 2) The actuator (AC) is located at the joint (J) of the robot (8). A robot control system (30) as described in Embodiment 1.
[0075] (Aspect 3) The robot (8) has vertical articulated robot arms (85, 86), The robot arms (85, 86) have a plurality of links (L), and each of the links (L) is connected by the joints (J). The controller (41) estimates the command position of the joint (J) corresponding to the input command, The safety unit (44) determines an abnormal operation of the actuator (AC) based on the estimated command position of the joint (J) and the position of the joint (J) detected using the sensor (Da). A robot control system (30) according to embodiment 2.
[0076] As in Embodiment 2 or Embodiment 3, when the actuator (AC) is located at a joint (J) of the robot (8), for example, the controller (41) may estimate the commanded position of the joint (J) corresponding to the input command. For example, the safety unit (44) may determine an abnormal operation of the actuator (AC) based on the estimated commanded position of the joint (J) and the position of the joint (J) detected using the sensor (Da). The computer (31) transmits a speed command or a torque command to the control unit (40), thereby enabling robot control of a social robot (82) having, for example, a vertically articulated robot arm (85, 86). In other words, the flexibility and expandability of robot control of the social robot (82) can be increased. Since the abnormal operation of the actuator (AC) is determined based on the commanded position of the joint (J) and the position of the joint (J) detected using the sensor (Da), the functional safety of the social robot (82) can be ensured. Therefore, for the social robot (82), functional safety can be ensured while increasing the flexibility and expandability of robot control.
[0077] (Aspect 4) The input command is the torque command, The controller (41) is Upon receiving the torque command, Based on the torque command, the drive signal is generated and output. The command position of the actuator (AC) corresponding to the torque command is estimated. A robot control system (30) according to any one of embodiments 1 to 4.
[0078] The computer (31) can control the robot by transmitting torque commands to the control unit (40). In other words, the user of the computer (31) only needs to provide torque commands, eliminating the need to create position commands, thus increasing the flexibility and expandability of robot control. By controlling the output torque of the actuator (AC) with a directly specified torque command value, the desired torque can be output at high speed without being limited by position or speed. For example, this method is effective when (1) a hand is attached as an end effector to the tip of the robot arms 85 and 86 of the robot 8, and the hand is expected to grasp an object with a constant torque, or when (2) the robot 8 presses the workpiece attached to its tip against the object to be polished for the purpose of polishing. The control unit (40) estimates the command position based on the torque command and determines any abnormal operation of the actuator (AC) based on the position data of the actuator (AC) and the command position estimated by the controller (41), thus ensuring functional safety. In other words, functional safety can be ensured while increasing the flexibility and expandability of robot control.
[0079] (Appendix 5) The sensor (Da) is one or more selected from the group consisting of an encoder (Da1), a resolver, and a magnetic sensor. A robot control system (30) according to any one of embodiments 1 to 4.
[0080] (Aspect 6) The actuator (AC) is a servo motor (Ma), The sensor is an encoder (Da1) that measures the rotation direction and rotation angle of the servo motor. The position of the actuator (AC) is calculated based on the measurement value of the encoder (Da1). A robot control system (30) according to any one of embodiments 1 to 3.
[0081] Embodiment 5 specifies the specific configuration of the sensor (Da). In Embodiment 6, the safety unit (44) determines an abnormal operation of the actuator (AC) based on the command position estimated by the controller (41) and the position of the actuator (AC) calculated based on the measurement value of the encoder (Da1). Similar to Embodiment 1 described above, functional safety can be ensured while increasing the flexibility and expandability of robot control.
[0082] (Aspect 7) The aforementioned predetermined communication protocol has a communication bandwidth of GHz or higher. A robot control system (30) according to any one of embodiments 1 to 6.
[0083] By using a communication bandwidth of GHz or higher as the predetermined communication protocol, the transmission of speed commands or torque commands between the computer (31) and the controller (41) is accelerated. This improves the real-time capabilities of robot control.
[0084] (Pattern 8) The controller (41), when estimating the command position of the actuator (AC), resets the estimated command position at predetermined intervals. A robot control system (30) according to any one of embodiments 1 to 7.
[0085] (Aspect 9) The command position of the actuator (AC) is the command position of the joint (J) of the robot (8). The controller (41) resets the joint position of the robot (8) detected using the sensor (Da) by substituting it with the estimated command position of the joint (J). A robot control system (30) as described in embodiment 8.
[0086] According to embodiment 8 or embodiment 9, the estimated command position is reset at predetermined intervals, thereby reducing the error between the estimated position and the actual joint position of the robot (8). For example, when calculating the estimated position using a formula that includes integration, the deviation of the estimated position accumulates over time. By resetting the estimated command position at predetermined intervals, the deviation is reset, and the error between the estimated position and the actual joint position of the robot (8) is reduced.
[0087] (Aspect 10) A controller (41) that controls the drive of the actuator (AC) of the robot (8), The system includes a safety unit (44) for determining abnormal operation of the actuator (AC), The controller (41) It receives a speed command or torque command as an input command, Based on the input command, a drive signal is generated and output to drive the actuator (AC). The command position of the actuator (AC) in accordance with the input command is estimated, The aforementioned safety unit (44) The estimated command position and the position of the actuator (AC) detected using the sensor (Da) are obtained. Based on the command position and the position of the actuator (AC), an abnormality in the operation of the actuator (AC) is determined. Control unit (40).
[0088] (Aspect 11) A method for controlling a robot (8) using a control unit (40) that controls the drive of the actuator (AC) of the robot (8), The control unit (40) It receives a speed command or torque command as an input command, Based on the input command, a drive signal is generated and output to drive the actuator (AC). The command position of the actuator (AC) in accordance with the input command is estimated, The position of the actuator (AC) detected using the sensor is obtained, Based on the command position and the position of the actuator (AC), an abnormality in the operation of the actuator (AC) is determined. A method for controlling the robot (8).
[0089] In embodiments 10 and 11, similar to embodiment 1 described above, the control unit (40) controls the robot based on a speed command or torque command. This eliminates the need for a device that gives commands to the control unit (40), such as a computer (31), to create position commands, thereby increasing the flexibility and expandability of robot control. Furthermore, the control unit (40) estimates the commanded position based on the speed command or torque command. The safety unit (44) determines any abnormal operation of the actuator (AC) based on the position data of the actuator (AC) detected using the sensor (Da) and the commanded position estimated by the controller (41), thereby ensuring functional safety. In other words, functional safety can be ensured while increasing the flexibility and expandability of robot control. [Explanation of Symbols]
[0090] 8 Robots 30 Robot Control Systems 31 Computer 40 Control Units 41 Controllers 44 Safety Unit 85 Robot Arm 86 Robot Arm AC Actuator Da Sensor Da1 encoder J-joint L Link Ma Servo Motor
Claims
1. A controller that controls the operation of the robot's actuators, A safety unit for determining abnormal operation of the actuator, The controller is connected to a computer that enables bidirectional communication using a predetermined communication protocol. The aforementioned computer, The controller receives a speed command that specifies the operating speed of the actuator or a torque command that specifies the torque of the actuator. The aforementioned controller The speed command or torque command is received as an input command, Based on the input command, a drive signal is generated and output to drive the actuator. The command position of the actuator corresponding to the input command is estimated, The aforementioned safety unit, The estimated command position and the position of the actuator detected using the sensor are obtained. Based on the command position and the position of the actuator, an abnormality in the operation of the actuator is determined. Robot control system.
2. In the robot control system according to claim 1, The actuator is located at the joint of the robot, Robot control system.
3. In the robot control system according to claim 2, The robot has a vertically articulated robotic arm, The robot arm has multiple links, and each of the links is connected by the joints. The controller estimates the command position of the joint corresponding to the input command, The safety unit determines an abnormality in the operation of the actuator based on the estimated command position of the joint and the position of the joint detected using the sensor. Robot control system.
4. In the robot control system according to claim 1, The input command is the torque command, The aforementioned controller, Upon receiving the torque command, Based on the torque command, the drive signal is generated and output. The command position of the actuator corresponding to the torque command is estimated. Robot control system.
5. In the robot control system according to claim 1, The sensor is one or more selected from the group consisting of encoders, resolvers, and magnetic sensors. Robot control system.
6. In the robot control system according to claim 1, The actuator is a servo motor, The sensor is an encoder that measures the rotation direction and rotation angle of the servo motor. The position of the actuator is calculated based on the measurement value of the encoder. Robot control system.
7. In the robot control system according to claim 1, The aforementioned predetermined communication protocol has a communication bandwidth of GHz or higher. Robot control system.
8. In the robot control system according to claim 1, The controller, when estimating the command position of the actuator, resets the estimated command position at predetermined intervals. Robot control system.
9. In the robot control system according to claim 8, The commanded position of the actuator is the commanded position of the robot's joint. The controller resets the joint position of the robot detected using the sensor by substituting it with the estimated command position of the joint. Robot control system.
10. A controller that controls the operation of the robot's actuators, The system includes a safety unit for determining abnormal operation of the actuator, The aforementioned controller It receives a speed command or torque command as an input command, Based on the input command, a drive signal is generated and output to drive the actuator. The command position of the actuator is estimated in accordance with the input command. The aforementioned safety unit, The estimated command position and the position of the actuator are obtained, Based on the command position and the position of the actuator, an abnormality in the operation of the actuator is determined. Control unit.
11. A method for controlling a robot using a control unit that controls the driving of the robot's actuators, The aforementioned control unit It receives a speed command or torque command as an input command, Based on the input command, a drive signal is generated and output to drive the actuator. The command position of the actuator is estimated in accordance with the input command. The position of the actuator detected using the sensor is obtained, Based on the command position and the position of the actuator, an abnormality in the operation of the actuator is determined. Robot control methods.
Citation Information
Patent Citations
Robot control method, robot control program, and robot system
JP2024029677A
Robot control method and robot control device
JP2024148665A
Encoder abnormality detection method and abnormality detection device, and robot control system
JP6857818B2