Command value generating device, method, and program
The command value generating device enhances robot control systems by processing multiple state data types to generate robust command values, addressing issues of inappropriate gain adjustments and improving task performance on varied objects.
Patent Information
- Application Number
- JP2021145670
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-07
- Publication Date
- 2025-05-20
- Estimated Expiration
- 2041-09-07
AI Technical Summary
Existing robot control systems struggle with robustness when performing tasks on objects in various states due to inappropriate gain adjustments from sensor features to command values, and lack robustness in force control systems, especially in applications like assembly and pick-and-place.
A command value generating device that acquires and processes multiple types of state data, including motion, position, orientation, and external force data, to generate command values for a robot, using optimization and autoencoders to enhance robustness and accuracy, and includes features for manual teaching, remote control, and feedback control.
Enables a robot to robustly perform tasks on objects in various states by generating accurate command values, improving robustness and reducing unintended operations through data selection and correction mechanisms.
Smart Images

Figure 0007679737000001 
Figure 0007679737000002 
Figure 0007679737000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a command value generating device, a command value generating method, and a command value generating program. [Background technology]
[0002] Conventionally, in tasks such as assembly or pick-and-place by a robot, if the work target can be in various states, the robot may fail the task. For this reason, a feedback control system is constructed in which data acquired by various sensors is fed back to the control of the robot.
[0003] For example, a technology has been proposed in which the movement of a robot arm capable of controlling external forces is manually guided, the position of the robot and the external forces acting on it are recorded, and command values for the movement of the robot arm are output so as to reproduce the recorded information (Non-Patent Document 1).
[0004] In addition, a technology has been proposed in which a model is generated by multimodally integrating sensor data such as audio and images with data obtained from the robot's movements through deep learning, and command values for the robot's movements are output from this model (Non-Patent Document 2). [Prior art documents] [Non-patent literature]
[0005] [Non-Patent Document 1] "Institute of Robotics and Mechatronics-SARA", [online], [Retrieved June 18, 2021], Internet<URL:https: / / www.dlr.de / rm / en / desktopdefault.aspx / tabid-11709 / #gallery / 29681> [Non-Patent Document 2] Kuniaki Noda, "MULTIMODAL INTEGRATION FOR ROBOT SYSTEMS USING DEEP LEARNING", Waseda University Doctoral Dissertation, July 2015. Summary of the Invention [Problem to be solved by the invention]
[0006] To configure a feedback control system, the user must define and implement the sensor features and the method for generating command values for the robot based on them. Even if the definition is correct, if the gain adjustment from the sensor features to the command values for the robot is inappropriate, the task will not be successful, and it is difficult to determine whether the problem lies in the definition, implementation, or adjustment.
[0007] Furthermore, in the technology described in Non-Patent Document 1, the force control system being executed uses the logged data of the position and force when a human provides hand-help instruction as command value inputs to the force control system, which reduces robustness.
[0008] In addition, the technology described in Non-Patent Document 2 does not use a force sensor and cannot robustly execute applications such as assembly and pick-and-place.
[0009] The present invention has been made in consideration of the above-mentioned points, and has an object to configure a feedback control system that enables a robot to robustly perform tasks on an object that may be in a variety of states. [Means for solving the problem]
[0010] In order to achieve the above object, a command value generating device according to the present invention includes an acquisition unit that acquires command values for causing a robot to perform a task on an object, and multiple types of state data representing a state of the robot when the robot's task is manually taught, the state data including at least motion data representing the robot's task, position and orientation data representing a relative position and relative orientation between the robot and the object, and external force data representing an external force applied to the object during the task, and a generation unit that generates a generator that generates a command value for causing the robot to perform a task corresponding to the input state data, based on the command value and the state data acquired by the acquisition unit at a corresponding time. This makes it possible to configure a feedback control system that allows a robot to robustly perform a task on an object that can be in various states.
[0011] Furthermore, the generating unit may generate the generator by determining parameters in the generator based on optimization, thereby making it possible to further increase robustness.
[0012] The command value generating device according to the present invention may further include a receiving unit that receives a selection of a portion of the state data acquired by the acquiring unit for each of a plurality of teachings to be used in generating the generator, and the generating unit may generate the generator using the selected portion of the state data. This makes it possible to eliminate the portion of the state data that is not suitable for generating the generator.
[0013] The receiving unit may receive a selection of a type of the status data to be used for generating the generator from among the multiple types of the status data acquired by the acquiring unit, and the generating unit may generate the generator by optimizing parameters for generating a command value capable of reproducing a status represented by the selected type of the status data based on the selected type of the status data and the command value. This makes it possible to generate a generator that generates a command value with high persuasiveness.
[0014] The generating unit may also receive a correction of the parameters of the generated generator, thereby making it possible to correct in advance parameters that are obviously inappropriate or do not conform to the user's intentions.
[0015] The parameters of the generator may include an upper limit of the command value and a target value of the operation for the command value, and the generating unit may generate the generator by fixing the upper limit and the target value to designated values and optimizing other parameters. This makes it possible to generate a generator capable of outputting command values for realizing the robot's operation more desired by the user.
[0016] The command value generating device according to the present invention may further include an instruction unit that determines whether the robot is operable based on a command value generated when state data in which a perturbation term is added to a parameter that may vary in the task is input to the generator generated by the generation unit, and if the robot is not operable, instructs the acquisition unit to acquire a command value and the state data generated when the perturbation term is added. This makes it possible to automatically determine whether sufficient state data has been acquired to generate a generator through manual instruction.
[0017] The generating unit may re-generate the generator by at least one of deleting a part of the state data used in generating the generator and adding the state data newly acquired by the acquiring unit. In this way, when an unintended operation is executed based on the generated command value, the generator is re-generated, thereby improving the quality of the operation by the feedback control system.
[0018] The acquisition unit may also include a setting unit that acquires an image of a working area including the target object during the teaching and sets parameters for recognizing the working area based on the image acquired by the acquisition unit. This allows the generator to be generated and parameters for recognition to be set.
[0019] The acquisition unit may acquire a distance between the object and a camera capturing the image, the distance being calculated based on a preset size of the object and a size of the object on the image recognized from the image. This makes it possible to acquire the distance to the object with high accuracy without using a special sensor.
[0020] Furthermore, manual teaching of the robot's movements may be performed by direct teaching, remote control from a controller, or remote control using a teaching device connected to the robot via bilateral control.
[0021] The command value generating device according to the present invention may also include a control unit that outputs the command value generated by the generator to control the robot.
[0022] Furthermore, the command value generating device according to the present invention may include a detection unit that estimates the status data by inputting a command value generated by the generator to the generator and performing a reverse calculation, and compares the estimated status data with the status data acquired by the acquisition unit to detect an abnormality occurring during work by the robot.
[0023] Furthermore, a command value generation method according to the present invention is a method for generating a generator in which an acquisition unit acquires command values for causing a robot to perform a task on an object, and multiple types of status data representing the state of the robot when the robot's behavior during the task has been manually taught, the status data including at least operation data representing the robot's behavior, position and orientation data representing the relative position and relative orientation between the robot and the object, and external force data representing external forces received by the object during the task, and a generation unit generates command values for causing the robot to perform an operation corresponding to the input status data, based on the command values and status data acquired by the acquisition unit at a corresponding time.
[0024] Furthermore, the command value generation program of the present invention is a program for causing a computer to function as an acquisition unit that acquires command values for causing a robot to perform a task on an object, and multiple types of status data representing the state of the robot when the robot's behavior during the task has been manually taught, the status data including at least operation data representing the robot's behavior, position and orientation data representing the relative position and relative orientation of the robot and the object, and external force data representing external forces received by the object during the task, and a generation unit that generates a generator that generates command values for causing the robot to perform an operation corresponding to the input status data, based on the command values and status data acquired by the acquisition unit at corresponding times. Effect of the Invention
[0025] According to the command value generating device, method, and program of the present invention, it is possible to configure a feedback control system for causing a robot to robustly execute a task on an object that may be in a variety of states. [Brief description of the drawings]
[0026] [Figure 1] FIG. 1 is a schematic diagram of a robot control system according to first to third and fifth embodiments. [Diagram 2] FIG. 11 is a diagram for explaining an example of manually teaching an operation to a robot. [Diagram 3] 13A to 13C are diagrams for explaining another example of manual teaching of an operation to a robot. [Figure 4] 13A to 13C are diagrams for explaining another example of manual teaching of an operation to a robot. [Diagram 5] FIG. 13 is a diagram showing an example of an operation for explaining sensor requirements. [Figure 6] FIG. 2 is a block diagram showing a hardware configuration of the command value generating device. [Figure 7] 1 is a block diagram showing an example of a functional configuration of a command value generating device according to first and third embodiments. [Figure 8]FIG. 13 is a diagram for explaining conversion from sensor data to status data. [Figure 9] FIG. 13 is a diagram showing an example of a part selection screen. [Figure 10] FIG. 13 is a diagram for explaining a generator. [Figure 11] FIG. 13 is a diagram for explaining feedback control using a command value generated by a generator. [Figure 12] 5 is a flowchart showing the flow of a learning process in the first embodiment. [Figure 13] 13 is a flowchart showing the flow of a control process. [Figure 14] FIG. 11 is a block diagram showing an example of a functional configuration of a command value generating device according to a second embodiment. [Figure 15] 10 is a flowchart showing the flow of a learning process in the second embodiment. [Figure 16] FIG. 13 is a diagram showing an example of a type selection screen. [Figure 17] FIG. 13 is a diagram illustrating an example of a schematic configuration of a generator in a third embodiment. [Figure 18] 13 is a flowchart showing the flow of a learning process in the third embodiment. [Figure 19] FIG. 13 is a schematic diagram of a robot control system according to a fourth embodiment. [Figure 20] FIG. 13 is a block diagram showing an example of a functional configuration of a command value generating device according to a fourth embodiment. [Figure 21] 13 is a flowchart showing the flow of a learning process in the fourth embodiment. [Figure 22] 11A and 11B are diagrams for explaining determination of a motion target based on a distance to an object. [Diagram 23] FIG. 13 is a block diagram showing an example of a functional configuration of a command value generating device according to a fifth embodiment. [Figure 24] FIG. 4 is a diagram for explaining processing by a detection unit. [Diagram 25] 13 is a flowchart showing a flow of a detection process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0027] Hereinafter, an example of an embodiment of the present invention will be described with reference to the drawings. In each drawing, the same or equivalent components and parts are given the same reference numerals. In addition, the dimensions and ratios of the drawings are exaggerated for the convenience of explanation and may differ from the actual ratios.
[0028] First Embodiment As shown in FIG. 1, a robot control system 1 according to the first embodiment includes a command value generating device 10, a robot 40, and a sensor group 50.
[0029] The robot 40 includes a robot arm 42 and a hand unit 44. The robot arm 42 includes links and joints that connect the links and rotate or linearly extend and retract when driven by a motor. The motor of the robot arm 42 is driven according to a command value output from the command value generating device 10, and the rotation angle or the extension and retraction state of the joint is changed. In this way, the hand unit 44 is controlled to be at a specified position and in a specified posture in three-dimensional space.
[0030] The hand unit 44 is a tool provided at the tip of the robot arm 42 and capable of gripping the target object 90. The hand unit 44 may be, for example, a multi-jointed, multi-fingered robot hand, a gripper-type robot hand, a suction pad, or the like. When the robot 40 performs a coating operation on the target object, the robot 40 may be provided with a tool appropriate for the operation, such as a nozzle that serves as an outlet for the coating material, instead of the hand unit 44.
[0031] The robot 40 is configured to be capable of being taught to move manually. For example, as shown in FIG. 2, the manual teaching of the movement may be direct teaching, that is, teaching by hand-helping to convey the movement. For example, as shown in FIG. 3, the movement of the robot 40 may be taught by a person operating a controller 60 to remotely control the robot 40. For example, as shown in FIG. 4, the robot 40 may be taught by remote control using a teaching device 62 connected to the robot 40 by bilateral control. By bilateral control, a force applied by the teaching device 62 is transmitted to the robot 40, and an external force acting on the robot 40 is transmitted to the teaching device 62.
[0032] The sensor group 50 includes a plurality of types of sensors, and the sensor data acquired by each sensor is output as time-series data to the command value generating device 10. Note that, although the sensor group 50 is conceptually represented by one block near the hand unit 44 in Fig. 1, each sensor included in the sensor group 50 is provided at a position according to the type and function of the sensor.
[0033] The sensors may be provided as necessary depending on the task performed by the robot 40. As an example, various sensors required when the task shown in FIG. 5 is assumed will be described. The task shown in FIG. 5 is a task of gripping the main object 90A with the hand unit 44 and fitting the main object 90A and the sub-object 90B together. For example, the task includes inserting a connector, inserting a board into a housing, and inserting an electrolytic capacitor into a board. As a policy for realizing the fitting, a motion strategy is considered in which the position and orientation of the main object 90A are adjusted by contacting the edges or faces of the main object 90A and the sub-object 90B. By fitting using such contact, it becomes easier to adjust the position and orientation of the main object 90A to the fitting position even if the resolution of the sensors and actuators is low.
[0034] Here, a "motion strategy" is the execution sequence of "motion primitives" for executing a "motion." A "motion" is a motion that has a purpose, such as "grab," "move," or "fit," which is realized by a "motion strategy." A "motion primitive" is the smallest unit of a robot's motion, such as "hold," "move," or "assign." A "motion primitive" here has a set goal, such as "lay it down at an angle," "move to a position where the corner fits into the hole," or "assign to the edge." In the example of FIG. 5, each of the points indicated by the dashed lines corresponds to a "motion," each of the points indicated by the one-dot chain lines corresponds to a "motion strategy," and each of the points indicated by the two-dot chain lines corresponds to a "motion primitive." The execution sequence of the "motions" is called a "motion sequence."
[0035] FIG. 5 shows an example of a motion sequence including the motions of "1. Grasp," "2. Move," and "3. Fit." In addition, the motion strategy of the motion "1. Grasp" defines motion primitives of "1.1. Move onto main object with rough positioning" and "1.2. Grasp main object." "1.1. Move onto main object with rough positioning" is a motion of moving the hand unit 44 to a position where the main object 90A can be gripped. "1.2. Grasp main object" is a motion of gripping the main object 90A by the hand unit 44. In addition, the motion strategy of the motion "2. Move" defines a motion primitive of "2.1. Move onto hole with rough positioning." "2.1. Move onto hole with rough positioning" is a motion of moving the main object 90A in the X-axis direction and the Y-axis direction to match the fitting position.
[0036] In addition, the motion strategy for the motion "3. Fit" defines motion primitives such as "3.1. Tilt the main object", "3.2. Move the main object toward the hole", "3.3. Search motion", "3.4. XY posture correction while tracing", "3.5. Insert into the hole", and "3.6. Unjamming motion". "3.1. Tilt the main object" is a motion that changes the posture of the main object 90A so that it becomes tilted. "3.2. Move the main object toward the hole" is a motion that places the main object 90A on the secondary object 90B and moves the main object 90A toward the fitting position while tracing. "Placing" is a motion that integrates the main object 90A and the secondary object 90B. "Tracing" is a motion that moves the main object 90A in the X-axis and Y-axis directions while maintaining the constraint with the surface of the secondary object 90B. "3.3. Searching operation" is a movement in which the main object 90A searches for the fitting position while tracing the surface of the sub-object 90B. "3.4. XY posture correction while tracing" is a movement in which the position and posture of the main object 90A in the X-axis and Y-axis directions are corrected using the alignment of the main object 90A with the sub-object 90B. "3.5. Insert into hole" is a movement in which the main object 90A is moved downward in the Z-axis direction while maintaining its constraint with the inner circumference of the fitting position (hole) of the sub-object 90B. "3.6. Jamming release operation" is a movement in which the posture of the main object 90A is changed to release the jamming.
[0037] The requirements for the sensors necessary to control the robot 40 to execute each of the above-mentioned motion primitives are as follows. Regarding "1.1. Move onto the main object by rough positioning", it is necessary to be able to recognize the position and orientation error between the hand unit 44 and the main object 90A in each of the X, Y, and Z axial directions and the rotation direction about the Z axis. Regarding "1.2. Grasp the main object", it is necessary to be able to recognize the gripping force by the hand unit 44. Regarding "2.1. Move onto the hole by rough positioning", it is necessary to be able to recognize the position error between the fitting position of the main object 90A and the sub-object 90B in each of the X, Y, and Z axial directions and the rotation direction about the Z axis. Regarding each motion primitive, which is the motion strategy of the motion "3. Fit", it is necessary to be able to detect the reaction force in each axial direction received when the main object 90A comes into contact with the upper surface of the sub-object 90B, and to recognize the orientation of the main object 90A.
[0038] Examples of sensors that satisfy the above requirements include the following. For example, as a sensor capable of recognizing a position error, a vision sensor or a 3D sensor capable of detecting the position of an object in a three-dimensional space can be applied. As a sensor capable of recognizing a gripping force, a force sensor, a pad sensor, a difference between a command value and a hand encoder, and the like can be applied. Note that the pad sensor is a sensor for detecting the deformation amount of a suction pad in the case of a hand unit 44 that suction-holds the object 90, and is, for example, a proximity sensor or a pressure sensor. As a sensor capable of detecting a reaction force in each axial direction, a force sensor or a pad sensor can be applied. Also, as a sensor capable of recognizing the posture of the main object 90A, an arm encoder, a hand encoder, a pad sensor, and the like can be applied. Note that the arm encoder is an encoder that detects the rotation angle of each joint of the robot arm 42, and the hand encoder is an encoder that detects the rotation angle of each joint of the hand unit 44, the opening degree of the gripper, and the like.
[0039] For simplicity of explanation, the following will describe a case where the hand unit 44 is a multi-fingered, multi-jointed type and one object 90 is the work object. Also, a case where the sensors included in the sensor group 50 are a vision sensor, an arm encoder, a hand encoder, and a pad sensor provided at the tip of the hand unit 44 will be described. The vision sensor is attached to the tip of the hand unit 44 so that the shooting direction is parallel to the Z axis of the coordinate system of the hand unit 44. As a result, the distance between the vision sensor and the object is regarded as the distance between the tip of the hand unit 44 and the object.
[0040] It should be noted that the sensors included in the sensor group 50 are not limited to this example, and may include sensors capable of detecting the relative position and relative posture between the object 90 and the hand unit 44, the relative position between the main object 90A and the secondary object 90B, and external forces acting on the object 90.
[0041] Fig. 6 is a block diagram showing a hardware configuration of the command value generating device 10 according to the first embodiment. As shown in Fig. 6, the command value generating device 10 has a CPU (Central Processing Unit) 12, a memory 14, a storage device 16, an input / output I / F (Interface) 18, an input / output device 20, a storage medium reading device 22, and a communication I / F 24. Each component is connected to each other via a bus 26 so as to be able to communicate with each other.
[0042] The storage device 16 stores a learning program for executing a learning process described below, and a command value generating program including a control program for executing a control process. The CPU 12 is a central processing unit, and executes various programs and controls each component. That is, the CPU 12 reads the programs from the storage device 16 and executes the programs using the memory 14 as a working area. The CPU 12 controls each of the components and performs various arithmetic processes according to the programs stored in the storage device 16.
[0043] The memory 14 is made up of a RAM (Random Access Memory) and temporarily stores programs and data as a working area. The storage device 16 is made up of a ROM (Read Only Memory), HDD (Hard Disk Drive), SSD (Solid State Drive), etc., and stores various programs including an operating system, and various data.
[0044] The input / output I / F 18 is an interface for connecting the robot 40 and each of the sensor group 50 to the command value generating device 10. Sensor data output from each of the sensors included in the sensor group 50 is input to the command value generating device 10 via the input / output I / F 18. Furthermore, command values generated by the command value generating device 10 are output to the robot 40 via the input / output I / F 18. The input / output device 20 is, for example, an input device for performing various inputs, such as a keyboard or a mouse, and an output device for outputting various information, such as a display or a printer. A touch panel display may be employed as the output device to function as the input device.
[0045] The storage medium reader 22 reads data stored in various storage media such as CD (Compact Disc)-ROM, DVD (Digital Versatile Disc)-ROM, Blu-ray disc, and USB (Universal Serial Bus) memory, and writes data to the storage media, etc. The communication I / F 24 is an interface for communicating with other devices, and uses standards such as Ethernet (registered trademark), FDDI, and Wi-Fi (registered trademark), for example.
[0046] Next, the functional configuration of the command value generating device 10 according to the first embodiment will be described.
[0047] Fig. 7 is a block diagram showing an example of a functional configuration of the command value generating device 10. As shown in Fig. 7, the command value generating device 10 includes, as functional components, an acquisition unit 31, a reception unit 32, a generation unit 33, and a control unit 38. Each functional component is realized by the CPU 12 reading out a command value generating program stored in the storage device 16, expanding it in the memory 14, and executing it.
[0048] The acquisition unit 31 acquires command values for making the robot 40 execute a task on the object 90, and status data representing the state of the robot 40 when the behavior of the robot 40 during the task is manually taught. The status data includes multiple types of data, such as, for example, operation data representing the behavior of the robot 40 during the teaching, position and orientation data representing the relative position and relative orientation between the robot 40 and the object, and external force data representing the external force applied to the object during the task. Specifically, the acquisition unit 31 acquires sensor data from each of the sensors included in the sensor group 50, and converts the sensor data into status data.
[0049] More specifically, as shown in FIG. 8, the acquisition unit 31 acquires an image, which is sensor data of a vision sensor, and calculates the position and orientation of the object 90 in the image, i.e., on the XY plane. The acquisition unit 31 also acquires sensor data of an arm encoder, and calculates the orientation (roll angle, pitch angle, yaw angle) of the tip of the robot arm 42 (hereinafter referred to as the "hand tip") based on the sensor data and kinematics information of the robot arm 42. The acquisition unit 31 also acquires sensor data of a hand encoder, and calculates the orientation of the tip of the hand unit 44 (hereinafter referred to as the "fingertip") relative to the hand tip based on the sensor data and kinematics information of the hand unit 44. The acquisition unit 31 also acquires sensor data from a pad sensor, and calculates the external force acting on each fingertip from the sensor data. The acquisition unit 31 also calculates the orientation of the object 90 held by the hand unit 44 relative to the fingertip from the sensor data.
[0050] The acquisition unit 31 also acquires values obtained by decomposing the distance from the hand to the object 90 into the X, Y, and Z axial directions based on the calculated position of the object 90 in the image and the posture of the hand as relative position data of the object 90 with respect to the hand. The acquisition unit 31 also calculates the posture of the fingertip in the absolute coordinate system based on the posture of the hand and the posture of the fingertip with respect to the hand. The acquisition unit 31 also acquires values obtained by decomposing the external force acting on each fingertip into the X, Y, and Z axial directions based on the posture of the fingertip in the absolute coordinate system as external force data. The acquisition unit 31 also acquires the posture of the object 90, which is specified based on the posture of the object 90 held by the hand unit 44 with respect to the fingertip, the posture of the hand, and the posture of the fingertip with respect to the hand, as relative posture data of the object 90 with respect to the hand.
[0051] The acquisition unit 31 also calculates the angular velocity of rotation of each joint of the robot arm 42 and the hand unit 44 from the sensor data of the arm encoder and the hand encoder. The acquisition unit 31 also calculates the speed of the hand based on the sensor data of the arm encoder and the Jacobian of the robot arm 42. The acquisition unit 31 also calculates the speed of the fingertip based on the sensor data of the hand encoder and the Jacobian of the hand unit 44. The acquisition unit 31 acquires the speeds of the hand and fingertip as motion data.
[0052] Since each sensor data is time-series data, each of the converted relative position data, relative posture data, external force data, and motion data is also time-series data.
[0053] The receiving unit 32 receives a selection of a portion of state data to be used for generating a generator, which will be described later, from the state data acquired by the acquiring unit 31 for each of the multiple manual teachings. The portion of state data includes both the state data acquired for each of a portion of teachings selected from the multiple teachings, and a portion of the state data acquired for one teaching that is included in a specified time range.
[0054] For example, the receiving unit 32 displays a part selection screen 70 as shown in FIG. 9 and receives information selected as part of the state data to be used in generating a generator (hereinafter referred to as "selected information"). The part selection screen 70 shown in FIG. 9 includes a selection area 73 for selecting the type of state data. The part selection screen 70 also includes a selection area 71 for selecting whether or not to adopt state data for each of a plurality of instructions for the type of state data selected in the selection area 73 as state data to be used in generating a generator. In the example of FIG. 9, the selection area 71 includes the items of "number of trials" for identifying each of the plurality of instructions, "time" when the instruction was executed, "target" to be checked if adopted, and "partial adoption".
[0055] The portion selection screen 70 also includes a display area 72 in which each type of status data selected in the selection area 73 is displayed in a graph. In the display area 72, the graph of the status data selected in the selection area 71 is highlighted. In Fig. 9, the graph of the selected status data is shown with a solid line, and the graphs of the other status data are shown with a dotted line. Furthermore, the instruction for the number of trials selected in the selection area 71 is shown with shading.
[0056] The display area 72 also includes slide bars (dashed lines in FIG. 9) for specifying the start time and end time of the time range to be selected. The time range is selected by sliding the slide bar. The part selection screen 70 also includes a display area 74 that displays the time range specified by the slide bar in the display area 72. The part selection screen 70 also includes a display area 75 that displays an image acquired by the vision sensor at the time specified in the display area 72 (black triangle in FIG. 9). This allows the user to select the time range by referring to the image displayed in the display area 75. For the instruction of the number of trials including state data for which a time range is specified, the "partial adoption" in the display area 71 becomes "yes", and if a time range is not specified, it becomes "no".
[0057] The generating unit 33 generates a generator based on the state data of the part indicated by the selection information accepted by the accepting unit 32 among the state data acquired by the acquiring unit 31 and the command value of the corresponding time. The generator generates and outputs the command value for causing the robot 40 to execute the action corresponding to the input state data.
[0058] Specifically, as shown in the learning phase in the upper diagram of FIG. 10, the generating unit 33 sets the input and output of a generator configured with an autoencoder such as a neural network of multiple layers as a command value Cv(t) and state data T(t) at time t. The state data T(t) is relative position data Tp(t), relative attitude data Tθ(t), external force data Tf(t), and motion data Tv(t). The command value Cv(t) in the learning phase may be the motion data Tv(t). The generating unit 33 generates a generator by learning using multiple combinations of the command value and state data with the weights of each layer of the neural network as parameters.
[0059] The control unit 38 controls the operation of the robot 40 by outputting the command value generated by the generator generated by the generation unit 33. Specifically, the control unit 38 receives state data T(t) from the acquisition unit 31, and inputs it to the generator as shown in the control phase in the lower diagram of FIG. 10. As a result, the generator outputs a command value (here, a command speed) Cv^ (in FIG. 10, a "^ (hat)" above "Cv") (t) at time t according to the current state indicated by the state data T(t). The control unit 38 outputs this command value Cv^(t) to each motor M of the robot 40. As a result, each motor is driven based on the command value, and the robot 40 operates.
[0060] As a result, as shown in FIG. 11, feedback control of the robot 40 is realized using the command value generated by the generator. Specifically, a group of sensor data S(t) at time t is converted into relative position data Tp(t), relative posture data Tθ(t), external force data Tf(t), and motion data Tv(t), which are state data T(t) at time t, and input to the generator. The generator generates a command value Cv^(t) at time t based on the input state data T(t), and the command value Cv^(t) is output to each motor M of the robot 40. The motor M is driven based on the command value Cv^(t), so that the robot 40 operates. As the robot 40 operates, the arm encoder and the hand encoder acquire the real angular acceleration Sea(t+1), the real angular velocity Seω(t+1), and the real angle Seq(t+1) as the real motion Se(t+1). This actual action Se(t+1) and the sensor data of the vision sensor and pad sensor acquired at time t+1 form a sensor data group S(t+1) at the next time t+1.
[0061] Next, the operation of the robot control system 1 according to the first embodiment will be described.
[0062] In the learning phase, the CPU 12 reads out a learning program from the storage device 16, expands it in the memory 14, and executes it, so that the CPU 12 functions as each functional component of the command value generating device 10, and executes a learning process. In the control phase, the CPU 12 reads out a control program from the storage device 16, expands it in the memory 14, and executes it, so that the CPU 12 functions as each functional component of the command value generating device 10, and executes a control process. The learning process and the control process will each be described in detail below.
[0063] 12 is a flowchart showing the flow of the learning process executed by the CPU 12 of the command value generating device 10. The learning process is executed for each movement in the movement sequence to be executed by the robot 40.
[0064] In step S11, the control unit 38 controls the robot 40 so that the robot 40 has a start position and a posture of the motion that is the target of the learning process. For example, the control unit 38 may set the end position and the posture of a motion that has been previously learned among the motions in the motion sequence as the start position and the posture of the motion that is the target of the current learning process.
[0065] Next, in step S12, the acquisition unit 31 determines whether or not the user has instructed the start of teaching by, for example, pressing a button indicating the start of teaching. If the user has instructed the start of teaching, the process proceeds to step S13, and if the user has not instructed the start of teaching, the determination of this step is repeated. After instructing the start of teaching, the user manually teaches the robot 40 a target movement.
[0066] In step S13, the acquisition unit 31 acquires a command value corresponding to the operation to be taught, and acquires sensor data from each sensor included in the sensor group 50. Next, in step S14, the acquisition unit 31 determines whether or not an instruction to end teaching has been given, for example by a user pressing a button indicating the end of teaching. If an instruction to end teaching has been given, the process proceeds to step S15, and if not, the process returns to step S13. In step S15, the acquisition unit 31 converts the sensor data acquired in step S13 into status data.
[0067] Next, in step S16, the acquisition unit 31 determines whether or not a predetermined number of teachings have been completed. If the predetermined number of teachings have been completed, the process proceeds to step S17, and if not, the process returns to step S11. In step S17, the reception unit 32 displays a part selection screen 70 and receives selection information of state data to be used for generating a generator. Next, in step S18, the generation unit 33 generates a generator using the part of the state data indicated by the selection information and the corresponding command value, and the learning process ends.
[0068] FIG. 13 is a flowchart showing the flow of control processing executed by the CPU 12 of the command value generating device 10.
[0069] In step S21, the acquisition unit 31 acquires sensor data from each sensor included in the sensor group 50. Next, in step S22, the acquisition unit 31 converts the sensor data acquired in step S21 into status data. Next, in step S23, the control unit 38 receives the status data from the acquisition unit 31 and inputs it to a generator to generate a command value. Next, in step S24, the control unit 38 outputs the generated command value to each motor of the robot 40, and the process returns to step S21.
[0070] As described above, according to the robot control system of the first embodiment, the command value generating device acquires a command value for causing the robot to perform a task on an object, and status data representing the state of the robot when the robot's behavior during the task is manually taught. The status data is a plurality of types of data including motion data representing the robot's motion, position and orientation data representing the relative position and relative orientation between the robot and the object, and external force data representing the external force the object receives during the task. The command value generating device generates a generator that generates a command value for causing the robot to perform an action corresponding to the input status data, based on the command value and status data acquired at the corresponding time. This makes it possible to configure a feedback control system that allows the robot to robustly perform tasks on objects that can be in various states.
[0071] In addition, in the technology described in Non-Patent Document 1, the running force control system uses the logging data of the position and force when a person gives hand-instruction as it is as the command value input for the force control system, so that robustness is low. In order to increase robustness, it is necessary to internally estimate a feature value that accurately expresses the current state and generate a command value based on the feature value, but the technology described in Non-Patent Document 1 does not have such a structure. A neural network is a model that has a structure that can internally hold a feature value. A neural network converts data from the input layer by changing the network weight so that the feature value appears in the intermediate layer. However, it is known that overlearning occurs when the state space of the intermediate layer is too wide, which indicates that while it has the ability to ensure robustness, it may not be possible to ensure robustness. To address this problem, a structure and learning method called an autoencoder that intentionally narrows the state space (narrows the dimensions) to restore robustness has been proposed. The command value generating device in the above embodiment can configure a sensor feedback system that can ensure greater robustness by adopting an autoencoder as a generator.
[0072] The command value generating device also receives selection of whether to adopt each of the state data acquired by multiple teachings and the time range of the state data to be adopted, and generates a generator using the selected portion of the state data. This makes it possible to prevent state data based on sensor data acquired at that time from being used to generate a generator when an unintended operation is mistakenly taught to the robot during manual teaching.
[0073] In the above embodiment, it is possible to perform remote control using a teaching device connected to the robot by bilateral control as manual teaching. In this case, the command value generating device may collect compliance parameters together with external force data when a task is performed by the teaching device. Then, the command value generating device may use the collected external force data and compliance parameters to learn the weights of each layer of a generator configured with an autoencoder as in the above embodiment as parameters, and generate a generator that uses external force data as input and outputs compliance parameters. This allows the compliance parameters of the hand unit to be automatically changed even when it is necessary to dynamically change them depending on the situation.
[0074] In the above embodiment, the command value generating device may re-generate the generator by at least one of deleting a part of the state data used in generating the generator and adding newly acquired state data. Specifically, when deleting a part of the state data, after the generator is generated, the user checks the robot's operation based on the command value output from the generator, and selects the state data to be deleted from a screen similar to the part selection screen shown in FIG. 9. When adding state data, the user may acquire the state data to be added by manually teaching again the part of the operation sequence that is an unnatural operation. In this way, when an unintended operation is executed based on the generated command value, the quality of the operation by the feedback control system can be improved by re-generating the generator.
[0075] <Second embodiment> Next, a description will be given of a second embodiment. In the robot control system according to the second embodiment, the same components as those in the robot control system 1 according to the first embodiment will be denoted by the same reference numerals and detailed description will be omitted.
[0076] As shown in FIG. 1, a robot control system 2 according to the second embodiment includes a command value generating device 210, a robot 40, and a sensor group 50.
[0077] Next, the functional configuration of the command value generation device 210 according to the second embodiment will be described.
[0078] FIG. 14 is a block diagram showing an example of the functional configuration of the command value generation device 210. As shown in FIG. 14, the command value generation device 210 includes, as functional configurations, an acquisition unit 231, a generation unit 33, an instruction unit 234, and a control unit 38. Each functional configuration is realized by the CPU 12 reading out the command value generation program stored in the storage device 16, expanding it in the memory 14, and executing it. Note that the hardware configuration of the command value generation device 210 is the same as the hardware configuration of the command value generation device 10 according to the first embodiment shown in FIG. 6, and thus the description thereof is omitted.
[0079] The instruction unit 234 determines whether the robot 40 can operate based on the command value generated when the state data taking into account the perturbation term is input to the generator generated by the generation unit 33. The perturbation term relates to parameters that may vary in applications such as assembly and pick-and-place. For example, it relates to parameters such as the assumed size, mass, initial position, target position, and friction coefficient of the pick-and-place object 90. For example, the instruction unit 234 adds or subtracts a value corresponding to the size of the object 90 to at least one of the relative position data and the relative attitude data as the perturbation term. The value corresponding to the size of the object 90 may be specified, for example, as a ratio to the size of the object 90, or may be specified as a specific numerical value such as "10 mm". The instruction unit 234 executes a simulation of the operation of the robot 40 based on the command value generated taking into account the perturbation term, and determines whether the operation is possible. As the determination of whether the operation is possible, it may be determined whether the work executed in a series of operation sequences is completed, or an operation target value may be set and it may be determined whether the operation target value is achieved.
[0080] When it is determined that the robot 40 is not operable, the instructing unit 234 instructs the acquiring unit 231 to acquire command values and state data that are generated when the perturbation terms are taken into account. Specifically, the instructing unit 234 shows the trajectory of the robot 40 taking the perturbation terms into account to the user by, for example, displaying it on a display device, and instructs the control unit 38 to control the robot 40 so that the robot 40 is at the start position and posture of the trajectory.
[0081] Next, the operation of the robot control system 2 according to the second embodiment will be described.
[0082] Fig. 15 is a flowchart showing the flow of the learning process executed by the CPU 12 of the command value generating device 210. The CPU 12 reads out a learning program from the storage device 16, deploys it in the memory 14, and executes it, whereby the CPU 12 functions as each functional component of the command value generating device 210, and the learning process shown in Fig. 15 is executed. Note that in the learning process shown in Fig. 15, the same processes as those in the learning process in the first embodiment (Fig. 12) are given the same step numbers, and detailed descriptions thereof will be omitted.
[0083] In step S11, the control unit 38 controls the robot 40 to assume a starting position and posture for the motion that is the target of the learning process. Next, in step S200, an acquisition process is executed. The acquisition process is similar to steps S12 to S15 of the learning process shown in FIG. 12. Next, in step S16, the acquisition unit 231 determines whether or not a predetermined number of teachings have been completed. If the predetermined number of teachings have been completed, the process proceeds to step S211, and if not, the process returns to step S11.
[0084] In step S211, the generation unit 33 generates a generator using the acquired state data and command values. Next, in step S212, the instruction unit 234 simulates the operation of the robot 40 based on the command values generated when state data taking into account the perturbation terms is input to the generated generator. Next, in step S213, the instruction unit 234 determines whether the robot 40 is operable when the perturbation terms are taken into account as a result of the simulation. If the robot 40 is operable, the learning process ends, and if the robot 40 is not operable, the process proceeds to step S214.
[0085] In step S214, the instruction unit 234 shows the trajectory of the robot 40 taking into account the perturbation terms to the user, for example by displaying it on a display device, and instructs the control unit 38 to control the robot 40 so that it is at the starting position and posture of the trajectory, and then returns to step S200.
[0086] The control process is similar to that in the first embodiment, and therefore a description thereof will be omitted.
[0087] As described above, according to the robot control system of the second embodiment, the command value generating device judges whether or not the robot is operable based on the command value generated when state data with a perturbation term added is input to the generated generator. If the robot is not operable, the command value generating device instructs the acquiring unit to acquire the command value and state data generated when the perturbation term is added. This makes it possible to automatically judge whether or not sufficient state data has been acquired for learning the generator through manual teaching. Therefore, even a user who is not familiar with robot systems can judge whether or not the data necessary for generating the generator has been collected.
[0088] <Third embodiment> Next, a third embodiment will be described. In the robot control system according to the third embodiment, the same components as those in the robot control system 1 according to the first embodiment will be denoted by the same reference numerals and detailed description thereof will be omitted.
[0089] As shown in FIG. 1, a robot control system 3 according to the third embodiment includes a command value generating device 310, a robot 40, and a group of sensors 50.
[0090] In each of the above embodiments, a command value is generated by inputting multiple types of state data into a generator, and the inside of the generator is a black box, so the generated command value may not be satisfactory. Therefore, in the third embodiment, a generator is generated that generates a command value in relation to state data selected by a user. In the third embodiment, the generator also generates information on whether or not a target operation is achieved based on the generated command value.
[0091] Fig. 7 is a block diagram showing an example of a functional configuration of the command value generating device 310. As shown in Fig. 7, the command value generating device 310 includes, as its functional configuration, an acquisition unit 31, a reception unit 332, a generation unit 333, and a control unit 38. Each functional configuration is realized by the CPU 12 reading out a command value generating program stored in the storage device 16, expanding the program in the memory 14, and executing the program. Note that the hardware configuration of the command value generating device 310 is similar to the hardware configuration of the command value generating device 10 according to the first embodiment shown in Fig. 6, and therefore a description thereof will be omitted.
[0092] The receiving unit 332 displays a type selection screen 80 as shown in Fig. 16, for example, and receives a selection of a type of state data to be used for generating a generator from among the multiple types of state data acquired by the acquiring unit 31. The type selection screen 80 in Fig. 16 includes, for each type of state data, an item of "command value target" that is checked if the state data is to be adopted for generating a command value, and an item of "judgment target" that is checked if the state data is to be adopted for judging achievement of an operation goal.
[0093] The generating unit 333 learns parameters of the generator including a command value generator that generates a command value and a determiner that determines achievement of the operation goal based on the selected type of state data and the command value. Specifically, the generating unit 333 generates the command value generator by optimizing parameters for generating a command value that can reproduce the state represented by the selected type of state data based on the selected type of state data and the command value. The command value generator may be, for example, a regression equation that represents the relationship between the selected type of state data and the command value. The generating unit 333 may also include an upper limit value of the command value in the parameters of the generator.
[0094] Furthermore, the generating unit 333 generates a determinator by learning the relationship between the selected type of status data and a flag indicating whether the status indicated by the status data indicates that the target behavior has been achieved (hereinafter, referred to as a "motion goal achievement flag"). The generating unit 333 may include the motion target value in the parameters of the generator. The generating unit 333 generates a command value generator and a determinator according to the selected status data by reducing the coefficient of the unselected status data in optimizing the parameters inside the command value generator and the determinator, respectively.
[0095] When at least one of the upper limit of the command value and the target value of the operation is specified by the user, the generating unit 333 fixes at least one of the upper limit of the command value and the target value of the operation to the specified value. Then, the generating unit 333 generates a generator by optimizing other parameters. This makes it possible to generate a generator that can output command values for realizing the robot's operation more desired by the user.
[0096] Fig. 17 shows an example of a schematic configuration of a generator in the third embodiment. As shown in Fig. 17, input state data and an upper limit value of a command value are input to a command value generator. The command value generator generates and outputs a command value according to the state data. In addition, the input state data and a motion target value are input to a determiner. The determiner outputs a motion target achievement flag according to the state data.
[0097] Next, the operation of the robot control system 3 according to the third embodiment will be described.
[0098] Fig. 18 is a flowchart showing the flow of the learning process executed by the CPU 12 of the command value generating device 310. The CPU 12 reads out a learning program from the storage device 16, deploys it in the memory 14, and executes it, whereby the CPU 12 functions as each functional component of the command value generating device 310, and the learning process shown in Fig. 18 is executed. Note that in the learning process shown in Fig. 18, the same processes as those in the learning process in the second embodiment (Fig. 15) are given the same step numbers, and detailed descriptions thereof will be omitted.
[0099] The process proceeds to step S311 through steps S11, S200, and S16. In step S311, the reception unit 332 displays a type selection screen 80 and receives a selection of the type of state data to be used for learning the command value generator and the type of state data to be used for learning the determiner, from among the multiple types of state data acquired by the acquisition unit 31.
[0100] Next, in step S312, the generation unit 333 optimizes parameters of a command value generator that generates a command value based on the type of state data selected as the state data used for learning the command value generator and the command value based on the operation data. Next, in step S313, the generation unit 333 optimizes parameters of a determiner that generates an operation goal achievement flag according to the type of state data selected as the state data used for learning the determiner. This generates a generator that includes a command value generator and a determiner. Then, the learning process ends.
[0101] The control process is the same as that in the first embodiment, and therefore a detailed description thereof will be omitted. In the control phase, if the operation goal achievement flag output from the generator indicates that the operation goal has not been achieved, the operation of the robot 40 may be controlled to stop, or the command value may be corrected in a direction to achieve the operation goal value.
[0102] As described above, according to the robot control system of the third embodiment, the command value generating device generates a generator by using the type of state data selected by the user. This makes it possible to output command values that are more convincing to the user than command values generated by a generator whose contents are a black box.
[0103] In the third embodiment, as in the first embodiment, a part selection screen as shown in Fig. 9 may be displayed to accept the selection of a part to be used for learning the generator for the selected type of state data. This makes it possible to prevent state data based on sensor data acquired at the time of teaching the robot an unintended action by mistake during manual teaching from being used for generating the generator.
[0104] In the third embodiment, a user interface may be provided that allows the user to confirm and modify the parameters of the generated generator. As the user interface, for example, a screen that allows the parameters of the generator to be directly modified may be displayed. Also, for example, a simulation image of the operation based on the command value output from the generated generator may be displayed. The user may confirm the operation using the simulation image, make modifications such as slowing down the operation speed, and reflect the corresponding parameter modifications, such as lowering the upper limit, in the generator. Also, a simulation image of the operation based on the command value output from the generator after the parameter modification may be displayed so that the modification contents can be confirmed. This allows obviously inappropriate parameters and parameters that do not meet the user's intention to be modified in advance.
[0105] <Fourth embodiment> Next, a fourth embodiment will be described. In the robot control system according to the fourth embodiment, the same components as those in the robot control system 1 according to the first embodiment will be denoted by the same reference numerals and detailed description thereof will be omitted.
[0106] As shown in Fig. 19, a robot control system 4 according to the fourth embodiment includes a command value generating device 410, a robot 40, and a sensor group 50. In the fourth embodiment, the sensor group 50 includes a vision sensor. Note that, like the above embodiments, the sensor group 50 also includes sensors other than the vision sensor, but Fig. 19 shows only the vision sensor as a sensor included in the sensor group 50.
[0107] Fig. 20 is a block diagram showing an example of a functional configuration of the command value generating device 410. As shown in Fig. 20, the command value generating device 410 includes, as functional components, an acquisition unit 431, a generation unit 33, a setting unit 435, and a control unit 38. Each functional component is realized by the CPU 12 reading out a command value generating program stored in the storage device 16, expanding it in the memory 14, and executing it. Note that the hardware configuration of the command value generating device 410 is similar to the hardware configuration of the command value generating device 10 according to the first embodiment shown in Fig. 6, and therefore a description thereof will be omitted.
[0108] The acquisition unit 431 acquires an image of a working area including an object when manually teaching the operation of the robot 40. Specifically, the acquisition unit 431 acquires an image captured by a vision sensor.
[0109] The acquisition unit 431 also calculates the distance between the vision sensor and the object 90 based on a preset size of the object 90 and the size of the object 90 on the image recognized from the acquired image. The acquisition unit 431 stores a set of the calculated distance between the vision sensor and the object 90 and the position coordinates of the hand of the robot 40 when the image used to calculate the distance was acquired. The acquisition unit 431 then acquires, as one of the state data, time series data of the distance to the object 90 based on this stored information and time series data of the position coordinates of the hand acquired during manual teaching.
[0110] Furthermore, in order to recognize the object 90, the place of the object 90, and the like from an image acquired by the vision sensor, it is necessary to set parameters for recognition in advance based on the image captured by the vision sensor. Therefore, the setting unit 435 sets parameters for image recognition based on the image acquired by the acquisition unit 431. Setting the parameters for image recognition includes optimizing parameters of a recognition model such as a neural network for recognizing the object from an image, and calibrating internal parameters and external parameters of the camera of the vision sensor.
[0111] Next, the operation of the robot control system 4 according to the fourth embodiment will be described.
[0112] Fig. 21 is a flowchart showing the flow of the learning process executed by the CPU 12 of the command value generating device 410. The CPU 12 reads out a learning program from the storage device 16, deploys it in the memory 14, and executes it, whereby the CPU 12 functions as each functional component of the command value generating device 410, and the learning process shown in Fig. 21 is executed. Note that in the learning process shown in Fig. 21, the same processes as those in the learning process in the second embodiment (Fig. 15) are given the same step numbers, and detailed descriptions thereof will be omitted.
[0113] After steps S11 and S200, the process proceeds to step S411. In step S411, the acquisition unit 431 calculates the distance between the vision sensor and the object 90 based on the preset size of the object 90 and the acquired image. The acquisition unit 431 then stores the calculated distance and the position coordinates of the hand of the robot 40 at that time as a set. This information needs to be stored only when this step is executed for the first time. Thereafter, when this step is executed, the distance to the object is acquired as one of the state data based on this stored information and the position coordinates of the hand acquired during manual teaching.
[0114] Next, the process proceeds to step S412 via step S16 and step S211. In step S412, the setting unit 435 sets parameters for image recognition based on the image acquired by the acquisition unit 431, and the learning process ends.
[0115] The control process is similar to that in the first embodiment, and therefore a detailed description thereof will be omitted.
[0116] As described above, according to the robot control system of the fourth embodiment, the command value generating device acquires time-series data of the distance to the object as one of the state data based on the image of the vision sensor and the size of the object set in advance. In order to recognize the distance in the Z-axis direction, triangulation is required if a special sensor such as a depth sensor is not used, but if reference information is not given, the distance cannot be recognized with high accuracy by triangulation. In the fourth embodiment, the distance to the object can be acquired with high accuracy without using a special sensor. This makes it possible to generate a command value that can appropriately execute an operation that requires accurate understanding of the distance in the Z-axis direction, such as an operation of grasping an object with a hand unit.
[0117] When generating a generator including a determiner for determining whether or not a motion goal has been achieved as in the third embodiment, the distance to the target object may be selected as state data for generating the determiner. In this case, as shown in Fig. 22, a determiner may be generated that outputs a flag indicating that the motion goal has been achieved when the distance to the target object is equal to or less than a threshold value set as a motion goal value. This enables the hand unit to robustly grasp the target object.
[0118] Furthermore, according to the robot control system of the fourth embodiment, the command value generating device sets parameters for image recognition based on an image acquired by a vision sensor. This allows the setting of parameters for image recognition in addition to the generation of a generator that generates command values for controlling the operation of the robot 40, thereby reducing the user's efforts. As a secondary effect, the operation check based on the set parameters can also be easily performed.
[0119] <Fifth embodiment> Next, a fifth embodiment will be described. In the robot control system according to the fifth embodiment, the same components as those in the robot control system 1 according to the first embodiment will be denoted by the same reference numerals and detailed description thereof will be omitted.
[0120] As shown in FIG. 1, a robot control system 5 according to the fifth embodiment includes a command value generating device 510, a robot 40, and a sensor group 50.
[0121] FIG. 23 is a block diagram showing an example of a functional configuration of the command value generating device 510. As shown in FIG. 23, the command value generating device 510 includes, as functional configurations, an acquisition unit 31, a generation unit 33, a control unit 38, and a detection unit 539. Each functional configuration is realized by the CPU 12 reading out the command value generating program stored in the storage device 16, expanding it in the memory 14, and executing it. Note that the hardware configuration of the command value generating device 510 is similar to the hardware configuration of the command value generating device 10 according to the first embodiment shown in FIG. 6, and therefore a description thereof will be omitted. However, the command value generating program according to the fifth embodiment includes, in addition to the learning program and the control program, a detection program for executing a detection process described later.
[0122] The detection unit 539 estimates status data by inputting the command value generated by the generator to the generator and performing reverse calculation, and compares the estimated status data with the status data acquired by the acquisition unit 31 to detect abnormalities that occur while the robot 40 is working.
[0123] Specifically, as shown in FIG. 24, in the control phase, the detection unit 539 inputs state data from time tn to time t+k, which is time-series data, to the generator. Time tn to time t are past times based on time t, and time t to time t+k are future times based on time t. Therefore, the shaded portion in FIG. 24 corresponds to future data based on time t. The detection unit 539 inputs command values from time t to time t+k (dashed line portion in FIG. 24) output from the generator to the generator and performs reverse calculation to generate state data from time t to time t+k (dotted line portion in FIG. 24). Then, the detection unit 539 compares the difference between the generated state data from time t to time t+k and state data from time t to time t+k (double-dotted line portion in FIG. 24) converted from sensor data, which is an actual measurement value acquired by the acquisition unit 31, with a predetermined threshold value. If the difference is equal to or greater than the threshold, the detection unit 539 detects an abnormality and controls the state to proceed to a state transition at the time of occurrence of the abnormality in the flow diagram of the operation strategy. If there is no state transition at the time of occurrence of the abnormality in the flow diagram of the operation strategy, the detection unit 539 notifies the user of the occurrence of the abnormality.
[0124] Next, the operation of the robot control system 5 according to the fifth embodiment will be described.
[0125] The learning process and the control process are executed in the same manner as in any of the above-mentioned embodiments. In the robot control system 5 according to the fifth embodiment, the detection process is executed in parallel with the control process. FIG. 25 is a flowchart showing the flow of the detection process executed by the CPU 12 of the command value generating device 510. The CPU 12 reads out the detection program from the storage device 16, expands it in the memory 14, and executes it, whereby the CPU 12 functions as each functional component of the command value generating device 510, and the detection process shown in FIG. 25 is executed.
[0126] In step S511, the detection unit 539 estimates state data by inputting the command value output to the robot 40 to the generator and performing a reverse calculation. Next, in step S512, the detection unit 539 calculates the difference between the estimated state data and the state data acquired by the acquisition unit 31. Next, in step S513, the detection unit 539 determines whether the difference calculated in the above step S512 is equal to or greater than a predetermined threshold. If the difference is equal to or greater than the threshold, the process proceeds to step S514, and if the difference is less than the threshold, the process returns to step S511. In step S514, if the corresponding state is a state that transitions to the next state when an abnormality occurs in the operation strategy, the detection unit 539 informs the control unit 38 to complete the execution of the operation, and proceeds to processing in the event of an abnormality occurring. If the state is a state in which the transition destination when an abnormality occurs has not been determined, the detection unit 539 notifies the user that an abnormality has been detected, and the detection process ends.
[0127] As described above, according to the robot control system of the fifth embodiment, the command value generating device compares the actual state data with the state data estimated by inputting a command value to a generator that generates a command value from the state data and performing a back calculation. If the difference between the two is large, an abnormality is detected. This makes it possible to detect an abnormality without creating complex abnormality detection conditions.
[0128] In each of the above embodiments, the functional configuration that functions in the learning phase and the functional configuration that functions in the control phase are configured in the same device, but each may be configured in a different device.
[0129] In addition, the processing executed by the CPU after reading the software (program) in each of the above embodiments may be executed by various processors other than the CPU. Examples of the processor in this case include a PLD (Programmable Logic Device) such as an FPGA (Field-Programmable Gate Array) whose circuit configuration can be changed after manufacture, and a dedicated electric circuit such as an ASIC (Application Specific Integrated Circuit) which is a processor having a circuit configuration designed exclusively for executing a specific processing. Furthermore, the processing may be executed by one of these various processors, or may be executed by a combination of two or more processors of the same or different types (for example, a plurality of FPGAs, a combination of a CPU and an FPGA, etc.). Moreover, the hardware structure of these various processors is, more specifically, an electric circuit that combines circuit elements such as semiconductor elements.
[0130] In addition, in each of the above embodiments, the command value generating program is pre-stored (installed) in the storage device, but the present invention is not limited to this. The program may be provided in a form stored in a storage medium such as a CD-ROM, a DVD-ROM, a Blu-ray disc, or a USB memory. The program may be downloaded from an external device via a network. [Explanation of symbols]
[0131] 1, 2, 3, 4, 5 Robot Control System 10, 210, 310, 410, 510 Command value generator 12 CPU 14. Memory 16 Storage device 18 Input / Output Interface 20 Input / Output Devices 22 Storage media reader 24 Communication I / F 26 Bus 31, 231, 431 Acquisition Department 32, 332 Reception 33, 333 generation part 38 Control Unit 234 Instruction section 435 Settings 539 Detection Unit 40 Robot 42 Robot Arm 44 Hand section 50 Sensors 60 Controller 62 Teaching Equipment 70 Part Selection Screen 80 Type selection screen 90 Objects 90A Main Object 90B Sub-objects
Claims
1. an acquisition unit that acquires command values for causing a robot to perform a task on an object, and status data representing a state of the robot when the robot's task operation is manually taught, the status data including at least operation data representing the robot's task operation, position and orientation data representing a relative position and relative orientation between the robot and the object, and external force data representing an external force applied to the object during the task; a generating unit that generates a generator that generates a command value for causing the robot to execute an operation corresponding to the input status data, based on the command value and the status data acquired by the acquiring unit at a corresponding time; A command value generating device including:
2. The command value generating device according to claim 1 , wherein the generating unit generates the generator by determining parameters in the generator based on optimization.
3. a reception unit that receives a selection of a portion of the state data to be used in generating the generator, the portion being acquired by the acquisition unit for each of a plurality of teachings; The generator generates the generator using a selected portion of the state data. The command value generating device according to claim 1 or 2.
4. the reception unit receives a selection of a type of state data to be used for generating the generator from among the multiple types of state data acquired by the acquisition unit; The generating unit generates the generator by optimizing a parameter for generating a command value capable of reproducing a state represented by the selected type of the status data based on the selected type of the status data and the command value. The command value generating device according to claim 3 .
5. The command value generating device according to claim 4 , wherein the generating unit accepts correction of parameters of the generated generator.
6. the parameters of the generator include an upper limit of the command value and a target value of the operation relative to the command value; The generating unit generates the generator by fixing the upper limit value and the target value to designated values and optimizing other parameters. The command value generating device according to claim 4 or 5.
7. 7. The command value generating device according to claim 1, further comprising an instruction unit that determines whether or not the robot is operable based on a command value generated when state data in which a perturbation term is added to a parameter that may vary in the task is input to the generator generated by the generation unit, and if the robot is not operable, instructs the acquisition unit to acquire the command value and the state data that are generated when the perturbation term is added.
8. The command value generating device according to any one of claims 1 to 7, wherein the generating unit re-executes generation of the generator by at least one of deleting a portion of the state data used in generating the generator and adding new state data acquired by the acquiring unit.
9. The acquisition unit acquires an image of a working area including the object at the time of the teaching, A setting unit sets parameters for recognizing the work area based on the image acquired by the acquisition unit. The command value generating device according to any one of claims 1 to 8.
10. The command value generating device according to claim 9 , wherein the acquisition unit acquires a distance between the camera capturing the image and the object, the distance being calculated based on a predetermined size of the object and a size of the object on the image recognized from the image.
11. The manual teaching of the robot's operation is performed by direct teaching, remote control from a controller, or remote control using a teaching device connected to the robot by bilateral control. The command value generating device according to any one of claims 1 to 10.
12. The command value generating device according to any one of claims 1 to 11, further comprising a control unit that outputs the command value generated by the generator to control the robot.
13. 13. The command value generating device according to claim 12, further comprising a detection unit that estimates the status data by inputting a command value generated by the generator to the generator and performing a reverse calculation, and compares the estimated status data with the status data acquired by the acquisition unit to detect an abnormality occurring during work by the robot.
14. an acquisition unit acquires a command value for causing the robot to perform a task on an object, and multiple types of status data representing a state of the robot when a motion of the robot during the task is manually taught, the status data including at least motion data representing the motion of the robot, position and orientation data representing a relative position and relative orientation between the robot and the object, and external force data representing an external force applied to the object during the task; A generator generates a command value for causing the robot to execute an operation corresponding to the input state data, based on the command value and the state data acquired by the acquisition unit at a corresponding time. Command value generation method.
15. Computer, an acquisition unit that acquires command values for causing a robot to perform a task on an object, and status data representing a state of the robot when the robot's behavior during the task is manually taught, the status data including at least operation data representing the robot's behavior, position and orientation data representing a relative position and relative orientation between the robot and the object, and external force data representing an external force applied to the object during the task; and a generating unit that generates a command value for causing the robot to execute an operation corresponding to the input status data based on the command value and the status data acquired at the corresponding time by the acquiring unit; A program that generates command values to function as a
Citation Information
Patent Citations
Task execution system, task execution method, and learning device and learning method thereof
JP2018190241A
Control device, control method, and control program
JP2020082332A
Control device, control system, mechanical device system and control method
JP2020192640A
Control device, control system, machine device system and control method
JP2020192641A
Model generating device, model generating method, control device and control method
JP2021030360A