Control device, information processing device, and method

JPWO2025009420A5Pending Publication Date: 2026-04-03
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Filing Date
2025-12-18
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

Existing robot control systems face challenges in accurately learning and executing complex operations due to the difficulty in distinguishing between different stages of motion based on trajectories alone, leading to inaccurate robot movements.

Method used

A control device and method that divide the robot's trajectory into overlapping partial trajectories, allowing for precise machine learning and operation by setting adjacent partial trajectories with overlapping portions, enabling the robot to perform predetermined actions with high precision by gradually switching between operation stages.

Benefits of technology

Enables the robot to perform predetermined operations with high precision by allowing for smooth transitions between partial trajectories, improving the accuracy of robot movements and operation control.

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

Abstract

This control device, which causes a robot to perform a predetermined operation, comprises a communication unit that performs data communication with an external apparatus, and a control unit that controls the robot by means of data communication via the communication unit. A plurality of partial trajectories are set by dividing a trajectory that indicates the movement of the robot in the predetermined operation. The plurality of partial trajectories include a first partial trajectory and a second partial trajectory that are adjacent to one other in the trajectory. The first and second partial trajectories have an overlapping section in which the first and second partial trajectories overlap, a first independent section consisting only of the first partial trajectory, and a second independent section consisting only of the second partial trajectory. In the overlapping section, the control unit causes the robot to perform the predetermined operation in accordance with both the first and second partial trajectories.
Need to check novelty before this filing date? Find Prior Art

Description

Control device, information processing device and method

[0001] The present disclosure relates to a control device and method for causing a robot to perform a predetermined operation, and an information processing device and method for controlling machine learning for causing a robot to perform a predetermined operation.

[0002] Patent Literature 1 discloses a method for generating an operation program for a dual-arm robot. This method involves specifying, through user input using a GUI, variables for a template element operation program that causes the robot to execute each element task that constitutes the robot's overall task. The template element operation program includes, as variables, one or more hand position coordinates (teaching points) that define the robot's motion (movement and posture change) required for the element task, and is configured so that the robot's motion is specified by specifying all of the hand position coordinates. In this way, an instructor who teaches the robot to move can generate an operation program for the motion operation that includes the robot's hand position coordinates simply by specifying the variables of the template element operation program using the GUI.

[0003] International Publication No. 2016 / 103307

[0004] G. Franzese, A. Meszaros, L. Peternel and J. Kober, “ILoSA: Interactive learning of stiffness and attractors,” in IROS, 2021.

[0005] The present disclosure provides a control device, an information processing device, and a method that can facilitate accurate operation of a robot.

[0006] A control device according to one aspect of the present disclosure is a control device that causes a robot to perform a predetermined operation. The control device includes a communication unit that performs data communication with an external device and a control unit that controls the robot through data communication via the communication unit. A trajectory indicating the movement of the robot during the predetermined operation is divided into a plurality of partial trajectories. The plurality of partial trajectories include a first partial trajectory and a second partial trajectory that are adjacent to each other on the trajectory. The first and second partial trajectories have an overlapping portion where the first and second partial trajectories overlap, a first independent portion consisting only of the first partial trajectory, and a second independent portion consisting only of the second partial trajectory. In the overlapping portion, the control unit causes the robot to perform the predetermined operation in accordance with both the first and second partial trajectories.

[0007] An information processing device according to one aspect of the present disclosure controls machine learning to cause a robot to perform a predetermined action. The information processing device includes a display unit that displays information, an input unit that accepts user operations, and a control unit that controls the display unit and the input unit. The control unit causes the display unit to display a trajectory indicating the movement of the robot in the predetermined action. The control unit accepts user operations, via the input unit, related to the trajectory displayed on the display unit and sets multiple partial trajectories that divide the trajectory. The control unit controls machine learning to cause the robot to perform the predetermined action for each partial trajectory, in accordance with the partial trajectories set by the user operations. The partial trajectories set as the multiple partial trajectories that divide the trajectory overlap each other in adjacent portions of the trajectory.

[0008] These general and specific aspects may be realized by a system, a method, and a computer program, as well as combinations thereof.

[0009] The control device, information processing device, and method disclosed herein can facilitate accurate operation of a robot.

[0010] FIG. 1 is a diagram for explaining an overview of a control system according to the first embodiment; FIG. 2 is a block diagram illustrating the configurations of a robot, a robot control device, and a terminal device in the control system; FIG. 3 is a diagram for explaining a problem in learning a control model using a robot trajectory; FIG. 4 is a diagram for explaining the operation of the control system;

[0011] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, more detailed explanation than necessary may be omitted. For example, detailed explanation of well-known matters or redundant explanation of substantially the same configuration may be omitted. This is to avoid unnecessary redundancy in the following explanation and to facilitate understanding by those skilled in the art.

[0012] The applicant provides the accompanying drawings and the following description to enable those skilled in the art to fully understand the present disclosure, and does not intend for them to limit the subject matter described in the claims.

[0013] (Embodiment 1) In embodiment 1, a robot control system will be described as an example using an information processing device according to the present disclosure. 1. Configuration The configuration of the control system according to embodiment 1 will be described with reference to FIGS. 1 and 2.

[0014] 1. Overview of the Control System Fig. 1 is a diagram for explaining an overview of a control system 1 according to this embodiment. The control system 1 of this embodiment includes a robot 2, a robot control device 4, and a terminal device 5. In this system 1, the robot 2, the robot control device 4, and the terminal device 5 are connected to each other so that data can be communicated with each other.

[0015] This system 1 is applied to an application in which the operation of a robot 2 is controlled by a control command transmitted from, for example, a robot control device 4. The robot 2 operates in accordance with the control command, for example, by driving a manipulator including multiple joints. In the example of FIG. 1 , the robot 2 moves a connector 6 of a USB terminal and inserts it into a socket 7. Such an operation of the robot 2 is an example of a predetermined operation in this embodiment.

[0016] In the present system 1, machine learning of a control model of the robot 2 is performed, for example, through direct teaching by a user, so that the robot 2 learns the above-described pre-expected movements. The control model outputs control commands for operating the robot 2 according to the position in the space where the robot 2 operates. The present system 1 displays a graphical user interface (GUI) used for machine learning of such a control model on the terminal device 5.

[0017] 1-2. Configuration of the robot, robot control device, and terminal device The configuration of the robot 2, robot control device 4, and terminal device 5 in this system 1 will be explained using Fig. 2. Fig. 2 is a block diagram illustrating the configuration of the robot 2, robot control device 4, and terminal device 5 in the control system 1.

[0018] 2, the robot 2 includes a control unit 20 and a communication interface 22. Hereinafter, the interface will be abbreviated as "I / F." The control unit 20 is configured with various processors such as a CPU, and controls the overall operation of the robot 2.

[0019] The communication I / F 22 is a circuit for performing data communication in accordance with a predetermined communication standard. For example, the predetermined communication standard may include USB, IEEE 1395, IEEE 802.3, IEEE 802.11a / 11b / 11g / 11ac, Wi-Fi (registered trademark), Bluetooth (registered trademark), etc. That is, the communication I / F 22 may be configured to include a connection terminal for connecting to an external device, and may communicate with the external device via a communication network or directly. The communication I / F 22 may be configured with multiple circuits.

[0020] The control unit 20 of the robot 2 receives control commands from the robot control device 4 via the communication I / F 22 and drives each joint of the manipulator based on the control commands. The robot 2 further includes a drive device such as a motor that drives each joint. The robot 2 may also include a sensor that detects displacement, such as the rotation angle of each joint. For example, from displacements detected sequentially during direct teaching or the like, the control unit 20 may calculate coordinate data indicating coordinates corresponding to the position or posture at which the tip of the manipulator operates, i.e., hand coordinates, and transmit the coordinate data to an external device such as the robot control device 4 via the communication I / F 22. The hand coordinates are expressed in a coordinate system that uses a base to which the manipulator is fixed in the robot 2 as a reference, as shown in FIG. 1, for example.

[0021] The robot control device 4 includes a control unit 40, a storage unit 41, and a communication I / F 42. The control unit 40 is configured with various processors such as a CPU, and realizes predetermined functions, such as controlling the communication I / F 42, by executing programs (software) stored in the storage unit 41, for example. The storage unit 41 is a storage medium that stores the programs and the like, and is configured with, for example, a non-volatile semiconductor memory. The storage unit 41 may include a RAM such as a DRAM or an SRAM, and may function as a work memory for the control unit 40. The communication I / F 42 is, for example, a circuit for performing data communication in accordance with a predetermined communication standard, similar to the communication I / F 22 of the robot 2.

[0022] The terminal device 5 includes a control unit 50, a storage unit 51, a communication I / F 52, an operation unit 53, and a display unit 54. The terminal device 5 is configured as an information processing device such as a personal computer (PC).

[0023] The control unit 50 includes, for example, a CPU, and executes a program (software) using the CPU to realize predetermined functions in the terminal device 5. Instead of a CPU, the control unit 50 may include a processor configured with a dedicated electronic circuit designed to realize the predetermined functions. That is, the control unit 50 can be realized by various processors such as a CPU, MPU, GPU, DSU, FPGA, ASIC, etc. The control unit 50 may be configured with one or more processors.

