WO2020003742A1 - 制御装置および制御方法 - Google Patents
制御装置および制御方法 Download PDFInfo
- Publication number
- WO2020003742A1 WO2020003742A1 PCT/JP2019/018281 JP2019018281W WO2020003742A1 WO 2020003742 A1 WO2020003742 A1 WO 2020003742A1 JP 2019018281 W JP2019018281 W JP 2019018281W WO 2020003742 A1 WO2020003742 A1 WO 2020003742A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- control
- time
- control target
- series information
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 63
- 238000012937 correction Methods 0.000 claims abstract description 44
- 230000004048 modification Effects 0.000 claims abstract description 19
- 238000012986 modification Methods 0.000 claims abstract description 19
- 238000001514 detection method Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 53
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 21
- 238000009499 grossing Methods 0.000 description 19
- 230000009471 action Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000010367 cloning Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 241000414697 Tegra Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007562 laser obscuration time method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1653—Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/573—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
-
- 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/10—Programme-controlled manipulators characterised by positioning means for manipulator elements
-
- 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
-
- 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/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
-
- 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0217—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0219—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
Definitions
- the present invention relates to a control device and a control method.
- the log recorded with the operation of the operation target can be reproduced to restart the operation target.
- the re-operation of the operation target by the log reproduction is often used in a limited context. For example, when recording a log on the same left side of an operation target, the operation target is isolated from others so that interference from other objects does not occur, and other objects are prevented from entering the movable range of the operation target. And other measures are taken.
- Re-operation according to the log may take an unexpected operation in an environment other than the limited context related to the log, and there is room for improvement.
- the present disclosure proposes a control device and a control method capable of more appropriately controlling an operation according to a log.
- a control device predicts a control unit that controls an operation of a control target based on first time-series information and a cost associated with achieving a purpose of the control target.
- a predicting unit; and a correcting unit configured to correct an operation based on the first time-series information to be controlled, according to the cost predicted by the predicting unit.
- FIG. 3 is a diagram illustrating a basic configuration of a control system that controls an operation of a control target based on log information.
- FIG. 1 is a diagram illustrating a configuration of an example of a control system applicable to each embodiment of the present disclosure.
- FIG. 3 is a block diagram illustrating a hardware configuration of an example of a control target applicable to the embodiment;
- FIG. 2 is a block diagram illustrating a hardware configuration of an example of a control device applicable to the embodiment.
- FIG. 3 is a functional block diagram illustrating an example of a function of an operation modifying unit according to the first embodiment.
- FIG. 6 is a flowchart illustrating an example of a control process of a control target according to the first embodiment.
- FIG. 1 is a diagram illustrating a configuration of an example of a control system applicable to each embodiment of the present disclosure.
- FIG. 3 is a block diagram illustrating a hardware configuration of an example of a control target applicable to the embodiment;
- FIG. 2 is a block diagram
- FIG. 7 is an example flowchart illustrating an operation modification process according to the first embodiment.
- FIG. 5 is a diagram illustrating an example of log information recorded in a log recording unit, applicable to the first embodiment.
- FIG. 5 is a diagram illustrating an example of log information recorded in a log recording unit, applicable to the first embodiment.
- FIG. 9 is a diagram for explaining the necessity of smoothing processing.
- FIG. 6 is a diagram for describing a smoothing process applicable to the first embodiment.
- the control device predicts a cost of a control target whose operation is controlled based on log information, the cost associated with achieving the purpose of the operation, and corrects the operation based on the log information of the control target according to the predicted cost. I am trying to do it. Therefore, according to the control device according to the present disclosure, the operation of the control target based on the log information can be more appropriately controlled.
- FIG. 1 is a diagram illustrating a basic configuration of a control system that controls an operation of a control target based on log information.
- the control system includes a control device 1a and a log recording unit 2a. Further, the control device 1a includes an operation control unit 11, and controls the operation of the control target 3 in the environment 4.
- the log recording unit 2a stores in advance the data of the motion that the control target 3 wants to operate as log information.
- the log information includes, for example, control data for each unit time corresponding to the operation of the control target 3, and is time-series information indicating the operation of the control target 3 in a time-series manner.
- the operation control unit 11 controls the operation of the control target 3 based on the log information acquired from the log recording unit 2a. More specifically, the operation control unit 11 generates and outputs a control signal for causing the control target 3 to transition from the current state to the next state.
- the control target 3 operates under the environment 4 according to the control signal.
- control target 3 is a robot whose operation is controlled according to a control signal.
- another object for example, another robot or a person coexists and cooperates under the environment 4 in which the control target 3 that operates based on the log information is actually operated.
- control target 3 As an example of the control target 3, consider an arm robot that performs a component assembling operation using a movable arm. In this case, it is common to perform a part assembling operation on the arm robot by using a teaching pendant or the like, and perform the assembling operation by operating the arm robot with a replay motion according to the program in an actual work environment. In this case, unless the arm robot is completely isolated, a collision with another object may occur. Collision problems are unavoidable when working in a multi-robot environment in a small space, or when co-existing and collaborating with humans and other robots.
- FIG. 2 is a diagram illustrating a configuration of an example of a control system applicable to each embodiment of the present disclosure.
- a sensor 5 is added, and in the control device 1b, an operation correcting unit 10 is added to the control device 1a in FIG.
- the sensor 5 includes a detecting unit that detects a state inside the control target 3 and a detecting unit that detects a state outside the control target 3 under the environment 4.
- the detection unit that detects the state inside the control target 3 includes an angle sensor that obtains an angle of each joint, and sequentially detects an operation of the control target 3.
- Motion sensor when the control target 3 is the above-described arm robot, the detection unit that detects the state inside the control target 3 includes an angle sensor that obtains an angle of each joint, and sequentially detects an operation of the control target 3. Motion sensor.
- the detection means for detecting the external state of the control target 3 includes a camera for photographing the periphery of the control target 3 including the control target 3 or the control target 3 including the control target 3 itself.
- a detection unit for detecting an external state a depth sensor for measuring a distance and a temperature sensor for measuring a temperature may be further added.
- log information according to the operation of the control target 3 is recorded in advance.
- the control target 3 is a robot for factory automation such as the above-mentioned arm robot
- log information based on a standard pattern is created in advance and recorded in the log recording unit 2b.
- the log recording unit 2b can additionally record log information generated according to the operation of the control target 3.
- the log recording unit 2b can sequentially record each piece of information detected by the sensor 5.
- the operation correcting unit 10 included in the control device 1a corrects the operation of the control target 3 controlled by the operation control unit 11.
- the operation correcting unit 10 can correct the operation of the control target 3 based on the log information stored in the log storage unit 2b and the output of the sensor 5, for example.
- the operation correcting unit 10 can correct the operation of the control target 3 using a learning result learned based on log information or the like stored in the log storage unit 2b. Further, the operation correcting unit 10 can correct the operation of the control target 3 based on a user operation.
- control device 1b and the log recording unit 2b can be configured to be included in the control target 3.
- control device 1b and the log recording unit 2b may be configured separately from the control target 3 and the control device 1b and the control target 3 may be connected by a predetermined connection line.
- the log recording unit 2b may be connected to the control device 1b via a network such as a LAN (Local Area Network) or the Internet. In this case, the log recording unit 2b can be connected to a plurality of control devices 1b.
- LAN Local Area Network
- FIG. 3 is a block diagram illustrating a hardware configuration of an example of the control target 3 applicable to the embodiment.
- the description will be made on the assumption that the control target 3 is a robot such as the above-mentioned arm robot.
- the control target 3 includes a communication I / F 3000, a CPU 3001, a ROM 3002, a RAM 3003, and one or more driving units 3010, each of which is connected by a bus 3005.
- Communication I / F 3000 is an interface for performing communication with control device 1b.
- Drive units 3010, 3010,... Each drive an actuator that operates a movable unit such as a joint included in the control target 3 according to an instruction of the CPU 3001.
- the CPU 3001 controls the entire operation of the control target 3 using the RAM 3003 as a work memory according to a program stored in the ROM 3002 in advance. For example, the CPU 3001 gives an actuator drive command to each of the drive units 3010, 3010,...
- control target 3 operates according to the control command transmitted from the control device 1b.
- each of the driving units 3010, 3010,... Can acquire information indicating the operation state of the corresponding actuator.
- the acquired information is transmitted to the control device 1b by the CPU 3001 via the communication I / F 3000, for example.
- FIG. 4 is a block diagram showing a hardware configuration of an example of the control device 1b applicable to the embodiment.
- the control device 1b includes a CPU 1000, a ROM 1001, a RAM 1002, a display control unit 1003, a storage 1004, a data I / F 1005, and a communication I / F 1006, each of which is connected to the bus 1010.
- the control device 1b can be realized with a configuration equivalent to a general computer.
- the storage 1004 is a nonvolatile storage medium such as a hard disk drive or a flash memory.
- the CPU 1000 controls the entire operation of the control device 1b using the RAM 1002 as a work memory according to a program stored in the storage 1004 or the ROM 1001 in advance.
- the display control unit 1003 converts a display control signal generated by the CPU 1000 according to a program into a display signal that can be displayed on the display 1020, and outputs the display signal.
- the display 1020 displays a screen according to a display signal using, for example, an LCD (Liquid Crystal Display) as a display device.
- LCD Liquid Crystal Display
- the data I / F 1005 is an interface for inputting and outputting data to and from an external device.
- the data I / F 1005 can connect an input device 1030 that receives a user input as an external device.
- the input device 1030 is, for example, a pointing device such as a mouse or a tablet, or a keyboard.
- a joystick or a game pad can be applied as the input device 1030.
- the control target 3 is described as an arm robot, but this is not limited to this example.
- the control target 3 may be an unmanned aerial vehicle (drone) whose flight can be controlled from the outside.
- each of the driving units 3010, 3010,... Drives for example, a motor that rotates a propeller.
- the control target 3 may be a mobile robot that includes a moving unit such as a biped, a multipod, an endless track, and wheels, and is configured to be movable.
- each of the driving units 3010, 3010,... Drives an actuator that operates a joint and also drives a moving unit.
- control target 3 may be a virtual device in a virtual space such as a computer game.
- the control target 3 corresponds to a vehicle in a car racing game, a robot in a robot battle game, a player in a fighting game, a sports game, or the like.
- the control target 3 in this case is a device in a virtual space formed by the CPU 1000 executing a program in the control device 1b.
- the sensor 5 can be configured by a program operating on the CPU 1000 for acquiring the operation of the control target 3 in the virtual space.
- the operation correcting unit 10 included in the control device 1b corrects the operation of the control target 3 controlled by the operation control unit 10 using the log information recorded in the log recording unit 2b.
- FIG. 5 is a functional block diagram illustrating an example of a function of the operation modifying unit 10a corresponding to the operation modifying unit 10 of FIG. 2 according to the first embodiment.
- the operation correcting unit 10a includes a cost predicting unit 100, a determining unit 101, a searching unit 102, a correcting unit 103, and a state predicting unit 104.
- the cost predicting unit 100, the determining unit 101, the searching unit 102, the correcting unit 103, and the state predicting unit 104 are configured by executing a program on the CPU 1000.
- the present invention is not limited thereto, and some or all of the cost estimating unit 100, the determining unit 101, the searching unit 102, the correcting unit 103, and the state estimating unit 104 may be configured by hardware circuits operating in cooperation with each other. .
- a program for realizing each function according to the first embodiment in the control device 1a is a file in an installable format or an executable format in a CD (Compact Disk), a flexible disk (FD), a DVD (Digital Versatile Disk). ) And provided on a computer-readable recording medium.
- the program may be stored on a computer connected to a network such as the Internet, and provided by being downloaded via the network. Further, the program may be configured to be provided or distributed via a network such as the Internet.
- the program has a module configuration including a cost estimating unit 100, a determining unit 101, a searching unit 102, a correcting unit 103, and a state estimating unit 104.
- This module may further include the operation control unit 11.
- the CPU 1000 reads out the program from a storage medium such as the ROM 1001 or the storage 1004 and executes the program, the above-described units are loaded onto the main storage device such as the RAM 1002, and the cost estimation unit 100 and the determination unit 101, a search unit 102, a correction unit 103, and a state prediction unit 104 are generated on a main storage device.
- the state detection unit 110 detects and recognizes the state of the control target 3 based on the output of the sensor 5.
- the state of the control target 3 detected by the state detection unit 110 may include the internal state and the appearance state of the control target 3 and the state of the environment 4 related to the control target 3 that can be detected by the sensor 5. it can.
- the state of the control target 3 is integrated by integrating the internal state and appearance state of the control target 3 and the state of the environment 4 regarding the control target 3 which are detected based on the output of the sensor 5. The description is made as follows.
- the cost estimating unit 100 estimates the cost of achieving the purpose of operating the controlled object 3 based on the status of the controlled object 3 acquired from the state detecting unit 110 or the state estimating unit 104 described below. For example, when the control target 3 operates according to the log information recorded in the log recording unit 2b, the cost estimation unit 100 operates without interference (collision, contact) with another object (other device or person). Is used, a cost function that calculates a higher cost as the possibility of interference with another object is higher is used.
- the determination unit 101 determines whether the cost calculated by the cost prediction unit 100 is equal to or higher than a predetermined value.
- the search unit 102 determines the state of the control target 3 detected by the state detection unit 110 or the control target 3 predicted by the state prediction unit 104. Based on the above situation, a situation (similar situation) similar to the detected or predicted situation is searched from the situation indicated by the log information recorded in the log recording unit 2b.
- the correction unit 103 corrects the operation based on the log information recorded in the log recording unit 2b based on the similar situation searched by the search unit 102, and passes control information indicating the corrected operation to the operation control unit 11.
- control is performed so that the search process by the search unit 102 and the correction process by the correction unit 103 are not executed.
- the log information recorded in the log recording unit 2b is passed to the operation control unit 11 while skipping the processing by the correction unit 103.
- the state prediction unit 104 predicts the state of the control target 3 based on the corrected operation.
- log information recorded in the log recording unit 2b will be schematically described.
- the log recording unit 2b generates log information based on, for example, the status of the control target 3 detected by the sensor 5, and records and accumulates the generated log information.
- the generation and recording of the log information are continuously performed, for example, for each step which is a time unit when the control device 1b controls the control target 3. That is, the log information is time-series information that records the status of the control target 3 in a time-series manner.
- one step is one frame time of 20 fps (framesframeper second).
- one step is one frame time of 60 fps.
- the time length of one step is not limited to this example.
- the log recording unit 2b stores, for example, angle information and operation information of each joint, which is an internal state of the control target 3 detected by the sensor 5, image data, distance information, temperature information, and the like, which are external states of the control target 3. It is recorded for each step as log information.
- the image data may record the image data itself, path information of the image data, or feature information extracted from the image data.
- the log recording unit 2b records, as log information, each piece of position information indicating the position of each object included in the image data obtained by analyzing the image data captured by the camera as the sensor 5. be able to. Further, the log recording unit 2b uses, as log information, a result of performing semantic segmentation for associating each pixel of the image data with a class label, that is, a superordinate concept of a specific object, with respect to image data captured by the camera. Can be recorded.
- This log information is, for example, information in which each object included in the image is labeled by semantic segmentation.
- FIG. 6 is a flowchart illustrating an example of a control process of the control target 3 according to the first embodiment.
- the control device 1b Prior to the execution of the processing according to the flowchart of FIG. 6, the control device 1b generates control information based on the log information recorded in the log recording unit 2b by the operation control unit 11, and controls the control target 3 based on the generated control information. Is controlled.
- step S10 in the control device 1b, the operation modifying unit 10a determines whether the operation of the control target 3 according to the control information generated by the operation control unit 11 is an operation modified from the operation based on the log information. Determine whether or not.
- step S10, “No” the control device 1b shifts the processing to step S11.
- step S11 the operation control unit 11 acquires the log information of the next step from the log recording unit 2, and generates control information based on the acquired log information.
- the operation control unit 11 controls the operation of the control target 3 based on the generated control information.
- step S12 the operation correcting unit 10a recognizes the current state (state) of the control target 3 according to the output of the state detecting unit 110. When the status of the control target 3 is recognized, the process proceeds to step S14.
- step S10 determines in step S10 that the operation of the control target 3 is the modified operation (step S10, "Yes")
- the operation shifts to step S13.
- step S13 the control device 1b predicts the current state of the control target 3 based on the corrected operation by the state prediction unit 104.
- the process proceeds to step S14.
- step S ⁇ b> 14 the motion correcting unit 10 a uses the cost prediction unit 100 to predict a possibility that the motion of the control target 3 will interfere with another object after a predetermined step.
- the cost prediction unit 100 predicts the possibility of interference after a predetermined step using an existing method, for example, based on the trajectory of the motion of the control target 3 and the trajectory of the motion of another object.
- the trajectory of the operation of the control target 3 can be obtained based on the log information recorded in the log recording unit 2b.
- the trajectory of the operation of the control target 3 is obtained by prediction.
- the trajectory of the movement of another object can be predicted, for example, by analyzing the log information recorded in the log recording unit 2b by going back a predetermined step from the present.
- the cost estimation unit 100 calculates the estimated possibility of the interference as the estimated cost for the operation of the control target 3.
- the motion correcting unit 10a determines whether the motion of the control target 3 may interfere with another object within a predetermined step from the present. Determine whether or not.
- the determination unit 101 performs a threshold determination on the cost calculated in step S14, and determines that there is a possibility of interference if the cost is equal to or greater than the threshold.
- step S15 when the determining unit 101 determines that there is no possibility of interference (step S15, “No”), the process proceeds to step S17.
- step S17 the control device 1b causes the operation control unit 11 to generate control information based on the log information recorded in the log recording unit 2, and controls the operation of the control target 3. Then, the process returns to step S10.
- step S15 when the determination unit 101 determines that there is a possibility of interference within a certain time within a predetermined step from the present (step S15, “Yes”), the process proceeds to step S16.
- step S16 the operation correcting unit 10a corrects an operation recorded in the log recording unit 2, for example, based on log information corresponding to the current time.
- the operation modifying unit 10a modifies the operation so as to avoid the interference whose possibility is predicted in step S14, for example.
- step S17 In this case, the operation control unit 11 generates the control information according to the corrected operation and controls the operation of the control target 3 in step S17. Then, the process returns to step S10.
- FIG. 7 is an example flowchart illustrating an operation modification process according to the first embodiment.
- the process according to the flowchart in FIG. 7 corresponds to the process in step S16 in the flowchart in FIG. 6 described above.
- step S100 the operation modifying unit 10a searches the state S N steps before (N is a positive integer) the time when the search unit 102 determines that there is a possibility of interference by the determination unit 101 in step S15 in FIG. tN is acquired based on the log information recorded in the log recording unit 2.
- the operation correcting unit 10a searches the log information recorded in the log recording unit 2 for a state S 'similar to the state Stn obtained in step S100 by the search unit 102.
- the search unit 102 searches the log information corresponding to the state S ′ from the past log information with respect to the log information corresponding to the state StN .
- the search unit 102 can output a plurality of pieces of log information corresponding to the state S ′ as a search result.
- the similar state means that when focusing on the center-of-gravity locus (position) of the control target 3, the positional relationship between the control target 3 and another object between two pieces of log information becomes a geometric similar arrangement relationship.
- a certain state As an example of the geometrically similar arrangement relationship, a case where the difference in the Euclidean distance is equal to or smaller than a predetermined value can be considered.
- the positional relationship between the segment of the control target 3 and the segment of another object is similar between the two pieces of log information. Use the judgment of whether or not.
- the similar situation may be a situation in which the environments 4 in which the control targets 3 operate are similar. That is, when the control target 3 operates under a plurality of different environments 4, an environment similar to the environment 4 in which the control target 3 currently operates is searched from the log information acquired under each environment 4. As the environment according to the similar situation, brightness, temperature, wind, and the like around the control target 3 can be considered. In the case where the control target 3 is a moving body that moves on a road surface, the state of the road surface (unevenness, wet or dry, inclination) and the like can be considered. These environments 4 are applicable to both a real space and a virtual space.
- FIGS. 8 and 9 are diagrams illustrating examples of log information recorded in the log recording unit 2b, which can be applied to the first embodiment.
- the log information 20 recorded in the log recording unit 2b is shown as an image for explanation.
- the log recording unit 2b records, in the log information 20, information in which a class label is added to each pixel of the image data based on semantic segmentation performed on the image data included in the log information.
- the log recording unit 2b records, in the log information 20, information in which a class label is added to each pixel of the image data based on semantic segmentation performed on the image data included in the log information.
- each segment is shown as an image of an object corresponding to the segment.
- the log information 20 1 at time t 1 includes an image of the arm robot 60 to be controlled 3.
- the arm robot 60 includes an image of the base 61 of the arm robot and an image of the arm 62 that is rotatable around a joint with respect to the base.
- Log information 20 2 at the next time t 2 as an object, with an arm robot 60 includes a part of the image of the person 63.
- the angle of the arm portion 62 relative to the base 61 it can be seen that not changed to that of the log information 20 1.
- Log information 20 3 at the next time t 3 includes an arm robot 60 and human 63 as similarly to the log information 20 2 object.
- FIG. 9 shows an example of the log information 20 n in the state St N obtained in step S100.
- the log information 20 n shown in FIG. 9 includes the base 61 ′ and the base 61 ′ corresponding to the image of the arm robot 60 including the base 61 and the arm 62 and the image of the person 63 included in the log information 20 shown in FIG. It includes an image of an arm robot 60 ′ having an arm 62 ′ and an image of a person 63 ′.
- step S101 the search unit 102, the state of the log information 20 3, it can be determined that the state S 'which is similar to state S tN.
- the time t n is a time that is N steps back from the current time, and is a past time that is temporally continuous with the current operation of the control target 3.
- the times t 1 , t 2 , t 3 ,... In FIG. 8 do not need to be temporally continuous with the current operation of the control target 3.
- the time t n is the time when the arm robot 60, which is the control target 3, operates in the time series of the respective times t 1 , t 2 , t 3 ,. May be.
- the log information 20 1 , 20 2 , 20 3 ,... In FIG. 8 and the log information 20 n in FIG. 9 may be obtained in different environments. Therefore, the time series including the times t 1 , t 2 , t 3 ,... In FIG. 8 and the time series including the time t n in FIG. 9 can be regarded as different time series. .
- step S102 the search unit 102 narrows down applied log information from each log information corresponding to the plurality of states S' in terms of cost.
- the search unit 102 defines a cost function 6 that determines the quality of the resulting action, and selects, from a plurality of pieces of searched log information, log information that minimizes the cost calculated according to the cost function 6. Can be.
- the cost function 6 may be considered to have a lower cost when the possibility that the control target 3 interferes (collides) with another object is smaller.
- the present invention is not limited to this, and a cost function that can reduce the cost when the absolute value of the acceleration of each actuator or the sum of the squares of the actuators is small (ie, does not move steeply) is considered.
- a cost function that can reduce the cost when the absolute value of the acceleration of each actuator or the sum of the squares of the actuators is small (ie, does not move steeply) is considered.
- the distance of the control target 3 from another object including a static obstacle is within a predetermined range
- time can be a cost requirement. For example, when it takes more time to execute a specific operation (such as an avoidance operation), it is conceivable to increase the
- the cost function 6 can be set in consideration of the above factors. For example, when the control target 3 is a vehicle in a car race, a cost in which the speed of at least one of the vehicle and another vehicle that may interfere with the vehicle is considered with priority to the possibility of collision. Setting function 6 is conceivable. As an example, if the possibility of collision is 60% or more, the cost related to the operation of the vehicle taking the avoidance action has a low value, and if the possibility of collision is less than 60%, the cost related to the operation of increasing the speed of the vehicle is low. A cost function 6 having a low value can be considered. As another example, a plurality of cost functions 6 having different conditions may be prepared, and a cost function to be applied may be selected from the plurality of cost functions 6 at random or according to a specific rule.
- step S101 the log information corresponding to the state S 'is searched from the past log information. Therefore, a series of operations for a predetermined time (for example, 10 seconds) starting from the state S 'can be obtained from the log information. Therefore, cost calculation by the cost function 6 becomes possible.
- step S103 in the operation modification unit 10a, the modification unit 103 connects the operation based on the current log information and the operation based on the log information to be applied narrowed down in step S102, and applies the operation based on the current log information to the application. Correct by the operation based on the log information. At this time, the correction unit 103 performs a smoothing process for smoothly connecting the operation based on the current log information and the operation based on the applied log information.
- step S103 The smoothing process in step S103 will be described with reference to FIGS.
- a vehicle in a car race game or the like in a virtual space is the control target 3, and that the log information is a traveling locus of the vehicle.
- FIG. 10 is a diagram for explaining the necessity of the smoothing process.
- a traveling locus 200 indicates a traveling locus before the operation is corrected in step S16 of FIG. It is assumed that the determination at step S15 in FIG. 6 is made at the current position 202 and that it is predicted that interference with another object will occur at the position 201 when the vehicle travels along the travel locus 200.
- the traveling locus 210 is a traveling locus narrowed down in step S102 of FIG. 7 in accordance with the prediction of the occurrence of the interference.
- the traveling locus 200 and the traveling locus 210 are not connected at a specific connection point. Therefore, if the traveling locus of the vehicle is switched from the traveling locus 200 to the traveling locus 210, the vehicle jumps, which is not preferable.
- step S103 of FIG. 7 the current operation and the operation after the modification are applied are subjected to smoothing processing, and the current operation is continuously shifted to the operation after the modification is applied. Like that.
- FIG. 11 is a diagram for explaining a smoothing process applicable to the first embodiment.
- a case is considered in which the transition from the traveling locus 200 to the traveling locus 210 starts at the position 202, and the traveling from the position 202 to the traveling locus 210 is completed for a predetermined time (for example, one second).
- the smoothing process is performed by performing linear interpolation between the traveling locus 200 and the traveling locus 210 from the position 202 of the transition start point to the position 203 of the transition completion point.
- the correction unit 103 sets, for each step, a line connecting the extension of the traveling locus 200 (shown by a dotted line connecting the position 202 and the position 201 in FIG. 11) and the traveling locus 210 at the shortest distance,
- the vehicle is moved from the position 202 to the position 203 according to the traveling speed of the vehicle.
- the correction unit 103 takes the subdivision point of this line, and linearly changes the ratio at which the line is divided by the subdivision point from the position 202 to the position 203.
- the value a is the distance from the extension of the travel locus 200 to the interior locus
- the value b is the distance from the interior split point to the travel locus 210
- a + b 1.
- the correction unit 103 connects the position 202 and the position 203 through the internally dividing point whose position has been changed in each step as described above. As a result, a traveling trajectory 220 continuously connected to the traveling trajectories 200 and 210 at the positions 202 and 203 is generated, and smoothing is performed by linear interpolation.
- the correction unit 103 corrects the operation based on the log information for each step in this manner, and passes control information indicating the corrected operation (the traveling trajectory 220) to the operation control unit 11.
- the operation control unit 11 controls the operation of the control target 3 according to the passed control information. Further, for example, the correction unit 103 passes the log information corresponding to the traveling locus 210 at the position 203 to the operation control unit 11. After the position 203, the operation control unit 11 controls the operation of the control target 3 according to the log information.
- the smoothing process at the time of transition from the current operation to the operation after applying the correction is not limited to linear interpolation as long as the transition can be performed continuously.
- the complementing process may be performed using a curve such as a quadratic curve.
- the prefetch processing according to the first embodiment will be described.
- the operation control unit 11 controls the operation of the control target 3 according to the log information corresponding to the traveling locus 210 after switching to the traveling locus 210.
- the operation modification unit 10a performs state prefetching in consideration of interference in such a case.
- FIG. 12 is a diagram for explaining prefetch processing applicable to the first embodiment.
- the prefetching process will be described with reference to FIG. 12 and the flowchart of FIG.
- a vehicle in a car race game or the like is the control target 3 and that the log information is a running locus of the vehicle.
- sections 300 1 , 300 2 , 300 3 , 300 4 , 300 5, and 300 6 show changes in state over time.
- the controlled object 3 the operation is controlled in accordance with the travel locus 230a based on the first log information.
- the cost prediction unit 100 and the determination unit 101 perform pre-reading at a position 233 on the traveling locus 230a for a predetermined time, and operate at a future position 232 relative to the position 233 according to the traveling locus 231 based on the second log information. It is assumed that there is a possibility that interference will occur with another object (other control target 3) to be controlled (FIG. 6, step S14, step S15).
- the search unit 102 searches for a situation similar to the situation at the position 233 from the log information recorded in the log recording unit 2b (FIG. 7, step S101).
- the range 234 on the traveling locus 230b starting from the position 233 is connected to the position 233.
- the connection at this time is performed by the smoothing process described with reference to FIG.
- step S16 in FIG. 6 the operation of the control target 3 is controlled in step S17 according to the operation correction result, and the process returns to step S10. In this case, since the operation is a corrected operation, the process proceeds to step S13.
- step S13 the state predictor 104 predict about traveling locus 230b made on the basis of the prediction result, the cost prediction unit 100 and the judging unit 101, as shown in section 300 3, a predetermined time at the position 235 of the travel track 230b Pre-reading is performed beforehand, and it is predicted that there is a possibility that interference will occur again at the future position 236 with respect to the position 235 (FIG. 6, step S14, step S15).
- the search unit 102 searches the log information recorded in the log recording unit 2b for a situation similar to the situation at the position 235 that has returned from the position 236 for a predetermined time (FIG. 7, step S101).
- a range 237 on the traveling locus 230c starting from the position 235 is connected to the position 235.
- the connection at this time is performed by the smoothing process described with reference to FIG.
- the section 300 5 shows how the range 234 on the running locus 230b and the range 237 on the running locus 30c are connected to the running locus 230a in this way.
- a limit is set on the range to be read ahead (for example, ahead of 5 seconds). If there is a low possibility of occurrence of interference within the limited range on the travel locus based on the current log information, the travel locus is used. Further, the above-described pre-reading processing up to a predetermined time is executed, for example, for each step. By executing the pre-reading process for each step, it becomes possible to immediately respond to the current situation.
- the second embodiment is an example in which an operation is corrected using an optimal action estimator learned from past log information. Note that the control processing of the control target 3 described in the first embodiment with reference to FIG. 6 can be similarly applied to the second embodiment except for step S16, and thus the description thereof is omitted. .
- FIG. 13 is a functional block diagram illustrating an example of a function of an operation modifying unit 10b corresponding to the operation modifying unit 10 in FIG. 2 according to the second embodiment.
- the operation modification unit 10b illustrated in FIG. 13 includes an optimal operation estimation unit 120 instead of the search unit 102 of the operation modification unit 10a illustrated in FIG. 5 according to the first embodiment.
- Optimal motion estimation unit 120 based on past log information recorded in the log recording unit 2b, the input state S t, including the best action estimator which is previously trained to estimate the optimum operation A t.
- FIG. 14 is an example flowchart illustrating an operation modification process according to the second embodiment.
- the processing according to the flowchart in FIG. 14 corresponds to the processing in step S16 in the flowchart in FIG.
- step S200 the operation correcting unit 10b searches the state S N steps before (N is a positive integer) the time when the searching unit 102 determines that there is a possibility of interference by the determining unit 101 in step S15 in FIG. tN is acquired based on the log information recorded in the log recording unit 2.
- the operation modifying unit 10b obtains the optimal operation At + 1 in the optimal operation estimating unit 120 based on the state StN obtained in step S200 by the optimal action estimator. Thereafter, the optimal operation estimating unit 120 generates an operation based on the new state St + 1 resulting from the optimal operation At + 1 output by the optimal action estimator at each step. Thereby, time-series information corresponding to the log information is generated.
- the optimal operation estimating unit 120 compares the generated operation with the operation based on the log information used before performing the operation correction in step S16 of FIG.
- the optimum operation estimating unit 120 determines whether or not the operation based on the new state St + 1 generated as a result of the comparison and the operation based on the log information are close to each other until a smooth connection can be established.
- the optimum motion estimating unit 120 shifts the processing to step S202 when it is determined that both have approached.
- step S202 the correction unit 103 performs a smoothing process for smoothly connecting the operation based on the current log information and the operation generated in step S201.
- the smoothing process is the same as the process described with reference to FIGS. 10 and 11 in the first embodiment, and a description thereof will not be repeated.
- Non-Patent Document 1 behavioral cloning (Behavior Cloning) Can be applied. Behaviors cloning, a pair of optimal operation A t for state S t, large quantities are prepared as learning samples, a method for learning the learning samples with the neural network.
- the third embodiment is an example in which an operation is corrected based on a user operation. Note that the control processing of the control target 3 described with reference to FIG. 6 in the first embodiment can be similarly applied to the third embodiment except for step S16, and thus the description thereof is omitted. .
- FIG. 15 is a functional block diagram illustrating an example of a function of the operation modifying unit 10c corresponding to the operation modifying unit 10 of FIG. 2 according to the third embodiment.
- the operation modifying unit 10c illustrated in FIG. 15 is different from the operation modifying unit 10b according to the second embodiment illustrated in FIG. 13 in that a notification unit 130, a switch unit 131, and an operation receiving unit 132 are added. ing.
- the notifying unit 130 When the determining unit 101 determines that the cost calculated by the cost estimating unit 100 is equal to or more than a predetermined value, the notifying unit 130 notifies the operation receiving unit 132 of the fact and, for example, displays the user on the display 1020 or the like. Notify to.
- the switch unit 131 switches which of the output of the optimal motion estimation unit 120 and the output of the operation reception unit 132 is supplied to the correction unit 103 under the control of the notification unit 130.
- the switch unit 131 is controlled to supply the output of the optimal operation estimation unit 120 to the correction unit 103 in a default state.
- the operation reception unit 132 When notified that the cost calculated by the notification unit 130 is equal to or more than the predetermined value, the operation reception unit 132 causes the display 1020 to display a screen using a user interface for correcting an operation by a user operation. .
- the operation receiving unit 132 receives a user operation input for operation control on the input device 1030.
- the input device 1030 corresponds to the type of the control target 3.
- the control target 3 is an arm robot, a joystick is used as the input device 1030.
- a game pad is used as the input device 1030.
- FIG. 16 is an example flowchart illustrating an operation modification process according to the third embodiment.
- the processing according to the flowchart in FIG. 16 corresponds to the processing in step S16 in the flowchart in FIG.
- step S15 of FIG. 6 the motion correcting unit 10c may cause the motion of the control target 3 to interfere with another object within a predetermined step from the present based on the cost calculated by the determining unit 101. Is determined, the process proceeds to step S300 in FIG. In step S300, the operation correcting unit 10c notifies the user of the possibility of interference within a predetermined step by, for example, displaying on the display 1020 by the notifying unit 130.
- the notification unit 130 determines whether or not the operation control by the user operation has been activated in response to the notification in step S300.
- the notification unit 130 shifts the processing to Step S302.
- the notification unit 130 displays the above-described notification on the display 1020 and displays a message that prompts an input as to whether or not to perform operation control by a user operation.
- the notification unit 130 determines that the operation control by the user operation has been activated when an instruction to perform the operation control by the user operation is input in response to the message.
- step S302 the operation receiving unit 132 presents a user operation unit for correcting the operation of the control target 3 by a user operation. For example, the operation receiving unit 132 displays a screen for performing a user operation on the display 1020 and starts receiving a user operation on the input device 1030.
- the notification unit 130 controls the switch unit 131 to supply the output of the operation reception unit 132 to the correction unit 103.
- step S303 the operation receiving unit 132 determines whether or not a user operation for correcting an operation has been started. If it is determined that it has not been started (step S303, “No”), the process returns to step S303. On the other hand, if it is determined that the processing has been started (step S303, “Yes”), the process proceeds to step S304.
- step S304 the correction unit 103 corrects the operation of the control target 3 according to the control signal output from the operation reception unit 132 in response to a user operation.
- the correction unit 103 performs a smoothing process for smoothly connecting the operation based on the current log information and the operation according to the control signal output from the operation reception unit 132.
- the smoothing process is the same as the process described with reference to FIGS. 10 and 11 in the first embodiment, and a description thereof will not be repeated.
- step S305 the operation receiving unit 132 determines whether or not the user operation for correcting the operation has been completed. If it is determined that the processing has not been completed (step S305, “No”), the process returns to step S305. On the other hand, if it is determined that the processing has been completed (step S305, “Yes”), the process proceeds to step S306.
- step S306 the correction unit 103 performs a smoothing process on the end position of the operation correction by the user operation to smoothly connect the operation based on the log information used before the user operation is activated in step S301.
- the smoothing process is the same as the process described with reference to FIGS. 10 and 11 in the first embodiment, and a description thereof will not be repeated.
- step S301 when the notification unit 130 determines that the operation control by the user operation has not been activated in response to the notification in step S300 (step S301, “No”), the process proceeds to steps S200 to S202.
- the operation is corrected using the optimal action estimator learned from the past log information described in the second embodiment.
- data obtained by correcting an operation in accordance with a user operation can be recorded as teaching data, for example, in the log recording unit 2b.
- the optimal action estimator in the optimal motion estimating unit 120 By additionally learning the optimal action estimator in the optimal motion estimating unit 120 using the teaching data, it is possible to improve the optimal action estimator.
- the teaching data to the log recording unit 2b according to the first embodiment as log information, the teaching information according to the user operation can be used for correcting the operation of the control target 3 based on the log information, For example, it can be expected that the performance of avoiding interference with other objects is improved.
- each control target 3 corresponding to each of the plurality of extracted log information is caused to execute an operation based on the corresponding log information.
- each control target 3 operates as described in the first embodiment or the second embodiment, for example. Will be modified. According to this, a new operation by the NPC can be realized in a more natural manner.
- log information for controlling the operation of the control target 3 can be generated based on information on a real professional player, for example. This makes it possible to configure a game situation as if, for example, a plurality of professional players are actually fighting. Further, by mixing the actions according to the user operation, it is possible to create a situation as if the user is playing against the professional player.
- the noted drone When the other drone approaches the noted drone among the plurality of drones included in the drone group due to an accident, the noted drone, as described in the first embodiment or the second embodiment, The operation based on the log information is modified so that interference from the other drone is predicted and the interference is avoided. This makes it possible to avoid a situation in which the drone of interest collides with another drone approaching due to an accident or the like.
- a control unit that controls the operation of the control target based on the first time-series information
- a prediction unit that predicts a cost associated with achieving the purpose of the control target
- a correction unit that corrects an operation based on the first time-series information of the control target, according to the cost predicted by the prediction unit
- a control device comprising: (2) The correction unit, The control device according to (1), wherein the operation based on the first time-series information is corrected to an operation continuous with an operation based on second time-series information different from the first time-series information.
- the second time-series information is: The control device according to (2), which is time-series information obtained by searching the similar situation from the one or more pieces of time-series information by the search unit.
- the search unit The control device according to (3), wherein the similar situation in which the environment including the situation corresponding to the prediction is further similar is searched.
- the second time-series information is: The control device according to (2), which is time-series information corresponding to an operation estimated to be optimal by learning using the first time-series information as input information.
- the second time-series information is: The control device according to (2), wherein the control unit is time-series information corresponding to an operation that is learned by an autonomous trial and error operation by the control target and is estimated to be optimal. (7) The correction unit, The control device according to (2), wherein the operation based on the first time-series information is corrected based on a user operation for controlling the operation of the control target. (8) The correction unit, The control device according to (7), wherein third time-series information corresponding to the operation corrected based on the user operation is added to the first time-series information.
- the correction unit The (1) to (1) to (1) to (1) to (1) to further perform the correction according to the cost predicted by the prediction unit for the operation of the control target controlled by the control unit based on the corrected first time-series information.
- the control device according to any one of (8).
- the prediction unit includes: The control device according to any one of (1) to (9), wherein the cost is predicted according to a possibility that the control target interferes with another object.
- the prediction unit includes: The control device according to any one of (1) to (10), wherein the cost is predicted based on a detection result of a detection unit that detects a situation around the control target.
- the control unit includes: Any of (2) to (11), wherein the operation of the control target is controlled based on the first time-series information in a second environment different from the first environment corresponding to the first time-series information.
- the control device according to any one of the above.
- the control unit includes: The control device according to (12), wherein the operation of the control target is controlled based on the first time-series information created in the first environment.
- the control device according to any one of (12) to (14), wherein the control target is a robot for factory automation.
- the control unit includes: Based on the first time-series information created in the first environment in which the control target operates alone, the control target includes the control target in the second environment in which a plurality of objects simultaneously operate.
- the control unit includes: The control device according to (2), wherein an operation of the control target in the virtual space is controlled based on the first time-series information.
- the correction unit According to the cost predicted based on a user operation for controlling the operation of another control target different from the control target, the operation of the control target based on the first time-series information is corrected (18).
- the prediction unit includes: The control device according to (19), wherein the cost is predicted according to a speed of at least one of the control target and the other control target.
- a control method having:
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Aviation & Aerospace Engineering (AREA)
- Evolutionary Computation (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Feedback Control In General (AREA)
- Manipulator (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
制御装置(1b)は、制御部(11)と、予測部(100)と、修正部(103)と、を備えて構成される。制御装置が備える制御部は、制御対象(3)の動作の、第1の時系列情報に基づく制御を実行する。制御装置が備える予測部は、制御対象の目的達成に伴うコストの予測を実行する。制御装置が備える修正部は、予測部により予測されたコストに応じて、制御対象の第1の時系列情報に基づく動作の修正を実行する。
Description
本発明は、制御装置および制御方法に関する。
動作対象の動作に伴い記録されたログを再生して動作対象を再動作させることができる。このログ再生による動作対象の再動作は、限られたコンテキストにおいて利用されることが多い。例えば、動作対象の同左のログを記録する場合、他のオブジェクトからの干渉が発生しないように、当該動作対象を他から隔離する、動作対象の可動範囲内に他のオブジェクトが入らないようにする、などの措置が取られる。
Mariusz Bojarski、他12名"End to End Learning for Self-Driving Cars"、[online]、平成28年4月25日、[平成30年6月18日検索]、インターネット<https://images.nvidia.com/content/tegra/automotive/images/2016/solutions/pdf/end-to-end-dl-using-px.pdf>
ログに従った再動作は、当該ログに係る限られたコンテキスト以外の環境において、期待されない動作を取ってしまう可能性があり、改善の余地があった。
本開示では、ログに従った動作をより適切に制御可能な制御装置および制御方法を提案する。
上記の課題を解決するために、本開示に係る一形態の制御装置は、制御対象の動作を第1の時系列情報に基づき制御する制御部と、制御対象の目的達成に伴うコストを予測する予測部と、予測部により予測されたコストに応じて、制御対象の第1の時系列情報に基づく動作を修正する修正部と、を備える。
本開示によれば、ログに従った動作をより適切に制御可能となる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載された何れかの効果であってもよい。
以下、本開示の実施形態について、図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより、重複する説明を省略する。
[本開示の概要]
本開示に係る制御装置は、ログ情報に基づき動作が制御される制御対象の、当該動作による目的の達成に伴うコストを予測し、予測したコストに応じて制御対象のログ情報に基づく動作を修正するようにしている。そのため、本開示に係る制御装置によれば、ログ情報に基づく制御対象の動作を、より適切に制御することができる。
本開示に係る制御装置は、ログ情報に基づき動作が制御される制御対象の、当該動作による目的の達成に伴うコストを予測し、予測したコストに応じて制御対象のログ情報に基づく動作を修正するようにしている。そのため、本開示に係る制御装置によれば、ログ情報に基づく制御対象の動作を、より適切に制御することができる。
本開示の説明に先んじて、理解を容易とするために、ログ情報に基づき制御対象の動作を制御するための基本的な構成について説明する。図1は、ログ情報に基づき制御対象の動作を制御する制御システムの基本的な構成を示す図である。図1において、制御システムは、制御装置1aと、ログ記録部2aと、を含む。また、制御装置1aは、動作制御部11を含み、制御対象3の環境4における動作を制御する。
ログ記録部2aは、制御対象3に動作させたいモーションのデータがログ情報として予め記憶される。このログ情報は、例えば、制御対象3の動作に対応する単位時間毎の制御データを含むもので、制御対象3の動作を時系列で示す時系列情報である。制御装置1aにおいて、動作制御部11は、ログ記録部2aから取得したログ情報に基づき、制御対象3の動作を制御する。より具体的には、動作制御部11は、制御対象3が現在の状態から次の状態に移行するための制御信号を生成し出力する。制御対象3は、この制御信号に応じて、環境4下において動作する。
説明のため、制御対象3が制御信号に従い動作を制御されるロボットであるものとする。前提として、ログ情報に基づき動作する制御対象3を実際に動作させる環境4下には、他のオブジェクト、例えば他のロボットや人が共存、協働しているものとする。
制御対象3の動作に応じたログ情報の収録は、例えば、これら他のオブジェクトを完全に排除した環境で行われる。これに限らず、他のオブジェクトの共存を許容した環境で制御対象3のログ情報の収録を行うこともできる。何れの環境でログ情報を収録した場合であっても、収録時の状況は、制御対象3を例えば実際の用途において動作させている状況とは異なる場合が殆どである。そのため、単に収録時のログ情報に従い制御対象3を動作させるだけでは、当該制御対象3が他のオブジェクトと干渉、衝突を起こす可能性がある。
制御対象3の一例として、可動のアームを用いて部品組み立て作業などを行うアームロボットを考える。この場合、アームロボットに対してティーチングペンダントなどを用いて部品組み立て作業をプログラムし、実際の作業環境で、プログラムに従いリプレイモーションでアームロボットを動作させて組み立て作業を行うのが一般的である。この場合、アームロボットを完全に隔離した状況でないと、他のオブジェクトとの衝突が発生するおそれがある。狭小空間での複数台のロボット作業環境であったり、人や他のロボットと共存協働作業を行う際には、衝突問題が避けられない。
図2は、本開示の各実施形態に適用可能な制御システムの一例の構成を示す図である。図2に示す制御システムにおいて、センサ5が追加されると共に、制御装置1bにおいて、図1の制御装置1aに対して、動作修正部10が追加されている。
センサ5は、制御対象3の内部の状態を検知する検知手段と、環境4下における制御対象3の外部の状態を検知する検知手段と、を含む。制御対象3の内部の状態を検知する検知手段は、例えば制御対象3が上述のアームロボットである場合には、各関節の角度を取得する角度センサや、制御対象3の動作を逐次的に検出する動作センサなどを含む。また、制御対象3の外部の状態を検知する検知手段は、制御対象3の周囲あるいは制御対象3自身を含めた制御対象3の周囲を撮影するためのカメラを含む。外部状態を検知する検知手段として、距離を計測するデプスセンサや、温度を計測する温度センサをさらに追加してもよい。
ログ記録部2bは、制御対象3の動作に応じたログ情報が予め記録される。制御対象3が上述のアームロボットのようなファクトリオートメーション用のロボットである場合には、定型的なパターンに基づくログ情報が予め作成され、ログ記録部2bに記録される。さらに、ログ記録部2bは、制御対象3の動作に応じて生成されたログ情報を、追加して記録することができる。例えば、ログ記録部2bは、センサ5により検知された各情報を逐次的に記録することができる。
制御装置1aに含まれる動作修正部10は、動作制御部11により制御される制御対象3の動作を修正する。動作修正部10は、例えば、ログ記憶部2bに記憶されるログ情報と、センサ5の出力と、に基づき制御対象3の動作の修正を行うことができる。また、動作修正部10は、ログ記憶部2bに記憶されるログ情報などに基づき学習した学習結果を用いて制御対象3の動作の修正を行うようにできる。さらに、動作修正部10は、ユーザ操作に基づき制御対象3の動作の修正を行うようにもできる。
なお、図2において、制御装置1bおよびログ記録部2bを、制御対象3に含めて構成することができる。これに限らず、制御装置1bおよびログ記録部2bと、制御対象3と、を別個の構成とし、制御装置1bと制御対象3とを所定の接続線で接続してもよい。さらに、ログ記録部2bは、LAN(Local Area Network)やインターネットといったネットワークを介して制御装置1bと接続されてもよい。この場合、ログ記録部2bは、複数の制御装置1bと接続することができる。
図3は、実施形態に適用可能な制御対象3の一例のハードウェア構成を示すブロック図である。なお、ここでは、当該制御対象3が上述のアームロボットのようなロボットであるものとして説明を行う。
図3の例では、制御対象3は、それぞれバス3005で接続される、通信I/F3000と、CPU3001と、ROM3002と、RAM3003と、1以上の駆動部3010と、を含む。通信I/F3000は、制御装置1bとの間で通信を行うためのインタフェースである。駆動部3010、3010、…は、それぞれ、CPU3001の命令に従い、例えば制御対象3が備える関節などの可動部を動作させる各アクチュエータを駆動する。CPU3001は、ROM3002に予め記憶されるプログラムに従い、RAM3003をワークメモリとして用いて、この制御対象3全体の動作を制御する。例えば、CPU3001は、通信I/F3000を介して制御装置1bから供給された制御信号に従い、各駆動部3010、3010、…に対してアクチュエータの駆動命令を与える。各駆動部3010、3010、…が駆動命令に従いアクチュエータを動作させることで、制御対象3は、制御装置1bから送信された制御命令に従い動作する。
また、各駆動部3010、3010、…は、対応するアクチュエータの動作状態を示す情報を取得することができる。取得された情報は、例えばCPU3001により通信I/F3000を介して制御装置1bに送信される。
図4は、実施形態に適用可能な制御装置1bの一例のハードウェア構成を示すブロック図である。制御装置1bは、それぞれバス1010に接続される、CPU1000と、ROM1001と、RAM1002と、表示制御部1003と、ストレージ1004と、データI/F1005と、通信I/F1006と、を含む。このように、制御装置1bは、一般的なコンピュータと同等の構成にて実現できる。
ストレージ1004は、ハードディスクドライブやフラッシュメモリといった、不揮発性の記憶媒体である。CPU1000は、ストレージ1004やROM1001に予め記憶されるプログラムに従い、RAM1002をワークメモリとして用いて、この制御装置1bの全体の動作を制御する。
表示制御部1003は、CPU1000がプログラムに従い生成した表示制御信号を、ディスプレイ1020が表示可能な表示信号に変換して出力する。ディスプレイ1020は、例えばLCD(Liquid Crystal Display)を表示デバイスとして用い、表示信号に従った画面を表示する。
データI/F1005は、外部機器との間でデータの入出力を行うためのインタフェースである。データI/F1005としては、例えばUSB(Universal Serial Bus)を適用することができる。また、データI/F1005は、外部機器として、ユーザ入力を受け付ける入力デバイス1030を接続することができる。入力デバイス1030は、例えばマウスやタブレットなどのポインティングデバイスや、キーボードである。これに限らず、入力デバイス1030としてジョイスティックやゲームパッドを適用することもできる。
なお、上述では、制御対象3がアームロボットであるとして説明したが、これはこの例に限定されない。例えば、制御対象3は、外部から飛行制御が可能な無人飛行機(ドローン)であってもよい。この場合、各駆動部3010、3010、…は、例えば、プロペラを回転させるモータを駆動する。また例えば、制御対象3は、二脚、多脚、無限軌道、車輪などの移動手段を備え、移動可能に構成された移動ロボットであってもよい。この場合、各駆動部3010、3010、…は、関節を動作させるアクチュエータを駆動すると共に、移動手段の駆動も行う。
さらに、制御対象3は、コンピュータゲームなど仮想空間内での仮想的な装置であってもよい。この場合、制御対象3は、カーレースゲームにおける車両、ロボット対戦ゲームにおけるロボット、格闘ゲームやスポーツゲームなどにおける選手、などに相当する。この場合における制御対象3は、制御装置1bにおいてCPU1000がプログラムを実行することで形成される仮想空間内での装置となる。この場合、センサ5は、仮想空間内で制御対象3の動作を取得するための、CPU1000上で動作するプログラムにより構成することができる。
[第1の実施形態]
次に、第1の実施形態について説明する。第1の実施形態では、制御装置1bが含む動作修正部10は、ログ記録部2bに記録されるログ情報を用いて、動作制御部10により制御される制御対象3の動作の修正を行う。
次に、第1の実施形態について説明する。第1の実施形態では、制御装置1bが含む動作修正部10は、ログ記録部2bに記録されるログ情報を用いて、動作制御部10により制御される制御対象3の動作の修正を行う。
図5は、第1の実施形態に係る、図2の動作修正部10に対応する動作修正部10aの機能を説明するための一例の機能ブロック図である。図5において、動作修正部10aは、コスト予測部100と、判定部101と、検索部102と、修正部103と、状態予測部104と、を含む。
これらコスト予測部100、判定部101、検索部102、修正部103および状態予測部104は、CPU1000上でプログラムが実行されることにより構成される。これに限らず、これらコスト予測部100、判定部101、検索部102、修正部103および状態予測部104の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
制御装置1aにおける第1の実施形態に係る各機能を実現するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD(Compact Disk)、フレキシブルディスク(FD)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、当該プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、当該プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。
当該プログラムは、コスト予測部100、判定部101、検索部102、修正部103および状態予測部104を含むモジュール構成となっている。このモジュールに、動作制御部11をさらに含めてもよい。実際のハードウェアとしては、CPU1000がROM1001やストレージ1004などの記憶媒体から当該プログラムを読み出して実行することにより、上述した各部がRAM1002などの主記憶装置上にロードされ、コスト予測部100、判定部101、検索部102、修正部103および状態予測部104が主記憶装置上に生成されるようになっている。
図5において、状態検知部110は、センサ5の出力に基づき制御対象3の状態を検知、認識する。ここで状態検知部110に検知される制御対象3の状態は、センサ5により検知し得る、制御対象3の内部状態および外観上の状態、ならびに、制御対象3に関する環境4の状態を含むことができる。以下、特に記載の無い限り、センサ5の出力に基づき検知される、制御対象3に関する内部状態および外観上の状態、ならびに、制御対象3に関する環境4の状態を統合して、制御対象3の状況として説明を行う。
コスト予測部100は、状態検知部110、または、後述する状態予測部104から取得した制御対象3の状況に基づき、制御対象3が動作する目的の達成に係るコストを予測する。例えば、コスト予測部100は、制御対象3がログ記録部2bに記録されるログ情報に従い動作するに当たり、他のオブジェクト(他の装置や人)に対して干渉(衝突、接触)せずに動作を完遂することを目的とする場合、他のオブジェクトに対する干渉の可能性が高いほど高いコストを算出するコスト関数を用いる。
判定部101は、コスト予測部100により算出されたコストが所定以上であるか否かを判定する。検索部102は、判定部101により当該コストが所定以上であると判定された場合に、状態検知部110に検知された制御対象3の状況、あるいは、状態予測部104に予測された制御対象3の状況に基づき、ログ記録部2bに記録されるログ情報が示す状況から、検知または予測された状況に類似する状況(類似状況)を検索する。修正部103は、検索部102に検索された類似状況に基づき、ログ記録部2bに記録されるログ情報に基づく動作を修正し、修正した動作を示す制御情報を動作制御部11に渡す。
なお、判定部101により当該コストが所定未満であると判定された場合、検索部102による検索処理と、修正部103による修正処理とが実行されないように制御される。この場合、ログ記録部2bに記録されたログ情報が修正部103による処理をスキップして動作制御部11に渡されることになる。
状態予測部104は、修正部103によりログ情報に基づく動作が修正された場合に、修正された動作に基づく制御対象3の状況を予測する。
ここで、ログ記録部2bに記録されるログ情報について、概略的に説明する。ログ記録部2bは、例えばセンサ5により検知された制御対象3の状況に基づきログ情報を生成し、生成したログ情報を記録し蓄積する。ログ情報の生成および記録は、例えば制御装置1bが制御対象3を制御する際の時間単位であるステップ毎に継続的に実行される。すなわち、ログ情報は、制御対象3の状況を時系列で記録する時系列情報である。
一例として、制御対象3が実空間内におけるロボットなどの装置である場合、1ステップは、20fps(frames per second)の1フレーム時間である。他の例として、制御対象3が仮想空間内における車両などである場合、1ステップは、60fpsの1フレーム時間である。1ステップの時間長は、この例に限定されない。
ログ記録部2bは、例えば、センサ5で検知された制御対象3の内部状態である各関節の角度情報や動作情報、制御対象3の外部状態である画像データ、距離情報、温度情報などを、ログ情報としてステップ毎に記録する。画像データは、画像データそのもの、あるいは画像データのパス情報を記録してもよいし、画像データから抽出した特徴情報を記録してもよい。
また、例えば、ログ記録部2bは、センサ5としてのカメラで撮影された画像データを解析して得られた、当該画像データに含まれる各オブジェクトの位置を示す各位置情報をログ情報として記録することができる。さらに、ログ記録部2bは、カメラにより撮影された画像データに対して、画像データの各画素をクラスラベル、すなわち、具体的なオブジェクトの上位概念に関連付ける、セマンティックセグメンテーションを行った結果をログ情報として記録することができる。このログ情報は、例えば、画像に含まれる各オブジェクトに対して、セマンティックセグメンテーションによるラベルを付した情報となる。
次に、第1の実施形態に係る処理について、より詳細に説明する。図6は、第1の実施形態に係る、制御対象3の制御処理を示す一例のフローチャートである。この図6のフローチャートによる処理の実行に先立って、制御装置1bは、動作制御部11により、ログ記録部2bに記録されるログ情報に基づき制御情報を生成し、生成した制御情報により制御対象3の動作を制御しているものとする。
ステップS10で、制御装置1bにおいて、動作修正部10aは、動作制御部11により生成された制御情報に従った制御対象3の動作が、ログ情報に基づく動作に対して修正された動作であるか否かを判定する。制御装置1bは、修正された動作ではないと判定した場合(ステップS10、「No」)、処理をステップS11に移行させる。
ステップS11で、動作制御部11は、ログ記録部2から次のステップのログ情報を取得し、取得したログ情報に基づき制御情報を生成する。動作制御部11は、生成した制御情報により制御対象3の動作を制御する。次のステップS12で、動作修正部10aは、状態検知部110の出力に応じて、制御対象3の現在の状況(状態)を認識する。制御対象3の状況が認識されると、処理がステップS14に移行される。
一方、動作修正部10aは、ステップS10で、制御対象3の動作が修正された動作であると判定した場合(ステップS10、「Yes」)、処理をステップS13に移行させる。ステップS13で、制御装置1bは、状態予測部104により、修正された動作に基づき制御対象3の現在の状態を予測する。制御対象3の状況が予測されると、処理がステップS14に移行される。
ステップS14で、動作修正部10aは、コスト予測部100により、制御対象3の動作が他のオブジェクトに対して所定ステップ後に干渉する可能性を予測する。コスト予測部100は、例えば、制御対象3の動作の軌跡と、他のオブジェクトの動作の軌跡とに基づき、既存の手法を用いて所定ステップ後の干渉の可能性を予測する。
例えば、上述したステップS12からこのステップS14に処理が移行した場合は、制御対象3の動作の軌跡は、ログ記録部2bに記録されるログ情報に基づき求めることができる。また、ステップS13からステップS14に処理が移行した場合は、制御対象3の動作の軌跡は、予測により求められる。他のオブジェクトの動作の軌跡は、例えばログ記録部2bに記録されるログ情報を、現在から所定ステップ遡って解析することで、予測できる。
コスト予測部100は、この予測された干渉の可能性を、制御対象3の動作に対して予測されるコストとして算出する。次のステップS15で、動作修正部10aは、判定部101により、算出されたコストに基づき、制御対象3の動作が他のオブジェクトに対して、現在から所定ステップ以内に干渉する可能性があるか否かを判定する。例えば、判定部101は、ステップS14で算出されたコストに対して閾値判定を行い、コストが閾値以上であれば、干渉の可能性があると判定する。
ステップS15で、判定部101は、干渉の可能性が無いと判定した場合(ステップS15、「No」)、処理をステップS17に移行させる。ステップS17で、制御装置1bは、動作制御部11により、ログ記録部2に記録されるログ情報に基づき制御情報を生成し、制御対象3の動作を制御する。その後、処理をステップS10に戻す。
一方、ステップS15で、判定部101は、現在から所定ステップ以内のある時間において干渉の可能性があると判定した場合(ステップS15、「Yes」)、処理をステップS16に移行させる。ステップS16で、動作修正部10aは、ログ記録部2に記録される、例えば現在の時間に対応するログ情報に基づく動作を修正する。例えば、動作修正部10aは、例えば、ステップS14で可能性が予測された干渉を回避するように、動作を修正する。動作が修正されると、処理がステップS17に移行される。この場合に、動作制御部11は、ステップS17で、修正された動作に応じた制御情報を生成し、制御対象3の動作を制御する。その後、処理をステップS10に戻す。
図7は、第1の実施形態に係る動作修正処理を示す一例のフローチャートである。図7のフローチャートによる処理は、上述した図6にフローチャートにおけるステップS16の処理に相当する。
ステップS100で、動作修正部10aは、検索部102により、図6のステップS15で判定部101による干渉の可能性があると判定された時間のNステップ前(Nは正の整数)の状態St-Nを、ログ記録部2に記録されるログ情報に基づき取得する。
次のステップS101で、動作修正部10aは、検索部102により、ステップS100で取得された状態St-Nと類似する状態S’を、ログ記録部2に記録されるログ情報から検索する。ここで、検索部102は、状態S’に対応するログ情報を、状態St-Nに対応するログ情報に対して過去のログ情報から検索する。検索部102は、検索結果として、状態S’に対応する複数のログ情報を出力できる。
ここで、類似状態とは、制御対象3の重心軌跡(位置)に着目した場合、2つのログ情報間で、制御対象3と、他のオブジェクトとの位置関係が、幾何学的類似配置関係にある状態をいう。幾何学的類似配置関係の例としては、ユークリッド距離の差が所定以下である場合が考えられる。また、カメラにより撮影された画像データを用いた類似性の判断としては、セマンティックセグメンテーションを行った結果、制御対象3のセグメントと、他のオブジェクトのセグメントとの位置関係が2つのログ情報間で類似しているかどうかの判断を用いる。
類似状況は、この例に限定されない。例えば、類似状況は、制御対象3が動作する環境4が類似する状況であってもよい。すなわち、制御対象3が複数の異なる環境4下で動作する場合、それぞれの環境4下で取得されたログ情報から、現在制御対象3が動作する環境4と類似した環境を検索する。類似状況に係る環境としては、制御対象3の周囲の明るさ、温度、風、などが考えられる。また、制御対象3が路面を移動する移動体の場合には、路面の状態(凹凸、ウェットまたはドライ、傾斜)などが考えられる。これらの環境4は、実空間および仮想空間の何れにも適用可能である。
図8および図9を用いて、ステップS101による検索処理について、より具体的に説明する。図8および図9は、第1の実施形態に適用可能な、ログ記録部2bに記録されるログ情報の例を示す図である。図8および図9の例では、説明のため、ログ記録部2bに記録されるログ情報20を、画像として示している。例えば、ログ記録部2bは、ログ情報に含まれる画像データに対して行われたセマンティックセグメンテーションに基づき画像データの各画素にクラスラベルが付加された情報を、ログ情報20に含めて記録する。これにより、ログ情報20に基づき、制御対象3によるセグメントの位置と、他のオブジェクトによるセグメントの位置との相対位置関係を取得することが可能となる。図8および図9の例では、各セグメントを、当該セグメントが対応するオブジェクトの画像として示している。
図8において、ログ情報20は、時間tの時系列に沿った複数ステップによる各時間t1、t2、t3、…のログ情報201、202、203、…を含む。図8の例では、時間t1におけるログ情報201は、制御対象3であるアームロボット60の画像を含んでいる。図8の例では、アームロボット60は、アームロボットの基部61の画像と、基部に対して関節部を軸として回動可能な腕部62の画像とを含んでいる。
次の時間t2におけるログ情報202は、オブジェクトとして、アームロボット60を含むと共に、人63の画像の一部を含む。アームロボット60において、基部61に対する腕部62の角度は、ログ情報201の場合と変わっていないことが分かる。
次の時間t3におけるログ情報203は、ログ情報202と同様にオブジェクトとしてアームロボット60および人63を含む。ここで、ログ情報203は、ログ情報202に対して、人63がより中央に移動していることが分かる。また、ログ情報203において、アームロボット60の基部61に対する腕部62の角度が、先の時間t1およびt2におけるログ情報201および202に対して変化していることが分かる。
図9は、ステップS100で取得された状態St-Nにおけるログ情報20nの例を示す。図9に示すログ情報20nは、図8に示すログ情報20に含まれる、基部61および腕部62を備えるアームロボット60の画像と、人63の画像とにそれぞれ対応する、基部61’および腕部62’を備えるアームロボット60’の画像と、人63’の画像と、を含んでいる。
図8の各ログ情報201、202、203、…と、図9のログ情報20nと、を比較した場合、アームロボット60および60’、ならびに、人63および63’の位置関係に基づき、ログ情報201、202、203、…のうち、ログ情報203が状態St-Nにおけるログ情報20nに対する類似度が高いと判断できる。したがって、ステップS101において、検索部102は、ログ情報203の状態が、状態St-Nに類似する状態S’であると判断できる。
ここで、図8の各ログ情報201、202、203、…に対応する各時間t1、t2、t3、…は、ログ情報20nに対応する時間tnに対して、過去の時間であるものとする。時間tnは、現在の時間からNステップ遡った時間であって、制御対象3の現在の動作に対して時間的に連続する過去の時間である。
一方、図8の各時間t1、t2、t3、…は、制御対象3の現在の動作に対して時間的に連続している必要は無い。例えば、時間tnは、制御対象3であるアームロボット60が各時間t1、t2、t3、…の時系列で稼働した後、一旦動作を停止し、再稼働した際の時間であってもよい。また、図8の各ログ情報201、202、203、…と、図9のログ情報20nとが異なる環境で取得されたものであってもよい。したがって、図8の各時間t1、t2、t3、…が含まれる時系列と、図9の時間tnが含まれる時系列と、が異なる時系列であると見做すことができる。
図7の説明に戻り、ステップS101で状態S’が検索されると、処理がステップS102に移行される。状態S’が複数検索された場合、ステップS102で、検索部102は、複数の状態S’に対応する各ログ情報から、適用するログ情報をコストの観点から絞り込む。例えば、検索部102は、結果の行動の良否を決定するコスト関数6を定義し、検索された複数のログ情報から、このコスト関数6に従い計算されたコストが最小になるログ情報を選択することができる。
例えば、制御対象3がロボットである場合、制御対象3が他のオブジェクトと干渉(衝突)する可能性がより小さい場合によりコストが低くなるコスト関数6が考えられる。これに限らず、各アクチュエータの加速度の絶対値や2乗の和が小さい(つまり、急峻な動きをしない)場合にコストが低くなるコスト関数が考えられる。また、制御対象3の、静的障害物を含む他のオブジェクトからの距離が所定以内である場合に、近距離になるほどコストが高い値となるコスト関数6を設定することも考えられる。さらに、エネルギ消費がより少ない場合にコストの値が低くなるコスト関数6を設定することも考えられる。さらにまた、時間をコストの要件とすることもできる。例えば、特定の動作(回避動作など)を実行するためにより多くの時間を要する場合に、コストを高い値とすることが考えられる。
また、制御対象3が仮想空間内での仮想的な装置である場合には、制御対象3が仮想空間内での仮想的な装置である場合には、衝突(干渉)する可能性と、他の要因とを考慮したコスト関数6を設定することができる。例えば、制御対象3がカーレースによる車両である場合、当該車両、および、当該車両に干渉する可能性のある他の車両の少なくとも一方の速度を、衝突可能性に対して優先して考慮したコスト関数6を設定することが考えられる。一例として、衝突可能性が60%以上であれば、車両が回避行動を取る動作に関するコストが低い値となり、衝突可能性が60%未満であれば、車両の速度が高速になる動作に関するコストが低い値となるようなコスト関数6が考えられる。別の例として、条件が異なる複数のコスト関数6を用意し、複数のコスト関数6から適用するコスト関数をランダム、あるいは、特定の規則に従い選択してもよい。
なお、ステップS101では、過去のログ情報から状態S’に対応するログ情報を検索している。したがって、状態S’を起点とした所定時間(例えば10秒)における一連の動作は、ログ情報から取得することができる。そのため、コスト関数6によるコスト計算が可能となる。
図7の説明に戻り、ステップS102で適用するログ情報が絞り込まれると、処理がステップS103に移行される。ステップS103で、動作修正部10aにおいて、修正部103は、現在のログ情報による動作と、ステップS102で絞り込まれた、適用するログ情報による動作とを接続し、現在のログ情報による動作を、適用するログ情報による動作により修正する。その際、修正部103は、現在のログ情報による動作と、適用するログ情報による動作と、をスムーズに接続するためのスムージング処理を行う。
ステップS103のスムージング処理について、図10および図11を用いて説明する。ここでは、説明のため、仮想空間内でのカーレースのゲームなどにおける車両を制御対象3とし、ログ情報が当該車両の走行軌跡であるものとする。図10は、スムージング処理の必要性を説明するための図である。
図10において、走行軌跡200は、図6のステップS16で動作修正を行う前の走行軌跡を示している。現在の位置202において図6のステップS15の判定がなされ、走行軌跡200に従い走行すると、位置201で他のオブジェクトとの干渉が発生することが予測されたものとする。走行軌跡210は、この干渉発生の予測に応じて図7のステップS102で絞り込まれた走行軌跡とする。図10の例では、走行軌跡200および走行軌跡210は、特定の接続点で接続されていない。したがって、車両の走行軌跡を走行軌跡200から走行軌跡210に切り替えると、車両のジャンプが発生し、好ましくない。
これを、例えば上述のアームロボット60に適用した場合、基部61と腕部62との関節部において角度が急激に変化することになり、当該関節部を駆動するためのアクチュエータに過大な負荷がかかることになる。
そのため、第1の実施形態では、図7のステップS103において、現在の動作と、修正適用後の動作とに対してスムージング処理を施し、現在の動作から修正適用後の動作に連続的に移行するようにしている。
図11は、第1の実施形態に適用可能なスムージング処理を説明するための図である。図11において、位置202で走行軌跡200から走行軌跡210に向けて移行を開始し、位置202から所定時間(例えば1秒)走行して走行軌跡210への移行が完了する場合について考える。ここでは、この場合において、移行開始点の位置202から移行完了点の位置203にかけて、走行軌跡200と走行軌跡210との間で線形補間を行うことで、スムージング処理を行う。
より具体的には、修正部103は、走行軌跡200の延長(図11において位置202と位置201とを結ぶ点線により示す)と、走行軌跡210とを最短距離で結ぶ線を、ステップ毎に、位置202から位置203に向けて車両の走行速度に応じて移動させる。修正部103は、この線の内分点を取り、当該線が内分点により分割される比率を、位置202から位置203に向けて線形に変化させる。
例えば、値aを走行軌跡200の延長から内分点までの距離、値bを内分点から走行軌跡210までの距離とし、a+b=1とする。この場合、位置202では、a=0およびb=1、位置203では、a=1およびb=0となる。修正部103は、位置202および203の中間点では、位置202に近い側からa1+b1=1、a2+b2=1、とした場合に、a1<a2、b1>b2、としてステップ毎に値aおよびbを線形に増加、減少させる。修正部103は、このようにステップ毎に位置を変化させた内分点を通じて、位置202と位置203とを結ぶ。これにより、位置202および203で走行軌跡200および210に連続的に接続される走行軌跡220が生成され、線形補間によるスムージングが行われる。
修正部103は、このようにして、ログ情報に基づく動作をステップ毎に修正し、修正した動作(走行軌跡220)を示す制御情報を動作制御部11に渡す。動作制御部11は、渡された制御情報に従い制御対象3の動作を制御する。また、例えば、修正部103は、位置203において、走行軌跡210に対応するログ情報を動作制御部11に渡す。動作制御部11は、位置203以降は、当該ログ情報に従い制御対象3の動作を制御する。
このようにスムージングを行うことで、現在の動作から修正適用後の動作への移行をスムーズに実施できる。これにより、仮想空間内における不自然な動作切り替えや、ロボットなどにおけるアクチュエータへの過負荷を抑制することが可能である。
なお、現在の動作から修正適用後の動作への移行の際のスムージング処理は、移行を連続的に行うことが可能であれば、線形補間に限定されない。例えば2次曲線など曲線を用いて補完処理を行ってもよい。
ここで、第1の実施形態に係る先読み処理について説明する。例えば、上述した図11の例において、動作制御部11が、走行軌跡210への切り替えを行った後、走行軌跡210に対応するログ情報に従い制御対象3の動作を制御した場合に、さらに先の位置で、当該制御対象3に対する干渉が発生する可能性がある。動作修正部10aは、このような場合の干渉を考慮して、状態の先読みを行う。
図12は、第1の実施形態に適用可能な先読み処理を説明するための図である。この図12と、上述した図6のフローチャートなどを用いて、先読み処理について説明する。なお、ここでは、上述した図10および図11と同様に、説明のため、カーレースのゲームなどにおける車両を制御対象3とし、ログ情報が当該車両の走行軌跡であるものとする。また、図12において、セクション3001、3002、3003、3004、3005および3006は、時間の経過に伴う状態の変化を示している。
セクション3001において、制御対象3は、第1のログ情報に基づく走行軌跡230aに従い動作が制御される。コスト予測部100および判定部101により、走行軌跡230a上の位置233において所定時間先まで先読みを行い、位置233に対して将来の位置232にて、第2のログ情報に基づく走行軌跡231に従い動作が制御される他のオブジェクト(他の制御対象3)との間で干渉が発生する可能性があると予測されたものとする(図6、ステップS14、ステップS15)。
動作修正部10aにおいて検索部102は、位置233における状況と類似する状況を、ログ記録部2bに記録されるログ情報から検索する(図7、ステップS101)。その結果、セクション3002に拡大して示されるように、第3のログ情報に基づく走行軌跡230bに移行することで、位置232における干渉が回避される。そこで、位置233を開始点とする、走行軌跡230b上の範囲234を、位置233に接続する。このときの接続は、図11を用いて説明したスムージング処理により行う。
こうして図6のステップS16による動作修正が行われると、ステップS17で動作修正結果に従い制御対象3の動作制御がなされ、処理がステップS10に戻される。この場合は、修正された動作であるので、処理がステップS13に移行される。
ステップS13では、状態予測部104により走行軌跡230bに関する予測がなされ、予測結果に基づき、コスト予測部100および判定部101により、セクション3003に示されるように、走行軌跡230bの位置235において所定時間先まで先読みを行い、位置235に対して将来の位置236において再び干渉が発生する可能性があると予測される(図6、ステップS14、ステップS15)。
動作修正部10aにおいて検索部102は、位置236から所定時間分だけ戻った位置235における状況と類似する状況を、ログ記録部2bに記録されるログ情報から検索する(図7、ステップS101)。その結果、セクション3004に示されるように、第4のログ情報に基づく走行軌跡230cに移行することで、位置236における干渉が回避される。そこで、位置235を開始点とする、走行軌跡230c上の範囲237を、位置235に接続する。このときの接続は、図11を用いて説明したスムージング処理により行う。
セクション3005は、このようにして、走行軌跡230aに対して、走行軌跡230b上の範囲234と、走行軌跡30c上の範囲237とが接続された様子を示している。
なお、ある位置において将来の位置まで先読みして干渉が発生する可能性があるか否かを判定する場合に、先読みする範囲に制限(例えば5秒先まで先読み)を設ける。現在のログ情報に基づく走行軌跡において、この制限範囲内で干渉が発生する可能性が低い場合、当該走行軌跡を用いる。また、上述した所定時間先までの先読み処理は、例えばステップ毎に実行する。ステップ毎に先読み処理を実行することで、現在の状況に即応できるようになる。
このように、コストに従い予測された干渉に応じた動作修正を再帰的に実行することで、例えば干渉を回避するための動作を、ある程度長い将来ステップまで予測することが可能になる。これにより、制御対象3の動作を、より安定して制御可能となる。
[第2の実施形態]
次に、本開示の第2の実施形態について説明する。第2の実施形態は、過去のログ情報から学習した最適アクション推定器を用いて動作修正を行う例である。なお、第1の実施形態において図6を用いて説明した、制御対象3の制御処理は、ステップS16以外の処理は第2の実施形態においても同様に適用できるので、ここでの説明を省略する。
次に、本開示の第2の実施形態について説明する。第2の実施形態は、過去のログ情報から学習した最適アクション推定器を用いて動作修正を行う例である。なお、第1の実施形態において図6を用いて説明した、制御対象3の制御処理は、ステップS16以外の処理は第2の実施形態においても同様に適用できるので、ここでの説明を省略する。
図13は、第2の実施形態に係る、図2の動作修正部10に対応する動作修正部10bの機能を説明するための一例の機能ブロック図である。図13に示される動作修正部10bは、第1の実施形態に係る図5に示した動作修正部10aの検索部102の代わりに、最適動作推定部120を備える。
最適動作推定部120は、ログ記録部2bに記録される過去のログ情報に基づき、入力された状態Stから、最適動作Atを推定するように予め学習された最適アクション推定器を含む。最適アクション推定器は、過去のログ情報から学習された、At=G(St)を実現する関数Gのパラメータである。
図14は、第2の実施形態に係る動作修正処理を示す一例のフローチャートである。図14のフローチャートによる処理は、上述した図6のフローチャートにおけるステップS16の処理に相当する。
ステップS200で、動作修正部10bは、検索部102により、図6のステップS15で判定部101による干渉の可能性があると判定された時間のNステップ前(Nは正の整数)の状態St-Nを、ログ記録部2に記録されるログ情報に基づき取得する。
次のステップS201で、動作修正部10bは、最適動作推定部120において、最適アクション推定器により、ステップS200で取得された状態St-Nに基づき、最適動作At+1を求める。その後、最適動作推定部120は、ステップ毎に、最適アクション推定器により出力される最適動作At+1がもたらす新状態St+1に基づく動作を生成する。これにより、ログ情報に対応する時系列情報が生成される。
最適動作推定部120は、生成した動作と、図6のステップS16により動作修正行う前に用いていたログ情報に基づく動作とを比較する。最適動作推定部120は、比較の結果、生成した新状態St+1に基づく動作と、ログ情報に基づく動作とがスムーズに接続可能となるまで両者が近付いたか否かを判定する。最適動作推定部120は、両者が近付いたと判定された時点で、処理をステップS202に移行させる。
ステップS202で、修正部103は、現在のログ情報による動作と、ステップS201で生成された動作とをスムーズに接続するためのスムージング処理を行う。スムージング処理は、第1の実施形態において図10および図11を用いて説明した処理と同様なので、ここでの説明を省略する。
ここで、上述した最適アクション推定器の構成方法について説明する。第2の実施形態に係る最適アクション推定器、すなわち、At=G(St)を実現する関数Gのパラメータを生成する方法として、非特許文献1に開示される、ビヘイビアクローニング(Behavior Cloning)と呼ばれる方法を適用することができる。ビヘイビアクローニングは、状態Stに対する最適動作Atのペアを、学習サンプルとして大量に用意し、この学習サンプルをニューラルネットワークで学習させる方法である。
大量の学習サンプルが事前に得られない場合には、特許文献2に開示される、強化学習を利用できる。強化学習は、例えば、ロボットが環境中で自律的に試行錯誤的行動を通じ、良い行動の結果環境から与えられる報酬を手掛かりに、At=G(St)における関数G(ポリシー関数)を学習する。
第2の実施形態によれば、過去のログ情報から学習した最適アクション推定器を用いて動作の修正を行うため、ログ記憶部2bに大量のログ情報が記憶されていなくても、適切な制御を実現できる。
[第3の実施形態]
次に、第3の実施形態について説明する。第3の実施形態は、ユーザ操作に基づき動作の修正を行う例である。なお、第1の実施形態において図6を用いて説明した、制御対象3の制御処理は、ステップS16以外の処理は第3の実施形態においても同様に適用できるので、ここでの説明を省略する。
次に、第3の実施形態について説明する。第3の実施形態は、ユーザ操作に基づき動作の修正を行う例である。なお、第1の実施形態において図6を用いて説明した、制御対象3の制御処理は、ステップS16以外の処理は第3の実施形態においても同様に適用できるので、ここでの説明を省略する。
図15は、第3の実施形態に係る、図2の動作修正部10に対応する動作修正部10cの機能を説明するための一例の機能ブロック図である。図15に示される動作修正部10cは、第2の実施形態に係る図13に示した動作修正部10bに対して、通知部130と、スイッチ部131と、操作受付部132と、が追加されている。
通知部130は、判定部101によりコスト予測部100により算出されたコストが所定以上であると判定された場合に、その旨を操作受付部132に通知すると共に、例えばディスプレイ1020に対する表示などによりユーザへの通知を行う。スイッチ部131は、通知部130の制御に従い、最適動作推定部120の出力および操作受付部132の出力の何れを修正部103に供給するかを切り替える。スイッチ部131は、デフォルト状態で最適動作推定部120の出力を修正部103に供給するように制御されている。
操作受付部132は、通知部130により算出されたコストが所定以上であると判定された旨が通知されると、ユーザ操作により動作の修正を行うためのユーザインタフェースによる画面をディスプレイ1020に表示させる。それと共に、操作受付部132は、入力デバイス1030に対する動作制御のためのユーザ操作入力を受け付ける。なお、入力デバイス1030は、制御対象3の種類に応じたものとすると、好ましい。例えば、制御対象3がアームロボットであれば、入力デバイス1030としてジョイスティックを用いる、制御対象3がレースゲームの車両であれば入力デバイス1030としてゲームパッドを用いる、などが考えられる。
図16は、第3の実施形態に係る動作修正処理を示す一例のフローチャートである。図16のフローチャートによる処理は、上述した図6のフローチャートにおけるステップS16の処理に相当する。
図6のステップS15において、動作修正部10cは、判定部101により、算出されたコストに基づき、制御対象3の動作が他のオブジェクトに対して、現在から所定ステップ以内に干渉する可能性があると判定されると、処理を図16のステップS300に移行する。ステップS300で、動作修正部10cは、通知部130により、所定ステップ以内の干渉の可能性を、例えばディスプレイ1020に対する表示によりユーザに通知する。
次のステップS301で、通知部130は、ステップS300の通知に応じてユーザ操作による動作制御が発動されたか否かを判定する。通知部130は、発動されたと判定した場合(ステップS301、「Yes」)、処理をステップS302に移行させる。例えば通知部130は、ディスプレイ1020に対して上述の通知表示を行うと共に、ユーザ操作により動作制御を行うか否かの入力を促すメッセージを表示させる。通知部130は、このメッセージに応じてユーザ操作による動作制御を行う旨が入力された場合に、ユーザ操作による動作制御が発動されたと判定する。
ステップS302で、操作受付部132は、制御対象3の動作をユーザ操作により修正するためのユーザ操作手段を提示する。例えば、操作受付部132は、ユーザ操作を行うための画面をディスプレイ1020に表示させると共に、入力デバイス1030に対するユーザ操作の受付を開始する。また、ステップS302で、通知部130は、スイッチ部131を、操作受付部132の出力を修正部103に供給するように制御する。
次のステップS303で、操作受付部132は、動作の修正を行うためのユーザ操作が開始されたか否かを判定する。開始されていないと判定された場合(ステップS303、「No」)、処理がステップS303に戻される。一方、開始されたと判定された場合(ステップS303、「Yes」)、処理がステップS304に移行される。
ステップS304で、修正部103は、操作受付部132からユーザ操作に応じて出力された制御信号に応じて、制御対象3の動作を修正する。このとき、修正部103は、現在のログ情報による動作と、操作受付部132から出力された制御信号に従った動作とをスムーズに接続するためのスムージング処理を行う。スムージング処理は、第1の実施形態において図10および図11を用いて説明した処理と同様なので、ここでの説明を省略する。
次のステップS305で、操作受付部132は、動作の修正を行うためのユーザ操作が終了されたか否かを判定する。終了されていないと判定された場合(ステップS305、「No」)、処理がステップS305に戻される。一方、終了されたと判定された場合(ステップS305、「Yes」)、処理がステップS306に移行される。
ステップS306で、修正部103は、ユーザ操作による動作修正の終了位置に対して、ステップS301でユーザ操作が発動される以前に用いたログ情報による動作をスムーズに接続するためのスムージング処理を行う。スムージング処理は、第1の実施形態において図10および図11を用いて説明した処理と同様なので、ここでの説明を省略する。
上述したステップS301で、通知部130は、ステップS300の通知に応じてユーザ操作による動作制御が発動されなかったと判定した場合(ステップS301、「No」)、処理をステップS200~ステップS202に移行させ、第2の実施形態において説明した、過去のログ情報から学習した最適アクション推定器を用いて動作修正を行う。
第3の実施形態において、ユーザ操作に応じた動作修正によるデータを教示データとして、例えばログ記録部2bに記録することができる。この教示データを用いて、最適動作推定部120における最適アクション推定器を追加学習することで、最適アクション推定器の改善が可能である。また、この教示データを、ログ情報として第1の実施形態に係るログ記録部2bに追加することで、ユーザ操作に応じた教示情報がログ情報に基づく制御対象3の動作の修正に活用でき、例えば他のオブジェクトとの干渉を回避する性能が向上されることが期待できる。
[他の実施形態]
(本開示のコンピュータゲームへの適用)
コンピュータゲームにおいて、ログ情報に基づきゲーム状況を再現可能なものが知られている。このようなコンピュータゲームにおいては、例えばゲーム内のある環境においてユーザが操作したゲーム状況をログ情報として記録する。後に、記録されたログ情報に基づきゲームをリプレイすることで、当該ログ情報が記録されたゲーム内環境下で、ゲーム状況を再現することができる。また、例えばカーレーシングゲームなどにおいて、あるドライバのレーシングスタイルを模倣したログ情報を予め作成し、当該ゲーム内のNPC(ノンプレイヤーキャラクター)を構成することもできる。
(本開示のコンピュータゲームへの適用)
コンピュータゲームにおいて、ログ情報に基づきゲーム状況を再現可能なものが知られている。このようなコンピュータゲームにおいては、例えばゲーム内のある環境においてユーザが操作したゲーム状況をログ情報として記録する。後に、記録されたログ情報に基づきゲームをリプレイすることで、当該ログ情報が記録されたゲーム内環境下で、ゲーム状況を再現することができる。また、例えばカーレーシングゲームなどにおいて、あるドライバのレーシングスタイルを模倣したログ情報を予め作成し、当該ゲーム内のNPC(ノンプレイヤーキャラクター)を構成することもできる。
このようなコンピュータゲームに本開示を適用することで、例えば、過去に記録された限られた数のログ情報に基づき多数の組み合わせの新規プレイデータを再構成することが可能となる。
例えば、過去に記録された、複数のプレイヤによる複数のログ情報を抽出する。抽出した複数のログ情報のそれぞれに対応する各制御対象3に、対応するログ情報に基づく動作を実行させる。各制御対象3は、それぞれ他の制御対象3が自身に対して干渉の可能性があるとされた場合に、例えば第1の実施形態または第2の実施形態にて説明したようにして動作を修正される。これによれば、より自然な形でNPCによる新規の動作を実現できる。
この場合において、制御対象3の動作を制御するためのログ情報を、例えば現実のプロプレイヤーなどの情報に基づき生成することができる。これにより、恰も例えば複数のプロプレイヤーが実際に対戦しているかのようなゲーム状況を構成可能である。さらに、ユーザ操作に応じた動作を混在させることで、ユーザがプロプレイヤーと対戦しているかのような状況を作り出すことができる。
また、本開示によれば、上述したようにして新規プレイデータを再構成することができるため、当該ゲームの操作や特性に熟練したユーザが、NPCの特性を知り尽くしてゲーム自体に飽きてしまうことが抑制される。
(本開示のドローンの制御に対する適用)
エンターテイメントなどの分野において、相互に関連する位置の複数のドローンを群として制御することが考えられる。例えば、各ドローンの飛行軌跡を予め定めてログ情報としてそれぞれ記録し、記録された各ログ情報に基づき、各ドローンの飛行を制御することができる。この場合において、群に含まれる複数のドローンのうち例えば1台のドローンが何らかのアクシデントで他のドローンに衝突してしまうことが有り得る。
エンターテイメントなどの分野において、相互に関連する位置の複数のドローンを群として制御することが考えられる。例えば、各ドローンの飛行軌跡を予め定めてログ情報としてそれぞれ記録し、記録された各ログ情報に基づき、各ドローンの飛行を制御することができる。この場合において、群に含まれる複数のドローンのうち例えば1台のドローンが何らかのアクシデントで他のドローンに衝突してしまうことが有り得る。
本開示をドローン群の動作制御に適用することで、このようなアクシデントに対応することが可能である。単独のドローンを制御対象3として動作制御するためのログ情報を予め作成して記録しておく。この記録されたログ情報に基づき、ドローン群に含まれる各ドローンの動作制御を行う。
ドローン群に含まれる複数のドローンのうち注目ドローンに対して他のドローンがアクシデントにより接近してきた場合に、注目ドローンは、第1の実施形態または第2の実施形態にて説明したようにして、当該他のドローンからの干渉を予測され、干渉を回避するように、ログ情報に基づく動作を修正される。これにより、注目ドローンがアクシデントなどにより接近してきた他のドローンから衝突されてしまう事態が回避可能である。
なお、本技術は以下のような構成も取ることができる。
(1)
制御対象の動作を第1の時系列情報に基づき制御する制御部と、
前記制御対象の目的達成に伴うコストを予測する予測部と、
前記予測部により予測された前記コストに応じて、前記制御対象の前記第1の時系列情報に基づく動作を修正する修正部と、
を備える制御装置。
(2)
前記修正部は、
前記第1の時系列情報に基づく動作を、前記第1の時系列情報と異なる第2の時系列情報に基づく動作に対して連続する動作に修正する
前記(1)に記載の制御装置。
(3)
前記予測部により予測された前記コストに応じて、1以上の時系列情報から、該予測に対応する状況と類似する類似状況を検索する検索部をさらに備え、
前記第2の時系列情報は、
前記1以上の時系列情報から前記検索部により前記類似状況が検索された時系列情報である
前記(2)に記載の制御装置。
(4)
前記検索部は、
前記予測が対応する状況を含む環境がさらに類似する前記類似状況を検索する
前記(3)に記載の制御装置。
(5)
前記第2の時系列情報は、
前記第1の時系列情報を入力情報とした学習により最適と推定された動作に応じた時系列情報である
前記(2)に記載の制御装置。
(6)
前記第2の時系列情報は、
前記制御対象による自律的な試行錯誤動作により学習され最適と推定された動作に応じた時系列情報である
前記(2)に記載の制御装置。
(7)
前記修正部は、
前記制御対象の動作を制御するためのユーザ操作に基づき、前記第1の時系列情報に基づく動作を修正する
前記(2)に記載の制御装置。
(8)
前記修正部は、
前記ユーザ操作に基づき修正された前記動作に応じた第3の時系列情報を、前記第1の時系列情報に追加する
前記(7)に記載の制御装置。
(9)
前記修正部は、
前記修正された前記第1の時系列情報に基づき前記制御部に制御された前記制御対象の動作に対して前記予測部により予測された前記コストに応じて前記修正をさらに行う
前記(1)乃至(8)の何れかに記載の制御装置。
(10)
前記予測部は、
前記制御対象が他のオブジェクトに干渉する可能性に応じて前記コストを予測する
前記(1)乃至(9)の何れかに記載の制御装置。
(11)
前記予測部は、
前記制御対象の周囲の状況を検知する検知部の検知結果に基づき前記コストを予測する
前記(1)乃至(10)の何れかに記載の制御装置。
(12)
前記制御部は、
前記第1の時系列情報に対応する第1の環境とは異なる第2の環境で、該第1の時系列情報に基づき前記制御対象の動作を制御する
前記(2)乃至(11)の何れかに記載の制御装置。
(13)
前記制御部は、
前記第1の環境で作成された前記第1の時系列情報に基づき前記制御対象の動作を制御する
前記(12)に記載の制御装置。
(14)
前記第1の時系列情報は、定形パターンに従い予め作成される
前記(12)または(13)に記載の制御装置。
(15)
前記制御対象は、ファクトリオートメーションのためのロボットである
前記(12)乃至(14)の何れかに記載の制御装置。
(16)
前記制御部は、
前記制御対象が単独で動作する前記第1の環境で作成された前記第1の時系列情報に基づき、該制御対象を含み、複数のオブジェクトが同時に動作する前記第2の環境で、該制御対象の動作を制御する
前記(12)に記載の制御装置。
(17)
前記制御対象は、外部からの飛行制御が可能な無人航空機である
前記(16)に記載の制御装置。
(18)
前記制御部は、
仮想空間内の前記制御対象の動作を前記第1の時系列情報に基づき制御する
前記(2)に記載の制御装置。
(19)
前記修正部は、
前記制御対象とは異なる他の制御対象の動作を制御するためのユーザ操作に基づき予測される前記コストに応じて、該制御対象の前記第1の時系列情報に基づく動作を修正する
前記(18)に記載の制御装置。
(20)
前記予測部は、
前記制御対象および前記他の制御対象の少なくとも一方の速度に応じて前記コストを予測する
前記(19)に記載の制御装置。
(21)
制御対象の動作を第1の時系列情報に基づき制御する制御ステップと、
前記制御対象の目的達成に伴うコストを予測する予測ステップと、
前記予測ステップにより予測された前記コストに応じて、前記制御対象の前記第1の時系列情報に基づく動作を修正する修正ステップと、
を有する制御方法。
(1)
制御対象の動作を第1の時系列情報に基づき制御する制御部と、
前記制御対象の目的達成に伴うコストを予測する予測部と、
前記予測部により予測された前記コストに応じて、前記制御対象の前記第1の時系列情報に基づく動作を修正する修正部と、
を備える制御装置。
(2)
前記修正部は、
前記第1の時系列情報に基づく動作を、前記第1の時系列情報と異なる第2の時系列情報に基づく動作に対して連続する動作に修正する
前記(1)に記載の制御装置。
(3)
前記予測部により予測された前記コストに応じて、1以上の時系列情報から、該予測に対応する状況と類似する類似状況を検索する検索部をさらに備え、
前記第2の時系列情報は、
前記1以上の時系列情報から前記検索部により前記類似状況が検索された時系列情報である
前記(2)に記載の制御装置。
(4)
前記検索部は、
前記予測が対応する状況を含む環境がさらに類似する前記類似状況を検索する
前記(3)に記載の制御装置。
(5)
前記第2の時系列情報は、
前記第1の時系列情報を入力情報とした学習により最適と推定された動作に応じた時系列情報である
前記(2)に記載の制御装置。
(6)
前記第2の時系列情報は、
前記制御対象による自律的な試行錯誤動作により学習され最適と推定された動作に応じた時系列情報である
前記(2)に記載の制御装置。
(7)
前記修正部は、
前記制御対象の動作を制御するためのユーザ操作に基づき、前記第1の時系列情報に基づく動作を修正する
前記(2)に記載の制御装置。
(8)
前記修正部は、
前記ユーザ操作に基づき修正された前記動作に応じた第3の時系列情報を、前記第1の時系列情報に追加する
前記(7)に記載の制御装置。
(9)
前記修正部は、
前記修正された前記第1の時系列情報に基づき前記制御部に制御された前記制御対象の動作に対して前記予測部により予測された前記コストに応じて前記修正をさらに行う
前記(1)乃至(8)の何れかに記載の制御装置。
(10)
前記予測部は、
前記制御対象が他のオブジェクトに干渉する可能性に応じて前記コストを予測する
前記(1)乃至(9)の何れかに記載の制御装置。
(11)
前記予測部は、
前記制御対象の周囲の状況を検知する検知部の検知結果に基づき前記コストを予測する
前記(1)乃至(10)の何れかに記載の制御装置。
(12)
前記制御部は、
前記第1の時系列情報に対応する第1の環境とは異なる第2の環境で、該第1の時系列情報に基づき前記制御対象の動作を制御する
前記(2)乃至(11)の何れかに記載の制御装置。
(13)
前記制御部は、
前記第1の環境で作成された前記第1の時系列情報に基づき前記制御対象の動作を制御する
前記(12)に記載の制御装置。
(14)
前記第1の時系列情報は、定形パターンに従い予め作成される
前記(12)または(13)に記載の制御装置。
(15)
前記制御対象は、ファクトリオートメーションのためのロボットである
前記(12)乃至(14)の何れかに記載の制御装置。
(16)
前記制御部は、
前記制御対象が単独で動作する前記第1の環境で作成された前記第1の時系列情報に基づき、該制御対象を含み、複数のオブジェクトが同時に動作する前記第2の環境で、該制御対象の動作を制御する
前記(12)に記載の制御装置。
(17)
前記制御対象は、外部からの飛行制御が可能な無人航空機である
前記(16)に記載の制御装置。
(18)
前記制御部は、
仮想空間内の前記制御対象の動作を前記第1の時系列情報に基づき制御する
前記(2)に記載の制御装置。
(19)
前記修正部は、
前記制御対象とは異なる他の制御対象の動作を制御するためのユーザ操作に基づき予測される前記コストに応じて、該制御対象の前記第1の時系列情報に基づく動作を修正する
前記(18)に記載の制御装置。
(20)
前記予測部は、
前記制御対象および前記他の制御対象の少なくとも一方の速度に応じて前記コストを予測する
前記(19)に記載の制御装置。
(21)
制御対象の動作を第1の時系列情報に基づき制御する制御ステップと、
前記制御対象の目的達成に伴うコストを予測する予測ステップと、
前記予測ステップにより予測された前記コストに応じて、前記制御対象の前記第1の時系列情報に基づく動作を修正する修正ステップと、
を有する制御方法。
1a,1b 制御装置
2a,2b ログ記録部
3 制御対象
4 環境
5 センサ
10a,10b,10c 動作修正部
11 動作制御部
20,201,202,203,20n ログ情報
100 コスト予測部
101 判定部
102 検索部
103 修正部
104 状態予測部
110 状態検知部
120 最適動作推定部
130 通知部
131 スイッチ部
132 操作受付部
2a,2b ログ記録部
3 制御対象
4 環境
5 センサ
10a,10b,10c 動作修正部
11 動作制御部
20,201,202,203,20n ログ情報
100 コスト予測部
101 判定部
102 検索部
103 修正部
104 状態予測部
110 状態検知部
120 最適動作推定部
130 通知部
131 スイッチ部
132 操作受付部
Claims (19)
- 制御対象の動作を第1の時系列情報に基づき制御する制御部と、
前記制御対象の目的達成に伴うコストを予測する予測部と、
前記予測部により予測された前記コストに応じて、前記制御対象の前記第1の時系列情報に基づく動作を修正する修正部と、
を備える制御装置。 - 前記修正部は、
前記第1の時系列情報に基づく動作を、前記第1の時系列情報と異なる第2の時系列情報に基づく動作に対して連続する動作に修正する
請求項1に記載の制御装置。 - 前記予測部により予測された前記コストに応じて、1以上の時系列情報から、該予測に対応する状況と類似する類似状況を検索する検索部をさらに備え、
前記第2の時系列情報は、
前記1以上の時系列情報から前記検索部により前記類似状況が検索された時系列情報である
請求項2に記載の制御装置。 - 前記検索部は、
前記予測が対応する状況を含む環境がさらに類似する前記類似状況を検索する
請求項3に記載の制御装置。 - 前記第2の時系列情報は、
前記第1の時系列情報を入力情報とした学習により最適と推定された動作に応じた時系列情報である
請求項2に記載の制御装置。 - 前記第2の時系列情報は、
前記制御対象による自律的な試行錯誤動作により学習され最適と推定された動作に応じた時系列情報である
請求項2に記載の制御装置。 - 前記修正部は、
前記制御対象の動作を制御するためのユーザ操作に基づき、前記第1の時系列情報に基づく動作を修正する
請求項2に記載の制御装置。 - 前記修正部は、
前記ユーザ操作に基づき修正された前記動作に応じた第3の時系列情報を、前記第1の時系列情報に追加する
請求項7に記載の制御装置。 - 前記修正部は、
前記修正された前記第1の時系列情報に基づき前記制御部に制御された前記制御対象の動作に対して前記予測部により予測された前記コストに応じて前記修正をさらに行う
請求項1に記載の制御装置。 - 前記予測部は、
前記制御対象が他のオブジェクトに干渉する可能性に応じて前記コストを予測する
請求項1に記載の制御装置。 - 前記予測部は、
前記制御対象の周囲の状況を検知する検知部の検知結果に基づき前記コストを予測する
請求項1に記載の制御装置。 - 前記制御部は、
前記第1の時系列情報に対応する第1の環境とは異なる第2の環境で、該第1の時系列情報に基づき前記制御対象の動作を制御する
請求項2に記載の制御装置。 - 前記制御部は、
前記第1の環境で作成された前記第1の時系列情報に基づき前記制御対象の動作を制御する
請求項12に記載の制御装置。 - 前記第1の時系列情報は、定形パターンに従い予め作成される
請求項12に記載の制御装置。 - 前記制御部は、
前記制御対象が単独で動作する前記第1の環境で作成された前記第1の時系列情報に基づき、該制御対象を含み、複数のオブジェクトが同時に動作する前記第2の環境で、該制御対象の動作を制御する
請求項12に記載の制御装置。 - 前記制御部は、
仮想空間内の前記制御対象の動作を前記第1の時系列情報に基づき制御する
請求項2に記載の制御装置。 - 前記修正部は、
前記制御対象とは異なる他の制御対象の動作を制御するためのユーザ操作に基づき予測される前記コストに応じて、該制御対象の前記第1の時系列情報に基づく動作を修正する
請求項16に記載の制御装置。 - 前記予測部は、
前記制御対象および前記他の制御対象の少なくとも一方の速度に応じて前記コストを予測する
請求項17に記載の制御装置。 - 制御対象の動作を第1の時系列情報に基づき制御する制御ステップと、
前記制御対象の目的達成に伴うコストを予測する予測ステップと、
前記予測ステップにより予測された前記コストに応じて、前記制御対象の前記第1の時系列情報に基づく動作を修正する修正ステップと、
を有する制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020527245A JP7243722B2 (ja) | 2018-06-29 | 2019-05-07 | 制御装置および制御方法 |
US17/254,210 US20210268650A1 (en) | 2018-06-29 | 2019-05-07 | Control device and control method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-125031 | 2018-06-29 | ||
JP2018125031 | 2018-06-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020003742A1 true WO2020003742A1 (ja) | 2020-01-02 |
Family
ID=68985610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/018281 WO2020003742A1 (ja) | 2018-06-29 | 2019-05-07 | 制御装置および制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210268650A1 (ja) |
JP (1) | JP7243722B2 (ja) |
WO (1) | WO2020003742A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4075225A4 (en) * | 2019-12-13 | 2023-06-07 | Positec Power Tools (Suzhou) Co., Ltd. | JOB CARD MAKING METHOD AND DEVICE, ROBOT AND STORAGE MEDIA |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07129213A (ja) * | 1993-11-08 | 1995-05-19 | Nippon Telegr & Teleph Corp <Ntt> | ロボット制御装置 |
JPH10263957A (ja) * | 1997-03-25 | 1998-10-06 | Ricoh Co Ltd | 組立装置 |
JP2005050105A (ja) * | 2003-07-28 | 2005-02-24 | Matsushita Electric Works Ltd | 自律移動のための経路生成装置及び該装置を用いた自律移動装置 |
JP2018092620A (ja) * | 2016-12-02 | 2018-06-14 | 株式会社クボタ | 走行経路決定装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678251B2 (en) * | 2014-12-16 | 2020-06-09 | Aktiebolaget Electrolux | Cleaning method for a robotic cleaning device |
KR102339531B1 (ko) * | 2014-12-16 | 2021-12-16 | 에이비 엘렉트로룩스 | 로봇 청소 장치를 위한 경험-기반의 로드맵 |
US11320279B2 (en) * | 2016-12-02 | 2022-05-03 | Kubota Corporation | Travel route management system and travel route determination device |
-
2019
- 2019-05-07 US US17/254,210 patent/US20210268650A1/en active Pending
- 2019-05-07 JP JP2020527245A patent/JP7243722B2/ja active Active
- 2019-05-07 WO PCT/JP2019/018281 patent/WO2020003742A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07129213A (ja) * | 1993-11-08 | 1995-05-19 | Nippon Telegr & Teleph Corp <Ntt> | ロボット制御装置 |
JPH10263957A (ja) * | 1997-03-25 | 1998-10-06 | Ricoh Co Ltd | 組立装置 |
JP2005050105A (ja) * | 2003-07-28 | 2005-02-24 | Matsushita Electric Works Ltd | 自律移動のための経路生成装置及び該装置を用いた自律移動装置 |
JP2018092620A (ja) * | 2016-12-02 | 2018-06-14 | 株式会社クボタ | 走行経路決定装置 |
Also Published As
Publication number | Publication date |
---|---|
US20210268650A1 (en) | 2021-09-02 |
JPWO2020003742A1 (ja) | 2021-07-08 |
JP7243722B2 (ja) | 2023-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shalev-Shwartz et al. | Long-term planning by short-term prediction | |
JP6869692B2 (ja) | ゲームプログラム、ゲーム処理方法、ゲームシステム、およびゲーム装置 | |
JP3714268B2 (ja) | ロボット装置 | |
US8280574B2 (en) | Path planning device and method, cost evaluation device, and moving body | |
JP4005061B2 (ja) | 情報処理装置、プログラム、および、情報処理装置におけるオブジェクト制御方法 | |
US6697711B2 (en) | Operational control method, program, and recording media for robot device, and robot device | |
US20070265074A1 (en) | Game program and game apparatus | |
US20210268382A1 (en) | Information display method and apparatus, electronic device, and computer storage medium | |
US7690988B2 (en) | Information processing method | |
KR102675698B1 (ko) | 자율 주행 방법 및 장치 | |
JP2004283959A (ja) | ロボット装置、その動作制御方法、及びプログラム | |
JP7243722B2 (ja) | 制御装置および制御方法 | |
US8487928B2 (en) | Game program, game apparatus, and game control method | |
US7478073B2 (en) | Architecture for self-developing devices | |
WO2017199565A1 (ja) | ロボット、ロボットの動作方法、及びプログラム | |
Browning et al. | Skill acquisition and use for a dynamically-balancing soccer robot | |
TWI835638B (zh) | 於非對稱策略架構下以階層式強化學習訓練主策略的方法 | |
JP2004298975A (ja) | ロボット装置、障害物探索方法 | |
WO2021102800A1 (zh) | 智能设备的控制方法、装置、***和存储介质 | |
JP3955756B2 (ja) | 動作制御装置、方法及びプログラム | |
Ikemoto et al. | Learning to move autonomously in a hostile world | |
JP2000006068A (ja) | ヒューマン・ロボットコラボレーション制御方法と装置及びプログラムを記録した記録媒体 | |
JP6313537B2 (ja) | コンピュータプログラム及びゲームシステム | |
JP2017124659A (ja) | 駐車支援システム、駐車支援方法及びプログラム | |
JP2008090606A (ja) | エージェントコントローラ及びコンピュータプログラム |
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: 19826463 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020527245 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19826463 Country of ref document: EP Kind code of ref document: A1 |