Control system

JPWO2024143483A5Pending Publication Date: 2025-09-04
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024567940
Authority / Receiving Office
JP · JP
Patent Type
Applications
Filing Date
2025-06-25
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

Current robot control systems face challenges in efficiently managing the movement and operation of robots with complex tasks, particularly in environments where dynamic obstacles and changing conditions require real-time adjustments to motion paths without interrupting ongoing operations.

Method used

A control system comprising a robot controller, motion planner, and storage units that periodically execute processes regardless of motion planning status, utilizing camera images, sensor data, and PLC outputs to create and adapt target motion paths for the robot's arm and end effector, ensuring continuous operation and obstacle avoidance.

Benefits of technology

Enables the robot to perform complex tasks with improved efficiency and adaptability by continuously controlling and adjusting its motion paths in real-time, ensuring safe and effective operation even in dynamic environments.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

This control system comprises: a robot control unit; a motion planning unit; and at least one storage unit. The robot control unit performs a process related to controlling a robot that operates on the basis of a target motion. The motion planning unit creates a target motion of the robot on the basis of the processing results of the robot control unit. At least one storage unit stores respective outputs of the robot control unit and the motion planning unit. The robot control unit periodically starts executing the process regardless of the creation status of the target motion by the motion planning unit.
Need to check novelty before this filing date? Find Prior Art

Description

Control System

[0001] The present disclosure relates to controlling a robot.

[0002] Patent Document 1 describes a technology related to the control of a robot.

[0003] JP 2019-81234 A

[0004] A control system is disclosed. In one embodiment, the control system includes a robot control unit, a motion planning unit, and at least one memory unit. The robot control unit performs processing related to control of a robot that operates based on a target motion. The motion planning unit creates a target motion for the robot based on the results of processing by the robot control unit. The at least one memory unit stores outputs of the robot control unit and the motion planning unit. The robot control unit periodically starts executing processing regardless of the status of creation of the target motion by the motion planning unit.

[0005] 1 is a schematic diagram showing an example of the configuration of a robot system. FIG. 1 is a schematic diagram showing an example of a robot and an example of the surroundings of the robot. FIG. 1 is a schematic diagram showing an example of the configuration of a control system. FIG. 1 is a schematic diagram showing an example of the configuration of an arm control unit, a hand control unit, a first sensor unit, and a second sensor unit. FIG. 1 is a schematic diagram showing an example of the configuration of an arm control unit, a hand control unit, a first sensor unit, and a second sensor unit. FIG. 1 is a schematic diagram showing an example of the imaging ranges of a first camera and a second camera. FIG. 1 is a schematic diagram showing an example of the configuration of a control system. FIG. 1 is a schematic diagram showing an example of created target motion data. FIG. 1 is a schematic diagram showing an example of a plurality of states of a motion control unit. FIG. 1 is a flowchart showing an example of the operation of a robot control unit. FIG. 1 is a flowchart showing an example of the operation of a robot control unit. FIG. 1 is a flowchart showing an example of the operation of a robot control unit. FIG. 1 is a flowchart showing an example of the operation of a robot control unit. 1 is a flowchart showing an example of the operation of a robot control unit. 2 is a flowchart showing an example of the operation of a robot control unit. 3 is a schematic diagram showing an example of state transition of the operation control unit. 4 is a schematic diagram showing an example of a plurality of states of the operation control unit. 5 is a schematic diagram showing an example of the operation of a control system. 6 is a schematic diagram showing an example of the operation of a control system. 7 is a schematic diagram showing an example of the operation of a control system. 8 is a schematic diagram showing an example of the operation of a control system. 9 is a schematic diagram showing an example of the operation of a control system. 10 is a schematic diagram showing an example of the operation of a control system.1 is a schematic diagram showing an example of a plurality of states of an operation control unit; FIG. 1 is a schematic diagram showing an example of an operation of the control system; FIG. 1 is a schematic diagram showing an example of an operation of the control system; FIG. 1 is a schematic diagram showing an example of an operation of the control system; FIG. 1 is a schematic diagram showing an example of a configuration of a condition determination unit and an example of data input to the condition determination unit; FIG. 1 is a schematic diagram showing an example of a plurality of types of upper limit value combinations; FIG. 1 is a schematic diagram showing an example of correspondence data; FIG. 1 is a schematic diagram showing an example of common dictionary data; FIG. 1 is a schematic diagram showing an example of individual dictionary data; FIG. 1 is a schematic diagram showing an example of individual dictionary data; FIG. 1 is a schematic diagram showing an example of individual dictionary data; FIG. 1 is a schematic diagram showing an example of individual dictionary data; FIG. 1 is a schematic diagram showing an example of individual dictionary data; FIG. 1 is a schematic diagram showing an example of individual dictionary data; FIG. 1 is a schematic diagram showing an example of individual dictionary data; FIG. 1 is a schematic diagram showing an example of individual dictionary data; FIG. 1 is a schematic diagram showing an example of individual dictionary data; It is a schematic diagram showing an example of a plurality of states of the operation control unit. It is a schematic diagram showing an example of individual dictionary data. It is a schematic diagram showing an example of individual dictionary data. It is a schematic diagram showing an example of the configuration of the robot control unit.

[0006] <Outline of an Example of a Robot System> FIG. 1 is a schematic diagram showing an example of the configuration of a robot system 1. As shown in FIG. 1, the robot system 1 includes, for example, a robot 2 and a control system 6 that controls the robot 2. The control system 6 manages the operation of the entire robot system 1. The robot 2 has at least one driven unit and at least one drive control unit that controls the at least one driven unit. In this example, the at least one driven unit includes, for example, an arm 20 and an end effector 25. Furthermore, the at least one drive control unit includes an arm control unit 3 that controls the arm 20 and an effector control unit 4 that controls the end effector 25. The control system 6 controls the robot 2 via the arm control unit 3 and the effector control unit 4. The control system 6 can also be considered a higher-level control system 6 that controls the robot 2.

[0007] The robot system 1 includes, for example, a first sensor unit 50 and a second sensor unit 55 that detect the state of the robot 2. The first sensor unit 50 detects, for example, the state of the arm 20. The second sensor unit 55 detects, for example, the state of the end effector 25. Hereinafter, the first sensor unit 50 and the second sensor unit 55 may be referred to as the arm sensor unit 50 and the effector sensor unit 55, respectively. Furthermore, when there is no need to particularly distinguish between the arm sensor unit 50 and the effector sensor unit 55, they may each be referred to as a sensor unit.

[0008] The robot system 1 includes, for example, a first camera 11, a second camera 12, and a PLC (programmable logic controller) 13. The control system 6 controls the robot 2 based on, for example, camera images obtained by the first camera 11 and the second camera 12, output data from the PLC 13, and detection results from the arm sensor unit 50 and the effector sensor unit 55.

[0009] The robot 2 repeatedly performs an object movement task, for example, of moving a work object (also simply referred to as an object) from a source area to a destination area. The robot 2 holds the work object in the source area with the end effector 25. The robot 2 then moves the work object held by the end effector 25 from the source area to the destination area. For example, the robot 2 moves the work object held by the end effector 25 from the source area to the destination area by changing the posture of the robot 2, specifically the posture of the arm 20. The position of the arm 20 is determined by the posture of the arm 20. The position of the end effector 25 is also determined by the posture of the arm 20. The end effector 25 releases the work object and places it in the destination area. After placing the work object in the destination area, the robot 2 moves the end effector 25 onto the source area and holds the next work object in the source area with the end effector 25. The robot 2 then moves the work object held by the end effector 25 from the source area to the destination area. Thereafter, the robot 2 operates in the same manner. The work object is also called, for example, a workpiece. The control system 6 controls the movement of the robot 2 and can cause the robot 2 to perform the task.

[0010] The arm 20 includes, for example, a plurality of joints 200 (see FIG. 4 described below) and a plurality of links (in other words, arms). Each joint 200 includes a drive unit, such as a motor, that rotates the joint 200. The arm 20 includes, for example, six joints 200. The arm 20 has, for example, six degrees of freedom. The robot 2 can change the posture of the arm 20 by changing the rotation angle of at least one of the six joints 200. The arm control unit 3 can control the rotation angle of each joint 200 in accordance with an instruction from the control system 6. In other words, the control system 6 can control the rotation angle of each joint 200 through the arm control unit 3. Hereinafter, the six joints 200 may be referred to as a first joint 200, a second joint 200, a third joint 200, a fourth joint 200, a fifth joint 200, and a sixth joint 200, respectively.

[0011] The end effector 25 includes, for example, a holding mechanism for holding an object and a drive unit for driving the holding mechanism. The holding mechanism includes, for example, a plurality of fingers for gripping the object. The drive unit includes, for example, a motor. The holding mechanism may also include at least one suction pad for adsorbing the object. In this case, the drive unit may include, for example, a vacuum pump.

[0012] FIG. 2 is a schematic diagram showing an example of the robot 2 and its surroundings. The object 10 is transported to a predetermined location by, for example, a belt conveyor 17. The belt conveyor 17 transports the object 10 from, for example, outside a work range (also referred to as a work space) 290 of the robot 2 to a predetermined location within the work range 290. The belt conveyor 17 sequentially transports multiple objects 10 to the predetermined location. This predetermined location serves as a source area. The robot 2 moves the object 10 located at the predetermined location to a tray 16, which serves as a destination area. The tray 16 is placed on, for example, a work table 18. The robot 2 holds the object 10 located at the predetermined location with the end effector 25. Then, the robot 2 moves the arm 20 with the end effector 25 holding the object 10 to the tray 16. The robot 2 causes the end effector 25 to release the object 10 and place the object 10 on the tray 16. When the robot 2 has completed moving the object 10, it moves the end effector 25 to above the source area, and holds the next object 10 that has been transported to the source area by the belt conveyor 17 while moving to the tray 16. The tray 16 may be placed on a belt conveyor separate from the belt conveyor 17.

[0013] The object movement task of the robot 2 can be divided, for example, into the task of the end effector 25 and the task of the arm 20. The task of the end effector 25 is, for example, to hold and release the object 10. The task of the arm 20 is, for example, to move the object 10 held by the end effector 25 from a source area to a destination area.

[0014] Note that the work performed by the robot 2 is not limited to the above example. Furthermore, the source area and the destination area are not limited to the above example. For example, at least one of the source area and the destination area may be a shelf on which the target object 10 is placed, or a platform on which the target object 10 is directly placed.

[0015] <Configuration Example of Control System> Fig. 3 is a schematic diagram showing an example of the configuration of the control system 6. The control system 6 is, for example, a computer device, and can also be called a control device or a control circuit. As shown in Fig. 3, the control system 6 includes, for example, a control unit 60, a first camera interface 61, a second camera interface 62, a PLC interface 63, a storage unit 65, an RTC (Real Time Clock) 66, an input unit 67, and a communication unit 68.

[0016] The RTC 66 is capable of measuring the current time and outputs time data indicating the current time to the control unit 60.

[0017] The first camera interface 61 is capable of communicating with the first camera 11. The second camera interface 62 is capable of communicating with the second camera 12. The PLC interface 63 is capable of communicating with the PLC 13. The first camera interface 61, the second camera interface 62, and the PLC interface 63 can each be referred to as, for example, an interface circuit, a communication unit, or a communication circuit. The first camera interface 61, the second camera interface 62, and the PLC interface 63 may communicate with each other via wired communication or wireless communication.

[0018] The communication unit 68 can communicate with, for example, the arm control unit 3. The control unit 60 can control the arm control unit 3 through the communication unit 68. The communication unit 68 can also be called, for example, a communication circuit, an interface, or an interface circuit. The communication unit 68 performs wired communication with the robot 2 in accordance with, for example, EtherCAT (registered trademark). Note that the communication unit 68 may also be in accordance with a communication standard other than EtherCAT. The communication unit 68 may also perform wireless communication.

[0019] The control unit 60 can generally manage the operation of the control system 6 by controlling the other components of the control system 6. The control unit 60 can also be referred to as a control circuit, for example. The control unit 60 includes at least one processor to provide control and processing power for performing various functions, as described in more detail below.

[0020] According to various embodiments, the at least one processor may be implemented as a single integrated circuit (IC) or as multiple communicatively connected integrated circuits ICs and / or discrete circuits. The at least one processor may be implemented according to various known techniques.

[0021] In one embodiment, a processor includes one or more circuits or units configured to perform one or more data computational procedures or processes, for example, by executing instructions stored in associated memory. In other embodiments, a processor may be firmware (e.g., discrete logic components) configured to perform one or more data computational procedures or processes.

[0022] According to various embodiments, the processor may include one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits (ASICs), digital signal processors, programmable logic devices, field programmable gate arrays, or any combination of these devices or configurations, or other known devices and configurations, to perform the functions described below.

[0023] The control unit 60 may include, for example, a CPU (Central Processing Unit) as a processor. The CPU of the control unit 60 includes, for example, a multi-core 60a and a timer 60b. The multi-core 60a is composed of multiple cores that can operate asynchronously with each other. The multiple cores can operate in parallel. A CPU with multiple cores is also called a multi-core CPU or multi-core processor. The timer 60b can measure a fixed time based on time data from the RTC 66. The multi-core 60a can set the fixed time that the timer 60b measures for the timer 60b.

[0024] The storage unit 65 may include a non-transitory recording medium readable by the multi-core 60a of the control unit 60, such as a read-only memory (ROM) or a random access memory (RAM). The storage unit 65 stores, for example, a program 65a for controlling the control system 6. Various functions of the control unit 60 are realized, for example, by the multi-core 60a executing the program 65a in the storage unit 65.

[0025] In addition to the program 65a, the storage unit 65 stores, for example, robot data and object data used in controlling the robot 2. The robot data is data related to the robot 2. The robot data includes, for example, data representing the shape of the robot 2. The object data is data related to an object. The object data includes, for example, data representing the shape of the object.

[0026] The configuration of the control unit 60 is not limited to the above example. For example, the control unit 60 may include multiple CPUs. The control unit 60 may also include at least one DSP (Digital Signal Processor). All or some of the functions of the control unit 60 may be implemented by a hardware circuit that does not require software to implement the function. The storage unit 65 may also include a computer-readable non-transitory recording medium other than ROM and RAM. The storage unit 65 may also include, for example, a small hard disk drive or SSD (Solid State Drive).

[0027] The input unit 67 can accept various inputs from the user. The input unit 67 may include, for example, a mouse and a keyboard. The input unit 67 may also include a touch sensor that accepts touch operations by the user. In this case, if the control system 6 includes a display unit such as a liquid crystal display, the display unit and the touch sensor may form a touch panel display having a display function and a touch detection function. The input unit 67 may also include a microphone that accepts voice input from the user. The control unit 60 can recognize the content of the user input accepted by the input unit 67 based on the output signal from the input unit 67. Note that, if the control system 6 includes a communication unit that communicates with an external device, the control system 6 may accept input from the user through the communication unit.

[0028] The control system 6 may be configured with multiple computer devices. The control system 6 may also be configured with a cloud server. In this case, the control system 6 may be able to communicate with other components via a network including the Internet, for example.

[0029] 4 and 5 are schematic diagrams showing detailed examples of the configuration of the arm control unit 3, effector control unit 4, arm sensor unit 50, and effector sensor unit 55. The arm sensor unit 50 outputs arm state detection data 50a indicating its own detection results to the arm control unit 3. The arm state detection data 50a is data indicating the state of the arm 20. The effector sensor unit 55 outputs effector state detection data 55a indicating its own detection results to the effector control unit 4. The effector state detection data 55a is data indicating the state of the end effector 25.

[0030] The arm control unit 3 can also be referred to as, for example, an arm control circuit. The arm control unit 3 includes a plurality of joint control units 3a that respectively control a plurality of joints 200. The joint control units 3a are capable of controlling the motors included in the joints 200. Each joint control unit 3a is, for example, a computer device. The joint control unit 3a can also be referred to as, for example, a joint control circuit. As shown in FIG. 5 , each joint control unit 3a includes, for example, a control unit 30, a storage unit 35, and a communication unit 38.

[0031] The effector control unit 4 is, for example, a computer device. The effector control unit 4 can also be referred to as, for example, a hand control circuit. As shown in FIG. 5 , the effector control unit 4 includes, for example, a control unit 40, a storage unit 45, and a communication unit 48.

[0032] The communication units 38 and 48 are capable of performing wired communication in accordance with, for example, EtherCAT, similar to the communication unit 68 of the control system 6. The communication units 38 and 48 can also be referred to as, for example, interfaces or interface circuits.

[0033] The communication unit 68 of the control system 6, the communication units 38 of the joint control units 3a, and the communication unit 48 of the effector control unit 4 are connected, for example, by a daisy chain, and are capable of communicating with each other. The communication unit 68 is connected by wire to the communication unit 38 of one of the joint control units 3a. The communication unit 48 of the hand control unit 604 is connected by wire to the communication unit 38 of another of the joint control units 3a. The control unit 60 of the control system 6 is capable of controlling each of the joint control units 3a through the communication unit 68. It can also be said that the control unit 60 is capable of controlling the arm 20 through the communication unit 68 and the arm control unit 3. It can also be said that the control unit 60 is capable of controlling the effector control unit 4 through the communication unit 68 and the arm control unit 3. It can also be said that the control unit 60 is capable of controlling the end effector 25 through the communication unit 68, the arm control unit 3, and the effector control unit 4. Like the communication unit 68, the communication units 38 and 48 may conform to a communication standard other than EtherCAT or may perform wireless communication.

[0034] The control unit 30 included in the joint control unit 3a is capable of overall management of the operation of the joint control unit 3a by controlling the other components of the joint control unit 3a. Furthermore, the control unit 40 included in the effector control unit 4 is capable of overall management of the operation of the effector control unit 4 by controlling the other components of the effector control unit 4. The control units 30 and 40 may also be referred to as, for example, control circuits. The control units 30 and 40 include at least one processor to provide control and processing capabilities for executing various functions, as will be described in further detail below. The above description of the processor included in the control unit 60 of the control system 6 also applies to the processor included in the control units 30 and 40. The control units 30 and 40 may include, for example, a CPU as a processor.

[0035] The memory unit 35 included in the joint control unit 3a may include a non-transitory recording medium such as a ROM or a RAM that can be read by the CPU of the control unit 30. For example, a program 35a for controlling the joint control unit 3a is stored in the memory unit 35. Various functions of the control unit 30 are realized, for example, by the CPU of the control unit 30 executing the program 35a in the memory unit 35.

[0036] The storage unit 45 included in the effector control unit 4 may include a non-transitory recording medium such as a ROM or RAM that can be read by the CPU of the control unit 40. The storage unit 45 stores, for example, a program 45a for controlling the effector control unit 4. The various functions of the control unit 40 are realized, for example, by the CPU of the control unit 40 executing the program 45a in the storage unit 45.

[0037] The configuration of the control units 30 and 40 is not limited to the above example. For example, the control units 30 and 40 may each include multiple CPUs. The control units 30 and 40 may also include at least one DSP. All or some of the functions of the control unit 30 may be realized by a hardware circuit that does not require software to realize the function. The same applies to the control unit 40. Similarly to the storage unit 65, the storage units 35 and 45 may each include a computer-readable non-transitory recording medium other than ROM and RAM.

[0038] As shown in Fig. 4, the arm sensor section 50 includes, for example, a plurality of joint sensor sections 51 that respectively detect the states of a plurality of joints 200. In the robot system 1, as shown in Fig. 5, one joint 200, a joint control section 3a that controls the one joint 200, and a joint sensor section 51 that detects the state of the one joint 200 constitute one joint unit 100. The robot system 1 includes, for example, six joint units 100.

[0039] Each joint sensor unit 51 includes, for example, a current sensor 511, a torque sensor 512, and an encoder 513. The current sensor 511 can repeatedly detect a current flowing through the joint 200 (also referred to as a joint current). Specifically, the current sensor 511 can repeatedly detect a current flowing through the motor of the joint 200. The torque sensor 512 can repeatedly detect a torque applied to the joint 200 (also referred to as a joint torque). Specifically, the torque sensor 512 can repeatedly detect a torque applied to the motor of the joint 200. The encoder 513 can repeatedly detect a rotation angle of the joint 200 (also referred to as a joint rotation angle), specifically, a rotation angle of the motor of the joint 200. The joint sensor unit 51 outputs joint state detection data 51a indicating its own detection results. The joint state detection data 51a is data indicating the detected state of the joint 200. The joint state detection data 51a includes joint current detection data indicating a detected joint current (also referred to as a detected joint current), joint torque detection data indicating a detected joint torque (also referred to as a detected joint torque), and joint rotation angle detection data indicating a detected joint rotation angle (detected joint rotation angle). The joint sensor unit 51 repeatedly outputs the joint state detection data 51a. The arm state detection data 50a output by the arm sensor unit 50 includes joint state detection data 51a output by the six joint sensor units 51. In each joint unit 100, as shown in FIG. 5 , the joint state detection data 51a output by the joint sensor unit 51 is input to the joint control unit 3a.

[0040] Furthermore, in each joint unit 100, the control unit 30 of the joint control unit 3a repeatedly calculates a joint current (also referred to as an estimated joint current) estimated to be required to set the rotation angle of the joint 200 to a target rotation angle. Then, the control unit 30 repeatedly generates joint state estimation data 51b indicating the calculated estimated joint current. In each joint unit 100, the joint control unit 3a controls the rotation of the joint 200 based on the joint state detection data 51a and the joint state estimation data 51b.

[0041] In each joint unit 100, the communication unit 38 transmits the joint state detection data 51 a input to the joint control unit 3 a and the joint state estimation data 51 b generated by the control unit 30. This allows the communication unit 68 of the control system 6 to receive the joint state detection data 51 a and the joint state estimation data 51 b obtained in each joint unit 100. The control unit 60 of the control system 6 can receive the joint state detection data 51 a and the joint state estimation data 51 b obtained in each joint unit 100 from the communication unit 68. The control unit 60 stores the received joint state detection data 51 a and the joint state estimation data 51 b in the storage unit 65.

[0042] 4 , the effector sensor unit 55 includes, for example, a contact sensor 551 and a force sensor 552. The contact sensor 551 is provided, for example, in the holding mechanism of the end effector 25. The contact sensor 551 can, for example, repeatedly detect the gripping force of the end effector 25 on the target object 10. The contact sensor 551 is also referred to as, for example, a force sensor. The contact sensor 551 may be, for example, an electrical resistance type, an electrostatic capacitance type, a piezoelectric type, or an optical type.

[0043] The force sensor 552 is provided, for example, at the wrist portion of the end effector 25. The force sensor 552 is capable of repeatedly detecting, for example, a force applied to the end effector 25. The force sensor 552 may be, for example, a six-axis force sensor. The force sensor 552 may be, for example, an electrical resistance type, an electrostatic capacitance type, a piezoelectric type, or an optical type.

[0044] The effector state detection data 55a output by the effector sensor unit 55 includes data indicating the detection result of the contact sensor 551 and data indicating the detection result of the force sensor 552. In other words, the effector state detection data 55a includes data indicating the detected gripping force of the end effector 25 on the object 10 and data indicating the detected force acting on the end effector 25.

[0045] The effector state detection data 55a output by the effector sensor section 55 is input to the effector control section 4. The control section 40 of the effector control section 4 controls the operation of the end effector 25 based on the effector state detection data 55a.

[0046] The communication unit 48 transmits the effector state detection data 55a input to the effector control unit 4. This allows the communication unit 68 of the control system 6 to receive the effector state detection data 55a output by the effector sensor unit 55. The control unit 60 of the control system 6 can receive the effector state detection data 55a output by the effector sensor unit 55 from the communication unit 68. The control unit 60 stores the received effector state detection data 55a in the memory unit 65.

[0047] <First Camera and Second Camera> The first camera 11 is, for example, a three-dimensional camera. The first camera 11 captures a first imaging range AR1 (see FIG. 6 , described later) and generates, for example, a two-dimensional color image and a distance image. Each pixel value of the color image includes, for example, an R component (red component), a G component (green component), and a B component (blue component). Such a color image is also called an RGB image. The color image captures the first imaging range AR1. The distance image is an image that two-dimensionally represents the distance to each measurement point included in the first imaging range AR1. Each pixel value of the distance image indicates the distance to the measurement point corresponding to that pixel value. The distance image is also called a depth image. The first camera 11 outputs first image data 110 (see FIG. 1 ) representing the first camera image, including the color image and the distance image, to the control system 6. In the control system 6, the control unit 60 stores the first image data 110 received by the first camera interface 61 in the storage unit 65. As will be described later, the control unit 60 detects obstacles that may hinder the operation of the robot 2 and are present within the first imaging range AR1 based on the first camera image indicated by the first image data 110.

[0048] The second camera 12 is, for example, a three-dimensional camera. The second camera 12 captures an image of a second capturing range AR2 (see FIG. 6 described below) and generates, for example, a two-dimensional color image and a distance image, similar to the first camera 11. The second camera 12 outputs second image data 120 (see FIG. 1 ) representing the second camera image including the color image and the distance image to the control system 6. In the control system 6, the control unit 60 stores the second image data 120 received by the second camera interface 62 in the storage unit 65. As will be described later, the control unit 60 detects a person present within the second capturing range AR2 based on the second camera image represented by the second image data 120.

[0049] The first camera 11 and the second camera 12 are capable of capturing, for example, an operation range 290 (see FIG. 1 ) of the robot 2. The second camera 12 is capable of capturing an image of a wider range than the first camera 11. The second camera 12 can also be called a wide-area camera.

[0050] 6 is a schematic diagram showing an example of the relationship between the first capturing range AR1 of the first camera 11 and the second capturing range AR2 of the second camera 12. As shown in FIG. 6, the first capturing range AR1 includes a working range 290 of the robot 2. The first capturing range AR1 may be the same as the working range 290, or may be larger than the working range 290. The second capturing range AR2 is, for example, larger than the first capturing range AR1 and includes the first capturing range AR1. The second camera 12 is capable of capturing images of, for example, the working range 290 and its surrounding range.

[0051] The relationship between the first imaging range AR1 and the second imaging range AR2 is not limited to the example shown in Fig. 6. For example, the second imaging range AR2 may include only a portion of the first imaging range AR1. For example, if a safety fence is provided that partially surrounds the periphery of the robot 2, and there is an area in the first imaging range AR1 that humans cannot enter, the second imaging range AR2 does not need to include that area.

[0052] <Regarding the PLC> The PLC 13 can control, for example, the belt conveyor 17 that transports the object 10. The PLC 13 controls the belt conveyor 17 in response to instructions from the control system 6. The control system 6 can control the belt conveyor 17 through the PLC 13. The PLC 13 can operate the belt conveyor 17 or stop the operation of the belt conveyor 17. The PLC 13 may also be able to adjust the transport speed of the belt conveyor 17. The PLC 13 causes the belt conveyor 17 to transport the object 10 to a predetermined location within the work range 290. The PLC 13 outputs, for example, status data 130 indicating the status of the belt conveyor 17 and the status of the PLC 13 itself to the control system 6. In the control system 6, the control unit 60 stores the status data 130 received by the PLC interface 63 in the storage unit 65. Note that the object controlled by the PLC 13 may be something other than the belt conveyor 17.