[0024] The storage unit 51 is a storage medium that stores programs and data necessary to realize the functions of the terminal device 5, and is configured, for example, as an HDD or SSD. For example, in addition to the above programs, the storage unit 51 stores the control model 30 that outputs control commands to the robot 2, as well as trajectory data D1 and attribute information D2 used for machine learning of the control model 30. The above programs may be provided via a communication network such as the Internet, or may be stored in a portable recording medium.

[0025] The storage unit 51 may include a RAM such as a DRAM or an SRAM, and may function as a buffer memory that temporarily stores (i.e., holds) data. The storage unit 51 may function as a working area for the control unit 50, and may include a storage area in the internal memory of the control unit 50.

[0026] The communication I / F 52 is a circuit for performing data communication in accordance with a predetermined communication standard, similar to the communication I / F 42 of the robot control device 4. In the terminal device 5, the communication I / F 52 may constitute an acquisition unit that receives various information through communication with an external device, or an output unit that transmits various information.

[0027] The operation unit 53 is a general term for operation members operated by the user. The operation unit 53 is configured by, for example, any one of a keyboard, a mouse, a trackpad, a touchpad, buttons and switches, etc., or a combination thereof. The operation unit 53 may form a touch panel together with the display unit 54. The operation unit 53 acquires various information input by user operations. The operation unit 53 may include a connection terminal or the like for connecting an external operation member, and may accept remote operation of the robot 2 by, for example, a joystick, a 3D mouse, a master-slave master arm, and / or a VR controller, etc.

[0028] The display unit 54 is configured by, for example, a liquid crystal display or an organic EL display, and displays a GUI used for machine learning of the control model 30. The display unit 54 may display various icons for operating the operation unit 53, and various information such as information input from the operation unit 53.

[0029] In the above description, an example has been explained in which the control system 1 includes the robot control device 4 and the terminal device 5, but the configuration of the control system 1 is not limited to the above example. For example, the robot control device 4 may be configured integrally with the robot 2, or may be configured integrally with the terminal device 5. Furthermore, in the above description, an example has been explained in which the control model 30 and the like are stored in the storage unit 51 of the terminal device 5, but they may also be stored in a storage device external to the terminal device 5.

[0030] 2. Operation The operation of the control system 1 and the terminal device 5 configured as above will be described below.

[0031] The control system 1 of this embodiment performs machine learning of the control model 30 in the terminal device 5 based on the trajectory of movement of the robot 2 during direct teaching by the user, etc., so as to make the robot 2 perform the action desired by the user.

[0032] 1, the terminal device 5 of the system 1 acquires the trajectory of the operation of the robot 2 inserting the connector 6 into the socket 7 from the robot 2 via the robot control device 4. In addition to or instead of direct teaching, such a trajectory may be acquired by, for example, interactive control in which a user operates the robot 2 while making fine adjustments by remote control.

[0033] The terminal device 5 updates the control model 30 by machine learning, for example, each time a trajectory is obtained for one or more movements of the robot 2. The control model 30 of this embodiment is trained to output torque commands to a motor that operates the robot 2 by impedance control, sequentially from coordinates at each time point according to the trajectory in space in which the robot 2 operates, for example. After performing direct teaching, for example, the system 1 inputs the current coordinates of the robot 2 into the trained control model 30 and outputs a torque command to the motor at the coordinates as a control command, thereby operating the robot 2.

[0034] 2-1. Issues in learning a control model using a trajectory The issues in learning the control model 30 as described above will be explained using Fig. 3. Fig. 3 is a diagram for explaining the issues in learning a control model 30 using a trajectory of the robot 2.

[0035] 3A shows an example in which the robot 2 moves the connector 6 by direct teaching or the like in an operation similar to that shown in FIG. 1. This operation includes an approach stage in which the connector 6 approaches the socket 7, a slide stage in which the connector 6 that has come into contact with the upper surface of the socket 7 is slid up to a recess in the socket 7, and an insertion stage in which the connector 6 is inserted into the recess in the socket 7.

[0036] 3A, by direct teaching or the like, a force is applied to the robot 2 in the sliding stage in the right direction in the figure (+X direction) so as to resist the friction caused by contact between the connector 6 and the socket 7. Although it is easy for a user performing direct teaching to distinguish between the various stages during the operation as described above, machine learning using only the trajectory cannot distinguish between them, which may make it difficult to obtain accurate learning results for the operation.

[0037] 3(B) shows an example in which the control model 30 is updated using the trajectory obtained in the example of FIG. 3(A) as is, and then the robot 2 moves the connector 6 in accordance with a control command from the control model 30. With a control model 30 that is updated without depending on the operation stage, it may be difficult to cause the robot 2 to perform operations corresponding to each operation stage as described above. For example, as shown in FIG. 3(B), the operation of the approach stage, which is different from the sliding stage intended by the user, may be changed, and the arrival point of the connector 6 in that stage may shift in the +X direction, causing it to pass over the recess of the socket 7.

[0038] Therefore, the control system 1 of this embodiment divides a trajectory obtained by direct teaching or the like into stages of operation through user operation, and performs machine learning of the control model 30 using the divided trajectories. For example, a user can distinguish each stage where the operation switches based on the trajectory of the robot 2. The terminal device 5 of this system 1 accepts a user operation to divide the trajectory while displaying it, and provides a GUI that makes it easy to learn the control model 30 so as to operate the robot 2 with high accuracy.

[0039] 2-2. Overview of Operation The overview of the operation of the control system 1 in this embodiment will be described with reference to FIG.

[0040] Fig. 4 is a diagram for explaining the operation of the control system 1. Fig. 4 shows an example in which the results of dividing the trajectory from the start point C1 to the end point C2 of the operation of the robot 2, which operates in the same manner as in the example of Fig. 1, are displayed on the display unit 54 of the terminal device 5.

[0041] The system 1 divides the trajectory from the start point C1 to the end point C2 into stages, such as approach, slide, and insertion, in which the behavior of the robot 2 changes relatively significantly, based on user operations on the terminal device 5. In the example of Fig. 4, the terminal device 5 displays points indicating coordinates at each time on the trajectory in different ways depending on the divided parts. By updating the control model 30 using the divided trajectory, it is possible to prevent a situation in which the behavior corresponding to one part of the trajectory is changed contrary to the user's intention to change the behavior corresponding to another part, as shown in Figs. 3(A) and 3(B), for example.

[0042] In dividing the trajectory in this way, it is considered desirable to divide the trajectory so that the movement stages change gradually. For example, if the movement stages change suddenly, the movement of the robot 2 may become unstable at the transition between each stage, such as when a sudden change in direction causes excessive load on the joints and triggers a protective stop function.

[0043] Therefore, in the control system 1 of this embodiment, the terminal device 5 divides the entire trajectory in response to a user operation so that adjacent trajectories after division have overlapping portions. By using the divided trajectories, including the overlapping portions, in the machine learning of the control model 30, the robot 2 can be controlled so that the operation stages corresponding to each divided trajectory gradually switch in a cross-fade manner. In this way, the terminal device 5 of this system 1 makes it easier to train the control model 30 so that the robot 2 operates with high accuracy.

[0044] Furthermore, the terminal device 5 of this embodiment visualizes the movement direction of the robot 2 according to the output of the control model 30 around the trajectory by using an arrow Vt, as shown in Fig. 4, for example. The arrow Vt indicates the movement direction according to the relative displacement from any coordinate in the space in which the robot 2 operates to the next target coordinate of the robot 2, which is output by the control model 30. By presenting such movement direction arrow Vt to the user, the user can, for example, check the operation of the robot 2 according to the control model 30 updated based on the trajectory after division, and adjust the division, etc.

[0045] 2-3. Overall Operation The overall operation of the control system 1 in this embodiment will be described with reference to FIG.

[0046] 5 is a sequence diagram illustrating the overall operation of the control system 1. The control system 1 acquires coordinate data and the like obtained by the operation of the robot 2 as a trajectory (S1). The control system 1 accepts a user operation to divide the trajectory, and updates the control model 30 through machine learning using the divided trajectories (S2). The system 1 uses the control model 30 updated by the trajectory division process (S2) to calculate control commands from the coordinate data of the robot 2 and operate the robot 2 (S3).

[0047] In step S1, the robot 2 of the present system 1 transmits coordinate data indicating the hand coordinates of the tip of the manipulator to the robot control device 4 while operating the manipulator in accordance with, for example, direct teaching. For example, the control unit 20 of the robot 2 sequentially calculates the hand coordinates by calculating forward kinematics based on the rotation angle of each joint in the operation of the manipulator, and transmits the calculated coordinates via the communication I / F 22. The robot control device 4 controls the communication I / F 42 with, for example, the control unit 40 to obtain the coordinate data from the robot 2 and transmits the obtained coordinate data to the terminal device 5.

[0048] The control unit 50 of the terminal device 5 inputs the coordinate data received from the robot control device 4 via the communication I / F 52, for example, into the initialized control model 30, and calculates a control command for the robot 2 (S1). For example, before executing step S1, a process of initializing parameters and the like included in the control model 30 with predetermined initial values ​​may be performed. In step S1, the robot control device 4 receives the calculated control command from the terminal device 5 and transmits it to the robot 2. The control unit 20 of the robot 2 further operates the manipulator based on the received control command.

