WO2021090906A1 - 制御装置、制御ユニット、それらを有する制御システム - Google Patents

制御装置、制御ユニット、それらを有する制御システム Download PDF

Info

Publication number
WO2021090906A1
WO2021090906A1 PCT/JP2020/041448 JP2020041448W WO2021090906A1 WO 2021090906 A1 WO2021090906 A1 WO 2021090906A1 JP 2020041448 W JP2020041448 W JP 2020041448W WO 2021090906 A1 WO2021090906 A1 WO 2021090906A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
skill
agent
schedule
virtual
Prior art date
Application number
PCT/JP2020/041448
Other languages
English (en)
French (fr)
Inventor
パーベル サフキン
藤原クリスティアン直人
ロクラン ウィルソン
Original Assignee
株式会社エスイーフォー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社エスイーフォー filed Critical 株式会社エスイーフォー
Publication of WO2021090906A1 publication Critical patent/WO2021090906A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom

Definitions

  • the present invention relates to a control device, a control unit, and a control system having them.
  • Patent Documents 1 and 2 disclose a technique in which an operator remotely controls a work machine by operating an operation stick while viewing an image transmitted from the work machine.
  • Patent Documents 1 and 2 have the following problems.
  • the operator since the operator operates the operation stick of the remote control device to remotely control the work machine, the operator is required to have the same level of skill as operating the actual work machine. Therefore, it is difficult for a beginner operator who is not accustomed to operating the work machine to remotely control the work machine.
  • the operator since the operator remotely controls the work machine in real time while viewing the image transmitted from the work machine, the operator performs remote control work with the remote control device for the same time as operating the work machine. There is a need to do. In addition, there is a time lag between the time when the image transmitted from the work machine is displayed to the operator and the time when the input signal of the operation stick by the operator is sent to the work machine. Under such conditions, the operator needs to work without losing his / her concentration while remotely controlling the work machine, which requires a large physical and mental burden on the operator. Generally, it is said that the work efficiency when the work machine is remotely controlled is reduced to about 60% of the work efficiency when the operator is on board and operates the actual work machine.
  • the operator can remotely control only one work machine by the remote control device, so that the operator can operate a plurality of work machines. It cannot be operated.
  • control device that generates a control signal for controlling one or a plurality of agents, and generates a virtual world corresponding to the real world based on the surrounding environment information of the agents in the real world. That, accepting input operations performed by the user in the virtual world to instruct the tasks to be performed by the agent, and skill dependency information about one or more skills that each agent has and other skills to which that skill depends.
  • To generate a schedule consisting of a series of action tasks performed by each agent of one or more agents in order to cause the agent to execute the task instructed by the input operation based on the skill information including at least the agent.
  • a control device is provided that includes a processor that is configured to generate and execute control signals that operate on a schedule.
  • control unit that controls one or more agents, and receives a control signal including a schedule consisting of a series of operation tasks executed by each agent, and the control signal. Based on this, a control unit with a processor configured to generate an action command to cause each agent to perform a series of action tasks is provided.
  • FIG. 1 shows the control system which concerns on one Embodiment of this invention. It is the schematic which shows the structure of an example of a work machine. It is the schematic which shows the structure of another example of a work machine. It is a flowchart explaining the 1st operation example of the control method in this Embodiment. It is a figure which shows the virtual world which reproduced the surrounding environment of the work machine in the real world. It is a figure which shows the virtual world which reproduced the surrounding environment of the work machine in the real world, the figure (a) shows the state of the input operation which specifies an excavation area, and the figure (b) is an input operation which specifies a waste area. Shows the state of.
  • FIG. 7 is a directed acyclic graph representing the schedule generated by the process shown in FIG. It is a figure which shows how each work machine operates according to the execution instruction. It is a figure which shows a mode that a user operates a virtual bucket of the first virtual work machine in a virtual world. It is a figure which shows the input operation which the user specifies the excavation area and the disposal area in a virtual world.
  • FIG. 1 is a block diagram showing a control system according to an embodiment of the present invention.
  • FIG. 2 is a schematic view showing the configuration of an example of the work machine
  • FIG. 3 is a schematic view showing the configuration of another example of the work machine.
  • the control system 1 includes a work machine 100 as an agent, a control unit 200 for controlling the work machine 100, and a control device 300 for controlling the control unit 200. There is.
  • the first work machine 100 disclosed in the present embodiment has, for example, a moving body 110, a swivel body 120 provided so as to be swivel with respect to the moving body 110, and swivel. It is a shovel car provided with a working body 130 supported by the body 120.
  • the working body 130 of the first working machine 100 which is exemplified and disclosed in the present embodiment, has an arm portion 132 supported by the swivel body 120 and a bucket 134 provided at the tip of the arm portion 132. ..
  • the bucket 134 is used for excavating soil or the like.
  • the first work machine 100 includes an environment sensor 140 that senses the surrounding environment of the work machine 100.
  • the first work machine 100 further includes a transmission / reception unit 150 for transmitting / receiving signals / information to / from the control unit 200.
  • the moving body 110 is a vehicle having an endless track in the example shown in FIG.
  • the form of the moving body 110 is not limited to this, and may be a vehicle having a plurality of wheels, a ship, a submersible, a flying object such as a helicopter or a drone, or any other form.
  • the environment sensor 140 senses the surrounding environment of the work machine 100.
  • the surrounding environment includes, for example, electromagnetic waves (including visible light, invisible light, X-rays, gamma rays, etc.), sound, temperature, humidity, wind velocity, atmospheric composition, etc. Therefore, the environmental sensor 140 is a visual sensor, X-rays, etc. -It may include, but is not limited to, a gamma ray sensor, an auditory sensor, a temperature sensor, a humidity sensor, a wind velocity sensor, an atmospheric analyzer, and the like. Further, the environment sensor 140 preferably includes a GPS (Global Positioning System) sensor, an altitude sensor, a gyro sensor, and the like.
  • GPS Global Positioning System
  • the environmental sensor 140 is used as a position detecting means for detecting the position of the work machine 100 outdoors or indoors, in addition to the GPS sensor, WiFi positioning, beacon positioning, self-contained navigation positioning, geomagnetic positioning, sonic positioning, UWB (Ultra). Wide Band: Ultra-wideband) It is preferable to have a configuration for positioning, visible light / invisible light positioning, and the like.
  • the environment sensor 140 is shown to be integrated with the work machine 100, but if the environment sensor 140 can sense the surrounding environment, position, posture, etc. of the work machine 100, the environment sensor 140 works. It does not have to be integrated with the machine 100.
  • the environment sensor 140 may be installed at a position away from the work machine 100, or may be installed on a moving body such as a vehicle or a drone different from the work machine 100.
  • the visual sensor for example, a 2D camera, a depth sensor, a 3D camera, an RGB-D sensor, a 3D-LiDAR sensor, a Kinect TM sensor, and the like can be used.
  • the visual information obtained by the environment sensor 140 is sent to the control unit 200 and processed by the control unit 200.
  • Other environmental information obtained by the environment sensor 140 can also be transmitted to the control unit 200 and used for analysis of the surrounding environment of the work machine 100.
  • the transmission / reception unit 150 can be connected to the control unit 200 by a wired connection or a wireless connection, and therefore, transmission / reception of those signals / information can be performed by a wired or wireless connection.
  • the communication protocol, frequency, and the like used for transmitting and receiving those signals and information can be appropriately selected according to the application, environment, and the like in which the work machine 100 is used.
  • the transmission / reception unit 150 may be connected to a network such as the Internet.
  • the second work machine 160 disclosed in the present embodiment is, for example, a dump truck provided with a moving body 170 and a loading platform 175 provided on the moving body 110. is there.
  • the loading platform 175 of the second work machine 160 which is exemplified and disclosed in the present embodiment, has a horizontal posture (see FIG. 3A) in which a transported object is loaded and moved by a drive unit (not shown), and a transported object. The posture can be changed from the lift posture (see FIG. 3B) in which the front part of the loading platform 175 is lifted informationally so as to drop the load from the rear part.
  • the second work machine 160 includes an environment sensor 180 that senses the surrounding environment of the work machine 160.
  • the second work machine 160 further includes a transmission / reception unit 185 that transmits / receives signals / information to / from the control unit 200.
  • the moving body 170 is a vehicle provided with front wheels that enable left and right movement directions and rear wheels that are driving wheels.
  • the form of the moving body 160 is not limited to this, and may be a vehicle having an endless track, a ship, a submersible, a flying object such as a helicopter or a drone, or any other form.
  • the second work machine 160 also includes an environment sensor 180 and a transmission / reception unit 185 configured in the same manner as the environment sensor 140 and the transmission / reception unit 150 included in the first work machine 100.
  • each of the work machines 100 and 160 is provided with the environment sensors 140 and 180, respectively.
  • the environment sensors 140 and 180 respectively.
  • the environment sensor 140 it suffices if one of 180 is provided.
  • control unit 200 in the control system 1 of the present embodiment will be described.
  • control unit 200 of the system 1 includes a processor 220, a storage unit 240, and a transmission / reception unit 260.
  • the processor 220 mainly controls the moving body 110 of the first working machine 100, the swivel body 120, and each driving unit (not shown) of the working body 130, the moving body 170 of the second working machine 160, and the driving unit of the loading platform 175. , Controls the environment sensors 140 and 180, processes the information transmitted from the environment sensors 140 and 180, interacts with the control device 300, and controls the transmission / reception unit 260.
  • the processor 220 is composed of, for example, a central processing unit (CPU), an integrated circuit for a specific application (ASIC), an embedded processor, a microprocessor, a digital signal processor (DSP), or a combination thereof.
  • the processor 220 may be composed of one or more processors.
  • the processor 220 includes, for example, control signals of the work machines 100 and 160 sent from the control device 300, operation commands generated in response to the control signals, and operations of the work machines 100 and 160 actually executed.
  • the ambient environment data collected by the environment sensors 140 and 180 is stored in the storage unit 240 as data, and machine learning is executed using the data to generate learning data and store it in the storage unit 240. ..
  • the processor 220 determines an operation to be executed by the work machines 100 and 160 based on the control signals of the work machines 100 and 160 transmitted from the control device 300 from the next time onward by referring to the learning data, and generates an operation instruction. It is possible to do.
  • the control units 200 of the working machines 100 and 160 in the real world have a machine learning function locally.
  • the storage unit 240 includes a computer program for controlling the work machines 100 and 160, a computer program for processing information transmitted from the environment sensors 140 and 180, and a control device 300 as described in the present embodiment. It stores a computer program that interacts, a computer program that controls the transmission / reception unit 260, a program that executes machine learning, and the like. Preferably, the storage unit 240 stores software or a program that causes a computer to perform a process as described in this embodiment to cause a function as a control unit 200.
  • the storage unit 240 also has a role of at least temporarily storing the state of each part of the work machines 100 and 160, the information transmitted from the environment sensors 140 and 180, the information sent from the control device 300, the control signal, and the like. .. Further, as described above, the storage unit 240 also has a role of storing the operation instructions of the work machines 100 and 160, the operations of the work machines 100 and 160 executed in response to the operation instructions, and the learning data.
  • the storage unit 240 preferably includes a non-volatile storage medium that retains the storage state even when the power of the control unit 200 is turned off. For example, a hard disk drive (HDD), a solid-state storage device (SSD), or a compact storage unit 240.
  • Optical disk storage such as disc (CD), digital versatile disc (DVD), Blu-ray disc (BD), non-volatile random access memory (NVRAM), EPROM (Rrasable Programmable Read Only Memory), non-volatile storage such as flash memory It has.
  • the storage unit 240 may further include volatile storage such as a static random access memory (SRAM), but each computer program described above is a non-volatile (non-temporary) storage medium of the storage unit 340. Is remembered in.
  • SRAM static random access memory
  • the transmission / reception unit 260 transmits / receives signals / information to / from the work machines 100 and 160.
  • the control unit 200 can be connected to each of the work machines 100 and 160 by a wired connection or a wireless connection, and therefore the transmission and reception of those signals / information can be performed by a wired or wireless connection.
  • the communication protocol, frequency, and the like used for transmitting and receiving those signals and information can be appropriately selected according to the application and environment in which the work machines 100 and 160 are used.
  • the transmission / reception unit 260 may be connected to a network such as the Internet.
  • the transmission / reception unit 260 transmits / receives signals / information to / from the control device 300.
  • the control unit 200 can be connected to the control device 300 by a wired connection or a wireless connection, and therefore, transmission and reception of those signals / information can be performed by a wired or wireless connection.
  • the communication protocol, frequency, etc. used for transmitting and receiving those signals / information can be appropriately selected.
  • control unit 200 is shown in FIG. 1 as being independent of the work machines 100 and 160, it is not limited to that form.
  • the control unit 200 may be provided in each of the working machines 100 and 160.
  • the number of work machines 100 and 160 used in this system 1 is not limited to one, and a plurality of and / or different types of work machines 100 and 160 may be operated independently or in cooperation with each other.
  • a single control unit 200 may control a plurality of work machines 100 and 160, or a plurality of control units 200 may cooperate to control a plurality of work machines 100 and 160.
  • control device 300 in the control system 1 of the present embodiment will be described.
  • the control device 300 of the system 1 includes a processor 320, a storage unit 340, an input device 350, a transmission / reception unit 360, and a display 370.
  • the processor 320 mainly controls the interaction with the control unit 200, the processing based on the input performed by the user via the input device 350, the control of the transmission / reception unit 360, and the display of the display 370. In particular, the processor 320 generates a control signal based on the user input input by the input device 350 and transmits it to the control unit 200.
  • the processor 220 of the control unit 200 is one or a plurality of processors for operating the moving body 110, the swivel body 120, each drive unit (not shown) of the working body 130, and the environment sensor 140 of the working body 100 based on the control signal. And one or more operation commands for operating each drive unit (not shown) of the moving body 170 and the loading platform 175 of the work machine 160 and the environment sensor 180.
  • the processor 320 is composed of, for example, a central processing unit (CPU), an integrated circuit for a specific application (ASIC), an embedded processor, a microprocessor, a digital signal processor (DSP), or a combination thereof.
  • the processor 320 may be composed of one or more processors.
  • the processor 320 may be composed of one or more processors.
  • the processor 320 of the control device 300 is configured to generate a UI (user interface) screen to be presented to the user and display it on the display 370.
  • the UI screen (not shown) includes, for example, a selection button that hierarchically provides the user with a plurality of options.
  • the processor 320 is based on a real-world image or video of the work machine 100 and / or the surrounding environment of the work machine 160 taken by the work machine 100's environment sensor 140 and / or the work machine 160's environment sensor 180. An image or moving image of a virtual world (simulation space) is generated and displayed on the display 370.
  • the processor 320 When the processor 320 generates an image or a moving image of a virtual world based on an image or a moving image of the real world, for example, by associating a coordinate system of the real world with a coordinate system of the virtual world, the processor 320 connects the real world and the virtual world. Build a correlation. Further, the image or moving image of the real world and the image or moving image of the virtual world (simulation space) may be displayed on the display 370 at the same time. Further, the UI screen may be superimposed on the image or moving image of the surrounding environment of the robots 100 and 160 or the image or moving image of the virtual world.
  • An image or moving image of a virtual world (simulation space) based on a real-world image or moving image of the surrounding environment of the working machines 100 or 160 also includes an object existing in the surrounding environment of the working machine 100 or 160.
  • the processor 320 By building a correlation between the real world and the virtual world as the processor 320 generates a virtual world image or video based on the real world image or video, the user in the virtual world, as described in detail below. It is possible to make a change in the real world based on the operation of and to reflect the change in the real world in the virtual world.
  • the storage unit 340 is interactively performed by the user on the UI screen via a program for causing the processor 320 to execute the operation described in the present embodiment, a computer program that interacts with the control unit 200, and an input device 350. It stores a computer program that performs processing based on input, a computer program that controls the transmission / reception unit 360, a computer program that displays the display 370, and the like.
  • the storage unit 340 stores software or a program that causes the computer to perform an operation described later to generate a function as the control device 300.
  • the storage unit 340 stores a computer program that can be executed by the processor 320, including instructions that implement the methods described below with reference to FIGS. 4 and 7.
  • the storage unit 340 is photographed by the environment sensor 140 of the work machine 100 and / or the environment sensor 180 of the work machine 160 and sent to the control device 300 via the control unit 200. It is possible to temporarily store the image or moving image of the surrounding environment and the image or moving image of the virtual world (simulation space) generated by the processor 320 based on the image or moving image of the surrounding environment.
  • the storage unit 340 of the control device 300 also preferably includes a non-volatile storage medium that retains the storage state even when the power of the control device 300 is turned off.
  • the storage unit 340 may further include volatile storage such as a static random access memory (SRAM), but each computer program described above is a non-volatile (non-temporary) storage medium of the storage unit 340. Is remembered in.
  • the storage unit 340 also functions as a database of the system 1, and the operation data (including the operation command generated by the control unit 200) of the working machines 100 and 160 in the real world operated based on the control signal and the environment sensor 140, The ambient environment data indicating the operation result detected in 180 is stored.
  • the input device 350 for example, a keyboard, a mouse, a joystick, or the like can be used. Furthermore, it is possible to track the position and posture using infrared rays or the like, and a device called a tracker equipped with a trigger button or the like can also be used.
  • the display 370 includes a touch panel type display device, the touch panel can be used as an input device.
  • the display 370 is a head-mounted display used as a display device for VR (virtual reality), AR (augmented reality), MR (mixed reality), etc., and has a user's line-of-sight tracking function
  • the line-of-sight tracking function can be used as an input device.
  • a device having a line-of-sight tracking function but not a display can use the line-of-sight tracking function as an input device.
  • a voice input device can also be used as an input device.
  • the input device 350 As described above, the user can select, for example, select a selection button, input characters, or the surrounding environment photographed by the environment sensors 140 and 180 on the UI screen displayed on the display 370. Objects included in the image or video of, or virtual objects included in the image or video of the virtual world (simulation space) generated based on the image or video of the surrounding environment taken by the environment sensors 140, 180. You can choose.
  • the transmission / reception unit 360 transmits / receives signals / information to / from the control unit 200.
  • the control device 300 can be connected to the control unit 200 by a wired connection or a wireless connection, and therefore, transmission / reception of these signals / information can be performed by a wired connection or a wireless connection.
  • the communication protocol, frequency, and the like used for transmitting and receiving the signal and information can be appropriately selected according to the application and environment in which the system 1 is used.
  • the transmission / reception unit 360 may be connected to a network such as the Internet.
  • the display 370 is used as a display device such as a display monitor, a computer / tablet device (including a device equipped with a touch panel type display), VR (virtual reality) / AR (augmented reality), or MR (mixed reality). Any form of display device such as a head-mounted display or a projector can be used.
  • the head-mounted display when a head-mounted display is used as the display 370, the head-mounted display provides an image or a moving image in which the left and right eyes of the user have a difference in distance, thereby causing the user to perceive a three-dimensional image or a moving image. Can be done. Further, when the head-mounted display has a motion tracking function, it is possible to display an image or a moving image according to the position and direction of the head of the user wearing the head-mounted display. Furthermore, when the head-mounted display has a user's line-of-sight tracking function as described above, the line-of-sight tracking function can be used as an input device.
  • FIG. 4 is a flowchart illustrating a first operation example of the control method in the present embodiment.
  • the ambient environment information of the real-world work machines 100 and 160 obtained by the environment sensors 140 and 180 of the work machines 100 and 160 is transmitted to the control device 300 via the control unit 200 (step of FIG. 4).
  • the visual information may be a single still image, a plurality of images, or a moving image, and preferably includes depth information.
  • the control device 300 may store the transmitted visual information in the storage unit 340.
  • the processor 320 of the control device 300 generates a virtual world (simulation space) that reproduces the surrounding environment of the work machines 100 and 160 based on the visual information, and displays it on the display 370 of the control device 300 (FIG. Step 4 S410).
  • a virtual world simulation space
  • the surrounding environment of the work machines 100 and 160 in the real world is displayed.
  • the work machines 100 and 160 are one element of the system 1, the configurations and functions of each part of the work machines 100 and 160 are known in the system 1, and the information is stored in the storage unit 240 and / or the storage unit 340.
  • the characteristics of the moving body 110 of the first work machine (excavator car) 100 (dimensions of each part, minimum turning radius, average moving speed, etc.)
  • the characteristics of the swivel body 120 dimensions of each part, average moving speed, turning radius, etc.
  • Characteristics of the work body 130 dimensions of each part, average operating speed, possible work range, etc.
  • characteristics of the moving body 170 of the second work machine (dump truck) 160 dimensions of each part, minimum turning radius, average movement speed, etc.
  • the characteristics (dimensions of each part, movable area) of the loading platform 175 and the like are stored in the storage unit 240 and / or the storage unit 340.
  • the processor 320 displays virtual work machines 100_vr and 160_vr corresponding to the real
  • FIG. 5 is a diagram showing a virtual world that reproduces the surrounding environment of a work machine in the real world.
  • the virtual bucket 134_vr of the first virtual work machine 100_vr which is an object of the first work machine (excavator car) 100 and displayed, can be operated by the tracker 350 to move the virtual bucket 134_vr. It is possible. For example, by pointing the virtual bucket 134_vr with a tracker and pressing the trigger button, it is possible to move the virtual bucket 134_vr.
  • FIG. 5 shows a virtual arm 132_vr and a virtual bucket 134_vr of the virtual work body of the first virtual work machine in the virtual world. Further, FIG. 5 shows a model M showing the state of the first work machine 100 in the real world and a virtual tracker 350_vr corresponding to the tracker 350, together with the virtual arm 132_vr and the virtual bucket 134_vr.
  • the operation of the virtual work machine and the area designation in the virtual world using the input device 350 as described above, and the display on the display 370 thereof are controlled by the processor 320.
  • the user instructs the work machines 100 and 160 to execute the task by performing the operation described below in the virtual world on the display 370 using the input device 350 (step of FIG. 4). S415).
  • the work machines 100 and 160 are made to perform the task of digging the soil of the area 1 in the environment and disposing of it in the area 2.
  • FIG. 6 is a diagram showing a virtual world that reproduces the surrounding environment of a work machine in the real world. As shown in FIG. 6, in the virtual world on the display 370, the surrounding environment of the work machines 100 and 160 in the real world in which the work machines 100 and 160 exist is reproduced.
  • the user uses the tracker 350 (the corresponding virtual tracker 350_vr is displayed in FIG. 6A).
  • the processor 320 identifies the position, region and depth (that is, the volume of soil to be excavated) of the area 1 of the ground where the soil is excavated. Subsequently, similarly to this, as shown in FIG.
  • the tracker 350 (FIG. 6B shows the corresponding virtual tracker 350_vr.
  • the processor 320 identifies the position, area and height of the area 2 on the ground where the soil is discarded.
  • the task of digging the soil for the designated volume of the area 1 in the environment and discarding the soil on the area 2 in the environment is given.
  • the agent used to execute the task (in this example, the first and second work machines 100 and 160) may be selected through the UI screen on the display 370. If no particular selection is made, all agents existing in the system 1 may be automatically selected. In this example, it is assumed that the first work machine 100 is selected as the agent 1 and the second work machine 160 is selected as the agent 2.
  • These input operations are stored in the storage unit 340 of the control device 300 as the input information shown below.
  • region 1 and region 2 include information regarding the position, region and volume of each region.
  • the processor 320 generates a control signal to be transmitted to the control unit 200 based on the input operation stored in the storage unit 340 (step S420 in FIG. 4).
  • the storage unit 340 of the control device 300 stores information on the skills of the agents 1 and 2 in the data structure shown in Table 1.
  • the volume in the above table is twice the volume of the dump truck bed when the volume of the excavator bucket is 1, (that is, the dump truck is equivalent to two excavation operations by the excavator car). It is possible to load a volume of soil). Further, the speeds in the above table indicate that the average moving speed of the dump truck is twice that when the average moving speed of the excavator car is 1.
  • the stored skill information may include the same skills provided by different agents (skills # 5 and # 9 in Table 1), and skills and agents that are not used for the instructed task. It may be included (# 11 and # 12 in Table 1).
  • the information regarding the skills provided by each of the agents 1 and 2 shown in Table 1 is an example, and the content of the stored skill information is not limited to this.
  • the processor 320 selects all the skills required to accomplish the intended task contained in the input information (step S705 in FIG. 7). In this step, the processor 320 first selects the following skills corresponding to the intent (excavation and disposal) contained in the input information from the data in Table 1 stored in the storage unit 340. # 7 excavation (excavator car) # 3 Disposal (dump truck) # 6 Disposal (excavator car)
  • the processor 320 selects the skill required to execute each of the selected skills based on the dependent skill information of each of the selected skills.
  • the processor 320 deletes the overlapping skills among the skills selected as described above in step S705 (step S710 in FIG. 7).
  • the following skill list is generated and stored in the storage unit 340 of the control device 300.
  • processor 320 creates a plurality of task trees as options. First, the processor 320 selects the skill "discard” corresponding to "intention (sink)" as the root node. # 3 Disposal (dump truck) # 6 Disposal (excavator car)
  • the processor 320 sequentially adds skills subordinate to each skill to generate a task tree.
  • Each generated task tree is stored in the storage unit 340.
  • the processor 320 calculates how many times each skill operation of each of the above task trees needs to be repeated based on the volume of the area 1 to be excavated.
  • the processor 320 uses the positions of the virtual work machines 100_vr and 160_vr reproduced in the virtual world, the positions of the areas 1 and 2 (that is, their distance relationships), and each skill included in the data shown in Table 1.
  • the estimated required time required for each of the above task trees 1) and 2) is calculated based on the operating speed of (step S720 in FIG. 7).
  • the estimated time required for the task tree can be calculated by accumulating the time required for each skill in the tree.
  • the calculated estimated time required for each tree is stored in the storage unit 340.
  • the processor 320 acquires the candidate schedule from the task tree with the shortest time from the estimated required time of each task tree calculated as described above (step S725 in FIG. 7). For example, in a scenario where the excavated area 1 and the abandoned area 2 are close to each other and the excavator car can simply turn the excavator to dispose of the soil in the area 2, the soil excavated from the area 1 can be disposed of in the area 2 rather than loaded on a dump truck. It takes less time if the excavator itself repeats excavation and disposal.
  • the excavator car moves the excavated soil between the area 1 and the area 2 with the excavated soil placed on the bucket and repeatedly disposes of the soil.
  • the task tree of "# 3 Disposal (Dump Truck)-# 2 Truck Transport- # 8 Loading- # 1 Truck Movement- # 7 Excavation- # 4 Excavator Car Movement" of Task Tree 1) is the most required. It shall be selected as having less time.
  • Candidate schedules can be obtained by following this tree in reverse order, such as "# 4 excavator car movement- # 7 excavation- # 1 truck movement- # 8 loading- # 2 truck transportation- # 3 disposal (dump truck)". can do.
  • the processor 320 determines whether or not the acquired candidate schedule has a path for performing the intention (sink: discard) from the intention (source: excavation) (step S730 in FIG. 7).
  • the path of the candidate schedule selected as described above is "# 4 excavator car movement- # 7 excavation- # 1 truck movement- # 8 loading- # 2 truck transportation- # 3 disposal (dump truck)". , "Excavation” and "disposal" are included, so the process proceeds to the next step S735.
  • the process returns to step S725 and the schedule with the second shortest predicted required time is selected. Get as a schedule. In this way, among the schedules having a path for performing the intention (sink: discard) from the intention (source: excavation), the schedule with the shortest predicted required time is acquired as a candidate schedule.
  • the information about the skills of each agent 1 and 2 stored in the data structure shown in Table 1 may include the energy consumption rate (fuel consumption rate, power consumption rate, etc.) of each skill. If the energy consumption rate is provided as information about the skill, the task tree with the lowest integrated estimated energy consumption required to execute each skill may be selected, or the estimated time required and the estimated energy consumption may be selected. The optimum task tree may be selected in consideration of the above.
  • the processor 320 divides the area 1 designated for excavation into units processed by a single task (step S735 in FIG. 7).
  • the area 1 designated for excavation is divided into a plurality of excavation areas by the bucket of the excavator car.
  • the volume of the excavation area 1 is four times the volume of the excavator bucket, the area 1 is divided into four excavation areas.
  • the processor 320 calculates the number of times N for excavating the area 1 and executing each task in order to dispose of the soil, and unrolls the schedule (step S740 in FIG. 7).
  • step S740 cleans up the schedule developed in step S740 (step S745 in FIG. 7).
  • Schedule cleanup is done by omitting zero-time operational tasks, that is, operational tasks that the agent does not need to move or execute.
  • An operation task with zero required time is, for example, the following operation.
  • step S735 a result of dividing the area 1 into four excavation areas in step S735, if the first excavation area is located in the area above the ground (in the air), there is no soil to be excavated from there, so the first excavation area.
  • the operation task of excavating the excavation area of is omitted.
  • step S740 the operation task indicated by the following ⁇ is deleted.
  • the schedule generated in this way can be represented by a directed acyclic graph (DAG) as shown in FIG.
  • DAG directed acyclic graph
  • the schedule can be expressed in another format such as a behavior tree (Behavior Tree).
  • the processor 320 After generating the control signal in this way, the processor 320 refers to the characteristics of each part of the work machines 100 and 160 stored in the storage unit 340, and performs the operation of each virtual work machine for executing the above schedule. It may be simulated in a virtual world. This makes it possible to confirm in advance whether or not each of the work machines 100 and 160 can operate as expected and execute the schedule in the real world. For example, the processor 320 determines where the excavator car moves to excavate region 1, where to move the dump truck relative to the excavator truck to load soil on the truck bed, and the truck. It is possible to simulate in advance where to move the truck in order to dispose of the soil of the loading platform in the area 2.
  • control signal generated by the processor 320 is transmitted from the control device 300 to the control unit 200 (step S425 in FIG. 4).
  • the control unit 200 that has received the control signal receives the received control signal, information on the configuration and function of each part of the work machines 100 and 160 stored in the storage unit 240, and the environment sensor 140 of the work machines 100 and 160. Motion planning of each work machine 100, 160 is performed based on the ambient environment information detected by, 180, an operation command to be executed by each work machine 100, 160 is generated, and the operation command is generated to each work machine 100, 160. (Step S430 in FIG. 4).
  • the control unit 200 moves, for example, to move the first work machine (excavator car) 100 to a position where excavation of the area 1 is performed, and the first work machine (excavator car) 100 moves each excavation area of the area 1.
  • the work machine (excavator) 100 and the second work machine (dump track) 160 perform motion planning for executing each operation task, and generate operation instructions for executing them.
  • the work machines 100 and 160 execute each operation task of the instructed schedule.
  • the control unit 200 performs motion planning of the work machines 100 and 160 with reference to the surrounding environment information detected by the environment sensors 140 and 180, there is a difference between the environment in the virtual world and the environment in the real world. If so, the content of the operation instruction generated by the control unit 200 may be different from the operation content simulated by the processor 320 of the control device 300 in the virtual world.
  • FIG. 9 is a diagram showing how each work machine is operating according to an execution command.
  • FIG. 9A shows a state in which the excavator car (first work machine 100) is performing excavation 820 after the excavator car movement 805 of FIG. During this time, the dump truck (second working machine 160) moves to the loading position next to the excavator car (truck movement 815 in FIG. 8).
  • FIG. 9B shows a state in which the excavator excavated soil is loaded on the loading platform 175 of the dump truck (loading 825 in FIG. 8). After that, the dump truck transports the soil to the disposal area (truck transport 830 in FIG. 8), and as shown in FIG. 9 (c), the loading platform 175 of the dump truck is raised and the loaded soil is disposed of in the disposal area ( Disposal (truck) 835 in FIG. 8).
  • the working machines 100 and 160 which are agents, execute the schedule as shown in FIG. 8 in this way.
  • the environment sensors 140 and 160 detect the surrounding environment in order to detect the execution result, and the surrounding environment information is transmitted to the control unit 200. Transmit (step S435 in FIG. 4).
  • the surrounding environment information is stored in the storage unit 240. Further, the ambient environment information may be transmitted to the control device 300 and stored in the storage unit 340. Further, the received control signal and the generated operation command can also be stored and stored in the storage unit 240, and they may be transmitted to the control device 300 and stored and stored in the storage unit 340.
  • the processor 220 of the control unit 200 monitors the status of each object executing the task from the surrounding environment information detected by the environment sensors 140 and 180 while the work machines 100 and 160 are executing the task according to the operation instruction. , It is also possible to make changes to the running behavior depending on the situation.
  • the processor 220 uses an arbitrary machine learning algorithm or AI technology to compare and learn the control signal received from the control device 300 and the operation instruction generated by the processor 220 with the surrounding environment information after the task is executed. , It is possible to improve the quality of generated operation instructions.
  • the processor 220 can select, for example, an operation with less possibility of failure and an operation with less momentum by accumulating the generation / execution of the operation instruction and the result and learning them.
  • control unit 200 and the control device 300 may exchange and share the learning result data of the control unit 200 and the learning result data of the control device 300 with each other.
  • the instruction operation of the task that the user wants the work machines 100 and 160 to execute is the instruction operation of the control device 300. It is performed by the user inputting the area designation of each area in the virtual world, and a control signal including a schedule for executing the task is generated. Then, the control unit 200 that has received the control signal performs motion planning of the work machines 100 and 160 based on the received control signal and the ambient environment information of the work machines 100 and 160, and each work machine 100 and 160. The operation command of is generated and executed by the work machines 100 and 160.
  • the work machines 100 and 160 autonomously execute the task (discarding the soil in the area 1 in the area 2) instructed by the user.
  • the operation commands to be executed by the work machines 100 and 160 are collectively transmitted, and the work machines 100 and 160 operate autonomously based on the operation commands, so that the communication is delayed.
  • the work machine can also be operated according to the user's intention.
  • the remote-controlled operator operates the operation stick to remotely control the work machine as in the conventional case.
  • the work efficiency can be significantly improved and the burden on the operator can be reduced.
  • one operator can perform remote control only on one work machine, but according to the present embodiment, a plurality of machines and a plurality of types of work machines can be used. It can be remotely controlled to work together.
  • the excavator car and the dump truck are exemplified as the form of the work machine, but the form of the work machine remotely controlled by the present invention is not limited to these.
  • a wheel loader, a bulldozer, a crane, a construction machine equipped with an attachment for performing operations such as crushing / gripping, and the like can also be used.
  • the agent is not limited to the form of a construction machine, and may be, for example, a robot having an arm having a hand.
  • the environment and applications in which work machines that can be operated using the system of this embodiment are used include space development, mining, mining, resource extraction, agriculture, forestry, and so on. There are a wide variety of environments and applications such as fisheries, livestock industry, search and rescue, disaster support, disaster recovery, humanitarian support, explosives disposal, removal of obstacles on the route, disaster monitoring, and crime prevention monitoring. [Second operation example]
  • the first work machine (excavator) 100 as an agent is displayed as an object. It is possible to operate the virtual bucket 134_vr of the virtual work machine 100_vr of the above with a tracker to move the virtual bucket 134_vr.
  • the virtual bucket 134_vr which is the virtual end effector corresponding to the end effector, is pointed by the tracker and the trigger button is pressed. It is possible to move the virtual bucket 134_vr by pressing. Then, you can operate the tracker to move the virtual bucket to dig the soil in the environment displayed in the virtual world.
  • the communication delay between the real-world control unit 200 in which the work machines 100 and 160 exist and the control device 300 on the user (operator) side does not interfere with the real-time remote operation. If the number is too small, the control command of the operation instruction input and operated by the user on the control device 300 side is immediately transmitted to the control unit 200 to operate the work machines 100 and 160, and in the meantime, the environmental sensors 140 and 180 sense the control command. It is also possible to perform so-called real-time remote operation by immediately transmitting the information on the surrounding environment from the control unit 200 to the control device 300 and presenting it to the user on the display 370.
  • the user When the first virtual work machine in the virtual world and the first work machine (excavator car) 100 in the real world are operated in synchronization with each other, the user operates a tracker to operate a virtual bucket bucket in the virtual world.
  • the first work machine (excavator car) 100 in the real world moves to the corresponding position in the real world, and the user
  • the working body 130 (arm 132 and bucket 134) of the first work machine (excavator car) 100 operates so as to reproduce the same movement as the one operating the tracker to move the virtual bucket 134_vr in the virtual world. And perform the action of digging the soil.
  • the processor 220 of the control unit 200 can be used.
  • motion planning is performed so that the working body 130 of the working machine 100 reproduces the movement of the user operating the tracker to move the virtual bucket 134_vr in the virtual world, and the working machine 100 is operated. Can be made to.
  • FIG. 10 is a diagram showing how a user operates a virtual bucket of a first virtual work machine in a virtual world.
  • FIG. 10 shows a virtual work body 130_vr (virtual arm 132_vr and virtual bucket 134_vr) of the first virtual work machine in the virtual world.
  • FIG. 10 shows a model M showing the state of the first working machine 100 in the real world together with the virtual working body 130_vr.
  • the model M of the first work machine 100 can be generated based on the information obtained from the environmental sensors 140 and 180 and the like.
  • the system 1 can operate the first working machine 100 in the real world in real time by the user operating the sphere S using the tracker 350 to move the virtual bucket 134_vr. "become.
  • FIG. 10B when the user operates the sphere S using the tracker 350 to perform an operation such as digging the soil on the ground with the virtual bucket 134_vr, the control command is immediately sent from the control device 300 to the control unit 200. Transmitted, the working body 130 (arm 132 and bucket 134) of the real-world working machine 100 operates to reproduce its movement.
  • FIG. 10B shows how the bucket of the model M of the work machine follows the virtual bucket 134_vr.
  • the operator operates the operation rod of the remote control device to operate the first work machine (excavator car) 100, so that a certain level of skill is required.
  • the remote control device according to the present embodiment requires a certain level of skill.
  • the first work machine (excavator car) 100 in the real world can be operated simply by intuitively moving the virtual bucket in the virtual world using the tracker.
  • the user uses the tracker 350 to select "automatic mode" on the UI screen, and then above the area of the ground where the soil is excavated.
  • the disposal area area 2
  • the soil for the specified volume of the area 1 in the environment is dug, and the soil is discarded on the area 2 in the environment.
  • Task instructions are given. While such an input operation in the "automatic mode" can easily specify a relatively wide area, the excavator car 100's bucket 134 can be used to specifically specify the excavation point. It does not deal with the instructions.
  • FIG. 11 is a diagram showing an input operation in which the user specifies an excavation area and a disposal area in the virtual world.
  • FIG. 11 shows a state in which the first excavation point is designated
  • FIG. 11B shows a state in which the subsequent up to the fourth excavation points have been designated.
  • excavation points are displayed on the display 370 as, for example, blue spheres.
  • the processor 320 identifies an area 1 of the ground on which the soil is excavated, consisting of one or more excavation points.
  • region 1 consists of four excavation points.
  • the volume of soil to be excavated at each excavation point is the same as the volume of the excavator bucket.
  • the volume of soil to be excavated at each excavation point is not limited to this, and can be set to an arbitrary volume such as twice or three times the volume of the excavator bucket.
  • the user displays the corresponding virtual tracker 350_vr in the tracker 350 (FIG. 11 (b)) in the virtual world environment on the display 370.
  • Use to specify the disposal area where the excavated soil will be disposed of.
  • the processor 320 identifies the area 2 of the ground where the soil is discarded. In this example, this waste area is displayed as, for example, a red sphere.
  • the first operation example includes a step of calculating the number of excavation operations by the bucket based on the volume of the excavation area 1 specified in the range (step 740 in FIG. 7), in this example, excavation is performed for each excavation point. Since the volume of soil to be excavated is the same as the volume of the excavator bucket and the number of specified excavation points corresponds to the number of excavation operations by the bucket, the step of calculating the number of excavation operations by the bucket is omitted. To. Further, in this example, the processor 320 (see FIG.
  • control device 300 may generate a schedule so that the excavation work of each excavation point is performed in the order in which the user specifies the excavation points, or a series of tasks.
  • the order of excavation work at each excavation point may be appropriately changed so that the estimated required time or estimated energy consumption required for the schedule consisting of the above is reduced.
  • the user can specify the desired excavation point and specify the excavation area. Therefore, a plurality of excavation points can be combined to indicate an excavation area of an arbitrary shape, or, for example, two excavation points can be arranged vertically in one area and one excavation point can be set in another area depending on the area. It is possible to indicate the excavation area so that the excavation depth is different.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Operation Control Of Excavators (AREA)

Abstract

本発明の一実施形態によれば、1又は複数の作業機械100,160を制御する制御信号を生成する制御装置300が開示される。本実施形態に係る制御装置300は、現実世界の作業機械の周囲環境情報に基づいて、現実世界に対応する仮想世界を生成し(S410)、作業機械に実行させるタスクを指示する入力操作を受け付け(S415)、スキル情報に基づいて、入力操作によって指示されたタスクを作業機械に実行させるために1又は複数の作業機械の各々の作業機械が実行する一連の動作タスクからなるスケジュールを生成し、作業機械をスケジュールに基づいて動作させる制御信号を生成する(S425)。

Description

制御装置、制御ユニット、それらを有する制御システム
 本発明は、制御装置、制御ユニット、それらを有する制御システムに関する。
 特許文献1及び2には、オペレータが、作業機械から送信されてくる画像を見ながら操作桿を操作して作業機械を遠隔操作する技術が開示されている。
特開2015-043488号公報 特開2018-207244号公報
 特許文献1及び2に開示された技術には、下記のような課題が存在する。
 第1に、オペレータが遠隔操作装置の操作桿を操作して作業機械を遠隔操作するので、オペレータには実機の作業機械を操作するのと同じレベルのスキルが求められる。そのため、作業機械の操作に慣れていない初心者のオペレータが作業機械を遠隔操作することは難しい。
 また、オペレータは、作業機械から送信されてくる画像を見ながら作業機械をリアルタイムに遠隔操作するので、オペレータは、作業機械を動作させるのと同じ時間の間、遠隔操作装置での遠隔操作作業を行う必要がある。加えて、作業機械から送信された画像がオペレータに表示されるまで、また、オペレータによる操作桿での入力信号が作業機械に送られるまでにはタイムラグがある。このような条件の下、オペレータは作業機械を遠隔操作している間は集中を切らさずに作業する必要があるので、オペレータには心身共に多くの負担が求められる。一般に、作業機械を遠隔操作する場合の作業効率は、オペレータが実際の作業機械に搭乗して操作した場合の作業効率の60%程度まで低下するとされている。
 さらには、遠隔操作装置と作業機械との間の通信に遅延が生じる環境では、オペレータが作業機械をリアルタイムに操作することは事実上不可能になる。通信に遅延が生じる環境としては、作業機械が宇宙空間のような遠隔地に送り込まれている場合や、深海、砂漠地帯、山岳地帯等の通信環境が劣悪で通信帯域幅を確保できずデータの送受信に多くの時間を要する場合などが考えられる。火星にある作業機械を地球から遠隔操作するシナリオでは、地球と火星との間の通信には片道で最大20分、往復で最大40分を要するため、火星にある作業機械を地球から遠隔操作しようとすると、ある1つのアクションの動作指示を地球から火星の作業機械に送信してから作業機械が動作を開始するまでの時間が約20分であり、その後、実際にアクションを実行した後のフィードバックとして作業機械の周囲環境の画像データ等が火星から地球に届くまでにさらに約20分の時間を要する。人間の知覚能力上の制限から、数秒以上の通信遅延がある環境では遠隔操作を行うことが困難である。
 さらに、オペレータが遠隔操作装置の操作桿を操作して作業機械を遠隔操作するシステムでは、オペレータが遠隔操作装置で遠隔操作できる作業機械は1台に限られるので、オペレータが複数台の作業機械を動作させることはできない。
 本発明の一態様によれば、1又は複数のエージェントを制御する制御信号を生成する制御装置であって、現実世界のエージェントの周囲環境情報に基づいて、現実世界に対応する仮想世界を生成することと、ユーザによって仮想世界においてなされる、エージェントに実行させるタスクを指示する入力操作を受け付けることと、各エージェントが備える1又は複数のスキルと、そのスキルが従属する他のスキルに関するスキル従属情報とを少なくとも含むスキル情報に基づいて、入力操作によって指示されたタスクをエージェントに実行させるために1又は複数のエージェントの各々のエージェントが実行する一連の動作タスクからなるスケジュールを生成することと、エージェントをスケジュールに基づいて動作させる制御信号を生成することと、を実行するように構成されたプロセッサを備えた制御装置が提供される。
 本発明の他の態様によれば、1又は複数のエージェントを制御する制御ユニットであって、各々のエージェントが実行する一連の動作タスクからなるスケジュールを含む制御信号を受信することと、制御信号に基づいて、各々のエージェントに一連の動作タスクを実行させる動作指令を生成することと、を実行するように構成されたプロセッサを備えた制御ユニットが提供される。
 本発明の他の特徴事項および利点は、例示的且つ非網羅的に与えられている以下の説明及び添付図面から理解することができる。
本発明の一実施形態に係る制御システムを示すブロック図である。 作業機械の一例の構成を示す概略図である。 作業機械の他の例の構成を示す概略図である。 本実施形態における制御方法の第1の動作例を説明するフローチャートである。 現実世界の作業機械の周囲環境を再現した仮想世界を示す図である。 現実世界の作業機械の周囲環境を再現した仮想世界を示す図であり、同図(a)は掘削領域を指定する入力操作の様子を示し、同図(b)は廃棄領域を指定する入力操作の様子を示す。 制御信号を生成するプロセスを示すフローチャートである。 図7に示されたプロセスにより生成されたスケジュールを表現する有向非巡回グラフである。 各作業機械が実行命令に従って動作している様子を示す図である。 ユーザが仮想世界内で第1の仮想作業機械の仮想バケットを操作する様子を示す図である。 ユーザが仮想世界内で掘削領域及び廃棄領域を指定する入力操作を示す図である。
 以下、本発明の実施の形態を図面を参照して説明する。
 図1は、本発明の一実施形態に係る制御システムを示すブロック図である。図2は作業機械の一例の構成を示す概略図であり、図3は作業機械の他の例の構成を示す概略図である。
 図1に示すように、本実施形態に係る制御システム1は、エージェントとしての作業機械100と、作業機械100を制御する制御ユニット200と、制御ユニット200の制御を司る制御装置300とを備えている。
 図1及び図2に示すように、本実施形態において開示する第1の作業機械100は、一例として、移動体110と、移動体110に対して旋回可能に設けられた旋回体120と、旋回体120に支持された作業体130とを備えたショベルカーである。本実施形態において例示的に開示する第1の作業機械100の作業体130は、旋回体120に支持されたアーム部132と、アーム部132の先端に備えられたバケット134とを有している。バケット134は土等を掘削することに用いられる。第1の作業機械100は、作業機械100の周囲環境をセンシングする環境センサ140を備えている。第1の作業機械100はさらに、制御ユニット200との間での信号・情報の送受信を行う送受信ユニット150を備えている。
 移動体110は、図1に示す例では無限軌道を備えた車両である。ただし、移動体110の形態はこれに限られず、複数の車輪を備えた車両、船舶、潜水機、ヘリコプターやドローン等の飛行体、その他の任意の形態であってもよい。
 環境センサ140は、作業機械100の周囲環境をセンシングする。周囲環境には例えば、電磁波(可視光線、非可視光線、X線、ガンマ線等を含む)、音、温度、湿度、風速、大気組成等が含まれ、したがって環境センサ140は、視覚センサ、X線・ガンマ線センサ、聴覚センサ、温度センサ、湿度センサ、風速センサ、大気分析装置等を含み得るが、これらに限定されない。また、環境センサ140は、GPS(Grobal Positioning System)センサ、高度センサ、ジャイロセンサ等を備えていることが好ましい。さらに、環境センサ140は、作業機械100の屋外または屋内における位置検出のため、位置検出手段として、上記GPSセンサの他、WiFi測位、ビーコン測位、自立航法測位、地磁気測位、音波測位、UWB(Ultra Wide Band:超広帯域無線)測位、可視光・非可視光測位等を行うための構成を備えていることが好ましい。
 なお、図では環境センサ140が作業機械100と一体であるように示されているが、環境センサ140が作業機械100の周囲環境及び位置・姿勢等をセンシングできるのであれば、環境センサ140は作業機械100とは一体でなくてもよい。例えば、環境センサ140は作業機械100から離れた位置に設置されていたり、作業機械100とは別の車両やドローン等の移動体に設置されていてもよい。
 特に視覚センサとしては、例えば、2Dカメラ及び深度センサ、3Dカメラ、RGB-Dセンサ、3D-LiDARセンサ、Kinect(商標)センサなどを用いることができる。環境センサ140で得られた視覚情報は制御ユニット200へ送られ、制御ユニット200において処理される。環境センサ140で得られるその他の環境情報も制御ユニット200へ送信し、作業機械100の周囲環境の解析に用いることができる。
 送受信ユニット150は、制御ユニット200と有線接続または無線接続によって接続することが可能であり、したがってそれらの信号・情報の送受信は有線または無線によって行うことができる。それらの信号・情報の送受信に用いられる通信プロトコル及び周波数等は、作業機械100が用いられる用途や環境等に応じて適宜選択しうる。さらに、送受信ユニット150はインターネット等のネットワークに接続されていてもよい。
 また、図1及び図3に示すように、本実施形態において開示する第2の作業機械160は、一例として、移動体170と、移動体110に設けられた荷台175とを備えたダンプトラックである。本実施形態において例示的に開示する第2の作業機械160の荷台175は、駆動部(不図示)により、搬送物を積載して移動する水平姿勢(図3(a)参照)と、搬送物を後部から落下させるように荷台175の前部を情報にリフトさせたリフト姿勢(図3(b)参照)との間で姿勢を変化させることができる。第2の作業機械160は、作業機械160の周囲環境をセンシングする環境センサ180を備えている。第2の作業機械160はさらに、制御ユニット200との間での信号・情報の送受信を行う送受信ユニット185を備えている。
 移動体170は、図2に示す例では左右への移動方向を可能にする前輪と、駆動輪である後輪とを備えた車両である。ただし、移動体160の形態はこれに限られず、無限軌道を備えた車両、船舶、潜水機、ヘリコプターやドローン等の飛行体、その他の任意の形態であってもよい。
 第2の作業機械160も、第1の作業機械100が備える環境センサ140及び送受信ユニット150と同様に構成された環境センサ180及び送受信ユニット185を備えている。なお、本例では各作業機械100,160がそれぞれ環境センサ140,180を備える例を示したが、少なくとも一方の環境センサで作業機械100,160の周囲環境をセンシングできる場合には環境センサ140,180のうちの一方が備えられていればよい。
 次に、本実施形態の制御システム1における制御ユニット200について説明する。
 再び図1を参照すると、本実施形態に係るシステム1の制御ユニット200は、プロセッサ220、記憶ユニット240および送受信ユニット260を備えている。
 プロセッサ220は主として、第1の作業機械100の移動体110、旋回体120及び作業体130の各駆動部(不図示)の制御、第2の作業機械160の移動体170、荷台175の駆動部、環境センサ140,180の制御、環境センサ140,180から送信された情報の処理、制御装置300との相互作用、送受信ユニット260の制御を司る。プロセッサ220は、例えば、中央演算処理装置(CPU)、特定用途向け集積回路(ASIC)、組込みプロセッサ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、あるいはそれらの組み合わせで構成される。プロセッサ220は、1又は2以上のプロセッサで構成されていてもよい。
 さらに、プロセッサ220は、例えば、制御装置300から送られた各作業機械100,160の制御信号と、それに応じて生成した動作命令と、実際に実行された各作業機械100,160の動作と、動作実行後に各環境センサ140,180で取集した周囲環境データとを記憶ユニット240にデータとして記憶させ、そのデータを用いて機械学習を実行して学習データを生成して記憶ユニット240に記憶させる。プロセッサ220は、次回以降に制御装置300から送信された作業機械100,160の制御信号に基づいて作業機械100,160に実行させるべき動作をその学習データを参照して決定して動作命令を生成することが可能である。このように、本実施形態では現実世界にある作業機械100,160の制御ユニット200がローカルに機械学習機能を備えている。
 記憶ユニット240は、本実施形態で説明するように作業機械100,160を制御するためのコンピュータ・プログラム、環境センサ140,180から送信された情報の処理を行うコンピュータ・プログラム、制御装置300との相互作用を行うコンピュータ・プログラム、送受信ユニット260を制御するコンピュータ・プログラム、機械学習を実行するプログラム等を記憶している。好ましくは、記憶ユニット240には、コンピュータに本実施形態で説明するような処理を行わせて制御ユニット200としての機能を生じさせるソフトウェアまたはプログラムが記憶されている。
 さらに、記憶ユニット240は、作業機械100,160の各部の状態、環境センサ140,180ら送信された情報、制御装置300から送られた情報、制御信号等を少なくとも一時的に記憶する役割も有する。さらには、記憶ユニット240は、上述したように、作業機械100,160の動作指示とそれに応じて実行された作業機械100,160の動作、学習データを記憶する役割も有する。記憶ユニット240は、制御ユニット200の電源がオフされても記憶状態が保持される不揮発性の記憶媒体を備えていることが好ましく、例えば、ハードディスクドライブ(HDD)、固体記憶装置(SSD)、コンパクトディスク(CD)・ディジタル・バーサタイル・ディスク(DVD)・ブルーレイディスク(BD)等の光学ディスクストレージ、不揮発性ランダムアクセスメモリ(NVRAM)、EPROM(Rrasable Programmable Read Only Memory)、フラッシュメモリ等の不揮発性ストレージを備えている。なお、記憶ユニット240はスタティックランダムアクセスメモリ(SRAM)等の揮発性ストレージをさらに備えていてもよいが、上述した各コンピュータ・プログラムは記憶ユニット340のうち不揮発性の(非一時的な)記憶媒体に記憶される。
 送受信ユニット260は、各作業機械100,160との間での信号・情報の送受信を行う。制御ユニット200は、各作業機械100,160と有線接続または無線接続によって接続することが可能であり、したがってそれらの信号・情報の送受信は有線または無線によって行うことができる。それらの信号・情報の送受信に用いられる通信プロトコル及び周波数等は、作業機械100,160が用いられる用途や環境等に応じて適宜選択しうる。送受信ユニット260はインターネット等のネットワークに接続されていてもよい。
 さらに、送受信ユニット260は、制御装置300との間での信号・情報の送受信を行う。制御ユニット200は、制御装置300と有線接続または無線接続によって接続することが可能であり、したがってそれらの信号・情報の送受信は有線または無線によって行うことができる。それらの信号・情報の送受信に用いられる通信プロトコル及び周波数等は適宜選択しうる。
 なお、図1では制御ユニット200が作業機械100,160から独立したものとして示されているが、その形態に限られない。例えば、制御ユニット200は各作業機械100,160内に設けられていてもよい。また、本システム1で用いる作業機械100,160は1台に限られず、複数及び/又は異種の作業機械100,160を独立して、あるいは互いに協働させて動作させてもよい。この場合、単体の制御ユニット200で複数の作業機械100,160を制御してもよく、あるいは、複数の制御ユニット200を協働させて複数の作業機械100,160を制御してもよい。
 続いて、本実施形態の制御システム1における制御装置300について説明する。
 図1に示すように、本実施形態に係るシステム1の制御装置300は、プロセッサ320、記憶ユニット340、入力デバイス350、送受信ユニット360、ディスプレイ370を備えている。
 プロセッサ320は主として、制御ユニット200との相互作用、入力デバイス350を介してユーザによって行われる入力に基づく処理、送受信ユニット360の制御、ディスプレイ370の表示を司る。とりわけ、プロセッサ320は、入力デバイス350によって入力されたユーザ入力に基づいて制御信号を生成し、制御ユニット200に送信する。制御ユニット200のプロセッサ220は、その制御信号に基づき、作業機械100の移動体110、旋回体120及び作業体130の各駆動部(不図示)や環境センサ140を動作させるための1つのあるいは複数の動作指令、および、作業機械160の移動体170及び荷台175の各駆動部(不図示)や環境センサ180を動作させるための1つのあるいは複数の動作指令を生成する。プロセッサ320は、例えば、中央演算処理装置(CPU)、特定用途向け集積回路(ASIC)、組込みプロセッサ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、あるいはそれらの組み合わせで構成される。プロセッサ320は、1又は2以上のプロセッサで構成されていてもよい。プロセッサ320は、1又は2以上のプロセッサで構成されていてもよい。
 さらに、制御装置300のプロセッサ320は、ユーザに提示するUI(ユーザ・インターフェース)画面を生成し、ディスプレイ370に表示するように構成されている。UI画面(不図示)は、例えば、複数の選択肢を階層的にユーザに提供する選択ボタンを含む。さらにプロセッサ320は、作業機械100の環境センサ140、及び/又は、作業機械160の環境センサ180によって撮影された作業機械100及び/又は作業機械160の周囲環境の現実世界の画像または動画に基づいて仮想世界(シミュレーション空間)の画像または動画を生成し、ディスプレイ370に表示する。プロセッサ320は、現実世界の画像または動画に基づいて仮想世界の画像または動画を生成する際に、例えば現実世界の座標系と仮想世界の座標系とを対応付けることにより、現実世界と仮想世界との相関関係を構築する。さらに、現実世界の画像または動画と仮想世界(シミュレーション空間)の画像または動画とを同時にディスプレイ370に表示してもよい。さらには、UI画面をロボット100,160の周囲環境の画像または動画あるいは仮想世界の画像または動画に重ね合わせて表示してもよい。作業機械100,160の周囲環境の現実世界の画像または動画に基づいて仮想世界(シミュレーション空間)の画像または動画には、作業機械100,160の周囲環境に存在するオブジェクトも含まれる。プロセッサ320が現実世界の画像または動画に基づいて仮想世界の画像または動画を生成する際に現実世界と仮想世界との相関関係を構築することで、以下に詳しく説明するように、仮想世界におけるユーザの操作に基づいて現実世界において変化を生じさせ、かつ、現実世界における変化を仮想世界において反映させることが可能となる。
 記憶ユニット340は、プロセッサ320に本実施形態で説明する動作を実行させるためのプログラム、制御ユニット200との相互作用を行うコンピュータ・プログラム、入力デバイス350を介してUI画面においてユーザによってインタラクティブに行われる入力に基づく処理を行うコンピュータ・プログラム、送受信ユニット360の制御を行うコンピュータ・プログラム、ディスプレイ370の表示を行うコンピュータ・プログラム等を記憶している。好ましくは、記憶ユニット340には、コンピュータに後述する動作を行わせて制御装置300としての機能を生じさせるソフトウェアまたはプログラムが記憶されている。特に、記憶ユニット340には、図4や図7を参照して後述する方法を実施する命令を含む、プロセッサ320によって実行可能なコンピュータ・プログラムが記憶されている。
 さらに、記憶ユニット340は、作業機械100の環境センサ140及び/又は作業機械160の環境センサ180によって撮影され、制御ユニット200を介して制御装置300に送られた作業機械100及び/又は作業機械160の周囲環境の画像または動画と、その周囲環境の画像または動画に基づいてプロセッサ320によって生成された仮想世界(シミュレーション空間)の画像または動画とを少なくとも一時的に記憶することが可能である。制御装置300の記憶ユニット340も、制御装置300の電源がオフされても記憶状態が保持される不揮発性の記憶媒体を備えていることが好ましく、例えば、ハードディスクドライブ(HDD)、固体記憶装置(SSD)、コンパクトディスク(CD)・ディジタル・バーサタイル・ディスク(DVD)・ブルーレイディスク(BD)等の光学ディスクストレージ、不揮発性ランダムアクセスメモリ(NVRAM)、EPROM(Rrasable Programmable Read Only Memory)、フラッシュメモリ等の不揮発性ストレージを備えている。なお、記憶ユニット340はスタティックランダムアクセスメモリ(SRAM)等の揮発性ストレージをさらに備えていてもよいが、上述した各コンピュータ・プログラムは記憶ユニット340のうち不揮発性の(非一時的な)記憶媒体に記憶される。
 さらに記憶ユニット340はシステム1のデータベースとしても機能し、制御信号に基づいて動作した現実世界における作業機械100,160の動作データ(制御ユニット200が生成した動作指令を含む)と、環境センサ140,180で検出された動作結果を示す周囲環境データを記憶する。
 入力デバイス350として、例えば、キーボード、マウス、ジョイスティックなどを用いることができる。さらには、赤外線等を用いて位置と姿勢をトラッキングすることが可能でトリガーボタンなどを備えたトラッカーと呼ばれるデバイスを用いることもできる。また、ディスプレイ370がタッチパネル式のディスプレイ・デバイスを備えている場合には、そのタッチパネルを入力デバイスとして用いることができる。さらには、ディスプレイ370がVR(仮想現実)・AR(拡張現実)あるいはMR(複合現実)等の表示デバイスとして用いられるヘッドマウントディスプレイであり、かつユーザの視線追跡機能を備えている場合には、その視線追跡機能を入力デバイスとして用いることができる。あるいは、視線追跡機能を備えているがディスプレイを備えていないデバイスであっても、その視線追跡機能を入力デバイスとして用いることができる。さらには、音声入力装置を入力デバイスとして用いることもできる。これらは入力デバイス350の例として例示したものであり、入力デバイス350に用いることができる手段はこれらに限られない。また、上述したような手段を任意に組み合わせて入力デバイス350として使用してもよい。上記のような入力デバイス350を用いることにより、ユーザはディスプレイ370に表示されたUI画面において、例えば、選択ボタンを選択したり、文字を入力したり、環境センサ140,180によって撮影された周囲環境の画像または動画中に含まれるオブジェクト、あるいは、環境センサ140,180によって撮影された周囲環境の画像または動画に基づいて生成された仮想世界(シミュレーション空間)の画像または動画中に含まれる仮想オブジェクトを選択したりすることができる。
 送受信ユニット360は、制御ユニット200との間での信号・情報の送受信を行う。上述したように、制御装置300は制御ユニット200と有線接続または無線接続によって接続することが可能であり、したがってそれらの信号・情報の送受信は有線または無線によって行うことができる。その信号・情報の送受信に用いられる通信プロトコル及び周波数等は、システム1が用いられる用途や環境等に応じて適宜選択しうる。さらに、送受信ユニット360はインターネット等のネットワークに接続されていてもよい。
 ディスプレイ370には、ディスプレイ・モニター、コンピュータ・タブレット装置(タッチパネル式のディスプレイを備えたものを含む)、VR(仮想現実)・AR(拡張現実)あるいはMR(複合現実)等の表示デバイスとして用いられるヘッドマウントディスプレイ、プロジェクター等の任意の形態の表示装置を用いることができる。
 特に、ディスプレイ370としてヘッドマウントディスプレイが用いられる場合、ヘッドマウントディスプレイがユーザの左右の眼にそれぞれ視差を持たせた画像または動画を提供することで、ユーザに三次元の画像または動画を知覚させることができる。さらに、ヘッドマウントディスプレイがモーション・トラッキング機能を備えている場合は、ヘッドマウントディスプレイを装着しているユーザの頭の位置、方向に応じた画像または動画を表示させることができる。さらには、上述したようにヘッドマウントディスプレイがユーザの視線追跡機能を備えている場合には、その視線追跡機能を入力デバイスとして用いることができる。
[第1の動作例]
 次に、図4~図9を参照し、本実施形態による制御方法の第1の動作例として、第1の作業機械(シャベルカー)100と第2の作業機械(ダンプカー)160とを協働させて土を運ぶシナリオを例に挙げて説明する。
 図4は、本実施形態における制御方法の第1の動作例を説明するフローチャートである。
 最初に、作業機械100,160の環境センサ140,180で得られた、現実世界の作業機械100,160の周囲環境情報を、制御ユニット200を介して制御装置300へ送信する(図4のステップS405)。視覚情報は、単一の静止画、複数の画像、あるいは動画であってもよく、さらには深度情報を含むことが好ましい。制御装置300は、送信された視覚情報を記憶ユニット340に保存し得る。
 次に、制御装置300のプロセッサ320が、その視覚情報に基づいて、作業機械100,160の周囲環境を再現した仮想世界(シミュレーション空間)を生成し、制御装置300のディスプレイ370に表示する(図4のステップS410)。仮想世界では、現実世界における作業機械100,160の周囲環境が表示される。
 なお、作業機械100,160はシステム1の一要素であり、作業機械100,160の各部の構成及び機能はシステム1において既知であり、それらの情報は記憶ユニット240および/または記憶ユニット340に記憶されている。例えば、第1の作業機械(ショベルカー)100の移動体110の特性(各部寸法、最小回転半径、平均移動速度等)、旋回体120の特性(各部寸法、平均移動速度、回転半径等)および作業体130の特性(各部寸法、平均動作速度、可能作業範囲等)と、第2の作業機械(ダンプトラック)160の移動体170の特性(各部寸法、最小回転半径、平均移動速度等)および荷台175の特性(各部寸法、可動領域)等が記憶ユニット240および/または記憶ユニット340に記憶されている。プロセッサ320は、現実世界の作業機械100,160に対応する仮想作業機械100_vr,160_vrを仮想世界中に表示する。
 図5は、現実世界の作業機械の周囲環境を再現した仮想世界を示す図である。
 ディスプレイ370上の仮想世界において、第1の作業機械(ショベルカー)100をオブジェクト化して表示した第1の仮想作業機械100_vrの仮想バケット134_vrをトラッカー350で操作して、仮想バケット134_vrを動かすことが可能である。例えば、仮想バケット134_vrをトラッカーでポインティングしてトリガーボタンを押すことで、その仮想バケット134_vrを動かすことが可能である。図5には、仮想世界内の第1の仮想作業機械の仮想作業体の仮想アーム132_vr及び仮想バケット134_vrが示されている。また図5には、仮想アーム132_vr及び仮想バケット134_vrとともに、現実世界の第1の作業機械100の状態を示すモデルMと、トラッカー350に対応する仮想トラッカー350_vrが示されている。
 また、ディスプレイ370上の仮想世界において、土を掘る領域と、掘った土を廃棄する領域とをそれぞれトラッカーで指定することが可能である。
 上記のような入力デバイス350を用いた仮想世界内での仮想作業機械の操作及び領域指定の操作、およびそれらのディスプレイ370上での表示は、プロセッサ320によって制御される。
 次に、仮想世界においてユーザが入力デバイス350を用いて、ディスプレイ370上の仮想世界内において下記に説明する操作を行うことにより、作業機械100,160に実行させるタスクを指示する(図4のステップS415)。本例では、環境中の領域1の土を掘って、領域2へ廃棄するタスクを作業機械100,160に実行させる。
 図6は、現実世界の作業機械の周囲環境を再現した仮想世界を示す図である。図6に示すように、ディスプレイ370上の仮想世界内には、作業機械100,160が存在する現実世界の作業機械100,160の周囲環境が再現されている。
 まず、図6(a)に示すように、ディスプレイ370上の仮想世界の環境中において、ユーザがトラッカー350(図6(a)にはこれに対応する仮想トラッカー350_vrが表示されている)を用いて、UI画面において「自動モード」を選択した後に、土の掘削を行う地面の領域の上方で、希望する領域面積及び深さを成す立方体を描画し、トラッカー350の所定のボタンを押すなどしてこれを掘削領域として確定する。これにより、プロセッサ320は、土の掘削を行う地面の領域1の位置、領域および深さ(すなわち掘削すべき土の容積)を特定する。続いて、これと同様に、図6(b)に示すように、ディスプレイ370上の仮想世界の環境中において、トラッカー350(図6(b)にはこれに対応する仮想トラッカー350_vrが表示されている)を用いて、掘削した土の廃棄を行う地面の領域の上方で、希望する領域面積及び高さを成す立方体を描画し、トラッカー350の所定のボタンを押すなどしてこれを廃棄領域として確定する。これにより、プロセッサ320は、土の廃棄を行う地面の領域2の位置、領域および高さを特定する。
 これらの入力操作により、環境中の領域1の指定容積分の土を掘って、その土を環境中の領域2の上に廃棄するタスクの指示がなされる。このとき、そのタスクの実行に用いられるエージェント(本例では、第1及び第2の作業機械100,160)をディスプレイ370上のUI画面を通じて選択してもよい。特に選択を行わない場合は、システム1に存在するすべてのエージェントが自動的に選択されるようにしてもよい。本例では、第1作業機械100がエージェント1として、第2の作業機械160がエージェント2として選択されたものとして説明する。これらの入力操作は、下記に示す入力情報として制御装置300の記憶ユニット340に記憶される。
  意図(ソース(Source))-領域1-目的:掘削
  意図(シンク(Sink))  -領域2-目的:廃棄
  エージェント1-第1の作業機械(ジャベルカー)
  エージェント2-第2の作業機械(ダンプトラック)
 なお、上記の「領域1」及び「領域2」は、各領域の位置、領域および容積に関する情報を含んでいる。
 次に、記憶ユニット340に記憶された入力操作に基づいて、制御ユニット200に送信する制御信号をプロセッサ320によって生成する(図4のステップS420)。なお、前提として、制御装置300の記憶ユニット340には、各エージェント1,2が備えるスキルに関する情報が表1に示すデータ構造に格納されている。
Figure JPOXMLDOC01-appb-T000001
 上記表における容積は、本例では、ショベルカーのバケットの容積を1としたとき、ダンプトラックの荷台の容積はその2倍である(すなわち、ダンプトラックはショベルカーによる2回の掘削作業分の容積の土を積載可能である)ことを示している。また、上記表における速度は、ショベルカーの平均移動速度を1としたとき、ダンプトラックの平均移動速度はその2倍であるであることを示している。
 なお、記憶されたスキル情報には、異なるエージェントにそれぞれ備えられた同じスキルが含まれることがあり(表1のスキル#5と#9)、また、指示されたタスクに使用されないスキルやエージェントが含まれていることがある(表1の#11及び#12)。表1に示す各エージェント1,2が備えるスキルに関する情報は一例であり、記憶されるスキル情報の内容はこれに限定されるものではない。
 以下、この制御信号を生成するプロセスを図7に示すフローチャートを参照しながら説明する。
 最初に、プロセッサ320は、入力情報に含まれる意図のタスクを達成するために必要なすべてのスキルを選択する(図7のステップS705)。このステップにおいて、プロセッサ320はまず最初に、記憶ユニット340に記憶された表1のデータから、入力情報に含まれる意図(掘削および廃棄)に対応する下記スキルを選択する。
  #7掘削(ショベルカー)
  #3廃棄(ダンプトラック)
  #6廃棄(ショベルカー)
 次に、プロセッサ320は、上記選択した各スキルの従属スキル情報に基づいて、上記選択した各スキルを実行するために必要なスキルを選択する。
・スキル#7掘削(ショベルカー):この従属スキルは「ショベルカー移動」であるので、スキル#4ショベルカー移動(ショベルカー)が選択される。スキル#4の従属スキルは無いため、スキル#7の実行に必要なスキル選択はここで終了する。ここで選択されたスキルは下記の通りである。
  #4ショベルカー移動(ショベルカー)
・スキル#3廃棄(ダンプトラック):この従属スキルは「トラック搬送」であるので、スキル#2トラック搬送(ダンプトラック)が選択される。次に、スキル#2の従属スキルは「積込み」であるので、スキル#8積込み(ショベルカー)が選択される。次に、スキル#8の従属スキルは「掘削+トラック移動」であるので、スキル#7掘削(ショベルカー)とスキル#1トラック移動(ダンプトラック)が選択される。次に、スキル#7の従属スキルは「ショベルカー移動」であるので、スキル#4ショベルカー移動(ショベルカー)が選択される。スキル#4の従属スキルは無いため、スキル#7の実行に必要なスキル選択はここで終了する。次に、次に、スキル#1の従属スキルは「ショベルカー移動」であるので、スキル#4ショベルカー移動(ショベルカー)が選択される。スキル#4の従属スキルは無いため、スキル#1の実行に必要なスキル選択はここで終了する。ここで選択されたスキルは下記通りである。
  #2トラック搬送(ダンプトラック)
  #8積込み(ショベルカー)
  #7掘削(ショベルカー)
  #1トラック移動(ダンプトラック)
  #4ショベルカー移動(ショベルカー)
  #4ショベルカー移動(ショベルカー)
・#6廃棄(ショベルカー):この従属スキルは「ショベルカー搬送+掘削」であるので、スキル#5ショベルカー搬送(ショベルカー)とスキル#7掘削(ショベルカー)が選択される。なお、表1のデータには「ショベルカー搬送」としてスキル#5と#9が含まれるため、#5の代わりに#9が選択されてもよいし、それら両方が選択されてもよい。ここでは、スキル#5が選択されたケースについて説明する。次に、スキル#5の従属スキルは「掘削」であるので#7掘削(ショベルカー)が選択され、さらにその従属スキル#4ショベルカー移動(ショベルカー)が選択される。スキル#4の従属スキルは無いため、スキル#7の実行に必要なスキル選択はここで終了する。続いて、スキル#7の従属スキル#4ショベルカー移動(ショベルカー)が選択される。ここで選択されたスキルは下記通りである。
  #5ショベルカー搬送(ショベルカー)
  #7掘削(ショベルカー)
  #7掘削(ショベルカー)
  #4ショベルカー移動(ショベルカー)
  #4ショベルカー移動(ショベルカー)
 上記のように選択されたスキルは制御装置300の記憶ユニット340に記憶される。
 次に、プロセッサ320により、ステップS705において上記のように選択されたスキルのうち重複するスキルを削除する(図7のステップS710)。これにより、下記のスキル・リストが生成され、制御装置300の記憶ユニット340に記憶される。
  #1トラック移動(ダンプトラック)
  #2トラック搬送(ダンプトラック)
  #3廃棄(ダンプトラック)
  #4ショベルカー移動(ショベルカー)
  #5ショベルカー搬送(ショベルカー)
  #6廃棄(ショベルカー)
  #7掘削(ショベルカー)
  #8積込み(ショベルカー)
 次に、タスクを実行するためのスケジュールを生成する(図7のステップS715)。
 最初に、プロセッサ320は選択肢として複数のタスク・ツリーを生成する。まず、プロセッサ320は「意図(シンク)」に対応するスキル「廃棄」をルート・ノードとして選択する。
  #3廃棄(ダンプトラック)
  #6廃棄(ショベルカー)
 次に、プロセッサ320は、各スキルに従属するスキルを順次追加し、タスク・ツリーを生成する。生成した各タスク・ツリーは記憶ユニット340に記憶される。
1)#3廃棄(ダンプトラック)-#2トラック搬送-#8積込み-#1トラック移動-#7掘削-#4ショベルカー移動
2)#6廃棄(ショベルカー)-(#5ショベルカー搬送-#7掘削-#4ショベルカー移動)/(#7掘削-#4ショベルカー移動)
 ここでプロセッサ320は、掘削する領域1の容積に基づき、上記各タスク・ツリーのスキル動作をそれぞれ何回繰り返す必要があるかを計算する。
 なお、上記タスク・ツリーの表記において、例えばツリー2)中の「(#5ショベルカー搬送-#7掘削-#4ショベルカー移動)/(#7掘削-#4ショベルカー移動)」は、#6廃棄(ショベルカー)に従属するスキルが、「#5ショベルカー搬送-#7掘削-#4ショベルカー移動」と「#7掘削-#4ショベルカー移動」とに分かれることを示している。
 次に、プロセッサ320は、仮想世界中に再現された各仮想作業機械100_vr,160_vrの位置及び各領域1,2の位置(すなわちそれらの距離関係)と、表1に示すデータに含まれる各スキルの動作速度とに基づき、上記のタスク・ツリー1)および2)のそれぞれに要する予測所要時間を計算する(図7のステップS720)。タスク・ツリーの予測所要時間は、ツリーの各スキルの所要時間を積算することで計算することができる。計算された各ツリーの予測所要時間は記憶ユニット340に記憶される。
 次に、プロセッサ320は、上記のように計算された各タスク・ツリーの予測所要時間の中から、最も時間が少ないタスク・ツリーから候補スケジュールを取得する(図7のステップS725)。例えば、掘削する領域1と廃棄する領域2とが近接していて、領域1から掘削した土をショベルカーが旋回するだけで領域2に廃棄できるシナリオでは、ダンプトラックに積込んで搬送するよりもショベルカー自身が掘削と廃棄とを繰り返した方が所要時間が短い。一方、掘削する領域1と廃棄する領域2とが離れているシナリオでは、ショベルカーが掘削した土をバケットに載せた状態で領域1と領域2との間を移動して廃棄する動作を繰り返すよりも、一定量の土をまとめてダンプトラックに積込んで搬送した方が所要時間が短くなる。本例では、タスク・ツリー1)の「#3廃棄(ダンプトラック)-#2トラック搬送-#8積込み-#1トラック移動-#7掘削-#4ショベルカー移動」のタスク・ツリーが最も所要時間が少ないものとして選択されるものとする。候補スケジュールは、このツリーを逆順に辿ることで、「#4ショベルカー移動-#7掘削-#1トラック移動-#8積込み-#2トラック搬送-#3廃棄(ダンプトラック)」のように取得することができる。
 次に、プロセッサ320は、取得した候補スケジュールが、意図(ソース:掘削)から意図(シンク:廃棄)を行うためのパスを備えているどうかを判断する(図7のステップS730)。本例において上記のように選択された候補スケジュールのパスは「#4ショベルカー移動-#7掘削-#1トラック移動-#8積込み-#2トラック搬送-#3廃棄(ダンプトラック)」であり、「掘削」と「廃棄」を含むので、次のステップS735へ進む。一方、取得した候補スケジュールが意図(ソース:掘削)から意図(シンク:廃棄)を行うためのパスを備えていないと判断した場合はステップS725に戻り、2番目に予測所要時間が少ないスケジュールを候補スケジュールとして取得する。このようにして、意図(ソース:掘削)から意図(シンク:廃棄)を行うためのパスを備えているスケジュールの中で、最も予測所要時間が少ないスケジュールを候補スケジュールとして取得する。
 なお、表1に示すデータ構造に格納される、各エージェント1,2が備えるスキルに関する情報には、各スキルのエネルギー消費率(燃料消費率、電力消費率など)が含まれていてもよい。スキルに関する情報としてエネルギー消費率を備えている場合には、各スキルの実行に要する積算された予測消費エネルギーが最も少ないタスク・ツリーを選択するようにしてもよいし、予測所要時間と予測消費エネルギーとの兼ね合いにおいて最適なタスク・ツリーを選択するようにしてもよい。
 次に、プロセッサ320は、掘削を行うと指定された領域1を、単一のタスクによって処理されるユニットに分割する(図7のステップS735)。本例では、掘削を行うと指定された領域1を、ショベルカーのバケットによる複数の掘削領域に分割する。本例では、掘削を行う領域1の容積がショベルカーのバケットの容積の4倍であるとすると、領域1は4つの掘削領域に分割される。
 次に、プロセッサ320は、領域1の掘削と、その土を廃棄するために各タスクを実行すべき回数Nを算出し、スケジュールを展開(unroll)する(図7のステップS740)。
 本例では、掘削を行う領域1の容積がショベルカーのバケットの容積の4倍であるので、バケットによる掘削動作は4回であると算出される。また、ダンプトラックの荷台にはバケット2杯分の土を積載可能であるので、ダンプトラックの搬送動作は2回であると算出される。したがって、実行すべきスケジュールは下記のように記述される。なお、下記スケジュールにおいて[]内の数字はそのタスク動作の実行回数を示している。
  #4ショベルカー移動[4]-#7掘削[4]-#1トラック移動[4]-#8積込み[4]-#2トラック搬送[2]-#3廃棄(ダンプトラック)[2]
 第1段階として、上記スケジュールは下記のように展開される。
  #4ショベルカー移動[2]-#7掘削[2]-#1トラック移動[2]-#8積込み[2]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]-#4ショベルカー移動[2]-#7掘削[2]-#1トラック移動[2]-#8積込み[2]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]
 これは、「#4ショベルカー移動[2]-#7掘削[2]-#1トラック移動[2]--#8積込み[2]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]」を2回繰り返すことを意味する。
 続いて第2段階として、上記スケジュールは下記のように展開される。
  #4ショベルカー移動[1]-#7掘削[1]-#1トラック移動[1]-#8積込み[1]-#4ショベルカー移動[1]-#7掘削[1]-#1トラック移動[1]-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]-#4ショベルカー移動[1]-#7掘削[1]-#1トラック移動[1]-#8積込み[1]-#4ショベルカー移動[1]-#7掘削[1]-#1トラック移動[1]-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]
 これは、「#4ショベルカー移動[1]-#7掘削[1]-#1トラック移動[1]-#8積込み[1]を2回繰り返した後に#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]を行う」ことを2回繰り返すことを意味する。
 次に、プロセッサ320は、ステップS740で展開したスケジュールのクリーンアップを行う(図7のステップS745)。スケジュールのクリーンアップは、所要時間がゼロの動作タスク、すなわち、エージェントが移動したり実行したりする必要がない動作タスクを省略することで行われる。所要時間がゼロの動作タスクは、例えば以下のような動作である。