[0053] 7 is a schematic diagram illustrating an example of the configuration of the control system 6, focusing on the functional aspects. The control unit 60 of the control system 6 has, as functional blocks, a plurality of control-related processing units 640, 641, 642, 643, 644, 645, 646, 647, and 648 that perform processing related to the control of the robot 2, and a robot control unit 600 that controls the robot 2 based on a plurality of output data output by the plurality of control-related processing units 640, 641, 642, 643, 644, 645, 646, 647, and 648. Each of the control-related processing units 640, 641, 642, 643, 644, 645, 646, 647, and 648 and the robot control unit 600 is realized, for example, by the multi-core 60a of the control system 6 executing a program 65a in the storage unit 65. Each of the control-related processing units 640 , 641 , 642 , 643 , 644 , 645 , 646 , 647 , and 648 can also be said to be a processing unit that outputs data necessary for controlling the robot 2 .

[0054] The control-related processing units 640, 641, 642, 643, 644, 645, 646, 647, and 648 and the robot control unit 600 implemented by the multi-core 60a operate asynchronously with one another. The control-related processing units 640, 641, 642, 643, 644, 645, 646, 647, and 648 and the robot control unit 600 can also operate in parallel. Each of the control-related processing units 640, 641, 642, 643, 644, 645, 646, 647, and 648 can output data at its own timing. Each of the control-related processing units 640, 641, 642, 643, 644, 645, 646, 647, and 648 and the robot control unit 600 is implemented by at least one of the cores that make up the multi-core 60a.

[0055] All or some of the functions of the robot control unit 600 may be realized by hardware circuits that do not require software to realize the functions. The same applies to the control-related processing units 640, 641, 642, 643, 644, 645, 646, 647, and 648.

[0056] Hereinafter, when there is no need to particularly distinguish between the control-related processing units 640, 641, 642, 643, 644, 645, 646, 647, and 648, they may be simply referred to as control-related processing units. Furthermore, a control-related processing unit that executes processing based on the output from the robot control unit 600 may be referred to as a downstream control-related processing unit, and a control-related processing unit that executes processing regardless of the output from the robot control unit 600 may be referred to as an upstream control-related processing unit. In this embodiment, as will be understood later, the control-related processing units 640, 641, 642, 643, 644, 645, and 646 are upstream control-related processing units, and the control-related processing units 647 and 648 are downstream control-related processing units.

[0057] In this way, when the multiple control-related processing units and the robot control unit 600 operate asynchronously with each other, each of the multiple control-related processing units and the robot control unit 600 is less susceptible to the operation of the other components. This makes it easier to design or modify the control system 6. For example, it becomes easier to add or remove control-related processing units. In other words, multiple devices with different specifications can be easily connected to the robot control unit 600, making it easier to replace devices installed around the robot 2 or to use any device.

[0058] The control-related processing unit 640 functions as a host control unit 640 that issues instructions to the robot control unit 600. The robot control unit 600 controls the robot 2 in accordance with the instructions of the host control unit 640. The host control unit 640 issues instructions to the robot control unit 600 in accordance with, for example, a user input received by the input unit 67.

[0059] The control-related processing unit 641 functions as a recognition unit 641 that performs a recognition process (also referred to as a recognition operation) to recognize the start position (also referred to as a movement start position) of the movement motion of the arm 20 and the end position (also referred to as a movement end position) of the movement motion of the arm 20 based on the first camera image indicated by the first image data 110. The recognition unit 641, for example, repeatedly executes the recognition process. The recognition unit 641 may recognize the movement start position and the movement end position of the arm 20 using an artificial intelligence function such as machine learning. In the control system 6, the position of the arm 20 is represented by the posture of the arm 20. That is, the position of the arm 20 is represented by the rotation angle of each joint 200 of the arm 20. The movement end position can also be referred to as a stop position where the arm 20 stops. Note that the recognition unit 641 may recognize only the movement end position of the movement start position and the movement end position based on the first camera image.

[0060] Here, among the operations of the robot 2 (also referred to as robot operations), an operation in which the end effector 25 holds the object 10 in the source area is referred to as a holding operation. Furthermore, among the robot operations, an operation in which the arm 20 moves toward the destination area while the object 10 is held by the end effector 25 is referred to as a holding / moving operation. Furthermore, among the robot operations, an operation in which the end effector 25 releases the object 10 and places it in the destination area is referred to as a releasing operation. Furthermore, an operation in which the end effector 25 places the object 10 in the destination area and then the arm 20 moves toward the source area without the end effector 25 holding the object 10 is referred to as a non-holding / moving operation. The holding / moving operation and non-holding / moving operation of the robot 2 can also be considered as posture change operations of the arm 20. The holding / releasing operation are operations of the end effector 25, and the holding / moving operation and non-holding / moving operation are operations of the arm 20.

[0061] The movement start position of the arm 20 may be, for example, the position of the arm 20 when the holding and moving operation starts, and the movement end position of the arm 20 may be the position of the arm 20 when the holding and moving operation ends. In this case, the movement start position of the arm 20 may be, for example, the position of the arm 20 when switching is performed from a program controlling the holding operation to a program controlling the holding and moving operation. Also, the movement end position of the arm 20 may be, for example, the position of the arm 20 when switching is performed from a program controlling the holding and moving operation to a program controlling the release operation. The program controlling the holding and releasing operations is, for example, included in the program 45a in the memory unit 45 of the effector control unit 4 and executed by the control unit 40. Also, the program controlling the holding and moving operation is, for example, included in the program 65a in the memory unit 65 of the control system 6 and executed by the control unit 60.

[0062] The movement start position of the arm 20 may be, for example, the position of the arm 20 when the non-holding movement operation starts, and the movement end position of the arm 20 may be the position of the arm 20 when the non-holding movement operation ends. In this case, the movement start position of the arm 20 can also be said to be, for example, the position of the arm 20 when switching is performed from a program controlling a release operation to a program controlling a non-holding movement operation. Also, the movement end position of the arm 20 can also be said to be, for example, the position of the arm 20 when switching is performed from a program controlling a non-holding movement operation to a program controlling a holding operation. The program controlling the non-holding movement operation is included in, for example, program 65a in the storage unit 65 of the control system 6, and is executed by the control unit 60.

[0063] The control-related processing unit 642 functions as an obstacle detection unit 642 that performs obstacle detection processing (also referred to as obstacle detection operation) to detect obstacles that hinder the operation of the robot 2 based on the first camera image represented by the first image data 110. The obstacle detection unit 642 repeatedly executes the obstacle detection processing. The obstacles include at least one object present in the work range 290. Examples of the obstacles include the belt conveyor 17, the tray 16, and the work table 18. The obstacles may also include other objects. For example, the obstacles may include at least one of structures such as walls or pillars, people, chairs, desks, shelves, partitions, safety fences, and lighting fixtures. The obstacle detection unit 642 is capable of detecting obstacles present within the first imaging range AR1. The obstacle detection unit 642 may detect obstacles using, for example, an artificial intelligence function such as machine learning. The first imaging range AR1 can also be referred to as an obstacle detection range. The obstacle detection unit 642 is also capable of detecting moving obstacles.

[0064] The control-related processing section 643 functions as a first sensor processing section 643 that performs processing using the detection result of the first sensor section 50 (in other words, the arm sensor section 50). The first sensor processing section 643 performs processing using the detection result of the arm sensor section 50, that is, the arm state detection data 50a. Hereinafter, the first sensor processing section 643 may be referred to as the arm sensor processing section 643.

[0065] The control-related processing section 644 functions as a second sensor processing section 644 that performs processing using the detection results of the second sensor section 55 (in other words, the effector sensor section 55). The second sensor processing section 644 performs processing using the detection results of the effector sensor section 55, that is, the effector state detection data 55a. Hereinafter, the second sensor processing section 644 may be referred to as the effector sensor processing section 644.

[0066] The control-related processing unit 645 functions as a person detection unit 645 that performs person detection processing (also referred to as person detection operation) to detect people located around the robot 2 based on the second camera image indicated by the second image data 120. The person detection unit 645 repeatedly executes the person detection processing. The person detection unit 645 is capable of detecting people present within the second imaging range AR2. If a person is present both within the second imaging range AR2 and the first imaging range AR1, the person is also detected as an obstacle by the obstacle detection unit 642. The person detection unit 645 may detect people using, for example, an artificial intelligence function such as machine learning. The second imaging range AR2 can also be referred to as a person detection range. Hereinafter, the second imaging range AR2 may be referred to as a person detection range AR2.

[0067] The control-related processing unit 646 functions as a PLC control unit 646 that controls the PLC 13. The PLC control unit 646 can control the belt conveyor 17 through the PLC 13.

[0068] The control-related processing unit 647 functions as a communication control unit 647 that controls the communication unit 68. The communication control unit 647 can cause the communication unit 68 to transmit data. The communication control unit 647 can also receive data received by the communication unit 68 from the communication unit 68 and store the received data in the storage unit 65.

[0069] The control-related processing unit 648 functions as a motion planning unit 648 that executes a target motion creation process that creates a target motion of the arm 20. Creating a target motion of the arm 20 can be said to be planning a target motion of the arm 20, or creating a target motion of the arm 20. In the target motion creation process, the motion planning unit 648 creates a target motion of the arm 20, for example, from a movement start position to a movement end position. Hereinafter, creating a target motion of the arm 20 may be simply referred to as target motion creation. The target motion of the arm 20 can also be said to be a target motion of the robot 2.

[0070] In the desired motion creation process, the motion planning unit 648 creates, for example, a motion path for the arm 20. Then, the motion planning unit 648 creates a target motion for the arm 20 based on the created motion path (also referred to as a created motion path). For example, the motion planning unit 648 creates a target motion for each joint 200 of the arm 20 based on the created motion path. Specifically, the motion planning unit 648 sets a target rotation angle at each time for each joint 200.

[0071] The robot control unit 600 does not exchange data directly with each control-related processing unit, but exchanges data through the storage unit 65 .

[0072] The memory unit 65 includes a memory area 650 to which the upper control unit 640 writes data, a memory area 651 to which the recognition unit 641 writes data, a memory area 652 to which the obstacle detection unit 642 writes data, a memory area 653 to which the first sensor processing unit 643 writes data, and a memory area 654 to which the second sensor processing unit 644 writes data. The memory unit 65 also includes a memory area 656 to which the PLC control unit 646 writes data, a memory area 657 to which the communication control unit 647 writes data, and memory areas 658 and 659 to which the action planning unit 648 writes data. The memory unit 65 also includes memory areas 667, 668, and 669 to which the robot control unit 600 writes data.

[0073] The robot control unit 600 does not acquire the output data of each control-related processing unit directly from each control-related processing unit, but reads the data from memory areas 650, 651, 652, 653, 654, 655, 656, 657, and 658 to acquire the output data of each control-related processing unit.

[0074] The robot control unit 600 writes data addressed to the communication control unit 647 to a memory area 667. The memory area 667 is a separate memory area from the memory areas 650, 651, 652, 653, 654, 655, 656, 657, and 658. The communication control unit 647 does not directly acquire the data addressed to the communication control unit 647 that is output by the robot control unit 600 from the robot control unit 600, but reads the data from the memory area 667 and acquires the data addressed to the communication control unit 647 that is output by the robot control unit 600.

[0075] The robot control unit 600 writes data addressed to the motion planning unit 648 in a memory area 668. The motion planning unit 648 does not directly acquire the data addressed to the motion planning unit 648 output by the robot control unit 600 from the robot control unit 600, but reads the data from the memory area 668 and acquires the data addressed to the motion planning unit 648 output by the robot control unit 600. The memory area 668 stores information necessary for the motion planning unit 648 to create the motion of the robot 2. The memory area 668 stores, for example, robot data and object data used in the desired motion creation process.

[0076] The operation planning unit 648 writes data to be transmitted by the communication unit 68 to the arm control unit 3 in the storage area 659. The communication control unit 647 reads data from the storage area 659 and causes the communication unit 68 to transmit the read data.

[0077] The robot control unit 600 is capable of controlling the movement operation of the robot 2 based on output data from a plurality of control-related processing units. That is, the robot control unit 600 is capable of controlling the movement of the arm 20 based on output data from a plurality of control-related processing units. For example, the robot control unit 600 is capable of controlling the holding movement operation of the arm 20, i.e., the movement of the arm 20 in a state where the end effector 25 holds the object 10. The robot control unit 600 is also capable of controlling the non-holding movement operation of the arm 20, i.e., the movement of the arm 20 in a state where the end effector 25 does not hold the object 10. Hereinafter, the holding movement and non-holding movement of the arm 20 may be collectively referred to as arm movement or arm movement operation.

[0078] The robot control unit 600 includes, for example, a motion control unit 610, a condition determination unit 620, and a read processing unit 630. The motion control unit 610 can control the arm motion (i.e., the holding movement motion and the non-holding movement motion of the arm 20). The motion control unit 610 functions, for example, as a state machine in which the control state of the robot 2 transitions depending on the contents of multiple pieces of output data output by multiple control-related processing units. The motion control unit 610 can execute predetermined processing depending on each of multiple control states of the robot 2 that are preset. The control state of the robot 2 is the state in which the motion control unit 610 controls the robot 2. The motion control unit 610 writes data addressed to the communication control unit 647 to a memory area 667. The motion control unit 610 also writes data addressed to the motion planning unit 648 to a memory area 668.

[0079] The robot control unit 600 operates, for example, periodically. The robot control unit 600 may also start operations at least periodically. In other words, the robot control unit 600 operates, for example, periodically. The operation control unit 610, the condition determination unit 620, and the read processing unit 630 each operate, for example, periodically. The period is set to, for example, 5 ms. In this example, the timer 60b repeatedly measures, for example, 5 ms. The timer 60b outputs a measurement completion notification every time it measures 5 ms. The read processing unit 630 operates periodically by repeatedly receiving the measurement completion notification from the timer 60b. After that, the condition determination unit 620 and the operation control unit 610 can perform the processing subsequent to the read processing unit 630. The operations of the condition determination unit 620 and the operation control unit 610 can also be completed within one period. The robot control unit 600 can perform control operations periodically even if the data written to the storage unit 65 is not updated. In this case, the robot control unit 600 will choose not to update the current control state as a result of data processing, and will not update the data to be written to the storage unit 65 .

[0080] In this way, when the operation control unit 610 that controls the operation of the arm 20 functions as a state machine, the operation control unit 610 can be easily designed or modified.

[0081] The condition determination unit 620 performs condition determination processing to determine whether the maintenance conditions and transition conditions related to the state of the operation control unit 610 are met, based on multiple pieces of output data output by multiple control-related processing units. The state of the operation control unit 610 is maintained or transitions to another state depending on the determination result by the condition determination unit 620. Hereinafter, the state of the operation control unit 610 may be referred to as the control unit state. The control unit state may also be said to be the control state of the robot 2 by the operation control unit 610. Furthermore, the maintenance conditions and transition conditions may be collectively referred to as state conditions.

[0082] The read processing unit 630 reads output data of a plurality of control-related processing units from memory areas 650, 651, 652, 653, 654, 655, 656, 657, and 658 and writes the data to a memory area 669. The read processing unit 630 can read the output data of a plurality of control-related processing units from memory areas 650, 651, 652, 653, 654, 655, 656, 657, and 658 at the timing of the read processing unit 630, at a predetermined cycle (e.g., 5 ms). The condition determination unit 620 reads the output data of a plurality of control-related processing units from the memory unit 65 and determines whether the maintenance condition and transition condition related to the state of the operation control unit 610 are satisfied based on the content of the output data of the plurality of control-related processing units read out. Note that the condition determination unit 620 and the operation control unit 610 may be integrated. Alternatively, the condition determination unit 620 and the read processing unit 630 may be integrated. Furthermore, the operation control unit 610, the condition determination unit 620, and the read processing unit 630 may be integrated.

[0083] <Example of Operation of Host Control Unit> The host control unit 640 is capable of controlling the robot control unit 600 through the memory area 650. The host control unit 640 outputs determination data 640a, which is data used in controlling the arm operation (in other words, the arm movement operation) and is data used by the condition determination unit 620 in the condition determination process. The host control unit 640 writes the determination data 640a to the memory area 650. The reading processing unit 630 reads the determination data 640a from the memory area 650 and writes it to the memory area 669.

[0084] The determination data 640a indicates, for example, any one of the following: ready state notification data, operation start request data, pause request data, and stop request data. The ready state notification data, operation start request data, pause request data, and stop request data are represented, for example, in hexadecimal, as 01h, 02h, 04h, and 08h, respectively. The host control unit 640 outputs, depending on the situation, any one of the ready state notification data, operation start request data, pause request data, and stop request data as the determination data 640a. The host control unit 640 repeatedly generates the determination data 640a and writes it to the storage area 650. The host control unit 640 writes the determination data 640a to the storage area 650, for example, at intervals of 100 ms or more and 500 ms or less. When writing new determination data 640a to the storage area 650, the host control unit 640 updates the old determination data 640a in the storage area 650 with the new determination data 640a. The preparation state notification data, operation start request data, temporary stop request data, and stop request data may be converted into hexadecimal data by the robot control unit 600 where they are used. The same applies to data output by control-related processing units other than the upper control unit 640.

[0085] The operation start request data is data in which the host control unit 640 requests the robot control unit 600 to start operation of the arm 20. The temporary stop request data is data in which the host control unit 640 requests the robot control unit 600 to temporarily stop (pause) the arm 20. The stop request data is data in which the host control unit 640 requests the robot control unit 600 to stop (stop) the arm 20. The host control unit 640 outputs operation start request data, temporary stop request data, or stop request data in response to a user instruction received by the input unit 67, for example.

[0086] The ready state notification data is data indicating that the upper control unit 640 is in a ready state. The ready state of the upper control unit 640 is, for example, a state in which the upper control unit 640 is operable and has not output operation start request data, temporary stop request data, or stop request data.

[0087] <Example of Operation of Recognition Unit> When a holding and moving operation of the arm 20 is performed, the recognition unit 641 recognizes, for example, a position of the arm 20 where the tip of the end effector 25 is located slightly above the destination of the object 10 to be transported by the belt conveyor 17, i.e., a predetermined location within the working range 290, as the movement start position. When a holding and moving operation of the arm 20 is performed, the recognition unit 641 recognizes, for example, a position of the arm 20 where the tip of the end effector 25 is located slightly above the tray 16, as the movement end position. On the other hand, when a non-holding and moving operation of the arm 20 is performed, the recognition unit 641 recognizes, for example, a position of the arm 20 where the tip of the end effector 25 is located slightly above the tray 16, as the movement start position. Furthermore, when the arm 20 is moved without being held, the recognition unit 641 recognizes, for example, the position of the arm 20 where the tip of the end effector 25 is located slightly above the destination of the object 10 to be transported by the belt conveyor 17, that is, a predetermined location within the working range 290, as the movement end position. Note that the movement start position and movement end position of the arm 20 are not limited to these, and each of the movement start position and movement end position may be changed. Furthermore, as described above, the recognition unit 641 may recognize only the movement end position of the movement start position and movement end position.

[0088] For example, every time the recognition unit 641 recognizes a new start position of movement, it writes start position data indicating the recognized start position of movement into the storage area 651. In addition, for example, every time the recognition unit 641 recognizes a new end position of movement, it writes end position data indicating the recognized end position of movement into the storage area 651.

[0089] Here, newly recognizing the movement start position includes not only recognizing a movement start position that has changed since the previous recognition process, but also recognizing the movement start position in the recognition process for the first time after starting the control system 6. Newly recognizing the movement start position does not include recognizing the same movement start position as in the previous recognition process.

[0090] Similarly, newly recognizing the movement end point position includes not only recognizing a movement end point position that has changed since the previous recognition process, but also recognizing the movement end point position in the first recognition process after starting the control system 6. Newly recognizing the movement end point position does not include recognizing the same movement end point position as in the previous recognition process.

[0091] The recognition unit 641 also outputs determination data 641a, which is data used in controlling the arm operation and is data used in the condition determination process by the condition determination unit 620. The recognition unit 641 writes the determination data 641a to a memory area 651. The reading processing unit 630 reads the determination data 641a from the memory area 651 and writes it to a memory area 669.

[0092] The determination data 641a indicates, for example, any one of the following: preparation state notification data, in-recognition notification data, recognition completion notification data, and error notification data. The recognition unit 641 outputs, depending on the situation, any one of the preparation state notification data, in-recognition notification data, recognition completion notification data, and error notification data as the determination data 641a. The preparation state notification data, in-recognition data, recognition completion notification data, and error notification data are represented, for example, by hexadecimal values ​​01h, 02h, 04h, and F0h, respectively. The recognition unit 641 repeatedly generates the determination data 641a and writes it to the storage area 651. The recognition unit 641 writes the determination data 641a to the storage area 651 at intervals of, for example, 0.5 seconds or more and 1 second or less. When writing new determination data 641a to the storage area 651, the recognition unit 641 updates the old determination data 641a in the storage area 651 with the new determination data 641a.

[0093] The recognition in progress notification data is data indicating that the recognition unit 641 is performing a recognition process (also referred to as an object recognition process) to newly recognize at least one of the movement start position and the movement end position of the arm 20. The recognition completion notification data is data indicating that the object recognition process has been completed by the recognition unit 641. When the object recognition process is completed, the recognition unit 641 outputs the recognition completion notification data for a predetermined period of time.

[0094] When the recognition unit 641 newly recognizes a movement start position in a certain recognition process, the determination data 641a indicates recognition-in-progress notification data during execution of the certain recognition process. Also, when the recognition unit 641 newly recognizes a movement end position in a certain recognition process, the determination data 641a indicates recognition-in-progress notification data during execution of the certain recognition process. When the recognition unit 641 recognizes the same movement start position and movement end position in a certain recognition process as in the previous recognition process, the determination data 641a does not indicate recognition-in-progress notification data during execution of the certain recognition process. When the determination data 641a indicates recognition-in-progress notification data, the recognition unit 641 is performing recognition processing (i.e., object recognition processing) to newly recognize at least one of the movement start position and movement end position.

[0095] The error notification data is data indicating that an error has occurred in the recognition unit 641. The error notification data can also be said to be data indicating, for example, that the recognition unit 641 is unable to perform recognition processing. The recognition unit 641 outputs the error notification data when an abnormality has occurred in its own operation and it is unable to perform recognition processing. The recognition unit 641 also outputs the error notification data when an abnormality has occurred in communication between the first camera interface 61 and the first camera 11 and it is unable to perform recognition processing based on the first camera image.

[0096] The ready state notification data is data indicating that the recognition unit 641 is in a ready state. The ready state of the recognition unit 641 is, for example, a state in which the recognition unit 641 is operable and is not outputting recognition in progress notification data, recognition completion notification data, or error notification data.

[0097] For example, when the object recognition process starts while the determination data 641a indicates the preparation state notification data, the content of the determination data 641a changes from the preparation state notification data to the recognition in progress notification data. Then, when the object recognition process is completed, the content of the determination data 641a changes to the recognition completion notification data. After that, after a predetermined time has passed, the content of the determination data 641a changes to the preparation state notification data.

[0098] <Example of Operation of Obstacle Detection Unit> The obstacle detection unit 642 generates obstacle data representing the position, shape, and size of a detected obstacle based on the first image data 110. The obstacle data may be, for example, point cloud data (also referred to as obstacle point cloud data) representing the position, shape, and size of an obstacle. The obstacle point cloud data is data representing a point cloud, which is a collection of multiple points representing an obstacle. The obstacle point cloud data includes, for example, position data (also referred to as coordinate data) and color data for each of the multiple points representing an obstacle. The obstacle point cloud data can also be considered data representing the color of the obstacle. The obstacle detection unit 642 writes the generated obstacle data to the memory area 652. The robot control unit 600 reads the obstacle data from the memory area 652 and writes it to the memory area 668. When new obstacle data is written to the memory area 652, the robot control unit 600 updates the obstacle data in the memory area 668 with the new obstacle data.

[0099] For example, the obstacle detection unit 642 writes obstacle data of the detected obstacle to the memory area 652 each time a new obstacle is detected. Here, detecting a new obstacle not only includes detecting an obstacle that has changed since the previous obstacle detection process, but also includes detecting an obstacle in the first obstacle detection process after the control system 6 is started. Detecting a new obstacle does not include detecting the same obstacle as in the previous obstacle detection process. A change in an obstacle means that at least one of the position, shape, and size of the obstacle has changed. The obstacle detection unit 642 detects obstacles at regular intervals. As a result, the obstacle detection unit 642 can also detect the movement of obstacles, and the robot control unit 600 can control the arm operation even in the case of a moving obstacle based on the output of the obstacle detection unit 642.

[0100] The obstacle detection unit 642 also outputs determination data 642a, which is data used in controlling the arm operation and is data used in the condition determination process by the condition determination unit 620. The obstacle detection unit 642 writes the determination data 642a to a memory area 652. The reading processing unit 630 reads the determination data 642a from the memory area 652 and writes it to a memory area 669.

[0101] The determination data 642a indicates, for example, any one of the preparation state notification data, the detection in progress notification data, the detection completion notification data, and the error notification data. The obstacle detection unit 642 outputs, depending on the situation, any one of the preparation state notification data, the detection in progress notification data, the detection completion notification data, and the error notification data as the determination data 642a. The preparation state notification data, the detection in progress notification data, the detection completion notification data, and the error notification data are represented, for example, in hexadecimal as 01h, 02h, 04h, and F0h, respectively. The obstacle detection unit 642 repeatedly generates the determination data 642a and writes it to the memory area 652. The obstacle detection unit 642 writes the determination data 642a to the memory area 652, for example, at intervals of 30 ms or more and 100 ms or less. When writing new determination data 642a to the storage area 652, the obstacle detection unit 642 updates the old determination data 642a in the storage area 652 with the new determination data 642a.

[0102] The detection in progress notification data is data indicating that the obstacle detection unit 642 is performing obstacle detection processing (also referred to as target obstacle detection processing) to newly detect an obstacle. The detection completion notification data is data indicating that the target obstacle detection processing by the obstacle detection unit 642 has been completed. Upon completion of the target obstacle detection processing, the obstacle detection unit 642 outputs the detection completion notification data for a predetermined period of time.

[0103] When the obstacle detection unit 642 detects a new obstacle in a certain obstacle detection process, the determination data 642a indicates in-detection notification data during the execution of that certain obstacle detection process. When the obstacle detection unit 642 recognizes the same obstacle in a certain obstacle detection process as in the previous obstacle detection process, the determination data 642a does not indicate in-detection notification data during the execution of that certain obstacle detection process. When the determination data 642a indicates in-detection notification data, the obstacle detection unit 642 is performing obstacle detection process to newly detect an obstacle (i.e., target obstacle detection process).

[0104] The error notification data is data indicating that an error has occurred in the obstacle detection unit 642. The error notification data can also be said to be data indicating, for example, that the obstacle detection unit 642 is unable to perform obstacle detection processing. The obstacle detection unit 642 outputs the error notification data when an abnormality has occurred in its own operation and it is unable to perform obstacle detection processing. The obstacle detection unit 642 also outputs the error notification data when an abnormality has occurred in communication between the first camera interface 61 and the first camera 11 and it is unable to perform obstacle detection processing based on the first camera image.

[0105] The ready state notification data is data indicating that the obstacle detection unit 642 is in a ready state. The ready state of the obstacle detection unit 642 is, for example, a state in which the obstacle detection unit 642 is operable and is not outputting detection in progress notification data, detection completion notification data, or error notification data.

[0106] For example, when the target obstacle detection process starts while the determination data 642a indicates the preparation state notification data, the content of the determination data 642a changes from the preparation state notification data to the detection in progress notification data. Then, when the target obstacle detection process is completed, the content of the determination data 642a changes to the detection completion notification data. After that, after a predetermined time has passed, the content of the determination data 642a changes to the preparation state notification data.

[0107] <Example of Operation of First Sensor Processing Unit> The first sensor processing unit 643 (in other words, the arm sensor processing unit 643) can perform a first weight determination process that determines the weight of the object 10 held by the end effector 25 based on the arm state detection data 50a. For example, in the first weight determination process, the arm sensor processing unit 643 determines whether the weight of the object 10 held by the end effector 25 is somewhat heavier than its actual value based on the joint state detection data 51a and the joint state estimation data 51b. Also, in the first weight determination process, the arm sensor processing unit 643 determines whether the weight of the object 10 held by the end effector 25 is significantly heavier than its actual value based on the joint state detection data 51a and the joint state estimation data 51b. Hereinafter, the weight of the object 10 may be referred to as the object weight. Also, a state in which the object weight is somewhat heavier than its actual value may be referred to as a slight overweight, and a state in which the object weight is significantly heavier than its actual value may be referred to as a significant overweight.

[0108] Here, the detected joint current detected by the current sensor 511 when the rotation angle of the joint 200 is set to a certain target rotation angle corresponds to the estimated joint current estimated to be necessary for setting the rotation angle of the joint 200 to the certain target rotation angle. The estimated joint current is a joint current estimated assuming that the object weight is an original value.

[0109] The arm sensor processing unit 643 repeatedly calculates, for example, for each joint 200, the absolute value of the difference (also referred to as the absolute difference value) between the detected joint current indicated by the joint state detection data 51a and the estimated joint current indicated by the joint state estimation data 51b corresponding to the detected joint current. The arm sensor processing unit 643 then determines that the object weight is slightly overweight when, for at least one of the multiple joints 200, a state in which the absolute difference value is equal to or greater than a first threshold value continues for a relatively long period of time. For example, the arm sensor processing unit 643 determines that the object weight is slightly overweight when, for at least one of the multiple joints 200, a state in which the absolute difference value is equal to or greater than the first threshold value continues for a first predetermined time. On the other hand, the arm sensor processing unit 643 determines that the object weight is significantly overweight when, for at least one of the multiple joints 200, a state in which the absolute difference value is equal to or greater than a second threshold value continues for a first predetermined time. The second threshold value is set to a value greater than the first threshold value.

[0110] The arm sensor processing unit 643 may determine whether the object weight is slightly overweight in a similar manner using the detected joint torque and the estimated joint torque instead of the detected joint current and the estimated joint current. The arm sensor processing unit 643 may determine whether the object weight is significantly overweight in a similar manner using the detected joint torque and the estimated joint torque instead of the detected joint current and the estimated joint current.

[0111] Furthermore, the arm sensor processing unit 643 performs collision determination processing based on the arm state detection data 50a to determine whether a collision has occurred with the robot 2. Examples of collisions with the robot 2 include a collision of a person or an obstacle with the arm 20 or the end effector 25.

[0112] In the collision determination process, the arm sensor processing unit 643 determines whether a collision with the robot 2 has occurred, for example, based on the joint state detection data 51 a and the joint state estimation data 51 b. The arm sensor processing unit 643, for example, repeatedly calculates the above-mentioned absolute difference value for each joint 200. Then, the arm sensor processing unit 643 determines that a collision with the robot 2 has occurred when a state in which the absolute difference value is equal to or greater than the third threshold value for at least one of the multiple joints 200 continues for a relatively short period of time. For example, the arm sensor processing unit 643 determines that a collision with the robot 2 has occurred when a state in which the absolute difference value is equal to or greater than the third threshold value for at least one of the multiple joints 200 continues for a second predetermined time. The second predetermined time is set to be shorter than the above-mentioned first predetermined time.

[0113] The arm sensor processing unit 643 may use the detected joint torque and the estimated joint torque instead of the detected joint current and the estimated joint current to determine whether a collision with the robot 2 has occurred in a similar manner. The arm sensor processing unit 643 may also have, for example, a pressure sensor on the surface of the arm 20, and use the pressure sensor to determine whether a collision with the robot 2 has occurred in a similar manner. The arm sensor processing unit 643 may also have, for example, a non-contact sensor such as an optical sensor on the surface of the arm 20, and use the non-contact sensor to determine whether a collision with the robot 2 has occurred in a similar manner.

[0114] The arm sensor processing unit 643 outputs determination data 643a, which is data used in controlling the arm operation and is data used in the condition determination process by the condition determination unit 620. The arm sensor processing unit 643 writes the determination data 643a to a memory area 653. The reading processing unit 630 reads the determination data 643a from the memory area 653 and writes it to a memory area 669.

[0115] The determination data 643a indicates, for example, any one of preparation state notification data, small overweight notification data, large overweight notification data, collision occurrence notification data, and error notification data. The preparation state notification data, small overweight notification data, large overweight notification data, collision occurrence notification data, and error notification data are represented, for example, in hexadecimal notation, as 01h, 02h, 04h, 08h, and F0h, respectively. The arm sensor processing unit 643 outputs, depending on the situation, any one of preparation state notification data, small overweight notification data, large overweight notification data, collision occurrence notification data, and error notification data as the determination data 643a. The arm sensor processing unit 643 repeatedly generates the determination data 643a and writes it to the memory area 653. The arm sensor processing unit 643 writes the determination data 643a to the memory area 653, for example, at intervals of 1 ms or more and 10 ms or less. When writing new determination data 643a to the storage area 653, the arm sensor processing unit 643 updates the old determination data 643a in the storage area 653 with the new determination data 643a.

[0116] The slight overweight notification data is data indicating that the weight of the object is slightly overweight. When the arm sensor processing unit 643 determines that the weight of the object is slightly overweight as described above, it outputs the slight overweight notification data.

[0117] The excessive weight notification data is data indicating that the weight of the object is excessively heavy. When the arm sensor processing unit 643 determines that the weight of the object is excessively heavy as described above, it outputs the excessive weight notification data.

[0118] The collision occurrence notification data is data indicating that a collision has occurred with the arm 20. When the arm sensor processing unit 643 determines that a collision with the arm 20 has occurred as described above, it outputs the collision occurrence notification data for a predetermined period of time.

[0119] The error notification data is data indicating that an error has occurred in the arm sensor processing unit 643. The error notification data can also be considered, for example, as data indicating that the arm sensor processing unit 643 is unable to perform at least one of the first weight determination process and the collision determination process. The arm sensor processing unit 643 outputs the error notification data when an abnormality occurs in its own operation and it is unable to perform at least one of the first weight determination process and the collision determination process. The arm sensor processing unit 643 also outputs the error notification data when an abnormality occurs in communication between the communication unit 68 of the control system 6 and the communication unit 38 of the joint control unit 3a and it is unable to acquire the joint state detection data 51a and therefore is unable to perform at least one of the first weight determination process and the collision determination process.

[0120] The ready state notification data is data indicating that the arm sensor processing unit 643 is in a ready state. The ready state of the arm sensor processing unit 643 is, for example, a state in which the arm sensor processing unit 643 is operable and is not outputting small overweight notification data, large overweight notification data, collision occurrence notification data, or error notification data.

[0121] <Example of Operation of Second Sensor Processing Unit> The second sensor processing unit 644 (in other words, the effector sensor processing unit 644) can perform a holding state determination process that determines the holding state of the object 10 in the end effector 25 based on the effector state detection data 55a. For example, in the holding state determination process, the effector sensor processing unit 644 determines whether the end effector 25 has dropped the object 10 based on the effector state detection data 55a. If the gripping force (also referred to as the set gripping force) set in the end effector 25 with respect to the object 10 indicated by the effector state detection data 55a is zero even though the set gripping force is greater than zero, the effector sensor processing unit 644 determines that the end effector 25 has dropped the object 10. The set gripping force is notified to the control unit 60 of the control system 6 from the effector control unit 4, for example. Furthermore, in the holding state determination process, the effector sensor processing unit 644 determines whether the contact pressure between the end effector 25 and the object 10 is low, based on the effector state detection data 55a. The contact pressure between the end effector 25 gripping the object 10 and the object 10 can also be considered as the gripping force of the end effector 25 on the object 10. The effector sensor processing unit 644 can also be considered as determining whether the gripping force of the end effector 25 on the object 10 is low. When the gripping force indicated by the effector state detection data 55a is greater than zero and equal to or less than a threshold value, the effector sensor processing unit 644 determines that the contact pressure between the end effector 25 and the object 10 is low (in other words, the gripping force of the end effector 25 on the object 10 is low).

[0122] The effector sensor processing unit 644 can also perform a second weight determination process to determine the weight of the object 10 held by the end effector 25 based on the effector state detection data 55a. For example, in the second weight determination process, the effector sensor processing unit 644 determines whether the object weight is slightly overweight based on the effector state detection data 55a. The effector sensor processing unit 644 determines that the object weight is slightly overweight if the force applied to the end effector 25 indicated by the effector state detection data 55a is equal to or greater than a fourth threshold. The fourth threshold is set based on the actual value of the object weight. In the second weight determination process, the effector sensor processing unit 644 also determines whether the object weight is significantly overweight based on the effector state detection data 55a. The effector sensor processing unit 644 determines that the object weight is significantly overweight if the force applied to the end effector 25 indicated by the effector state detection data 55a is equal to or greater than a fifth threshold. The fifth threshold value is set to a value greater than the fourth threshold value based on the original value of the object weight.

[0123] The effector sensor processing unit 644 outputs determination data 644a, which is data used in controlling the arm operation and is data used in the condition determination process by the condition determination unit 620. The effector sensor processing unit 644 writes the determination data 644a to the memory area 654. The reading processing unit 630 reads the determination data 644a from the memory area 654 and writes it to the memory area 669.

[0124] The determination data 644a may represent, for example, any one of the following: preparation status notification data, drop notification data, low contact pressure notification data, small overweight notification data, large overweight notification data, and error notification data. The preparation status notification data, drop notification data, low contact pressure notification data, small overweight notification data, large overweight notification data, and error notification data are represented, for example, in hexadecimal notation, as 01h, 03h, 05h, 07h, 09h, and F0h. The effector sensor processing unit 644 outputs, as the determination data 644a, any one of the preparation status notification data, drop notification data, low contact pressure notification data, small overweight notification data, large overweight notification data, and error notification data, depending on the situation. The effector sensor processing unit 644 repeatedly generates the determination data 644a and stores it in the memory area 654. The effector sensor processing unit 644 writes the determination data 644a to the memory area 654, for example, at intervals of 1 ms or more and 10 ms or less. When writing new determination data 644a to the storage area 654, the effector sensor processing unit 644 updates the old determination data 644a in the storage area 654 with the new determination data 644a.

[0125] The drop notification data is data indicating that the end effector 25 has dropped the target object 10. When the effector sensor processing unit 644 determines whether the end effector 25 has dropped the target object 10 as described above, it outputs the drop notification data.

[0126] The low contact pressure notification data is data indicating that the contact pressure between the end effector 25 and the object 10 is low. When the effector sensor processing unit 644 determines that the contact pressure between the end effector 25 and the object 10 is low as described above, it outputs the low contact pressure notification data.

[0127] The slight overweight notification data is data indicating that the object weight is slightly overweight. When the effector sensor processing unit 644 determines that the object weight is slightly overweight as described above, it outputs the slight overweight notification data.

[0128] The excessive weight notification data is data indicating that the object weight is excessively heavy. When the effector sensor processing unit 644 determines that the object weight is excessively heavy as described above, it outputs the excessive weight notification data.

[0129] The error notification data is data indicating that an error has occurred in the effector sensor processing unit 644. The error notification data can also be interpreted as, for example, data indicating that the effector sensor processing unit 644 is unable to perform at least one of the holding state determination process and the second weight determination process. The effector sensor processing unit 644 outputs the error notification data when an abnormality occurs in its own operation and it is unable to perform at least one of the holding state determination process and the second weight determination process. The effector sensor processing unit 644 also outputs the error notification data when an abnormality occurs in communication between the communication unit 68 of the control system 6 and the communication unit 48 of the effector control unit 4, making it unable to acquire the effector state detection data 55a and therefore unable to perform at least one of the holding state determination process and the second weight determination process.

[0130] The ready state notification data is data indicating that the effector sensor processing unit 644 is in a ready state. The ready state of the effector sensor processing unit 644 is, for example, a state in which the effector sensor processing unit 644 is operable and is not outputting the ready state notification data, drop notification data, low contact pressure notification data, small overweight notification data, large overweight notification data, or error notification data.

[0131] In the above, an example has been described in which the second sensor processing unit 644 performs a holding state determination process to determine the holding state of the object 10 by the end effector 25, but the holding state determination process may also be performed by the effector control unit 4, and the second sensor processing unit 644 may obtain the determination result from the effector control unit 4 and store it in the memory area 654.

[0132] <Example of operation of the person detection unit> The person detection unit 645 outputs determination data 645a, which is data used in controlling the arm operation and data used in the condition determination process by the condition determination unit 620. The person detection unit 645 writes the determination data 645a to the memory area 655. The reading processing unit 630 reads the determination data 645a from the memory area 655 and writes it to the memory area 669.

[0133] The determination data 645a indicates, for example, any one of preparation state notification data, warning notification data, emergency occurrence notification data, and error notification data. The human detection unit 645 outputs any one of preparation state notification data, warning notification data, emergency occurrence notification data, and error notification data as the determination data 645a depending on the situation. The preparation state notification data, warning notification data, emergency occurrence notification data, and error notification data are represented, for example, by 01h, 02h, 04h, and F0h in hexadecimal, respectively. The human detection unit 645 repeatedly generates the determination data 645a and stores it in the memory area 655. The human detection unit 645 writes the determination data 645a to the memory area 655 at intervals of, for example, 30 ms or more and 100 ms or less. When writing new determination data 645a to the memory area 655, the human detection unit 645 updates the old determination data 645a in the memory area 655 with the new determination data 645a.

[0134] The human detection unit 645 outputs either warning notification data or emergency occurrence notification data depending on the danger level of the robot 2 relative to a person present within the human detection range AR2. The warning notification data is data for warning the robot control unit 600 that a person is present within the human detection range AR2. The emergency occurrence notification data is data indicating that an emergency has occurred due to the presence of a person within the human detection range AR2. The human detection unit 645 outputs warning notification data, for example, when the danger level of the robot 2 relative to a person present within the human detection range AR2 is not very high. The human detection unit 645 outputs warning notification data, for example, when a person is present within the human detection range AR2 at a location relatively far from the robot 2. On the other hand, the human detection unit 645 outputs emergency occurrence notification data when the danger level of the robot 2 relative to a person present within the human detection range AR2 is quite high. The human detection unit 645 outputs emergency occurrence notification data, for example, when a person is present within the human detection range AR2 at a location relatively close to the robot 2.

[0135] The error notification data is data indicating that an error has occurred in the person detection unit 645. The error notification data can also be considered, for example, as data indicating that the person detection unit 645 is unable to perform person detection processing. The person detection unit 645 outputs the error notification data when an abnormality occurs in its own operation and the person detection processing is unable to be performed. The person detection unit 645 also outputs the error notification data when an abnormality occurs in communication between the second camera interface 62 and the second camera 12 of the control system 6, making it impossible to acquire the second image data 120 and therefore unable to perform the person detection processing.

[0136] The ready state notification data is data indicating that the human detection unit 645 is in a ready state. The ready state of the human detection unit 645 is, for example, a state in which the human detection unit 645 is operable and is not outputting warning notification data, emergency occurrence notification data, or error notification data.

[0137] <Example of operation of PLC control unit> The PLC control unit 646 outputs determination data 646a, which is data used in controlling the arm operation and is data used in the condition determination process by the condition determination unit 620. The PLC control unit 646 writes the determination data 646a to a memory area 656. The reading processing unit 630 reads the determination data 646a from the memory area 656 and writes it to a memory area 669.

[0138] The determination data 646a indicates, for example, any one of ready state notification data, pause request data, stop request data, and error notification data. The ready state notification data, pause request data, stop request data, and error notification data are represented, for example, in hexadecimal notation, as 01h, 02h, 04h, and F0h, respectively. The PLC control unit 646 outputs, depending on the situation, any one of the ready state notification data, pause request data, stop request data, and error notification data as the determination data 646a. The PLC control unit 646 repeatedly generates the determination data 646a and writes it to the storage area 656. The PLC processing unit 646 writes the determination data 646a to the storage area 656 at intervals of, for example, 50 ms to 200 ms. When writing new determination data 646a to the storage area 656, the PLC control unit 646 updates the old determination data 646a in the storage area 656 with the new determination data 646a.

[0139] The temporary stop request data is data that the PLC control unit 646 uses to request the robot control unit 600 to temporarily stop the arm 20. The stop request data is data that the PLC control unit 646 uses to request the robot control unit 600 to stop the arm 20. The PLC control unit 646 outputs the temporary stop request data or requests the stop request data based on, for example, the status data 130 from the PLC 13.

[0140] The error notification data is data indicating that an error has occurred in the PLC control unit 646. The error notification data can also be said to be data indicating, for example, that the PLC control unit 646 is unable to control the PLC 13. The PLC control unit 646 outputs the error notification data when an abnormality occurs in its own operation and it is unable to control the PLC 13. The PLC control unit 646 also outputs the error notification data when an abnormality occurs in the communication between the PLC interface 63 and the PLC 13 and it is unable to control the PLC 13 through the PLC interface 63.

[0141] The ready state notification data is data indicating that the PLC control unit 646 is in a ready state. The ready state of the PLC control unit 646 is, for example, a state in which the PLC control unit 646 is operable and is not outputting pause request data, stop request data, or error notification data.

[0142] <Example of operation of communication control unit> The communication control unit 647 can, for example, cause the communication unit 68 to transmit generated target motion data generated by the motion planning unit 648. The generated target motion data is data indicating a target motion of the arm 20 generated by the motion planning unit 648. The generated target motion data includes, for example, a target rotation angle at each time for each joint 200. When the motion planning unit 648 creates a target motion of the arm 20, it generates generated target motion data indicating the generated target motion and writes it to the memory area 659. The communication control unit 647 reads the generated target motion data from the memory area 659 and causes the communication unit 68 to transmit the read generated target motion data. The generated target motion data transmitted by the communication unit 68 is input to the arm control unit 3. The arm control unit 3 controls each joint 200 of the arm 20 based on the generated target motion data so that the rotation angle of each joint 200 becomes the target rotation angle.

[0143] The communication control unit 647 also outputs determination data 647a, which is data used in controlling the arm operation and is data used in the condition determination process by the condition determination unit 620. The communication control unit 647 writes the determination data 647a to a memory area 657. The reading processing unit 630 reads the determination data 647a from the memory area 657 and writes it to a memory area 669.

[0144] The determination data 647a indicates, for example, any one of ready state notification data, transmitting notification data, and error notification data. The ready state notification data, transmitting notification data, and error notification data are represented, for example, in hexadecimal, as 01h, 02h, and F0h, respectively. The communication control unit 647 outputs, depending on the situation, any one of the ready state notification data, transmitting notification data, and error notification data as the determination data 647a. The communication control unit 647 repeatedly generates the determination data 647a and stores it in the memory area 657. The communication control unit 646 writes the determination data 647a to the memory area 657, for example, at a cycle shorter than the control cycle of the robot control unit 600. The communication control unit 647 operates, for example, at intervals of 1 ms or more and 2 ms or less. When writing new determination data 647a to the storage area 657, the communication control unit 647 updates the old determination data 647a in the storage area 657 with the new determination data 647a.

[0145] The transmission notification data is data indicating that the target motion data is currently being transmitted by the communication unit 68. The communication control unit 647 outputs the transmission notification data while the communication unit 68 is transmitting the target motion data.

[0146] The error notification data is data indicating that an error has occurred in the communication control unit 647. The error notification data can also be said to be data indicating, for example, that the communication control unit 647 is unable to control the communication unit 68. The communication control unit 647 outputs the error notification data when an abnormality has occurred in its own operation and it is unable to control the communication unit 68. The communication control unit 647 also outputs the error notification data when an abnormality has occurred in the communication between the communication control unit 647 and the communication unit 68 and it is unable to control the communication unit 68.

[0147] The ready state notification data is data indicating that the communication control unit 647 is in a ready state. The ready state of the communication control unit 647 is, for example, a state in which the communication control unit 647 is operable and is not outputting transmission notification data or error notification data.

[0148] <Example of operation of motion planning unit> The motion planning unit 648 creates a target motion for the arm 20 from a certain position to another certain position. Then, the motion planning unit 648 writes the created target motion, i.e., created target motion data indicating the created target motion of the arm 20, into the memory area 659. Hereinafter, this certain position will be referred to as the set start position, and this other certain position will be referred to as the set end position. The set start position can also be said to be the start point of the target motion of the arm 20, and the set end position can also be said to be the end point of the target motion of the arm 20.

[0149] The set start position is set to, for example, the start position of movement. The set end position is set to, for example, the end position of movement. For example, after the robot system 1 is started, when the motion planning unit 648 first creates a target motion for the arm 20, the set start position and the set end position are set to the start position and end position of movement of the holding motion of the arm 20, respectively. As will be described later, the set start position may be set to a position other than the start position of movement, and the set end position may be set to a position other than the end position of movement.

[0150] In this example, as will be described later, after creating a target motion for the arm 20, the motion planning unit 648 may change the target motion of the arm 20 while the arm 20 is moving if, for example, an obstacle changes. Specifically, the motion planning unit 648 may recreate a target motion for the arm 20 from a certain timing in the future while the arm 20 is moving. In this case, the target motion of the arm 20 is changed from that certain timing. Hereinafter, that certain timing may be referred to as a switching timing. In this case, the set start position may be set to the position of the arm 20 at the switching timing (also referred to as a switching timing position).

[0151] Furthermore, as will be described later, the movement control unit 610 may stop the movement of the arm 20 while the arm 20 is moving toward the movement end position. In this case, the movement control unit 610 determines a position (also referred to as a mid-movement stop position) at which the arm 20 will stop while moving toward the movement end position. The movement planning unit 648 then recreates a target movement of the arm 20 from the switching timing until the arm 20 stops at the mid-movement stop position. In this case, the set end position is set to the mid-movement stop position.

[0152] Furthermore, the motion control unit 610 may resume the motion of the arm 20 after the arm 20 has stopped at a mid-movement stopping position. In this case, the set start position is set to the mid-movement stopping position, and the motion planning unit 648 creates a target motion of the arm 20 from a state in which the arm 20 is stopped at the mid-movement stopping position to the set end position.

[0153] In the present disclosure, among the creation of target motions for the arm 20, creation of a target motion for the arm 20 from a certain timing during the movement of the arm 20 is particularly referred to as "recreation." Created target motion data indicating the created target motion is notified to the communication unit 68 via the storage area 659. Therefore, after outputting the created target motion data, the motion planning unit 648 becomes able to create a new target motion. Furthermore, the motion planning unit 648 can create a new target motion in parallel with the movement of the arm 20. Therefore, the recreation of the target motion for the arm 20 can be performed while the arm 20 is moving. In other words, by recreating the target motion for the arm 20, the motion of the arm 20 is changed while the arm 20 is moving. This makes it possible to change the movement of the arm 20 without stopping the movement of the arm 20. Hereinafter, the recreation of the target motion for the arm 20 may be simply referred to as target motion recreation.

[0154] In this way, the set start position is set to the movement start position, the switching timing position, or a movement midway stop position depending on the situation. Also, the set end position is set to the movement end position or a movement midway stop position depending on the situation. Memory area 668 stores set start position data indicating the set start position and set end position data indicating the set end position. The operation control unit 610 updates the set start position data in memory area 668 in response to a change in the set start position. Also, the operation control unit 610 updates the set end position data in memory area 668 in response to a change in the set end position.

[0155] In the target motion creation process, the motion planning unit 648 creates a motion path for the arm 20 from the set start position to the set end position. The motion planning unit 648 creates the motion path for the arm 20 from the set start position to the set end position based on, for example, the set start position data, the set end position data, the robot data, the object data, and the obstacle data in the memory area 668.

[0156] The motion planning unit 648 creates, for example, a motion path that prevents the robot 2 and the object 10 from interfering with an obstacle when the arm 20 moves along the motion path. The motion planning unit 648 determines, based on the robot data, the object data, and the obstacle data, whether the robot 2 and the object 10 will interfere with an obstacle when the arm 20 moves along the motion path.

[0157] The created motion path, which is the motion path created by the motion planning unit 648, is represented, for example, by a plurality of postures that the arm 20 should take. As described above, when the posture of the arm 20 is determined, the position of the arm 20 is also determined, so it can be said that the created motion path is represented by a plurality of positions that the arm 20 should take. The number of multiple postures that represent the created motion path is, for example, several tens. Hereinafter, each of the multiple postures that represent the created motion path will be referred to as a set posture. Furthermore, the time that elapses from the start of motion when the arm 20 moves from the set start position to the set end position will be referred to as a motion elapsed time.

[0158] Each set posture is represented by the target rotation angles of the multiple joints 200 included in the arm 20. In this example, each set posture is represented by the target rotation angles of the six joints 200 of the arm 20. Hereinafter, the set posture of interest (in other words, the set posture to be described) will be referred to as the set posture of interest. Also, the joint 200 of interest will be referred to as the joint 200 of interest.

[0159] After creating a movement path of the arm 20, the motion planning unit 648 determines a movement elapsed time corresponding to a target rotation angle of the joint of interest 200 in a set posture of interest. The movement elapsed time corresponding to the target rotation angle of the joint of interest 200 means the movement elapsed time during which the joint of interest 200 should assume that target rotation angle. The target rotation angle of the joint of interest 200 corresponding to a certain movement elapsed time on the created movement path means the rotation angle that the joint of interest 200 should assume at that certain movement elapsed time. The motion planning unit 648 determines a movement elapsed time corresponding to the target rotation angle of the joint of interest 200 in that set posture for each of a plurality of set postures representing the created movement path. This roughly sets when and what rotation angle the joint of interest 200 should assume when the arm 20 moves along the created movement path. In other words, a rough movement of the joint of interest 200 on the created movement path is set.

[0160] The memory area 668 stores the upper speed limit and the upper acceleration limit of the arm 20. The memory area 668 stores, for example, the upper rotational speed limit of the joint 200 as the upper speed limit of the arm 20. Rotational speed is also called angular velocity. The memory area 668 also stores, for example, the upper rotational acceleration limit of the joint 200 as the upper acceleration limit of the arm 20. Rotational acceleration is also called angular acceleration. As will be described later, the operation control unit 610 writes the upper speed limit and the upper acceleration limit of the arm 20 to the memory area 668.

[0161] The motion planning unit 648 sets the general motion of the joint of interest 200 on the created motion path so that the rotational speed and rotational acceleration of the joint of interest 200 do not exceed the upper rotational speed limit and the upper rotational acceleration limit, respectively. That is, the motion planning unit 648 determines the motion elapsed time corresponding to the target rotation angle of the joint of interest 200 in each set posture so that the rotational speed and rotational acceleration of the joint of interest 200 do not exceed the upper rotational speed limit and the upper rotational acceleration limit, respectively. The motion planning unit 648 determines the motion elapsed time corresponding to the target rotation angle of the joint of interest 200 in the set posture for each of the multiple set postures representing the created motion path, based on the upper rotational speed limit and the upper rotational acceleration limit in the memory area 668. That is, the motion planning unit 648 sets the general motion of the joint of interest 200 on the created motion path based on the upper rotational speed limit and the upper rotational acceleration limit in the memory area 668. The motion planning unit 648 similarly sets the general motion of each joint 200 of the arm 20 on the created motion path. The motion planning unit 648 sets the general motion of each joint 200 of the arm 20 on the created motion path so that, for example, the rotational speed and rotational acceleration of each joint 200 do not exceed the upper limit of the rotational speed and the upper limit of the rotational acceleration, respectively, and so that the arm 20 moves from the set start position to the set end position as quickly as possible. As a result, multiple combinations of motion path time and target rotation angle are obtained for each joint 200 of the arm 20.

[0162] Next, the motion planning unit 648 considers a two-dimensional orthogonal coordinate system (called a specific coordinate system) with the horizontal axis representing the elapsed motion time and the vertical axis representing the target rotation angle corresponding to the elapsed motion time. The motion planning unit 648 plots all combinations of the elapsed motion time and the target rotation angle for the joint of interest 200 in the specific coordinate system. As a result, multiple points representing changes in the target rotation angle of the joint of interest 200 according to the elapsed motion time are set in the specific coordinate system. Each of these multiple points is called a provisional motion point. The number of multiple provisional motion points set in the specific coordinate system matches the number of multiple postures representing the created motion path. Hereinafter, the number of multiple provisional motion points will be represented by N1 (N1 is an integer greater than or equal to 2).

[0163] Next, the motion planning unit 648 sets an interpolation curve that interpolates the N1 provisional motion points of the target joint 200 in the specific coordinate system. The interpolation curve may be, for example, a spline curve or another curve. The interpolation curve may also be, for example, a quintic or higher order curve, or a quartic or lower order curve. The motion planning unit 648 then sets N2 points for the set interpolation curve. Each of these N2 points is referred to as a final motion point. N2 is an integer greater than N1 and is set to, for example, several thousand. The motion planning unit 648 sets, for example, several thousand final motion points for the interpolation curve. The motion elapsed time at the N2 final motion points increases from 0 ms, for example, by 1 ms. By setting the N2 final motion points for the target joint 200, target rotation angles of the target joint 200 at each of the N2 motion elapsed times are set, and a final target motion of the target joint 200 is set. Then, by setting a final target motion for each joint 200, a target motion of the arm 20 is set. It can also be said that the target motion of the arm 20 is set based on the upper speed limit and the upper acceleration limit of the arm 20. The target motion of the arm 20 changes depending on the upper speed limit and the upper acceleration limit of the arm 20.

[0164] The motion planning unit 648 generates generated target motion data indicating a generated target motion of the arm 20 based on the N2 final motion points for each joint 200. FIG. 8 is a schematic diagram showing an example of the generated target motion data 150.

[0165] As shown in Fig. 8, the generated target motion data 150 includes, for example, an index number indicating the elapsed motion time at the final motion point. The index number is an integer that increases by 1 from 0. The smaller the elapsed motion time at the N2 final motion points, the smaller the index number assigned to that elapsed motion time. The index number "0" indicates an elapsed motion time of "0 ms." When the index number increases by "1," the elapsed motion time indicated by the index number increases by 1 ms.

[0166] Furthermore, in the created target motion data 150, each index number is associated with a target rotation angle of each joint 200 at the motion elapsed time indicated by the index number. In Fig. 8, the target rotation angles of the six joints 200 included in the arm 20 are respectively indicated as a first target rotation angle, a second target rotation angle, a third target rotation angle, a fourth target rotation angle, a fifth target rotation angle, and a sixth target rotation angle. If a certain index number and the target rotation angles of each joint 200 associated with that certain index number are collectively referred to as arm motion point data, the created target motion data 150 includes N2 pieces of arm motion point data 151.

[0167] When the action planning unit 648 generates the created target action data 150, it writes the generated created target action data 150 to a memory area 659. Furthermore, the action planning unit 648 writes a leading address indicating the area of ​​the memory area 659 into which the created target action data 150 has been written to a memory area 658. The action control unit 610 reads the leading address of the created target action data 150 from the memory area 658 and writes it to a memory area 667.

[0168] The communication control unit 647 reads the starting address of the created target motion data 150 from the storage area 667. This allows the communication control unit 647 to identify the area in the storage area 659 where the created target motion data 150 is stored. The communication control unit 647 reads arm operating point data 151 for the created target motion data 150 from the storage area 659, for example, every 1 ms, and transmits the data to the communication unit 68. The communication control unit 647 reads the arm operating point data 151 in ascending order starting from index number "0". The multiple target rotation angles included in the arm operating point data 151 transmitted from the communication unit 68 are input to the multiple joint control units 3a of the arm control unit 3, respectively. Each time the joint control unit 3a receives a target rotation angle, it controls the joint 200 so that the rotation angle of the joint 200 becomes the target rotation angle. This controls the rotation angle of each joint 200 to become the target rotation angle every 1 ms.

[0169] In the above example, the motion planning unit 648 sets the target motion of the arm 20 based on the upper acceleration limit and the upper velocity limit of the arm 20. However, the target motion of the arm 20 may be set based only on the upper acceleration limit of the upper acceleration limit and the upper velocity limit of the arm 20. For example, when the distance between the set start position and the set end position is short, the velocity of the arm 20 may not exceed the upper velocity limit as long as the acceleration of the arm 20 is set to be equal to or less than the upper acceleration limit. In other words, the rotational acceleration of each joint 200 may not exceed the upper rotational velocity limit as long as the rotational acceleration of each joint 200 is set to be equal to or less than the upper rotational acceleration limit. In such a case, the motion planning unit 648 may set the target motion of the arm 20 based only on the upper acceleration limit of the upper acceleration limit and the upper velocity limit of the arm 20. For example, the motion planning unit 648 may set the approximate motion of each joint 200 of the arm 20 on the created motion path so that the rotational acceleration of each joint 200 does not exceed the upper rotational acceleration limit and so that the arm 20 moves from the set start position to the set end position as quickly as possible.

[0170] The motion planning unit 648 also outputs determination data 648a, which is data used in controlling the arm motion and is data used in the condition determination process by the condition determination unit 620. The motion planning unit 648 writes the determination data 648a to a memory area 658. The reading processing unit 630 reads the determination data 648a from the memory area 658 and writes it to a memory area 669.

[0171] The determination data 648a indicates, for example, any one of preparation state notification data, setting in progress notification data, setting success notification data, setting failure notification data, and error notification data. The preparation state notification data, setting in progress notification data, setting success notification data, setting failure notification data, and error notification data are represented, for example, in hexadecimal as 01h, 02h, 04h, 09h, and F0h, respectively. The action planning unit 648 outputs, depending on the situation, any one of preparation state notification data, setting in progress notification data, setting success notification data, setting failure notification data, and error notification data as the determination data 648a. The action planning unit 648 repeatedly generates the determination data 648a and stores it in the memory area 658. When writing new determination data 648a to the memory area 658, the action planning unit 648 updates the old determination data 648a in the memory area 658 with the new determination data 648a.

[0172] The setting in progress notification data is data indicating that the motion planning unit 648 is executing the target motion creation process. The setting success notification data is data indicating that the target motion creation process for the arm 20 has been successfully created and the target motion creation process has been completed in the target motion creation process. The setting success notification data can also be considered as creation success notification data. The setting success notification data can also be considered as data indicating that the creation of the target motion for the arm 20 has been completed in the target motion creation process.

[0173] The setting failure notification data is data indicating that creation of a target motion for the arm 20 has failed in the target motion creation process. The setting failure notification data can also be considered to be creation failure notification data. The setting failure notification data can also be considered to be data indicating that the motion planning unit 648 was unable to set a target motion for the arm 20 in the target motion creation process. The setting failure notification data can also be considered to be data indicating that creation of a target motion for the arm 20 was not completed in the target motion creation process. For example, in the target motion creation process, the motion planning unit 648 outputs the setting failure notification data if it is unable to create a motion path that will prevent the robot 2 and the target object 10 from interfering with obstacles when the arm 20 moves along that motion path.

[0174] The error notification data is data indicating that an error has occurred in the action planning unit 648. The error notification data can also be said to be data indicating, for example, that the action planning unit 648 is unable to execute the target action creation process. The action planning unit 648 outputs the error notification data, for example, when an abnormality occurs in its own action and it is unable to execute the target action creation process. The action planning unit 648 also outputs the error notification data, for example, when data necessary for creating the target action, such as set start position data, has not been written in the memory area 668.

[0175] The readiness state notification data is data indicating that the operation planning unit 648 is in a readiness state. The readiness state of the operation planning unit 648 is, for example, a state in which the operation planning unit 648 is operable and is not outputting setting in progress notification data, setting success notification data, setting failure notification data, or error notification data.

[0176] <Example of operation of robot control unit> When the arm 20 is moving while holding the arm 20 and when the arm 20 is moving without holding the arm 20, the reading processing unit 630 reads out judgment data 640a, 641a, 642a, 643a, 644a, 645a, 646a, 647a, and 648a from memory areas 650, 651, 652, 653, 654, 655, 656, 657, and 658, respectively, and stores the data in memory area 669, every third predetermined time.

[0177] Furthermore, the condition determination unit 620 reads the latest determination data 640a, 641a, 642a, 643a, 644a, 645a, 646a, 647a, and 648a from the storage area 669 at third predetermined time intervals. Then, each time the condition determination unit 620 reads the determination data 640a, 641a, 642a, 643a, 644a, 645a, 646a, 647a, and 648a from the storage unit 65, the condition determination unit 620 determines whether a state condition related to the current control unit state is satisfied based on the determination data 640a, 641a, 642a, 643a, 644a, 645a, 646a, 647a, and 648a. However, as will be described later, depending on the current control unit state, the condition determination unit 620 may not determine whether a state condition is satisfied. When a state condition is met, the condition determination unit 620 notifies the operation control unit 610 that the state condition is met. For example, when a maintenance condition for the current control unit state is met, the condition determination unit 620 notifies the operation control unit 610 that the maintenance condition is met. Furthermore, when a transition condition to a certain state is met, the condition determination unit 620 notifies the operation control unit 610 that the transition condition is met.

[0178] The condition determination unit 620 determines the control unit state based on dictionary data, which will be described later. The dictionary data can link the input determination data with the state conditions that the robot 2 should assume. That is, using this dictionary data, the robot control unit 600 can derive the control state of the robot 2 from the determination data and control the robot 2 based on the derived control state. The dictionary data may be pre-stored in the storage unit 65. The dictionary data may also be rewritable depending on the usage environment of the robot 2. This allows the output state conditions to be freely changed by rewriting the dictionary data. The dictionary data can be rewritten, for example, by downloading new dictionary data to a corresponding area of ​​the storage unit 65. Furthermore, if the number of control-related processing units increases, the dictionary data may be rewritten to increase the amount of input determination data accordingly. Furthermore, the dictionary data may define the order in which the conditions are satisfied for the multiple state conditions to be output. This allows the behavior of the robot 2 to be easily changed depending on the usage environment of the robot 2.

[0179] Furthermore, each time the condition determination unit 620 reads the determination data 640a, 641a, 642a, 643a, 644a, 645a, 646a, 647a, and 648a from the storage unit 65 at a third predetermined time interval, the condition determination unit 620 determines a combination of upper speed limits and upper acceleration limits (also referred to as an upper limit combination) of the arm 20 to be used in the desired motion creation process, based on the determination data 640a, 641a, 642a, 643a, 644a, 645a, 646a, 647a, and 648a. The condition determination unit 620 then notifies the motion control unit 610 of the determined upper limit combination. Hereinafter, the upper limit combination to be used in the desired motion creation process determined by the condition determination unit 620 will be referred to as the upper limit combination to be used. The upper speed limits and upper acceleration limits of the arm 20 can also be referred to as the upper speed limits and upper acceleration limits of the robot 2.

[0180] The third predetermined time is set to, for example, 5 ms. As described above, in this example, the timer 60b repeatedly measures, for example, 5 ms. The timer 60b outputs a measurement completion notification every time it measures 5 ms. The read processing unit 630 and the condition determination unit 620 can perform processing every third predetermined time by repeatedly receiving the measurement completion notification from the timer 60b.

[0181] The operation control unit 610 transitions the state depending on the determination result of the condition determination unit 620. When the operation control unit 610 is notified by the condition determination unit 620 that a transition condition to a certain state is met, the operation control unit 610 transitions the control unit state to that certain state. Furthermore, when the operation control unit 610 is notified by the condition determination unit 620 that a maintain state is met, the operation control unit 610 maintains the current control unit state. Furthermore, depending on the current control unit state, the operation control unit 610 may itself determine whether the state condition is met.

[0182] Furthermore, the operation control unit 610 determines whether the upper limit value combination of the target to be used notified by the condition determination unit 620 matches the upper limit value combination in the memory area 668. If the upper limit value combination of the target to be used does not match the upper limit value combination in the memory area 668, the operation control unit 610 updates the upper limit value combination in the memory area 668 with the upper limit value combination of the target to be used. In other words, if the upper limit value notified by the condition determination unit 620 for at least one of the speed upper limit value and the acceleration upper limit value of the arm 20 does not match the upper limit value in the memory area 668, the operation control unit 610 updates the speed upper limit value and the acceleration upper limit value of the arm 20 in the memory area 668 with the speed upper limit value and the acceleration upper limit value of the arm 20 notified by the condition determination unit 620, respectively. On the other hand, if the upper limit value combination of the target to be used notified by the condition determination unit 620 matches the upper limit value combination in the memory area 668, the operation control unit 610 does not update the upper limit value combination in the memory area 668. As a result, the latest combination of the upper speed limit value and the upper acceleration limit value of the arm 20 is stored in the memory area 668. Hereinafter, the upper limit value combination in the memory area 668 may be referred to as the current upper limit value combination.

[0183] Note that, when only the upper acceleration limit value is used among the upper velocity limit value and the upper acceleration limit value of the arm 20 in the target motion creation process, the condition determination unit 620 may determine the upper acceleration limit value of the arm 20 based on the determination data 640a, 641a, 642a, 643a, 644a, 645a, 646a, 647a, and 648a, and notify the determined upper acceleration limit value to the operation control unit 610. In this case, when the upper acceleration limit value notified by the condition determination unit 620 does not match the upper acceleration limit value of the arm 20 in the memory area 668, the operation control unit 610 updates the upper acceleration limit value in the memory area 668 with the upper acceleration limit value notified by the condition determination unit 620.

[0184] Hereinafter, unless there is a need to particularly distinguish between the determination data 640a, 641a, 642a, 643a, 644a, 645a, 646a, 647a, and 648a, they will each be referred to as determination data. Furthermore, the determination data 640a, 641a, 642a, 643a, 644a, 645a, 646a, 647a, and 648a may also be referred to as host control unit data 640a, recognition unit data 641a, obstacle detection unit data 642a, arm sensor processing unit data 643a, effector sensor processing unit data 644a, human detection unit data 645a, PLC control unit data 646a, communication control unit data 647a, and action planning unit data 648a, respectively.

[0185] <Example of Multiple States of Operation Control Unit> Figure 9 is a schematic diagram showing an example of multiple states that the operation control unit 610 can take when the operation control unit 610 controls the arm operation. As shown in Figure 9, the operation control unit 610 can take, for example, an initialization waiting state S100, an idle state S0, a creation-related state S1, a recreation-related state S3, a stop-related state S4, a collision mitigation-related state S5, and an error handling state S99 as the control unit state.

[0186] In the control system 6, there are maintenance conditions and transition states related to the control unit state that the condition determination unit 620 determines whether they are satisfied, and maintenance conditions and transition states that the operation control unit 610 determines whether they are satisfied by itself. In the present disclosure, maintenance conditions and transition conditions that the condition determination unit 620 determines whether they are satisfied are represented by symbols starting with C. On the other hand, maintenance conditions and transition conditions that the operation control unit 610 determines whether they are satisfied by itself are represented by symbols starting with D. Furthermore, the maintenance conditions and transition conditions determined by the condition determination unit 620 may be collectively referred to as state conditions C. Furthermore, the maintenance conditions and transition conditions that the operation control unit 610 determines whether they are satisfied may be collectively referred to as state conditions D.

[0187] <Initialization Waiting State> The initialization waiting state S100 is a state in which the control system 6 waits for completion of initialization. When the control system 6 starts up, the control unit state first becomes the initialization waiting state S100. The initialization waiting state S100 can transition to an idle state S0 or an error handling state S99.

[0188] The state conditions that are determined when the control unit state is in the initialization waiting state S100 include a condition C102 for maintaining the initialization waiting state, a transition condition C101 for transitioning the control unit state to the idle state S0, and a transition condition C99 for transitioning the control unit state to the error handling state S99. Transition condition C99 is a transition condition that is common to multiple states other than the error handling state S99 among the multiple states that the operation control unit 610 can be in. It is determined whether transition condition C99 is satisfied in each state other than the error handling state S99. In each state other than the error handling state S99, if the satisfaction of transition condition C99 conflicts with the satisfaction of other state conditions, the satisfaction of transition condition C99 takes priority, and the control unit state transitions to the error handling state S99. Hereinafter, transition condition C99 may be referred to as the common transition condition C99.

[0189] The condition for satisfying the maintaining condition C102 is that the control system 6 is being initialized. Therefore, while the control system 6 is being initialized, the initialization waiting state S100 is maintained. The condition for satisfying the transition condition C101 is that the initialization of the control system 6 is completed. Therefore, when the initialization of the control system 6 is completed, the control unit state transitions from the initialization waiting state S100 to the idle state S0.

[0190] The condition for satisfying the common transition condition C99 is that an error occurs in the control system 6. Therefore, when an error occurs in the control system 6, the operation control unit 610 transitions the control unit state from the initialization waiting state S100 to the error handling state S99, regardless of whether the maintenance condition C102 and the transition condition C101 are satisfied. The condition for satisfying the maintenance condition C102 can also be said to be that no error has occurred in the control system 6 and that the control system 6 is being initialized. The condition for satisfying the transition condition C101 can also be said to be that no error has occurred in the control system 6 and that the initialization of the control system 6 is completed.

[0191] FIG. 10 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the initialization wait state S100. When the control unit state is in the initialization wait state S100, first, in step s101, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error response state S99 in step s104. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s102 whether the maintenance condition C102 or the transition condition C101 is satisfied. If it is determined that the maintenance condition C102 is satisfied, the control unit state is maintained in the initialization wait state S100. When the control unit state is maintained in the initialization wait state S100, the robot control unit 600 again operates according to the flowchart of FIG. 10 in the next control cycle. On the other hand, if it is determined that the transition condition C103 is satisfied, the control unit state transitions to the idle state S0 in step s103.

[0192] <Regarding the Idle State> The idle state S0 is a state set when the arm 20 is stopped, and is a state in which the determination result of the condition determination unit 620 is monitored. The state in which the determination result of the condition determination unit 620 is monitored can also be said to be a state in which the output of the condition determination unit 620 is monitored. In the idle state S0, the operation control unit 610 does not perform any processing other than monitoring the determination result of the condition determination unit 620. The idle state S0 can transition to a production-related state S1 and an error handling state S99.

[0193] The state conditions that are determined when the control unit state is in the idle state S0 include a maintenance condition C2 that maintains the idle state S0, a transition condition C1 that transitions the control unit state to the creation-related state S1, and a common transition condition C99.

[0194] The condition for transition condition C1 to be met is that the host control unit 640 has requested the robot control unit 600 to start operating the arm 20. Therefore, when the host control unit 640 outputs operation start request data to request the robot control unit 600 to start operating the arm 20, the control unit state transitions from the idle state S0 to the production-related state S1.

[0195] The condition for maintaining condition C2 to be met is that the host control unit 640 has not requested the robot control unit 600 to start operating the arm 20. Therefore, when the host control unit 640 has not requested the robot control unit 600 to start operating the arm 20, the idle state S0 is maintained.

[0196] In addition, when an error occurs in the control system 6 and the common transition condition C99 is met, the operation control unit 610 transitions the control unit state from the idle state S0 to the error response state S99 regardless of whether other conditions such as the maintenance condition C2 are met or not.

[0197] FIG. 11 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the idle state S0. When the control unit state transitions to the idle state S0, first, in step s111, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error-handling state S99 in step s114. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s112 whether the maintenance condition C2 or the transition condition C1 is satisfied. If it is determined that the maintenance condition C2 is satisfied, the control unit state is maintained in the idle state S0. When the control unit state is maintained in the idle state S0, the robot control unit 600 again operates according to the flowchart of FIG. 11 in the next control cycle. On the other hand, if it is determined that the transition condition C1 is satisfied, the control unit state transitions to the creation-related state S1 in step s113.

[0198] <Regarding Creation-Related State> The creation-related state S1 is a state that is set when the arm 20 is stopped, and is a state that executes processing related to creation of a target motion of the arm 20. In the creation-related state S1, the operation control unit 610 instructs the operation planning unit 648 to execute a target motion of the arm 20 from a state in which the arm 20 is stopped, and causes the communication control unit 647, which instructs the communication control unit 647 to control the communication unit 68 so that the communication unit 68 transmits created target motion data indicating the created target motion of the arm 20 to the arm control unit 3, to control the communication unit 68. The creation-related state S1 can transition to an operation monitoring state S2, an idle state S0, and an error response state S99.

[0199] The creation-related state S1 has, for example, two sub-states: a creation waiting state S10 and a writing state S11. When a transition condition C1 is satisfied while the control unit state is in the idle state S0, the control unit state transitions from the idle state S0 to the creation waiting state S10.

[0200] The creation waiting state S10 is a state in which the system waits for completion of target action creation in the action planning unit 648. The writing state S11 is a state in which predetermined data is written to the memory area 667. The creation waiting state S10 can transition to the writing state S11, the idle state S0, and the error handling state S99. The writing state S11 can transition to the in-operation monitoring state S2 and the error handling state S99.

[0201] Here, the memory area 668 stores execution permission data indicating whether or not execution of target motion creation for the arm 20 is permitted. The execution permission data may also be referred to as an execution permission flag, for example. The robot control unit 600 updates the execution permission data in the memory unit 65 based on multiple pieces of determination data.

[0202] The execution possibility data indicates, in its initial state, that execution of target motion creation is not permitted (also simply referred to as execution not permitted). The action planning unit 648 performs target motion creation when the execution possibility data indicates that execution of target motion creation is permitted (also simply referred to as execution permitted). On the other hand, the action planning unit 648 does not perform target motion creation when the execution possibility data indicates that execution is not permitted. The robot control unit 600 can easily instruct the action planning unit 648 to execute target motion creation by updating the execution possibility data in the storage unit 65 so that the execution possibility data indicates execution permitted based on multiple pieces of determination data. Furthermore, the robot control unit 600 can also instruct the action planning unit 648 to interrupt the execution of target motion creation by updating the execution possibility data in the storage unit 65 so that the execution possibility data indicates execution not permitted while the action planning unit 648 is creating a target motion. The motion planning unit 648 may include a reading unit that accesses the memory unit 65 to acquire data necessary for creating a target motion, such as execution permission data, a movement start position, or a movement end position, and a calculation unit that performs calculation processing of the target motion. The reading unit can acquire data at regular intervals and instruct the calculation unit to create a target motion. Specifically, the reading unit instructs the calculation unit to create a target motion when it acquires execution permission data, and causes the calculation unit to continue creating the target motion unless the execution permission data is updated or the creation of the target motion is completed. Furthermore, if the reading unit acquires execution prohibition data while the calculation unit is creating a target motion, it can stop the processing of the calculation unit. The reading unit may acquire data from the memory unit regardless of whether the calculation unit is creating a target motion or not.

[0203] When the control unit state transitions from the idle state S0 to the creation waiting state S10, the motion control unit 610 of the robot control unit 600 updates the execution feasibility data in the memory area 668 so that the execution feasibility data indicates execution permission. When the execution feasibility data in the memory area 668 indicates execution permission, in other words, when the motion planning unit 648 confirms that the execution feasibility data in the memory area 668 indicates execution permission, the motion planning unit 648 creates a desired motion based on the set start position data, set end position data, robot data, object data, obstacle data, and upper limit value combination in the memory area 668. The execution feasibility data indicating execution permission can also be considered as execution instruction data that instructs the motion planning unit 648 to create a desired motion. The motion control unit 610 instructs the motion planning unit 648 to create a desired motion by outputting the execution instruction data and writing it in the memory area 668.

[0204] When the control unit state is in the creation waiting state S10, the set start position data indicates the current stop position of the arm 20, and the set end position data indicates the movement end position of the arm 20. When the control unit state transitions to the creation waiting state S10 for the first time after the end effector 25 holds the object 10, the set start position data indicates the movement start position of the holding movement operation. Therefore, when the control unit state transitions to the creation waiting state S10 for the first time after the end effector 25 holds the object 10, the motion planning unit 648 creates a target motion of the arm 20 from the movement start position of the holding movement operation to the movement end position of the holding movement operation. On the other hand, when the control unit state transitions to the creation waiting state S10 for the first time after the end effector 25 releases the object 10 and places it in the movement destination area, the motion planning unit 648 creates a target motion of the arm 20 from the movement start position of the non-holding movement operation to the movement end position of the non-holding movement operation. When the motion planning unit 648 completes the creation of the target motion of the arm 20, it writes the created target motion data into the storage area 659 and also writes the leading address of the created target motion data into the storage area 658.

[0205] The state conditions that are determined when the control unit state is in the creation wait state S10 include a maintaining condition C11 that maintains the creation wait state S10, a transition condition C13 that transitions the control unit state to the write state S11, transition conditions C12 and D11 that transition the control unit state to the idle state S0, and a common transition condition C99. When the control unit state is in the creation wait state S10, the condition determination unit 620 determines whether the maintaining condition C11, the transition condition C12, the transition condition C13, and the common transition condition C99 are satisfied. Furthermore, when the control unit state is in the creation wait state S10, the operation control unit 610 determines whether the transition condition D11 is satisfied.

[0206] The condition for the maintenance condition C11 is satisfied when the action planner 648 is executing the target action creation process. Therefore, when the action planner data 648a indicates the setting notification data and the target action creation process is being executed, the creation waiting state S10 is maintained.

[0207] The condition for transition condition C13 to be met is that the creation of a target motion for the arm 20 in the target motion creation process has been successful and the target motion creation process has been completed. For example, when the motion planning section data 648a indicates setting success notification data and the creation of the target motion has been completed, transition condition C13 is met. The condition for transition condition C12 to be met is that the creation of a target motion for the arm 20 in the target motion creation process has failed. For example, when the motion planning section data 648a indicates setting failure notification data, transition condition C12 is met.

[0208] The condition for transition condition D11 to be satisfied is that the execution time of the target motion creation process, i.e., the processing time for creating the target motion, is too long. In other words, the target motion creation process times out. Specifically, transition condition D11 is that the execution time of the target motion creation process reaches a fourth predetermined time.

[0209] Firmness of the transition condition D11 takes priority over firmness of the maintenance condition C11. When the control unit state is in the creation waiting state S10, if the operation control unit 610 determines that the execution time of the target motion creation process has reached a fourth predetermined time, in other words, if it determines that the target motion creation process has timed out, the operation control unit 610 transitions the control unit state from the creation waiting state S10 to the idle state S0. The operation control unit 610 can measure the fourth predetermined time based on a measurement completion notification output by the timer 60b, which repeatedly measures 5 ms, for example.