[0049] In step S1, for example, by repeating the above process, coordinate data sequentially acquired as the trajectory of the robot 2 and control commands calculated from the coordinate data are accumulated. The terminal device 5 associates the coordinate data obtained during the operation of the robot 2 by such direct teaching or the like with behavior data indicating the control commands for each time period, and stores the data in the storage unit 51 as trajectory data D1.

[0050] The terminal device 5 displays a trajectory based on the collected trajectory data D1 and accepts a user operation to divide the trajectory (S2). The terminal device 5 performs machine learning of the control model 30 based on the trajectory data D1 divided in accordance with the user operation (S2). The processing of step S2 will be described in detail later.

[0051] In step S3, similarly to step S1, the system 1 sequentially acquires current coordinate data of the robot 2 using the robot control device 4, and calculates control commands from the coordinate data using the learned control model 30 in the terminal device 5. The robot 2 operates the manipulator based on the control commands received from the terminal device 5 via the robot control device 4. By repeating this process, the system 1 causes the robot 2 to execute the operations learned by the control model 30.

[0052] In the above operation, after performing the processing of steps S1 and S2 multiple times (e.g., three times), the processing of step S3 may be performed using the control model 30 updated based on each trajectory data D1 in the multiple operations.

[0053] 2-4. Locus Division Processing The processing in step S2 in FIG. 5 will be described in detail with reference to FIGS.

[0054] 6 is a flowchart illustrating the trajectory division process (S2) in the terminal device 5 of this embodiment. The process of this flowchart is started in a state where the trajectory data D1 obtained in step S1 of FIG. 5 is stored in the storage unit 51 of the terminal device 5, and is executed by the control unit 50. Below, the coordinates in the trajectory data D1 will be described using two axes, the X axis and the Y axis, but the coordinates may be three axes, for example, X, Y, and Z, or may be six axes obtained by adding roll, pitch, and yaw to the three axes.

[0055] First, the control unit 50 acquires the trajectory data D1 stored in the memory unit 51 (S11). The trajectory data D1 is time-series data and is composed of coordinate data x(t) = (Xt, Yt) indicating the hand coordinates of the robot 2 at time t, and action data y(t) = (VXt, VYt). Xt and Yt are the X and Y coordinates of the hand of the robot 2, i.e., the tip of the manipulator, at time t. VXt and VYt are the relative displacements of the hand coordinates in the X and Y axes, respectively, from time t to time t+1.

[0056] The control unit 50 performs machine learning of the control model 30 based on the acquired trajectory data D1 (S12). In step S12, the control model 30 is trained using the entire trajectory obtained by one movement of the robot 2 in the trajectory data D1.

[0057] Based on the trajectory data D1, the control unit 50 causes the display unit 54 to display the trajectory of the movement of the robot 2 and an arrow Vt corresponding to the movement direction of the robot 2 according to the control model 30 (S13). Fig. 7 is a diagram showing an example of the display in the trajectory division process (S2) in the terminal device 5 of this embodiment. As shown in Fig. 7(A), for example, the display unit 54 displays the trajectory from the start point C1 to the end point C2 of the movement of the robot 2 and an arrow Vt indicating the movement direction corresponding to the relative displacement of the robot 2 from time t to t+1 output by the control model 30 from any coordinates around the trajectory.

[0058] The control unit 50 determines whether a user operation has been input via the operation unit 53 to select a portion of the entire trajectory in the trajectory data D1 as a partial trajectory by dividing the trajectory (S14). FIG. 7A shows an example of a partial trajectory selected by such a user operation. The control unit 50 accepts an operation in which the user selects an area R1 including a desired partial trajectory via the operation unit 53, such as a mouse, as shown in FIG. 7A. For example, the user can select a partial trajectory from the trajectory from the start point C1 to the end point C2 displayed on the display unit 54 in response to a change in the robot 2's behavior, etc. If a selection operation has not been input (NO in S14), the control unit 50 repeats the determination of step S14, for example, at a predetermined interval.

[0059] If a selection operation for a partial trajectory is input (YES in S14), the control unit 50 determines whether the selected partial trajectory is the first partial trajectory that was initially divided (S15). The control unit 50 may manage the number of divided partial trajectories using a counter or the like in its internal memory, for example.

[0060] If the selected partial trajectory is the first (YES in S15), the control unit 50 assigns attribute information D2 to the partial trajectory, for example, indicating the first partial trajectory (S17). The attribute information D2 is managed by, for example, associating a predetermined discrete value with a period defined by the start time and end time of each partial trajectory so as to identify the divided partial trajectories. Furthermore, the control unit 50 updates the display on the display unit 54 in accordance with the assigned attribute information D2 (S17). For example, as shown in FIG. 7B, the control unit 50 displays the partial trajectory selected in the region R1 of FIG. 7A and assigned attribute information D2 in a different manner from the other partial trajectories. In this embodiment, the display unit 54 changes the color and pattern of the partial trajectory depending on the attribute information D2.

[0061] The control unit 50 determines whether a predetermined number of partial trajectories have been selected by, for example, referring to a counter in the internal memory (S18). The number of divisions may be set in advance by a user operation on the operation unit 53, or may be set in response to a user operation to end division as the number of partial trajectories selected up to the end of division in response to the user operation.

[0062] If the predetermined number of partial loci have not been selected (NO in S18), the control unit 50 determines whether or not an operation to select the next partial locus has been input to the operation unit 53 (S14).

[0063] When a selection operation for a partial trajectory is input (YES in S14) and the selected trajectory is not the first one (NO in S15), the control unit 50 determines whether there is an overlap between the partial trajectories selected by the current and previous selection operations (S16). An overlap indicates, for example, a period of time that is continuous, i.e., a portion of the period of two adjacent partial trajectories that overlap. For example, for two adjacent partial trajectories, the control unit 50 detects whether the two partial trajectories partially overlap, i.e., whether there is an overlap between the two partial trajectories, based on the period of each partial trajectory selected by the user operation.

[0064] Fig. 7(B) shows an example in which, after updating the display in accordance with the attribute information D2 added from the example of Fig. 7(A) (S17), a second partial trajectory is selected by a user operation to select region R2 (YES in S14, NO in S15). In the example of Fig. 7(B), region R2 is selected so that the first partial trajectory selected in region R1 of Fig. 7(A) and the second partial trajectory overlap each other.

[0065] If there is an overlapping portion (YES in S16), the control unit 50 proceeds to step S17, assigns attribute information D2 to the currently selected partial trajectory that is different from that of the first partial trajectory, and updates the display according to the assigned attribute information D2.

[0066] If there is no overlapping portion (NO in S16), the control unit 50 causes, for example, the display unit 54 to display a setting screen for setting a lower limit value of the overlapping time indicating the period of the overlapping portion, and determines whether or not a user operation to input a lower limit value on the screen has been input to the operation unit 53 (S19). If the user operation has not been input (NO in S19), the control unit 50 repeats the determination of step S19, for example, at a predetermined interval.

[0067] If an operation to input a lower limit value for the overlap time has been performed (YES in S19), the control unit 50 expands each of the current and previous partial trajectories so that they have overlapping portions whose overlap time is equal to or greater than the input lower limit value (S20). Through the above process, the control unit 50 sets overlapping partial trajectories from the two partial trajectories input by the user's selection operation.

[0068] 8A and 8B are diagrams showing examples of expanding overlapping portions of partial trajectories in the trajectory division process (S2). Fig. 8A shows an example in which a second partial trajectory is selected from the example of Fig. 7A by region R20, and there is no overlapping portion between the selected partial trajectory and the first partial trajectory. Fig. 8B shows an example in which the user inputs "0.2 seconds" as the lower limit value of the overlap time from the example of Fig. 8A, and the two partial trajectories are expanded in accordance with the lower limit value.

[0069] After expanding each partial trajectory (S20), the control unit 50 performs the process of step S17 in the same manner as when there is an overlapping portion between partial trajectories selected by a user operation (YES in S16).

[0070] The control unit 50 repeats the processes from step S14 onwards while the predetermined number of partial loci have not been selected (NO in S18).

[0071] If a predetermined number of partial trajectories have been selected (YES in S18), the control unit 50 updates the control model 30 by machine learning, for example, based on the trajectory data D1 divided according to the attribute information D2 (S21). In this embodiment, the control model 30 includes multiple control models, each corresponding to a partial trajectory. The control unit 50 learns the control model corresponding to each partial trajectory using data from the trajectory data D1 for the period of each partial trajectory, for example, based on the attribute information D2. Details of the control model 30 will be described later.

[0072] The control unit 50 displays the trajectory of the robot 2 and the movement direction arrow Vt on the display unit 54 using the updated control model 30, for example, as in step S13 (S22). At this time, the control unit 50 displays each partial trajectory in a different manner, for example, by changing the color of each divided partial trajectory according to the attribute information D2 assigned to each partial trajectory, as shown in FIG. 4. Furthermore, the control unit 50 displays overlapping portions, for example, by superimposing multiple colors according to the attribute information D2 of each partially overlapping partial trajectory. The movement direction arrow Vt of the updated control model 30 is drawn according to an output that integrates the inference results of each control model, for example, using parameters obtained by learning the control model corresponding to each partial trajectory.

[0073] The control unit 50 displays the trajectory of the robot 2 and the arrow Vt indicating the direction of movement according to the updated control model 30 (S22), and then ends the processing of this flowchart.

[0074] According to the above process, while a trajectory, etc., is displayed based on the trajectory data D1 of the robot 2 (S13), selection operations for partial trajectories are accepted until a predetermined number of divisions is reached (S14, S18), and attribute information D2 corresponding to the number of divisions is assigned to the selected partial trajectories (S17). At this time, depending on whether or not there is an overlap between the selected partial trajectory and an adjacent partial trajectory (S16), attribute information D2 is assigned to each partial trajectory in a state where the partial trajectories partially overlap (S17, S19, S20). This allows multiple partial trajectories to be set by dividing the trajectory so that they partially overlap each other, in response to the user's selection operations. Furthermore, each of the divided partial trajectories can be managed using the attribute information D2.

[0075] By using the trajectory data D1 divided according to the attribute information D2 as described above, the control model 30 can be updated by machine learning so as to accurately control the robot 2 in response to changes in its behavior (S21). In this way, the terminal device 5 of this embodiment can control the machine learning of the control model 30 so as to cause the robot 2 to perform each stage of the behavior exemplified in Fig. 4 and the like in response to the attribute information D2 assigned to each partial trajectory. For example, it is possible to cause the robot to learn different behaviors in response to each partial trajectory.

[0076] Furthermore, if there is no overlap between two consecutive partial trajectories (NO in S16), each partial trajectory is extended (S29) according to the minimum overlap time input by the user (S19). This ensures that the trajectory is divided so that each partial trajectory has an overlap.

[0077] Furthermore, before and after updating the control model 30, in addition to the trajectory, the direction of movement of the robot 2 according to the control model 30 is displayed by an arrow Vt (S13, S22). This visualizes the change in the behavior of the robot 2 due to the division of the trajectory, making it easier to divide the trajectory so as to make the robot 2 perform the behavior desired by the user, for example. Before dividing the trajectory, i.e., before updating, as the control model 30, one control model is learned using the trajectory data D1 of the entire trajectory (S12), and the direction of movement according to that one control model is displayed by an arrow Vt.

[0078] In the above, an example has been described in which the control model 30 is updated by machine learning (S21) after partial trajectories have been selected up to a predetermined number of divisions (YES in S18). The control model 30 may be updated before the number of selected partial trajectories reaches the predetermined number of divisions. For example, machine learning of the corresponding control model may be performed each time attribute information D2 is assigned to a selected partial trajectory (S17). Furthermore, after updating the control model corresponding to each partial trajectory, the display of the movement direction arrow Vt may be updated.

[0079] In the above example, the terminal device 5 receives a user operation to input a lower limit value for the overlap time (S19). The lower limit value is not limited to the overlap time, and may be input as a lower limit of an amount indicating the degree of overlap, such as the number of data points of coordinate data at the overlapping location. In addition, in step S20, the partial trajectories may be set to partially overlap each other by expanding one of the partial trajectories, rather than being limited to both partial trajectories selected this time and last time.

[0080] 2-5. Details of the Control Model The control model 30 learned based on the trajectory data D1 divided in the trajectory division process (S2) described above will be described in detail with reference to FIG.

[0081] The control model 30 of this embodiment is realized as a regression model using Gaussian process regression, as used in, for example, Non-Patent Document 1. When coordinate data x(t) = (Xt, Yt) is input as the hand coordinates of the robot 2, the control model 30 outputs behavior data y(t) = (VXt, VYt) that indicates the relative displacement of the hand coordinates at the coordinates from time t to time t+1.

[0082] The following equation (1) shows the kernel matrix K calculated from the coordinate data x(t) of the hand coordinate at each time in Gaussian process regression. By using equation (1), for example, the kernel matrix K is calculated using the hand coordinate in the trajectory at time t=1, 2,..., N (N is a positive number). k(x (i) , x (j)) (i, j∈{1, 2, . . . , N}) is a kernel function. For example, a Gaussian kernel shown in equation (2) is used as the kernel function. The kernel function is not limited to a Gaussian kernel, and may be, for example, an exponential kernel or a periodic kernel.

[0083] Hereinafter, an example will be described in which, in the trajectory division process (S2), a control model corresponding to the first divided partial trajectory is learned based on the trajectory data D1 at time t=1, 2,..., N. The learned control model is based on the input unknown (i.e., unlearned) hand coordinate data x * , the unknown output, behavioral data y * Infer that.

[0084] First, the control model is * and the coordinate data x included in the learning data, i.e., the trajectory data D1. (1) , x (2) ,... ,x (N) By this calculation, the kernel function of the column vector k * = (k(x (1) , x * ), k(x (2) , x * ),...,k(x (N) , x * )) is obtained. The kernel matrix K in equation (3) is calculated from the training data using equation (1) above.

[0085] Furthermore, the output vector y = (y (1) , y (2) ,... ,y (N) ) and the unknown output y * output vector y′=(y (1) , y (2) ,... ,y (N) , y * ) and the relationship of Equation (3) holds. Here, the training data can be expressed as follows:

[0086] In the relationship of equation (3), the unknown output y * The probability distribution of follows the Gaussian distribution of the following equation (4). -1 is the inverse matrix of the kernel matrix K, and k * T Ha K * The unknown output y * In the probability distribution of * T K -1 y denotes the expected value (also called the "average"), and k(x * , x * )-k * T K -1 k * indicates the variance.

[0087] 2-5-1. Integration of inference results by control model for each partial trajectory In this embodiment, in the trajectory division process (S2), for example, when the trajectory indicated by the trajectory data D1 is divided into three, a corresponding control model is learned for each of the divided partial trajectories. Each control model is learned using the corresponding partial trajectory, for example, in the same way as the control model corresponding to the first partial trajectory described above, and unknown coordinate data x * the unknown output y * The calculation for obtaining the final output as the control model 30 from the inference results of each control model will be described below.

[0088] Below, the unknown output y inferred by each of the three control models is * The averages of the unknown outputs y * represents the uncertainty of the unknown coordinate data x * The closer to the coordinate data in the training data, the smaller the variance. *The final output for Σ1 is calculated as a weighted average m of the averages m1 to m3 using the reciprocals 1 / Σ1, 1 / Σ2, and 1 / Σ3 of the variances Σ1 to Σ3. However, since the sum of the reciprocals generally does not equal 1, the control model 30 of this embodiment uses weights obtained by normalizing the reciprocals using, for example, a softmax function.

[0089] According to the above calculations, the final output of the control model 30 is obtained by weighting the output of the control model with relatively small uncertainty (i.e., reliable) among the three control models. * is located near the overlapping point of the two partial trajectories, the variances Σ1 and Σ2 of the outputs from the control models corresponding to the respective partial trajectories will be relatively close to each other, while the variance Σ3 of the output from the other control model will be larger than Σ1 and Σ2. In this case, the final output will likely be close to the midpoint between the averages m1 and m2 of the outputs from the control models corresponding to the two partial trajectories. This allows the robot 2 to continuously and smoothly execute transitions between the partial actions corresponding to each partial trajectory.

[0090] For example, in step S22 of the trajectory division process (S2), after dividing the trajectory, the arrow Vt displayed as the moving direction of the robot 2 according to the updated control model 30 follows the weighted average of the outputs of each control model corresponding to each divided partial trajectory, as described above. * = (X * , Y * ) the output y * = (VX * , VY * ), and the origin of the arrow Vt is x * and the direction and length of the arrow Vt correspond to y * is drawn according to

[0091] In the above, an example has been described in which a weighted average of the outputs of each control model is used as the calculation for obtaining the final output of the control model 30. However, the output of the control model 30 is not limited to this. For example, the control model with the smallest variance of the output may be selected from the three control models, and the average value of the outputs of that control model may be used. Furthermore, for example, a filter or the like that removes outliers may be applied to the averages m1 to m3 of the outputs of each control model.

[0092] 2-5-2. Correction term of control model Generally, in a control model trained using machine learning, the unknown input x * is relatively far from the known data in the training data, the output y * In particular, it is dangerous for control commands to become indefinite in robot control, so it is desirable to calculate control commands by adding a correction term that brings the robot's hand coordinates closer to known data. Such a correction term will be explained using FIG. 9.

[0093] 9 is a diagram for explaining the relationship between the correction term of the control model 30 and the division of the trajectory. In the control model 30, for example, the control model for each partial trajectory has a correction term f calculated by the following equation (5): stable is added to the control command and output. stable As shown in equation (5), the correction term f can be calculated by, for example, differentiating the variance Σ of the output of each control model and multiplying it by a coefficient −α. stable According to this method, the output of each control model is corrected so that the robot 2 always moves in a direction with a relatively small variance (i.e., a large number of learning data points).

[0094] As described above, the correction term f stable By correcting the output of each control model using the above formula, it is possible to make the robot 2 operate stably, for example, at the stage of operation according to each partial trajectory.

[0095] Correction term f stable9, a force may be generated that pulls the hand coordinates of the robot 2 into a space where the coordinate data, which is input data to the control model, is dense, as shown by arrow 15. If a control model is learned for each divided partial trajectory, and if there is no overlap between two adjacent partial trajectories, the behavior of the control model may become unstable in the space near the middle of the two partial trajectories.