・ショベルカーが所定の掘削位置に移動した後、全ての掘削動作をその位置で行うことができる場合には、ショベルカーが一度掘削位置に移動した後は、その後の移動は必要ない(移動所要時間はゼロ)になるので、その後のショベルカー移動の動作タスクは省略することができる。
・ステップS735において領域1を4つの掘削領域に分割した結果、一番目の掘削領域が地面の上方の領域(空中)に位置する場合には、そこから掘削すべき土は存在しないので、一番目の掘削領域を掘削する動作タスクは省略することができる。
・ダンプトラックの荷台にはバケット2杯分の土を積載できるので、2回目の積込みの前にはトラック移動は不要(トラック移動の所要時間ゼロ)となるため、2回目の積込みの前のトラック移動の動作タスクは省略することができる。
 したがって、ステップS740で展開したスケジュールのうち、下記の{}で示した動作タスクが削除される。
  #4ショベルカー移動[1]-{#7掘削[1]}-#1トラック移動[1]-#8積込み[1]-{#4ショベルカー移動[1]}-#7掘削[1]-{#1トラック移動[1]}-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]-{#4ショベルカー移動[1]}-#7掘削[1]-#1トラック移動[1]-#8積込み[1]-{#4ショベルカー移動[1]}-#7掘削[1]-{#1トラック移動[1]}-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]
 したがって、スケジュールは下記のようになる。
  #4ショベルカー移動[1]-#1トラック移動[1]-{#8積込み[1]}-#7掘削[1]-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]-#7掘削[1]-#1トラック移動[1]-#8積込み[1]-#7掘削[1]-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]
 続いて、削除された動作タスクに従属する動作タスクを削除する。本例では、上記中の{#8積込み[1]}の動作タスクが、その前に存在していた掘削動作タスクが削除されたため、削除される。よって、上記スケジュールは下記のようになる。
  #4ショベルカー移動[1]-#1トラック移動[1]-#7掘削[1]-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]-#7掘削[1]-#1トラック移動[1]-#8積込み[1]-#7掘削[1]-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]
 次に、連続する同一の動作タスクが存在する場合には重複するものを削除する。本例では連続する同一の動作タスクは存在しないので、ここで削除される動作タスクはない。
 このようにして、制御ユニット200に送信する制御信号として、「#4ショベルカー移動[1]-#1トラック移動[1]-#7掘削[1]-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]-#7掘削[1]-#1トラック移動[1]-#8積込み[1]-#7掘削[1]-#8積込み[1]-#2トラック搬送[1]-#3廃棄(ダンプトラック)[1]」の一連の動作タスクを含むスケジュールが生成される。
 このように生成されたスケジュールは、図8に示すように、有向非巡回グラフ(DAG:Acyclic Directed Graph)で表現することができる。図8のDAGにおいて、上から2つの掘削の動作タスクはトラック移動タスクとは独立して実行可能であることを示している。したがって、それら2つの掘削タスクはトラック移動タスクの実行中に同時並行で実行することが可能である。
 なお、スケジュールはこの他にもビヘイビア・ツリー(Behavior Tree)等の他のフォーマットで表現することができる。
 プロセッサ320は、このように制御信号を生成した後、記憶ユニット340に記憶されている各作業機械100,160の各部特性を参照して、上記スケジュールを実行するための各仮想作業機械の動作を仮想世界内でシミュレートしてもよい。これにより、現実世界において各作業機械100,160が想定通りに動作してスケジュールを実行することができるかどうかを予め確認することができる。例えば、プロセッサ320は、ショベルカーが領域1の掘削を行うためにどの位置に移動するか、トラックの荷台に土を積込むためにダンプトラックをショベルカーに対してどの位置に移動させるか、トラックの荷台の土を領域2に廃棄するためにトラックをどの位置に移動させるか、などを予めシミュレートすることができる。
 次に、プロセッサ320によって生成した制御信号を制御装置300から制御ユニット200に送信する(図4のステップS425)。
 次に、制御信号を受信した制御ユニット200は、受信した制御信号と、記憶ユニット240に記憶された作業機械100,160の各部の構成及び機能に関する情報と、作業機械100,160の環境センサ140,180で検出した周囲環境情報とに基づいて各作業機械100,160のモーション・プランニングを行い、各作業機械100,160に実行させる動作命令を生成し、各作業機械100,160にその動作命令を実行させる(図4のステップS430)。制御ユニット200は、例えば、第1の作業機械(ショベルカー)100を領域1の掘削を行う位置に移動させるための移動、第1の作業機械(ショベルカー)100が領域1の各掘削領域を掘削するための作業体130の動作、第1の作業機械(ショベルカー)100が第2の作業機械(ダンプトラック)160の荷台175に土を積込むための作業体130の動作等、第1の作業機械(ショベルカー)100及び第2の作業機械(ダンプトラック)160が各動作タスクを実行するためのモーション・プランニングを行い、それらを実行する動作命令を生成する。これにより、各作業機械100,160は指示されたスケジュールの各動作タスクを実行する。なお、制御ユニット200は環境センサ140,180で検出した周囲環境情報を参照して各作業機械100,160のモーション・プランニングを行うので、仮想世界内の環境と現実世界の環境とに際が生じている場合には、制御ユニット200に生成される動作命令の内容は、制御装置300のプロセッサ320が仮想世界においてシミュレートした動作内容とは異なる可能性がある。
 図9は、各作業機械が実行命令に従って動作している様子を示す図である。
 図9(a)は、ショベルカー(第1の作業機械100)が図8のショベルカー移動805の後に掘削820を実行している様子を示している。この間にダンプトラック(第2の作業機械160)がショベルカー横の積込み位置に移動する(図8のトラック移動815)。図9(b)はダンプトラックの荷台175にショベルカーが掘削した土を荷積みしている様子を示している(図8の荷積み825)。その後、ダンプトラックが廃棄領域まで土を搬送し(図8のトラック搬送830)、図9(c)に示すようにダンプトラックの荷台175を上げて積載していた土を廃棄領域に廃棄する(図8の廃棄(トラック)835)。エージェントである作業機械100,160は、図8に表現されるようなスケジュールをこのようして実行する。
 各作業機械100,160がタスクを実行している間、あるいはタスクを実行した後に、その実行結果を検知するために環境センサ140,160で周囲環境を検出し、周囲環境情報を制御ユニット200へ送信する(図4のステップS435)。その周囲環境情報は記憶ユニット240に記憶される。さらには、周囲環境情報は制御装置300へ送信されて記憶ユニット340に記憶されてもよい。また、受信した制御信号及び生成した動作命令も記憶ユニット240に記憶して蓄積することができ、それらを制御装置300へ送信して記憶ユニット340に記憶して蓄積してもよい。
 制御ユニット200のプロセッサ220は、動作命令に従って各作業機械100,160がタスクを実行している間に環境センサ140,180で検出された周囲環境情報からタスク実行中の各オブジェクトの状況を監視し、状況に応じて実行中の動作に変更を加えることも可能である。
 プロセッサ220は、任意の機械学習アルゴリズムやAI技術を用いて、制御装置300から受信した制御信号及びプロセッサ220が生成した動作命令と、タスク実行後の周囲環境情報とを比較して学習することで、生成する動作命令の質を高めることが可能である。プロセッサ220は、動作命令の生成・実行と、その結果とを蓄積し、それらを学習することで、例えば、より失敗の可能性の少ない動作、より運動量が少ない動作を選択できるようになる。
 一方、それらの情報が制御装置300に送信される場合には、制御装置のプロセッサ320で学習することもできる。この場合、プロセッサ320が制御信号を生成する際に学習結果を考慮することもできる。さらには、タスク実行結果を見たユーザが、次に仮想世界で入力操作を行う際の改善に活用することも可能である。制御ユニット200と制御装置300とは、制御ユニット200での学習結果のデータと、制御装置300での学習結果のデータとを相互に交換して共有してもよい。
 以上により、本動作例における制御方法が終了する。
 以上説明したように、本実施形態によれば、ユーザが作業機械100,160に実行させたいタスク(本例では領域1の土を領域2に廃棄するタスク)の指示動作が、制御装置300の仮想世界内でユーザが各領域の領域指定入力を行うことで行われ、そのタスクを実行するためのスケジュールを含む制御信号が生成される。そして、その制御信号を受信した制御ユニット200が、受信した制御信号と作業機械100,160の周囲環境情報とに基づいて各作業機械100,160のモーション・プランニングを行い、各作業機械100,160の動作指令を生成し、各作業機械100,160に実行させる。これにより、作業機械100,160はユーザが指示したタスク(領域1の土を領域2に廃棄する)を自律的に実行する。本実施形態によれば、各作業機械100,160が実行すべき動作指令がまとめて送信され、各作業機械100,160がそれに基づいて自律的に動作するので、通信に遅延が生じる環境にある作業機械でも、ユーザの意図に沿った動作を行わせることができる。
 さらに、本実施形態によれば、仮想世界内でユーザが直感的に操作指示を行うことができるため、従来のように遠隔操作のオペレータが操作桿を操作して作業機械を遠隔操作することに比べて、作業効率を大幅に向上でき、かつオペレータの負担を低減することができる。さらに、上記のような従来の遠隔操作では1人のオペレータが遠隔操作を行うことができるのは1台の作業機械に限られるが、本実施形態によれば複数台・複数種類の作業機械を協働させるように遠隔操作することができる。
 なお、本実施形態の説明では作業機械の形態としてショベルカーとダンプトラックを例示したが、本発明によって遠隔操作される作業機械の形態はこれらのものに限られない。他の作業機械として、ホイールローダー、ブルドーザー、クレーン、粉砕・把持等の動作を行うアタッチメントを備えた建機等を用いることもできる。さらには、エージェントは建設機械の形態に限られず、例えば、ハンドを有するアームを備えたロボットの形態を備えたものであってもよい。また、本実施形態のシステムを用いて動作させることができる作業機械が使用される環境や用途としては、本実施形態で説明したものの他、宇宙開発、採鉱、採掘、資源採取、農業、林業、水産業、畜産業、捜索救助、災害支援、災害復旧、人道支援、爆発物処理、経路上における障害の除去、災害監視用、防犯監視等の多種多様な環境や用途がある。
[第2の動作例]
 図5を参照して説明したように、本実施形態のシステム1によれば、ディスプレイ370上の仮想世界において、エージェントとしての第1の作業機械(ショベルカー)100をオブジェクト化して表示した第1の仮想作業機械100_vrの仮想バケット134_vrをトラッカーで操作して、仮想バケット134_vrを動かすことが可能である。例えば、操作対象のエンドエフェクタとして第1の作業機械(ショベルカー)100のバケット134を操作する場合には、そのエンドエフェクタに対応する仮想エンドエフェクタである仮想バケット134_vrをトラッカーでポインティングしてトリガーボタンを押すことで、その仮想バケット134_vrを動かすことが可能である。そして、トラッカーを操作して仮想バケットを動かして、仮想世界内に表示されている環境中の地面の土を掘る動作を行うことができる。
 本実施形態のシステム1によれば、各作業機械100,160が存在する現実世界の制御ユニット200と、ユーザ(オペレータ)側の制御装置300との間の通信遅延がリアルタイム遠隔操作の妨げにならない程度に少ない場合には、制御装置300側でユーザが入力操作した動作指示の制御指令を制御ユニット200へ即時送信して各作業機械100,160を動作させ、その間に環境センサ140,180でセンシングされた周囲環境の情報を制御ユニット200から制御装置300へ即時送信して、ディスプレイ370でユーザに提示するようにすることで、いわゆるリアルタイム遠隔操作を行うことも可能である。
 仮想世界内の第1の仮想作業機械と、現実世界の第1の作業機械(ショベルカー)100とを同期させて動作させる場合には、ユーザがトラッカーを操作して仮想世界内で仮想バケットバケット134_vrで仮想世界内に表示されている環境中の地面の土を掘る動作を行うことで、現実世界の第1の作業機械(ショベルカー)100が現実世界内の対応する位置まで移動し、ユーザがトラッカーを操作して仮想世界内で仮想バケット134_vrを動かしたのと同様の動きを再現するように第1の作業機械(ショベルカー)100の作業体130(アーム132及びバケット134)が動作して、土を掘る動作を行う。上述したように、作業機械100,160の各部の構成及び機能はシステム1において既知であり、それらの情報は記憶ユニット240および記憶ユニット340に記憶されているので、制御ユニット200のプロセッサ220は、その情報を参照することにより、ユーザがトラッカーを操作して仮想世界内で仮想バケット134_vrを動かした動作を作業機械100の作業体130が再現するためのモーション・プランニングを行い、作業機械100を動作させることができる。
 図10は、ユーザが仮想世界内で第1の仮想作業機械の仮想バケットを操作する様子を示す図である。
 図10には、仮想世界内の第1の仮想作業機械の仮想作業体130_vr(仮想アーム132_vr及び仮想バケット134_vr)が示されている。この図10には、仮想作業体130_vrとともに、現実世界の第1の作業機械100の状態を示すモデルMが示されている。第1の作業機械100のモデルMは、環境センサ140,180から得られる情報等に基づいて生成することができる。
 本例では、制御装置300は、ユーザがトラッカー350を用いてUI画面において「マニュアル・モード」を選択してから、ユーザがトラッカー350を用いて仮想バケット134_vrを指示して所定ボタンを押すと、図10(a)に示すように、仮想バケット134_vrの先端付近に球体Sが表示されるように構成されている。これによりシステム1は、ユーザがトラッカー350を用いてその球体Sを操作して仮想バケット134_vrを動かすことで、現実世界の第1の作業機械100をリアルタイムに操作することが可能な「マニュアル・モード」になる。
 そして、図10(b)にユーザがトラッカー350を用いて球体Sを操作して仮想バケット134_vrで地面の土を掘るような動作を行うと、その制御指令が制御装置300から制御ユニット200に即時送信され、現実世界の作業機械100の作業体130(アーム132及びバケット134)がその動きを再現するように動作する。図10(b)において、作業機械のモデルMのバケットが仮想バケット134_vrに追従している様子が示されている。
 従来の遠隔操作技術では、第1の作業機械(ショベルカー)100の操作はオペレータが遠隔操作装置の操作桿を操作して行うため一定の熟練度が求められるが、本実施形態による遠隔操作装置によればトラッカーを用いて仮想世界内で直感的に仮想バケットを動かすだけで、現実世界の第1の作業機械(ショベルカー)100を操作することができる。
 なお、本例では操作対象のエージェントのエンドエフェクタとして第1の作業機械(ショベルカー)100のバケット134を操作する例を挙げて説明したが、本実施形態のシステム1によって上記のような「マニュアル・モード」で操作できるエンドエフェクタはこれに限られない。例えば、作業機械であれば、ホイールローダーのバケット、ブルドーザーのバケット、クレーンのフック、粉砕・把持等の動作を行うアタッチメントを備えた建機等のアタッチメントを操作対象のエンドエフェクタとする場合には、それらに対応する仮想エンドエフェクタを仮想世界内でトラッカー350を用いて操作することができる。また、エージェントとしてロボットを操作する場合には、ロボットハンドが備えるロボットハンドを操作対象のエンドエフェクタとして、それに対応する仮想ロボットハンドを仮想世界内でトラッカー350を用いて操作することができる。
[第3の動作例]
 図6等を参照して説明した上記の第1の動作例では、ユーザがトラッカー350を用いて、UI画面において「自動モード」を選択した後に、土の掘削を行う地面の領域の上方で、希望する領域面積及び深さを成す立方体を描画してこれを掘削領域(領域1)として指定し、同様に、掘削した土の廃棄を行う地面の領域の上方で、希望する領域面積及び高さを成す立方体を描画してこれを廃棄領域(領域2)として指定する入力操作により、環境中の領域1の指定容積分の土を掘って、その土を環境中の領域2の上に廃棄するタスクの指示がなされる。このような「自動モード」での入力操作は、比較的広い範囲の領域をおおまかに指定することが容易にできる一方で、ショベルカー100のバケット134で掘削を行う地点を具体的に特定して指示することには対処していない。
 図11は、ユーザが仮想世界内で掘削領域及び廃棄領域を指定する入力操作を示す図である。
 図4に示すフローチャートを参照して説明した第1の動作例のステップS415のプロセスに対応するプロセスとして、本例ではまず、ディスプレイ370上の仮想世界の環境中において、ユーザがトラッカー350(図11(a)にはこれに対応する仮想トラッカー350_vrが表示されている)を用いて、UI画面において「半自動モード」を選択した後に、図11(a)及び(b)に示すように、土の掘削を行う地面の1つまたは2つ以上の任意の数の所望の掘削地点を指定する。図11(a)は1つ目の掘削地点を指定した状態を示し、図11(b)はその後4つ目までの掘削地点を指定し終えた状態を示している。これらの掘削地点は、ディスプレイ370上において例えば青色の球体として表示される。これによりプロセッサ320は、1つまたは2つ以上の掘削地点からなる、土の掘削を行う地面の領域1を特定する。図11に示す例では、領域1は4つの掘削地点からなる。本例では、各々の掘削地点について掘削すべき土の容積は、ショベルカーのバケットの容積と同じ容積とされる。ただし、各々の掘削地点について掘削すべき土の容積はこれに限られず、例えば、ショベルカーのバケットの容積の2倍、3倍のように任意の容積に設定することが可能である。
 続いて、これと同様に、図11(c)に示すように、ユーザがディスプレイ370上の仮想世界の環境中において、トラッカー350(図11(b)にはこれに対応する仮想トラッカー350_vrが表示されている)を用いて、掘削した土の廃棄を行う廃棄領域を指定する。これにより、プロセッサ320は、土の廃棄を行う地面の領域2を特定する。本例では、この廃棄領域は例えば赤色の球体として表示される。
 これらの入力操作により、環境中の領域1を成す1つまたは2つ以上の掘削地点の土を掘って、その土を環境中の領域2の上に廃棄するタスクの指示がなされる。
 本例におけるその他のプロセスは、図4及び図7を参照して説明した第1の動作例における各プロセスと同様である。ただし、第1の動作例では範囲指定した掘削領域1の容積に基づいてバケットによる掘削動作の回数を算出する工程が含まれるが(図7のステップ740)、本例では各々の掘削地点について掘削すべき土の容積をショベルカーのバケットの容積と同じ容積としており、指定された掘削地点の数がバケットによる掘削動作の回数に相当するため、バケットによる掘削動作の回数を算出する工程は省略される。また本例では、制御装置300のプロセッサ320(図1参照)は、ユーザが掘削地点を指定した順番で各掘削地点の掘削作業を行うようにスケジュールを生成してもよく、あるいは、一連のタスクからなるスケジュールに要する予測所要時間あるいは予測消費エネルギーが少なくなるように各掘削地点の掘削作業の順番を適宜変更してもよい。
 本例に示す「半自動モード」による入力操作によれば、ユーザが所望する掘削地点を特定して掘削領域を指示することができる。そのため、複数の掘削地点を組み合わせて任意の形状の掘削領域を指示したり、あるいは、ある領域では例えば2つの掘削地点を縦方向に並べ、他の領域では掘削地点を1つとすることで領域によって掘削深さが異なるように掘削領域を指示したりすることが可能である。
 以上、発明の実施形態を通じて本発明を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。また、本発明の実施形態の中で説明されている特徴を組み合わせた形態も本発明の技術的範囲に含まれ得る。さらに、上述の実施形態に、多様な変更または改良を加えることが可能であることも当業者に明らかである。
 

 

Claims (17)

  1.  1又は複数のエージェントを制御する制御信号を生成する制御装置であって、
     現実世界の前記エージェントの周囲環境情報に基づいて、前記現実世界に対応する仮想世界を生成することと、
     ユーザによって前記仮想世界においてなされる、前記エージェントに実行させるタスクを指示する入力操作を受け付けることと、
     前記各エージェントが備える1又は複数のスキルと、該スキルが従属する他のスキルに関するスキル従属情報とを少なくとも含むスキル情報に基づいて、前記入力操作によって指示された前記タスクを前記エージェントに実行させるために前記1又は複数のエージェントの各々の前記エージェントが実行する一連の動作タスクからなるスケジュールを生成することと、
     前記エージェントを前記スケジュールに基づいて動作させる制御信号を生成することと、
    を実行するように構成されたプロセッサを備えた、制御装置。
  2.  前記スケジュールを生成することは、
     前記タスクを前記エージェントに実行させるために前記1又は複数のエージェントの各々の前記エージェントが必要なスキルを前記スキル情報の中から選択することと、
     前記タスクを実行するために用いられる複数のスキルを前記スキル従属情報に基づいて順序づけてタスク・ツリーを生成することと、
     前記タスク・ツリーの前記複数のスキルを逆順に並べ替えることで、前記一連の動作タスクからなるスケジュールを生成することと、
    を含む、請求項1に記載の制御装置。
  3.  前記スキル情報は前記各エージェントが備える前記各スキルに関連付けられた速度情報をさらに含んでおり、
     前記スケジュールを生成することは、
     前記タスクを実行することを可能にする複数の前記タスク・ツリーを生成することと、
     前記タスク・ツリーの各々について、前記各タスク・ツリーが含む各スキルの実行に要する時間を積算して、前記各タスク・ツリーの予測所要時間を求めることと、
     前記複数のタスク・ツリーの中から、前記予測所要時間が最も少ない前記タスク・ツリーを選択することと、
    を含む、請求項2に記載の制御装置。
  4.  前記スキル情報は前記各エージェントが備える前記各スキルに関連付けられたエネルギー消費率情報をさらに含んでおり、
     前記スケジュールを生成することは、
     前記タスクを実行することを可能にする複数の前記タスク・ツリーを生成することと、
     前記タスク・ツリーの各々について、前記各タスク・ツリーが含む各スキルの実行に要する消費エネルギーを積算して、前記各タスク・ツリーの予測消費エネルギーを求めることと、
     前記複数のタスク・ツリーの中から、前記予測消費エネルギーが最も少ない前記タスク・ツリーを選択することと、
    を含む、請求項2に記載の制御装置。
  5.  1又は複数のエージェントを制御する制御ユニットであって、
     各々の前記エージェントが実行する一連の動作タスクからなるスケジュールを含む制御信号を受信することと、
     前記制御信号に基づいて、各々の前記エージェントに前記一連の動作タスクを実行させる動作指令を生成することと、
    を実行するように構成されたプロセッサを備えた、制御ユニット。
  6.  1又は複数のエージェントを制御する制御信号を生成する方法であって、
     現実世界の前記エージェントの周囲環境情報に基づいて、前記現実世界に対応する仮想世界を生成することと、
     ユーザによって前記仮想世界においてなされる、前記エージェントに実行させるタスクを指示する入力操作を受け付けることと、
     前記各エージェントが備える1又は複数のスキルと、該スキルが従属する他のスキルに関するスキル従属情報とを少なくとも含むスキル情報に基づいて、前記入力操作によって指示された前記タスクを前記エージェントに実行させるために前記1又は複数のエージェントの各々の前記エージェントが実行する一連の動作タスクからなるスケジュールを生成することと、
     前記エージェントを前記スケジュールに基づいて動作させる制御信号を生成することと、
    を含む、方法。
  7.  前記スケジュールを生成することは、
     前記タスクを前記エージェントに実行させるために前記1又は複数のエージェントの各々の前記エージェントが必要なスキルを前記スキル情報の中から選択することと、
     前記タスクを実行するために用いられる複数のスキルを前記スキル従属情報に基づいて順序づけてタスク・ツリーを生成することと、
     前記タスク・ツリーの前記複数のスキルを逆順に並べ替えることで、前記一連の動作タスクからなるスケジュールを生成することと、
    を含む、請求項6に記載の方法。
  8.  前記スキル情報は前記各エージェントが備える前記各スキルに関連付けられた速度情報をさらに含んでおり、
     前記スケジュールを生成することは、
     前記タスクを実行することを可能にする複数の前記タスク・ツリーを生成することと、
     前記タスク・ツリーの各々について、前記各タスク・ツリーが含む各スキルの実行に要する時間を積算して、前記各タスク・ツリーの予測所要時間を求めることと、
     前記複数のタスク・ツリーの中から、前記予測所要時間が最も少ない前記タスク・ツリーを選択することと、
    を含む、請求項7に記載の方法。
  9.  前記スキル情報は前記各エージェントが備える前記各スキルに関連付けられたエネルギー消費率情報をさらに含んでおり、
     前記スケジュールを生成することは、
     前記タスクを実行することを可能にする複数の前記タスク・ツリーを生成することと、
     前記タスク・ツリーの各々について、前記各タスク・ツリーが含む各スキルの実行に要する消費エネルギーを積算して、前記各タスク・ツリーの予測消費エネルギーを求めることと、
     前記複数のタスク・ツリーの中から、前記予測消費エネルギーが最も少ない前記タスク・ツリーを選択することと、
    を含む、請求項7に記載の方法。
  10.  1又は複数のエージェントに実行させる動作指令を生成する方法であって、
     各々の前記エージェントが実行する一連の動作タスクからなるスケジュールを含む制御信号を受信することと、
     前記制御信号に基づいて、各々の前記エージェントに前記一連の動作タスクを実行させる動作指令を生成することと、
    を含む、方法。
  11.  プロセッサによって実行可能なコンピュータ・プログラムであって、請求項6~9のいずれか1項に記載の方法を実施する命令を含む、コンピュータ・プログラム。
  12.  非一時的なコンピュータ可読媒体であって、請求項6~9のいずれか1項に記載の方法を実施する命令を含む、前記媒体に記憶され、プロセッサによって実行することができるコンピュータ・プログラムを含む、非一時的なコンピュータ可読媒体。
  13.  プロセッサによって実行可能なコンピュータ・プログラムであって、請求項10に記載の方法を実施する命令を含む、コンピュータ・プログラム。
  14.  非一時的なコンピュータ可読媒体であって、請求項10に記載の方法を実施する命令を含む、前記媒体に記憶され、プロセッサによって実行することができるコンピュータ・プログラムを含む、非一時的なコンピュータ可読媒体。
  15.  請求項1~4のいずれか1項に記載の制御装置と、
     請求項5に記載の制御ユニットと、
    を有する制御システム。
  16.  エンドエフェクタを有するエージェントを制御する制御信号を生成する制御装置であって、
     現実世界の前記エージェントの周囲環境情報に基づいて、前記現実世界内の前記エージェントに対応する仮想エージェントを含む、前記現実世界に対応する仮想世界を生成することと、
     ユーザによる、前記仮想世界における前記仮想エージェントの仮想エンドエフェクタを動作させる操作入力を受け付けることと、
     前記操作入力により指示された前記仮想エンドエフェクタの動作を再現するように前記エージェントを動作させる制御信号を生成することと、
    を実行するように構成されたプロセッサを備えた、制御装置。
  17.  前記操作入力を行うための入力デバイスとして、前記ユーザが前記仮想世界内で前記仮想エンドエフェクタを動作させることが可能なトラッカーを備える、請求項16に記載の制御装置。
     
PCT/JP2020/041448 2019-11-08 2020-11-06 制御装置、制御ユニット、それらを有する制御システム WO2021090906A1 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2019-203500 2019-11-08
JP2019203500 2019-11-08
JP2020020188 2020-02-07
JP2020-020188 2020-02-07

Publications (1)

Publication Number Publication Date
WO2021090906A1 true WO2021090906A1 (ja) 2021-05-14

Family

ID=75849146

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/041448 WO2021090906A1 (ja) 2019-11-08 2020-11-06 制御装置、制御ユニット、それらを有する制御システム

Country Status (1)

Country Link
WO (1) WO2021090906A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023173336A1 (zh) * 2022-03-16 2023-09-21 深圳市大疆创新科技有限公司 可移动平台的控制方法、行为树的编辑方法及可移动平台

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005324278A (ja) * 2004-05-13 2005-11-24 Honda Motor Co Ltd ロボット制御装置
US20190220040A1 (en) * 2016-09-26 2019-07-18 SZ DJI Technology Co., Ltd. Unmanned aerial vehicle control method, head-mounted display glasses, and system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005324278A (ja) * 2004-05-13 2005-11-24 Honda Motor Co Ltd ロボット制御装置
US20190220040A1 (en) * 2016-09-26 2019-07-18 SZ DJI Technology Co., Ltd. Unmanned aerial vehicle control method, head-mounted display glasses, and system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023173336A1 (zh) * 2022-03-16 2023-09-21 深圳市大疆创新科技有限公司 可移动平台的控制方法、行为树的编辑方法及可移动平台

Similar Documents

Publication Publication Date Title
US10142561B2 (en) Virtual-scene control device
US10049493B1 (en) System and methods for providing interaction with elements in a virtual architectural visualization
US9104202B2 (en) Remote vehicle missions and systems for supporting remote vehicle missions
WO2018125742A2 (en) Dynamic depth-based content creation in virtual reality environments
JP2024042693A (ja) 様々な環境照明条件において動作可能なモバイル機器のためのビジュアルナビゲーション
US20220260998A1 (en) Navigating a Mobile Robot
EP3489422B1 (en) Controlling earthmoving machine
US20170323480A1 (en) Visualization Technique for Ground-Penetrating Radar
WO2021090906A1 (ja) 制御装置、制御ユニット、それらを有する制御システム
US20040032410A1 (en) System and method for generating a structured two-dimensional virtual presentation from less than all of a three-dimensional virtual reality model
Wang et al. USAR: A game based simulation for teleoperation
WO2020203793A1 (ja) ロボットの制御装置、制御ユニット、それらを有するロボット制御システム
Walker et al. A mixed reality supervision and telepresence interface for outdoor field robotics
US20240068202A1 (en) Autonomous Control Of Operations Of Powered Earth-Moving Vehicles Using Data From On-Vehicle Perception Systems
AU2022287567B2 (en) Autonomous control of on-site movement of powered earth-moving construction or mining vehicles
Birk et al. A hmi supporting adjustable autonomy of rescue robots
GB2539182A (en) Dynamic augmented reality system
FI20180081A1 (en) Control of a excavator
WO2020235539A1 (ja) オブジェクトの位置及び姿勢を特定する方法及び装置
US20240093464A1 (en) Autonomous Control Of Operations Of Earth-Moving Vehicles Using Trained Machine Learning Models
WO2020218533A1 (ja) オブジェクトに属性情報を付与する方法及び装置
EP4258077A1 (en) Device and method for simulating mobile robot at work site
Cavallin et al. Semi-Autonomous, teleoperated search and rescue robot
Flangas et al. Merging live video feeds for remote monitoring of a mining machine
AU2011293447A1 (en) Remote vehicle missions and systems for supporting remote vehicle missions

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: 20885140

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20885140

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP