WO2020157863A1 - 制御装置、制御方法および記録媒体 - Google Patents
制御装置、制御方法および記録媒体 Download PDFInfo
- Publication number
- WO2020157863A1 WO2020157863A1 PCT/JP2019/003188 JP2019003188W WO2020157863A1 WO 2020157863 A1 WO2020157863 A1 WO 2020157863A1 JP 2019003188 W JP2019003188 W JP 2019003188W WO 2020157863 A1 WO2020157863 A1 WO 2020157863A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- control
- command value
- machine learning
- target device
- unit
- Prior art date
Links
Images
Classifications
-
- 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
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- 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/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/0265—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34082—Learning, online reinforcement learning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39001—Robot, manipulator control
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40339—Avoid collision
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40476—Collision, planning for collision free path
Definitions
- the present invention relates to a control device, a control method, and a recording medium.
- a technique has been proposed for avoiding contact of an object with an obstacle when the operation of the object of control is reinforced and learned.
- a force vector of the sum of the control parameter value calculated by the control parameter value calculation means for performing reinforcement learning and the virtual external force calculated by the virtual external force generator is output to the control target.
- the virtual external force generator makes the direction of the virtual external force perpendicular to the surface of the obstacle and reduces the magnitude of the virtual external force in proportion to the cube of the distance between the control target and the obstacle. calculate.
- the operation of avoiding contact of the controlled device with an obstacle may be an obstacle in relation to the operation for achieving the target set in the controlled device. Therefore, it is preferable that the influence of the operation of avoiding the controlled device from contacting the obstacle can be minimized. If the control command value can reflect the determination result of whether or not the control target device contacts the obstacle, the control target device can contact the obstacle even when the control target device and the obstacle are relatively close to each other. It is expected that the effect of the operation for avoiding can be made relatively small, or the effect can be eliminated.
- One example of an object of the present invention is to provide a control device, a control method and a recording medium that can solve the above problems.
- the control device includes a machine learning unit that machine-learns the control of the operation of the controlled device, a control command value for the controlled device, and the controlled device is an obstacle.
- an avoidance command value calculation unit that obtains an avoidance command value that is a control command value that satisfies a constraint condition including a condition for not contacting with the control command value and that an evaluation value obtained by applying the control command value to an evaluation function satisfies a predetermined end condition.
- a device control unit that controls the control target device based on the avoidance command value, and a parameter value obtained by machine learning of the machine learning unit is at least one of the evaluation function and the constraint condition. It is reflected in one side.
- the control method includes a step of machine learning the control of the operation of the controlled device, and a control command value for the controlled device, wherein the controlled device contacts an obstacle. Satisfying the constraint conditions including the condition for not performing, and the step of obtaining an avoidance command value which is a control command value in which the evaluation value obtained by applying the control command value to the evaluation function satisfies a predetermined end condition; Based on this, the parameter value obtained by machine learning in the machine learning step is reflected on at least one of the evaluation function and the constraint condition.
- the recording medium includes a step of performing machine learning on a computer to control the operation of the controlled device, and a control command value for the controlled device, in which the controlled device fails.
- a step of controlling the controlled device a program for executing, the parameter value obtained by machine learning in the machine learning step, the evaluation function and the constraint conditions of It is a recording medium in which a program reflected in at least one of them is recorded.
- control device According to the control device, the control method, and the recording medium described above, it is possible to reflect the determination result of whether or not the controlled device contacts the obstacle in the control command value.
- FIG. 1 is a schematic configuration diagram showing an example of a device configuration of a control system according to the first embodiment.
- the control system 1 includes an information acquisition device 100, a reward value calculation device 200, and a control device 300.
- the control system 1 controls the control target device 900.
- the control system 1 controls the control target device 900 such that the control target device 900 performs a desired operation and the control target device 900 does not contact an obstacle.
- the desired operation here is an operation to achieve the target set in the controlled device 900.
- the contacting here is not limited to merely touching, but includes hitting.
- the contact of the controlled device 900 with the obstacle means that at least a part of the controlled device 900 contacts with at least a part of the obstacle.
- control target device 900 is a vertical articulated robot
- the control target of the control system 1 operates according to the control command value and various devices that may come into contact with an obstacle. can do.
- the control target device 900 may be an industrial robot other than the vertical articulated robot.
- control target device 900 may be a robot other than an industrial robot, such as a construction robot or a housework robot.
- the robot to be controlled is not limited to a specific application, and various robots accompanied by a change in shape can be an example of the control target device 900.
- the control target device 900 may be a moving body such as an automated guided vehicle or a drone. Further, the control target device 900 may be a device that operates autonomously as long as it can be controlled by the control command value.
- the obstacle here is an object with which the control target device 900 may come into contact. Obstacles are not limited to a particular type. For example, the obstacle may be a human, another robot, a surrounding wall or machine, a temporarily placed luggage, or a combination thereof. Further, the control target device 900 itself may be treated as an obstacle. For example, when the control target device 900 is a vertical articulated robot and the robot arm and the pedestal part contact each other depending on its posture, the control system 1 treats the control target device 900 as an obstacle, and thus the robot arm and the pedestal part. Avoid contact with.
- the information acquisition device 100 acquires sensing data from a sensor that observes the controlled device 900, such as a sensor included in the controlled device 900, and detects the position and operation of the controlled device 900.
- the sensor from which the information acquisition device 100 acquires the sensing data is not limited to a specific type of sensor.
- the information acquisition device 100 may acquire information on any one of a joint angle, a joint angular velocity, a joint velocity, and a joint acceleration of each joint of the control target device 900, or a combination thereof, from the sensing data. May be.
- the information acquisition device 100 generates and transmits position information of the control target device 900 and information indicating the movement of the control target device 900 based on the obtained information.
- the information acquisition device 100 may transmit the position information of the control target device 900 as voxel data.
- the control device 300 grasps the positional relationship between the surface of the control target device 900 and the obstacle instead of one point. Therefore, the distance between the control target device 900 and the obstacle can be grasped more accurately. Since the distance between the control target device 900 and the obstacle can be grasped more accurately, the control device 300 can perform control for causing the control target device 900 to avoid the obstacle with higher accuracy.
- the information acquisition device 100 may transmit the coordinates of the representative point set in the control target device 900 as the position information of the control target device 900.
- the information acquisition device 100 transmits, for example, the velocity, acceleration, angular velocity, angular acceleration of the control target device 900, or a combination thereof as the information indicating the movement of the control target device 900.
- the information acquisition device 100 may transmit, as voxel data, information indicating the movement of the entire control target device 900.
- the information acquisition device 100 may transmit data indicating the movement of the representative point of the control target device 900.
- the information acquisition device 100 may transmit a vector in which the generalized coordinates q of the control target device 900 and the generalized speed q′ are arranged.
- the information acquisition device 100 may transmit information indicating the movement of the actuator of the control target device, such as the angular velocity of the joint of the control target device.
- the position information of the controlled device 900 and the information indicating the movement of the controlled device 900 are collectively referred to as the state information of the controlled device 900.
- the information acquisition device 100 transmits the state information of the control target device to the reward value calculation device 200 and the control device 300.
- the information acquisition device 100 also identifies the position of the obstacle.
- the control system 1 includes a camera such as a depth camera (Depth Camera) or a stereo camera (Stereo Camera) that can obtain three-dimensional information, and the information acquisition device 100 causes an obstacle to be detected based on an image of the camera. You may make it acquire three-dimensional positional information.
- the control system 1 includes a device for obtaining three-dimensional information such as 3D-LiDAR (3-Dimension Light Detection and Ranging), and the information acquisition device 100 causes the obstacle to be acquired based on the measurement data of the device. It may be a world where three-dimensional position information is acquired.
- the information acquisition device 100 transmits the position information of the obstacle.
- the information acquisition device 100 may transmit the position information of the obstacle in the voxel data format.
- the control device 300 can grasp the positional relationship between the surface of the obstacle instead of one point and the control target device 900, The distance between the control target device 900 and the obstacle can be grasped more accurately. Since the distance between the control target device 900 and the obstacle can be grasped more accurately, the control device 300 can perform control for causing the control target device 900 to avoid the obstacle with higher accuracy.
- the information acquisition device 100 may transmit the coordinates of the representative point set in the control target device 900 as the position information of the control target device 900.
- the information acquisition device 100 may transmit information indicating the movement of the obstacle in addition to the position information of the obstacle.
- the information acquisition device 100 may transmit the velocity, acceleration, angular velocity, angular acceleration of the obstacle, or a combination thereof as the information indicating the movement of the obstacle.
- the information acquisition device 100 may transmit information indicating the movement of the entire obstacle as voxel data.
- the information acquisition device 100 may transmit data indicating the movement of the representative point of the obstacle.
- the information acquisition device 100 may transmit a vector in which the generalized coordinates q of the obstacle and the generalized speed q′ are arranged.
- the position information of the obstacle or the combination of the position information of the obstacle and the information indicating the movement of the obstacle when the obstacle moves is referred to as obstacle state information.
- the information acquisition device 100 transmits the obstacle state information to the control device 300.
- the reward value calculation device 200 calculates a reward value.
- the reward value is used by the control device 300 to machine-learn the control of the control target device 900.
- the reward value mentioned here indicates numerically the evaluation with respect to the result of the operation of the controlled device 900 based on the control command value from the control device 300.
- the reward value calculation device 200 inputs information indicating the position and operation of the control target device 900 as input, and previously generates a reward function that calculates a reward value as the achievement degree of the target set in the control target device 900 is higher.
- the reward value calculation device 200 inputs the information indicating the position and operation of the control target device 900 acquired from the information acquisition device 100 to the reward function to calculate the reward value.
- the control device 300 controls the control target device 900 by the control system 1. Therefore, as described above regarding the control system 1, the control device 300 controls the control target device 900 so that the control target device 900 performs a desired operation and the control target device 900 does not come into contact with an obstacle.
- the control device 300 controls the control target device 900 by calculating a control command value for the control target device 900 based on the information transmitted by the information acquisition device 100 and transmitting the calculated control command value to the control target device 900. To do. Further, the control device 300 machine-learns control of the control target device 900. The control device 300 machine-learns the control of the control target device 900 so that the reward value calculated by the reward value calculation device 200 becomes larger.
- FIG. 2 is a schematic block diagram showing an example of the functional configuration of the reward value calculation device 200.
- the reward value calculation device 200 includes a first communication unit 210, a first storage unit 280, and a first control unit 290.
- the first storage unit 280 includes a reward function storage unit 281.
- the first controller 290 includes a reward value calculator 291.
- the first communication unit 210 communicates with other devices.
- the first communication unit 210 receives the state information of the control target device 900 transmitted by the information acquisition device 100.
- the first communication unit 210 transmits the reward value calculated by the reward value calculation unit 291 to the control device 300.
- the first storage unit 280 stores various data.
- the function of the first storage unit 280 is executed using a storage device included in the reward value calculation device 200.
- the reward function storage unit 281 stores the reward function.
- the first control unit 290 controls each unit of the reward value calculation device 200 to execute various processes.
- the function of the first control unit 290 is executed by a CPU (Central Processing Unit) included in the reward value calculation device 200 by reading a program from the first storage unit 280 and executing the program.
- the reward value calculation unit 291 calculates a reward value. Specifically, the reward value calculation unit 291 inputs the state information of the control target device 900 that the first communication unit 210 receives from the information acquisition device 100 to the reward function stored in the reward function storage unit 281, and the reward value. To calculate.
- FIG. 3 is a schematic block diagram showing an example of the functional configuration of the control device 300.
- the control device 300 includes a second communication unit 310, a second storage unit 380, and a second control unit 390.
- the second storage unit 380 includes an interference function storage unit 381, a control function storage unit 382, and a parameter value storage unit 383.
- the second controller 390 includes an interference function calculator 391, a machine learning unit 392, and a device controller 395.
- the machine learning unit 392 includes a parameter value updating unit 393 and a stability determining unit 394.
- the device control unit 395 includes an avoidance command value calculation unit 396.
- the second communication unit 310 communicates with other devices.
- the second communication unit 310 receives the status information of the controlled device 900 and the status information of the obstacle transmitted by the information acquisition device 100.
- the first communication unit 210 transmits the reward value calculated by the reward value calculation unit 291 to the control device 300.
- the second communication unit 310 also transmits the control command value calculated by the device control unit 395 to the control target device 900.
- the second storage unit 380 stores various data.
- the function of the second storage unit 380 is executed using a storage device included in the control device 300.
- the interference function storage unit 381 stores the interference function.
- the interference function is a function used to prevent the controlled device 900 from coming into contact with an obstacle, and shows a value according to the positional relationship between the controlled device 900 and the obstacle.
- the interference function B takes a value as in Expression (1).
- x indicates the status information of the control target device 900.
- the information acquisition device 100 transmits the position information of the surface of the control target device 900 as voxel data, and the interference function calculation unit 391 applies the state information of the control target device 900 to the interference function B, so that the control target The distance between the device 900 and the obstacle at the closest position may be calculated.
- the interference function value B(x) indicates the distance between the position of the control target device 900 indicated by the state information x of the control target device 900 and the obstacle. When there are a plurality of obstacles, it indicates the distance to the obstacle closest to the position of the control target device 900. Normally, the control target device 900 does not enter the obstacle, so the interference function value B(x) when the control target device 900 is located inside the obstacle does not have to be defined.
- the interference function value B(x) indicates whether the control target device 900 is in contact with an obstacle and the distance between the control target device 900 and the obstacle.
- the control function storage unit 382 stores the control function.
- the control function here is a function for calculating a control command value for the control target device 900 so as to achieve the target set in the control target device 900.
- the control function storage unit 382 stores a Lyapunov Function as a control function will be described as an example.
- the method by which the control device 300 controls the control target device 900 is not limited to the control method using the Lyapunov function.
- various known control methods capable of machine learning the control parameter value can be used as a method for the control device 300 to control the control target device 900.
- the control parameter value here is a value of a parameter included in the control function.
- the control parameter value is reflected in the control command value calculated by the device control unit 395.
- the parameter value storage unit 383 stores the control parameter value.
- the second control unit 390 controls each unit of the control device 300 to execute various processes.
- the function of the second control unit 390 is executed by the CPU included in the control device 300 by reading the program from the second storage unit 380 and executing the program.
- the interference function calculation unit 391 calculates an interference function value. Specifically, the interference function calculation unit 391 generates an interference function based on the position information of the obstacle, and stores it in the interference function storage unit 381. Then, the interference function calculation unit 391 inputs the state information of the control target device 900 and the state information of the obstacle received by the first communication unit 210 from the information acquisition device 100 to the interference function stored in the interference function storage unit 381. To calculate the interference function value.
- the interference function calculation unit 391 calculates a value indicating a change with time of the interference function value. As the controlled device 900 operates and the position of the controlled device 900 changes with time, the interference function value B(x) also changes with time. In this case, the interference function calculation unit 391 calculates the amount of change in the interference function value B(x) between the control steps as a value indicating the change over time in the interference function value B(x).
- the control step here is a series of processing steps for the control device 300 to transmit the control command value to the control target device 900 once. That is, the control device 300 transmits the control command value to the control target device 900 at each periodic control step.
- the interference function calculation unit 391 predicts the amount of change in the interference function value B(x) from the current control step to the next control step.
- the change amount of the interference function value between the control steps is expressed as ⁇ B(x,u).
- the change amount of the interference function value B(x) depends on the change of the position of the control target device 900, and the change of the position of the control target device 900 depends on the control command value u. Therefore, the control command value u is specified. ..
- the second storage unit 380 may store the dynamic model of the control target device 900 in advance. Good.
- the dynamic model of the controlled device 900 simulates an operation when the controlled device 900 receives the state information of the controlled device 900 and the control command value and the controlled device 900 follows the control command value.
- the dynamic model may output position information of the predicted position of the controlled device 900 at a future time.
- the dynamic model may output the operation amount of the control target device 900. That is, the dynamic model may output the difference obtained by subtracting the current position from the future predicted position of the control target device 900.
- the dynamic model is a model in which the differential value or the difference of the state indicated by the state information x of the controlled device 900 is obtained with respect to the input of the control command value u, and may be, for example, a state space model.
- the interference function calculation unit 391 can calculate the predicted value of the position of the control target device 900 by inputting the position information of the control target device 900 and the control command value u to the dynamic model.
- the interference function calculation unit 391 can calculate the predicted value of the interference function value based on the predicted value of the position of the control target device 900.
- the interference function calculation unit 391 can calculate the amount of change in the interference function value by subtracting the current value from the predicted value of the interference function value.
- the interference function calculation unit 391 may calculate the change amount ⁇ B(x, u) of the interference function value by the calculation of the dynamic model. Alternatively, the interference function calculation unit 391 may approximately calculate the change amount ⁇ B(x, u) of the interference function value using the equation (2).
- ⁇ t indicates a time interval between control steps.
- B(x,u) indicates an interference function value.
- the interference function calculation unit 391 calculates the change amount ⁇ B(x, u) of the interference function value by calculation of the dynamic model, and the change amount ⁇ B(x, u of the interference function value using Equation (2).
- the method of calculating u) may be used separately from the method of calculating approximately.
- the interference function calculation unit 391 causes the change amount ⁇ B(x, u of the interference function value by the calculation of the dynamic model. ) May be calculated.
- the interference function calculation unit 391 uses the formula (2) to change the change amount ⁇ B(x,u) of the interference function value. ) May be approximately calculated.
- the device control unit 395 controls the control target device 900 by calculating a control command value for the control target device 900 and transmitting the calculated control command value to the control target device 900 via the second communication unit 310. ..
- the device control unit 395 attempts to calculate the avoidance command value by the avoidance command value calculation unit 396.
- the device control unit 395 transmits the obtained avoidance command value to the control target device 900 via the second communication unit 310.
- the device control unit 395 transmits the control command value for decelerating the control target device 900 to the control target device 900 via the second communication unit 310.
- the avoidance command value calculation unit 396 obtains the avoidance command value as described above.
- the avoidance command value is a control command value for the control target device 900, satisfies constraint conditions including a sufficient condition for the control target device 900 not to contact an obstacle, and applies the control command value to the evaluation function.
- the evaluation value is a control command value that satisfies a predetermined end condition.
- the avoidance command value calculation unit 396 calculates the avoidance command value by solving the optimization problem using such constraint conditions and evaluation functions.
- the sufficient condition for the controlled device 900 not to contact the obstacle corresponds to an example of the condition for the controlled device 900 not to contact the obstacle.
- Constraints in the minimization problem solved by the avoidance command value calculation unit 396 are represented by three types of expressions.
- the first type among the three types of formulas is expressed as formula (3).
- ⁇ is a constant satisfying 0 ⁇ 1.
- ⁇ it is possible to adjust how much the margin of the interval between the control target device 900 and the obstacle is expected so that the control target device 900 and the obstacle do not come into contact with each other.
- B(x) indicates the distance between the control target device 900 and the obstacle.
- (1- ⁇ )B(x) is because the control target device 900 and the obstacle do not come into contact with each other.
- the margin is excluded from the operable range of the control target device 900.
- the larger the value of ⁇ is set the wider the operable range of the controlled device 900 becomes.
- the smaller the value of ⁇ is set the larger the margin for preventing the control target device 900 from coming into contact with the obstacle, and the control target device 900 is pushed toward the obstacle by an unexpected external force, for example. Even if the control target device 900 is hit, it is difficult for the control target device 900 to hit an obstacle.
- the avoidance command value calculation unit 396 obtains the avoidance command value using the interference function value and the value indicating the change over time of the interference function value.
- the constraint condition of Expression (3) can be set for each obstacle.
- the obstacle avoidance control device 400 can perform control so that the control target device 900 does not contact the entire obstacle.
- the interference function may be designed for a group of obstacles.
- Expression (3) shows a sufficient condition that the controlled device 900 does not contact the obstacle in the next control step as long as the controlled device 900 does not contact the obstacle in the current control step.
- the present control step is indicated by t
- the control step next to the control step t is indicated by t+1.
- the interference function value at the control step t is expressed as B(x t ).
- the interference function value at the control step t+1 is expressed as B(x t+1 ).
- the difference obtained by subtracting B(x t ) from B(x t+1 ) is expressed as ⁇ B(x t , u t ).
- ⁇ B(x t , u t ) is expressed as in Expression (4).
- Equation (5) can be obtained from Equation (3).
- Expression (6) can be obtained from Expression (4) and Expression (5).
- u i (i is an integer of 1 ⁇ i ⁇ N) is a scalar value indicating a control command value for each movable part of the control target device 900, such as each joint of the control target device 900.
- N indicates the number of movable parts of the control target device 900.
- i is an identification number for identifying a movable part. The movable part identified by the identification number i is referred to as the i-th movable part. Therefore, u i is a control command value for the i-th movable part.
- u i — min and u i — max are a lower limit value and an upper limit value of u i that are predetermined by the specifications of the control target device 900, respectively.
- Expression (7) shows the constraint condition that any control command value is set within the range of the upper and lower limit values defined by the specifications of the movable part.
- the specifications of the movable part are defined by, for example, the specifications of the actuator used for the movable part.
- the third type among the three types of expressions indicating the constraint conditions in the minimization problem solved by the avoidance command value calculation unit 396 is expressed as the expression (8).
- ⁇ V represents the amount of change in the Lyapunov function value.
- the Lyapunov function V is obtained by machine learning performed by the machine learning unit 392.
- the control function used by the control device 300 is not limited to the Lyapunov function.
- “D” is provided in order to ease the constraint condition and facilitate the solution.
- the deviation between the operation result of the controlled device 900 and the target is referred to as an error.
- the larger the value of “d” the larger the allowable error and the easier it is to obtain a solution.
- “U * ” indicates a control command value that is a solution to this optimization problem.
- “Argmin” is a function that minimizes the value of the argument.
- “argmin” has the control command value u as a function value that minimizes the argument “u T Pu+p ⁇ d 2 ”.
- the superscript "T” on a vector or matrix indicates the transpose of the vector or matrix.
- the data formats of u * and u indicating the control command value are vectors of the same dimension. The number of dimensions of these vectors is the same as the number of control command values transmitted from the control device 300 to the control target device 900.
- P can be any positive definite matrix having the same number of rows and columns as the number of dimensions of “u * ”. For example, if a unit matrix is used as “P”, the size of the control command value can be made as small as possible so that the controlled device 900 does not perform unnecessary operation.
- Expression 9 is a term for evaluating the magnitude of “d” in Expression (8).
- P of “p ⁇ d 2 ”denotes a weight for adjusting the weighting of “u T u” and “d 2 ”.
- P is set as a constant of p>0, for example.
- Expression (9) corresponds to an example of the evaluation function.
- the control command value u that is the minimum solution in Expression (9) corresponds to an example of the control command value in which the evaluation value obtained by applying the control command value to the evaluation function satisfies the predetermined end condition.
- the machine learning unit 392 learns control of the control target device 900. Specifically, the parameter value update unit 393 updates the control parameter value based on the reward value calculated by the reward value calculation unit 291 to machine-learn the control parameter value.
- the stability determination unit 394 determines the control stability using the Lyapunov function, and the parameter value update unit 393 updates the parameter value so that the control is stable.
- W is a positive definite diagonal matrix
- the Lyapunov function V is expressed as in Expression (10).
- the diagonal element of W corresponds to an example of the control parameter, and the machine learning unit 392 machine-learns the control parameter value that maximizes the reward value.
- a Lyapunov function is obtained by the machine learning unit 392 setting the control parameter value by machine learning.
- the control command value u * is expressed as in Expression (11).
- ⁇ represents a control parameter. Further, it can be said that ⁇ B(x, u) used for calculating u * in the above-described optimization calculation indicates the dynamic model of the control target device 900. From this, it can be said that the machine learning unit 392 is learning the policy ⁇ on a model basis.
- a known method such as an optimization-based method such as Bayesian optimization or an experimental design method can be used. In the machine learning performed by the machine learning unit 392, the learning speed may be improved by also using the simulation of the operation of the control target device 900.
- the control device 300 may update not only the control parameter value but also the control function such as the Lyapunov function during the machine learning.
- the control function storage unit 382 may store a plurality of Lyapunov functions having different structures in advance.
- the machine learning unit 392 changes the Lyapunov function of Expression (10) to another. May be replaced with the Lyapunov function of.
- the avoidance command value calculation unit 396 also replaces the Lyapunov function of Expression (8) with the same Lyapunov function of Expression (10).
- the machine learning unit 392 and the avoidance command value calculation unit 396 commonly switch and use the control function, so that the result of the machine learning by the machine learning unit 392 is reflected not only on the control parameter value but also on the control function. Can be made. As a result, it is possible to improve control such as stabilization of control of the control target device 900 by the device control unit 395.
- FIG. 4 is a diagram showing an example of a data flow in the control system 1.
- the obstacle is denoted by reference numeral 950.
- the obstacle 950 is similar to the obstacle described above.
- the information acquisition device 100 acquires observation data regarding the control target device 900, such as sensing data from the sensor of the control target device 900, and observation data regarding the obstacle 950 such as a captured image of the obstacle 950.
- the information acquisition device 100 generates state information of the controlled device 900 based on the observation data regarding the controlled device 900. Specifically, the information acquisition device 100 generates position information of the control target device 900 and information indicating the operation of the control target device 900. The information acquisition device 100 transmits the generated state information of the control target device 900 to the reward value calculation device 200 and the control device 300.
- the information acquisition device 100 also generates the state information of the obstacle 950 based on the observation data regarding the obstacle 950. Specifically, the information acquisition device 100 generates position information of the obstacle 950. When the obstacle 950 moves, the information acquisition device 100 generates information indicating the motion of the obstacle 950, in addition to the position information of the obstacle 950. The information acquisition device 100 transmits the generated state information of the obstacle 950 to the control device 300.
- the reward value calculation unit 291 of the reward value calculation device 200 calculates the reward value based on the state information of the control target device 900.
- the reward value calculation unit 291 transmits the calculated reward value to the control device 300 via the first communication unit 210.
- the interference function calculation unit 391 of the control device 300 calculates the interference function value B(x) based on the state information of the control target device 900 and the state information of the obstacle 950. Specifically, the interference function calculation unit 391 obtains the interference function based on the state information of the obstacle 950 and stores it in the second storage unit 380. Then, the interference function calculation unit 391 inputs the state information x of the control target device into the interference function, and calculates the interference function value.
- the interference function calculation unit 391 calculates the amount of change ⁇ B(x, u) of B(x) between control steps when the device control unit 395 solves the optimization problem to calculate the control command value.
- the interference function calculation unit 391 adds the change amount ⁇ B( of the interference function value based on the control command value u that is a candidate for the solution of the optimization problem in addition to the state information of the control target device 900 and the state information of the obstacle 950. x, u) is calculated.
- the second storage unit 380 stores the dynamic model of the control target device 900.
- the interference function calculation unit 391 uses this dynamic model to calculate the predicted value of the change amount of the interference function value, and calculates the difference from the current value of the change amount of the interference function value to obtain the interference function value. Calculate the amount of change.
- the interference function calculation unit 391 outputs the interference function value B(x) and the change amount ⁇ B(x, u) of the interference function value to the device control unit 395.
- the machine learning unit 392 of the control device 300 performs machine learning based on the state information of the control target device 900 and the reward value to calculate the control parameter value.
- the device control unit 395 of the control device 300 calculates the control command value for the control target device 900 by solving the optimization problem in which the control parameter value calculated by the machine learning unit 392 is reflected.
- the device control unit 395 transmits the calculated control command value to the control target device 900 via the second communication unit 310.
- FIG. 5 is a flowchart showing an example of a processing procedure in which the control device 300 acquires a control command value for the control target device 900.
- the control device 300 executes the loop of FIG. 5 once in one control step.
- the avoidance command value calculation unit 396 reflects the control parameter value calculated by the machine learning unit 392 on the optimization problem (step S111). Specifically, the avoidance command value calculation unit 396 applies the Lyapunov function obtained by the above equation (10) to the optimization problem.
- step S113 when it is determined in step S113 that the solution cannot be obtained (step S113: NO), the avoidance command value calculation unit 396 decelerates the control target device 900 as the control command value to be transmitted to the control target device 900. Generate a control command value. After step S131, the process proceeds to step S14.
- FIG. 6 is a diagram illustrating an example of a processing procedure in which the machine learning unit 392 machine-learns control of the control target device 900.
- the machine learning unit 392 executes the loop of steps S211 to S214 in one control step as a preprocess of the process of FIG. 5 performed by the avoidance command value calculation unit 396 until it is determined that the machine learning end condition is satisfied. Execute once.
- the machine learning unit 392 acquires the reward value calculated by the reward value calculation unit 291 (step S211).
- the parameter value updating unit 393 updates the control parameter value based on the acquired reward value and the state information of the control target device 900 (step S212).
- a known method can be used as the method for searching the control parameter value as the solution in step S212.
- the stability determination unit 394 determines whether the control is stable with the parameter values obtained in step S212 (step S213).
- a known determination method can be used as the determination method in step S213.
- step S214 the machine learning unit 392 determines whether or not a predetermined learning end condition is satisfied.
- the stability determination unit 394 compares the control parameter value of the previous time with the control parameter value of this time, and sets the magnitude of the change amount of the control parameter value to be a predetermined magnitude or less as a learning end condition. ..
- the learning end condition in this case is expressed by Expression (12).
- indicates the norm of the variation ⁇ of the control parameter value.
- the norm of the change amount of the control parameter value corresponds to an example of the magnitude of the change amount of the control parameter value.
- ⁇ is a positive constant threshold value.
- the avoidance command value calculation unit 396 is a control command value for the control target device 900, satisfies constraint conditions including a sufficient condition for the control target device 900 not to contact an obstacle, and the control command value is an evaluation function.
- the avoidance command value which is the control command value whose evaluation value applied to (1) satisfies the predetermined end condition, is obtained.
- the device control unit 395 controls the control target device 900 based on the avoidance command value.
- the parameter value obtained by the machine learning of the machine learning unit 392 is reflected in at least one of the evaluation function and the constraint condition.
- the control device 300 obtains a control command value that satisfies a constraint condition that includes a condition that the controlled device 900 does not contact the obstacle, thereby giving a control command to determine whether or not the controlled device contacts the obstacle. Can be reflected in the value.
- the control device 300 in this respect, even when the control target device and the obstacle are relatively close to each other, the influence of the operation of avoiding the control target device from contacting the obstacle can be made relatively small, or the influence can be reduced. Is expected to be eliminated.
- the machine learning unit 392 does not need to consider contact between the control target device 900 and an obstacle when learning control of the control target device 900. According to the control device 300, in this respect, it is expected that the load for the machine learning unit 392 to search for a solution will be light, and the processing time for obtaining a solution will be relatively short.
- the avoidance command value calculation unit 396 uses a constraint condition including a condition for achieving the target set in the control target device 900 and a condition in which the parameter value is reflected. Specifically, the avoidance command value calculation unit 396 uses the constraint condition including the control function in which the control parameter value is reflected. In the control device 300, it is expected that the accuracy of achievement of the target is improved by updating the parameter value by machine learning, and the machine learning is not advanced due to the condition that the controlled device 900 does not come into contact with the obstacle. However, it is expected that the controlled device 900 can avoid contact with an obstacle.
- control function storage unit 382 stores a plurality of control functions that are commonly used for the acquisition of the parameter value by the machine learning unit 392 and the acquisition of the avoidance command value by the avoidance command value calculation unit 396.
- the machine learning unit 392 and the avoidance command value calculation unit 396 commonly switch and use any of the control functions stored in the control function storage unit 382. In this way, the machine learning unit 392 and the avoidance command value calculation unit 396 commonly switch and use the control function, so that the result of the machine learning by the machine learning unit 392 is reflected not only on the control parameter value but also on the control function. Can be made. As a result, it is possible to improve control such as stabilization of control of the control target device 900 by the device control unit 395.
- FIG. 7 is a schematic block diagram showing an example of the functional configuration of the control device 300 according to the second embodiment.
- the control device 300 includes a second communication unit 310, a second storage unit 380, and a second control unit 390.
- the second storage unit 380 includes an interference function storage unit 381, a control function storage unit 382, and a parameter value storage unit 383.
- the second controller 390 includes an interference function calculator 391, a machine learning unit 392, and a device controller 395.
- the machine learning unit 392 includes a parameter value updating unit 393 and a stability determining unit 394.
- the device control unit 395 includes an avoidance command value calculation unit 396 and a nominal (Nominal) command value calculation unit 397.
- control device 300 shown in FIG. 7 differs from the first embodiment shown in FIG. 3 in that the device control unit 395 includes a nominal command value calculation unit 397.
- the control device 300 shown in FIG. 7 is similar to that of the first embodiment shown in FIG.
- the control system according to the second embodiment is the same as that of the first embodiment except the above points.
- description of the same points as in the case of the first embodiment is omitted, and the reference numerals shown in FIG. 1 and the reference numerals shown in FIG. 2 are quoted as necessary.
- the nominal command value calculation unit 397 calculates the nominal command value.
- the nominal command value is a control command value for the control target device 900 when the obstacle avoidance by the control target device 900 is not considered. That is, the nominal command value is a control command value for the control target device 900 for achieving the target set in the control target device 900 under the assumption that there is no obstacle.
- the control method for the nominal command value calculation unit 397 to calculate the nominal command value is not limited to a particular one, and various known control methods can be used.
- the avoidance command value calculation unit 396 obtains the control command value (that is, the control command value actually used) instructed to the control target device 900 from the nominal command value calculated by the nominal command value calculation unit 397. It is used as a reference control command value.
- the function for calculating the nominal command value corresponds to an example of the control function.
- a function for calculating the nominal command value is called a nominal function.
- the nominal command value calculation unit 397 reflects the control parameter value calculated by the machine learning unit 392 on the nominal function, and calculates the nominal command value using the reflected nominal function.
- the constraint condition of the optimization problem used by the avoidance command value calculation unit 396 to calculate the control command value is the same as that of the first embodiment, and is expressed by Expression (3), Expression (7), and Expression (8). Shown.
- the evaluation function of the optimization problem used by the avoidance command value calculation unit 396 to calculate the control command value is expressed by Expression (13), unlike the case of the first embodiment.
- “u * ” indicates a control command value that is a solution to this optimization problem.
- “argmin” is a function that minimizes the value of the argument.
- “argmin” has a value of u as a function value that minimizes the argument “(u ⁇ u r ) T (u ⁇ u r )”.
- “U r ” represents the nominal command value from the nominal command value calculation unit 397.
- Expression (13) indicates that a control command value that is as close as possible to the nominal command value u r is obtained under the constraint condition. Since the nominal command value u r is a command value calculated to cause the controlled device 900 to execute the purpose set in the controlled device 900, by obtaining a command value close to the nominal command value u r , the controlled object It is expected that the control target device 900 can execute the purpose set in the device 900.
- Data format u r is assumed to be a vector of the same dimension as that of the above-mentioned u * and u. The number of dimensions of these vectors is the same as the number of control command values transmitted from the control device 300 to the control target device 900.
- FIG. 8 is a diagram showing an example of a data flow in the control system 1 according to the second embodiment.
- the example of FIG. 8 is different from the case of FIG. 4 in that the avoidance command value calculation unit 396 of the device control unit 395 is clearly shown and that the device control unit 395 includes a nominal command value calculation unit 397.
- the control parameter value calculated by the machine learning unit 392 is input to the nominal command value calculation unit 397, and the nominal command value calculation unit 397 calculates the nominal command value using the nominal function that reflects the control parameter value.
- the nominal command value calculation unit 397 outputs the calculated nominal command value to the avoidance command value calculation unit 396.
- the avoidance command value calculation unit 396 uses the nominal command value for the evaluation function of the optimization problem.
- the example of FIG. 8 is the same as the case of FIG.
- the avoidance command value calculation unit 396 performs control with a small difference from the nominal command value obtained by using the parameter value calculated by the machine learning unit 392 as the evaluation function of the optimization problem for calculating the control command value.
- An evaluation function that evaluates higher as the command value is used. It is expected that the control device 300 can cause the controlled device 900 to execute the purpose set in the controlled device 900 by using this evaluation function.
- the learning result of the machine learning unit 392 can be reflected in the control command value by reflecting the parameter value in the nominal command value of the evaluation function.
- FIG. 9 is a diagram showing an example of the configuration of the control device according to the third embodiment.
- the control device 10 shown in FIG. 9 includes a machine learning unit 11, an avoidance command value calculation unit 12, and a device control unit 13. With such a configuration, the machine learning unit 11 machine-learns the control of the operation of the control target device.
- the avoidance command value calculation unit 12 calculates an avoidance command value.
- the avoidance command value is a control command value for the control target device, satisfies the constraint condition including the condition that the control target device does not contact the obstacle, and the evaluation value obtained by applying the control command value to the evaluation function is It is a control command value that satisfies a predetermined end condition.
- the device control unit 13 controls the control target device based on the avoidance command value. Further, the parameter value obtained by the machine learning of the machine learning unit 11 is reflected in at least one of the evaluation function and the constraint condition.
- the control device 10 obtains the control command value that satisfies the constraint condition including the condition that the control target device does not come into contact with the obstacle, and determines the determination result of whether the control target device comes into contact with the obstacle as the control command value. Can be reflected in. According to the control device 10, in this respect, even when the control target device and the obstacle are relatively close to each other, the influence of the operation of avoiding the contact of the control target device with the obstacle can be made relatively small, or the influence can be reduced. Is expected to be eliminated. Further, the machine learning unit 11 does not need to consider the contact between the control target device and the obstacle when learning the control of the control target device. According to the control device 10, in this respect, it is expected that the load for the machine learning unit 11 to search for a solution will be light, and the processing time for obtaining a solution will be relatively short.
- FIG. 10 is a diagram illustrating an example of a procedure of processing in the control method according to the fourth embodiment.
- machine learning is performed to control the operation of the control target device (step S11), which is a control command value for the control target device and includes a condition that the control target device does not contact an obstacle.
- An avoidance command value that is a control command value satisfying the condition and applying the control command value to the evaluation function is a control command value satisfying a predetermined end condition (step S12), and the control target device is based on the avoidance command value.
- Is controlled step S13).
- the parameter value obtained by the machine learning in step S11 is reflected in at least one of the evaluation function and the constraint condition.
- control command value is used to determine whether the control target device contacts the obstacle. Can be reflected in.
- FIG. 11 is a schematic block diagram showing the configuration of a computer according to at least one embodiment.
- the computer 700 includes a CPU 710, a main storage device 720, an auxiliary storage device 730, and an interface 740. Any one or more of the information acquisition device 100, the reward value calculation device 200, and the control device 300 may be implemented in the computer 700. In that case, the operation of each processing unit described above is stored in the auxiliary storage device 730 in the form of a program.
- the CPU 710 reads the program from the auxiliary storage device 730, expands it in the main storage device 720, and executes the above processing according to the program. Further, the CPU 710 secures a storage area corresponding to each storage unit described above in the main storage device 720 according to the program. Communication between each device and other devices is performed by the interface 740 having a communication function and performing communication under the control of the CPU 710.
- the operations of the first control unit 290 and each of its units are stored in the auxiliary storage device 730 in the form of a program.
- the CPU 710 reads the program from the auxiliary storage device 730, expands it in the main storage device 720, and executes the above processing according to the program. Further, the CPU 710 secures a storage area corresponding to the first storage unit 280 in the main storage device 720 according to the program.
- the communication performed by the first communication unit 210 is executed by the interface 740 having a communication function and performing the communication under the control of the CPU 710.
- the operations of the second control unit 390 and each of the units thereof are stored in the auxiliary storage device 730 in the form of a program.
- the CPU 710 reads the program from the auxiliary storage device 730, expands it in the main storage device 720, and executes the above processing according to the program. Further, the CPU 710 secures the second storage unit 380 and a storage area corresponding to each unit in the main storage device 720 according to the program.
- the communication performed by the second communication unit 310 is executed by the interface 740 having a communication function and performing the communication under the control of the CPU 710.
- a program for realizing all or a part of the functions of the information acquisition device 100, the reward value calculation device 200, and the control device 300 is recorded in a computer-readable recording medium and recorded in this recording medium. You may perform the process of each part by making a computer system read a program and executing it.
- the “computer system” mentioned here includes an OS (operating system) and hardware such as peripheral devices.
- the "computer-readable recording medium” is a portable medium such as a flexible disk, a magneto-optical disk, a ROM (Read Only Memory), a CD-ROM (Compact Disc Read Only Memory), a hard disk built in a computer system, or the like. A memory device.
- the program may be one for realizing some of the functions described above, or may be one that can realize the functions described above in combination with a program already recorded in the computer system.
- the embodiment of the present invention may be applied to a control device, a control method, and a recording medium.
- Control System 10 Control System 10, 300 Control Device 11, 392 Machine Learning Unit 12, 396 Avoidance Command Value Calculation Unit 13, 395 Device Control Unit 100 Information Acquisition Device 200 Reward Value Calculation Device 210 First Communication Unit 280 First Storage Unit 281 Reward Function Storage unit 290 First control unit 291 Reward value calculation unit 310 Second communication unit 380 Second storage unit 381 Interference function storage unit 382 Control function storage unit 383 Parameter value storage unit 390 Second control unit 391 Interference function calculation unit 393 Parameter value Update unit 394 Stability determination unit 397 Nominal command value calculation unit
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Feedback Control In General (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
制御装置が、制御対象機器の動作の制御を機械学習する機械学習部と、前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求める回避指令値演算部と、前記回避指令値に基づいて、前記制御対象機器を制御する機器制御部と、を備え、前記機械学習部の機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映される。
Description
本発明は、制御装置、制御方法および記録媒体に関する。
制御対象機器の動作を強化学習する際、制御対象機器が障害物に接触することを回避するための技術が提案されている。
例えば、特許文献1に記載の強化学習装置では、強化学習を行う制御パラメータ値算出手段が算出する制御パラメータ値と、仮想外力発生器が算出する仮想外力との和の力ベクトルを制御対象に出力する。仮想外力発生器は、仮想外力の方向を、障害物の表面に対して垂直な方向とし、仮想外力の大きさを、制御対象と障害物との距離の3乗に比例して小さくなるように算出する。
例えば、特許文献1に記載の強化学習装置では、強化学習を行う制御パラメータ値算出手段が算出する制御パラメータ値と、仮想外力発生器が算出する仮想外力との和の力ベクトルを制御対象に出力する。仮想外力発生器は、仮想外力の方向を、障害物の表面に対して垂直な方向とし、仮想外力の大きさを、制御対象と障害物との距離の3乗に比例して小さくなるように算出する。
制御対象機器が障害物に接触することを回避する動作は、制御対象機器に設定されている目標を達成するための動作との関係では阻害要因となる場合がある。このため、制御対象機器が障害物に接触することを回避する動作の影響をなるべく小さくできることが好ましい。制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができれば、制御対象機器と障害物とが比較的近い場合でも、制御対象機器が障害物に接触することを回避する動作の影響を比較的小さくできる、あるいは、影響を無くせることが期待される。
本発明の目的の一例は、上記の問題を解決することができる制御装置、制御方法および記録媒体を提供することである。
本発明の第1の態様によれば、制御装置は、制御対象機器の動作の制御を機械学習する機械学習部と、前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求める回避指令値演算部と、前記回避指令値に基づいて、前記制御対象機器を制御する機器制御部と、を備え、前記機械学習部の機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映される。
本発明の第2の態様によれば、制御方法は、制御対象機器の動作の制御を機械学習する工程と、前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求める工程と、前記回避指令値に基づいて、前記制御対象機器を制御する工程と、を含み、前記機械学習する工程での機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映される。
本発明の第3の態様によれば、記録媒体は、コンピュータに、制御対象機器の動作の制御を機械学習する工程と、前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求める工程と、前記回避指令値に基づいて、前記制御対象機器を制御する工程と、を実行させるためのプログラムであって、前記機械学習する工程での機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映されるプログラムを記録した記録媒体である。
上記した制御装置、制御方法および記録媒体によれば、制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができる。
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
<第1実施形態>
図1は、第1実施形態に係る制御システムの装置構成の例を示す概略構成図である。図1に示す構成で、制御システム1は、情報取得装置100と、報酬値演算装置200と、制御装置300とを備える。
図1は、第1実施形態に係る制御システムの装置構成の例を示す概略構成図である。図1に示す構成で、制御システム1は、情報取得装置100と、報酬値演算装置200と、制御装置300とを備える。
制御システム1は、制御対象機器900を制御する。制御システム1は、制御対象機器900に所望の動作をさせ、かつ、制御対象機器900が障害物に接触しないように、制御対象機器900を制御する。
ここでいう所望の動作は、制御対象機器900に設定されている目標を達成する動作である。ここでいう接触することは、単に触れることに限定されず、ぶつかることを含む。制御対象機器900が障害物に接触することは、制御対象機器900の少なくとも一部分が、障害物の少なくとも一部分に接触することである。
ここでいう所望の動作は、制御対象機器900に設定されている目標を達成する動作である。ここでいう接触することは、単に触れることに限定されず、ぶつかることを含む。制御対象機器900が障害物に接触することは、制御対象機器900の少なくとも一部分が、障害物の少なくとも一部分に接触することである。
以下では、制御対象機器900が垂直多関節ロボットである場合を例に説明するが、制御システム1の制御対象は、制御指令値に従って動作し、障害物に接触する可能性があるいろいろな機器とすることができる。例えば、制御対象機器900が、垂直多関節ロボット以外の産業用ロボットであってもよい。
あるいは、制御対象機器900が、建築用ロボットまたは家事ロボットなど、産業用ロボット以外のロボットであってもよい。特定の用途に限定されず、形状変化を伴ういろいろなロボットを、制御対象機器900の例とすることができる。
あるいは、制御対象機器900が、無人搬送車またはドローンなどの移動体であってもよい。また、制御対象機器900が、制御指令値にて制御可能であれば、自律的に動作する装置であってもよい。
あるいは、制御対象機器900が、無人搬送車またはドローンなどの移動体であってもよい。また、制御対象機器900が、制御指令値にて制御可能であれば、自律的に動作する装置であってもよい。
ここでいう障害物は、制御対象機器900が接触する可能性がある物である。障害物は、特定の種類のものに限定されない。例えば、障害物が、人間、他のロボット、周囲の壁または機械、一時的に置かれた荷物の何れか、あるいはこれらの組み合わせであってもよい。
また、制御対象機器900自らも障害物として扱われていてもよい。例えば、制御対象機器900が垂直多関節ロボットであり、その姿勢によってはロボットアームと台座部分とが接触する場合、制御システム1が制御対象機器900を障害物として扱うことで、ロボットアームと台座部分との接触を回避し得る。
また、制御対象機器900自らも障害物として扱われていてもよい。例えば、制御対象機器900が垂直多関節ロボットであり、その姿勢によってはロボットアームと台座部分とが接触する場合、制御システム1が制御対象機器900を障害物として扱うことで、ロボットアームと台座部分との接触を回避し得る。
情報取得装置100は、制御対象機器900が備えるセンサなど制御対象機器900を観測するセンサからセンシングデータを取得して、制御対象機器900の位置および動作を検出する。情報取得装置100がセンシングデータを取得するセンサは、特定の種類のセンサに限定されない。例えば、情報取得装置100が、センシングデータから、制御対象機器900の各関節の、関節角度、関節角速度、関節速度、および、関節加速度のうち何れか、あるいはこれらの組み合わせの情報を取得するようにしてもよい。
情報取得装置100は、得られた情報に基づいて、制御対象機器900の位置情報、および、制御対象機器900の動きを示す情報を生成し送信する。
情報取得装置100が、制御対象機器900の位置情報をボクセルデータで送信するようにしてもよい。例えば、情報取得装置100が制御対象機器900の表面の位置情報をボクセルデータで送信することで、制御装置300は、1点ではなく制御対象機器900の表面と、障害物との位置関係を把握でき、制御対象機器900と障害物との距離をより正確に把握できる。制御対象機器900と障害物との距離をより正確に把握できることで、制御装置300は、制御対象機器900に障害物を回避させる制御をより高精度に行うことができる。あるいは、情報取得装置100が、制御対象機器900の位置情報として、制御対象機器900に設定されている代表点の座標を送信するようにしてもよい。
情報取得装置100が、制御対象機器900の位置情報をボクセルデータで送信するようにしてもよい。例えば、情報取得装置100が制御対象機器900の表面の位置情報をボクセルデータで送信することで、制御装置300は、1点ではなく制御対象機器900の表面と、障害物との位置関係を把握でき、制御対象機器900と障害物との距離をより正確に把握できる。制御対象機器900と障害物との距離をより正確に把握できることで、制御装置300は、制御対象機器900に障害物を回避させる制御をより高精度に行うことができる。あるいは、情報取得装置100が、制御対象機器900の位置情報として、制御対象機器900に設定されている代表点の座標を送信するようにしてもよい。
情報取得装置100は、制御対象機器900の動きを示す情報として、例えば、制御対象機器900の速度、加速度、角速度、角加速度、またはこれらの組み合わせを送信する。情報取得装置100が、制御対象機器900全体の動きを示す情報をボクセルデータで送信するようにしてもよい。あるいは、情報取得装置100が、制御対象機器900の代表点の動きを示すデータを送信するようにしてもよい。例えば、情報取得装置100が、制御対象機器900の一般化座標qと、一般化速度q’とを並べたベクトルを送信するようにしてもよい。
あるいは、情報取得装置100が、制御対象機器の関節の角速度など、制御対象機器のアクチュエータの動きを示す情報を送信するようにしてもよい。
制御対象機器900の位置情報と制御対象機器900の動きを示す情報とを総称して制御対象機器900の状態情報と称する。
情報取得装置100は、制御対象機器の状態情報を、報酬値演算装置200および制御装置300へ送信する。
あるいは、情報取得装置100が、制御対象機器の関節の角速度など、制御対象機器のアクチュエータの動きを示す情報を送信するようにしてもよい。
制御対象機器900の位置情報と制御対象機器900の動きを示す情報とを総称して制御対象機器900の状態情報と称する。
情報取得装置100は、制御対象機器の状態情報を、報酬値演算装置200および制御装置300へ送信する。
また、情報取得装置100は、障害物の位置を特定する。情報取得装置100が、障害物の位置を特定する方法として、公知のいろいろな方法を用いることができる。例えば、制御システム1が、例えばデプスカメラ(Depth Camera)またはステレオカメラ(Stereo Camera)など、3次元の情報を得られるカメラを備え、情報取得装置100が、このカメラの画像に基づいて障害物の3次元位置情報を取得するようにしてもよい。あるいは、制御システム1が、例えば3D-LiDAR(3-Dimension Light Detection and Ranging)など、3次元情報を得るための装置を備え、情報取得装置100が、この装置の測定データに基づいて障害物の3次元位置情報を取得する世にしてもよい。
情報取得装置100は、障害物の位置情報を送信する。情報取得装置100が、障害物の位置情報をボクセルデータのデータ形式で送信するようにしてもよい。例えば、情報取得装置100が障害物の表面の位置情報をボクセルデータで送信することで、制御装置300は、1点ではなく障害物の表面と、制御対象機器900との位置関係を把握でき、制御対象機器900と障害物との距離をより正確に把握できる。制御対象機器900と障害物との距離をより正確に把握できることで、制御装置300は、制御対象機器900に障害物を回避させる制御をより高精度に行うことができる。あるいは、情報取得装置100が、制御対象機器900の位置情報として、制御対象機器900に設定されている代表点の座標を送信するようにしてもよい。
障害物が動く場合、情報取得装置100が、障害物の位置情報に加えて、障害物の動きを示す情報を送信するようにしてもよい。情報取得装置100が、障害物の動きを示す情報として、例えば、障害物の速度、加速度、角速度、角加速度、またはこれらの組み合わせを送信するようにしてもよい。情報取得装置100が、障害物全体の動きを示す情報をボクセルデータで送信するようにしてもよい。あるいは、情報取得装置100が、障害物の代表点の動きを示すデータを送信するようにしてもよい。例えば、情報取得装置100が、障害物の一般化座標qと、一般化速度q’とを並べたベクトルを送信するようにしてもよい。
障害物の位置情報、あるいは、障害物が動く場合の、障害物の位置情報と障害物の動きを示す情報との組み合わせを、障害物の状態情報と称する。
情報取得装置100は、障害物の状態情報を制御装置300へ送信する。
障害物の位置情報、あるいは、障害物が動く場合の、障害物の位置情報と障害物の動きを示す情報との組み合わせを、障害物の状態情報と称する。
情報取得装置100は、障害物の状態情報を制御装置300へ送信する。
報酬値演算装置200は、報酬値を算出する。報酬値は、制御装置300が制御対象機器900に対する制御を機械学習するために用いられる。ここでいう報酬値は、制御装置300からの制御指令値に基づいて制御対象機器900が動作した結果に対する評価を数値で示すものである。例えば、報酬値演算装置200は、制御対象機器900の位置および動作を示す情報を入力として、制御対象機器900に設定されている目標の達成度合いが高いほど報酬値を高く算出する報酬関数を予め記憶しておく。そして、報酬値演算装置200は、情報取得装置100から取得する制御対象機器900の位置および動作を示す情報を報酬関数に入力して報酬値を算出する。
制御装置300は、制御システム1による制御対象機器900の制御を実行する。したがって、制御システム1について上述したように、制御装置300は、制御対象機器900に所望の動作をさせ、かつ、制御対象機器900が障害物に接触しないように、制御対象機器900を制御する。制御装置300は、情報取得装置100が送信する情報に基づいて、制御対象機器900に対する制御指令値を算出し、算出した制御指令値を制御対象機器900に送信することで制御対象機器900を制御する。
また、制御装置300は、制御対象機器900に対する制御を機械学習する。制御装置300は、報酬値演算装置200が算出する報酬値がより大きくなるように、制御対象機器900に対する制御を機械学習する。
また、制御装置300は、制御対象機器900に対する制御を機械学習する。制御装置300は、報酬値演算装置200が算出する報酬値がより大きくなるように、制御対象機器900に対する制御を機械学習する。
図2は、報酬値演算装置200の機能構成の例を示す概略ブロック図である。図2に示す構成で、報酬値演算装置200は、第1通信部210と、第1記憶部280と、第1制御部290とを備える。第1記憶部280は、報酬関数記憶部281を備える。第1制御部290は、報酬値演算部291を備える。
第1通信部210は、他の装置と通信を行う。特に、第1通信部210は、情報取得装置100が送信する制御対象機器900の状態情報を受信する。また、第1通信部210は、報酬値演算部291が算出する報酬値を制御装置300へ送信する。
第1通信部210は、他の装置と通信を行う。特に、第1通信部210は、情報取得装置100が送信する制御対象機器900の状態情報を受信する。また、第1通信部210は、報酬値演算部291が算出する報酬値を制御装置300へ送信する。
第1記憶部280は、各種データを記憶する。第1記憶部280の機能は、報酬値演算装置200が備える記憶デバイスを用いて実行される。
報酬関数記憶部281は、報酬関数を記憶する。
第1制御部290は、報酬値演算装置200の各部を制御して各種処理を実行する。第1制御部290の機能は、報酬値演算装置200が備えるCPU(Central Processing Unit、中央処理装置)が、第1記憶部280からプログラムを読み出して実行することで実行される。
報酬値演算部291は、報酬値を算出する。具体的には、報酬値演算部291は、報酬関数記憶部281が記憶する報酬関数に、第1通信部210が情報取得装置100から受信する制御対象機器900の状態情報を入力して報酬値を算出する。
報酬関数記憶部281は、報酬関数を記憶する。
第1制御部290は、報酬値演算装置200の各部を制御して各種処理を実行する。第1制御部290の機能は、報酬値演算装置200が備えるCPU(Central Processing Unit、中央処理装置)が、第1記憶部280からプログラムを読み出して実行することで実行される。
報酬値演算部291は、報酬値を算出する。具体的には、報酬値演算部291は、報酬関数記憶部281が記憶する報酬関数に、第1通信部210が情報取得装置100から受信する制御対象機器900の状態情報を入力して報酬値を算出する。
図3は、制御装置300の機能構成の例を示す概略ブロック図である。図3に示す構成で、制御装置300は、第2通信部310と、第2記憶部380と、第2制御部390とを備える。第2記憶部380は、干渉関数記憶部381と、制御関数記憶部382と、パラメータ値記憶部383とを備える。第2制御部390は、干渉関数演算部391と、機械学習部392と、機器制御部395とを備える。機械学習部392は、パラメータ値更新部393と、安定性判定部394とを備える。機器制御部395は、回避指令値演算部396を備える。
第2通信部310は、他の装置と通信を行う。特に、第2通信部310は、情報取得装置100が送信する制御対象機器900の状態情報および障害物の状態情報を受信する。また、第1通信部210は、報酬値演算部291が算出する報酬値を制御装置300へ送信する。また、第2通信部310は、機器制御部395が算出する制御指令値を制御対象機器900へ送信する。
第2記憶部380は、各種データを記憶する。第2記憶部380の機能は、制御装置300が備える記憶デバイスを用いて実行される。
干渉関数記憶部381は、干渉関数を記憶する。干渉関数は、制御対象機器900が障害物に接触することを防止するために用いられる関数であり、制御対象機器900と障害物との位置関係に応じた値を示す。干渉関数Bは、式(1)のような値をとる。
干渉関数記憶部381は、干渉関数を記憶する。干渉関数は、制御対象機器900が障害物に接触することを防止するために用いられる関数であり、制御対象機器900と障害物との位置関係に応じた値を示す。干渉関数Bは、式(1)のような値をとる。
式(1)では、xは、制御対象機器900の状態情報を示す。例えば、情報取得装置100が、制御対象機器900の表面の位置情報をボクセルデータで送信し、干渉関数演算部391が、制御対象機器900の状態情報を干渉関数Bに適用することで、制御対象機器900と障害物とが最も近い位置における両者の距離を算出するようにしてもよい。
以下では、干渉関数値B(x)が、制御対象機器900の状態情報xが示す制御対象機器900の位置と障害物との距離を示すものとする。障害物が複数ある場合は、制御対象機器900の位置に最も近い障害物との距離を示すものとする。通常、制御対象機器900は障害物の中には入らないので、制御対象機器900が障害物の内部に位置する場合の干渉関数値B(x)は定義されていなくてもよい。
干渉関数値B(x)により、制御対象機器900が障害物に接触しているか否か、および、制御対象機器900と障害物との距離が示される。
干渉関数値B(x)により、制御対象機器900が障害物に接触しているか否か、および、制御対象機器900と障害物との距離が示される。
制御関数記憶部382は、制御関数を記憶する。ここでいう制御関数は、制御対象機器900に設定されている目標を達成するように、制御対象機器900に対する制御指令値を算出するための関数である。以下では、制御関数記憶部382が制御関数としてリアプノフ関数(Lyapunov Function)を記憶する場合を例に説明する。但し、制御装置300が制御対象機器900を制御する方法は、リアプノフ関数を用いる制御方法に限定されない。制御装置300が制御対象機器900を制御する方法として、制御パラメータ値を機械学習可能な、公知のいろいろな制御方法を用いることができる。
ここでいう制御パラメータ値は、制御関数に含まれるパラメータの値である。制御パラメータ値は、機器制御部395が算出する制御指令値に反映される。
パラメータ値記憶部383は、制御パラメータ値を記憶する。
ここでいう制御パラメータ値は、制御関数に含まれるパラメータの値である。制御パラメータ値は、機器制御部395が算出する制御指令値に反映される。
パラメータ値記憶部383は、制御パラメータ値を記憶する。
第2制御部390は、制御装置300の各部を制御して各種処理を実行する。第2制御部390の機能は、制御装置300が備えるCPUが第2記憶部380からプログラムを読み出して実行することで実行される。
干渉関数演算部391は、干渉関数値を算出する。具体的には、干渉関数演算部391は、障害物の位置情報に基づいて干渉関数を生成し、干渉関数記憶部381に記憶させておく。そして、干渉関数演算部391は、干渉関数記憶部381が記憶する干渉関数に、第1通信部210が情報取得装置100から受信する制御対象機器900の状態情報および障害物の状態情報を入力して干渉関数値を算出する。
干渉関数演算部391は、干渉関数値を算出する。具体的には、干渉関数演算部391は、障害物の位置情報に基づいて干渉関数を生成し、干渉関数記憶部381に記憶させておく。そして、干渉関数演算部391は、干渉関数記憶部381が記憶する干渉関数に、第1通信部210が情報取得装置100から受信する制御対象機器900の状態情報および障害物の状態情報を入力して干渉関数値を算出する。
また、干渉関数演算部391は、干渉関数値の経時変化を示す値を算出する。
制御対象機器900が動作して制御対象機器900の位置が経時変化することで、干渉関数値B(x)も経時変化する。この場合、干渉関数演算部391は、干渉関数値B(x)の経時変化を示す値として、制御ステップ間における干渉関数値B(x)の変化量を算出する。
制御対象機器900が動作して制御対象機器900の位置が経時変化することで、干渉関数値B(x)も経時変化する。この場合、干渉関数演算部391は、干渉関数値B(x)の経時変化を示す値として、制御ステップ間における干渉関数値B(x)の変化量を算出する。
ここでの制御ステップは、制御装置300が制御対象機器900に対して制御指令値を1回送信するための一連の処理のステップである。すなわち、制御装置300は、周期的な制御ステップ毎に制御対象機器900に対して制御指令値を送信する。
干渉関数演算部391は、今回の制御ステップから次回の制御ステップまでの間の、干渉関数値B(x)の変化量を予測する。制御ステップ間における干渉関数値の変化量をΔB(x,u)と表記する。干渉関数値B(x)の変化量は制御対象機器900の位置の変化に依存し、制御対象機器900の位置の変化は制御指令値uに依存するため、制御指令値uを明示している。
干渉関数演算部391は、今回の制御ステップから次回の制御ステップまでの間の、干渉関数値B(x)の変化量を予測する。制御ステップ間における干渉関数値の変化量をΔB(x,u)と表記する。干渉関数値B(x)の変化量は制御対象機器900の位置の変化に依存し、制御対象機器900の位置の変化は制御指令値uに依存するため、制御指令値uを明示している。
干渉関数演算部391が干渉関数値の変化量をΔB(x,u)を算出するために、第2記憶部380が、制御対象機器900の動的モデルを予め記憶しておくようにしてもよい。制御対象機器900の動的モデルは、制御対象機器900の状態情報、および、制御指令値の入力を受けて制御対象機器900がその制御指令値に従う場合の動作を模擬する。
動的モデルが、将来の時点における制御対象機器900の予測位置の位置情報を出力するようにしてもよい。あるいは、動的モデルが、制御対象機器900の動作量を出力するようにしてもよい。すなわち、動的モデルが、制御対象機器900の将来の予測位置から現在位置を減算した差分を出力するようにしてもよい。
動的モデルは、制御指令値uの入力に対して、制御対象機器900の状態情報xで示される状態の微分値または差分が求まるモデルであり、例えば状態空間モデルであってもよい。
動的モデルが、将来の時点における制御対象機器900の予測位置の位置情報を出力するようにしてもよい。あるいは、動的モデルが、制御対象機器900の動作量を出力するようにしてもよい。すなわち、動的モデルが、制御対象機器900の将来の予測位置から現在位置を減算した差分を出力するようにしてもよい。
動的モデルは、制御指令値uの入力に対して、制御対象機器900の状態情報xで示される状態の微分値または差分が求まるモデルであり、例えば状態空間モデルであってもよい。
干渉関数演算部391は、動的モデルに制御対象機器900の位置情報および制御指令値uを入力することで、制御対象機器900の位置の予測値を算出することができる。干渉関数演算部391は、制御対象機器900の位置の予測値に基づいて干渉関数値の予測値を算出することができる。干渉関数演算部391は、干渉関数値の予測値から現在値を減算することで、干渉関数値の変化量を算出することができる。
干渉関数演算部391が、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出するようにしてもよい。あるいは、干渉関数演算部391が、式(2)を用いて干渉関数値の変化量ΔB(x,u)を近似的に算出するようにしてもよい。
干渉関数演算部391が、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出するようにしてもよい。あるいは、干渉関数演算部391が、式(2)を用いて干渉関数値の変化量ΔB(x,u)を近似的に算出するようにしてもよい。
Δtは、制御ステップ間の時間間隔を示す。B(x,u)は、干渉関数値を示す。制御指令値uを変更すると制御対象機器900の動作が変わり干渉関数値が変わるので、干渉関数Bを制御指令値uの関数として表記している。
あるいは、干渉関数演算部391が、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出する方法と、式(2)を用いて干渉関数値の変化量ΔB(x,u)を近似的に算出する方法と使い分けるようにしてもよい。例えば、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出できる場合は、干渉関数演算部391が、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出するようにしてもよい。一方、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出できない場合、干渉関数演算部391が、式(2)を用いて干渉関数値の変化量ΔB(x,u)を近似的に算出するようにしてもよい。
あるいは、干渉関数演算部391が、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出する方法と、式(2)を用いて干渉関数値の変化量ΔB(x,u)を近似的に算出する方法と使い分けるようにしてもよい。例えば、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出できる場合は、干渉関数演算部391が、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出するようにしてもよい。一方、動的モデルの演算で干渉関数値の変化量ΔB(x,u)を算出できない場合、干渉関数演算部391が、式(2)を用いて干渉関数値の変化量ΔB(x,u)を近似的に算出するようにしてもよい。
機器制御部395は、制御対象機器900に対する制御指令値を算出し、算出した制御指令値を、第2通信部310を介して制御対象機器900へ送信することで、制御対象機器900を制御する。
機器制御部395は、回避指令値演算部396にて回避指令値の算出を試みる。回避指令値の算出に成功した場合、機器制御部395は、得られた回避指令値を、第2通信部310を介して制御対象機器900へ送信する。一方、回避指令値を得られなかった場合、機器制御部395は、制御対象機器900を減速させる制御指令値を、第2通信部310を介して制御対象機器900へ送信する。
機器制御部395は、回避指令値演算部396にて回避指令値の算出を試みる。回避指令値の算出に成功した場合、機器制御部395は、得られた回避指令値を、第2通信部310を介して制御対象機器900へ送信する。一方、回避指令値を得られなかった場合、機器制御部395は、制御対象機器900を減速させる制御指令値を、第2通信部310を介して制御対象機器900へ送信する。
回避指令値演算部396は、上記のように回避指令値を求める。回避指令値は、制御対象機器900に対する制御指令値であって、制御対象機器900が障害物に接触しないための十分条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である。回避指令値演算部396はこのような制約条件および評価関数を用いた最適化問題を解くことで、回避指令値を算出する。制御対象機器900が障害物に接触しないための十分条件は、制御対象機器900が障害物に接触しないための条件の例に該当する。
制御装置300が回避指令値を用いて制御対象機器900を制御することで、制御対象機器900が障害物に接触しないように制御できる。
制御装置300が回避指令値を用いて制御対象機器900を制御することで、制御対象機器900が障害物に接触しないように制御できる。
回避指令値演算部396が解く最小化問題における制約条件は、3種類の式で示される。3種類の式のうち1種類目は、式(3)のように示される。
γは、0≦γ<1の定数である。
γの値によって、制御対象機器900と障害物とが接触しないための、制御対象機器900と障害物との間隔の余裕分をどれだけ見込むか調整できる。
通常、制御対象機器900と障害物とは接触しておらず、B(x)が、制御対象機器900と障害物との距離を示す。制御対象機器900が障害物に接近してΔB(x,u)が負の値をとるとき、ΔB(x,u)の大きさがγB(x)以下である場合に式(3)が成り立つ。
γの値によって、制御対象機器900と障害物とが接触しないための、制御対象機器900と障害物との間隔の余裕分をどれだけ見込むか調整できる。
通常、制御対象機器900と障害物とは接触しておらず、B(x)が、制御対象機器900と障害物との距離を示す。制御対象機器900が障害物に接近してΔB(x,u)が負の値をとるとき、ΔB(x,u)の大きさがγB(x)以下である場合に式(3)が成り立つ。
このことから、B(x)で示される制御対象機器900と障害物との距離のうち、(1-γ)B(x)の分は、制御対象機器900と障害物とが接触しないための余裕分として、制御対象機器900の動作可能範囲から除外されているといえる。γの値を大きく設定するほど、制御対象機器900の動作可能範囲が広がる。一方、γの値を小さく設定するほど、制御対象機器900と障害物とが接触しないための余裕分を大きくとることになり、例えば予期しない外力によって制御対象機器900が障害物のほうへ押された場合でも、制御対象機器900が障害物にぶつかりにくい。
式(3)に示されるように、回避指令値演算部396は、干渉関数値、および、干渉関数値の経時変化を示す値を用いて回避指令値を求める。
複数の障害物が存在する場合、障害物毎に式(3)の制約条件を設けることができる。これにより、障害物回避制御装置400は、制御対象機器900が障害物全体に接触しないよう制御することができる。あるいは、複数の障害物をまとめたものに対して干渉関数を設計してもよい。
複数の障害物が存在する場合、障害物毎に式(3)の制約条件を設けることができる。これにより、障害物回避制御装置400は、制御対象機器900が障害物全体に接触しないよう制御することができる。あるいは、複数の障害物をまとめたものに対して干渉関数を設計してもよい。
式(3)は、制御対象機器900が今回の制御ステップで障害物に接触していなければ、次の制御ステップでも障害物に接触しないことの十分条件を示す。この点について説明する。
今回の制御ステップをtで示し、制御ステップtの次の制御ステップをt+1で示す。制御ステップtにおける干渉関数値をB(xt)と表記する。
制御ステップt+1における干渉関数値をB(xt+1)と表記する。B(xt+1)からB(xt)を減算した差分を、ΔB(xt,ut)と表記する。ΔB(xt,ut)は、式(4)のように示される。
今回の制御ステップをtで示し、制御ステップtの次の制御ステップをt+1で示す。制御ステップtにおける干渉関数値をB(xt)と表記する。
制御ステップt+1における干渉関数値をB(xt+1)と表記する。B(xt+1)からB(xt)を減算した差分を、ΔB(xt,ut)と表記する。ΔB(xt,ut)は、式(4)のように示される。
また、式(3)より式(5)を得られる。
式(4)および式(5)より式(6)を得られる。
0≦γ<1なので、Bt(x)>0の場合、Bt(x)-γBt(x)≧0であり、Bt+1(x)>0である。従って、制御ステップtで制御対象機器900の位置が障害物の外部にあれば、制御ステップt+1でも制御対象機器900の位置は障害物の外部にある。
全ての制御ステップで式(3)を満たすように最適化問題を解くことで、次の制御ステップだけではなく、次以降の全ての制御ステップで制御対象機器900が障害物と接触しないように制御できる。
全ての制御ステップで式(3)を満たすように最適化問題を解くことで、次の制御ステップだけではなく、次以降の全ての制御ステップで制御対象機器900が障害物と接触しないように制御できる。
回避指令値演算部396が解く最小化問題における制約条件を示す3種類の式のうち2種類目は、式(7)のように示される。
ui(iは、1≦i≦Nの整数)は、例えば、制御対象機器900の関節毎など、制御対象機器900の可動部分毎の制御指令値を示すスカラ値である。Nは、制御対象機器900の可動部分の個数を示す。iは、可動部分を識別する識別番号である。
識別番号iで識別される可動部分をi番目の可動部分と表記する。従って、uiは、i番目の可動部分に対する制御指令値である。
識別番号iで識別される可動部分をi番目の可動部分と表記する。従って、uiは、i番目の可動部分に対する制御指令値である。
ui_min、ui_maxは、それぞれ、制御対象機器900の仕様により予め定められている、uiの下限値、上限値である。
式(7)は、いずれの制御指令値も、可動部分の仕様により規定される上下限値の範囲内で設定されるという制約条件を示している。可動部分の仕様は、例えば、その可動部分に用いられているアクチュエータの仕様により規定される。
制御指令値uは、ui(i=1,2,・・・,N)を纏めてベクトルで表したものである。
制御指令値uは、ui(i=1,2,・・・,N)を纏めてベクトルで表したものである。
回避指令値演算部396が解く最小化問題における制約条件を示す3種類の式のうち3種類目は、式(8)のように示される。
ΔVはリアプノフ関数値の変化量を示す。リアプノフ関数Vは、機械学習部392が行う機械学習によって求まる。但し、制御装置300が用いる制御関数はリアプノフ関数に限定されない。
「d」は、制約条件を緩和して解を得易くするために設けられている。
d=0として解を得られた場合、その解は、制御対象機器900に設定される目標を厳密に達成するための制御指令値である。一方、d=0の場合、解をピンポイントで探索することになり、解を得られないことが懸念される。
そこで、d≧0とすることで、制御指令値に基づく制御対象機器900の動作結果と目標とのずれを許容して、解の探索範囲を広げることができる。以下では、制御対象機器900の動作結果と目標とのずれを誤差と称する。「d」の値が大きくなるほど、許容する誤差が大きくなり、解を得易くなる。
「d」は、制約条件を緩和して解を得易くするために設けられている。
d=0として解を得られた場合、その解は、制御対象機器900に設定される目標を厳密に達成するための制御指令値である。一方、d=0の場合、解をピンポイントで探索することになり、解を得られないことが懸念される。
そこで、d≧0とすることで、制御指令値に基づく制御対象機器900の動作結果と目標とのずれを許容して、解の探索範囲を広げることができる。以下では、制御対象機器900の動作結果と目標とのずれを誤差と称する。「d」の値が大きくなるほど、許容する誤差が大きくなり、解を得易くなる。
回避指令値演算部396が解く最適化問題における評価関数(目的関数とも称される)は、式(9)のように示される。
「u*」は、この最適化問題の解となる制御指令値を示す。「argmin」は、引数の値を最小化する関数である。式(3)の場合、「argmin」は、引数「uTPu+p・d2」を最小化するような、制御指令値uを関数値とする。
ベクトルまたは行列に上付の「T」は、ベクトルまたは行列の転置を示す。
制御指令値を示すu*およびuのデータ形式は、同じ次元のベクトルであるとする。これらのベクトルの次元数は、制御装置300が制御対象機器900へ送信する制御指令値の次元数と同じとする。
ベクトルまたは行列に上付の「T」は、ベクトルまたは行列の転置を示す。
制御指令値を示すu*およびuのデータ形式は、同じ次元のベクトルであるとする。これらのベクトルの次元数は、制御装置300が制御対象機器900へ送信する制御指令値の次元数と同じとする。
「P」は、「u*」の次元数と同じ行数および列数を有する任意の正定値行列とすることができる。例えば、「P」として単位行列を用いると、制御対象機器900が無駄な動作をしないよう、制御指令値の大きさをなるべく小さくすることができる。
式9の「p・d2」の項は、式(8)における「d」の大きさを評価するための項である。「p・d2」の「p」は、「uTu」と「d2」の重み付けを調整するための重みを示す。「p」は、例えばp>0の定数として設定される。
この最適化問題の解の候補が2つ検出された場合、2つの解の候補の「uTu」の項の値が同じであれば、「p・d2」の項の値が小さい方が最適化として採用される。
式(9)は、評価関数の例に該当する。式(9)における最小解となる制御指令値uは、制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値の例に該当する。
この最適化問題の解の候補が2つ検出された場合、2つの解の候補の「uTu」の項の値が同じであれば、「p・d2」の項の値が小さい方が最適化として採用される。
式(9)は、評価関数の例に該当する。式(9)における最小解となる制御指令値uは、制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値の例に該当する。
機械学習部392は、制御対象機器900に対する制御を学習する。具体的には、パラメータ値更新部393が、報酬値演算部291が算出する報酬値に基づいて制御パラメータ値を更新することで、制御パラメータ値を機械学習する。安定性判定部394は、リアプノフ関数を用いて制御の安定性を判定し、パラメータ値更新部393は、制御が安定するようにパラメータ値を更新する。
ここで、Wを正定なダイアゴナル行列として、リアプノフ関数Vは式(10)のように示される。
ここで、Wを正定なダイアゴナル行列として、リアプノフ関数Vは式(10)のように示される。
Wの対角要素が制御パラメータの例に該当し、機械学習部392は、報酬値が最大となる制御パラメータ値を機械学習する。機械学習部392が機械学習で制御パラメータ値を設定することで、リアプノフ関数が得られる。
ここで、制御指令値u*は、式(11)のように示される。
ここで、制御指令値u*は、式(11)のように示される。
θは制御パラメータを示す。
また、上記の最適化演算でu*の算出に用いられるΔB(x,u)には、制御対象機器900の動的モデルを示しているといえる。このことから、機械学習部392は、ポリシーπをモデルベースで学習しているといえる。
パラメータ値更新部393が制御パラメータ値を探索する方法として、例えばベイズ最適化などの最適化ベースの方法、または、実験計画法など、公知の方法を用いることができる。
機械学習部392が行う機械学習で、制御対象機器900の動作のシミュレーションを併用することで、学習速度の向上を図るようにしてもよい。
また、上記の最適化演算でu*の算出に用いられるΔB(x,u)には、制御対象機器900の動的モデルを示しているといえる。このことから、機械学習部392は、ポリシーπをモデルベースで学習しているといえる。
パラメータ値更新部393が制御パラメータ値を探索する方法として、例えばベイズ最適化などの最適化ベースの方法、または、実験計画法など、公知の方法を用いることができる。
機械学習部392が行う機械学習で、制御対象機器900の動作のシミュレーションを併用することで、学習速度の向上を図るようにしてもよい。
制御装置300が、機械学習の際に制御パラメータ値だけでなく、リアプノフ関数等の制御関数も更新するようにしてもよい。例えば、制御関数記憶部382が別々の構造の複数のリアプノフ関数を予め記憶しておくようにしてもよい。制御がうまくいかない場合(例えば、図6のステップS213で、安定性判定部394が所定の条件以上に制御が安定しないと判定した場合)、機械学習部392が、式(10)のリアプノフ関数を他のリアプノフ関数に置き換えるようにしてもよい。それに伴い、回避指令値演算部396も、式(8)のリアプノフ関数を式(10)のリアプノフ関数と同じリアプノフ関数に置き換える。
このように、機械学習部392と回避指令値演算部396とが制御関数を共通で切り替えて使用することで、機械学習部392による機械学習の結果を制御パラメータ値だけでなく制御関数にも反映させることができる。これにより、機器制御部395による制御対象機器900の制御の安定化など、制御の向上を図ることができる。
このように、機械学習部392と回避指令値演算部396とが制御関数を共通で切り替えて使用することで、機械学習部392による機械学習の結果を制御パラメータ値だけでなく制御関数にも反映させることができる。これにより、機器制御部395による制御対象機器900の制御の安定化など、制御の向上を図ることができる。
図4は、制御システム1におけるデータの流れの例を示す図である。図4では、障害物に符号950を付している。障害物950は、上記で説明した障害物と同様である。
情報取得装置100は、制御対象機器900のセンサのセンシングデータなど、制御対象機器900に関する観測データ、および、障害物950の撮像画像など障害物950に関する観測データを取得する。
情報取得装置100は、制御対象機器900のセンサのセンシングデータなど、制御対象機器900に関する観測データ、および、障害物950の撮像画像など障害物950に関する観測データを取得する。
情報取得装置100は、制御対象機器900に関する観測データに基づいて、制御対象機器900の状態情報を生成する。具体的には、情報取得装置100は、制御対象機器900の位置情報、および、制御対象機器900の動作を示す情報を生成する。情報取得装置100は、生成した制御対象機器900の状態情報を、報酬値演算装置200および制御装置300へ送信する。
また、情報取得装置100は、障害物950に関する観測データに基づいて、障害物950の状態情報を生成する。具体的には、情報取得装置100は、障害物950の位置情報を生成する。障害物950が動く場合、情報取得装置100は、障害物950の位置情報に加えて、障害物950の動作を示す情報を生成する。情報取得装置100は、生成した障害物950の状態情報を、制御装置300へ送信する。
報酬値演算装置200の報酬値演算部291は、制御対象機器900の状態情報に基づいて報酬値を算出する。報酬値演算部291は、算出した報酬値を、第1通信部210を介して制御装置300へ送信する。
制御装置300の干渉関数演算部391は、制御対象機器900の状態情報および障害物950の状態情報に基づいて、干渉関数値B(x)を算出する。
具体的には、干渉関数演算部391は、障害物950の状態情報に基づいて干渉関数を求め、第2記憶部380に記憶させておく。そして、干渉関数演算部391は、制御対象機器の状態情報xを干渉関数に入力して、干渉関数値を算出する。
制御装置300の干渉関数演算部391は、制御対象機器900の状態情報および障害物950の状態情報に基づいて、干渉関数値B(x)を算出する。
具体的には、干渉関数演算部391は、障害物950の状態情報に基づいて干渉関数を求め、第2記憶部380に記憶させておく。そして、干渉関数演算部391は、制御対象機器の状態情報xを干渉関数に入力して、干渉関数値を算出する。
また、干渉関数演算部391は、機器制御部395が制御指令値を算出するために最適化問題を解く際、制御ステップ間におけるB(x)の変化量ΔB(x,u)を算出する。干渉関数演算部391は、制御対象機器900の状態情報および障害物950の状態情報に加えて、最適化問題の解の候補となる制御指令値uに基づいて、干渉関数値の変化量ΔB(x,u)を算出する。
干渉関数演算部391が干渉関数値の変化量ΔB(x,u)を算出するために、例えば、第2記憶部380が、制御対象機器900の動的モデルを記憶しておく。干渉関数演算部391は、この動的モデルを用いて、干渉関数値の変化量の予測値を算出し、干渉関数値の変化量の現在値との差分を算出することで、干渉関数値の変化量を算出する。
干渉関数演算部391は、干渉関数値B(x)および干渉関数値の変化量ΔB(x、u)を、機器制御部395へ出力する。
干渉関数演算部391は、干渉関数値B(x)および干渉関数値の変化量ΔB(x、u)を、機器制御部395へ出力する。
制御装置300の機械学習部392は、制御対象機器900の状態情報、および、報酬値に基づいて機械学習を行って制御パラメータ値を算出する。
制御装置300の機器制御部395は、機械学習部392が算出する制御パラメータ値を反映させた最適化問題を解くことで、制御対象機器900に対する制御指令値を算出する。機器制御部395は、算出した制御指令値を、第2通信部310を介して制御対象機器900へ送信する。
制御装置300の機器制御部395は、機械学習部392が算出する制御パラメータ値を反映させた最適化問題を解くことで、制御対象機器900に対する制御指令値を算出する。機器制御部395は、算出した制御指令値を、第2通信部310を介して制御対象機器900へ送信する。
図5および図6を参照して、制御装置300の動作について説明する。
図5は、制御装置300が制御対象機器900に対する制御指令値を取得する処理手順の例を示すフローチャートである。制御装置300は、1回の制御ステップで図5のループを1回実行する。
図5の処理で、回避指令値演算部396は、機械学習部392が算出した制御パラメータ値を最適化問題に反映させる(ステップS111)。具体的には、回避指令値演算部396は、上記の式(10)で得られるリアプノフ関数を最適化問題に適用する。
図5は、制御装置300が制御対象機器900に対する制御指令値を取得する処理手順の例を示すフローチャートである。制御装置300は、1回の制御ステップで図5のループを1回実行する。
図5の処理で、回避指令値演算部396は、機械学習部392が算出した制御パラメータ値を最適化問題に反映させる(ステップS111)。具体的には、回避指令値演算部396は、上記の式(10)で得られるリアプノフ関数を最適化問題に適用する。
次に、回避指令値演算部396は、最適化問題の演算を行う(ステップS112)。そして、回避指令値演算部396は、最適化問題の解を得られたか否かを判定する(ステップS113)。
解を得られたと判定した場合(ステップS113:YES)、回避指令値演算部396は、u=u*と算出する(ステップS121)。すなわち、回避指令値演算部396は、最適化問題を解いて得られた制御指令値を、制御対象機器900へ送信する制御指令値に決定する。
そして、第2通信部310が、制御指令値を制御対象機器900へ送信する(ステップS141)。
ステップS141の後、処理がステップS111へ戻る。
解を得られたと判定した場合(ステップS113:YES)、回避指令値演算部396は、u=u*と算出する(ステップS121)。すなわち、回避指令値演算部396は、最適化問題を解いて得られた制御指令値を、制御対象機器900へ送信する制御指令値に決定する。
そして、第2通信部310が、制御指令値を制御対象機器900へ送信する(ステップS141)。
ステップS141の後、処理がステップS111へ戻る。
一方、ステップS113の判定で解を得られなかったと判定した場合(ステップS113:NO)、回避指令値演算部396は、制御対象機器900へ送信する制御指令値として、制御対象機器900を減速させる制御指令値を生成する。
ステップS131の後、処理がステップS14へ進む。
ステップS131の後、処理がステップS14へ進む。
図6は、機械学習部392が制御対象機器900に対する制御を機械学習する処理手順の例を示す図である。機械学習部392は、機械学習の終了条件が成立したと判定するまで、回避指令値演算部396が行う図5の処理の前処理として、1回の制御ステップで、ステップS211からS214のループを1回実行する。
図6の処理で、機械学習部392は、報酬値演算部291が算出する報酬値を取得する(ステップS211)。
図6の処理で、機械学習部392は、報酬値演算部291が算出する報酬値を取得する(ステップS211)。
そして、パラメータ値更新部393は、取得した報酬値、および、制御対象機器900の状態情報に基づいて、制御パラメータ値を更新する(ステップS212)。上述したように、ステップS212での解としての制御パラメータ値の探索方法として、公知の方法を用いることができる。
次に、安定性判定部394は、ステップS212で得られたパラメータ値で制御が安定するか否かを判定する(ステップS213)。ステップS213での判定方法として、公知の判定方法を用いることができる。
制御が安定していないと安定性判定部394が判定した場合(ステップS213:NO)、処理がステップS212へ戻る。
次に、安定性判定部394は、ステップS212で得られたパラメータ値で制御が安定するか否かを判定する(ステップS213)。ステップS213での判定方法として、公知の判定方法を用いることができる。
制御が安定していないと安定性判定部394が判定した場合(ステップS213:NO)、処理がステップS212へ戻る。
一方、制御が安定すると安定性判定部394が判定した場合(ステップS213:YES)、機械学習部392は、所定の学習終了条件が成立しているか否かを判定する(ステップS214)。安定性判定部394は、例えば、前回の制御パラメータ値と今回の制御パラメータ値とを比較して、制御パラメータ値の変化量の大きさが所定の大きさ以下であることを学習終了条件とする。この場合の学習終了条件は、式(12)のように示される。
||Δθ||は、制御パラメータ値の変化量Δθのノルムを示す。制御パラメータ値の変化量のノルムは、制御パラメータ値の変化量の大きさの例に該当する。
αは、正の定数の閾値である。
学習終了条件が成立していないと機械学習部392が判定した場合(ステップS214:NO)、処理がステップS211へ戻る。
一方、学習終了条件が成立していると機械学習部392が判定した場合(ステップS214:YES)、制御装置300は図6の処理を終了する。
αは、正の定数の閾値である。
学習終了条件が成立していないと機械学習部392が判定した場合(ステップS214:NO)、処理がステップS211へ戻る。
一方、学習終了条件が成立していると機械学習部392が判定した場合(ステップS214:YES)、制御装置300は図6の処理を終了する。
以上のように、機械学習部392は、制御対象機器900の動作の制御を機械学習する。回避指令値演算部396は、制御対象機器900に対する制御指令値であって、制御対象機器900が障害物に接触しないための十分条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求める。機器制御部395は、回避指令値に基づいて、制御対象機器900を制御する。また、機械学習部392の機械学習で得られるパラメータ値が、評価関数および制約条件のうち少なくとも何れか一方に反映される。
制御装置300では、制御対象機器900が障害物に接触しないための条件を含む制約条件を満たす制御指令値を求めることで、制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができる。制御装置300によれば、この点で、制御対象機器と障害物とが比較的近い場合でも、制御対象機器が障害物に接触することを回避する動作の影響を比較的小さくできる、あるいは、影響を無くせることが期待される。
また、機械学習部392は、制御対象機器900の制御を学習する際、制御対象機器900と障害物との接触を考慮する必要が無い。制御装置300によれば、この点で、機械学習部392が解を探索する負荷が軽くて済み、解を求める処理の時間が比較的短くて済むと期待される。
また、機械学習部392は、制御対象機器900の制御を学習する際、制御対象機器900と障害物との接触を考慮する必要が無い。制御装置300によれば、この点で、機械学習部392が解を探索する負荷が軽くて済み、解を求める処理の時間が比較的短くて済むと期待される。
また、回避指令値演算部396は、制御対象機器900に設定された目標を達成するための条件であって、パラメータ値が反映された条件を含む制約条件を用いる。具体的には、回避指令値演算部396は、制御パラメータ値が反映された制御関数を含む制約条件を用いる。
制御装置300では、機械学習にてパラメータ値を更新することで目標達成の精度の向上が期待され、かつ、制御対象機器900が障害物に接触しないための条件により、機械学習が進んでいない段階でも、制御対象機器900が障害物に接触することを回避できると期待される。
制御装置300では、機械学習にてパラメータ値を更新することで目標達成の精度の向上が期待され、かつ、制御対象機器900が障害物に接触しないための条件により、機械学習が進んでいない段階でも、制御対象機器900が障害物に接触することを回避できると期待される。
また、制御関数記憶部382は、機械学習部392によるパラメータ値の取得と、回避指令値演算部396による回避指令値の取得とに共通で用いられる制御関数を複数記憶する。機械学習部392および回避指令値演算部396は、制御関数記憶部382が記憶する制御関数のうち何れかを共通で切り替えて使用する。
このように、機械学習部392と回避指令値演算部396とが制御関数を共通で切り替えて使用することで、機械学習部392による機械学習の結果を制御パラメータ値だけでなく制御関数にも反映させることができる。これにより、機器制御部395による制御対象機器900の制御の安定化など、制御の向上を図ることができる。
このように、機械学習部392と回避指令値演算部396とが制御関数を共通で切り替えて使用することで、機械学習部392による機械学習の結果を制御パラメータ値だけでなく制御関数にも反映させることができる。これにより、機器制御部395による制御対象機器900の制御の安定化など、制御の向上を図ることができる。
<第2実施形態>
第2実施形態では、制御装置が制御指令値の算出に用いる最適化問題のもう1つの例について説明する。
図7は、第2実施形態に係る制御装置300の機能構成の例を示す概略ブロック図である。図7に示す構成で、制御装置300は、第2通信部310と、第2記憶部380と、第2制御部390とを備える。第2記憶部380は、干渉関数記憶部381と、制御関数記憶部382と、パラメータ値記憶部383とを備える。第2制御部390は、干渉関数演算部391と、機械学習部392と、機器制御部395とを備える。機械学習部392は、パラメータ値更新部393と、安定性判定部394とを備える。機器制御部395は、回避指令値演算部396と、ノミナル(Nominal)指令値演算部397とを備える。
第2実施形態では、制御装置が制御指令値の算出に用いる最適化問題のもう1つの例について説明する。
図7は、第2実施形態に係る制御装置300の機能構成の例を示す概略ブロック図である。図7に示す構成で、制御装置300は、第2通信部310と、第2記憶部380と、第2制御部390とを備える。第2記憶部380は、干渉関数記憶部381と、制御関数記憶部382と、パラメータ値記憶部383とを備える。第2制御部390は、干渉関数演算部391と、機械学習部392と、機器制御部395とを備える。機械学習部392は、パラメータ値更新部393と、安定性判定部394とを備える。機器制御部395は、回避指令値演算部396と、ノミナル(Nominal)指令値演算部397とを備える。
図7に示す制御装置300では、回避指令値演算部396が用いる最適化問題が、図3に示す第1実施形態の場合と異なる。それに伴い、図7に示す制御装置300では、機器制御部395がノミナル指令値演算部397を備えている点が、図3に示す第1実施形態の場合と異なる。それ以外の点では、図7に示す制御装置300は、図3に示す第1実施形態の場合と同様である。
第2実施形態に係る制御システムは、上記の点以外は、第1実施形態の場合と同様である。第2実施形態に係る制御システムについて、第1実施形態の場合と同様の点の説明を省略し、必要に応じて図1に示す符号、および、図2に示す符号を引用する。
第2実施形態に係る制御システムは、上記の点以外は、第1実施形態の場合と同様である。第2実施形態に係る制御システムについて、第1実施形態の場合と同様の点の説明を省略し、必要に応じて図1に示す符号、および、図2に示す符号を引用する。
ノミナル指令値演算部397は、ノミナル指令値を算出する。ノミナル指令値は、制御対象機器900による障害物回避を考慮しない場合の、制御対象機器900に対する制御指令値である。すなわち、ノミナル指令値は、障害物が無いとの仮定の下で、制御対象機器900に設定された目標を達成するための、制御対象機器900に対する制御指令値である。
ノミナル指令値演算部397がノミナル指令値を算出するための制御方法は特定のものに限定されず、公知のいろいろな制御方法を用いることができる。
ノミナル指令値演算部397が算出するノミナル指令値は、回避指令値演算部396が、制御対象機器900に対して指示する制御指令値(すなわち、実際に用いられる制御指令値)を取得するための基準となる制御指令値として用いられる。
ノミナル指令値演算部397が算出するノミナル指令値は、回避指令値演算部396が、制御対象機器900に対して指示する制御指令値(すなわち、実際に用いられる制御指令値)を取得するための基準となる制御指令値として用いられる。
ノミナル指令値を算出するための関数が、制御関数の例に該当する。ノミナル指令値を算出するための関数をノミナル関数と称する。
ノミナル指令値演算部397は、機械学習部392が算出する制御パラメータ値をノミナル関数に反映させ、反映後のノミナル関数を用いてノミナル指令値を算出する。
ノミナル指令値演算部397は、機械学習部392が算出する制御パラメータ値をノミナル関数に反映させ、反映後のノミナル関数を用いてノミナル指令値を算出する。
回避指令値演算部396が制御指令値の算出に用いる最適化問題の制約条件は、第1実施形態の場合と同様であり、式(3)、式(7)および式(8)のように示される。
一方、回避指令値演算部396が制御指令値の算出に用いる最適化問題の評価関数は、第1実施形態の場合と異なり、式(13)のように示される。
一方、回避指令値演算部396が制御指令値の算出に用いる最適化問題の評価関数は、第1実施形態の場合と異なり、式(13)のように示される。
第1実施形態の場合と同様、「u*」は、この最適化問題の解となる制御指令値を示す。
上述したように、「argmin」は、引数の値を最小化する関数である。式(13)の場合、「argmin」は、引数「(u-ur)T(u-ur)」を最小化するような、uの値を関数値とする。
「ur」は、ノミナル指令値演算部397からのノミナル指令値を示す。
上述したように、「argmin」は、引数の値を最小化する関数である。式(13)の場合、「argmin」は、引数「(u-ur)T(u-ur)」を最小化するような、uの値を関数値とする。
「ur」は、ノミナル指令値演算部397からのノミナル指令値を示す。
式(13)は、制約条件の下で、ノミナル指令値urになるべく近い制御指令値を求めることを示している。ノミナル指令値urは、制御対象機器900に設定されている目的を制御対象機器900に実行させるように算出された指令値なので、ノミナル指令値urに近い指令値を求めることで、制御対象機器900に設定されている目的を制御対象機器900に実行させることができると期待される。
urのデータ形式は、上述したu*およびuの場合と同じ次元のベクトルであるとする。これらのベクトルの次元数は、制御装置300が制御対象機器900へ送信する制御指令値の次元数と同じとする。
urのデータ形式は、上述したu*およびuの場合と同じ次元のベクトルであるとする。これらのベクトルの次元数は、制御装置300が制御対象機器900へ送信する制御指令値の次元数と同じとする。
図8は、第2実施形態に係る制御システム1におけるデータの流れの例を示す図である。図8の例では、機器制御部395の回避指令値演算部396が明示されている点、および、機器制御部395がノミナル指令値演算部397を備える点が図4の場合と異なる。機械学習部392が算出した制御パラメータ値がノミナル指令値演算部397に入力され、ノミナル指令値演算部397は、制御パラメータ値を反映されたノミナル関数を用いてノミナル指令値を算出する。ノミナル指令値演算部397は、算出したノミナル指令値を回避指令値演算部396へ出力する。回避指令値演算部396は、ノミナル指令値を最適化問題の評価関数に用いる。
それ以外の点については、図8の例は、図4の場合と同様である。
それ以外の点については、図8の例は、図4の場合と同様である。
以上のように、回避指令値演算部396は、制御指令値を算出する最適化問題の評価関数として、機械学習部392が算出したパラメータ値を用いて求められるノミナル指令値との相違が小さい制御指令値ほど高く評価する評価関数を用いる。
制御装置300では、この評価関数を用いることで、制御対象機器900に設定されている目的を制御対象機器900に実行させることができると期待される。そして、制御装置300では、評価関数のノミナル指令値にパラメータ値が反映されることで、機械学習部392の学習結果を制御指令値に反映させることができる。
制御装置300では、この評価関数を用いることで、制御対象機器900に設定されている目的を制御対象機器900に実行させることができると期待される。そして、制御装置300では、評価関数のノミナル指令値にパラメータ値が反映されることで、機械学習部392の学習結果を制御指令値に反映させることができる。
<第3実施形態>
図9は、第3実施形態に係る制御装置の構成の例を示す図である。図9に示す制御装置10は、機械学習部11と、回避指令値演算部12と、機器制御部13とを備える。
かかる構成で、機械学習部11は、制御対象機器の動作の制御を機械学習する。回避指令値演算部12は、回避指令値を求める。回避指令値は、制御対象機器に対する制御指令値であって、制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である。機器制御部13は、回避指令値に基づいて、制御対象機器を制御する。また、機械学習部11の機械学習で得られるパラメータ値が、評価関数および制約条件のうち少なくとも何れか一方に反映される。
図9は、第3実施形態に係る制御装置の構成の例を示す図である。図9に示す制御装置10は、機械学習部11と、回避指令値演算部12と、機器制御部13とを備える。
かかる構成で、機械学習部11は、制御対象機器の動作の制御を機械学習する。回避指令値演算部12は、回避指令値を求める。回避指令値は、制御対象機器に対する制御指令値であって、制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である。機器制御部13は、回避指令値に基づいて、制御対象機器を制御する。また、機械学習部11の機械学習で得られるパラメータ値が、評価関数および制約条件のうち少なくとも何れか一方に反映される。
制御装置10では、制御対象機器が障害物に接触しないための条件を含む制約条件を満たす制御指令値を求めることで、制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができる。制御装置10によれば、この点で、制御対象機器と障害物とが比較的近い場合でも、制御対象機器が障害物に接触することを回避する動作の影響を比較的小さくできる、あるいは、影響を無くせることが期待される。
また、機械学習部11は、制御対象機器の制御を学習する際、制御対象機器と障害物との接触を考慮する必要が無い。制御装置10によれば、この点で、機械学習部11が解を探索する負荷が軽くて済み、解を求める処理の時間が比較的短くて済むと期待される。
また、機械学習部11は、制御対象機器の制御を学習する際、制御対象機器と障害物との接触を考慮する必要が無い。制御装置10によれば、この点で、機械学習部11が解を探索する負荷が軽くて済み、解を求める処理の時間が比較的短くて済むと期待される。
<第4実施形態>
図10は、第4実施形態に係る制御方法における処理の手順の例を示す図である。図10に示す制御方法では、制御対象機器の動作の制御を機械学習し(ステップS11)、制御対象機器に対する制御指令値であって、制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求め(ステップS12)、回避指令値に基づいて、制御対象機器を制御する(ステップS13)。また、ステップS11での機械学習で得られるパラメータ値が、評価関数および制約条件のうち少なくとも何れか一方に反映される。
図10は、第4実施形態に係る制御方法における処理の手順の例を示す図である。図10に示す制御方法では、制御対象機器の動作の制御を機械学習し(ステップS11)、制御対象機器に対する制御指令値であって、制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求め(ステップS12)、回避指令値に基づいて、制御対象機器を制御する(ステップS13)。また、ステップS11での機械学習で得られるパラメータ値が、評価関数および制約条件のうち少なくとも何れか一方に反映される。
この制御方法では、制御対象機器が障害物に接触しないための条件を含む制約条件を満たす制御指令値を求めることで、制御対象機器が障害物に接触するか否かの判定結果を制御指令値に反映させることができる。この制御方法では、この点で、制御対象機器と障害物とが比較的近い場合でも、制御対象機器が障害物に接触することを回避する動作の影響を比較的小さくできる、あるいは、影響を無くせることが期待される。
また、ステップS11で、制御対象機器の制御を学習する際、制御対象機器と障害物との接触を考慮する必要が無い。この制御方法によれば、この点で、ステップS11で解を探索する負荷が軽くて済み、解を求める処理の時間が比較的短くて済むと期待される。
また、ステップS11で、制御対象機器の制御を学習する際、制御対象機器と障害物との接触を考慮する必要が無い。この制御方法によれば、この点で、ステップS11で解を探索する負荷が軽くて済み、解を求める処理の時間が比較的短くて済むと期待される。
図11は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図20に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。
上記の情報取得装置100、報酬値演算装置200、および、制御装置300のうち何れか1つ以上が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
図20に示す構成で、コンピュータ700は、CPU710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。
上記の情報取得装置100、報酬値演算装置200、および、制御装置300のうち何れか1つ以上が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。各装置と他の装置との通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
報酬値演算装置200がコンピュータ700に実装される場合、第1制御部290およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
また、CPU710は、プログラムに従って、第1記憶部280に対応する記憶領域を主記憶装置720に確保する。第1通信部210が行う通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
また、CPU710は、プログラムに従って、第1記憶部280に対応する記憶領域を主記憶装置720に確保する。第1通信部210が行う通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
制御装置300がコンピュータ700に実装される場合、第2制御部390およびその各部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。
また、CPU710は、プログラムに従って、第2記憶部380およびその各部に対応する記憶領域を主記憶装置720に確保する。第2通信部310が行う通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
また、CPU710は、プログラムに従って、第2記憶部380およびその各部に対応する記憶領域を主記憶装置720に確保する。第2通信部310が行う通信は、インタフェース740が通信機能を有し、CPU710の制御に従って通信を行うことで実行される。
なお、情報取得装置100、報酬値演算装置200、および、制御装置300の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。ここでいう「コンピュータシステム」とは、OS(オペレーティングシステム)や周辺機器等のハードウェアを含む。
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
本発明の実施形態は、制御装置、制御方法および記録媒体に適用してもよい。
1 制御システム
10、300 制御装置
11、392 機械学習部
12、396 回避指令値演算部
13、395 機器制御部
100 情報取得装置
200 報酬値演算装置
210 第1通信部
280 第1記憶部
281 報酬関数記憶部
290 第1制御部
291 報酬値演算部
310 第2通信部
380 第2記憶部
381 干渉関数記憶部
382 制御関数記憶部
383 パラメータ値記憶部
390 第2制御部
391 干渉関数演算部
393 パラメータ値更新部
394 安定性判定部
397 ノミナル指令値演算部
10、300 制御装置
11、392 機械学習部
12、396 回避指令値演算部
13、395 機器制御部
100 情報取得装置
200 報酬値演算装置
210 第1通信部
280 第1記憶部
281 報酬関数記憶部
290 第1制御部
291 報酬値演算部
310 第2通信部
380 第2記憶部
381 干渉関数記憶部
382 制御関数記憶部
383 パラメータ値記憶部
390 第2制御部
391 干渉関数演算部
393 パラメータ値更新部
394 安定性判定部
397 ノミナル指令値演算部
Claims (6)
- 制御対象機器の動作の制御を機械学習する機械学習部と、
前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求める回避指令値演算部と、
前記回避指令値に基づいて、前記制御対象機器を制御する機器制御部と、
を備え、
前記機械学習部の機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映される、
制御装置。 - 前記機械学習部によるパラメータ値の取得と、前記回避指令値演算部による回避指令値の取得とに共通で用いられる制御関数を複数記憶する制御関数記憶部をさらに備え、
前記機械学習部および前記回避指令値演算部は、前記制御関数記憶部が記憶する制御関数のうち何れかを共通で切り替えて使用する、
請求項1に記載の制御装置。 - 前記回避指令値演算部は、前記制御対象機器に設定された目標を達成するための条件であって、前記パラメータ値が反映された条件を含む前記制約条件を用いる、
請求項1または請求項2に記載の制御装置。 - 前記機械学習部は、前記回避指令値演算部が用いる前記評価関数に含まれるノミナル指令値を求めるための制御関数のパラメータ値を前記機械学習で取得する、
請求項1に記載の制御装置。 - 制御対象機器の動作の制御を機械学習する工程と、
前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための十分条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求める工程と、
前記回避指令値に基づいて、前記制御対象機器を制御する工程と、
を含み、
前記機械学習する工程での機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映される、
制御方法。 - コンピュータに、
制御対象機器の動作の制御を機械学習する工程と、
前記制御対象機器に対する制御指令値であって、前記制御対象機器が障害物に接触しないための十分条件を含む制約条件を満たし、かつ、その制御指令値を評価関数に適用した評価値が所定の終了条件を満たす制御指令値である回避指令値を求める工程と、
前記回避指令値に基づいて、前記制御対象機器を制御する工程と、
を実行させるためのプログラムであって、
前記機械学習する工程での機械学習で得られるパラメータ値が、前記評価関数および前記制約条件のうち少なくとも何れか一方に反映されるプログラムを記録した記録媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/426,270 US20220105632A1 (en) | 2019-01-30 | 2019-01-30 | Control device, control method, and recording medium |
PCT/JP2019/003188 WO2020157863A1 (ja) | 2019-01-30 | 2019-01-30 | 制御装置、制御方法および記録媒体 |
JP2020569235A JP7180696B2 (ja) | 2019-01-30 | 2019-01-30 | 制御装置、制御方法およびプログラム |
EP19912836.4A EP3920000A4 (en) | 2019-01-30 | 2019-01-30 | CONTROL DEVICE, ORDER METHOD AND RECORDING MEDIA |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/003188 WO2020157863A1 (ja) | 2019-01-30 | 2019-01-30 | 制御装置、制御方法および記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020157863A1 true WO2020157863A1 (ja) | 2020-08-06 |
Family
ID=71841469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/003188 WO2020157863A1 (ja) | 2019-01-30 | 2019-01-30 | 制御装置、制御方法および記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220105632A1 (ja) |
EP (1) | EP3920000A4 (ja) |
JP (1) | JP7180696B2 (ja) |
WO (1) | WO2020157863A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023013126A1 (ja) * | 2021-08-02 | 2023-02-09 | ソニーグループ株式会社 | 情報処理装置、学習モデル、及び情報処理方法 |
WO2024095651A1 (ja) * | 2022-11-01 | 2024-05-10 | 日本電気株式会社 | 制御装置、学習装置、制御方法、学習方法および記録媒体 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11874634B2 (en) * | 2018-12-12 | 2024-01-16 | Nippon Telegraph And Telephone Corporation | Multi-device coordination control device, multi-device coordinaton control method, and multi-device coordination control program, and learning device, learning method, and learning program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012208789A (ja) | 2011-03-30 | 2012-10-25 | Advanced Telecommunication Research Institute International | 強化学習装置、制御装置、および強化学習方法 |
JP2018190241A (ja) * | 2017-05-09 | 2018-11-29 | オムロン株式会社 | タスク実行システム、タスク実行方法、並びにその学習装置及び学習方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317651B1 (en) * | 1999-03-26 | 2001-11-13 | Kuka Development Laboratories, Inc. | Trajectory generation system |
US10065313B2 (en) * | 2016-12-07 | 2018-09-04 | Harris Corporation | Robot manipulator system |
CA3027627C (en) * | 2017-07-13 | 2021-08-10 | Beijing Didi Infinity Technology And Development Co., Ltd. | Systems and methods for trajectory determination |
US11256983B2 (en) * | 2017-07-27 | 2022-02-22 | Waymo Llc | Neural networks for vehicle trajectory planning |
US20190318050A1 (en) * | 2018-04-11 | 2019-10-17 | Toyota Research Institute, Inc. | Environmental modification in autonomous simulation |
US11465279B2 (en) * | 2018-11-29 | 2022-10-11 | X Development Llc | Robot base position planning |
-
2019
- 2019-01-30 EP EP19912836.4A patent/EP3920000A4/en active Pending
- 2019-01-30 WO PCT/JP2019/003188 patent/WO2020157863A1/ja unknown
- 2019-01-30 US US17/426,270 patent/US20220105632A1/en active Pending
- 2019-01-30 JP JP2020569235A patent/JP7180696B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012208789A (ja) | 2011-03-30 | 2012-10-25 | Advanced Telecommunication Research Institute International | 強化学習装置、制御装置、および強化学習方法 |
JP2018190241A (ja) * | 2017-05-09 | 2018-11-29 | オムロン株式会社 | タスク実行システム、タスク実行方法、並びにその学習装置及び学習方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3920000A4 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023013126A1 (ja) * | 2021-08-02 | 2023-02-09 | ソニーグループ株式会社 | 情報処理装置、学習モデル、及び情報処理方法 |
WO2024095651A1 (ja) * | 2022-11-01 | 2024-05-10 | 日本電気株式会社 | 制御装置、学習装置、制御方法、学習方法および記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2020157863A1 (ja) | 2021-11-11 |
EP3920000A1 (en) | 2021-12-08 |
US20220105632A1 (en) | 2022-04-07 |
JP7180696B2 (ja) | 2022-11-30 |
EP3920000A4 (en) | 2022-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210325894A1 (en) | Deep reinforcement learning-based techniques for end to end robot navigation | |
WO2020157863A1 (ja) | 制御装置、制御方法および記録媒体 | |
JP5750657B2 (ja) | 強化学習装置、制御装置、および強化学習方法 | |
JP7180695B2 (ja) | 障害物回避制御装置、障害物回避制御システム、障害物回避制御方法およびプログラム | |
EP3622439B1 (en) | Improvements related to generating a robot control policy from demonstrations collected via kinesthetic teaching of a robot | |
Park et al. | Fast and bounded probabilistic collision detection for high-DOF trajectory planning in dynamic environments | |
Lee et al. | Sigma hulls for gaussian belief space planning for imprecise articulated robots amid obstacles | |
Ding et al. | Collision avoidance with proximity servoing for redundant serial robot manipulators | |
JP2006320997A (ja) | ロボット行動選択装置及びロボット行動選択方法 | |
Zhi et al. | Diffco: Autodifferentiable proxy collision detection with multiclass labels for safety-aware trajectory optimization | |
Thrunyz | The dynamic window approach to collision avoidance | |
TW202132071A (zh) | 機器人控制裝置、機器人控制方法以及學習模型產生裝置 | |
Hua et al. | A novel learning-based trajectory generation strategy for a quadrotor | |
JP5079602B2 (ja) | 自律移動ロボットの動作計画装置、方法、プログラム及び記録媒体並びに自律移動ロボットの動作制御装置及び方法 | |
Barnes et al. | Fuzzy control for active perceptual docking | |
Khaksar et al. | Multiquery motion planning in uncertain spaces: Incremental adaptive randomized roadmaps | |
US12017372B2 (en) | Robot control device | |
Syntakas et al. | Uncertainty Estimation of NMPC Horizon employing Neural Networks & MC-dropout in Safety-Critical Applications with Barrier Functions | |
Modugno | Learning Safe Controllers for Motion Generation in Redundant Robots | |
Cai et al. | Deep Reinforcement Learning With Multiple Unrelated Rewards for AGV Mapless Navigation | |
Li et al. | Hybrid Visual Servoing Control for Underwater Vehicle Manipulator Systems With Multiple Cameras | |
Gao | Optimizing Robotic Arm Control Using Deep Q-Learning and Artificial Neural Networks Through Demonstration-Based Methodologies: A Case Study of Dynamic and Static Conditions | |
Zeng et al. | A Novel Uncalibrated Visual Servoing Controller Baesd on Model-Free Adaptive Control Method with Neural Network | |
JP6398777B2 (ja) | ロボット制御装置、制御方法、及び制御プログラム | |
Malone | High-Dimensional Motion Planning and Learning Under Uncertain Conditions |
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: 19912836 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020569235 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2019912836 Country of ref document: EP Effective date: 20210830 |