[0096] For example, if the two partial trajectories 11a and 12a shown in Figure 9 do not overlap, the intermediate position 14 between the partial trajectories 11a and 12a is located in a space where the input data is sparse for both of the two control models corresponding to the two partial trajectories. In this case, the output of the control model trained using each partial trajectory 11a and 12a becomes indefinite, which may cause the behavior of the control model to become unstable. Furthermore, in this case, as shown by arrow 15, for example, a force that pulls the hand coordinates of the robot 2 into the space where the input data of the partial trajectory 11a is dense may be generated, preventing the hand coordinates of the robot 2 from transitioning from the partial trajectory 11a to the partial trajectory 12a.

[0097] In the trajectory division process (S2) of this embodiment, when a user selects a partial trajectory (S14), if there is no overlap between adjacent partial trajectories (NO in S16), the partial trajectories are automatically expanded so that they overlap with each other (S20). This makes it possible to prevent the occurrence of the above-mentioned problems when there is no overlap between partial trajectories.

[0098] 2-6. Operation Based on Trained Control Model In the control system 1 of this embodiment, the process (S3 in FIG. 5) of causing the robot 2 to perform the operation learned by the control model 30 described above will be described with reference to FIG. 10. FIG. 10 is a flowchart illustrating the process based on the trained control model 30.

[0099] 10 is started when, for example, a user operation to instruct the robot 2 to operate is input from the operation unit 53 of the terminal device 5 after the control model 30 is updated by machine learning in accordance with the plurality of partial trajectories divided in the trajectory division process (S2). Each process shown in FIG. 10 is executed by, for example, the control unit 50 of the terminal device 5.

[0100] First, for example, when the robot 2 starts to move, the control unit 50 calculates (S31) a control command for the robot 2 based on only the first partial trajectory that was first divided by the trajectory division process (S2) in calculating a control command using the trained control model 30. For example, during the period when the robot 2 starts to move, coordinate data corresponding to only the first partial trajectory among the divided trajectories is input to the control model 30. In this case, when the control model 30 integrates the inference results from the control models corresponding to the respective partial trajectories to obtain a final output, the weights of the inference results of the control models corresponding to the other partial trajectories become close to "0," and the robot 2 can be controlled based on only the first partial trajectory.

[0101] Next, as the operation of the robot 2 progresses from step S1, the control unit 50 calculates control commands for the robot 2 based on both the first partial trajectory and the second partial trajectory divided following the first partial trajectory (S32). For example, if the coordinate data of the robot 2 input to the control model 30 indicates coordinates near the midpoint between the first and second partial trajectories, the outputs of the two control models corresponding to the respective partial trajectories in the control model 30 are weighted so as to be reflected in the final output. In this way, the system 1 can reflect, in the operation of the robot 2, the learning results of the control model 30 based on a trajectory divided so that two adjacent partial trajectories overlap.

[0102] When the robot 2 continues to move after step S2, the control unit 50 calculates a control command for the robot 2 based only on the second partial trajectory (S33), similar to the control based on the first partial trajectory in step S31. For example, if the control model 30 has been trained to operate the robot 2 based on three or more partial trajectories, the control unit 50 may repeat the same processing as that from step S32 onwards based on the coordinate data resulting from the movement of the robot 2. Thereafter, the control unit 50 ends the processing of this flowchart.

[0103] According to the above process, the control model 30 trained using the divided trajectories including overlapping portions can control the robot 2 so that the operation stages corresponding to each divided partial trajectory gradually change (S31 to S33). The above process may be performed by a control model trained by a method other than machine learning according to a plurality of partial trajectories including overlapping portions, for example.

[0104] 3. Summary As described above, the terminal device 5 in this embodiment is an example of an information processing device that controls machine learning to cause the robot 2 to perform a predetermined action. The terminal device 5 includes a display unit 54 that displays information, an operation unit 53 (an example of an input unit) that accepts user operations, and a control unit 50 that controls the display unit 54 and the operation unit 53. The control unit 50 causes the display unit 54 to display a trajectory indicating the movement of the robot 2 during the predetermined action (S13). The control unit 50 accepts user operations related to the trajectory displayed on the display unit 54 via the operation unit 53 (S14, S19) and sets multiple partial trajectories that divide the trajectory (S17, S18, S20). The control unit 50 updates the control model 30 through machine learning (S21), as an example of controlling machine learning to cause the robot 2 to perform a predetermined action for each partial trajectory, in accordance with the partial trajectories set by the user's operation. The partial trajectories set as the multiple partial trajectories that divide the trajectory overlap each other in adjacent portions of the trajectory (see FIG. 4 ).

[0105] With the terminal device 5 as described above, while the trajectory of the robot 2 is displayed (S13), a user's selection operation for a partial trajectory or the like is accepted (S14, S19), and a plurality of partial trajectories that divide the trajectory so as to overlap each other are set (S17, S18, S20). The terminal device 5 updates the control model 30 by machine learning so as to cause the robot 2 to perform a predetermined operation in accordance with the set partial trajectories (S21). This makes it easier for the control model 30 of the robot 2 to learn to operate with precision, for example, by smoothing the transition from one partial trajectory to the next partial trajectory in a predetermined operation.

[0106] In this embodiment, the control unit 50 controls the machine learning so that the robot 2 performs a plurality of partial actions, each of which corresponds to the set partial trajectories in a predetermined action, in accordance with the set partial trajectories (S21). This allows, for example, the control model 30 of the robot 2 to learn different actions for each partial trajectory by machine learning.

[0107] In this embodiment, the control unit 50 detects whether multiple partial trajectories partially overlap each other based on the partial trajectories input in the partial trajectory selection operation (an example of a user operation) (S16). This makes it easier to set partial trajectories that divide a trajectory so as to overlap each other, such as by executing a predetermined operation to make the partial trajectories overlap when, for example, two input partial trajectories do not overlap (S19, S20).

[0108] In this embodiment, when the control unit 50 detects that the multiple partial trajectories do not partially overlap each other (NO in S16), it sets the multiple partial trajectories so that each partial trajectory partially overlaps with an adjacent partial trajectory (S20). This makes it possible to automatically generate overlapping portions even when, for example, adjacent partial trajectories input by a user operation do not have overlapping portions.

[0109] In this embodiment, the control unit 50 accepts an input operation for a lower limit of overlap time through the operation unit 53 as an example of a user operation for setting a lower limit of the amount of overlap, which indicates the degree to which multiple partial trajectories overlap with each other (S19). If the overlap time between multiple partial trajectories is below the lower limit, the control unit 50 extends each partial trajectory as an example of setting multiple partial trajectories so that the overlap time is increased to or above the lower limit (S20). This allows, for example, a user to input a lower limit of the overlap time or the like according to the task of the operation that the robot 2 is to learn, and adjust the length of the overlapping portion.

[0110] In this embodiment, the control unit 50 assigns attribute information D2 to each partial trajectory set by a partial trajectory selection operation (an example of a user operation) to distinguish the multiple partial trajectories from one another (S17). The control unit 50 then displays the attribute information D2 assigned to each partial trajectory on the display unit 54 so as to indicate that multiple pieces of attribute information D2 have been assigned to overlapping portions of the trajectory (S17, see FIG. 4). In this manner, the terminal device 5 can manage the set partial trajectories using the attribute information D2. Furthermore, for example, displaying the attribute information D2 as described above can visualize overlapping portions among multiple partial trajectories, making it easier for the user to select partial trajectories when setting partial trajectories that divide a trajectory so that they overlap each other.

[0111] In this embodiment, the control unit 50 controls machine learning to make the robot 2 perform a predetermined operation in accordance with the attribute information D2 assigned to the plurality of partial trajectories (S21). According to the results of such machine learning, the robot 2 can be controlled to operate with high precision in accordance with the attribute information D2 assigned to the partial trajectories that divide the trajectory so as to overlap with each other, for example.

[0112] In this embodiment, the display unit 54 displays the movement direction of the robot 2 in a predetermined movement after machine learning (S13, S22). The control unit 50 updates the display of the movement direction on the display unit 54 as a result of controlling the machine learning in accordance with the partial trajectory set by user operation (S22). This allows feedback to be provided to the user on how the movement direction of the robot 2 in a predetermined movement after machine learning has changed, for example, as a result of updating the control model 30 by machine learning in accordance with the partial trajectory set by user operation (S21).

[0113] In this embodiment, the control unit 50 acquires, as a trajectory, coordinate data x(t) at each time that indicates movement of the robot 2 by direct teaching (S11). This allows, for example, a user to intuitively teach the robot 2 general movements. In this embodiment, the control unit 50 may also acquire, as a trajectory, coordinate data at each time that indicates movement of the robot 2 by remote control. This makes it possible, for example, to avoid contact between the robot 2 and the user, making it easier to safely teach the robot 2 movements.

