WO2023243412A1 - 処理装置、ロボット制御システム及び機械学習方法 - Google Patents
処理装置、ロボット制御システム及び機械学習方法 Download PDFInfo
- Publication number
- WO2023243412A1 WO2023243412A1 PCT/JP2023/020383 JP2023020383W WO2023243412A1 WO 2023243412 A1 WO2023243412 A1 WO 2023243412A1 JP 2023020383 W JP2023020383 W JP 2023020383W WO 2023243412 A1 WO2023243412 A1 WO 2023243412A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- robot
- processing device
- motion
- teaching data
- data
- Prior art date
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 65
- 238000012545 processing Methods 0.000 title claims abstract description 51
- 230000033001 locomotion Effects 0.000 claims description 204
- 230000008859 change Effects 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 17
- 238000012216 screening Methods 0.000 claims description 11
- 230000001133 acceleration Effects 0.000 claims description 9
- 230000036461 convulsion Effects 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 8
- 230000002596 correlated effect Effects 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 5
- 230000002194 synthesizing effect Effects 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 230000009471 action Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 30
- 238000000034 method Methods 0.000 description 27
- 230000011218 segmentation Effects 0.000 description 26
- 238000012795 verification Methods 0.000 description 24
- 238000004364 calculation method Methods 0.000 description 15
- 238000013500 data storage Methods 0.000 description 12
- 238000013139 quantization Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000013136 deep learning model Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000000875 corresponding effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000415 inactivating effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
Definitions
- the present invention relates to a processing device, a robot control system, and a machine learning method.
- Imitation learning is an autonomous control technology with a short learning time. Imitation learning consists of three phases: teaching, learning, and execution. In the teaching phase, the teacher teaches the desired motion by operating the robot, and at this time collects and records time-series information output by the encoder, temperature sensor, vision sensor, ultrasonic sensor, etc. installed on the robot. . Instructions for teaching robots include remote control using a controller, direct teaching by touching the robot, and methods using control programs.
- the time-series information obtained in the teaching phase is called teaching data.
- the type of teaching data depends on the motion generation method. For example, when generating a motion according to the position of a robot or an object, the teaching data includes the position of the robot, joint angle information, and the like. Furthermore, when generating actions in response to visual information, images of the robot and the work environment may be included. Further, when generating a motion according to the state of the target object, the position and posture information of the target object may be included. Further, for example, when a motion is generated according to the speed of the robot, the teaching data includes the speed of the robot, joint angular velocity information, and the like. Further, for example, when generating a motion according to the force of the robot, the teaching data includes tactile information of the robot.
- learning data is created based on the teaching data collected in the teaching phase, and the learning data is used to train the motion generation model.
- the teaching data may be used as is as the learning data.
- learning data may be created by converting the teaching data. Converting teaching data to learning data is called preprocessing. Preprocessing includes data cleaning, which removes data that includes missing values and outlier values, and normalization, which converts data values so that they fall within a specified range.
- Preprocessing includes data cleaning, which removes data that includes missing values and outlier values, and normalization, which converts data values so that they fall within a specified range.
- the task is executed by generating motion using the motion generation model obtained in the learning phase and the robot's sensor data.
- a machine learning model is trained to predict joint angle information and an image at the next time when joint angle information and an image at a certain time are input.
- this machine learning model it is possible to autonomously generate movements by inputting joint angle information and images at each time and using the output joint angle information as control command values for the robot. Can be done.
- Patent Document 1 states that "imitation learning is performed based on observation information grasped by the operator during the model operation.”
- an issue with imitation learning is that it is difficult to simultaneously reduce the introduction man-hours (teaching/learning phase man-hours) and acquire generalized behavior.
- introduction man-hours such asaching/learning phase man-hours
- learn/learning phase man-hours such as learning/learning phase man-hours
- Teaching methods that require less man-hours to introduce than program-based methods include methods in which a person remotely controls the robot using a controller, etc., and methods in which the robot is operated by direct touch. These teaching methods require less man-hours to introduce because there is no need to program the robot's movements one by one.
- an object of the present invention is to provide a processing device, a robot control system, and a machine learning method that can reduce temporal variations in teaching data that impede motion learning. Note that although the techniques described in Patent Document 1 have in common that learning data is manipulated to improve motion generation accuracy, they do not mention reducing variations in the time direction.
- a processing device segments teaching data to a robot for each motion of the same type of the robot, and divides the teaching data for the robot into segments of the same type of motion of the robot.
- the present invention includes a processor that performs correction to align the speed or timing of the operations of the , synthesizes the plurality of corrected teaching data, and performs machine learning using the synthesized teaching data.
- FIG. 1 is a schematic diagram showing a configuration example of a robot control system to which the present invention is applied.
- FIG. 2 is a block diagram showing an example of the hardware configuration of a computer that implements a motion planning section of the robot control system.
- FIG. 2 is a block diagram showing an example of a functional configuration of a computer included in a motion planning section of the robot control system.
- FIG. 2 is a block diagram illustrating an example of a functional configuration of a consistency verification device included in a motion planning section in the first embodiment of the present invention.
- FIG. 3 is an explanatory diagram of an example of a method for realizing speed adjustment in the first embodiment of the present invention.
- FIG. 1 is a schematic diagram showing a configuration example of a robot control system to which the present invention is applied.
- FIG. 2 is a block diagram showing an example of the hardware configuration of a computer that implements a motion planning section of the robot control system.
- FIG. 2 is a block diagram showing an example of a functional configuration of
- FIG. 2 is a block diagram illustrating an example of a functional configuration of a machine learning device included in a motion planning section in the first embodiment of the present invention.
- 7 is a flowchart illustrating an example of the operation of the consistency verification device included in the operation planning section in the first embodiment of the present invention.
- FIG. 3 is an explanatory diagram of a reaching task in order to show an example of the effect of the consistency verification device included in the motion planning unit in the first embodiment of the present invention.
- FIG. 3 is a diagram showing the relationship between the time during a teaching operation and the position of the hand in the Y-axis direction.
- FIG. 7 is a diagram illustrating a reaching task when there is variation in teaching data in the time direction.
- FIG. 7 is a diagram showing the relationship between time and hand position in the Y-axis direction during a teaching operation with variations in the time direction.
- FIG. 8 is an explanatory diagram when the consistency verification device is applied to the reaching tasks shown in FIGS. 8C and 8D.
- FIG. 7 is a block diagram illustrating an example of the internal configuration of a consistency verification device included in a motion planning section in a second embodiment of the present invention.
- 12 is a flowchart illustrating an example of the operation of the consistency verification device included in the operation planning section in the second embodiment of the present invention. It is a schematic diagram showing an example of composition of a robot control system in a 3rd embodiment of the present invention.
- FIG. 3 is a block diagram showing an example of a functional configuration of a computer included in a motion planning section of a robot control system according to a third embodiment of the present invention.
- FIG. 7 is a block diagram showing an example of the hardware configuration of a computer that implements a motion planning section of a robot control system in a third embodiment of the present invention.
- FIG. 3 is a block diagram showing an example of the functional configuration of a screening device included in a motion planning section of a robot control system according to a third embodiment of the present invention.
- FIG. 7 is a block diagram showing an example of the functional configuration of a screen operation unit included in the robot control system according to a third embodiment of the present invention.
- FIG. 12 is a block diagram showing an example of the functional configuration of a motion planning section included in the robot control system according to a fourth embodiment of the present invention.
- FIG. 7 is a block diagram showing an example of a functional configuration of a motion parameter adjustment device included in a motion planning section of a robot control system according to a fourth embodiment of the present invention.
- the present embodiment relates to a robot motion generation technology that learns time-series data of a robot and autonomously generates motions.
- the present embodiment aims to achieve both reduction in introduction man-hours and acquisition of generalized motion by reducing variations in the time direction of teaching data that impede motion learning.
- FIG. 1 shows an example of the configuration of a robot control system to which the present invention is applied.
- the robot control system 100 shown in FIG. 1 includes a robot device 1, a sensor data acquisition section 2, a motion planning section 3, and a control section 4.
- a single-arm robot arm is shown as a specific example of the robot device 1, the configuration of the robot device 1 is not limited and may be, for example, a double-arm arm. Alternatively, it may be a moving device such as legs, crawlers, wheels, or propellers.
- the sensor data acquisition unit 2 acquires sensor data output from the robot device 1.
- the sensor data includes sensor data of the robot device 1 and the environment acquired during work.
- the motion planning section 3 uses the data obtained by the sensor data acquisition section 2 as teaching data to learn and generate motions in the following three steps. First, learning data is created by performing preprocessing to suppress variations in teaching data. Next, a motion generation model is constructed by performing motion learning based on the training data. Finally, a motion command value is generated using the constructed motion generation model.
- the control unit 4 provides the command value calculated by the motion planning unit 3 to the robot device 1, thereby driving the actuator mounted on the robot device 1.
- FIG. 2 is a block diagram showing an example of the hardware configuration of a computer that implements the motion planning section 3.
- the illustrated computer 20 is an example of hardware that constitutes a computer used by the sensor data acquisition section 2, motion planning section 3, and control section 4.
- a personal computer can be used as the calculator 20.
- the computer 20 includes a ROM (Read Only Memory) 22, a CPU (Central Processing Unit) 23, a RAM (Random Access Memory) 24, a nonvolatile storage 25, and an input/output interface 26, which are connected to a bus 21.
- a network interface 27 is provided.
- the ROM 22 records software program codes that implement the functions of the sensor data acquisition section 2, motion planning section 3, and control section 4 according to the present embodiment.
- the CPU 23 serves as an arithmetic processing unit that reads out software program codes that implement the functions of the sensor data acquisition section 2, motion planning section 3, and control section 4 according to the present embodiment from the ROM 22, loads the corresponding programs into the RAM 24, and executes them. Function. In the RAM 24, values of variables, parameters, etc. generated during arithmetic processing by the CPU 23 are temporarily written. The values of variables, parameters, etc. written in the RAM 24 are read out by the CPU 23 as appropriate.
- a CPU is used as the arithmetic processing unit, other processors such as an MPU (Micro Processing Unit) may also be used.
- MPU Micro Processing Unit
- the nonvolatile storage 25 is an example of a recording medium, and can store data used by a program, data obtained by executing the program, and the like.
- the nonvolatile storage 25 stores learning data, motion generation models, etc., which will be described later.
- an OS Operating System
- programs executed by the CPU 23 may be recorded in the nonvolatile storage 25.
- a magnetic recording medium, an optical recording medium, a semiconductor recording medium, etc. can be adopted.
- the input/output interface 26 is an interface that communicates signals and data from each sensor and each actuator included in the robot control system 100.
- the input/output interface 26 may have the function of an A/D (Analog/Digital) converter and/or a D/A converter (not shown) that processes input signals or output signals.
- Sensor data in this specification includes information obtained not only from each sensor but also from each actuator.
- a NIC Network Interface Card
- a modem For the network interface 27, a NIC (Network Interface Card) or a modem is used, for example.
- the network interface 27 is configured to be capable of transmitting and receiving various data to and from an external device via a communication network such as a LAN or the Internet, or a dedicated line to which a terminal is connected. For example, by using the network interface 27, it is possible to send and receive various data to and from the robot device 1.
- FIG. 3 shows an example of the functional configuration of the motion planning section 3 that implements the present invention.
- the sensor data storage device 31 is a device that records the sensor data acquired by the sensor data acquisition unit 2 as time-series data.
- the consistency verification device 32 is a device that converts the time series data recorded in the sensor data storage device 31 and outputs learning data.
- the learning data storage device 33 is a device that records the learning data output from the consistency verification device 32.
- the machine learning device 34 is a device that learns learning data recorded in the learning data storage device 33 and outputs a command value to the control unit 4.
- the motion segmentation unit 41 is a device that divides sensor data into groups of motions. Methods for realizing motion segmentation include segmentation based on speed changes, segmentation based on clustering, and segmentation based on deep learning.
- Segmentation based on speed changes is a method based on the robot's operating speed and can be used when the data characteristics are simple. Segmentation by clustering can be used even when the taught data characteristics are complex, but it is necessary to set the number of segments in advance. Segmentation using deep learning can be used even when the taught data characteristics are complex, and there is no need to set the number of segments in advance. On the other hand, the implementation cost and calculation cost are higher than segmentation based on speed changes or segmentation based on clustering.
- the speed adjustment unit 42 adjusts the movement speed in order to reduce variations in movement speed between teaching data that hinder acquisition of generalized movement.
- a method for implementing the speed adjustment section an algorithm will be described in which the speeds of the teaching data are made equal by quantizing the teaching data and removing noise.
- FIG. 5 is a diagram showing the procedure and effects of this algorithm.
- Graph g5A shows data of different moving speeds, with the horizontal axis representing time and the vertical axis representing the hand position in a certain axis (hereinafter referred to as the x-axis) in the world coordinate system.
- Graph g5B represents the result of quantizing the two teaching data shown in graph g5A to convert the hand position value into a discrete approximate value. As shown in graph g5B, by quantizing, the amount of change in the teaching data per time becomes constant.
- the size of the quantization width needs to be equal to or larger than the amount of change in teaching data per time. In other words, after the speed adjustment, the speed is the same as the original teaching data or becomes larger than the original teaching data.
- the speed can be adjusted to a smaller speed than the original teaching data.
- the enlarged display 5C shows that by performing quantization in one direction of the hand, a time when the hand position does not change, that is, a time when the speed is zero, occurs.
- Graph g5D represents the result of noise removal for the quantized teaching data shown in graph g5B. Noise removal refers to removing the time when the velocity occurs after quantization, regarding it as noise.
- the graph g5D it can be seen that the hand speeds of the two teaching data are the same. It can also be seen that the final hand position remains the same as before the speed adjustment. From the above, it can be seen that speed adjustment can be achieved by performing quantization and noise removal.
- the timing adjustment unit 43 shown in FIG. 4 adjusts the movement start and end timings in order to reduce variations in the timing of movement start and end, etc. between teaching data, which hinders the acquisition of generalized movements.
- An example of a method for realizing timing adjustment is to increase or decrease the stationary time of the robot device 1. For example, in order to align the operation start times of the robot device 1 in all the teaching data, calculate the average value of the operation start times of all the teaching data, and set the operation start time of each teaching data to be equal to the average value. It is conceivable to increase or decrease the stationary time.
- the dynamics adjustment unit 44 adjusts the dynamics in the sensor data in order to prevent the generated motion from becoming unstable due to excessive magnitudes and changes in dynamics such as acceleration, jerk, and torque in the teaching data after speed adjustment. Adjust dynamics such as acceleration, jerk, and torque.
- One example of a method for realizing dynamics adjustment is to apply a moving average filter to the hand position data.
- the data processing unit 45 converts the data output from the dynamics adjustment unit 44 into learning data so that the data can be learned by the deep learning model. Specifically, learning data is constructed by synthesizing each adjusted segment for each teaching data.
- the machine learning model definition unit 61 defines the structure and parameters of the machine learning model.
- the learning unit 62 uses the learning data accumulated in the learning data storage device 33 to update the weights of the machine learning model defined in the machine learning model definition unit 61, so that when a certain value is input to the model, a desired value is obtained. Make the value output. For example, if the robot's joint angles at a certain time are input, predicted values of the robot's joint angles at the next time are output.
- the learned weight storage unit 63 stores the weight parameters of the learned model.
- the inference unit 64 constructs a motion generation model by using the machine learning model read from the machine learning model definition unit 61 and the weight parameters of the model read from the learned weight storage unit 63, and uses the same sensor data as during learning.
- the motion is generated by inputting it into the model.
- a model is constructed such that when a joint angle of a robot at a certain time is input, a predicted value of the joint angle of the robot at the next time is output.
- the joint angles at the next time can be obtained, and the robot's motion can be generated by using the obtained joint angles as command values.
- the operation order can be broadly divided into three phases: teaching, learning, and execution.
- teaching phase movements are taught by operating the robot device 1, and sensor data obtained during the teaching phase is recorded in the sensor data storage device 31 using the sensor data acquisition unit 2.
- the consistency verification device 32 is used to convert the sensor data of the sensor data storage device 31 into learning data, and the machine learning model defined by the machine learning model definition unit 61 is used for learning. Get the weight.
- the consistency verification device 32 converts sensor data through three steps: motion segmentation, speed adjustment, and timing adjustment. These three steps will be explained with reference to FIG.
- FIG. 7 is a flowchart showing an example of the operation of the consistency verification device 32.
- S1 motion segmentation is performed for all teaching data (S2).
- the motion segmentation unit 41 is used to divide sensor data in the time direction, thereby dividing the sensor data into groups of motions.
- speed adjustment S5
- timing adjustment S6
- dynamics adjustment S7 are performed for each segment (S3, S4).
- the data processed by the timing adjustment unit 43 is converted into learning data using the data processing unit 45 (S8), and the preprocessing is ended (S9).
- the learning data constructed by the consistency verification device 32 is input to the learning section 62 of the machine learning device 34.
- the learning unit 62 calls the machine learning model from the machine learning model definition unit 61 and performs learning based on the learning data.
- the motion generation model obtained as a result of learning is stored in the learned weight storage section 63.
- the task is executed by generating motion using the motion generation model obtained in the learning phase.
- the inference unit 64 of the machine learning device 34 is used to calculate the command value to the robot device 1.
- FIGS. 8 (8A to 8D) and FIG. 9. show a verification of the effectiveness of the motion planning unit 3.
- FIG. 8 (8A to 8D) shows a reaching task in which the hand of the robot arm is moved linearly to a target hand position. The influence of variations in the time direction in the teaching data on the reaching task will be explained using FIGS. 8 (8A to 8D).
- FIGS. 8A and 8B graph g8B
- the hand depicted in FIG. 8A shows the position of the robot hand at the initial time.
- p, q, and r drawn in FIG. 8A each represent the target hand position.
- X and Y in FIG. 8A are the names of coordinate axes set in the task environment, and here the X and Y axes indicate position [cm].
- arrows (solid lines) from the hand toward p and r represent the trajectory of the hand during the teaching motion.
- FIG. 8B (graph g8B) is a diagram showing the relationship between the time during the teaching operation and the hand position in the Y-axis direction.
- the teaching motions for the target hand positions p and r have the same hand speed and reaching start/end time, and there is no variation in the time direction.
- a motion generation model is obtained that outputs a command value to the robot arm at the next time when current sensor data is input.
- the target hand position q is generalized to the motion generation model constructed in the motion learning phase by learning between two points, so that it is located exactly in the middle of the target hand positions p and r. .
- the hand position generated for q passes exactly between the hand positions of the teaching motion for p and r at each time.
- FIG. 8A and graph g8B the motion generated with respect to q is shown by a broken line, and the hand is stable without wobbling in the Y-axis direction. From this, it can be seen that the reaching task is successful when there is no variation in the teaching data in the time direction.
- FIG. 8C shows the state of the reaching task when there is variation in the teaching data in the time direction.
- Each symbol in the figure represents the same meaning as in FIG. 8A.
- FIG. 8D (graph g8D) is a diagram showing the relationship between time and hand position in the Y-axis direction during the teaching operation.
- the time direction in the teaching operations for the target hand positions p and r There are variations in the time direction in the teaching operations for the target hand positions p and r. Specifically, the movement speed of the teaching operation of the target hand position r is faster than that of the target hand position p. Furthermore, the reaching start time (double-dashed line) and the reaching completion time (dotted-dotted line) are also early.
- FIG. 9 is an explanatory diagram when the consistency verification device 32 is applied to the reaching tasks shown in FIGS. 8C and 8D.
- the same reference numerals in FIG. 9 are the same parts as those in FIGS. 8C and 8D, so the explanation will be omitted again.
- Graph g9A is teaching data for the target hand positions p and r shown in graph g8D. As described above, there are variations in the teaching data for the target hand positions p and r in the time direction.
- the graph g9B is a segmentation of the teaching motions for the target hand positions p and r shown in the graph g9A.
- the dashed dotted line in graph g9B represents the segmented time.
- the operation is divided into reaching start time and reaching end time.
- the motion segmentation unit 41 performs segmentation based on speed changes to find the time when the hand starts moving from a stationary state. Good.
- Graph g9C is an explanatory diagram for aligning the hand speeds for the hand movements shown in graph g9B.
- the hand speed of the arm from the reaching start time to the reaching completion time may be adjusted to be equal to the average value of the hand speeds in the two teaching data + ⁇ (constant). More preferably, the hand speed of the arm from the reaching start time to the reaching completion time is made equal to the average value.
- Graph g9D is an explanatory diagram for arranging the timing of hand movements for the hand movements shown in graph g9C. As shown in graph g9D, the reaching start time and the reaching completion time are made equal between the teaching data.
- Graph g9E shows the motion generated for the target hand position q in FIG. 8A in the execution phase. Since the target hand position q is located exactly between the target hand positions p and r, the motion generated for q also passes exactly between the taught motions for p and r. Referring to the motion generated for q, the hand does not shake in the Y-axis direction and is stable.
- the motion segmentation unit 41 divides sensor data into groups of motions.
- segmentation may not work well.
- One possible solution to this problem is to use Recurrent Dropout.
- Recurrent Dropout is the process of learning while randomly inactivating nodes in a recurrent neural network. By using Recurrent Dropout, it is expected that generalization performance against temporal variations in training data will be improved.
- the speed adjustment section 42 quantizes the sensor data. However, if the amount of change per unit time in sensor data is larger than the quantization width (in other words, if you want to increase the speed after conversion), the amount of change per unit time in sensor data after quantization exceeds the quantization width. As a result, the amount of change per time after quantization is not equal and failure to equalize the speed occurs.
- the speed adjustment unit 42 needs to perform upsampling before quantization to reduce the amount of change per unit time of the sensor.
- Upsampling means increasing the sampling frequency of time series data.
- Methods for implementing upsampling include linear interpolation, nearest neighbor interpolation, spline interpolation, and the like. However, it is known that these interpolation methods cannot be applied to image data, and a separate technique called frame interpolation is required. Details will be explained in the second embodiment.
- the processor (CPU 23) of the processing device segments the teaching data to the robot (robot device 1) for each similar type of robot motion (motion segmentation unit 41).
- the processor (CPU 23) corrects the plurality of segmented teaching data to align the speed or timing of the same type of motion of the robot (speed adjustment section 42, timing adjustment section 43).
- the processor (CPU 23) synthesizes the plurality of corrected teaching data (data processing unit 45).
- the processor (CPU 23) performs machine learning using the combined teaching data (machine learning device 34).
- the processor performs correction on the plurality of segmented teaching data to smooth the dynamics values of the same type of motion of the robot (dynamics adjustment unit 44). For example, values of dynamics (acceleration, jerk, torque, etc.) are smoothed by taking a moving average. Thereby, the operation of the robot can be stabilized.
- the teaching data includes, for example, position information indicating the position of the robot, joint angle information indicating the joint angle, speed information indicating the speed of the robot, joint angular velocity information indicating the joint angular velocity of the robot, and sensor values of a tactile sensor provided in the robot.
- the tactile information includes at least one of tactile information indicating the tactile information.
- the teaching data includes position information indicating the position of the robot (the position of the gripper). Thereby, machine learning can be performed using the state of the robot as teaching data.
- the teaching data may include at least one of position information indicating the position of the object on which the robot performs work, and posture information indicating the posture of the object. Thereby, machine learning can be performed using the state of the object as teaching data.
- the dynamics include, for example, at least one of acceleration, acceleration change, jerk, jerk change, torque, and torque change. This allows the robot to move smoothly.
- the processor quantizes the plurality of segmented teaching data and removes noise to equalize the speed of the robot's similar movements (FIG. 5). Thereby, variations in the teaching data in the time direction can be quickly reduced.
- the processor corrects the plurality of segmented teaching data by increasing or decreasing the robot's rest time to align the timing of the robot's similar movements (FIG. 9). Thereby, variations in the teaching data in the time direction can be easily reduced.
- the robot control system 100 includes a processing device (computer 20) and a robot (robot device 1).
- the processor (CPU 23) uses the learned machine learning model to generate a command value for the robot's operation (machine learning device 34).
- the robot operates according to command values. This allows the robot to be autonomously controlled.
- FIG. 10 is a block diagram showing an example of the internal configuration of a consistency verification device included in the motion planning section in the second embodiment of the present invention.
- the second embodiment divides sensor data by a motion segmentation unit 41, and uses a speed adjustment unit 42 and/or a timing adjustment unit 43 to reduce variations in the time direction.
- the dynamics is adjusted by using the dynamics adjustment unit 44 and converted into learning data by the data processing unit 45.
- the consistency verification device 32 includes a frame interpolation unit 101.
- the frame interpolation unit 101 increases the frame rate of time-series data of images.
- Frame interpolation based on optical flow consists of three steps: feature extraction, movement change calculation, and interpolated image generation. For example, consider two consecutive images out of time-series data of images. In feature extraction, feature quantities of two images are extracted. In the movement change calculation, attention is paid to the same feature quantity among the feature quantities calculated in the feature quantity extraction, and the movement change amount thereof is calculated. Note that this movement change of the feature amount is called optical flow. In interpolation image generation, an image between the two original images is estimated by moving pixels in the two original images based on the amount of change in movement.
- Examples of frame interpolation using deep learning include models such as FLAVR and FILM.
- FLAVR is a deep learning model that enables highly accurate frame interpolation by performing optical flow and three-dimensional convolution calculations inside the model.
- FILM is a deep learning model that takes into account the scale (enlargement or reduction) of an image.
- FIG. 11 is a flowchart showing an example of the operation of the consistency verification device 32 in the second embodiment of the present invention.
- the second embodiment performs motion segmentation of sensor data (S2), performs speed adjustment (S6), timing adjustment (S7) for each segment, and performs teaching.
- S2 sensor data
- S6 speed adjustment
- S7 timing adjustment
- teaching teaching
- learning data is constructed by composing each adjusted segment for each data (S8, S9).
- FIG. 11 the same reference numerals as in FIG. 7 indicate the same parts, so repeated explanation will be omitted.
- the difference from the first embodiment is that in the second embodiment, frame interpolation (S13) is performed before speed adjustment (S6).
- the teaching data includes images of the robot (robot device 1) or the working environment.
- the processor (CPU 23) performs frame interpolation of the image included in the teaching data for the plurality of segmented teaching data, and then performs correction to equalize the speed of the same type of motion of the robot (frame interpolation unit 101). Thereby, even if the teaching data includes images of the robot (robot device 1) or the working environment, variations in the teaching data in the time direction can be easily reduced.
- FIG. 12 is a block diagram showing a configuration example of a robot control system 100 in the third embodiment of the present invention.
- the same reference numerals as in FIG. 1 indicate the same parts, so repeated explanation will be omitted.
- the robot control system 100 includes a screen operation section 5.
- the screen operation section 5 can display the processing results of the motion planning section.
- various parameters in the motion planning section 3 are determined based on the operation input received from the user.
- FIG. 13 is a block diagram showing a configuration example of the motion planning section 3 in the third embodiment of the present invention. Note that in FIG. 13, the same reference numerals as those in FIG. 3 indicate the same parts, so a repeated explanation will be omitted.
- the motion planning section 3 includes a screening device 131.
- the screening device 131 extracts only sensor data that is effective for improving generalization performance from among the sensor data stored in the sensor data storage device 31. Thereafter, the extracted teaching data is output to the consistency verification device 32 and the screen operation section 5.
- the video output interface 141 for example, VGA (Video Graphics Array), DVI (Digital Visual interface), HDMI (High-Definition Multimedia Interface, registered trademark), or Display Port is used.
- VGA Video Graphics Array
- DVI Digital Visual interface
- HDMI High-Definition Multimedia Interface, registered trademark
- Display Port is used.
- the video output interface 141 is configured to be able to transmit video to a display via a dedicated line or the like.
- FIG. 15 shows an example of the functional configuration of a screening device 131 that implements the present invention. Note that in FIG. 15, the same reference numerals as those in FIG. 13 indicate the same parts, so a repeated explanation will be omitted.
- the grouping unit 151 groups the sensor data stored in the sensor data storage device 31 so that data with similar actions are grouped together.
- the grouping section for example, it is possible to divide sensor data of the same target hand position into groups.
- the representative data calculation unit 152 calculates, for each group obtained by the grouping unit 151, time series data that represents the group (this is referred to as representative data). As a method for realizing the representative data calculation unit 152, for example, time series data obtained by calculating the median value at each time for all time series data in a group may be used as representative data. .
- the outlier data detection unit 153 detects time series data (referred to as outlier data) that is not similar to the representative data calculated by the representative data calculation unit 152 for each group obtained by the grouping unit 151.
- outlier data time series data
- DTW Dynamic Time Warping
- IQR Interquartile Range
- DTW is an index of similarity between time series data. The possible values of DTW are 0 or more, and the closer it is to 0, the more similar the time series data are.
- the DTW series is obtained by calculating the DTW with the representative data for all the time series data in the group.
- the IQR of the calculated DTW sequence is determined.
- IQR is an index that expresses the degree of dispersion of data, and is determined by (3rd quartile) - (1st quartile). Finally, among the time-series data, data whose DTW for the representative data is larger than (third quartile+ ⁇ IQR) is determined to be outlier data. The value of ⁇ is initially set to 1.5. Further, the value can also be changed by the user using the screen operation section 5.
- the calculation result output unit 154 outputs sensor data other than the deviation data to the consistency verification device 32. Additionally, information on missing data is output to the screen operation unit 5.
- FIG. 16 shows an example of the functional configuration of the screen operation section 5 that implements the present invention. Note that in FIG. 16, the same reference numerals as in FIG. 1 indicate the same parts, so repeated explanation will be omitted.
- the operation input unit 161 is configured with an input device such as a mouse and a keyboard, and receives mouse input, keyboard input, etc. from the user.
- the screen display section 162 is composed of, for example, a display, and visualizes information obtained from the operation input section 161 and the motion planning section 3.
- the screen control unit 163 receives information from the motion planning unit 3 and the operation input unit 161. It also outputs information to the motion planning section 3 and screen display section 162.
- the processor (CPU 23) performs screening by removing data that deviates from the teaching data (screening device 131). Thereby, generalization performance can be further improved.
- FIG. 17 is a block diagram showing an example of the configuration of the motion planning section in the fourth embodiment of the present invention. Note that in FIG. 17, the same reference numerals as those in FIG. 3 indicate the same parts, so a repeated explanation will be omitted.
- the motion planning section 3 includes a motion parameter adjustment device 171.
- the motion parameter adjustment device 171 realizes an arbitrary motion speed and/or arbitrary force magnitude when generating a motion from the sensor data stored in the sensor data storage device 31.
- FIG. 18 shows an example of the functional configuration of an operating parameter adjustment device 171 that embodies the present invention. Note that in FIG. 18, the same reference numerals as those in FIGS. 12 and 13 indicate the same parts, so a repeated explanation will be omitted.
- the operating parameter storage unit 181 stores values of parameters necessary for operating parameter adjustment.
- Types of parameters include, for example, the control cycle of the motion generation model, the range of current values, the range of torque sensor values, and the like.
- the value of the parameter can be changed by the user via the screen operation unit 5.
- the motion parameter adjustment calculation unit 182 adjusts the motion speed and/or the magnitude of force when generating a motion, based on the parameter values stored in the motion parameter storage unit 181.
- changing the motion speed in the motion parameter adjustment calculation section for example, changing the control cycle when motion is generated can be considered. For example, if it is desired to increase the motion speed, the control cycle at the time of motion generation may be made smaller than the sampling cycle of the teaching data.
- changing the magnitude of force in the operation parameter adjustment calculation section for example, changing the current value or torque sensor value may be considered. For example, if it is desired to reduce the magnitude of the force, the upper limit of the current value or torque sensor value may be made smaller than the teaching data.
- the processing device includes a storage device (operation parameter storage unit 181) that stores operation parameters indicating parameters for adjusting the operation of the robot (robot device 1) after machine learning.
- the storage device includes, for example, a RAM 24, a nonvolatile storage 25, and the like.
- the processor uses the learned machine learning model to generate command values for the operation of the robot (robot device 1) based on the operation parameters (machine learning device 34). This allows the robot's motion to be adjusted without having to perform teaching/learning again.
- the operating parameter is, for example, the sampling period of teaching data.
- the processor (CPU 23) increases the speed of the robot's operation by making the control period of the robot (robot device 1) smaller than the sampling period in the command value, or increases the speed of the robot's operation by making the control period of the robot (robot device 1) larger than the sampling period in the command value. By doing so, the speed of the robot's motion is reduced (motion parameter adjustment device 171). Thereby, the speed of the robot's motion can be adjusted without having to perform teaching/learning again.
- the operation parameter is, for example, the maximum value M of the robot torque or a value correlated therewith in the teaching data.
- the processor increases the force of the robot by making the upper limit of the torque of the robot (robot device 1) or a value correlated therewith (for example, the value of the driving current of an actuator) larger than the maximum value M in the command value.
- the upper limit of the robot's torque or a value correlated therewith is made smaller than the maximum value M, thereby reducing the force of the robot. This allows the robot's force to be adjusted without having to perform teaching/learning again.
- the present invention is not limited to the embodiments described above, and includes various modifications.
- the embodiments described above have been described in detail to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to having all the configurations described.
- each of the above-mentioned configurations, functions, processing units, etc. may be partially or entirely realized by hardware, for example, by designing an integrated circuit.
- a broadly defined processor device such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit) may be used.
- each component of the motion planning section 3 may be implemented in the control section 4. Further, the processing performed by a certain processing section of the motion planning section 3 may be realized by one piece of hardware, or may be realized by distributed processing by a plurality of pieces of hardware.
- the sensor data acquisition unit 2, the motion planning unit 3, and the control unit 4 are realized by one computer 20 as an example, but they may be realized by separate computers.
- the motion planning unit 3 which has a large calculation load, using a high-performance computer, the overall throughput can be improved.
- the computers are connected to each other via a communication network such as a LAN or the Internet.
- This is a machine learning system that performs machine learning to generate robot motions, and includes an acquisition unit that acquires teaching data to the robot (time-series sensor information, etc.) and segmentation of the teaching data based on the robot's motion.
- a speed adjustment that corrects the teaching data so that the speeds of the same kind of motions are the same when the speeds of the same kind of motions among the segmented motions are different between the motion segmentation unit and different teaching data that have a common task.
- a timing adjustment unit that corrects the teaching data so as to align the timings of the same type of movement when the timings of the same type of movement among the segmented movements are different between different teaching data having a common task; a dynamics adjustment unit that corrects the dynamics of the robot in the teaching data, and the teaching data in which at least one of the speed, the timing, and the dynamics has been corrected is used as learning data in the machine learning system. system.
- the machine learning system includes an acquisition unit that acquires the position of the robot, joint angle information, etc. as teaching data to the robot.
- the machine learning system is a machine learning system that includes an acquisition unit that acquires images of the robot and the work environment in addition to the robot's position and joint angle information.
- the machine learning system includes an acquisition unit that acquires position and posture information of a target object in addition to robot position and joint angle information.
- the machine learning system includes an acquisition unit that acquires robot speed, joint angular velocity information, etc. as teaching data to the robot.
- the machine learning system includes an acquisition unit that acquires tactile information of the robot as teaching data to the robot.
- the machine learning system includes a dynamics adjustment unit that adjusts acceleration and/or changes in acceleration among the dynamics of the robot.
- the machine learning system includes a dynamics adjustment unit that adjusts jerk and/or jerk change among the dynamics of the robot.
- the machine learning system includes a dynamics adjustment unit that adjusts torque or/and torque change among the dynamics of the robot.
- the speed adjusting section performs frame interpolation between the teaching data and then adjusts the teaching data so as to equalize the speed of the same type of motion.
- a machine learning system that is characterized by correction.
- the machine learning system includes a screening device that extracts teaching data effective for improving motion generalization performance from acquired teaching data.
- the machine learning system is equipped with a motion parameter adjustment device that adjusts the control cycle of the robot in order to achieve an arbitrary motion speed when generating motion using a trained machine learning model.
- Machine learning system
- the machine learning system is equipped with a motion parameter adjustment device that adjusts the torque of the robot in order to generate an arbitrary force when generating motion using a trained machine learning model. , machine learning systems.
- Grouping section 152... Representative data calculation section, 153... Outlier data detection section, 154... Calculation result output section, 161... Operation input section, 162... Screen display section, 163... Screen Control unit, 171... Operating parameter adjustment device, 181... Operating parameter storage unit, 182... Operating parameter adjustment calculation unit
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
処理装置(計算機(20))のプロセッサ(CPU(23))は、ロボット(ロボット装置(1))への教示データをロボットの同種の動作ごとに分節する(動作分節化部(41))。プロセッサは、分節された複数の教示データに対して、ロボットの同種の動作の速度又はタイミングを揃える補正を行う(速度調整部(42)、タイミング調整部(43))。プロセッサは、補正が行われた複数の教示データを合成する(データ処理部(45))。プロセッサは、合成された教示データを用いて機械学習を行う(機械学習装置(34))。
Description
本発明は、処理装置、ロボット制御システム及び機械学習方法に関する。
事業環境の急速な変化や人々のニーズの多様化に対応するために、多品種少量生産システムが注目を集めている。生産効率を高める手段としてロボットによる自動化が考えられるが、ロボットを制御するためには膨大なプログラミングコストや高い専門知識が必要であり、導入工数が大きいことが課題となっている。そこで、ロボット導入工数を削減するために、あらゆるロボット機能に機械学習が用いられている。例えば、物体認識では、物体の種類や位置、姿勢を推定するために、ロボットとの接触情報や画像情報から機械学習を用いて物体の特徴を定量的に算出する研究が多数報告されている。
一方で、動作生成では、環境変化やプログラムでは記述困難な動作を実現するために、機械学習をロボットの自律制御に適用した研究が多数報告されている。自律制御技術の一例として、強化学習が挙げられる。ロボットが試行錯誤することで、タスクを遂行するための最適動作を獲得するため、明示的に動作を教示する必要がない。しかし、最適動作を獲得するためには、膨大な試行錯誤(学習時間)がかかる。
学習時間が小さい自律制御技術として、模倣学習がある。模倣学習は教示・学習・実行フェーズの3つからなる。教示フェーズでは、教示者がロボットを操作することで目的の動作を教示し、その際ロボットに搭載されたエンコーダーや、温度センサ、ビジョンセンサ、超音波センサ等が出力する時系列情報を収集記録する。ロボットへの動作教示は、コントローラによる遠隔操作や、ロボットを直接触れて教示するダイレクトティーチング、あるいは制御プログラムを用いる手法などがある。
教示フェーズで得られる時系列情報を、教示データと呼ぶ。教示データの種類は、動作生成方法に依存する。例えば、ロボットや対象物の位置に応じて動作を生成する場合、教示データには、ロボットの位置や、関節角情報等が含まれる。さらに、視覚情報に応じて動作を生成する場合は、ロボットや作業環境の画像を含めてもよい。また、対象物の状態に応じて動作を生成する場合は、対象物の位置や姿勢情報を含めてもよい。また、例えば、ロボットの速度に応じて動作を生成する場合、教示データには、ロボットの速度、関節角速度情報等が含まれる。また、例えば、ロボットの力に応じて動作を生成する場合、教示データには、ロボットの触覚情報が含まれる。
学習フェーズでは、教示フェーズで収集した教示データをもとに学習データを作成し、その学習データを用いて動作生成モデルの学習を行う。学習データは、教示データをそのまま使用してもよい。また、教示データに含まれるノイズ、欠損、エラー値などを除去するために、教示データを変換することで学習データを作成してもよい。教示データを学習データへ変換することを前処理と呼ぶ。前処理には、欠損値や外れ値等が含まれるデータを除去するデータクリーニングや、データの値が指定された範囲内に収まるように変換する正規化などがある。学習データを用いて、機械学習モデルの重みを更新することで、ある値をモデルへ入力すると、所望の値を出力するようにする。例えば、ある時刻の関節角情報と画像を入力すると、その次の時刻の関節角情報と画像を予測するようにモデルを学習する。
実行フェーズでは、学習フェーズで得られた動作生成モデルとロボットのセンサデータを用いて、動作生成を行うことでタスクを実行する。例えば、学習フェーズで、ある時刻の関節角情報と画像を入力すると、その次の時刻の関節角情報と画像を予測するように、機械学習モデルを学習したとする。この機械学習モデルを実行フェーズで用いることで、各時刻の関節角情報と画像を入力し、出力された関節角情報をロボットへの制御指令値とすることで、自律的に動作を生成することができる。
模倣学習の動作生成精度を向上させるために、次のような模倣学習が特許文献1に記載されている。この特許文献1には、「模範操作時に操作者が把握していた観測情報に基づいて模倣学習を行う」と記載されている。
ところで、模倣学習の課題として、導入工数(教示・学習フェーズの工数)削減と、汎化動作獲得の両立が困難であることが挙げられる。例えば、プログラムベースの教示では、コンピュータ制御によってロボットを操作するため、人が操作する場合に比べて均整な教示データが取得でき、教示データ間の関係性を学習しやすくなり汎化動作性能が向上する。しかし、ロボットの動作を逐一プログラミングする必要があるため、導入工数が大きい。
プログラムベースよりも導入工数が小さい教示方法としては、人がロボットをコントローラ等で遠隔操作する方法や、直接触れることで操作する方法等が挙げられる。これらの教示方法は、ロボットの動作を逐一プログラミングする必要がないため、導入工数が小さい。
しかし、人がロボットを動かすことで、プログラムベースの教示方法に比べて、教示データ毎に動作速度や動作タイミング等の時間方向のばらつきが生じるため、教示データ間の関係性を学習することが困難である。この時間方向のばらつきの影響を無視するためには、膨大な学習データが必要であり、教示回数が増加する。
そこで、本発明は、動作学習を阻害する教示データの時間方向のばらつきを低減することができる処理装置、ロボット制御システム及び機械学習方法を提供することを目的とする。なお、特許文献1に記載の技術は、動作生成精度を向上させるために学習データを操作するという点で共通しているものの、時間方向のばらつきを低減することに言及していない。
上記目的を達成するために、本発明の一例の処理装置は、ロボットへの教示データを前記ロボットの同種の動作ごとに分節し、分節された複数の前記教示データに対して、前記ロボットの同種の動作の速度又はタイミングを揃える補正を行い、補正が行われた複数の前記教示データを合成し、合成された前記教示データを用いて機械学習を行うプロセッサを備える。
本発明によれば、動作学習を阻害する教示データの時間方向のばらつきを低減することができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
以下、第1~第4の実施形態を、図面を用いて説明する。本実施形態は、ロボットの時系列データを学習し、自律的に動作を生成するようなロボット動作生成技術に関する。本実施形態は、動作学習を阻害する教示データの時間方向のばらつきを低減することで、導入工数削減と汎化動作獲得の両立を実現することを目的とする。
(第1の実施形態)
まず、本発明の第1の実施形態に係るロボット制御システムについて図1から図3を参照して説明する。
まず、本発明の第1の実施形態に係るロボット制御システムについて図1から図3を参照して説明する。
図1は、本発明が適用されるロボット制御システムの構成例を示す。図1に示すロボット制御システム100は、ロボット装置1とセンサデータ取得部2、動作計画部3、制御部4から成る。ロボット装置1の具体例として、単腕ロボットアームを示しているが、ロボット装置1の構成は問わず、例えば、双腕アームでもよい。また、脚やクローラ、車輪、プロペラなどの移動装置でもよい。
センサデータ取得部2は、ロボット装置1から出力されるセンサデータを取得する。センサデータには、作業中に取得した、ロボット装置1や環境のセンサデータが含まれる。
動作計画部3は、センサデータ取得部2で得られたデータを教示データとして、次の3つの手順で動作を学習・生成する。まず、教示データのばらつきを抑える前処理行うことで学習データを作成する。次に、学習データに基づき動作学習を行うことで動作生成モデルを構築する。最後に、構築した動作生成モデルを用いて動作指令値を生成する。
制御部4は、動作計画部3で算出された指令値をロボット装置1へ与えることで、ロボット装置1に搭載されたアクチュエータが駆動する。
[動作計画部のハードウェア構成]
次に、ロボット制御システム100が備える動作計画部3のハードウェア構成について図2を参照して説明する。ここでは、動作計画部3を実現する計算機のハードウェア構成について説明する。
次に、ロボット制御システム100が備える動作計画部3のハードウェア構成について図2を参照して説明する。ここでは、動作計画部3を実現する計算機のハードウェア構成について説明する。
図2は、動作計画部3を実現する計算機のハードウェア構成例を示すブロック図である。図示する計算機20は、センサデータ取得部2、動作計画部3、制御部4で使用されるコンピュータを構成するハードウェアの一例である。計算機20には、例えば、パーソナルコンピュータを用いることができる。
計算機20は、バス21に接続された、ROM(Read Only Memory)22と、CPU(Central Processing Unit)23と、RAM(Random Access Memory)24と、不揮発性ストレージ25と、入出力インターフェース26と、ネットワークインターフェース27と、を備える。
ROM22は、本実施形態に係るセンサデータ取得部2、動作計画部3、制御部4の機能を実現するソフトウェアのプログラムコードを記録している。
CPU23は、本実施形態に係るセンサデータ取得部2、動作計画部3、制御部4の機能を実現するソフトウェアのプログラムコードをROM22から読み出し、該当プログラムをRAM24にロードして実行する演算処理装置として機能する。RAM24には、CPU23の演算処理の途中で発生した変数やパラメータなどの値が一時的に書き込まれる。RAM24に書き込まれた変数やパラメータなどの値は、CPU23によって適宜読みだされる。演算処理装置としてCPUを用いているが、MPU(Micro Processing Unit)等の他のプロセッサを用いてもよい。
不揮発性ストレージ25は、記録媒体の一例であり、プログラムが使用するデータや、プログラムを実行して得られたデータなどを保存できる。例えば、不揮発性ストレージ25には、後述する学習データや動作生成モデル等が保存される。また、不揮発性ストレージ25に、OS(Operating System)や、CPU23が実行するプログラムを記録してもよい。不揮発性ストレージ25としては、磁気記録媒体、光記録媒体、半導体記録媒体などが採用可能である。
入出力インターフェース26は、ロボット制御システム100が備える各センサや各アクチュエータの信号やデータの通信を行うインターフェースである。入出力インターフェース26が、入力信号又は出力信号を処理する図示しないA/D(Analog/Digital)変換器、及び/又は、D/A変換器の機能を備えてもよい。本明細書のセンサデータには、各センサだけでなく、各アクチュエータから得られる情報も含まれる。
ネットワークインターフェース27は、例えばNIC(Network Interface Card)やモデムが用いられる。ネットワークインターフェース27は、端子が接続されたLANやインターネット等の通信ネットワーク又は専用線等を介して、外部装置との間で各種のデータを送受信することが可能となるように構成されている。例えば、ネットワークインターフェース27を用いることで、ロボット装置1と各種データの送受信を行うことができる。
[動作計画部の機能構成]
次に、ロボット制御システム100が備える動作計画部3の機能構成について、図3を参照して説明する。図3は、本発明の実施となる動作計画部3の機能構成例を表したものである。図3に示す動作計画部3において、センサデータ蓄積装置31は、前記センサデータ取得部2で取得されたセンサデータを、時系列データとして記録する装置である。整合性検証装置32は、前記センサデータ蓄積装置31に記録された時系列データを変換し、学習データを出力する装置である。学習データ蓄積装置33は、整合性検証装置32から出力された学習データを記録する装置である。機械学習装置34は、学習データ蓄積装置33に記録された学習データを学習し、制御部4へ指令値を出力する装置である。
次に、ロボット制御システム100が備える動作計画部3の機能構成について、図3を参照して説明する。図3は、本発明の実施となる動作計画部3の機能構成例を表したものである。図3に示す動作計画部3において、センサデータ蓄積装置31は、前記センサデータ取得部2で取得されたセンサデータを、時系列データとして記録する装置である。整合性検証装置32は、前記センサデータ蓄積装置31に記録された時系列データを変換し、学習データを出力する装置である。学習データ蓄積装置33は、整合性検証装置32から出力された学習データを記録する装置である。機械学習装置34は、学習データ蓄積装置33に記録された学習データを学習し、制御部4へ指令値を出力する装置である。
次に、図4を用いて動作計画部3の整合性検証装置32の構成を説明する。整合性検証装置32において、動作分節化部41は、センサデータを、動作のまとまり毎に分割する装置である。動作分節化の実現方法としては、速度変化に基づく分節化や、クラスタリングによる分節化、深層学習による分節化等がある。
速度変化に基づく分節化は、ロボットの動作速度に基づく手法であり、データ特性が単純な場合に使用できる。クラスタリングによる分節化は、教示データ特性が複雑な場合にも使用できるが、事前に分節数を設定する必要がある。深層学習による分節化は、教示データ特性が複雑な場合にも使用でき、事前に分節数を設定する必要がない。一方、速度変化に基づく分節化やクラスタリングによる分節化に比べて、実装コスト、計算コストが大きい。
速度調整部42は、汎化動作獲得の妨げとなる教示データ間の動作速度のばらつきを小さくするために、動作速度を調整する。速度調整部の実現方法の一例として、教示データの量子化とノイズ削除を行うことで教示データ間の速度を揃えるアルゴリズムを説明する。
図5は、本アルゴリズムの手順と効果を示した図である。グラフg5Aは、移動速度が異なる種類のデータを示しており、横軸は時間,縦軸は世界座標系におけるある軸(以降、x軸とよぶ)方向の手先位置を表す。グラフg5Bは、グラフg5Aで示す2つの教示データについて、手先位置の値を離散的な近似値に変換する量子化を行った結果を表している。グラフg5Bに示す通り、量子化することで教示データの時間当たりの変化量が一定になる。
なお、教示データの時間当たりの変化量が量子化幅よりも大きい場合、量子化後の変化量は必ずしも一定値にならない。そこで、量子化幅の大きさは教示データの時間当たりの変化量と同じ、又は、それより大きくする必要がある。言い換えると、速度調整後は、元の教示データと速度が同じか、又は、元の教示データよりも大きくなる。
ただし、変形例2で説明するアップサンプリングを行うことで、元の教示データよりも、小さな速度へ速度調整することができる。拡大表示5Cは、手先一方向に量子化を行うことで、手先位置が変化しない時間、すなわち速度がゼロの時間が発生することを示している。グラフg5Dは、グラフg5Bで示す量子化後の教示データについて、ノイズ削除を行った結果を表している。ノイズ削除とは、量子化後に発生した、速度がゼロになる時間を、ノイズとみなして削除することをいう。グラフg5Dが示す通り、2つの教示データの手先速度が揃っていることが分かる。また、最終手先位置は、速度調整前と変わらないこともわかる。以上より、量子化とノイズ削除を行うことで、速度調整を実現できることがわかる。
図4に示すタイミング調整部43は、汎化動作獲得の妨げとなる教示データ間の動作開始・終了等のタイミングのばらつきを小さくするために、動作開始・終了タイミングを調整する。タイミング調整の実現方法の一例としては、ロボット装置1の静止時間を増やす、又は、減らすことが考えられる。例えば、全教示データにおける、ロボット装置1の動作開始時刻を揃えるためには、全教示データの動作開始時刻の平均値を算出し、各教示データにおける動作開始時刻を、その平均値と等しくなるように静止時間を増やす、又は、減らすことが考えられる。
ダイナミクス調整部44は、速度調整後の教示データにおける加速度や躍度、トルク等のダイナミクスの大きさや変化が過大になることで、生成される動作が不安定になることを防ぐために、センサデータにおける加速度や躍度、トルク等のダイナミクスを調整する。ダイナミクス調整の実現方法の一例としては、手先位置のデータに対して移動平均フィルタを適用することが考えられる。
データ処理部45は、ダイナミクス調整部44から出力されたデータを深層学習モデルで学習できるように、学習データに変換する。具体的には、教示データ毎に、調整後の各分節を合成することで学習データを構築する。
次に、図6を用いて機械学習装置34の構成について説明する。機械学習装置34において、機械学習モデル定義部61は、機械学習モデルの構造やパラメータを定義する。
学習部62は、学習データ蓄積装置33で蓄積した学習データを用いて、機械学習モデル定義部61で定義された機械学習モデルの重みを更新することで、ある値をモデルへ入力すると、所望の値を出力するようにする。例えば、ある時刻のロボットの関節角度を入力すると、次の時刻のロボットの関節角度の予測値を出力するようにする。
学習済み重み蓄積部63は、学習済みのモデルの重みパラメータを保存する。
推論部64は、機械学習モデル定義部61から読み込んだ機械学習モデルと、学習済み重み蓄積部63から読み込んだモデルの重みパラメータを用いることで動作生成モデルを構築し、学習時と同様のセンサデータをモデルへ入力することで動作生成を行う。
例えば、学習時に、ある時刻のロボットの関節角度を入力すると、次の時刻のロボットの関節角度の予測値を出力するようにモデルを構築したとする。この場合、動作生成時は、各時刻ごとの関節角度をモデルに入力することで、次の時刻における関節角度を得られ、得られた関節角度を指令値とすることでロボットの動作を生成できる。
[動作計画部3の動作例]
次に、これまで説明した動作計画部3の各機能がどのような順序で動作するかを説明する。動作順序は大きく教示・学習・実行の3つのフェーズに分けられる。教示フェーズでは、ロボット装置1を操作することで動作を教示し、その間得られたセンサデータを、センサデータ取得部2を用いて、センサデータ蓄積装置31に記録する。
次に、これまで説明した動作計画部3の各機能がどのような順序で動作するかを説明する。動作順序は大きく教示・学習・実行の3つのフェーズに分けられる。教示フェーズでは、ロボット装置1を操作することで動作を教示し、その間得られたセンサデータを、センサデータ取得部2を用いて、センサデータ蓄積装置31に記録する。
学習フェーズでは、整合性検証装置32を用いて、センサデータ蓄積装置31のセンサデータを学習データへ変換し、機械学習モデル定義部61で定義した機械学習モデルを用いて学習することで、学習済み重みを得る。整合性検証装置32では、動作分節化、速度調整、タイミング調整の3つ手順でセンサデータを変換する。これらの3つの手順を、図7を参照して説明する。
図7は、整合性検証装置32の動作例を示すフローチャートである。前処理開始(S1)後は、まず、全教示データについて、それぞれ動作分節化を行う(S2)。動作分節化では、動作分節化部41を用いて、センサデータを時間方向に分割することで、動作のまとまり毎に分ける。動作分節化後は、各分節について(S3、S4)、速度調整(S5)と、タイミング調整と(S6)、ダイナミクス調整(S7)を行う。タイミング調整部43によって処理されたデータを、データ処理部45を用いることで、学習データへ変換し(S8)、前処理を終了する(S9)。
以上のように、整合性検証装置32で教示データを処理することで、教示データ間の時間方向のばらつきを低減した学習データが得られる。なお、速度調整とタイミング調整は、必ずしも両方とも行う必要はなく、どちらか一方のみ行えばよい場合がある。例えば、教示動作の速度のみが異なる場合は、速度のみを調整すればよいので、タイミング調整は不要である。また、教示動作のタイミングのみが異なる場合は、タイミングのみを調整すればよいので、速度調整は不要である。
整合性検証装置32で構築した学習データを、機械学習装置34の学習部62へ入力する。学習部62では、機械学習モデル定義部61から機械学習モデルを呼び出し、学習データに基づき学習する。学習の結果得られた動作生成モデルは、学習済み重み蓄積部63へ保存される。
実行フェーズでは、学習フェーズで得られた動作生成モデルを用いて、動作生成を行うことで、タスクを実行する。ロボット装置1への指令値を計算するために、機械学習装置34の推論部64を用いる。
[動作計画部の効果例]
動作計画部3の有効性の検証として、動作計画部3が動作することで、どのように教示データ間の時間方向のばらつきが小さくなるかを、図8(8A~8D)、図9を参照して説明する。図8(8A~8D)は、ロボットアームの手先を目標手先位置へ直線的に移動させるという、リーチングタスクを表したものである。図8(8A~8D)を用いて、教示データにおける時間方向のばらつきが、リーチングタスクに与える影響を説明する。
動作計画部3の有効性の検証として、動作計画部3が動作することで、どのように教示データ間の時間方向のばらつきが小さくなるかを、図8(8A~8D)、図9を参照して説明する。図8(8A~8D)は、ロボットアームの手先を目標手先位置へ直線的に移動させるという、リーチングタスクを表したものである。図8(8A~8D)を用いて、教示データにおける時間方向のばらつきが、リーチングタスクに与える影響を説明する。
まず、図8Aと図8B(グラフg8B)を用いて、教示データに時間方向のばらつきがないとタスクが成功する理由を説明する。図8Aに描かれる手先は、ロボットハンドの初期時刻での位置を示している。また、図8Aに描かれるp、q、rは、それぞれ目標手先位置を表している。図8AのX、Yはそれぞれタスク環境に設定された座標軸の名前であり、ここではX軸、Y軸は位置[cm]を示す。ここで、目標手先位置p、rに対する動作を教示したとする。図8Aにおいて、手先からp、rへ向かう矢印(実線)は、教示動作中の手先の軌跡を表している。
図8B(グラフg8B)は、教示動作中の時間とY軸方向の手先位置の関係を表した図である。グラフg8Bに示す通り、目標手先位置pとrの教示動作は、手先速度とリーチング開始・終了時刻は同じであり、時間方向のばらつきはない。動作学習フェーズで、目標手先位置pとrに対する教示動作を学習することで、現在のセンサデータを入力すると、次の時刻におけるロボットアームへの指令値を出力する動作生成モデルを獲得する。
次いで、図8Aとグラフg8Bを参照して、動作実行フェーズで、目標手先位置qに対して生成される動作を考える。動作実行フェーズでは、動作学習フェーズで構築した動作生成モデルへ目標手先位置qは、2点間の学習により、位置汎化することで、目標手先位置p、rのちょうど真ん中に位置するようになる。このとき、qに対して生成される手先位置は、各時刻ごとに、p、rに対する教示動作の手先位置のちょうど中間を通る。図8Aとグラフg8Bは、qに対して生成される動作を破線で示しており、手先がY軸方向にぶれず安定している。このことから、教示データに時間方向のばらつきがない場合は、リーチングタスクに成功することが分かる。
次に、図8Cと図8D(グラフg8D)を用いて、ばらつきがあるとタスクが失敗する理由を説明する。図8Cは、教示データに時間方向のバラつきがある場合の、リーチングタスクの様子を示したものである。図中の各符号は図8Aと同じ意味を表す。
図8D(グラフg8D)は、教示動作中の、時間とY軸方向の手先位置の関係を表した図である。目標手先位置pとrの教示動作には、時間方向のばらつきがある。具体的には、目標手先位置pよりも、目標手先位置rの教示動作のほうが、移動速度が速い。またリーチング開始時刻(2点鎖線)、完了時刻(1点鎖線)も早い。
次いで、図8Cとグラフg8Dを参照して、目標手先位置qに対して生成される動作を考える。上述の通り、p、q、rの位置関係から、qに対して生成される動作は、p、rに対する教示動作のちょうど中間を通る。図8Cとグラフg8Dに、qに対して生成される動作を、破線で示している。qに対して生成される動作を参照すると、手先がY軸方向に大きくぶれてしまっている。このことから、教示データに時間方向のばらつきがある場合は、リーチングタスクに失敗することが分かる。
次いで、図9を用いて、教示データに時間方向のバラつきがある場合でも、整合性検証装置32を用いることで、汎化動作が獲得できることを説明する。図9は、図8C、8Dに示したリーチングタスクについて、整合性検証装置32を適用した際の説明図である。図9中の、同一符号は図8C、8Dと同一部品であるため、再度の説明を省略する。
グラフg9Aは、グラフg8Dで示した目標手先位置p、rに対する教示データである。上述の通り、目標手先位置p、rに対する教示データには、時間方向のばらつきがある。
グラフg9Bは、グラフg9Aで示す目標手先位置p、rに対する教示動作を、それぞれ動作分節化したものである。グラフg9Bの一点鎖線は、分節化した時刻を表している。グラフg9Bに示す通り、リーチング開始時刻とリーチング終了時刻で動作を分割している。例えば、グラフg9Bに示すように、リーチング開始時刻を検出するためには、動作分節化部41にて速度変化に基づく分節化を行うことで、手先が静止している状態から動き始める時刻を調べるとよい。
グラフg9Cは、グラフg9Bで示す手先動作について、手先速度を揃える説明図である。グラフg9Cに示す通り、リーチング開始時刻からリーチング完了時刻までのアームの手先速度を調整し、2つの教示データにおける手先速度の平均値+α(定数)と等しくすれば良い。さらに好ましくは、リーチング開始時刻からリーチング完了時刻までのアームの手先速度を平均値と等しくする。
グラフg9Dは、グラフg9Cで示す手先動作について、手先の動作タイミングを揃える説明図である。グラフg9Dに示す通り、教示データ間で、リーチング開始時刻とリーチング完了時刻を等しくしている。
グラフg9Eは、実行フェーズで、図8Aにおける目標手先位置qに対して生成される動作を示している。目標手先位置qは、目標手先位置p、rのちょうど中間に位置するため、qに対して生成される動作も、p、rに対する教示動作のちょうど中間を通る。qに対して生成される動作を参照すると、手先がY軸方向にぶれず、安定している。
<変形例1>
ところで、本実施形態では、動作分節化部41では、センサデータを動作のまとまりごとに分割する。しかし、データ特性が複雑である場合、分節化がうまく機能しない可能性がある。この対処法として、Recurrent Dropoutを用いることが考えられる。Recurrent Dropoutは、再帰型ニューラルネットワークにおけるノードをランダムに不活性化させながら、学習を行うことである。Recurrent Dropoutを用いることで、学習データにおける時間方向のばらつきに対する汎化性能が向上することが期待される。
ところで、本実施形態では、動作分節化部41では、センサデータを動作のまとまりごとに分割する。しかし、データ特性が複雑である場合、分節化がうまく機能しない可能性がある。この対処法として、Recurrent Dropoutを用いることが考えられる。Recurrent Dropoutは、再帰型ニューラルネットワークにおけるノードをランダムに不活性化させながら、学習を行うことである。Recurrent Dropoutを用いることで、学習データにおける時間方向のばらつきに対する汎化性能が向上することが期待される。
<変形例2>
ところで、本実施形態では、速度調整部42にて、センサデータの量子化を行っている。しかし、センサデータの単位時間当たりの変化量が量子化幅よりも大きい場合(つまり、変換後の速度を大きくしたい場合)、量子化後のセンサデータの時間当たりの変化量が量子化幅を超えてしまうため、量子化後の時間当たりの変化量が等しくならず速度を揃えることに失敗する。
ところで、本実施形態では、速度調整部42にて、センサデータの量子化を行っている。しかし、センサデータの単位時間当たりの変化量が量子化幅よりも大きい場合(つまり、変換後の速度を大きくしたい場合)、量子化後のセンサデータの時間当たりの変化量が量子化幅を超えてしまうため、量子化後の時間当たりの変化量が等しくならず速度を揃えることに失敗する。
これを避けるためには、速度調整部42にて、量子化の前にアップサンプリングを行うことで、センサの単位時間あたりの変化量を小さくする必要がある。アップサンプリングとは、時系列データのサンプリング周波数を大きくすることである。アップサンプリングの実現方法としては、線形補間や、最近傍補間、スプライン補間等がある。ただし、これらの補間方法は、画像データに対して適用できないことが知られており、フレーム補間という技術が別途必要となる。詳細は、第2の実施形態で説明する。
本実施形態の主な特徴は、次のようにまとめることもできる。
処理装置(計算機20)のプロセッサ(CPU23)は、ロボット(ロボット装置1)への教示データをロボットの同種の動作ごとに分節する(動作分節化部41)。プロセッサ(CPU23)は、分節された複数の教示データに対して、ロボットの同種の動作の速度又はタイミングを揃える補正を行う(速度調整部42、タイミング調整部43)。プロセッサ(CPU23)は、補正が行われた複数の教示データを合成する(データ処理部45)。プロセッサ(CPU23)は、合成された教示データを用いて機械学習を行う(機械学習装置34)。
これにより、教示データの時間方向のばらつきが低減される。その結果、導入工数(教示・学習フェーズの工数)が削減されるとともに、教示データ間の関係性を学習しやすくなり汎化動作性能が向上する。
プロセッサ(CPU23)は、分節された複数の教示データに対して、ロボットの同種の動作のダイナミクスの値を平滑化する補正を行う(ダイナミクス調整部44)。例えば、ダイナミクス(加速度や躍度、トルク等)の値は、移動平均をとることにより平滑化される。これにより、ロボットの動作を安定化することができる。
教示データは、例えば、ロボットの位置を示す位置情報、関節角度を示す関節角度情報、ロボットの速度を示す速度情報、ロボットの関節角速度を示す関節角速度情報、及びロボットに設けられる触覚センサのセンサ値を示す触覚情報のうち少なくとも1つを含む。本実施形態では、教示データは、ロボットの位置(グリッパーの位置)を示す位置情報を含む。これにより、ロボットの状態を教示データとして機械学習を行うことができる。
また、教示データは、ロボットが作業を行う対象物の位置を示す位置情報、及び対象物の姿勢を示す姿勢情報のうち少なくとも1つを含んでもよい。これにより、対象物の状態を教示データとして機械学習を行うことができる。
ダイナミクスは、例えば、加速度、加速度変化、躍度、躍度変化、トルク、及びトルク変化のうち少なくとも1つを含む。これにより、ロボットの動作をなめらかにすることができる。
プロセッサ(CPU23)は、分節された複数の教示データを量子化し、ノイズを削除することでロボットの同種の動作の速度を揃える(図5)。これにより、教示データの時間方向のばらつきを高速に低減することができる。
プロセッサ(CPU23)は、分節された複数の教示データに対して、ロボットの静止時間を増やす又は減らすことで、ロボットの同種の動作のタイミングを揃える補正を行う(図9)。これにより、教示データの時間方向のばらつきを容易に低減することができる。
ロボット制御システム100は、処理装置(計算機20)とロボット(ロボット装置1)を含む。プロセッサ(CPU23)は、学習済みの機械学習モデルを用いて、ロボットの動作の指令値を生成する(機械学習装置34)。ロボットは、指令値に応じて動作する。これにより、ロボットを自律的に制御することができる。
(第2の実施形態)
次に、本発明の第2の実施形態として、センサデータに画像が含まれる場合について、図10と図11を参照して説明する。
次に、本発明の第2の実施形態として、センサデータに画像が含まれる場合について、図10と図11を参照して説明する。
[機能構成例]
図10は、本発明の第2の実施形態における、動作計画部が備える整合性検証装置の内部構成例を示すブロック図である。なお、図10において、図4と同一符号は同一部品を示すので、再度の説明は省略する。図10に示すように、第2の実施形態は、センサデータを動作分節化部41で分割し、速度調整部42と、又は/及び、タイミング調整部43と、を用いることで時間方向のばらつきを削減し、ダイナミクス調整部44を用いることでダイナミクスを調整し、データ処理部45で学習データに変換する点では、第1の実施形態と同じである。第1の実施形態からの変更点は、第2の実施形態では、整合性検証装置32において、フレーム補間部101を備えている点である。フレーム補間部101は、画像の時系列データのフレームレートを大きくする。
図10は、本発明の第2の実施形態における、動作計画部が備える整合性検証装置の内部構成例を示すブロック図である。なお、図10において、図4と同一符号は同一部品を示すので、再度の説明は省略する。図10に示すように、第2の実施形態は、センサデータを動作分節化部41で分割し、速度調整部42と、又は/及び、タイミング調整部43と、を用いることで時間方向のばらつきを削減し、ダイナミクス調整部44を用いることでダイナミクスを調整し、データ処理部45で学習データに変換する点では、第1の実施形態と同じである。第1の実施形態からの変更点は、第2の実施形態では、整合性検証装置32において、フレーム補間部101を備えている点である。フレーム補間部101は、画像の時系列データのフレームレートを大きくする。
フレーム補間の実現方法としては、オプティカルフローに基づくフレーム補間や、深層学習によるフレーム補間等が挙げられる。オプティカルフローに基づくフレーム補間は、特徴量抽出と、移動変化計算と、補間画像生成という3つのステップから成る。例えば、画像の時系列データのうち、ある連続する2枚の画像を考える。特徴量抽出では、2枚の画像の特徴量を抽出する。移動変化計算では、特徴量抽出で算出された特徴量のうち、同一特徴量に着目し、その移動変化量を計算する。なお、この特徴量の移動変化のことをオプティカルフローという。補間画像生成では移動変化量に基づき、元の画像2枚における画素を移動することで、2枚の画像の間にある画像を推定する。
深層学習によるフレーム補間としては、例えば、FLAVRやFILM等のモデルが挙げられる。FLAVRは、オプティカルフローや3次元畳み込み計算をモデルの内部で行うことで、高精度なフレーム補間を可能にする深層学習モデルである。また、FILMは、画像のスケール(拡大や縮小)を考慮した深層学習モデルである。FLAVR(またはFILM)へ画像の時系列データを入力すると、フレーム補間後の画像の時系列データを得ることができる。
[動作例]
図11は、本発明の第2の実施形態における、整合性検証装置32の動作例を示すフローチャートである。図11に示すように、第2の実施形態は、センサデータの動作分節化を行い(S2)、分節毎に(S3、S4)、速度調整(S6)、タイミング調整(S7)を行い、教示データ毎に(S8、S9)、調整後の各分節を合成することで、学習データを構築する点では、第1の実施形態と同じである。なお、図11において、図7と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第2の実施形態では、速度調整(S6)の前に、フレーム補間(S13)を行う点である。
図11は、本発明の第2の実施形態における、整合性検証装置32の動作例を示すフローチャートである。図11に示すように、第2の実施形態は、センサデータの動作分節化を行い(S2)、分節毎に(S3、S4)、速度調整(S6)、タイミング調整(S7)を行い、教示データ毎に(S8、S9)、調整後の各分節を合成することで、学習データを構築する点では、第1の実施形態と同じである。なお、図11において、図7と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第2の実施形態では、速度調整(S6)の前に、フレーム補間(S13)を行う点である。
本実施形態の主な特徴は、次のようにまとめることもできる。
教示データは、ロボット(ロボット装置1)又は作業環境の画像を含む。
プロセッサ(CPU23)は、分節された複数の教示データに対して、教示データに含まれる画像のフレーム補間を行い、その後、ロボットの同種の動作の速度を揃える補正を行う(フレーム補間部101)。これにより、教示データがロボット(ロボット装置1)又は作業環境の画像を含んでいても、教示データの時間方向のばらつきを容易に低減することができる。
(第3の実施形態)
次に、本発明の第3の実施形態として、汎化性能向上に有効な教示データのみを抽出する場合について、図12、図13、図14と参照して説明する。
次に、本発明の第3の実施形態として、汎化性能向上に有効な教示データのみを抽出する場合について、図12、図13、図14と参照して説明する。
図12は、本発明の第3の実施形態における、ロボット制御システム100の構成例を示すブロック図である。なお、図12において、図1と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第3の実施形態では、ロボット制御システム100において、画面操作部5を備えている点である。画面操作部5は、動作計画部の処理結果を表示することができる。また、ユーザーから受け取った操作入力に基づいて、動作計画部3における各種パラメータを決定する。
図13は、本発明の第3の実施形態における、動作計画部3の構成例を示すブロック図である。なお、図13において、図3と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第3の実施形態では、動作計画部3において、スクリーニング装置131を備えている点である。スクリーニング装置131は、センサデータ蓄積装置31に保存されたセンサデータの中から、汎化性能向上に有効なもののみを抽出する。その後、抽出された教示データを整合性検証装置32と画面操作部5へ出力する。
[ハードウェア構成例]
次に、本発明第3の実施形態における、ロボット制御システム100が備える動作計画部3のハードウェア構成について図14を参照して説明する。なお、図14において、図3と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第3の実施形態では、映像出力インターフェース141を備える点である。
次に、本発明第3の実施形態における、ロボット制御システム100が備える動作計画部3のハードウェア構成について図14を参照して説明する。なお、図14において、図3と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第3の実施形態では、映像出力インターフェース141を備える点である。
映像出力インターフェース141は、例えば、VGA(Video Graphics Array)やDVI(Digital Visual interface)、HDMI(High-Definition Multimedia Interface、登録商標)、Display Portが用いられる。映像出力インターフェース141は、専用線等を介して、ディスプレイへ映像を送信することが可能となるように構成されている。
[機能構成例]
次に、本発明第3の実施形態における、ロボット制御システム100が備える動作計画部3のスクリーニング装置131の機能構成例について、図15を参照して説明する。
次に、本発明第3の実施形態における、ロボット制御システム100が備える動作計画部3のスクリーニング装置131の機能構成例について、図15を参照して説明する。
図15は、本発明の実施となるスクリーニング装置131の機能構成例を現したものである。なお、図15において、図13と同一符号は同一部品を示すので、再度の説明は省略する。
図15に示すスクリーニング装置131において、グルーピング部151は、センサデータ蓄積装置31に保存されたセンサデータを、動作が類似したデータが同じグループになるようにする。グルーピング部の実現方法として、例えば、同じ目標手先位置のセンサデータ毎にグループに分けることが考えられる。
代表データ算出部152は、グルーピング部151で得られたグループ毎に、そのグループを代表する時系列データ(これを代表データと呼ぶ)を算出する。代表データ算出部152の実現方法としては、例えば、グループ内の全ての時系列データについて、各時刻ごとに中央値を算出することで得られた時系列データを、代表データとすることが考えられる。
外れデータ検出部153は、グルーピング部151で得られたグループ毎に、代表データ算出部152で算出した代表データと類似していない時系列データ(これを外れデータと呼ぶ)を検出する。外れデータ検出部の実現方法として、例えばDTW(Dynamic Time Warping、動的時間伸縮法)と、IQR(Interquartile range, 四分位範囲)を用いることが考えられる。DTWとは、時系列データ同士の類似度の指標である。DTWのとり得る値は0以上であり、0に近いほど時系列データ同士が類似していることを意味する。まず、グループ内のすべての時系列データについて、代表データとのDTWを算出することで、DTWの系列を得る。次に、算出されたDTWの系列のIQRを求める。IQRとは、データの散らばり度合いを現す指標であり、(第三四分位数)―(第一四分位数)で求まる。最後に、時系列データのうち、代表データに対するDTWが、(第三四分位数+α×IQR)より大きなものを外れデータとする。αの値は初期設定では1.5に設定されている。また、ユーザーが画面操作部5を利用することで値を変更することも可能である。
計算結果出力部154は、整合性検証装置32へ、外れデータ以外のセンサデータを出力する。また、画面操作部5へ、外れデータの情報を出力する。
次に、本発明第3の実施形態における、ロボット制御システム100が備える画面操作部5の機能構成例について、図16を参照して説明する。
図16は、本発明の実施となる画面操作部5の機能構成例を現したものである。なお、図16において、図1と同一符号は同一部品を示すので、再度の説明は省略する。
図16に示す画面操作部5において、操作入力部161は、例えば、マウス、キーボード等の入力装置で構成され、ユーザーからのマウス入力やキーボード入力等を受け付ける。
画面表示部162は、例えば、ディスプレイ等で構成され、操作入力部161や、動作計画部3から得られる情報を可視化する。
画面制御部163は、動作計画部3や操作入力部161からの情報を受信する。また、動作計画部3や画面表示部162に情報を出力する。
本実施形態の主な特徴は、次のようにまとめることもできる。
プロセッサ(CPU23)は、教示データから外れデータを除去することでスクリーニングを行う(スクリーニング装置131)。これにより、汎化動作性能をさらに向上することができる。
(第4の実施形態)
次に、本発明の第4の実施形態として、動作生成時に、任意の動作速度、又は/及び、任意の力の大きさを実現する場合について、図17を参照して説明する。
次に、本発明の第4の実施形態として、動作生成時に、任意の動作速度、又は/及び、任意の力の大きさを実現する場合について、図17を参照して説明する。
図17は、本発明の第4の実施形態における、動作計画部の構成例を示すブロック図である。なお、図17において、図3と同一符号は同一部品を示すので、再度の説明は省略する。第1の実施形態からの変更点は、第4の実施形態では、動作計画部3において、動作パラメータ調整装置171を備えている点である。動作パラメータ調整装置171は、センサデータ蓄積装置31に保存されたセンサデータから、動作生成時に、任意の動作速度、又は/及び、任意の力の大きさを実現する。
[動作パラメータ調整装置のハードウェア構成]
本発明の第4の実施形態における、ロボット制御システム100が備える動作計画部3のハードウェア構成は、本発明第3の実施形態の場合と同じであるため、再度の説明は省略する。
本発明の第4の実施形態における、ロボット制御システム100が備える動作計画部3のハードウェア構成は、本発明第3の実施形態の場合と同じであるため、再度の説明は省略する。
[動作パラメータ調整装置の機能構成例]
次に、本発明第4の実施形態における、ロボット制御システム100が備える動作計画部3の動作パラメータ調整装置171の機能構成例について、図18を参照して説明する。
次に、本発明第4の実施形態における、ロボット制御システム100が備える動作計画部3の動作パラメータ調整装置171の機能構成例について、図18を参照して説明する。
図18は、本発明の実施となる動作パラメータ調整装置171の機能構成例を現したものである。なお、図18において、図12、図13と同一符号は同一部品を示すので、再度の説明は省略する。
図18に示す動作パラメータ調整装置171において、動作パラメータ記憶部181は、動作パラメータ調整に必要なパラメータの値を保存する。パラメータの種類は、例えば動作生成モデルの制御周期や、電流値の範囲、トルクセンサ値の範囲等がある。パラメータの値は、ユーザーが、画面操作部5を介して変更できる。
動作パラメータ調整演算部182は、動作パラメータ記憶部181に保存しているパラメータの値に基づいて、動作生成時に、動作速度、又は/及び、力の大きさを調整する。動作パラメータ調整演算部で動作速度を変更する具体的な方法として、例えば、動作生成時の制御周期を変えることが考えられる。例えば、動作速度を大きくしたい場合は、教示データのサンプリング周期よりも、動作生成時の制御周期を小さくすればよい。動作パラメータ調整演算部で力の大きさを変更する具体的な方法として、例えば、電流値やトルクセンサ値を変えることが考えられる。例えば、力の大きさを小さくしたい場合は、電流値やトルクセンサ値の上限を、教示データよりも小さくすればよい。
本実施形態の主な特徴は、次のようにまとめることもできる。
処理装置(計算機20)は、機械学習後のロボット(ロボット装置1)の動作を調整するパラメータを示す動作パラメータを記憶する記憶装置(動作パラメータ記憶部181)を備える。記憶装置は、例えば、RAM24、不揮発性ストレージ25等で構成される。
プロセッサ(CPU23)は、学習済みの機械学習モデルを用いて、動作パラメータに基づきロボット(ロボット装置1)の動作の指令値を生成する(機械学習装置34)。これにより、教示・学習を再度行うことなく、ロボットの動作を調整することができる。
動作パラメータは、例えば、教示データのサンプリング周期である。プロセッサ(CPU23)は、指令値において、ロボット(ロボット装置1)の制御周期をサンプリング周期より小さくすることでロボットの動作の速度を大きくし、又は指令値において、ロボットの制御周期をサンプリング周期より大きくすることでロボットの動作の速度を小さくする(動作パラメータ調整装置171)。これにより、教示・学習を再度行うことなく、ロボットの動作の速度を調整することができる。
また、動作パラメータは、例えば、教示データにおけるロボットのトルク又はそれと相関のある値の最大値Mである。プロセッサ(CPU23)は、指令値において、ロボット(ロボット装置1)のトルク又はそれと相関のある値(例えば、アクチュエータの駆動電流の値)の上限を最大値Mより大きくすることでロボットの力を大きし、又は指令値において、ロボットのトルク又はそれと相関のある値の上限を最大値Mより小さくすることで前記ロボットの力を小さくする。これにより、教示・学習を再度行うことなく、ロボットの力を調整することができる。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。ハードウェアとして、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの広義のプロセッサデバイスを用いてもよい。
また、上述した各実施形態に係る動作計画部3の各構成要素は、制御部4に実装されてもよい。また、動作計画部3のある処理部により実施される処理が、1つのハードウェアにより実現されてもよいし、複数のハードウェアによる分散処理により実現されてもよい。
上述した各実施形態では、センサデータ取得部2、動作計画部3、制御部4は、一例として1台の計算機20によって実現されるが、別々の計算機によって実現されていてもよい。計算負荷の大きい動作計画部3を高性能な計算機で実現することで、全体のスループットを向上することができる。なお、計算機どうしは、例えば、LAN、インターネット等の通信ネットワークを介して相互に接続される。
なお、本発明の実施形態は、以下の態様であってもよい。
(1).ロボットの動作を生成するための機械学習を行う機械学習システムであって、ロボットへの教示データ(時系列のセンサ情報等)を取得する取得部と、教示データを、ロボットの動作に基づき分節する動作分節化部と、タスクが共通する異なる教示データ間で、分節された動作のうち、同種の動作の速度が異なる場合に、該同種の動作の速度を揃えるように教示データを補正する速度調整部と、タスクが共通する異なる教示データ間で、分節された動作のうち、同種の動作のタイミングが異なる場合に、該同種の動作のタイミングを揃えるように教示データを補正するタイミング調整部と、教示データにおけるロボットのダイナミクスを補正するダイナミクス調整部と、を備え、前記速度と前記タイミングと前記ダイナミクスのうち少なくとも1つが補正された教示データを、前記機械学習システムにおける学習用データとする、機械学習システム。
(2).(1)において、機械学習システムは、ロボットへの教示データとして、ロボットの位置や、関節角度情報等を取得する取得部を備えた、機械学習システム。
(3).(2)において、機械学習システムは、ロボットの位置や、関節角度情報に加えて、ロボットや作業環境の画像を取得する取得部を備えた、機械学習システム。
(4).(2)において、機械学習システムは、ロボットの位置や、関節角度情報に加えて、対象物の位置、姿勢情報を取得する取得部を備えた、機械学習システム。
(5).(1)において、機械学習システムは、ロボットへの教示データとして、ロボットの速度、関節角速度情報等を取得する取得部を備えた、機械学習システム。
(6).(1)において、機械学習システムは、ロボットへの教示データとして、ロボットの触覚情報を取得する取得部を備えた、機械学習システム。
(7).(1)において、機械学習システムは、ロボットのダイナミクスのうち、加速度または/および加速度変化を調整するダイナミクス調整部を備えた、機械学習システム。
(8).(1)において、機械学習システムは、ロボットのダイナミクスのうち、躍度または/および躍度変化を調整するダイナミクス調整部を備えた、機械学習システム。
(9).(1)において、機械学習システムは、ロボットのダイナミクスのうち、トルクまたは/およびトルク変化を調整するダイナミクス調整部を備えた、機械学習システム。
(10).(1)において、前記速度調整部は、ロボットへの教示データにカメラ画像が含まれる場合、前記教示データ間で、フレーム補間を行った後に、該同種の動作の速度を揃えるように教示データを補正することを特徴とする、機械学習システム。
(11).(1)において、機械学習システムは、取得した教示データの中から、動作汎化性能向上に有効な教示データを抽出するスクリーニング装置を備えた、機械学習システム。
(12).(1)において、機械学習システムは、学習済みの機械学習モデルを用いて動作生成を行う際、任意の動作速度を実現するために、ロボットの制御周期を調整する動作パラメータ調整装置を備えた、機械学習システム。
(13).(1)において、機械学習システムは、学習済みの機械学習モデルを用いて動作生成を行う際、任意の力の大きさを実現するために、ロボットのトルクを調整する動作パラメータ調整装置を備えた、機械学習システム。
(1)~(13)によれば、動作学習を阻害する教示データ間の時間方向のばらつきを低減することで、導入工数削減と汎化性能獲得の両立が期待できる。
1…ロボット装置、2…センサデータ取得部、3…動作計画部、4…制御部、5…画面操作部、22…ROM、23…CPU、24…RAM、25…不揮発性ストレージ、26…入出力インターフェース、27…ネットワークインターフェース、31…センサデータ蓄積装置、32…整合性検証装置、33…学習データ蓄積装置、34…機械学習装置、41…動作分節化部、42…速度調整部、43…タイミング調整部、44…ダイナミクス調整部、45…データ処理部、61…機械学習モデル定義部、62…学習部、63…学習済み重み蓄積部、64…推論部、101…フレーム補間部、131…スクリーニング装置、161…操作入力部、151…グルーピング部、152…代表データ算出部、153…外れデータ検出部、154…計算結果出力部、161…操作入力部、162…画面表示部、163…画面制御部、171…動作パラメータ調整装置、181…動作パラメータ記憶部、182…動作パラメータ調整演算部
Claims (15)
- ロボットへの教示データを前記ロボットの同種の動作ごとに分節し、
分節された複数の前記教示データに対して、前記ロボットの同種の動作の速度又はタイミングを揃える補正を行い、
補正が行われた複数の前記教示データを合成し、
合成された前記教示データを用いて機械学習を行うプロセッサを備える処理装置。 - 請求項1に記載の処理装置であって、
前記プロセッサは、
分節された複数の前記教示データに対して、前記ロボットの同種の動作のダイナミクスの値を平滑化する補正を行う
ことを特徴とする処理装置。 - 請求項2に記載の処理装置であって、
前記教示データは、
前記ロボットの位置を示す位置情報、関節角度を示す関節角度情報、
前記ロボットの速度を示す速度情報、前記ロボットの関節角速度を示す関節角速度情報、及び
前記ロボットに設けられる触覚センサのセンサ値を示す触覚情報のうち少なくとも1つを含む
ことを特徴とする処理装置。 - 請求項3に記載の処理装置であって、
前記教示データは、
前記ロボット又は作業環境の画像を含む
ことを特徴とする処理装置。 - 請求項3に記載の処理装置であって、
前記教示データは、
前記ロボットが作業を行う対象物の位置を示す位置情報、及び前記対象物の姿勢を示す姿勢情報のうち少なくとも1つを含む
ことを特徴とする処理装置。 - 請求項2に記載の処理装置であって、
前記ダイナミクスは、
加速度、加速度変化、
躍度、躍度変化、
トルク、及びトルク変化のうち少なくとも1つを含む
ことを特徴とする処理装置。 - 請求項4に記載の処理装置であって、
前記プロセッサは、
分節された複数の前記教示データに対して、前記教示データに含まれる画像のフレーム補間を行い、その後、前記ロボットの同種の動作の速度を揃える補正を行う
ことを特徴とする処理装置。 - 請求項1に記載の処理装置であって、
前記プロセッサは、
前記教示データから外れデータを除去することでスクリーニングを行う
ことを特徴とする処理装置。 - 請求項1に記載の処理装置であって、
機械学習後の前記ロボットの動作を調整するパラメータを示す動作パラメータを記憶する記憶装置を備え、
前記プロセッサは、
学習済みの機械学習モデルを用いて、前記動作パラメータに基づき前記ロボットの動作の指令値を生成する
ことを特徴とする処理装置。 - 請求項9に記載の処理装置であって、
前記動作パラメータは、前記教示データのサンプリング周期であり、
前記プロセッサは、
前記指令値において、前記ロボットの制御周期を前記サンプリング周期より小さくすることで前記ロボットの動作の速度を大きくし、又は
前記指令値において、前記ロボットの制御周期を前記サンプリング周期より大きくすることで前記ロボットの動作の速度を小さくする
ことを特徴とする処理装置。 - 請求項9に記載の処理装置であって、
前記動作パラメータは、前記教示データにおける前記ロボットのトルク又はそれと相関のある値の最大値であり、
前記プロセッサは、
前記指令値において、前記ロボットのトルク又はそれと相関のある値の上限を前記最大値より大きくすることで前記ロボットの力を大きくし、又は
前記指令値において、前記ロボットのトルク又はそれと相関のある値の上限を前記最大値より小さくすることで前記ロボットの力を小さくする
ことを特徴とする処理装置。 - 請求項1に記載の処理装置であって、
前記プロセッサは、
分節された複数の前記教示データを量子化し、ノイズを削除することで前記ロボットの同種の動作の速度を揃える
ことを特徴とする処理装置。 - 請求項1に記載の処理装置であって、
前記プロセッサは、
分節された複数の前記教示データに対して、前記ロボットの静止時間を増やす又は減らすことで、前記ロボットの同種の動作のタイミングを揃える補正を行う
ことを特徴とする処理装置。 - 請求項1に記載の処理装置とロボットを含むロボット制御システムであって、
前記プロセッサは、学習済みの機械学習モデルを用いて、前記ロボットの動作の指令値を生成し、
前記ロボットは、前記指令値に応じて動作する
ことを特徴とするロボット制御システム。 - ロボットへの教示データを前記ロボットの同種の動作ごとに分節する工程と、
分節された複数の前記教示データに対して、前記ロボットの同種の動作の速度又はタイミングを揃える補正を行う工程と、
補正が行われた複数の前記教示データを合成する工程と、
合成された前記教示データを用いて機械学習を行う工程と、
を含む機械学習方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022-096802 | 2022-06-15 | ||
JP2022096802A JP2023183271A (ja) | 2022-06-15 | 2022-06-15 | 処理装置、ロボット制御システム及び機械学習方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023243412A1 true WO2023243412A1 (ja) | 2023-12-21 |
Family
ID=89190975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2023/020383 WO2023243412A1 (ja) | 2022-06-15 | 2023-05-31 | 処理装置、ロボット制御システム及び機械学習方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2023183271A (ja) |
WO (1) | WO2023243412A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001100828A (ja) * | 1999-10-01 | 2001-04-13 | Mitsubishi Electric Corp | ロボット制御装置 |
JP2009028851A (ja) * | 2007-07-27 | 2009-02-12 | Nachi Fujikoshi Corp | ロボット制御装置 |
JP2013041478A (ja) * | 2011-08-17 | 2013-02-28 | Fanuc Ltd | 学習制御機能を備えたロボット |
JP2013146814A (ja) * | 2012-01-18 | 2013-08-01 | Honda Motor Co Ltd | ロボットティーチング方法 |
-
2022
- 2022-06-15 JP JP2022096802A patent/JP2023183271A/ja active Pending
-
2023
- 2023-05-31 WO PCT/JP2023/020383 patent/WO2023243412A1/ja unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001100828A (ja) * | 1999-10-01 | 2001-04-13 | Mitsubishi Electric Corp | ロボット制御装置 |
JP2009028851A (ja) * | 2007-07-27 | 2009-02-12 | Nachi Fujikoshi Corp | ロボット制御装置 |
JP2013041478A (ja) * | 2011-08-17 | 2013-02-28 | Fanuc Ltd | 学習制御機能を備えたロボット |
JP2013146814A (ja) * | 2012-01-18 | 2013-08-01 | Honda Motor Co Ltd | ロボットティーチング方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2023183271A (ja) | 2023-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Pervez et al. | Learning deep movement primitives using convolutional neural networks | |
CN111695562A (zh) | 一种基于卷积神经网络的机器人自主抓取方法 | |
CN110385694A (zh) | 机器人的动作示教装置、机器人***以及机器人控制装置 | |
CN110053044B (zh) | 一种并联机器人串类水果夹取无模型自适应光滑滑模阻抗控制方法 | |
WO2020138446A1 (ja) | ロボット制御装置、ロボットシステム及びロボット制御方法 | |
KR20210012672A (ko) | 인공지능 기반 로봇 매니퓰레이터의 자동 제어 시스템 및 방법 | |
Wang et al. | Design of robotic visual servo control based on neural network and genetic algorithm | |
CN115351780A (zh) | 用于控制机器人设备的方法 | |
Ahmadzadeh et al. | Generalized Cylinders for Learning, Reproduction, Generalization, and Refinement of Robot Skills. | |
CN114102600A (zh) | 一种多空间融合的人机技能迁移与参数补偿方法及*** | |
JP2024086832A (ja) | ロボットシステム、および、ロボット装置 | |
Han et al. | Visual servoing control of robotics with a neural network estimator based on spectral adaptive law | |
WO2023243412A1 (ja) | 処理装置、ロボット制御システム及び機械学習方法 | |
JPH1091207A (ja) | 内部表現自動生成方法及び装置 | |
CN116423520A (zh) | 一种基于视觉和动态运动基元的机械臂轨迹规划方法 | |
US20200198137A1 (en) | Trajectory generation device, trajectory generation method, and robot system | |
JP7246175B2 (ja) | 推定装置、訓練装置、推定方法及び訓練方法 | |
Maeda et al. | View-based teaching/playback for industrial manipulators | |
WO2022239310A1 (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
Ribeiro et al. | Second-order position-based visual servoing of a robot manipulator | |
EP4347193A1 (en) | Object manipulation with collision avoidance using complementarity constraints | |
CN114102599A (zh) | 基于柔性机械臂的人机交互自适应控制方法和*** | |
JP7205752B2 (ja) | ロボット制御装置、ロボット制御方法、及びロボット制御プログラム | |
WO2022153578A1 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
WO2023226070A1 (zh) | 用于机械臂运动控制的非线性自适应控制方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23823705 Country of ref document: EP Kind code of ref document: A1 |