[0210] For example, the operation control unit 610 determines that the timing at which the content of the operation planner data 648a (in other words, the determination data 648a) in the storage unit 65 changes from ready state notification data to setting notification data is the start timing of the target operation creation process. The operation control unit 610 then measures the elapsed time since the content of the operation planner data 648a transitioned from ready state notification data to setting notification data based on the measurement completion notification repeatedly output from the timer 60b. If the operation planner data 648a in the storage unit 65 does not change from the setting notification data before the measured elapsed time reaches a fourth predetermined time, the operation control unit 610 determines that the execution time of the target operation creation process (in other words, the processing time for creating the target operation) has reached the fourth predetermined time.

[0211] In addition, when the control unit state is in the creation waiting state S10 and an error occurs in the control system 6 and the common transition condition C99 is met, the operation control unit 610 transitions the control unit state from the creation waiting state S10 to the error response state S99 regardless of whether other conditions such as the maintenance condition C11 are met or not.

[0212] When the control unit state is in the creation waiting state S10, if the creation of the target action in the action planner 648 is completed (in other words, the creation of the target action is successful) and transition condition C13 is met, the operation control unit 610 updates the execution possibility data in the memory area 668 so that the execution possibility data indicates that execution is not permitted, and transitions the control unit state from the creation waiting state S10 to the writing state S11. Also, if transition conditions C12 and D11 are met, the operation control unit 610 updates the execution possibility data in the memory area 668 so that the execution possibility data indicates that execution is not permitted, and transitions the control unit state from the creation waiting state S10 to the idle state S0.

[0213] Furthermore, the memory area 667 stores transmission permission data indicating whether or not transmission of the created target motion data is permitted. The transmission permission data can also be referred to as, for example, a transmission permission flag. In its initial state, the transmission permission data indicates that transmission of the created target motion data is not permitted (also simply referred to as transmission not permitted). When the transmission permission data indicates that transmission of the created target motion data 150 is permitted (also simply referred to as transmission permission), the communication control unit 647 causes the communication unit 68 to transmit the created target motion data in the memory area 659. On the other hand, when the transmission permission data indicates that transmission is not permitted, the communication control unit 647 does not cause the communication unit 68 to transmit the created target motion data in the memory area 659.

[0214] When the creation of the target action in the action planning unit 648 is completed and the control unit state transitions from the creation waiting state S10 to the writing state S11, the action control unit 610 reads the first address of the created target action data 150 from the memory area 658 and writes it to the memory area 667. Then, the action control unit 610 updates the transmission permission data in the memory area 667 so that the transmission permission data indicates permission for transmission. In this way, when the creation of the target action in the action planning unit 648 is completed, the action control unit 610 updates the transmission permission data in the memory area 667 so that the transmission permission data indicates permission for transmission.

[0215] When the transmission permission data in memory area 667 indicates that transmission is permitted, that is, when the communication control unit 647 confirms that the transmission permission data in memory area 667 indicates that transmission is permitted, the communication control unit 647 causes the communication unit 68 to transmit the target action data to be created in memory area 659. At this time, the communication control unit 647 reads out the target action data to be created from memory area 659 based on the top address in memory area 667 and inputs the data to the communication unit 68.

[0216] The state conditions that are determined when the control unit state is in the write state S11 include a maintenance condition C15 that maintains the write state S11, a transition condition C14 that transitions the control unit state to the operating monitoring state S2, and a common transition condition C99.

[0217] The condition for transition condition C14 to be satisfied is that the communication unit 68 has started transmitting the target motion data 150. Therefore, when the communication unit 68 has started transmitting the target motion data 150, the control unit state transitions from the writing state S11 to the operating monitoring state S2. In other words, when the arm 20 changes from a stopped state to an operating state, the control unit state transitions from the writing state S11 to the operating monitoring state S2.

[0218] The maintaining condition C15 is that the communication unit 68 has not yet started transmitting the target action data 150. Therefore, for example, when the action control unit 610 is in the middle of reading the leading address of the target action data 150 from the storage area 658 and the communication unit 68 has not yet started transmitting the target action data 150, the writing state S11 is maintained.

[0219] In addition, when an error occurs in the control system 6 and the common transition condition C99 is met, the operation control unit 610 transitions the control unit state from the writing state S11 to the error response state S99 regardless of whether other conditions such as the maintenance condition C15 are met.

[0220] 12 and 13 are flowcharts showing an example of the operation of the robot control unit 600 when the control unit state is in the creation-related state S1. When the control unit state transitions from the idle state S0 to the creation waiting state S10, it is then determined in step s131 whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error handling state S99 in step s143. On the other hand, if it is determined that the common transition condition C99 is not satisfied, the executability data is updated in step s132 so that the executability data indicates execution permission. Next, it is determined in step s133 whether the transition condition D11 is satisfied. If it is determined that the transition condition D11 is satisfied, the control unit state transitions to the idle state S0 in step s141. Thereafter, in step s142, the executability data is updated so that the executability data indicates execution permission. On the other hand, if it is determined that the transition condition D11 is not satisfied, it is determined in step s134 whether the maintenance condition C11 is satisfied.

[0221] If it is determined that the maintenance condition C11 is satisfied, the control unit state is maintained in the creation waiting state S10. If the control unit state is maintained in the creation waiting state S10, the robot control unit 600 again operates according to the flowchart of FIG. 12 in the next control cycle. Note that step s132 is executed only the first time after the control unit state transitions from the idle state S0 to the creation waiting state S10. On the other hand, if it is determined that the maintenance condition C11 is not satisfied, it is determined in step s135 which of the transition conditions C12 and C13 is satisfied. If it is determined that the transition condition C12 is satisfied, the control unit state transitions to the idle state S0 in step s136. Then, in step s137, the execution permission data is updated to indicate that execution is not permitted.

[0222] If it is determined in step s135 that the transition condition C13 is satisfied, the control unit state transitions to the write state S11 in step s138. Then, in step s139, the execution permission data is updated to indicate execution is not permitted. Thereafter, in step s140, the transmission permission data is updated to indicate transmission is permitted.

[0223] After step s140, as shown in FIG. 13, in step s151, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error response state S99 in step s154. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s152 whether the maintenance condition C15 or the transition condition C14 is satisfied. If it is determined that the maintenance condition C15 is satisfied, the control unit state is maintained in the write state S11. When the control unit state is maintained in the write state S11, in the next control cycle, the robot control unit 600 again operates according to the flowchart in FIG. 13. On the other hand, if it is determined that the transition condition C14 is satisfied, the control unit state transitions to the in-operation monitoring state S2 in step s153.

[0224] <Regarding the in-operation monitoring state> The in-operation monitoring state S2 is a state in which the determination result of the condition determination unit 620 is monitored while the arm 20 is in operation. In detail, the in-operation monitoring state S2 is a state in which processing is mainly performed to monitor the determination result of the condition determination unit 620 when the arm 20 is moving toward the movement end position. The in-operation monitoring state S2 can transition to a re-creation-related state S3, an idle state S0, and an error handling state S99.

[0225] The state conditions determined when the control unit state is in the operating monitoring state S2 include a maintenance condition C21 for maintaining the operating monitoring state S2, transition conditions C23, C24, and D21 for transitioning the control unit state to a rebuild-related state S3, a transition condition C22 for transitioning the control unit state to an idle state S0, and a common transition condition C99. As described below, the rebuild-related state S3 has a first-priority determination state S30 and a second-priority determination state S33 as substates. Transition conditions C24 and D21 are conditions for transitioning the control unit state from the operating monitoring state S2 to the first-priority determination state S30. Transition condition C23 is a condition for transitioning the control unit state from the operating monitoring state S2 to the second-priority determination state S33. When the control unit state is in the operating monitoring state S2, the condition determination unit 620 determines whether the maintenance condition C21, transition condition C24, transition condition C23, transition condition C22, and common transition condition C99 are satisfied. When the control unit state is the in-operation monitoring state S2, the operation control unit 610 determines whether the transition condition D21 is met.

[0226] The condition for transition condition C22 to be satisfied is that the communication unit 68 has completed transmission of created target motion data (also referred to as current created target motion data) indicating the current target motion. When the communication unit 68 has completed transmission of the current created target motion data and the arm 20 has moved to the movement end position, the operation control unit 610 updates the transmission permission data in the memory area 667 so that the transmission permission data indicates that transmission is not permitted, and transitions the control unit state from the operation monitoring state S2 to the idle state S0.

[0227] The condition for satisfying transition condition C24 is that the operation of the arm 20 needs to be changed without stopping the arm 20 midway through the arm movement operation. Therefore, when it becomes necessary to change the operation of the arm 20 without stopping the arm 20 midway through the movement end position, the control unit state transitions from the operation monitoring state S2 to the first priority determination state S30. Hereinafter, changing the operation of the arm 20 without stopping the arm 20 midway through the arm movement operation may be referred to as a non-stop operation change.

[0228] The condition for satisfying transition condition C23 is that it is necessary to stop the arm 20 in the middle of the arm movement operation. The need to stop the arm 20 in the middle of the arm movement operation can also be said to mean that it is necessary to change the operation of the arm 20 so that the arm 20 stops in the middle of the arm movement operation (in other words, while the arm 20 is moving toward the movement end position). Hereinafter, stopping the arm 20 in the middle of the arm movement operation may be referred to as midway stopping of the arm 20.

[0229] When it becomes necessary to stop the arm 20 during the arm movement operation, that is, while the arm 20 is moving toward the movement end position, the control unit state transitions from the operation monitoring state S2 to the second priority determination state S33. As will be described later, for example, when the upper control unit 640 outputs temporary stop request data, it is necessary to stop the arm 20 midway. Also, it is necessary to stop the arm 20 midway when a collision with the robot 2 occurs. In other words, it is necessary to stop the arm 20 midway when the arm sensor processing unit 643 outputs collision occurrence notification data.

[0230] The condition for maintaining condition C21 to be met is that the communication unit 68 is currently transmitting created target motion data and there is no need to change the motion of the arm 20. In other words, the condition for maintaining condition C21 to be met is that the communication unit 68 is currently transmitting created target motion data and there is no need to change the motion of the arm 20. When the communication unit 68 is currently transmitting created target motion data and there is no need to change the motion of the arm 20, the in-motion monitoring state S2 is maintained.

[0231] The condition for the transition condition D21 to be satisfied is that the upper limit value combination of the target of use determined by the condition determination unit 620 does not match the current upper limit value combination in the memory area 668. The satisfaction of the transition condition D21 takes priority over the satisfaction of the maintenance condition C21. When the upper limit value combination of the target of use notified by the condition determination unit 620 does not match the current upper limit value combination in the memory area 668, the operation control unit 610 transitions the control unit state from the in-operation monitoring state S2 to the first-priority determination state S30 of the re-creation-related state S3, even if the maintenance condition C21 is satisfied. In other words, when there is a change in the combination of the upper limit speed value and the upper limit acceleration value of the arm 20, the operation control unit 610 transitions the control unit state from the in-operation monitoring state S2 to the first-priority determination state S30.

[0232] In addition, when the control unit state is in the operating monitoring state S2, if an error occurs in the control system 6 and the common transition condition C99 is met, the operation control unit 610 transitions the control unit state from the operating monitoring state S2 to the error response state S99 regardless of whether other conditions such as the maintenance condition C21 are met.

[0233] FIG. 14 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the operation monitoring state S2. When the control unit state transitions to the operation monitoring state S2, first, in step s161, it is determined whether or not the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error response state S99 in step s169. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s162 whether or not the transition condition C22 is satisfied. If it is determined that the transition condition C22 is satisfied, the control unit state transitions to the idle state S0 in step s167. Then, in step s168, the transmission permission data is updated so that the transmission permission data indicates that transmission is not permitted. On the other hand, if it is determined that the transition condition C22 is not satisfied, it is determined in step s163 whether or not the transition condition C24 and the transition condition D21 are satisfied.

[0234] If it is determined that the transition condition C24 is satisfied, the control unit state transitions to the first priority determination state S30 in step s166. If it is determined that the transition condition D21 is satisfied, the control unit state transitions to the first priority determination state S30 in step s166. On the other hand, if it is determined that neither the transition condition C24 nor the transition condition D21 is satisfied, it is determined in step s164 whether the maintenance condition C21 or the transition condition C23 is satisfied. If it is determined that the maintenance condition C21 is satisfied, the control unit state is maintained in the in-operation monitoring state S2. When the control unit state is maintained in the in-operation monitoring state S2, the robot control unit 600 again operates according to the flowchart of FIG. 14 in the next control cycle. On the other hand, if it is determined that the transition condition C23 is satisfied, the control unit state transitions to the second priority determination state S33 in step s165.

[0235] <Regarding the Re-creation-Related State> The re-creation-related state S3 is a state set when the arm 20 is operating, and is a state in which processing related to the re-creation of a target motion of the arm 20 is executed. In the re-creation-related state S3, the operation control unit 610 instructs the operation planning unit 648 to execute re-creation of a target motion of the arm 20 from a future timing (in other words, a switching timing) while the arm 20 is operating. Then, in the re-creation-related state S3, the operation control unit 610 instructs the communication control unit 647 to control the communication unit 38 so that the communication unit 38 transmits created target motion data indicating the re-created target motion of the arm 20 to the arm control unit 3. The re-creation-related state S3 can transition to a stop-related state S4, an in-operation monitoring state S2, and an error handling state S99.

[0236] The rebuild-related state S3 has four sub-states, for example, a first priority determination state S30, a second priority determination state S33, a rebuild waiting state S31, and a writing state S32.

[0237] The first priority determination state S30 and the second priority determination state S33 are each states in which it is determined whether or not to prioritize the current target motion of the arm 20. In each of the first priority determination state S30 and the second priority determination state S33, the operation control unit 610 executes priority determination processing to determine whether or not to prioritize the current target motion of the arm 20. The recreate waiting state S31 is a state in which the operation planning unit 648 waits for completion of recreate of the target motion of the arm 20. The write state S32 is a state in which predetermined data is written to the memory area 667.

[0238] The state conditions that are determined when the control unit state is the first-priority determination state S30 include a maintenance condition D33 that maintains the first-priority determination state S30, a transition condition D31 that transitions the control unit state to a wait-for-recreate state S31, a transition condition D32 that transitions the control unit state to an in-operation monitoring state S2, and a common transition condition C99. When the control unit state is the first-priority determination state S30, the condition determination unit 620 determines whether the common transition condition C99 is satisfied. Furthermore, when the control unit state is the first-priority determination state S30, the operation control unit 610 determines whether the maintenance condition D33, the transition condition D31, and the transition condition D32 are satisfied.

[0239] The condition for the maintenance condition D33 to be satisfied is that the priority determination process is being executed. The condition for the transition condition D32 to be satisfied is that it is determined in the priority determination process that the current target motion is to be prioritized. When the operation control unit 610 determines in the priority determination process that the current target motion is to be prioritized, it transitions the control unit state from the first priority determination state S30 to the operation monitoring state S2. In this case, the operation of the arm 20 based on the current target motion created by the operation planning unit 648 continues, and although the control unit state has transitioned once to the re-creation related state S3, the target motion of the arm 20 is not recreated.

[0240] The condition for transition condition D31 to be satisfied is that it has been determined in the priority determination process that the current target motion is not to be prioritized. When it has been determined in the priority determination process that the current target motion is not to be prioritized, the motion control unit 610 transitions the control unit state from the first priority determination state S30 to a recreate wait state S31. When the control unit state transitions from the first priority determination state S30 to the recreate wait state S31, the target motion of the arm 20 from the switch timing position to the movement end position is recreated, as will be described later.

[0241] The first priority determination state S30 can also be said to be a state in which it is determined whether to prioritize the current target motion of the arm 20 or to prioritize re-creation of the target motion of the arm 20 from the switching timing position to the movement end position. The first priority determination state S30 can also be said to be a state in which it is determined whether to re-create the target motion of the arm 20 from the switching timing position to the movement end position.

[0242] In addition, when the control unit state is the first priority judgment state S30, if an error occurs in the control system 6 and the common transition condition C99 is satisfied, the operation control unit 610 transitions the control unit state from the first priority judgment state S30 to the error response state S99 regardless of whether other conditions such as the maintenance condition D33 are satisfied or not.

[0243] FIG. 15 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the first priority determination state S30. When the control unit state transitions to the first priority determination state S30, first, in step s171, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error response state S99 in step s176. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s172 whether the transition condition D32 is satisfied. If it is determined that the transition condition D32 is satisfied, the control unit state transitions to the in-operation monitoring state S2 in step s175. On the other hand, if it is determined that the transition condition D32 is not satisfied, it is determined in step s173 whether either the maintenance condition D33 or the transition condition D31 is satisfied. If it is determined that the maintenance condition D33 is satisfied, the control unit state is maintained in the first priority determination state S30. When the control unit state is maintained in the first priority determination state S30, in the next control cycle, the robot control unit 600 again operates according to the flowchart of Fig. 15. On the other hand, when it is determined that the transition condition D31 is satisfied, the control unit state transitions to the recreate waiting state S31 in step s174.

[0244] The state conditions that are determined when the control unit state is the second-priority determination state S33 include a maintenance condition D37 that maintains the second-priority determination state S33, a transition condition D35 that transitions the control unit state to a wait-for-recreate state S31, a transition condition D36 that transitions the control unit state to an in-operation monitoring state S2, and a common transition condition C99. When the control unit state is the second-priority determination state S33, the condition determination unit 620 determines whether the common transition condition C99 is satisfied. Furthermore, when the control unit state is the second-priority determination state S33, the operation control unit 610 determines whether the maintenance condition D37, the transition condition D35, and the transition condition D36 are satisfied.

[0245] The condition for the maintenance condition D37 to be satisfied is that the priority determination process is being executed. The condition for the transition condition D36 to be satisfied is that it is determined in the priority determination process that the current target motion is to be prioritized. When the operation control unit 610 determines in the priority determination process that the current target motion is to be prioritized, it transitions the control unit state from the second priority determination state S33 to the operation monitoring state S2. In this case, the operation of the arm 20 based on the current target motion continues, and although the control unit state has transitioned once to the re-creation related state S3, the target motion of the arm 20 is not recreated.

[0246] The condition for transition condition D35 to be satisfied is that it is determined in the priority determination process that the current target motion is not to be prioritized. When it is determined in the priority determination process that the current target motion is not to be prioritized, the motion control unit 610 transitions the control unit state from the second priority determination state S33 to the recreate wait state S31. When the control unit state transitions from the second priority determination state to the recreate wait state S31, the target motion of the arm 20 from the switch timing position to the mid-movement stop position is recreated, as will be described later.

[0247] The second priority determination state S33 can also be said to be a state in which it is determined whether to prioritize the current target motion of the arm 20 or to prioritize the re-creation of the target motion of the arm 20 from the switching timing position to the mid-movement stopping position. The second priority determination state S33 can also be said to be a state in which it is determined whether to re-create the target motion of the arm 20 from the switching timing position to the mid-movement stopping position.

[0248] In addition, when the control unit state is the second priority judgment state S33, if an error occurs in the control system 6 and the common transition condition C99 is satisfied, the operation control unit 610 transitions the control unit state from the second priority judgment state S33 to the error response state S99 regardless of whether other conditions such as the maintenance condition D37 are satisfied or not.

[0249] FIG. 16 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the second priority determination state S33. When the control unit state transitions to the second priority determination state S33, first, in step s181, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error response state S99 in step s186. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s182 whether the transition condition D36 is satisfied. If it is determined that the transition condition D36 is satisfied, the control unit state transitions to the in-operation monitoring state S2 in step s185. On the other hand, if it is determined that the transition condition D36 is not satisfied, it is determined in step s183 whether either the maintenance condition D37 or the transition condition D35 is satisfied. If it is determined that the maintenance condition D37 is satisfied, the control unit state is maintained in the second priority determination state S33. When the control unit state is maintained in the second priority determination state S33, in the next control cycle, the robot control unit 600 again operates according to the flowchart of Fig. 16. On the other hand, when it is determined that the transition condition D35 is satisfied, the control unit state transitions to the recreate waiting state S31 in step s184.

[0250] In each of the first priority determination state S30 and the second priority determination state S33, the operation control unit 610 determines the switching timing.

[0251] Here, in order to change the motion of the arm 20, the control unit 60 needs time to recreate the target motion of the arm 20 in the motion planning unit 648, and therefore it is difficult for the control unit 60 to immediately change the motion of the arm 20 when the need to change the motion of the arm 20 arises. In other words, even if the need to change the motion of the arm 20 arises, it is difficult for the control unit 60 to immediately switch the motion of the arm 20.

[0252] Therefore, the movement control unit 610 sets the switching timing to be later than the timing at which the movement planning unit 648 completes re-creation of the target movement of the arm 20. The movement control unit 610 determines the switching timing based on, for example, the processing time required for the movement planning unit 648 to create the target movement (also referred to as the target movement creation processing time). Specifically, the movement control unit 610 identifies an index number (also referred to as the current index number) included in the arm movement point data 151 currently read by the communication control unit 647 from the memory area 659, from among the created target movement data indicating the current target movement (i.e., the current created target movement data). When reading the created target movement data from the memory area 659, the communication control unit 647 writes the current index number to the memory area 657. The movement control unit 610 can identify the current index number by reading the current index number from the memory area 657. The movement control unit 610 sets the switching timing to the movement elapsed time after a predetermined time based on the target movement creation processing time from the movement elapsed time indicated by the current index number. Hereinafter, among the multiple index numbers included in the currently created target motion data, the index number that indicates the motion elapsed time that is set as the switching timing will be referred to as the switching index number.

[0253] Once the switching timing is determined, the movement control unit 610 executes a priority determination process. In the priority determination process, the movement control unit 610 calculates, for each joint 200, the amount of rotation of the joint 200 from the switching timing until the arm 20 stops, in the case where the currently moving arm 20 stops as soon as possible after the switching timing. This amount of rotation is called the braking rotation amount R1. The braking rotation amount R1 can be approximated by the following equation (1):

[0254]

[0255] W in formula (1) represents the rotational speed of the joint 200 at the switching timing. Furthermore, Amax in formula (1) represents the upper limit of the rotational acceleration of the joint 200. Note that the braking rotation amount R1 may be expressed by adding a margin amount to the right side of formula (1).

[0256] Furthermore, in the priority determination process, the movement control unit 610 calculates the total amount of rotation (also referred to as the amount of remaining rotation) from the switching timing until the arm 20 stops at the movement end position for each joint 200. The movement control unit 610 can calculate the amount of remaining rotation for each joint 200 based on the currently created target movement data.

[0257] In the priority determination process, the movement control unit 610 compares the remaining rotation amount with the braking rotation amount R1 for each joint 200. If there is at least one joint 200 among the six joints 200 whose remaining rotation amount is smaller than the braking rotation amount R1, the movement control unit 610 determines to prioritize the current target motion of the arm 20. In other words, the movement control unit 610 determines not to recreate the target motion of the arm 20 from the switching timing. As a result, if the current position of the arm 20 is close to the movement end position, the movement of the arm 20 based on the current target motion continues. On the other hand, if the remaining rotation amount is equal to or greater than the braking rotation amount R1 for all six joints 200, the movement control unit 610 determines not to prioritize the current target motion of the arm 20. In other words, the movement control unit 610 determines to recreate the target motion of the arm 20 from the switching timing. As a result, if the current position of the arm 20 is somewhat far from the movement end position, the target motion of the arm 20 from the switching timing is recreated.

[0258] In the second priority determination state S33, the operation control unit 610 determines a mid-travel stop position at which to stop the arm 20. The operation control unit 610 may determine the mid-travel stop position based on the braking rotation amount R1 of each joint 200, for example. In this case, the operation control unit 610 may determine, as the mid-travel stop position, the position of the arm 20 when each joint 200 has rotated by the braking rotation amount R1 from the target rotation angle at the switching timing. Alternatively, the operation control unit 610 may determine, as the mid-travel stop position, the position of the arm 20 when each joint 200 has rotated by a predetermined multiple of the braking rotation amount R1 from the target rotation angle at the switching timing. The predetermined multiple is a value greater than 1.

[0259] When the control unit state is the first-priority determination state S30, if the transition condition D31 is satisfied, the operation control unit 610 updates the setting start position data in the memory area 668 so that the setting start position data indicates the switching timing position. At this time, the setting end position data in the memory area 668 indicates the movement end position. Furthermore, when the transition condition D31 is satisfied to transition to the rebuild waiting state S31, if the transition condition D21 is satisfied to transition the control unit state to the first-priority determination state S30, the operation control unit 610 updates the current upper limit value combination in the memory area 668 with the upper limit value combination to be used notified by the condition determination unit 620. Then, the operation control unit 610 transitions the control unit state from the first-priority determination state S30 to the rebuild waiting state S31.

[0260] When the control unit state is the second-priority determination state S33, if the transition condition D35 is satisfied, the operation control unit 610 updates the set start position data in the memory area 668 so that the set start position data indicates the switching timing position. Furthermore, the operation planning unit 648 updates the set end position data in the memory area 668 so that the set end position data indicates the mid-movement stop position determined in the second-priority determination state S33. Then, the operation control unit 610 transitions the control unit state from the second-priority determination state S33 to the recreate waiting state S31. Updating the set end position data in the memory area 668 so that the set end position data indicates the mid-movement stop position determined in the second-priority determination state S33 can also be said to be writing stop position data indicating the mid-movement stop position to the memory area 668.

[0261] When it is determined that the current target motion is not to be prioritized and the control unit state transitions to a recreate waiting state S31, the motion control unit 610 updates the execution feasibility data in the memory area 668 so that the execution feasibility data indicates permission to execute, in order to instruct the motion planning unit 648 to recreate the target motion of the arm 20 from the switching timing.

[0262] When the execution permission data in the memory area 668 indicates execution permission, the motion planning unit 648 executes a target motion creation process to recreate a target motion based on the set start position data, set end position data, robot data, object data, obstacle data, and upper limit value combination in the memory area 668. When the control unit state transitions from the first priority determination state S30 to the recreate waiting state S31, the set start position data and set end position data in the memory area 668 indicate the switch timing position and the movement end position, respectively. Therefore, when the control unit state transitions from the first priority determination state S30 to the recreate waiting state S31, the motion planning unit 648 recreates a target motion of the arm 20 from the switch timing position to the movement end position. On the other hand, when the control unit state transitions from the second priority determination state S33 to the recreate waiting state S31, the set start position data and set end position data in the memory area 668 indicate the switch timing position and the movement mid-stop position, respectively. Therefore, when the control unit state transitions from the second priority determination state S33 to the recreate waiting state S31, the motion planning unit 648 recreates the target motion of the arm 20 from the switching timing position to the mid-movement stopping position.

[0263] When the re-creation of the target motion of the arm 20 is completed, the action planning unit 648 writes setting success notification data to the memory area 658. The setting success notification data can also be said to be re-creation completion data indicating the completion of the re-creation of the target motion of the arm 20. Furthermore, when the re-creation of the target motion of the arm 20 is completed, the action planning unit 648 writes created target motion data (also referred to as recreated target motion data) indicating the recreated target motion to the memory area 659. As a result, the current created target motion data and recreated target motion data are stored in the memory area 659. Furthermore, the action planning unit 648 writes the starting address of the recreated target motion data to the memory area 658.

[0264] When the control unit state transitions from the first priority determination state S30 to the recreate waiting state S31, the motion planning unit 648 generates recreated target motion data indicating a target motion from the switching timing position to the movement end position. Hereinafter, this recreated target motion data may be referred to as first recreated target motion data. On the other hand, when the control unit state transitions from the second priority determination state S33 to the recreate waiting state S31, the motion planning unit 648 generates recreated target motion data indicating a target motion from the switching timing position to the movement midway stop position. Hereinafter, this recreated target motion data may be referred to as second recreated target motion data.

[0265] The state conditions that are determined when the control unit state is in the recreate wait state S31 include a maintaining condition C31 that maintains the recreate wait state S31, a transition condition C33 that transitions the control unit state to the write state S32, transition conditions C32 and D34 that transition the control unit state to the error handling state S99, and a common transition condition C99. When the control unit state is in the recreate wait state S31, the condition determination unit 620 determines whether the maintaining condition C31, the transition condition C33, the transition condition C32, and the common transition condition C99 are satisfied. Furthermore, when the control unit state is in the recreate wait state S31, the operation control unit 610 determines whether the transition condition D34 is satisfied.

[0266] The condition for holding the maintenance condition C31 is that the motion planning unit 648 is executing the desired motion creation process. The condition for transition condition C33 is that the re-creation of the desired motion of the arm 20 in the desired motion creation process is successful and the desired motion creation process is completed. The condition for transition condition C32 is that the re-creation of the desired motion of the arm 20 in the desired motion creation process is unsuccessful.

[0267] The condition for satisfying the transition condition D34, similar to the transition condition D11, is that the execution time of the target motion creation process is too long. Specifically, the transition condition D34 is that the execution time of the target motion creation process reaches a fifth predetermined time. The method for determining whether the transition condition D34 is satisfied is the same as the method for determining whether the transition condition D11 is satisfied. Satisfaction of the transition condition D34 takes priority over satisfaction of the maintenance condition C31. When the control unit state is in the recreate waiting state S31, if the operation control unit 610 determines based on the output of the timer 60b that the execution time of the target motion creation process has reached the fifth predetermined time, the operation control unit 610 transitions the control unit state from the recreate waiting state S31 to the error handling state S99, regardless of whether the maintenance condition C31 is satisfied.

[0268] In addition, when the control unit state is in the recreate waiting state S31, if an error occurs in the control system 6 and the common transition condition C99 is satisfied, the operation control unit 610 transitions the control unit state from the recreate waiting state S31 to the error response state S99 regardless of whether other conditions such as the maintenance condition C31 are satisfied or not.

[0269] When the control unit state is in the recreate waiting state S31, if the target action is successfully created in the action planning unit 648 and the transition condition C33 is met, the action control unit 610 transitions the control unit state from the recreate waiting state S31 to the write state S32.

[0270] When the control unit state is in the recreate wait state S31 and transition conditions C32 and D34 are met, the operation control unit 610 updates the execution possibility data in the memory area 668 so that the execution possibility data indicates that execution is not permitted, and transitions the control unit state from the recreate wait state S31 to the error handling state S99. As a result, when the action planner 648 fails to recreate the target action or the target action creation process times out, the arm 20 stops operating based on the current target action.

[0271] FIG. 17 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the recreate-waiting state S31. When the control unit state transitions to the recreate-waiting state S31, in step s191, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, in step s203, the control unit state transitions to the error-handling state S99. On the other hand, if it is determined that the common transition condition C99 is not satisfied, in step s192, the executability data is updated so that the executability data indicates execution permission. Next, in step s193, it is determined whether the transition condition D34 is satisfied. If it is determined that the transition condition D34 is satisfied, in step s201, the control unit state transitions to the error-handling state S99. Thereafter, in step s202, the executability data is updated so that the executability data indicates execution prohibition. On the other hand, if it is determined that the transition condition D34 is not satisfied, in step s194, it is determined whether the maintenance condition C31 is satisfied.

[0272] If it is determined that the maintenance condition C31 is satisfied, the control unit state is maintained in the rebuild waiting state S31. If the control unit state is maintained in the rebuild waiting state S31, the robot control unit 600 again operates according to the flowchart of FIG. 17 in the next control cycle. Note that step s192 is executed only the first time after the control unit state transitions to the rebuild waiting state S31. On the other hand, if it is determined that the maintenance condition C31 is not satisfied, it is determined in step s195 which of the transition conditions C32 and C33 is satisfied. If it is determined that the transition condition C32 is satisfied, the control unit state transitions to the error handling state S99 in step s196. Then, in step s197, the execution feasibility data is updated to indicate that execution is not permitted.

[0273] If it is determined in step s195 that the transition condition C33 is satisfied, the control unit state transitions to the write state S32 in step s198. Then, in step s199, the execution permission data is updated to indicate execution is not permitted. Thereafter, in step s200, the transmission permission data is updated to indicate transmission is permitted.

[0274] When the control unit state transitions from the recreate wait state S31 to the write state S32, the operation control unit 610 reads the top address of the recreate target action data from the memory area 658 and writes it to the memory area 667. Furthermore, the operation control unit 610 writes the switching index number to the memory area 667. In the write state S32, the transmission permission data in the memory area 667 indicates that transmission is permitted.

[0275] FIG. 18 is a schematic diagram showing an example of the operation of the communication control unit 647 when the control unit state is in the write state S32. The communication control unit 647, which is causing the communication unit 68 to transmit the current target motion data 150, checks the switching index number in the storage area 667. In the example of FIG. 18, the switching index number is "51." The communication control unit 647 reads, from the storage area 659, arm motion point data 151 in the current target motion data 150 that includes an index number one smaller than the switching index number ("50" in the example of FIG. 18), and then ends reading of the current target motion data. Then, based on the starting address of the recreated target motion data 150 in the storage area 667, the communication control unit 647 starts reading the recreated target motion data 150 from the storage area 659 and causes the communication unit 68 to transmit it. As a result, the communication unit 68 transmits arm operating point data 151 including an index number one smaller than the switching index number in the currently created target operating data, and then transmits arm operating point data 151 including index number "0" of the recreated target operating data.

[0276] The state conditions that are determined when the control unit state is in the write state S32 include a maintenance condition C36 that maintains the write state S32, a transition condition C35 that transitions the control unit state to the operating monitoring state S2, a transition condition D38 that transitions the control unit state to the stop-related state S4, and a common transition condition C99.

[0277] The condition for the transition condition D38 to be satisfied is that the arm 20 needs to be stopped midway. Therefore, when it is necessary to stop the arm 20 midway during the arm movement operation, the control unit state transitions from the writing state S36 to the stop-related state S4. Specifically, the operation control unit 610 determines that the transition condition D38 is satisfied when the control unit state transitions from the operation monitoring state S2 to the second priority determination state S33 due to the need to stop the arm 20 midway during the arm movement operation, and then the control unit state transitions to the writing state S32 via the re-creation waiting state S31. When it is necessary to stop the arm 20 midway, the communication unit 68 starts transmitting second recreated target motion data indicating a recreated target motion from the switching timing position to the mid-movement stop position.

[0278] The condition for transition condition C35 to be satisfied is that there is no need to stop the arm 20 midway and the communication unit 68 has started transmitting target motion data. Therefore, when there is no need to stop the arm 20 midway through the arm movement operation and the communication unit 68 has started transmitting target motion data, the control unit state transitions from the writing state S36 to the in-motion monitoring state S2. When there is no need to stop the arm 20 midway, the communication unit 68 starts transmitting first recreated target motion data indicating the recreated target motion from the switching timing position to the movement end position. Therefore, it can also be said that the condition for transition condition C35 to be satisfied is that the communication unit 68 has started transmitting the first recreated target motion data. When the communication unit 68 has started transmitting the first recreated target motion data, the control unit state transitions from the writing state S32 to the in-motion monitoring state S2.

[0279] The condition for the maintaining condition C36 to be satisfied is that there is no need to stop the arm 20 midway and that the condition occurs before the communication unit 68 starts transmitting the recreated target motion data. Therefore, there is no need to stop the arm 20 midway through the arm movement operation, and the writing state S36 is maintained, for example, when the operation control unit 610 is in the middle of updating the transmission permission data in the memory area 667 so that the transmission permission data indicates permission for transmission.

[0280] In addition, when the control unit state is in the write state S32, if an error occurs in the control system 6 and the common transition condition C99 is satisfied, the operation control unit 610 transitions the control unit state from the write state S32 to the error response state S99 regardless of whether other conditions such as the maintenance condition C36 are satisfied or not.

[0281] FIG. 19 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the write state S32. When the control unit state transitions to the write state S32, first, in step s211, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error-handling state S99 in step s216. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s212 whether the transition condition D38 is satisfied. If it is determined that the transition condition D38 is satisfied, the control unit state transitions to the stop-related state S4 in step s215. On the other hand, if it is determined that the transition condition D38 is not satisfied, it is determined in step s213 whether either the maintain condition C36 or the transition condition C35 is satisfied. If it is determined that the maintain condition C36 is satisfied, the control unit state is maintained in the write state S32. When the control unit state is maintained in the writing state S32, in the next control cycle, the robot control unit 600 again operates according to the flowchart of Fig. 19. On the other hand, when it is determined that the transition condition C35 is satisfied, the control unit state transitions to the in-operation monitoring state S2 in step s214.

[0282] As described above, when recreating a target motion of the arm 20 from the switching timing during the operation of the arm 20, the motion planning unit 648 may match the velocity and acceleration of the arm 20 at the switching timing in the recreation of the target motion of the arm 20 to the velocity and acceleration of the arm 20 at the switching timing in the current setting of the target motion of the arm 20. In other words, the motion planning unit 648 may recreate the target motion of the arm 20 so that the velocity and acceleration of the arm 20 at the switching timing in the recreation match the velocity and acceleration of the arm 20 at the switching timing in the current target motion. In the example of Fig. 18 , the motion planning unit 648 may match the velocity and acceleration of the arm 20 at the timing of switching index number 51 in the currently created target motion data and the velocity and acceleration of the arm 20 at the timing of index number 0 in the recreated target motion data.

[0283] The motion planning unit 648 matches the rotational speeds of the first joint 200, the second joint 200, the third joint 200, the fourth joint 200, the fifth joint 200 and the sixth joint 200 at the switching timing in the current settings to the rotational speeds of the first joint 200, the second joint 200, the third joint 200, the fourth joint 200, the fifth joint 200 and the sixth joint 200 at the switching timing in the recreated settings, respectively, thereby matching the speed of the arm 20 at the switching timing in the current settings to the speed of the arm 20 at the switching timing in the recreated settings. Furthermore, the motion planning unit 648 matches the rotational accelerations of the first joint 200, the second joint 200, the third joint 200, the fourth joint 200, the fifth joint 200, and the sixth joint 200 at the switching timing in the current settings to the rotational accelerations of the first joint 200, the second joint 200, the third joint 200, the fourth joint 200, the fifth joint 200, and the sixth joint 200 at the switching timing in the recreated settings, thereby matching the acceleration of the arm 20 at the switching timing in the current settings to the acceleration of the arm 20 at the switching timing in the recreated settings.

[0284] Fig. 20 is a schematic diagram showing an example of how the rotational speed and rotational acceleration of the joint of interest 200 at the switching timing in the current settings match the rotational speed and rotational acceleration of the joint of interest 200 at the switching timing in the recreated settings. In Fig. 20, the rotational angle, rotational speed, and rotational acceleration of the joint of interest 200 in the current settings of the target motion of the arm 20 are indicated by circles. Also in Fig. 20, the rotational angle, rotational speed, and rotational acceleration of the joint of interest 200 at the recreation from the switching timing of the target motion of the arm 20 are indicated by triangles.

[0285] In this way, when the speed and acceleration of the arm 20 at the switching timing in the current setting of the target motion of the arm 20 match the speed and acceleration of the arm 20 at the switching timing in the recreated target motion of the arm 20, it is possible to smoothly change the motion of the arm 20. Therefore, sudden changes in the speed and acceleration of the arm 20 are unlikely to occur.

[0286] <Regarding the stop-related state> The stop-related state S4 is a state to which the arm 20 transitions from the rebuild-related state S3, and is a state in which the arm 20 waits for stopping at the mid-movement stop position determined in the second priority determination state S33 of the rebuild-related state S3. The stop-related state S4 can transition to a collision mitigation-related state S5, an idle state S0, a build-related state S1, and an error handling state S99.

[0287] The stop-related state S4 has, for example, two sub-states: a stop-waiting state S40 and a condition-satisfaction-waiting state S41. The stop-waiting state S40 is a state that waits for the arm 20 to stop at a mid-movement stop position. The condition-satisfaction-waiting state S41 is a state that waits for a transition condition to be satisfied, which transitions the control unit state from the stop-related state S4 to another state, after the arm 20 has stopped at a mid-movement stop position. If the transition condition D38 is satisfied when the control unit state is the write state S32, the control unit state transitions from the write state S32 to the stop-waiting state S40.

[0288] The state conditions that are determined when the control unit state is in the stop-waiting state S40 include a maintenance condition C41 that maintains the stop-related state S4, a transition condition C43 that transitions the control unit state to the condition-fulfillment-waiting state S41, a transition condition C42 that transitions the control unit state to the collision mitigation-related state S5, and a common transition condition C99.

[0289] The condition for the maintenance condition C41 to be satisfied is that the second recreated target motion data is being transmitted by the communication unit 68. In other words, the condition for the maintenance condition C41 to be satisfied is that the arm 20 is moving toward the mid-movement stop position.

[0290] The condition for transition condition C42 to be met is that the arm 20 needs to be stopped midway due to a collision with the robot 2, and that the communication unit 68 has completed transmission of the second recreated target motion data. In other words, the condition for transition condition C42 to be met is that the arm 20 needs to be stopped midway due to a collision with the robot 2, and that the arm 20 has stopped at a midway stop position. When transition condition C42 is met, the operation control unit 610 updates the transmission permission data in the memory area 667 so that the transmission permission data indicates that transmission is not permitted, and transitions the control unit state from the stop waiting state S40 to the collision mitigation-related state S5.

[0291] The condition for transition condition C43 to be satisfied is that the arm 20 needs to be stopped midway due to a cause other than a collision with the robot 2, and that transmission of the second recreated target motion data has been completed in the communication unit 68. In other words, the condition for transition condition C43 to be satisfied is that the arm 20 needs to be stopped midway due to a cause other than a collision with the robot 2, and that the arm 20 has stopped at a midway stop position. When transition condition C43 is satisfied, the operation control unit 610 updates the transmission permission data in the memory area 667 so that the transmission permission data indicates that transmission is not permitted, and transitions the control unit state from the stop waiting state S40 to the condition satisfaction waiting state S41.

[0292] In addition, when the control unit state is in the stop waiting state S40, if an error occurs in the control system 6 and the common transition condition C99 is satisfied, the operation control unit 610 transitions the control unit state from the stop waiting state S40 to the error response state S99 regardless of whether other conditions such as the maintenance condition C41 are satisfied or not.

[0293] The condition satisfaction waiting state S41 is a state in which one of transition conditions C44 and C45 is waited for to be satisfied. The transition condition C44 is a condition in which the control unit state transitions from the condition satisfaction waiting state S46 to the idle state S0. The transition condition C45 is a condition in which the control unit state transitions from the condition satisfaction waiting state S46 to the creation waiting state S10 of the creation-related state S1.

[0294] In addition to the transition conditions C44 and C45, the state conditions that are determined when the control unit state is in the condition satisfaction waiting state S41 include a maintenance condition C46 that maintains the condition satisfaction waiting condition C41 and a common transition condition C99.

[0295] Here, the memory unit 65 stores priority data 700 (see FIG. 18 described later) that indicates whether to prioritize the operation of the robot 2 or the safety of the robot 2. When the control unit state is a condition satisfaction waiting state S41, the condition determination unit 21 determines whether the maintenance condition C46, ​​the transition condition C44, and the transition condition C45 are satisfied based on the plurality of determination data and the priority data 700. The priority data 700 is input to the control system 6 via the input unit 67 and stored in the memory area 669, for example.

[0296] The condition for the transition condition C44 to be satisfied is that the priority data 700 indicates that safety for the robot 2 is prioritized. When the priority data 700 indicates that safety for the robot 2 is prioritized, the control unit state transitions from the condition satisfaction waiting state S41 to the idle state S0. As a result, the operation of the arm 20 does not resume unless the upper control unit 640 outputs operation start request data, thereby ensuring the safety of the robot 2. When the control unit state transitions from the condition satisfaction waiting state S41 to the idle state S0 and then to the creation waiting state S10, the operation control unit 610 updates the set start position data so that the set start position data indicates a mid-movement stop position (i.e., the current stop position of the arm 20). Thereafter, the operation control unit 610 updates the execution permission data in the memory area 668 so that the execution permission data indicates execution permission, in order to instruct the operation plan unit 648 to execute the creation of a target operation for the arm 20 from the mid-movement stop position to the movement end position.

[0297] The transition condition C45 is satisfied when the priority data 700 indicates that the robot 2's operation is prioritized and the arm 20 no longer needs to be stopped midway. When the priority data 700 indicates that the robot 2's operation is prioritized and the arm 20 no longer needs to be stopped midway, the control unit state transitions from the condition satisfaction waiting state S41 to the creation waiting state S10. When the transition condition C45 is satisfied, the operation control unit 610 updates the set start position data so that the set start position data indicates a midway stop position (i.e., the current stop position of the arm 20). Then, the operation control unit 610 transitions the control unit state from the condition satisfaction waiting state S41 to the creation waiting state S10. When the control unit state transitions from the condition satisfaction waiting state S41 to the creation waiting state S10, the operation control unit 610 rewrites the execution permission data in the memory area 668 to indicate permission to execute, in order to instruct the operation planner 648 to create a motion for the arm 20 from the midway stop position to the end position of movement. In this way, when the transition condition C45 is met, the operation of the arm 20 automatically resumes, and the operation of the robot 2 is given priority.

[0298] The condition for the maintenance condition C46 to be satisfied is that the priority data 700 indicates that the operation of the robot 2 is to be prioritized and that it is necessary to stop the arm 20 midway. Therefore, when the priority data 700 indicates that the operation of the robot 2 is to be prioritized and that it is necessary to stop the arm 20 midway, the condition satisfaction waiting state S41 is maintained.

[0299] In addition, when the control unit state is in the condition waiting state S41, if an error occurs in the control system 6 and the common transition condition C99 is satisfied, the operation control unit 610 transitions the control unit state from the write state S32 to the error response state S99 regardless of whether other conditions such as the maintenance condition C46 are satisfied or not.

[0300] 21 and 22 are flowcharts showing an example of the operation of the robot control unit 600 when the control unit state is in the stop-related state S4. When the control unit state transitions to the stop-waiting state S40, step s221 determines whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, step s228 determines whether the transition condition C42 is satisfied. If it is determined that the transition condition C42 is satisfied, step s222 determines whether the transmission permission data is updated to indicate that transmission is not permitted. Thereafter, step s227 determines whether the control unit state transitions to the collision mitigation-related state S5. If it is determined that the transition condition C42 is not satisfied, step s223 determines whether either the maintenance condition C41 or the transition condition C43 is satisfied.

[0301] If it is determined that the maintenance condition C41 is satisfied, the control unit state is maintained in the stop waiting state S40. If the control unit state is maintained in the stop waiting state S40, in the next control cycle, the robot control unit 600 again operates according to the flowchart of FIG. 21. On the other hand, if it is determined that the transition condition C43 is satisfied, in step s224, the transmission permission data is updated so that the transmission permission data indicates that transmission is not permitted. Then, in step s225, the control unit state transitions to the condition satisfaction waiting state S41.

[0302] When the control unit state transitions to the condition satisfaction waiting state S41, as shown in FIG. 22 , in step s231, it is determined whether or not the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error handling state S99 in step s236. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s232 whether or not the transition condition C44 is satisfied. If it is determined that the transition condition C44 is satisfied, the control unit state transitions to the idle state S0 in step s235. On the other hand, if it is determined that the transition condition C44 is not satisfied, it is determined in step s233 whether either the maintenance condition C46 or the transition condition C45 is satisfied.

[0303] If it is determined that the maintenance condition C46 is satisfied, the control unit state is maintained in the condition satisfaction waiting state S41. If the control unit state is maintained in the condition satisfaction waiting state S41, in the next control cycle, the robot control unit 600 again operates according to the flowchart of Fig. 22. On the other hand, if it is determined that the transition condition C45 is satisfied, the control unit state transitions to the creation waiting state S10 in step s234.

[0304] <Collision Mitigation-Related State> The collision mitigation-related state S5 is a state in which processing related to mitigating a collision with the robot 2 is executed. In the collision mitigation-related state S5, the operation control unit 610 determines a movement destination (also referred to as a mitigation movement destination) of the arm 20 to mitigate the collision with the robot 2. Next, in the collision mitigation-related state S5, the operation control unit 610 causes the operation planning unit 648 to set a target movement of the arm 20 from the mid-movement stopping position determined in the second priority determination state S33 of the re-creation-related state S3 to the mitigation movement destination. Then, in the collision mitigation-related state S5, the operation control unit 610 causes the communication control unit 647 to control the communication unit 68 so that the communication unit 68 transmits generated target movement data indicating a generated target movement of the arm 20 from the mid-movement stopping position to the mitigation movement destination to the arm control unit 3. This mitigates the collision with the robot 2. The control unit 60 controls the arm 20 to cause the robot 2 to execute a collision mitigation process to mitigate the collision with the robot 2. The collision mitigation related state S5 can transition to, for example, an idle state S0 and an error handling state S99.

[0305] The collision mitigation-related state S5 has, for example, four sub-states: a destination determination state S50, a creation waiting state S51, a writing state S52, and a mitigation waiting state S53. The destination determination state S50 is a state in which a mitigation destination determination process is executed to determine a mitigation destination of the arm 20. When the control unit state is the stop waiting state S40, if transition condition C42 is satisfied, the control unit state transitions from the stop waiting state S40 to the destination determination state S50. The mitigation destination is also the stopping position of the arm 20.

[0306] The state conditions that are determined when the control unit state is in the destination determination state S50 include a maintenance condition D52 that maintains the destination determination state S50, a transition condition D51 that transitions the control unit state to the creation waiting state S51, and a common transition condition C99.

[0307] The condition for the maintenance condition D52 to be satisfied is that the relaxation destination determination process is being executed, and the condition for the transition condition D51 to be satisfied is that the relaxation destination determination process has been completed after the relaxation destination determination process has been determined.

[0308] In the movement mitigation destination determination process, the movement control unit 610 estimates, for example, the direction of collision and the force of collision with the robot 2. For example, the movement control unit 610 calculates, for each joint 200, the difference between the detected joint current indicated by the joint state detection data 51a and the estimated joint current indicated by the joint state estimation data 51b corresponding to the detected joint current, and can estimate the direction of collision and the force of collision with the robot 2 based on the difference for each joint 200. Note that the movement control unit 610 may similarly estimate the direction of collision and the force of collision with the robot 2 using a detected joint torque and an estimated joint torque instead of the detected joint current and the estimated joint current. Hereinafter, the direction of collision and the force of collision estimated by the movement control unit 610 may be referred to as an estimated direction of collision and an estimated force, respectively.

[0309] In the mitigation movement destination determination process, the operation control unit 610 determines a mitigation movement destination of the arm 20 based on the estimated collision direction and collision force. For example, the operation control unit 610 may determine, as the mitigation movement destination, a position obtained by moving the entire arm 20 from the mid-movement stop position determined in the second priority determination state S33 (i.e., the current stop position of the arm 20) toward the estimated collision direction by a predetermined distance according to the estimated collision force.

[0310] When the operation control unit 610 determines the collision mitigation destination, the mitigation destination determination process ends and transition condition D51 is satisfied. When transition condition D51 is satisfied, the operation control unit 610 updates the set end position data in the memory area 668 so that the set end position data indicates the collision mitigation destination. The operation control unit 610 also updates the set start position data in the memory area 668 so that the set start position data indicates the mid-movement stop position determined in the second priority determination state S33 (i.e., the current stop position of the arm 20). When the operation control unit 610 updates the set start position data and the set end position data, it transitions the control unit state from the destination determination state S50 to the creation wait state S51.

[0311] In addition, when the control unit state is in the destination determination state S50, if an error occurs in the control system 6 and the common transition condition C99 is satisfied, the operation control unit 610 transitions the control unit state from the destination determination state S50 to the error response state S99 regardless of whether other conditions such as the maintenance condition D52 are satisfied or not.

[0312] FIG. 23 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the destination determination state S50. When the control unit state transitions to the destination determination state S50, first, in step s241, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error handling state S99 in step s244. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s242 whether the maintenance condition D52 or the transition condition D51 is satisfied. If it is determined that the maintenance condition D52 is satisfied, the control unit state is maintained in the destination determination state S50. When the control unit state is maintained in the destination determination state S50, the robot control unit 600 again operates according to the flowchart of FIG. 23 in the next control cycle. On the other hand, if it is determined that the transition condition D51 is satisfied, the control unit state transitions to the creation waiting state S51 in step s243.

[0313] The creation waiting state S51 is a state in which the motion planning unit 648 waits for completion of creation of a target motion for the arm 20 from the mid-movement stop position to the mitigation movement destination. When the control unit state transitions from the movement destination determination state S50 to the creation waiting state S51, the motion control unit 610 updates the execution feasibility data in the memory area 668 so that the execution feasibility data indicates execution permission, in order to instruct the motion planning unit 648 to execute creation of a target motion for the arm 20 from the mid-movement stop position to the mitigation movement destination. If the execution feasibility data in the memory area 668 indicates execution permission, the motion planning unit 648 creates a target motion based on the set start position data, set end position data, robot data, object data, obstacle data, and upper limit value combination in the memory area 668. When the control unit state is in the creation waiting state S51, the set start position data indicates a mid-movement stop position (the current stop position of the arm 20), and the set end position data indicates a collision mitigation movement destination. When the motion planning unit 648 completes creating the target motion of the arm 20 from the mid-movement stopping position to the collision mitigation destination, it writes the created target motion data to memory area 659 and also writes the starting address of the created target motion data to memory area 658.

[0314] In this way, when a collision with the robot 2 occurs, the robot control unit 600 determines a movement destination of the arm 20 to mitigate the collision with the robot 2, and updates the execution feasibility data in the storage unit 65 so that the execution feasibility data indicates permission for execution. After the arm 20 stops at the mid-movement stopping position, when the execution feasibility data in the storage unit 65 indicates permission for execution, the motion planning unit 648 creates a target motion of the arm 20 from the mid-movement stopping position to the mitigation movement destination.

[0315] The state conditions that are determined when the control unit state is in the creation waiting state S51 include, for example, a maintenance condition C51 that maintains the creation waiting state S51, a transition condition C53 that transitions the control unit state to the write state S52, transition conditions C52 and D53 that transition the control unit state to the idle state S0, and a common transition condition C99.

[0316] The condition for the maintenance condition C51 to be satisfied is that the motion planning unit 648 is executing the desired motion creation process. The condition for the transition condition C53 to be satisfied is that the desired motion of the arm 20 has been successfully created in the desired motion creation process and the desired motion creation process has been completed.