[0114] In this embodiment, the control unit 50 uses machine learning to train a control model 30 that controls the movement of the robot 2 in accordance with a plurality of partial trajectories set by user operation (S21). The control unit 50 sequentially inputs coordinate data x(t), which is an example of the position or posture at which the robot 2 moves, to the control model 30 so as to cause the robot 2 to perform a predetermined movement, and outputs behavioral data y(t) as a control command for moving the robot 2. In this way, the control model 30 can be trained in accordance with the partial trajectories divided so as to overlap with each other from the movement trajectory of the robot 2, and the control model 30 can be used, for example, to control the robot 2 to perform a predetermined movement.

[0115] In this embodiment, the control model 30 outputs, as a control command, behavior data y(t) based on coordinate data x(t), which is an example of an input position or posture, including a mean value and a variance that define the probability distribution of the relative displacement from the coordinates indicated by the input coordinate data x(t) to a target coordinate for operating the robot 2 (see formula (4)). The control command from the control model 30 can be determined to one value, for example, based on the mean value and the variance.

[0116] The trajectory division process (S2) in this embodiment provides an information processing method for controlling machine learning to cause the robot 2 to perform a predetermined operation. This method is executed by a control unit 50 of a terminal device 5 (an example of a computer) that controls a display unit 54 that displays information and an operation unit 53 (an example of an input unit) that accepts user operations. In this method, the control unit 50 causes the display unit 54 to display a trajectory indicating the movement of the robot 2 during the predetermined operation (S13, S21). The control unit 50 accepts user operations related to the trajectory displayed on the display unit 54 via the operation unit 53 (S14, S19) and sets multiple partial trajectories that divide the trajectory (S17, S18, S20). As an example of controlling machine learning to cause the robot 2 to perform a predetermined operation for each partial trajectory according to the partial trajectories set by the user's operation, the control unit 50 updates the control model 30 through machine learning (S21). The partial trajectories set as the multiple partial trajectories that divide the trajectory overlap each other in adjacent portions of the trajectory (see FIG. 4 ).

[0117] In this embodiment, a program is provided for causing the control unit 50 of the terminal device 5, which is an example of a computer, to execute the information processing method described above. The information processing method and program described above make it easier for the robot 2 to learn to operate with high precision.

[0118] Furthermore, the terminal device 5 of this embodiment is an example of a control device that causes the robot 2 to perform a predetermined operation. The terminal device 5 includes a communication I / F 52 (an example of a communication unit) that performs data communication with external devices such as the robot control device 4, and a control unit 50 that controls the robot 2 through data communication via the communication I / F 52 (see S3 in FIG. 5). In the terminal device 5, a plurality of partial trajectories are set by dividing a trajectory indicating the movement of the robot 2 during a predetermined operation, using trajectory data D1 that has been divided according to attribute information D2, for example. The plurality of partial trajectories include a first partial trajectory and a second partial trajectory that are adjacent to each other in the trajectory of the robot 2. The first and second partial trajectories include an overlapping portion where the first and second partial trajectories overlap, a first independent portion consisting only of the first partial trajectory, and a second independent portion consisting only of the second partial trajectory (see FIG. 4). In the overlapping portion, the control unit 50 causes the robot 2 to perform a predetermined operation in accordance with both the first and second partial trajectories (S32).

[0119] According to the terminal device 5 as described above, for example, of a plurality of partial trajectories set corresponding to a plurality of stages in a predetermined operation of the robot 2, at an overlapping portion of two partial trajectories, such as a transition between stages, the robot 2 is controlled in accordance with both partial trajectories (S32). This allows the robot 2 to continuously and smoothly execute transitions between operation stages corresponding to each partial trajectory, for example, making it easier to operate the robot 2 with high precision. The control device of the present disclosure is not limited to the above example, and may be realized, for example, by the robot control device 4, or by both the robot control device 4 and the terminal device 5.

[0120] In this embodiment, the control unit 50 causes the robot 2 to perform a predetermined operation in the first independent portion according to the first partial trajectory (S31), and causes the robot 2 to perform a predetermined operation in the second independent portion according to the second partial trajectory (S33). This makes it easier to cause the robot 2 to operate with high precision at each stage of the operation corresponding to each partial trajectory, for example, in accordance with only each partial trajectory other than the overlapping portion of the multiple partial trajectories.

[0121] In this embodiment, the terminal device 5 further includes an operation unit 53 (an example of an information input unit, see S14 and S19 in FIG. 6 ) that inputs information about the plurality of partial trajectories, and a control unit 50 (an example of a learning unit, see S2 in FIG. 5 ) that performs machine learning to cause the robot 2 to perform a predetermined action based on the plurality of partial trajectories set by the information input from the operation unit 53 (see S17). The control unit 50 performs machine learning according to the first independent portion, the overlapping portion, and the second independent portion of the first and second partial trajectories (S21). For example, the control model 30 that has been trained by such machine learning can cause the robot 2 to perform a predetermined action according to each portion of the first and second partial trajectories (S31 to S33), making it easier to operate the robot 2 with high accuracy.

[0122] In this embodiment, the terminal device 5 further includes an information processing unit that controls machine learning to cause the robot 2 to perform a predetermined action. The control unit 50 is an example of an information processing unit in this embodiment. The control unit 50 displays a trajectory indicating the movement of the robot 2 during the predetermined action on the display unit 54, which displays information (S13, S21). The control unit 50 receives a user operation regarding the trajectory displayed on the display unit 54 through the operation unit 53, which is an example of an input unit that receives user operation (S14, S19), and sets multiple partial trajectories that divide the trajectory (S17, S18, S20). The control unit 50 updates the control model 30 through machine learning (S21), as an example of controlling machine learning to cause the robot 2 to perform a predetermined action for each partial trajectory set by the user operation. The partial trajectories set as the multiple partial trajectories that divide the trajectory overlap each other in adjacent portions of the trajectory (see FIG. 4). The partial trajectories set as the multiple partial trajectories that divide the trajectory overlap each other in adjacent portions of the trajectory. The control unit 50 controls the robot 2 (S31 to S33) in accordance with the results of the machine learning controlled by the control unit 50. This allows a plurality of partial trajectories that overlap in adjacent portions to be set on the trajectory along which the robot 2 moves in a predetermined operation, making it easier to operate the robot 2 with high precision.

[0123] Furthermore, in this embodiment, a control method is provided in which the control system 1 including the terminal device 5 as described above causes the robot 2 to perform a predetermined operation.

[0124] 11 and 12 , a second embodiment of the present disclosure will be described below. In the first embodiment, an example was described in which, in the trajectory division process (S2), the terminal device 5 accepts a selection operation for a partial trajectory while displaying the trajectory of the robot 2 and the arrow Vt indicating the movement direction. In the second embodiment, a description will be given of the terminal device 5 further displaying a marker in response to a change in the behavior of the robot 2 in the trajectory division process.

[0125] Hereinafter, the description of the configuration and operation similar to those of the terminal device 5 according to the first embodiment will be omitted as appropriate, and the terminal device 5 according to this embodiment will be described.

[0126] Fig. 11 is a diagram showing a display example in the trajectory division process in the terminal device 5 of embodiment 2. Fig. 11 shows an example in which the first partial trajectory is selected by a user operation in the trajectory division process, similar to the example of Fig. 7(A) . When accepting the selection operation of such a partial trajectory, the terminal device 5 of this embodiment displays a marker 60 on the display unit 54 in addition to the trajectory of the robot 2 and the arrow Vt indicating the movement direction. The marker 60 indicates a position where the robot 2 has been stopped for a relatively long predetermined period, for example, during direct teaching by the user.

[0127] In the operation of the robot 2, for example, at a portion where the operation of the robot 2 switches between the approach phase, the sliding phase, and the insertion phase, the robot 2 may temporarily stop due to a change in direction, etc. For example, by displaying the marker 60, it is possible to make it easier for the user to recognize such a portion of the trajectory where the operation of the robot 2 switches. This allows, for example, the user to input a selection operation for a partial trajectory by referring to the marker 60, making it easier to divide the trajectory in accordance with a switch in the operation of the robot 2.

[0128] 12 is a flowchart illustrating the trajectory division process in the terminal device 5 of this embodiment. In this embodiment, the control unit 50 of the terminal device 5 executes a process (S30) for displaying the marker 60 in addition to processes similar to, for example, steps S11 to S12 and S14 to S21 in the trajectory division process ( FIG. 6 ) of embodiment 1. Furthermore, in this embodiment, the control unit 50 executes processes (S13A, S22A) for further displaying the marker 60 instead of steps S13 and S22 of FIG. 6 .

[0129] The control unit 50 learns the control model 30 based on, for example, the acquired trajectory data D1 (S12), and then identifies the time when the robot 2 was stopped for a predetermined period (for example, 3 seconds) from the coordinates for each time in the trajectory data D1 (S30). The predetermined period for identifying such a pause time is set, for example, as a period during which the robot 2 is assumed to be paused when switching between operations.

[0130] The control unit 50 displays, on the display unit 54, for example, the trajectory of the robot 2 according to the trajectory data D1, the arrow Vt indicating the direction of movement by the control model 30, and, based on the identified pause time, a marker 60 indicating the coordinates on the trajectory at that time (S13). In the example of Fig. 12, the display unit 54 displays the markers 60 at two locations on the trajectory.

[0131] For example, after updating the control model 30 based on the divided trajectory data D1 (S21), the control unit 50 displays the same display as in step S22, and also displays a marker 60 based on the pause time identified in step S30 (S22A).