[0317] The condition for transition condition C52 to be satisfied is that the creation of a target motion for the arm 20 has failed in the target motion creation process. Similarly to transition conditions D11 and D34, the condition for transition condition D53 to be satisfied is that the execution time of the target motion creation process is too long. Specifically, transition condition D53 is satisfied when the execution time of the target motion creation process reaches a sixth predetermined time. The method for determining whether transition condition D53 is satisfied is the same as the method for determining whether transition condition D11 is satisfied. The satisfaction of transition condition D53 takes precedence over the satisfaction of maintenance condition C51. When the control unit state is in the creation waiting state S51, if the operation control unit 610 determines, based on the output of timer 60b, that the execution time of the target motion creation process has reached the sixth predetermined time, the operation control unit 610 transitions the control unit state from the creation waiting state S51 to the idle state S0.

[0318] In addition, when the control unit state is in the creation waiting state S51, if an error occurs in the control system 6 and the common transition condition C99 is met, the operation control unit 610 transitions the control unit state from the creation waiting state S51 to the error response state S99 regardless of whether other conditions such as the maintenance condition C51 are met.

[0319] When the control unit state is in the creation wait state S51, if the motion planning unit 648 successfully creates a target motion and transition condition C53 is satisfied, the motion control unit 610 rewrites the content of the execution feasibility data in the memory area 668 so that the execution feasibility data indicates execution not permitted, and transitions the control unit state from the creation wait state S51 to the write state S52. Furthermore, if transition conditions C52 and D53 are satisfied, the motion control unit 610 rewrites the content of the execution feasibility data in the memory area 668 so that the execution feasibility data indicates execution not permitted, and transitions the control unit state from the creation wait state S51 to the idle state S0. As a result, if the motion planning unit 648 fails to create a target motion or the target motion creation process times out, the arm 20 continues to stop at the mid-movement stop position.

[0320] When the control unit state transitions from the creation waiting state S51 to the idle state S0 and then to the creation waiting state S10, the operation control unit 610 updates the set start position data so that the set start position data indicates a mid-movement stop position (i.e., the current stop position of the arm 20). Thereafter, the operation control unit 610 updates the execution possibility data in the memory area 668 so that the execution possibility data indicates permission to execute, in order to instruct the operation planning unit 648 to execute creation of a target movement of the arm 20 from the mid-movement stop position to the movement end position.

[0321] When the control unit state transitions from the creation waiting state S51 to the writing state S52, the operation control unit 610 reads the top address of the target action data to be created from the memory area 658 and writes it to the memory area 667. Then, the operation control unit 610 updates the transmission permission data in the memory area 667 so that the transmission permission data indicates permission for transmission.

[0322] When the transmission permission data in memory area 667 indicates that transmission is permitted, communication control unit 647 reads out the target action data to be created from memory area 659 based on the first address in memory area 667. Then, communication control unit 647 causes communication unit 68 to transmit the read target action data to be created.

[0323] FIG. 24 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the creation waiting state S51. When the control unit state transitions to the creation waiting state S51, in step s251, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, in step s263, the control unit state transitions to the error handling state S99. On the other hand, if it is determined that the common transition condition C99 is not satisfied, in step s252, the executability data is updated so that the executability data indicates execution permission. Next, in step s253, it is determined whether the transition condition D53 is satisfied. If it is determined that the transition condition D53 is satisfied, in step s261, the control unit state transitions to the idle state S0. Thereafter, in step s262, the executability data is updated so that the executability data indicates execution prohibition. On the other hand, if it is determined that the transition condition D53 is not satisfied, in step s254, it is determined whether the maintenance condition C51 is satisfied.

[0324] If it is determined that the maintenance condition C51 is satisfied, the control unit state is maintained in the creation waiting state S51. If the control unit state is maintained in the creation waiting state S51, the robot control unit 600 again operates according to the flowchart of FIG. 24 in the next control cycle. Note that step s251 is executed only the first time after the control unit state transitions to the creation waiting state S51. On the other hand, if it is determined that the maintenance condition C51 is not satisfied, it is determined in step s255 which of the transition conditions C52 and C53 is satisfied. If it is determined that the transition condition C52 is satisfied, the control unit state transitions to the idle state S0 in step s256. Then, in step s257, the execution feasibility data is updated to indicate that execution is not permitted.

[0325] If it is determined in step s255 that the transition condition C53 is satisfied, the control unit state transitions to the write state S52 in step s258. Then, in step s259, the execution permission data is updated to indicate execution is not permitted. Thereafter, in step s260, the transmission permission data is updated to indicate transmission is permitted.

[0326] The state conditions that are determined when the control unit state is in the write state S52 include a maintenance condition C55 that maintains the write state S52, a transition condition C54 that transitions the control unit state to the relaxation waiting state S53, and a common transition condition C99.

[0327] The condition for transition condition C54 to be satisfied is that the communication unit 68 has started transmitting the created target motion data 150. Therefore, when the communication unit 68 has started transmitting the created target motion data 150, the control unit state transitions from the writing state S52 to the relaxation waiting state S53. In other words, when the arm 20 begins to move toward the relaxation destination, the control unit state transitions from the writing state S52 to the relaxation waiting state S53.

[0328] The maintaining condition C55 is that the state has not yet been reached before the communication unit 68 starts transmitting the target action data 150. Therefore, for example, when the action control unit 610 is in the middle of reading the leading address of the target action data 150 from the storage area 658, the writing state S52 is maintained.

[0329] In addition, when an error occurs in the control system 6 and the common transition condition C99 is satisfied, the operation control unit 610 transitions the control unit state from the writing state S52 to the error response state S99 regardless of whether other conditions such as the maintenance condition C55 are satisfied or not.

[0330] FIG. 25 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the writing state S52. When the control unit state transitions to the writing state S52, first, in step s271, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, the control unit state transitions to the error handling state S99 in step s274. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s272 whether the maintaining condition C55 or the transition condition C54 is satisfied. If it is determined that the maintaining condition C55 is satisfied, the control unit state is maintained in the writing state S52. When the control unit state is maintained in the writing state S52, the robot control unit 600 again operates according to the flowchart of FIG. 25 in the next control cycle. On the other hand, if it is determined that the transition condition C54 is satisfied, the control unit state transitions to the relaxation waiting state S53 in step s273.

[0331] The relaxation waiting state S53 is a state in which the robot 2 waits for the completion of movement to mitigate the collision with the robot 2. The state conditions determined when the control unit state is in the relaxation waiting state S53 include, for example, a maintenance condition C56 that maintains the relaxation waiting state S53, a transition condition C57 that transitions the control unit state to the idle state S0, and a common transition condition C99.

[0332] The condition for the maintenance condition C56 to be met is that the communication unit 68 is currently transmitting the created target motion data 150. The condition for the transition condition C57 to be met is that the communication unit 68 has completed transmitting the created target motion data 150. When the communication unit 68 has completed transmitting the created target motion data 150, the arm 20 moves to the mitigation destination, completing the mitigation of the collision with the robot 2. When the transition condition C57 is met, the operation control unit 610 updates the transmission permission data in the memory area 667 so that the transmission permission data indicates that transmission is not permitted. Thereafter, the operation control unit 610 transitions the control unit state from the mitigation waiting state S53 to the idle state S0.

[0333] When the control unit state transitions from the relaxation wait state S53 to the idle state S0 and then to the creation wait state S10, the operation control unit 610 updates the set start position data so that the set start position data indicates the relaxation movement destination (i.e., the current stop position of the arm 20). Thereafter, the operation control unit 610 updates the execution possibility data in the memory area 668 so that the execution possibility data indicates permission to execute, in order to instruct the operation planning unit 648 to execute creation of a target movement of the arm 20 from the relaxation movement destination to the movement end position.

[0334] In addition, when the control unit state is in the relaxation waiting state S53, if an error occurs in the control system 6 and the common transition condition C99 is met, the operation control unit 610 transitions the control unit state from the relaxation waiting state S53 to the error response state S99 regardless of whether other conditions such as the maintenance condition C56 are met.

[0335] FIG. 26 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the relaxation waiting state S53. When the control unit state transitions to the relaxation waiting state S53, first, in step s281, it is determined whether the common transition condition C99 is satisfied. If it is determined that the common transition condition C99 is satisfied, in step s285, the control unit state transitions to the error handling state S99. On the other hand, if it is determined that the common transition condition C99 is not satisfied, it is determined in step s282 whether the maintenance condition C56 or the transition condition C57 is satisfied. If it is determined that the maintenance condition C56 is satisfied, the control unit state is maintained in the relaxation waiting state S53. When the control unit state is maintained in the relaxation waiting state S53, in the next control cycle, the robot control unit 600 again operates according to the flowchart of FIG. 26. On the other hand, if it is determined that the transition condition C57 is satisfied, in step s283, the transmission permission data is updated to indicate that transmission is not permitted. Thereafter, in step s284, the control unit state transitions to the idle state S0.

[0336] <Regarding the Error Response State> The error response state S99 is a state in which processing (also referred to as error response processing) is performed to respond to an error that has occurred in the control system 6. FIG. 27 is a flowchart showing an example of the operation of the robot control unit 600 when the control unit state is in the error response state S99. When the control unit state transitions to the error response state S99, in step s291, the operation control unit 610 executes error response processing. Then, in step s292, the operation control unit 610 transitions the control unit state from the error response state S99 to the idle state S0.

[0337] In the error handling process, the operation control unit 610 may, for example, write system error notification data indicating that an error has occurred in the control system 6 to the storage unit 65. In this case, for example, when the host control unit 640 confirms that the system error notification data has been written in the storage unit 65, it may cause the control system 6 to execute a notification process to notify the user that an error has occurred in the control system 6. For example, if the control system 6 includes a display unit, the host control unit 640 may cause the display unit to display information indicating the occurrence of an error. Furthermore, if the control system 6 includes a buzzer, the host control unit 640 may sound the buzzer.

[0338] Furthermore, if the arm 20 is operating when the state transitions to the error response state S99, the operation control unit 610 may stop the operation of the arm 20 in the error response processing. At this time, the operation control unit 610 can stop the operation of the arm 20 by updating the transmission permission data in the memory area 667 so that the transmission permission data indicates that transmission is not permitted. When the control unit state transitions from the error response state S99 to the idle state S0 and then to the creation waiting state S10, the operation control unit 610 updates the setting start position data so that the setting start position data indicates the current stop position of the arm 20. Thereafter, the operation control unit 610 updates the content of the execution permission data in the memory area 668 so that the execution permission data indicates that execution is permitted.

[0339] In the operation control unit 610 having the above-described multiple states, after the control system 6 is started, the control unit state first enters an initialization wait state S100. Thereafter, when the initialization of the control system 6 is completed, the control unit state transitions to an idle state S0. When the end effector 25 holds the object 10 while the control unit state is in the idle state S0, the host control unit 640 outputs operation start request data. When the control device 640 outputs the operation start request data, the control unit state transitions to a production-related state S1. When the control unit state is in the production-related state S, the arm 20 starts a holding and moving operation, and thereafter, when the arm 20 moves to the movement end position of the holding and moving operation, the control unit state transitions to the idle state S0. When the end effector 25 releases the object 10 while the control unit state is in the idle state S0, the host control unit 640 outputs operation start request data. When the control device 640 outputs the operation start request data, the control unit state transitions to a production-related state S1. When the control unit state is in the creation-related state S, the arm 20 starts a non-holding movement operation, and then, when the arm 20 moves to the end position of the non-holding movement operation, the control unit state transitions to the idle state S0. Then, when the end effector 25 holds the next object 10, the upper control unit 640 outputs operation start request data. When the control device 640 outputs the operation start request data, the control unit state transitions to the creation-related state S1, and the arm 20 starts a holding movement operation again. Thereafter, the control system 6 operates in the same manner, and the robot 2 moves the objects 10 one by one from the source area to the destination area.

[0340] <Example of State Transition of Motion Control Unit> <When the Upper Limit Value Combination is Changed> FIG. 28 is a schematic diagram showing an example of how the state of the control unit changes when the upper limit value combination is changed during operation of the arm 20 and a target motion of the arm 20 is recreated. FIG. 28 not only shows how the state of the control unit changes, but also an example of how the rotation angle of the target joint 200 changes, an example of how the transmission feasibility data in the memory area 667 changes, and an example of how the execution feasibility data in the memory area 668 changes. In the example of FIG. 28 , the transmission feasibility data indicates "1" if transmission is permitted and "0" if transmission is not permitted. Also, in the example of FIG. 28 , the execution feasibility data indicates "1" if execution is permitted and "0" if execution is not permitted. The same applies to FIGS. 32 and 37 described below.

[0341] Figure 29 is a schematic diagram showing an example of the maintenance conditions and transition conditions that are satisfied when the control unit state changes as shown in Figure 28. In Figure 29, arrows corresponding to the satisfied maintenance conditions and transition conditions are indicated by thick lines. Figures 30 and 31 are schematic diagrams showing an example of the operations of the robot control unit 600, memory area 658, memory area 668, action planning unit 648, memory area 657, memory area 659, memory area 667, and communication control unit 647 when the control unit state changes as shown in Figure 28.

[0342] When the control unit state is in the idle state S0, if the host control unit 640 requests the robot control unit 600 to start operating the arm 20 (step s301 in FIG. 30 ), the control unit state transitions from the idle state S0 to a creation-related state S1. When the control unit state transitions to the creation-related state S1, the robot control unit 600 updates the execution feasibility data in the memory area 668 so that the execution feasibility data indicates execution permission (step s302). If the execution feasibility data read from the memory area 668 indicates execution permission (step s303), the motion planning unit 648 creates a target motion for the arm 20 and writes the created target motion data to the memory area 659 (step s304). Furthermore, the motion planning unit 648 writes setting success notification data to the memory area 658 indicating that the target motion for the arm 20 has been successfully created in the target motion creation process and that the target motion creation process has been completed (step s305). When the robot control unit 600 reads the setting success notification data from the memory area 658 (step s306), it updates the transmission permission data in the memory area 667 so that the transmission permission data indicates transmission permission (step s307). When the transmission permission data read from the memory area 667 indicates transmission permission, the hospital visit control unit 647 reads the created target motion data from the memory area 659 (step s308). Then, the communication control unit 647 causes the communication unit 68 to transmit the read created target motion data. When the communication unit 68 starts transmitting the created target motion data, the communication control unit 647 writes sending notification data to the memory area 657 (step s309). When the robot control unit 600 reads the sending notification data from the memory area 657 (step s310), it transitions the control unit state from the creation-related state S1 to the operation monitoring state S2.

[0343] When the control unit state is in the operating monitoring state S2, if the upper limit value combination to be used determined by the condition determination unit 620 does not match the current upper limit value combination in the memory area 668, in other words, if there is a request to change the upper limit value combination (step s311), the operation control unit 610 updates the current upper limit value combination with the upper limit value combination to be used. This changes the upper limit value combination in the memory area 668. When the current upper limit value combination is changed (transition condition D21 is met), the control unit state transitions from the operating monitoring state S2 to the re-creation-related state S3.

[0344] When the control unit state is the re-creation-related state S3, if the motion control unit 610 determines that the current target motion is not prioritized (transition condition D31 is satisfied), the robot control unit 600 updates the execution feasibility data in the memory area 668 so that the execution feasibility data indicates execution permission (step s312 in FIG. 31 ). If the execution feasibility data read from the memory area 668 indicates execution permission (step s313), the motion planning unit 648 recreates the target motion of the arm 20 from the switching timing to the movement end position based on the updated upper limit value combination in the memory area 668. Then, the motion planning unit 648 writes the first recreated target motion data to the memory area 659 (step s314). The motion planning unit 648 also writes the setting success notification data to the memory area 658 (step s315). When the robot control unit 600 reads the setting success notification data from the memory area 658 (step s316), it updates the transmission permission data in the memory area 667 so that the transmission permission data indicates transmission permission (step s317). If the transmission permission data read from the memory area 667 indicates transmission permission, the communication control unit 647 reads the first recreated target motion data from the memory area 659 (step s318). Then, the communication control unit 647 causes the communication unit 68 to transmit the read first recreated target motion data. When the communication unit 68 starts transmitting the first recreated target motion data, the communication control unit 647 writes sending notification data to the memory area 657 (step s319). When the robot control unit 600 reads the sending notification data from the memory area 657 (step s320), it transitions the control unit state from the rebuild-related state S3 to the operation monitoring state S2. When the communication unit 68 finishes transmitting the first recreated target motion data, the communication control unit 647 writes the preparation state notification data to the memory area 657 (step s321). After that, the robot control unit 600 reads the preparation state notification data from the memory area 657 (step s322) and transitions the control unit state to the idle state S0.

[0345] When the control unit state is in the in-motion monitoring state S2, when a switching timing occurs, the generated target motion of the arm 20 switches to the recreated target motion. Thereafter, when the arm 20 moves to the movement end position and the arm movement motion ends, the control unit state transitions from the in-motion monitoring state S2 to the idle state S0. In Figure 28, the thick dashed dotted line shows how the rotation angle of the target joint 200 changes after the motion of the arm 20 is changed from the switching timing. Furthermore, the thin dotted line shows how the rotation angle of the target joint 200 changes if the motion of the arm 20 is not changed from the switching timing. The same dashed dotted lines and thin dotted lines are used in the following Figures 32 and 37.

[0346] <When Arm Operation Automatically Resumes After Arm Stop> FIG. 32 is a schematic diagram showing an example of how the control unit state changes when the arm 20 stops and then automatically resumes operation. FIG. 32 shows not only how the control unit state changes, but also an example of how the rotation angle of the target joint 200 changes, an example of how the transmission feasibility data in the memory area 667 changes, and an example of how the execution feasibility data in the memory area 668 changes. FIG. 33 is a schematic diagram showing an example of the maintenance conditions and transition conditions that are met when the control unit state changes as shown in FIG. 32. In FIG. 32, arrows corresponding to the met maintenance conditions and transition conditions are indicated by thick lines. FIGS. 34 to 36 are schematic diagrams showing an example of the operations of the robot control unit 600, memory area 658, memory area 668, action planning unit 648, memory area 657, memory area 659, memory area 667, and communication control unit 647 when the control unit state changes as shown in FIG. 32.

[0347] In the example of Fig. 32, similar to the example of Fig. 28, the control unit state transitions from the idle state S0 to the creation-related state S1, and then to the in-operation monitoring state S2. At this time, as shown in Fig. 34, steps s351 to s360, which are similar to steps s301 to s310 in Fig. 30, are executed. When the control unit state is in the in-operation monitoring state S2, if the host control unit 640 outputs pause request data, or if it becomes necessary to stop the arm 20 midway for a reason other than a collision with the robot 2 (satisfaction of transition condition C23), in other words, when the robot control unit 600 receives a stop request (step s361), the control unit state transitions from the in-operation monitoring state S2 to the re-creation-related state S3.

[0348] When the control unit state is the re-creation-related state S3, if the motion control unit 610 determines that the current target motion is not prioritized (transition condition D35 is satisfied), the robot control unit 600 updates the execution feasibility data in the memory area 668 so that the execution feasibility data indicates execution permission (step s362 in FIG. 35 ). If the execution feasibility data read from the memory area 668 indicates execution permission (step s363), the motion planning unit 648 recreates the target motion of the arm 20 from the switching timing to the mid-movement stopping position. The motion planning unit 648 then writes second recreated target motion data to the memory area 659 (step s364). The motion planning unit 648 also writes setting success notification data to the memory area 658 (step s365). After reading the setting success notification data from the memory area 658 (step s366), the robot control unit 600 updates the transmission feasibility data in the memory area 667 so that the transmission feasibility data indicates transmission permission (step s367). If the transmission permission data read from the storage area 667 indicates that transmission is permitted, the communication control unit 647 reads the second recreated target motion data from the storage area 659 (step s368). The communication control unit 647 then causes the communication unit 68 to transmit the read second recreated target motion data. When the communication unit 68 starts transmitting the second recreated target motion data, the communication control unit 647 writes transmission notification data to the storage area 657 (step s368a). When the robot control unit 600 reads the transmission notification data from the storage area 657 (step s368b), the control unit state transitions from the recreate-related state S3 to the stop-waiting state S40 of the stop-related state S4. When the communication unit 68 finishes transmitting the second recreated target motion data, the communication control unit 647 writes preparation state notification data to the storage area 657 (step s369). Thereafter, the robot control unit 600 reads the preparation state notification data from the memory area 657 (step s370), and transitions the control unit state to a condition satisfaction waiting state S41.

[0349] When the control unit state is in the stop waiting state S40, the creation target motion of the arm 20 switches to the recreated target motion when a switching timing occurs. Then, the arm 20 moves to a mid-movement stop position and stops, and the control unit state transitions to the condition satisfaction waiting state S41. Then, when the priority data 700 indicates that the operation of the robot 2 is prioritized, and there is no longer any need to stop the arm 20 mid-movement (transition condition C45 is satisfied), in other words, when the robot control unit 600 receives a resume request (step s371), the control unit state transitions from the condition satisfaction waiting state S41 to the creation-related state S1.

[0350] When the control unit state is the creation-related state S1, the robot control unit 600 updates the execution feasibility data in the memory area 668 so that the execution feasibility data indicates execution permission (step s372 in FIG. 36 ). If the execution feasibility data read from the memory area 668 indicates execution permission (step s373), the motion planning unit 648 creates a target motion for the arm 20 from the mid-movement stopping position to the movement end position and writes the created target motion data to the memory area 659 (step s374). The motion planning unit 648 also writes setting success notification data to the memory area 658 (step s375). After reading the setting success notification data from the memory area 658 (step s376), the robot control unit 600 updates the transmission feasibility data in the memory area 667 so that the transmission feasibility data indicates transmission permission (step s377). If the transmission feasibility data read from the memory area 667 indicates transmission permission, the hospital visit control unit 647 reads the created target motion data from the memory area 659 (step s378). The communication control unit 647 then causes the communication unit 68 to transmit the read target motion data to be created. This restarts the operation of the arm 20. When the communication unit 68 starts transmitting the target motion data to be created, the communication control unit 647 writes transmission notification data to the memory area 657 (step s379). When the robot control unit 600 reads the transmission notification data from the memory area 657 (step s380), it transitions the control unit state from the creation-related state S1 to the operation-monitoring state S2.

[0351] When the communication unit 68 finishes transmitting the created target motion data, the communication control unit 647 writes the preparation state notification data to the memory area 657 (step s381). Thereafter, the robot control unit 600 reads the preparation state notification data from the memory area 657 (step s382) and transitions the control unit state to the idle state S0. As a result, when the control unit state is the in-motion monitoring state S2 and the arm 20 moves to the movement end position and the arm movement operation ends, the control unit state transitions from the in-motion monitoring state S2 to the idle state S0.

[0352] <When a Collision with the Robot Occurs During Arm Operation> FIG. 37 is a schematic diagram showing an example of how the control unit state changes when a collision with the robot 2 occurs during arm operation. FIG. 37 shows not only how the control unit state changes, but also an example of how the rotation angle of the target joint 200 changes, an example of how the transmission feasibility data in the memory area 667 changes, and an example of how the execution feasibility data in the memory area 668 changes. FIG. 38 is a schematic diagram showing an example of the maintenance conditions and transition conditions that are met when the control unit state changes as shown in FIG. 37. In FIG. 38, arrows corresponding to the met maintenance conditions and transition conditions are indicated by thick lines. FIGS. 39 to 41 are schematic diagrams showing an example of the operation of the robot control unit 600, memory area 658, memory area 668, action planning unit 648, memory area 657, memory area 659, memory area 667, and communication control unit 647 when the control unit state changes as shown in FIG. 37.

[0353] In the example of Fig. 37, similar to the example of Fig. 28, the control unit state transitions from the idle state S0 to the creation-related state S1, and then to the operation-monitoring state S2. At this time, as shown in Fig. 39, steps s401 to s410 similar to steps s301 to s310 shown in Fig. 30 are executed. When the control unit state is in the operation-monitoring state S2, if a collision with the robot 2 occurs and it becomes necessary to stop the arm 20 midway (transition condition C23 is satisfied, step s411), the control unit state transitions from the operation-monitoring state S2 to the re-creation-related state S3.

[0354] When the control unit state is in the rebuild-related state S3, if the motion control unit 610 determines that the current target motion is not to be prioritized (transition condition D35 is satisfied), the motion planning unit 648 rebuilds the target motion of the arm 20 from the switching timing to the mid-movement stop position and writes second recreated target motion data to the memory area 659. At this time, as shown in FIG. 40 , steps s412 to s417, which are similar to steps s362 to s368 shown in FIG. 35 , are executed. Thereafter, when the communication unit 68 starts transmitting the second recreated target motion data, the control unit state transitions from the rebuild-related state S3 to the stop-related state S4. At this time, as shown in FIG. 40 , steps s418, s418a, and s418b, which are similar to steps s368, s368a, and s368b shown in FIG. 35 , are executed.

[0355] If the control unit state is in the stop-related state S4, when a switching timing occurs, the generated target motion of the arm 20 switches to the recreated target motion. Then, the arm 20 moves to a mid-movement stop position and stops. At this time, as shown in Figure 40, steps s419 and s420, which are similar to steps s369 and s370 shown in Figure 35, are executed. When the arm 20 stops, the control unit state transitions from the stop-related state S4 to the collision mitigation-related state S5.

[0356] When the control unit state is the collision mitigation-related state S5, the motion control unit 610 determines a mitigation movement destination for the arm 20. The robot control unit 600 then updates the execution feasibility data in the memory area 668 so that the execution feasibility data indicates permission (step s421 in FIG. 41 ). If the execution feasibility data read from the memory area 668 indicates permission (step s422), the motion planning unit 648 creates a target motion for the arm 20 from the mid-movement stopping position to the mitigation movement destination and writes the created target motion data to the memory area 659 (step s423). The motion planning unit 648 also writes setting success notification data to the memory area 658 (step s424). After reading the setting success notification data from the memory area 658 (step s425), the robot control unit 600 updates the transmission feasibility data in the memory area 667 so that the transmission feasibility data indicates permission (step s426). If the transmission permission data read from the storage area 667 indicates that transmission is permitted, the communication control unit 647 reads the created target motion data from the storage area 659 (step s427). Then, the communication control unit 647 causes the communication unit 68 to transmit the read created target motion data. The communication unit 68 starts transmitting the created target motion data. This resumes the movement of the arm 20 and starts mitigating the collision with the robot 2. When the communication unit 68 starts transmitting the created target motion data, the communication control unit 647 writes transmission notification data to the storage area 657 (step s428). The robot control unit 600 reads the transmission notification data from the storage area 657 (step s429). When the communication unit 68 finishes transmitting the created target motion data, that is, when the arm 20 has moved to the mitigation destination and mitigation of the collision with the robot 2 has finished, the communication control unit 647 writes preparation state notification data to the storage area 657 (step s430). Thereafter, the robot control unit 600 reads out the preparation state notification data from the memory area 657 (step s431), and transitions the control unit state from the collision mitigation-related state S5 to the idle state S0.

[0357] As can be understood from the above explanation, in this example, the robot control unit 600 periodically starts executing the process related to the control of the robot 2 regardless of the creation status of the target motion of the motion planning unit 648, thereby ensuring the periodicity of the motion of the robot control unit 600. Therefore, the stability of the control of the robot 2 can be ensured.

[0358] <Example of Operation of Condition Determination Unit> Fig. 42 is a schematic diagram showing an example of the configuration of the condition determination unit 620 and an example of data input to the condition determination unit 620. As shown in Fig. 42, control unit status data 750 indicating the current control unit status is stored in the storage unit 65. The operation control unit 610 updates the control unit status data 750 in accordance with the transition of the control unit status.

[0359] Furthermore, the storage unit 65 stores dictionary data 710 indicating the conditions under which a state condition C is satisfied, which the condition determination unit 620 determines whether or not the condition is satisfied. The condition determination unit 620 determines whether or not each state condition C is satisfied based on the contents of the plurality of determination data and priority data 700 in the storage unit 65 and the dictionary data 710. Hereinafter, when there is no need to particularly distinguish between the plurality of determination data and priority data 700 used in determining whether or not a state condition C is satisfied, each of them may be referred to as determination target data.

[0360] At least one determination target data is required to determine whether a state condition C is satisfied. The dictionary data 710 includes, for each state condition C, the content of at least one determination target data for the state condition C to be satisfied. The condition determination unit 620 compares the content of the at least one determination target data with the content of the dictionary data 710 (for example, by performing a logical operation) to determine whether each state condition C is satisfied.

[0361] Hereinafter, the determination target data required for determining whether a certain state condition C is satisfied may be referred to as necessary determination target data. Which of the multiple determination target data in the storage unit 65 becomes the necessary determination target data varies depending on the state condition C.

[0362] The dictionary data 710 includes, for example, common dictionary data 720 that is common to multiple states of the operation control unit 610 (more specifically, multiple states other than the error response state S99), and multiple individual dictionary data 730, each of which individually corresponds to one state of the operation control unit 610. The dictionary data 710 is, for example, editable. The common dictionary data 720 and each individual dictionary data 730 are, for example, editable.

[0363] The common dictionary data 720 indicates the condition for establishing a transition condition C99 for the control unit state to transition to the error handling state S99. The common dictionary data 720 includes the content of at least one piece of target data for necessity determination that the common transition condition C99 is established.

[0364] Each individual dictionary data 730 corresponds to a state among a plurality of states of the operation control unit 610, in which it is determined whether or not state condition C is satisfied. Specifically, the plurality of individual dictionary data 730 correspond to an initialization waiting state S100, an idle state S0, a creation waiting state S10, a writing state S11, an operation monitoring state S2, a recreation waiting state S31, a writing state S32, a stop waiting state S40, a condition satisfaction waiting state S41, a creation waiting state S51, a writing state S52, and a relaxation waiting state S53, in which it is determined whether or not state condition C is satisfied. Each individual dictionary data 730 indicates a condition for satisfying state condition C, which is determined whether or not it is satisfied in the state corresponding to the individual dictionary data 730. Each individual dictionary data 730 includes the content of at least one necessity determination target data for satisfying state condition C, which is determined in the state corresponding to the individual dictionary data 730.

[0365] The condition determination unit 620 includes a determination unit 621 and a selection unit 622. When the operation control unit 610 is in a state other than the error response state S99, the determination unit 621 compares the content of at least one piece of target data for necessity determination with the content of the common dictionary data 720 (for example, by performing a logical operation) to determine whether the common transition condition C99 is satisfied.

[0366] The selection unit 622 selects the individual dictionary data 730 corresponding to the current control unit state indicated by the control unit state data 750 from the plurality of individual dictionary data 730 in the storage unit 65, and outputs the selected individual dictionary data 730 to the determination unit 621. However, depending on the current control unit state, there may be no individual dictionary data 730 corresponding to the current control unit state among the plurality of individual dictionary data 730 in the storage unit 65.

[0367] When the current control unit state is any one of the initialization waiting state S100, idle state S0, creation waiting state S10, writing state S11, operation monitoring state S2, recreation waiting state S31, writing state S32, stop waiting state S40, condition satisfaction waiting state S41, creation waiting state S51, writing state S52, and relaxation waiting state S53, the determination unit 621 compares (for example, performs a logical operation on) the contents of at least one of the necessity determination target data with the contents of the individual dictionary data 730 input from the selection unit 622 to determine whether a state condition C related to the current control unit state is satisfied. The state condition C related to the current control unit state is the state condition C that the condition determination unit 620 determines whether is satisfied in the current control unit state.

[0368] The determination unit 621 also determines the upper limit value combination to be used based on the plurality of determination data. Here, for example, a plurality of upper limit value combinations are prepared in the control system 6. For example, 25 upper limit value combinations are prepared. The determination unit 621 determines the upper limit value combination to be used from the 25 upper limit value combinations.

[0369] FIG. 43 is a schematic diagram showing an example of 25 types of upper limit value combinations. For example, upper limit value identification numbers from 1 to 25 are assigned to the 25 types of upper limit value combinations, respectively. For upper limit value combinations with upper limit value identification numbers from 1 to 5, the upper limit speed value is 100% of the initial value. For upper limit value combinations with upper limit value identification numbers from 6 to 10, the upper limit speed value is 90% of the initial value. For upper limit value combinations with upper limit value identification numbers from 11 to 15, the upper limit speed value is 75% of the initial value. For upper limit value combinations with upper limit value identification numbers from 16 to 20, the upper limit speed value is 60% of the initial value. For upper limit value combinations with upper limit value identification numbers from 21 to 25, the upper limit speed value is 50% of the initial value.

[0370] Furthermore, for upper limit value combinations with upper limit value identification numbers of 2, 6, 11, 16, and 21, the upper limit acceleration value is 90% of the initial value. For upper limit value combinations with upper limit value identification numbers of 1, 7, 12, 17, and 22, the upper limit acceleration value is 100% of the initial value. For upper limit value combinations with upper limit value identification numbers of 3, 8, 13, 18, and 23, the upper limit acceleration value is 110% of the initial value. For upper limit value combinations with upper limit value identification numbers of 4, 9, 14, 19, and 24, the upper limit acceleration value is 130% of the initial value. For upper limit value combinations with upper limit value identification numbers of 5, 10, 15, 20, and 25, the upper limit acceleration value is 150% of the initial value.

[0371] The storage unit 65 stores correspondence data 770 that the determination unit 621 uses when determining an upper limit value combination to be used. The correspondence data 770 is data that indicates, for each piece of determination data, the correspondence between each content of the determination data and the upper limit value combination. The determination unit 621 determines an upper limit value combination to be used based on the content of multiple pieces of determination data and the correspondence data 770. When the determination data indicates a certain content, the determination unit 621 identifies an upper limit value combination that is associated with the certain content in the correspondence data 770, and determines the identified upper limit value combination as the upper limit value combination to be used.

[0372] 44 and 45 are schematic diagrams showing an example of the correspondence data 770. In the correspondence data 770, upper limit value combinations are represented by upper limit value identification numbers. As shown in Figures 44 and 45, in the correspondence data 770, for each piece of determination data, an upper limit value identification number is associated with each piece of data that the determination data can take (in other words, each content that the determination data can take).

[0373] In the examples of FIGS. 44 and 45 , upper limit identification number 1, upper limit identification number 19, and upper limit identification number 19 are associated with the possible data "01h" (ready state notification data), data "02h" (operation start request data), data "04h" (pause request data), and data "08h" (stop request data) of the higher-level control unit data 640a. For example, when the higher-level control unit data 640a indicates 01h (ready state notification data), the determination unit 621 determines the upper limit value combination of upper limit identification number 1 as the upper limit value combination to be used. Also, when the higher-level control unit data 640a indicates 04h (pause request data), the determination unit 621 determines the upper limit value combination of upper limit identification number 19 as the upper limit value combination to be used. When pause request data or stop request data is output from the higher-level control unit 640, the upper limit value combination to be used has an acceleration upper limit value greater than the initial value and a speed upper limit value smaller than the initial value. Therefore, if the arm 20 is stopped midway because the upper control unit 640 has made a request to the robot control unit 600 to temporarily suspend or stop the arm 20, the time until the arm 20 stops can be shortened.

[0374] In the examples of Figures 44 and 45, upper limit identification number 1 is associated with each of the data "01h" (preparation state notification data), data "02h" (recognition in progress notification data), data "04h" (recognition completion notification data), and data "F0h" (error notification data) that the recognition unit data 641a can take.

[0375] In the examples of Figures 44 and 45, upper limit value identification number 1 is associated with each of the possible data "01h" (preparation state notification data), data "02h" (detection in progress notification data), data "04h" (detection completion notification data), and data "F0h" (error notification data) that the obstacle detection unit data 642a can take.

[0376] In the examples of Figures 44 and 45, the data "01h" (preparation status notification data), data "02h" (slight overweight notification data), data "04h" (large overweight notification data), data "08h" (collision occurrence notification data), and data "F0h" (error notification data) that the arm sensor processing unit data 643a can take are respectively associated with upper limit value identification number 1, upper limit value identification number 6, upper limit value identification number 16, upper limit value identification number 25, and upper limit value identification number 1.

[0377] When the arm sensor processing unit 643 outputs small overweight notification data or large overweight notification data, the upper limit value for the upper limit value combination to be used is smaller than the initial value for both the upper limit value for acceleration and the upper limit value for speed. The smaller upper limit value for acceleration makes it less likely that the object 10 will fall from the end effector 25, and the smaller upper limit value for speed can shorten the time until the arm 20 stops. Therefore, when the arm 20 is stopped midway because the object weight is small or large overweight, the time until the arm 20 stops is shortened and the object 10 is less likely to fall from the end effector 25. Furthermore, when the arm sensor processing unit 643 outputs large overweight notification data, the upper limit value for the upper limit value combination to be used is smaller than when the arm sensor processing unit 643 outputs small overweight notification data, so the time until the arm 20 stops can be further shortened.

[0378] Furthermore, when collision occurrence notification data is output from the arm sensor processing unit 643, the upper limit value for the upper limit value combination to be used is set so that the upper limit value for acceleration is greater than the initial value and the upper limit value for velocity is smaller than the initial value. Therefore, when a collision occurs with the robot 2 and the arm 20 is stopped midway, the time until the arm 20 stops can be shortened.

[0379] In the examples of Figures 44 and 45, the data "01h" (preparation state notification data), data "03h" (fall notification data), data "05h" (low contact pressure notification data), data "07h" (slight overweight notification data), data "09h" (large overweight notification data), and data "F0h" (error notification data) that the effector sensor processing unit data 644a can take are respectively associated with upper limit value identification number 1, upper limit value identification number 16, upper limit value identification number 6, upper limit value identification number 6, upper limit value identification number 16, and upper limit value identification number 1.

[0380] When the effector sensor processing unit 644 outputs drop notification data, low contact pressure notification data, small overweight notification data, or large overweight notification data, the upper limit acceleration value and the upper limit velocity value are both smaller than their initial values ​​for the upper limit value combination being used. Therefore, if the arm 20 is stopped midway due to the target object 10 falling from the end effector 25, the time until the arm 20 stops can be shortened. Also, if the arm 20 is stopped midway due to low contact pressure between the end effector 25 and the target object 10, the time until the arm 20 stops can be shortened, and the target object 10 is less likely to fall from the end effector 25.

[0381] Furthermore, when the arm sensor processing unit 643 outputs drop notification data or excessive weight notification data, the upper speed limit value of the upper limit value combination to be used is smaller than when the arm sensor processing unit 643 outputs low contact pressure notification data or small excessive weight notification data. Therefore, when the arm 20 is stopped midway because the object 10 has fallen from the end effector 25 or because the object weight is excessively heavy, the time until the arm 20 stops can be further shortened.

[0382] In the examples of Figures 44 and 45, the data "01h" (preparation status notification data), data "02h" (warning notification data), data "04h" (emergency notification data), and data "F0h" (error notification data) that the human detection unit data 645a can take are respectively associated with upper limit value identification number 1, upper limit value identification number 13, upper limit value identification number 19, and upper limit value identification number 1.

[0383] When the human detection unit 645 outputs warning notification data or emergency occurrence notification data, the upper limit value combination to be used results in an acceleration upper limit value that is greater than the initial value and a speed upper limit value that is smaller than the initial value. Therefore, if the arm 20 is stopped midway due to the presence of a person within the human detection range AR2, the time until the arm 20 stops can be shortened. Furthermore, when the human detection unit 645 outputs emergency occurrence notification data, the upper limit value combination to be used results in a greater acceleration upper limit value and a smaller speed upper limit value compared to when the human detection unit 645 outputs warning notification data. Therefore, if the arm 20 is stopped midway due to a person being relatively close to the robot 2 within the human detection range AR2, the time until the arm 20 stops can be further shortened.

[0384] 44 and 45, the upper limit value identification number 1, the upper limit value identification number 19, the upper limit value identification number 19, and the upper limit value identification number 1 correspond to the possible data "01h" (ready state notification data), the data "02h" (stop request data), the data "04h" (stop request data), and the data "F0h" (error notification data) that the PLC control unit data 646a can take. When the PLC control unit 646 outputs pause request data or stop request data, the upper limit value for the upper limit value combination to be used is greater than the initial value and the upper limit value for the velocity is less than the initial value. Therefore, if the arm 20 is stopped midway because the PLC control unit 646 has issued a pause request or stop request for the arm 20 to the robot control unit 600, the time until the arm 20 stops can be shortened.

[0385] In the examples of Figures 44 and 45, upper limit identification number 1 is associated with each of the data "01h" (preparation status notification data), data "02h" (transmitting data), and data "F0h" (error notification data) that the communication control unit data 647a can take.

[0386] In the examples of Figures 44 and 45, upper limit value identification number 1 is associated with each of the possible data types of the operation planning section data 648a: "01h" (preparation status notification data), "02h" (setting in progress notification data), "04h" (setting success notification data), "09h" (setting failure notification data), and "F0h" (error notification data).

[0387] In addition, if the multiple upper limit identification numbers corresponding to the current contents of the multiple determination data are not the same, the determination unit 621 determines the upper limit combination with the largest upper limit identification number among the multiple upper limit identification numbers as the upper limit combination to be used. For example, consider a case where the recognition unit data 641a, the arm sensor processing unit data 643a, and the human detection unit data 645a indicate "02h," and the other determination data indicate "01h." In this case, the determination unit 621 determines the upper limit combination with upper limit identification number 13, which corresponds to "02h" in the human detection unit data 645a, as the upper limit combination to be used. The upper limit identification number can also be considered to indicate a priority level when determining which of the multiple candidates to be used as the upper limit combination to be used when there are multiple candidates for the upper limit combination to be used.

[0388] In the above example, 25 types of upper limit value combinations are prepared, but the number of types of upper limit value combinations that can be prepared is not limited to this. Furthermore, the values ​​of the upper limit acceleration value and the upper limit velocity value in the upper limit value combination are not limited to the example in FIG. 43 .

[0389] <Specific example of dictionary data> The following describes an example of the common dictionary data 720 and an example of the individual dictionary data 730. In the following description, the priority data 700 indicates data "01h" when the operation of the robot 2 is prioritized, and indicates data "02h" when the safety of the robot 2 is prioritized.

[0390] 46 is a schematic diagram showing an example of the common dictionary data 720. The common dictionary data 720 includes data 721 (also referred to as designated data 721) that the target data for necessity determination should indicate in order for the transition condition C99 to be satisfied. One piece of data that the target data for necessity determination can take may be the designated data 721, or each piece of data that is part of the data that the target data for necessity determination can take may be the designated data 721.

[0391] Furthermore, the common dictionary data 720 includes relational data 725 that indicates, when multiple pieces of target data for necessity determination are required to determine whether transition condition C99 is satisfied, whether all of the multiple pieces of target data for necessity determination should indicate the specified data 721, or whether at least one of the multiple pieces of target data for necessity determination should indicate the specified data 721, in order for transition condition C99 to be satisfied. Hereinafter, the phrase "and" refers to the fact that all of the multiple pieces of target data for necessity determination should indicate the specified data 721 in order for transition condition C99 to be satisfied. Furthermore, the phrase "or" refers to the fact that at least one of the multiple pieces of target data for necessity determination should indicate the specified data 721 in order for transition condition C99 to be satisfied.

[0392] In the example of Fig. 46, among the plurality of determination target data, each data other than the higher-level control unit data and the priority data is the necessary determination target data. In Fig. 46 and Figs. 47 to 58 described below, among the plurality of determination target data, determination target data that is not the necessary determination target data, that is, the determination data that is not used in determining whether the status condition C is established, is indicated by "-".

[0393] 46, the relationship data 725 indicates "or." In this case, if there are multiple pieces of target data for necessity determination with respect to the transition condition C99, the determination unit 621 determines that the common transition condition C99 is satisfied when at least one of the multiple pieces of target data for necessity determination indicates the specified data 721. Note that if the relationship data 725 indicates "and," the determination unit 621 determines that the common transition condition C99 is satisfied when all of the multiple pieces of target data for necessity determination indicate the specified data 721.

[0394] 46 , the designation data 721 for each of the recognition unit data, obstacle detection unit data, arm sensor processing unit data, effector sensor processing unit data, human detection unit data, PLC control unit data, communication control unit data, and motion planning unit data is "F0h." Regardless of the contents of the higher-level control unit data and priority data that are not subject data for necessity determination, the determination unit 621 determines that the common transition condition 99 is satisfied when at least one of the recognition unit data, obstacle detection unit data, arm sensor processing unit data, effector sensor processing unit data, human detection unit data, PLC control unit data, communication control unit data, and motion planning unit data indicates "F0h." As a result, when an error occurs in at least one of the recognition unit 641, obstacle detection unit 642, arm sensor processing unit 643, effector sensor processing unit 644, human detection unit 645, PLC control unit 646, communication control unit 647, and motion planning unit 648, i.e., when an error occurs in the control system 6, the control unit state transitions to the error handling state S99.

[0395] <Example of Individual Dictionary Data> Figures 47 to 58 are schematic diagrams showing an example of the individual dictionary data 730. Figures 47 to 58 show examples of the multiple individual dictionary data 730 corresponding to an initialization waiting state S100, an idle state S0, a creation waiting state S10, a writing state S11, an operation monitoring state S2, a recreation waiting state S31, a writing state S32, a stop waiting state S40, a condition satisfaction waiting state S41, a creation waiting state S51, a writing state S52, and a relaxation waiting state S53, respectively.

[0396] Similar to the common dictionary data 720, the individual dictionary data 730 includes data 731 (also referred to as designated data 731) that the target data for necessity determination should indicate in order to satisfy the state condition C. The designated data 731 may be one piece of data that the target data for necessity determination can take, or each piece of data that is part of the plurality of pieces of data that the target data for necessity determination can take may be the designated data 731.

[0397] Similarly to the common dictionary data 720, the individual dictionary data 730 includes relational data 735 indicating, when a plurality of pieces of target data for necessity determination are required to determine whether or not state condition C is satisfied, whether all of the plurality of pieces of target data for necessity determination should indicate the designated data 731, or whether at least one of the plurality of pieces of target data for necessity determination should indicate the designated data 731, in order for state condition C to be satisfied. Hereinafter, the phrase "and" refers to the phrase "all of the plurality of pieces of target data for subject determination should indicate the designated data 731" in order for state condition C to be satisfied. Furthermore, the phrase "or" refers to the phrase "at least one of the plurality of pieces of target data for subject determination should indicate the designated data 731" in order for state condition C to be satisfied.

[0398] <Example of individual dictionary data corresponding to initialization waiting state> When the control unit state is the initialization waiting state S100, the selection unit 622 selects individual dictionary data 730 (also referred to as individual dictionary data 730a) corresponding to the initialization waiting state S100 from the multiple individual dictionary data 730 in the storage unit 65 and outputs the selected data to the determination unit 621.

[0399] The individual dictionary data 730a indicates the conditions for satisfying the maintenance condition C102 and the transition condition C101. The individual dictionary data 730a includes the content of at least one piece of target data for necessity determination that satisfies the maintenance condition C102 and the content of at least one piece of target data for necessity determination that satisfies the transition condition C101.

[0400] 47, in the individual dictionary data 730a, the relationship data 735 for the transition condition C101 indicates "and." For the transition condition C101, of the multiple determination target data, each data other than the priority data is the necessary determination target data. The designation data 731 for each of the upper control unit data, recognition unit data, obstacle detection unit data, arm sensor processing unit data, effector sensor processing un...

Claims

1. a robot control unit that performs processing related to control of the robot that operates based on the target motion; a motion planning unit that creates the target motion of the robot based on the result of the processing by the robot control unit; at least one storage unit that stores the outputs of the robot control unit and the motion planning unit; Equipped with The robot control unit periodically starts executing the process regardless of the creation status of the target motion of the motion planning unit.

2. 2. The control system of claim 1, the motion planning unit starts creating the target motion based on a result of a first process related to the target motion among the processes periodically executed by the robot control unit, and continues creating the target motion regardless of the processing status of a second process other than the first process among the processes.

3. 3. The control system according to claim 1 or 2, the at least one storage unit stores execution permission data indicating whether execution of creation of the target action is permitted; the robot control unit updates the execution feasibility data, The action planning unit creates the target action when the execution possibility data in the at least one storage unit indicates that execution is permitted.

4. 4. The control system of claim 3, When the execution possibility data in the at least one memory unit indicates that execution is not permitted, the action planning unit stops creating the target action regardless of the creation status of the target action.

5. 4. The control system of claim 3, the robot control unit is capable of updating the execution feasibility data during operation of the robot, The motion planning unit recreates a target motion of the robot from a certain time in the future while the robot is operating when the execution feasibility data in the at least one memory unit indicates that execution is permitted.

6. 6. The control system of claim 5, When recreating a target motion of the robot from the certain timing, the motion planning unit matches the speed and acceleration of the robot at the certain timing in the re-creation of the target motion of the robot to the speed and acceleration of the robot at the certain timing in the current target motion of the robot.

7. 6. The control system of claim 5, The robot control unit, during operation of the robot, determining a stop position where the robot will stop en route to an end position of the movement of the robot, and updating the execution possibility data in the at least one memory unit so that the execution possibility data indicates permission for execution; the motion planning unit, when the execution feasibility data in the at least one memory unit indicates that execution is permitted, recreates a target motion of the robot from the certain timing until the robot stops at the mid-movement stopping position while the robot is operating.

8. 8. The control system of claim 7, the at least one storage unit stores priority data indicating whether to prioritize the operation of the robot or the safety of the robot; The robot control unit In response to the robot stopping at the mid-movement stopping position, the content of the priority data in the at least one memory unit is confirmed; When the priority data indicates that the operation of the robot is to be prioritized and it is no longer necessary to stop the robot, updating the execution possibility data in the at least one memory unit so that the execution possibility data indicates that execution is permitted, in order to instruct the operation planning unit to create and execute a target operation of the robot from the mid-movement stopping position; A control system that does not update the executable / non-executable data when the priority data indicates that safety for the robot is to be prioritized.

9. 8. The control system of claim 7, when a collision occurs with the robot, the robot control unit determines a movement destination of the robot to mitigate the collision with the robot, and updates the execution permission data in the at least one storage unit so that the execution permission data indicates permission to execute; the motion planning unit creates a target motion for the robot from the mid-movement stopping position to the destination when the execution feasibility data in the at least one memory unit indicates permission for execution after the robot has stopped at the mid-movement stopping position.

10. 6. The control system of claim 5, The robot control unit determining whether a current target motion of the robot is to be prioritized; updating the execution possibility data in the at least one storage unit so that the execution possibility data indicates permission for execution in order to instruct the operation planning unit to re-create the target operation of the robot from the certain timing when the current target operation of the robot is not to be prioritized; A control system that does not update the execution feasibility data when the current target motion of the robot is given priority.

11. 3. The control system according to claim 1 or 2, further comprising a plurality of processing units that output information necessary for controlling the robot; the at least one storage unit stores a plurality of pieces of output data that are output by the plurality of processing units at respective timings; The robot control unit has a read processing unit that periodically acquires the plurality of output data from the at least one memory unit.

12. 12. The control system of claim 11, The robot control unit identifies a control state to be set from among a plurality of predefined control states of the robot based on the plurality of output data, and performs processing according to the control state.

13. 13. The control system of claim 12, The robot control unit a condition determination unit that determines whether or not to maintain a current control state among the plurality of control states based on the plurality of output data; an operation control unit that executes a preset process in the control state that is set based on the output of the condition determination unit; A control system having:

14. 4. The control system of claim 3, further comprising a plurality of processing units that output information necessary for controlling the robot; the at least one storage unit stores a plurality of pieces of output data to be output by the plurality of processing units at respective timings; The robot control unit has a read processing unit that periodically acquires the plurality of output data from the at least one memory unit.

15. 15. The control system of claim 14, the robot has a driven part, the motion planning unit creates the desired motion of the driven part; the plurality of processing units includes a communication control unit that controls a communication unit that transmits data to a driven unit control unit that controls the driven unit; when the creation of the desired motion is completed, the motion planning unit writes created desired motion data indicating the created desired motion of the driven part into the at least one storage unit; the at least one storage unit stores transmission permission data indicating whether transmission of the created target action data is permitted; when the creation of the target motion is completed, the robot control unit updates the transmission permission data in the at least one storage unit so that the transmission permission data indicates permission for transmission; The communication control unit causes the communication unit to transmit the created target action data in the at least one storage unit when the transmission permission data in the at least one storage unit indicates permission for transmission.

16. 15. The control system of claim 14, the plurality of processing units includes a host control unit that issues instructions to the robot control unit, the upper level control unit writes first output data output by the upper level control unit into the at least one storage unit; The robot control unit updates the execution possibility data in the at least one storage unit based on the first output data in the at least one storage unit so that the execution possibility data indicates permission for execution.

17. 15. The control system of claim 14, the plurality of processing units includes a recognition unit that recognizes an end point position of a movement motion of the robot based on a camera image, the recognition unit writes second output data output by the recognition unit into the at least one storage unit; The robot control unit updates the execution possibility data in the at least one storage unit based on the second output data in the at least one storage unit so that the execution possibility data indicates permission for execution.

18. 15. The control system of claim 14, the plurality of processing units includes an obstacle detection unit that detects an obstacle that hinders the operation of the robot based on a camera image; the obstacle detection unit writes third output data output by the obstacle detection unit into the at least one storage unit; The robot control unit updates the execution possibility data in the at least one storage unit based on the third output data in the at least one storage unit so that the execution possibility data indicates permission for execution.

19. 15. The control system of claim 14, the plurality of processing units includes a sensor processing unit that performs processing using a detection result of a sensor unit that detects a state of the robot, the sensor processing unit writes fourth output data output by the sensor processing unit into the at least one storage unit; The robot control unit updates the execution possibility data in the at least one storage unit based on the fourth output data in the at least one storage unit so that the execution possibility data indicates permission.

20. 15. The control system of claim 14, the plurality of processing units includes a person detection unit that detects a person located around the robot based on a camera image, the person detection unit writes sixth output data output by the person detection unit into the at least one storage unit; The robot control unit updates the execution possibility data in the at least one storage unit based on the sixth output data in the at least one storage unit so that the execution possibility data indicates permission.

21. 15. The control system of claim 14, the robot control unit determines at least an upper acceleration limit value of an upper acceleration limit value and a upper velocity limit value of the robot based on the plurality of output data in the at least one storage unit, and writes the determined at least upper acceleration limit value into the at least one storage unit; The motion planning unit creates the target motion based on at least the upper acceleration limit value stored in the at least one memory unit.