[0132] According to the above process, the display unit 54 displays the marker 60 according to the time when the robot 2 is temporarily stopped together with the trajectory of the robot 2 (S30, S13A, S22A). This makes it possible to display the marker 60 at the position where the robot 2 temporarily stops due to a change in operation, for example, and facilitates the selection operation of a partial trajectory such as dividing the trajectory according to the marker 60.

[0133] In the above, an example has been described in which a pause time is identified based on the trajectory data D1 of the robot 2, and the marker 60 is displayed to indicate the coordinates on the trajectory at that time. The marker 60 is not limited to such a pause time. For example, when performing direct teaching or the like, the marker 60 may be displayed according to a time specified by a user by pressing a specific button or the like on the controller, by storing the time in association with the trajectory data D1.

[0134] As described above, in the terminal device 5 of this embodiment, the control unit 50 displays a marker indicating a location on the trajectory displayed on the display unit 54 where the trajectory meets a predetermined condition corresponding to a change in the movement of the robot 2 (S13A, S22A). The predetermined condition includes, for example, a pause time corresponding to a change in the movement of the robot 2, and a time specified by the user when direct teaching or the like is performed.

[0135] According to the terminal device 5 described above, for example, a marker 60 can be displayed on a GUI for dividing the trajectory of the robot 2, making it easier for the user to confirm the points in the trajectory of the robot 2 where phases, etc. change in response to changes in movement.

[0136] (Other Embodiments) As described above, embodiments 1 and 2 have been described as examples of the technology disclosed in this application. However, the technology in this disclosure is not limited to these and can be applied to embodiments in which modifications, substitutions, additions, omissions, etc. are made as appropriate. Furthermore, it is also possible to combine the components described in each of the above embodiments to create a new embodiment. Therefore, other embodiments will be described below as examples.

[0137] In the above embodiments, an example was described in which the terminal device 5 detects overlapping portions between two partial trajectories during the trajectory division process ( FIGS. 6 and 12 ), and if there are no overlapping portions (NO in S16), automatically expands each partial trajectory (S20). In this embodiment, when the terminal device 5 detects that there are no overlapping portions in the partial trajectories input by the user's selection operation, it may not accept the selection operation for the partial trajectory, thereby prompting the user to select an overlapping partial trajectory. Furthermore, the terminal device 5 of this embodiment does not need to detect overlapping portions, and may, for example, when accepting the selection operation for a partial trajectory (S14), display on the display unit 54 a message prompting the user to select a partial trajectory that overlaps with the previously selected partial trajectory.

[0138] In each of the above embodiments, an example has been described in which Gaussian process regression is used for the control model 30. The control model is not limited to Gaussian process regression. In the present embodiment, for example, the control model for each partial trajectory may be realized by a neural network, or may be learned by supervised learning using behavior data in the trajectory data D1 as training data. Furthermore, learning of the control model is not limited to machine learning such as supervised learning, and various methods for making the robot 2 learn movements based on the trajectory data D1 may be used. For example, the control model may learn a trajectory using Dynamic Movement Primitives (DMP).

[0139] In the above embodiments, an example has been described in which a control model is learned for each partial trajectory. In this embodiment, for example, attribute information D2 may be added to the input information for one control model, so that the behavior of the control model changes depending on the attribute information D2. When such discrete value attribute information D2 is added to the input information, using a control model represented by, for example, a neural network can make it easier to learn to operate the robot 2 with high precision.

[0140] In the above embodiments, an example has been described in which the control system 1 causes the robot 2 to perform an operation of inserting the connector 6 into the socket 7, as shown in Fig. 1 . The operation that the control system 1 causes the robot 2 to perform is not limited to the above example, and may be various operations that generate a trajectory of the robot 2. Furthermore, the control system 1 is not limited to the robot 2 as exemplified in Fig. 1 , and may be applied to the control of various robots that perform various operations.

[0141] In the above embodiments, an example has been described in which the terminal device 5 displays the trajectory of the robot 2 in relation to the X-axis and the Y-axis, as shown in Fig. 4. The terminal device 5 of this embodiment may also display the trajectory using a time axis, such as the relationship between the X-axis and the time axis.

[0142] As described above, the embodiments have been described as examples of the technology in the present disclosure, and for that purpose, the accompanying drawings and detailed description have been provided.

[0143] Therefore, the components shown in the accompanying drawings and detailed description may include not only essential components for solving the problem, but also components that are not essential for solving the problem in order to illustrate the above technology. Therefore, the fact that these non-essential components are shown in the accompanying drawings or detailed description should not be interpreted as immediately indicating that these non-essential components are essential.

[0144] Furthermore, since the above-described embodiments are intended to illustrate the technology of the present disclosure, various modifications, substitutions, additions, omissions, etc. may be made within the scope of the claims or their equivalents.

[0145] (Summary of Aspects) Various aspects of the present disclosure are listed below.

[0146] A first aspect of the present disclosure is a control device that causes a robot to perform a predetermined operation. The control device includes a communication unit that performs data communication with an external device and a control unit that controls the robot through data communication via the communication unit. In this device, a plurality of partial trajectories are set by dividing a trajectory that indicates the movement of the robot during the predetermined operation. The plurality of partial trajectories include a first partial trajectory and a second partial trajectory that are adjacent to each other on the trajectory. The first and second partial trajectories have an overlapping portion where the first and second partial trajectories overlap, a first independent portion consisting only of the first partial trajectory, and a second independent portion consisting only of the second partial trajectory. In the overlapping portion, the control unit causes the robot to perform the predetermined operation in accordance with both the first and second partial trajectories.

[0147] In a second aspect, in the control device of the first aspect, the control unit causes the robot to perform a predetermined operation in the first independent portion according to the first partial trajectory, and causes the robot to perform a predetermined operation in the second independent portion according to the second partial trajectory.

[0148] In a third aspect, the control device of the first or second aspect further includes an information input unit that inputs information about a plurality of partial trajectories, and a learning unit that performs machine learning to cause the robot to perform a predetermined action based on the plurality of partial trajectories set by the information input from the information input unit. The learning unit performs machine learning based on the first independent portion, the overlapping portion, and the second independent portion of the first and second partial trajectories.

[0149] In a fourth aspect, the control device of any of the first to third aspects further includes an information processing unit that controls machine learning to make the robot perform a predetermined action. The information processing unit displays a trajectory showing the movement of the robot in the predetermined action on a display unit that displays information. The information processing unit receives a user operation related to the trajectory displayed on the display unit at an input unit that receives user operation, and sets multiple partial trajectories that divide the trajectory. The information processing unit controls machine learning to make the robot perform a predetermined action, such that the robot performs the predetermined action for each partial trajectory, in accordance with the partial trajectories set by the user operation. The partial trajectories set as multiple partial trajectories that divide the trajectory overlap each other in adjacent portions of the trajectory. The control unit controls the robot according to the results of the machine learning controlled by the information processing unit.

[0150] A fifth aspect of the present disclosure is an information processing device that controls machine learning to cause a robot to perform a predetermined action. The information processing device includes a display unit that displays information, an input unit that accepts user operations, and a control unit that controls the display unit and the input unit. The control unit causes the display unit to display a trajectory that indicates the movement of the robot in the predetermined action. The control unit accepts user operations related to the trajectory displayed on the display unit via the input unit and sets multiple partial trajectories that divide the trajectory. The control unit controls the machine learning to cause the robot to perform the predetermined action for each partial trajectory in accordance with the partial trajectories set by the user operations. The partial trajectories set as the multiple partial trajectories that divide the trajectory overlap each other in adjacent portions of the trajectory.

[0151] In a sixth aspect, in the information processing device of the fifth aspect, the control unit controls machine learning so that the robot performs a plurality of partial actions, each of which corresponds to the partial trajectory set in a predetermined action, in accordance with the set partial trajectory.

[0152] In a seventh aspect, in the information processing device of the fifth or sixth aspect, the control unit detects whether multiple partial trajectories partially overlap with each other, based on partial trajectories input by user operation.

[0153] In an eighth aspect, in the information processing device of the seventh aspect, when the control unit detects that multiple partial trajectories do not partially overlap with each other, it sets multiple partial trajectories so that each partial trajectory partially overlaps with an adjacent partial trajectory.

[0154] In a ninth aspect, in the information processing device of any of the fifth to eighth aspects, the control unit receives a user operation at the input unit to set a lower limit value for the amount of overlap that indicates the degree to which multiple partial trajectories overlap each other, and if the amount of overlap in the multiple partial trajectories is below the lower limit value, sets the multiple partial trajectories so as to increase the amount of overlap to above the lower limit value.

[0155] In a tenth aspect, in the information processing device of any of the fifth to ninth aspects, the control unit assigns attribute information to each partial trajectory set by user operation, which distinguishes the multiple partial trajectories from one another, and causes the display unit to display the attribute information assigned to each partial trajectory so as to indicate that multiple pieces of attribute information have been assigned to parts of the trajectory where the multiple partial trajectories overlap each other.

[0156] In an eleventh aspect, in the information processing device of the tenth aspect, the control unit controls machine learning to make the robot perform a predetermined action according to attribute information assigned to a plurality of partial trajectories.

[0157] In a twelfth aspect, in the information processing device of either the tenth or eleventh aspect, the control unit displays each of the multiple partial trajectories on the display unit in a different manner depending on attribute information assigned to each of the multiple partial trajectories, and at points where the multiple partial trajectories overlap each other, displays the multiple partial trajectories in a superimposed manner depending on the attribute information for each of the multiple partial trajectories.

[0158] In a thirteenth aspect, in an information processing device according to any one of the fifth to twelfth aspects, the display unit displays the movement direction of the robot in a predetermined operation after machine learning, and the control unit updates the display of the movement direction on the display unit as a result of controlling the machine learning in accordance with a partial trajectory set by user operation.

[0159] In a fourteenth aspect, in the information processing device of any one of the fifth to thirteenth aspects, the control unit acquires, as a trajectory, coordinate data for each time point that indicates movement of the robot by direct teaching.

[0160] In a fifteenth aspect, in the information processing device of any one of the fifth to fourteenth aspects, the control unit acquires, as a trajectory, coordinate data for each time point that indicates movement of the robot due to remote control.

[0161] In a sixteenth aspect, in an information processing device of any of the fifth to fifteenth aspects, the control unit displays a marker indicating a location on the trajectory displayed on the display unit where the trajectory meets a predetermined condition corresponding to a change in the robot's movement.

[0162] In a seventeenth aspect, in the information processing device of any of the fifth to sixteenth aspects, the control unit uses machine learning to train a control model that controls the movement of the robot in accordance with a plurality of partial trajectories set by user operation, and sequentially inputs the positions or postures at which the robot will move into the control model so as to cause the robot to perform a predetermined movement, and outputs control commands to cause the robot to move.

[0163] In an 18th aspect, in the information processing device of the 17th aspect, the control command output from the position or posture input by the control model includes a mean value and a variance value that specify the probability distribution of the relative displacement to the target coordinates that operate the robot at the input position or posture.

[0164] A nineteenth aspect of the present disclosure is an information processing method for controlling machine learning to cause a robot to perform a predetermined action. In this method, a control unit of a computer that controls a display unit that displays information and an input unit that accepts user operations causes the display unit to display a trajectory showing the movement of the robot in the predetermined action, accepts user operations via the input unit to set multiple partial trajectories that divide the trajectory displayed on the display unit, and controls machine learning to cause the robot to perform the predetermined action for each partial trajectory in accordance with the partial trajectories set by the user operations. The partial trajectories set as the multiple partial trajectories that divide the trajectory overlap each other in adjacent portions of the trajectory.

[0165] A twentieth aspect of the present disclosure is a program for causing a control unit of a computer to execute the information processing method of the nineteenth aspect.

[0166] A twenty-first aspect of the present disclosure is a control method for causing a robot to perform a predetermined operation. In this method, a plurality of partial trajectories are set by dividing a trajectory that indicates the movement of the robot during the predetermined operation. The plurality of partial trajectories include a first partial trajectory and a second partial trajectory that are adjacent to each other on the trajectory. The first and second partial trajectories have an overlapping portion where the first and second partial trajectories overlap, a first independent portion consisting only of the first partial trajectory, and a second independent portion consisting only of the second partial trajectory. In the overlapping portion, the control unit causes the robot to perform the predetermined operation in accordance with both the first and second partial trajectories.

[0167] In a 22nd aspect, in the control method of the 21st aspect, the control unit causes the robot to perform a predetermined operation in the first independent portion according to the first partial trajectory, and causes the robot to perform a predetermined operation in the second independent portion according to the second partial trajectory.

[0168] In a 23rd aspect, in the control method of the 21st or 22nd aspect, a learning unit of a computer that performs machine learning to make a robot perform a predetermined action based on a plurality of partial trajectories set by information input from an input unit that inputs information about the plurality of partial trajectories performs machine learning according to the first independent portion, the overlapping portion, and the second independent portion in the first and second partial trajectories.

[0169] The present disclosure is applicable to various control systems that cause a robot to perform a predetermined operation.

Claims

1. An information processing device that controls machine learning to make a robot perform a predetermined action, A display unit that displays information, An input section that accepts user input, The system comprises a control unit that controls the display unit and the input unit, The control unit, The display unit displays the trajectory of the robot's movement during the predetermined operation. The input unit receives an operation instruction regarding the trajectory displayed on the display unit and sets a plurality of partial trajectories that divide the trajectory. The machine learning is controlled so that the robot performs the predetermined action for each of the partial trajectories set by the operation instructions. The partial trajectories set as a plurality of partial trajectories that divide the aforementioned trajectory overlap in adjacent portions of the trajectory. Information processing device.

2. The control unit controls the machine learning so that, in accordance with the set partial trajectory, the robot performs a plurality of partial actions in the predetermined operation, each corresponding to the set partial trajectory. The information processing apparatus according to claim 1.

3. The control unit detects whether the multiple partial trajectories partially overlap each other based on the partial trajectories input in the operation instruction. The information processing apparatus according to claim 1.

4. When the control unit detects that the plurality of partial trajectories do not partially overlap with each other, it sets the plurality of partial trajectories so that each partial trajectory partially overlaps with an adjacent partial trajectory. The information processing apparatus according to claim 3.

5. The control unit, The input unit receives an operation instruction to set a lower limit value for the amount of overlap, which indicates the degree to which the multiple partial trajectories overlap each other. If the amount of overlap in the plurality of partial trajectories falls below the lower limit, the plurality of partial trajectories are set so that the amount of overlap increases to or above the lower limit. The information processing apparatus according to claim 1.

6. The control unit, Attribute information that identifies each of the multiple partial trajectories from one another is assigned to each partial trajectory set by the aforementioned operation instruction. In the aforementioned trajectory, the attribute information assigned to each of the multiple partial trajectories is displayed on the display unit to indicate that multiple pieces of attribute information are assigned to the portion where the multiple partial trajectories overlap each other. The information processing apparatus according to claim 1.

7. The control unit controls the machine learning to cause the robot to perform the predetermined action according to the attribute information assigned to the plurality of partial trajectories. The information processing apparatus according to claim 6.

8. The control unit, Depending on the attribute information assigned to each of the plurality of partial trajectories, each partial trajectory is displayed on the display unit in a different manner. At locations where the aforementioned multiple partial trajectories overlap, each of the aforementioned partial trajectories is displayed superimposed in a manner corresponding to the respective attribute information. The information processing apparatus according to claim 6.

9. The display unit displays the direction of movement of the robot in the predetermined operation after machine learning. The control unit updates the display of the movement direction on the display unit as a result of controlling the machine learning according to the partial trajectory set by the operation instruction. The information processing apparatus according to claim 1.

10. The control unit acquires time-dependent coordinate data representing the robot's movement through direct teaching as the trajectory. The information processing apparatus according to claim 1.

11. The control unit acquires coordinate data for each time point, representing the movement of the robot by remote control, as the trajectory. The information processing apparatus according to claim 1.

12. The control unit causes the display unit to display a marker at a location in the trajectory displayed on the display unit where the trajectory meets a predetermined condition corresponding to a change in the robot's movement. The information processing apparatus according to claim 1.

13. The control unit, The aforementioned machine learning is used to train a control model that controls the robot's movements according to the multiple partial trajectories set by the operation instructions. To cause the robot to perform the predetermined operation, the control model is sequentially input with the position or orientation in which the robot operates, and a control command to operate the robot is output. The control command output from the input position or orientation by the control model includes a mean and variance that define the probability distribution of the relative displacement from the input position or orientation to the target coordinates that operate the robot. The information processing apparatus according to claim 1.

14. An information processing method for controlling machine learning that causes a robot to perform a predetermined action, A computer control unit that controls a display unit that displays information and an input unit that accepts user operations, The display unit displays the trajectory of the robot's movement during the predetermined operation. The input unit receives an operation instruction regarding the trajectory displayed on the display unit and sets a plurality of partial trajectories that divide the trajectory. The machine learning is controlled so that the robot performs the predetermined action for each of the partial trajectories set by the operation instructions. The partial trajectories set as a plurality of partial trajectories that divide the aforementioned trajectory overlap in adjacent portions of the trajectory. Information processing methods.

15. The control unit detects whether the plurality of partial trajectories partially overlap each other based on the partial trajectories input in the operation instruction. The information processing method according to claim 14.

16. When the control unit detects that the plurality of partial trajectories do not partially overlap with each other, it sets the plurality of partial trajectories such that each partial trajectory partially overlaps with an adjacent partial trajectory. The information processing method according to claim 15.

17. The control unit is The input unit receives an operation instruction to set a lower limit value for the amount of overlap, which indicates the degree to which the multiple partial trajectories overlap each other. If the amount of overlap in the plurality of partial trajectories falls below the lower limit, the plurality of partial trajectories are set so that the amount of overlap increases to or above the lower limit. The information processing method according to claim 14.

18. The display unit displays the direction of movement of the robot in the predetermined operation after machine learning, The control unit updates the display of the movement direction on the display unit as a result of controlling the machine learning according to the partial trajectory set by the operation instruction. The information processing method according to claim 14.

19. The control unit acquires time-series coordinate data indicating the movement of the robot by remote control as the trajectory. The information processing method according to claim 14.

20. A program for causing a computer control unit to execute the information processing method described in claim 14.