WO2023127096A1 - シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム - Google Patents

シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム Download PDF

Info

Publication number
WO2023127096A1
WO2023127096A1 PCT/JP2021/048790 JP2021048790W WO2023127096A1 WO 2023127096 A1 WO2023127096 A1 WO 2023127096A1 JP 2021048790 W JP2021048790 W JP 2021048790W WO 2023127096 A1 WO2023127096 A1 WO 2023127096A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual
space
moving body
motion
moving
Prior art date
Application number
PCT/JP2021/048790
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 川崎重工業株式会社
Priority to PCT/JP2021/048790 priority Critical patent/WO2023127096A1/ja
Publication of WO2023127096A1 publication Critical patent/WO2023127096A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics

Definitions

  • the technology disclosed here relates to a simulation system, a simulation method, and a simulation program.
  • Patent Document 1 discloses an information processing device that provides a user with a virtual image.
  • An information processing apparatus includes an imaging device that captures a physical space to generate a captured image, and a controller that generates an output image by superimposing a virtually generated virtual object on the captured image. A virtual object superimposed on a captured image as a physical space moves according to a user's operation.
  • the technology disclosed herein has been made in view of this point, and its purpose is to enable confirmation of the motion of a mobile object without moving the mobile object in the real space. .
  • the simulation system disclosed herein is a simulation system for simulating the motion of a moving object, and is a virtual space that generates a virtual space in which a virtual moving object corresponding to the moving object is arranged, corresponding to the real space.
  • a generator an object generator that generates in the virtual space a virtual object corresponding to the object that moves in the real space, and a motion generator that generates a virtual motion of the virtual moving body with respect to the virtual object.
  • the simulation system disclosed herein is a simulation system for simulating the motion of a moving object, and is a virtual space that generates a virtual space in which a virtual moving object corresponding to the moving object is arranged, corresponding to the real space.
  • a generation unit a detection calculation unit that calculates a detection result of a virtual sensor that is provided in the virtual moving body and detects a virtual object around the virtual moving body, and the virtual moving body based on the detection result of the virtual sensor and a motion generator for generating a virtual motion of
  • the simulation method disclosed herein is a simulation method for simulating the motion of a moving body, and includes generating a virtual space corresponding to a real space and in which a virtual moving body corresponding to the moving body is arranged. , generating in the virtual space a virtual object corresponding to the object moving in the real space; and generating a virtual motion of the virtual moving object with respect to the virtual object.
  • the simulation method disclosed herein is a simulation method for simulating the motion of a moving body, and includes generating a virtual space corresponding to a real space and in which a virtual moving body corresponding to the moving body is arranged. calculating a detection result of a virtual sensor provided in the virtual moving body for detecting virtual objects around the virtual moving body; and generating a virtual motion of the virtual moving body based on the detection result of the virtual sensor. including doing.
  • the simulation program disclosed herein is a simulation program for simulating the movement of a moving body, and has a function of generating a virtual space corresponding to a real space and in which a virtual moving body corresponding to the moving body is arranged. and causing a computer to realize a function of generating in the virtual space a virtual object corresponding to the object moving in the real space, and a function of generating a virtual motion of the virtual moving object with respect to the virtual object.
  • the simulation program disclosed herein is a simulation program for simulating the movement of a moving body, and has a function of generating a virtual space corresponding to a real space and in which a virtual moving body corresponding to the moving body is arranged. a function of calculating a detection result of a virtual sensor provided in the virtual moving body for detecting virtual objects around the virtual moving body; and generating a virtual motion of the virtual moving body based on the detection result of the virtual sensor. including the ability to
  • FIG. 1 is a schematic configuration diagram of a simulation system.
  • FIG. 2 is a schematic diagram showing a moving object in real space.
  • FIG. 3 is a perspective view of the moving body.
  • FIG. 4 is a block diagram schematically showing the hardware configuration of the mobile body.
  • FIG. 5 is a block diagram schematically showing the hardware configuration of the simulation system.
  • FIG. 6 is a functional block diagram schematically showing the software configuration of the control device.
  • FIG. 7 is a diagram of the virtual space generated by the simulation system.
  • FIG. 8 is a diagram showing detection results of the virtual sensor.
  • FIG. 9 is a detailed functional block diagram of the action generator.
  • FIG. 10 is a functional block diagram schematically showing the software configuration of the display device.
  • FIG. 11 is a virtual image displayed by the simulation system.
  • FIG. 12 is a perspective view of the real space during motion simulation.
  • FIG. 13 is a flowchart of motion simulation.
  • FIG. 1 is a schematic configuration diagram of a simulation system 100.
  • FIG. 2 is a schematic diagram showing the moving object 9 in the physical space 80.
  • the simulation system 100 performs motion simulation of the moving body 9 .
  • the mobile object 9 is an object that moves in a real space 80 in which installation objects 82 such as walls or pillars can exist.
  • the simulation system 100 realizes motion simulation by causing a virtual moving body corresponding to the moving body 9 to simulate motion in a virtual space corresponding to the real space 80 .
  • the moving body 9 autonomously travels in the physical space 80, that is, autonomously travels.
  • the mobile body 9 travels while avoiding the installed object 82, the person 83, and the like, for example.
  • the simulation system 100 causes a virtual moving object to autonomously travel in the virtual space in the same way as the moving object 9 does.
  • the simulation system 100 uses cross-reality technology (XR technology) to provide the user with a virtual image of a virtual moving object whose motion is to be simulated.
  • a simulation system 100 includes a control device 1 and a display device 3 .
  • the control device 1 generates a simulated motion of a virtual mobile object in the virtual space.
  • the display device 3 provides the user with a virtual image including a virtual moving object performing an action generated by the control device 1 .
  • the virtual image provided by the display device 3 is a mixed reality (MR) image.
  • MR mixed reality
  • the display device 3 provides a mixed reality image in which a virtual moving object is superimposed on the real space 80 .
  • FIG. 3 is a perspective view of the moving body 9.
  • FIG. FIG. 4 is a block diagram schematically showing the hardware configuration of the moving body 9.
  • the moving body 9 in this example is a transport robot that transports articles.
  • the moving body 9 is a carrier robot capable of autonomous travel.
  • the moving body 9 has a main body 90 , a traveling section 91 , a driving section 92 , a sensor 94 , a storage device 95 and a controller 96 .
  • the main body 90 can carry articles.
  • a storage space is formed inside the main body 90 in which an article can be stored.
  • the running part 91 makes the main body 90 run.
  • the traveling portion 91 has left and right drive wheels 91a and left and right driven wheels 91b.
  • the left and right drive wheels 91 a are provided at the rear portion of the main body 90 .
  • the left and right driven wheels 91 b are provided on the front portion of the main body 90 .
  • the driving section 92 drives the traveling section 91 .
  • the drive unit 92 includes a left motor that rotationally drives the left drive wheel 91a and a right motor that rotationally drives the right drive wheel 91a.
  • the rotation speed of each of the left and right driving wheels 91a can be individually changed by changing the rotation speed of each of the left motor and the right motor.
  • the left and right motors rotationally drive the left and right driving wheels 91a at the same rotational speed, so that the traveling portion 91 travels straight.
  • the left and right motors rotationally drive the left and right driving wheels 91a at different rotational speeds, so that the traveling portion 91 turns (for example, changes direction).
  • the mechanism for performing the turning travel of the travel portion 91 is not limited to this.
  • the drive unit 92 may realize turning traveling by rotationally driving the driving wheel 91a or the driven wheel 91b around a turning shaft extending in the vertical direction.
  • the sensor 94 detects objects around the moving body 9 (hereinafter simply referred to as "peripheral objects").
  • object includes both inanimate objects and animate objects.
  • Peripheral objects can include installation objects 82 (see FIG. 2) installed in the physical space 80 and objects that move in the physical space (hereinafter referred to as “moving objects”).
  • a working object is, for example, a person 83 or another robot or the like.
  • the sensor 94 is provided on the main body 90, for example.
  • the sensor 94 in this example is a ranging sensor that measures the distance from the sensor 94 to surrounding objects.
  • the sensor 94 is a LiDAR (Light Detection and Ranging) sensor.
  • the sensor 94 has, for example, a light-emitting portion that emits laser light toward the surroundings of the moving body 9 and a light-receiving portion that receives the laser light reflected by the surface of the surrounding object.
  • the sensor 94 measures the time of flight until the laser beam emitted from the light emitting unit strikes the surface of the surrounding object and returns to the light receiving unit.
  • Sensor 94 measures the distance from sensor 94 to the surface of the surrounding object based on the measured time-of-flight.
  • Sensor 94 computes point cloud data based on the measured distances.
  • the point cloud data is three-dimensional position information of the surface of the surrounding object.
  • Sensor 94 outputs the calculated point cloud data to controller 96 .
  • detection of surrounding objects is repeatedly performed at a predetermined detection cycle.
  • the sensor 94 outputs the detection result of the sensor 94, that is, point cloud data to the controller 96 each time it detects a surrounding object.
  • the storage device 95 stores various programs and various data.
  • the data stored by the memory 95 includes the first map.
  • the first map is a three-dimensional map in real space 80 .
  • the first map is based on the real coordinate system, which is the coordinate system set in the real space 80 .
  • position means the absolute position of the physical coordinate system.
  • the first map contains the location of the installation 82 .
  • the first map includes first point information.
  • the first point information includes the departure point and arrival point of the moving body 9 when autonomously traveling.
  • the first map is used for controlling autonomous driving.
  • the first map is pre-stored in the memory 95 .
  • the controller 96 reads the control program stored in the storage device 95 and controls each part of the moving body 9 in an integrated manner.
  • the controller 96 realizes autonomous travel by controlling the drive unit 92 based on the detection result of the sensor 94 .
  • the controller 96 realizes autonomous travel by controlling the drive unit 92 based on the first map and the detection result of the sensor 94 .
  • the controller 96 calculates a global route based on the first map.
  • the global route is a provisional and schematic route that is used when the mobile body 9 travels autonomously.
  • a global route is a traveling route from the starting point of the moving body 9 to the arrival point.
  • the controller 96 stores the computed global path in the memory 95 .
  • the controller 96 acquires the point cloud data from the sensor 94 and calculates the relative positions of the surrounding objects from the moving object 9 based on the acquired point cloud data.
  • Peripheral objects may include installations 82 and working objects.
  • the controller 96 calculates the position and orientation of the moving body 9 in the real coordinate system, which is estimated based on the relative position of the installed object 82 from the moving body 9 detected by the sensor 94 .
  • the position and orientation of the moving body 9 are simply referred to as "estimated position".
  • the controller 96 obtains the relative position of the installed object 82 from the moving object 9 based on the detection result of the sensor 94, and compares the relative position of the installed object 82 with the absolute position of the installed object 82 defined by the first map. , the absolute position and orientation of the moving body 9 in the real coordinate system based on the absolute position of the installed object 82 are obtained.
  • the absolute position and orientation of the moving body 9 obtained in this manner are the estimated position.
  • the controller 96 calculates a small area path based on the global path, the relative position of the peripheral object from the moving body 9, and the estimated position.
  • a small-region route is a deterministic route of the moving object 9 generated based on the global route. Specifically, controller 96 modifies the global path so that mobile body 9 avoids contact with installations 82 and working objects. The controller 96 generates a path that reduces the error between the estimated position and the global path, approaches the arrival point, and does not contact the installation 82 or the moving object as the local path.
  • a small area route is a travel route of a predetermined distance in a relatively short time.
  • the controller 96 calculates a command value for the drive unit 92 based on the calculated small area path.
  • the command value is a command value that is input to the drive unit 92 in order to allow the moving body 9 to travel from the start point to the end point of the small area route.
  • the command values are the rotation speed of the left motor and the rotation speed of the right motor.
  • the controller 96 outputs the calculated command value to the driving section 92 to cause the traveling section 91 to travel. As a result, the mobile body 9 travels along the small area route.
  • the controller 96 acquires the point cloud data, calculates the relative position of the surrounding object from the moving object 9, calculates the estimated position of the moving object 9, calculates the small area route, calculates the command value, and the driving unit The output of the command value to 92 is repeated. As a result, the moving body 9 repeats traveling along the small area route and travels autonomously. The controller 96 stops the drive unit 92 when the calculated estimated position matches the arrival point. As a result, the autonomous travel of the moving body 9 ends.
  • FIG. 5 is a block diagram schematically showing the hardware configuration of the simulation system 100.
  • the control device 1 creates a virtual space corresponding to the real space 80, a virtual installation object corresponding to the installation object 82, a virtual object corresponding to the moving object, a virtual moving object corresponding to the moving object 9, and a virtual object in the virtual space.
  • a virtual motion which is the motion of the moving body, is generated.
  • the control device 1 is, for example, a computer.
  • the control device 1 has a storage device 11 , a controller 12 and a communication device 13 .
  • the storage device 11 stores various programs and various data.
  • the storage device 11 is formed of, for example, a magnetic disk such as a hard disk, an optical disk such as a CD (Compact Disc) and a DVD (Digital Versatile Disc), or a semiconductor memory.
  • the storage device 11 stores the second map.
  • the second map is a three-dimensional map in virtual space.
  • the second map is based on a virtual coordinate system, which is a coordinate system set in virtual space.
  • position means an absolute position in the virtual coordinate system.
  • the virtual coordinate system corresponds to the real coordinate system.
  • the second map contains the positions of the virtual installations in the virtual space.
  • the second map includes second point information.
  • the second point information includes the departure point and arrival point of the moving body 9 during autonomous travel.
  • the second point information may further include waypoints of the moving body 9 during autonomous travel.
  • the second map is used to generate virtual space, virtual objects, virtual installations, virtual moving objects, and virtual actions.
  • the second map is stored in the storage device 11 in advance.
  • the storage device 11 further stores sensor performance.
  • Sensor performance includes the detection error, resolution, and detectable range of sensor 94 .
  • Sensor performance is used to generate virtual motion. Note that the sensor performance may include only one or two of the sensor 94's detection accuracy, resolution, and detectable range.
  • the controller 12 reads and executes various programs stored in the storage device 11 .
  • the controller 12 includes, for example, various processors such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit) and/or a DSP (Digital Signal Processor), VRAM (Video Random Access Memory), RAM (Random Access Memory) and / Or various semiconductor memories such as ROM (Read Only Memory).
  • various processors such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit) and/or a DSP (Digital Signal Processor), VRAM (Video Random Access Memory), RAM (Random Access Memory) and / Or various semiconductor memories such as ROM (Read Only Memory).
  • the controller 12 reads the control program from the storage device 11, controls each part of the control device 1 in an integrated manner, and generates virtual space, virtual objects, virtual moving objects, and virtual actions.
  • the communication device 13 transmits and receives signals to and from the display device 3 by wireless communication.
  • the communication device 13 transmits the virtual motion of the virtual moving object generated by the controller 12 to the display device 3 .
  • the display device 3 generates a virtual image including a virtual moving object that virtually moves, and displays the generated virtual image.
  • the display device 3 is a head-mounted display that can be worn on the head of the user 81 .
  • the display device 3 has a display device 31, a position detector 32, a storage device 33, a controller 34 and a communication device 35, as shown in FIG.
  • the display 31 displays a virtual image.
  • the display 31 in this example is an optical see-through display.
  • the display device 31 has a lens 31a (see FIG. 1) arranged on the line of sight of the user 81 wearing the display device 3 .
  • the display device 31 provides a virtual image in which the virtual moving object is superimposed on the physical space 80 by displaying the image of the virtual moving object on the lens 31a.
  • the position detector 32 detects the position and orientation of the display device 3, that is, the position and orientation in the physical space 80 of the user 81 wearing the display device 3 (specifically, the head of the user 81).
  • the display device 3 in this example is an inside-out type head-mounted display, and the position detector 32 detects the position of the display device 3 using a sensor provided in the display device 3 .
  • the position detector 32 includes, for example, a gyro sensor that detects the angular velocity of the display device 3 , an acceleration sensor that detects the acceleration of the display device 3 , and a geomagnetic sensor that detects the geomagnetism of the position of the display device 3 .
  • the position detector 32 cumulatively adds motion vectors obtained from the detection results of the gyro sensor, acceleration sensor, and geomagnetic sensor to a reference point set in the real coordinate system, thereby determining the user position in the real coordinate system. to detect
  • the position detector 32 is an example of a position detector that detects the position of an action object that operates in the physical space 80 .
  • the storage device 33 stores various programs and various data.
  • the storage device 33 is formed by, for example, a magnetic disk such as a hard disk, an optical disk such as a CD and a DVD, or a semiconductor memory.
  • the storage device 33 stores object definition data defining objects included in the virtual image.
  • the storage device 33 stores object definition data of a virtual moving object.
  • the controller 34 reads and executes various programs stored in the storage device 33 .
  • the controller 34 has, for example, various processors such as CPU, GPU and/or DSP, and various semiconductor memories such as VRAM, RAM and/or ROM.
  • the controller 34 reads the control program from the storage device 33 and controls each part of the display device 3 in an integrated manner.
  • the controller 34 generates a virtual image and causes the display 31 to display the generated virtual image.
  • the communication device 35 transmits and receives signals to and from the control device 1 (specifically, the communication device 13) by wireless communication.
  • the communicator 35 transmits the user position detected by the position detector 32 to the control device 1 .
  • the communicator 35 receives virtual motions transmitted from the controller 1 .
  • FIG. 6 is a functional block diagram schematically showing the software configuration of the control device 1.
  • the controller 12 has a virtual space generator 21, an object generator 22, a detection calculator 23, and a motion generator 24 as functional blocks. The functions of these functional blocks are realized by the controller 12 reading the control program from the memory 11 .
  • FIG. 7 is a diagram showing an example of the virtual space 60 generated by the simulation system 100.
  • the virtual space generator 21 generates the virtual space 60 .
  • the virtual space generator 21 generates the virtual space 60 based on the second map.
  • a virtual space 60 is a space corresponding to the real space 80 .
  • the virtual space 60 is a space in which a virtual installation object 63 corresponding to the installation object 82 in the real space 80 is arranged.
  • the virtual space generator 21 further generates the virtual installed object 63 in the virtual space 60 .
  • the virtual space generator 21 generates a virtual installed object 63 in the virtual space 60 at a position defined based on the second map.
  • virtual walls and pillars having the same shape as the walls and pillars in the real space 80 are formed as virtual installation objects 63 in the virtual space 60 at positions corresponding to the walls and pillars in the real space 80 .
  • the virtual space generation unit 21 generates a virtual mobile object 61 in the virtual space 60 .
  • a virtual moving object 61 corresponds to the moving object 9 .
  • the virtual mobile body 61 has the same configuration and functions as the mobile body 9 .
  • the virtual moving object 61 has a virtual main body corresponding to the main body 90, a virtual traveling part corresponding to the traveling part 91, a virtual driving part corresponding to the driving part 92, and a virtual sensor corresponding to the sensor 94. ing.
  • the virtual sensor like the sensor 94, detects virtual objects (hereinafter referred to as "virtual peripheral objects") that exist around the virtual moving object 61 in the virtual space 60.
  • a virtual sensor is provided, for example, in a virtual body.
  • the virtual sensor has similar performance to sensor 94 .
  • the detection accuracy of the virtual sensor matches the detection accuracy of sensor 94 .
  • the resolution of the virtual sensor matches the resolution of sensor 94 .
  • the detection range of the virtual sensor with reference to the virtual main body matches the detection range of the sensor 94 with reference to the main body 90 .
  • the generated virtual moving object 61 is placed in the virtual space 60.
  • the initial position of the virtual mobile object 61 is the starting point defined by the second point information.
  • the initial orientation of the virtual moving body 61 is also defined as the orientation at the starting point in the second point information.
  • the position and posture of the virtual moving object 61 in the virtual space 60 are updated according to the virtual motion.
  • the position and orientation of the virtual moving object 61 in the virtual space 60 are simply referred to as "virtual position”.
  • the object generation unit 22 generates a virtual object corresponding to the action object in the real space 80 in the virtual space 60 generated by the virtual space generation unit 21 .
  • the virtual object is virtual user 62 corresponding to user 81 . That is, the virtual object generated by the object generation unit 22 corresponds to a person acting in the physical space 80 .
  • the object generation unit 22 generates a virtual user 62 at a position in the virtual space 60 corresponding to the user position in the real space 80 based on the detection result of the position detector 32 .
  • the object generator 22 acquires the detection result of the position detector 32 , that is, the user position in the physical space 80 .
  • the object generator 22 transforms the user position in the physical space 80 into the user position in the virtual space 60 based on the correspondence relationship between the physical coordinate system and the virtual coordinate system.
  • the object generator 22 generates a virtual user 62 at the user's position in the virtual space 60 . That is, the position of the virtual user 62 in the virtual space 60 is the position obtained by transforming the user position in the physical space 80 into the virtual space 60 .
  • the virtual user 62 is, for example, a cylindrical model.
  • the detection calculation unit 23 calculates the detection result of the virtual sensor that detects the virtual peripheral object.
  • Virtual surrounding objects may include virtual installations 63 and virtual users 62 .
  • the detection range of the virtual sensor is set based on the virtual moving object 61.
  • the detection calculation unit 23 moves the detection range of the virtual sensor according to the virtual position of the virtual moving object 61 . If the virtual user 62 or the virtual installation object 63 exists within the detection range of the virtual sensor, the detection calculation unit 23 determines that the virtual sensor has detected the virtual user 62 or the virtual installation object 63 .
  • the detection calculation unit 23 calculates point cloud data (hereinafter referred to as "virtual point cloud data") 64 of the virtual peripheral object determined to have been detected by the virtual sensor as the detection result of the virtual sensor.
  • FIG. 8 is a diagram showing the position of the virtual point cloud data 64 with respect to the virtual space 60.
  • FIG. 8 shows not only the virtual point cloud data 64 but also the virtual installed object 63 , the virtual moving object 61 and the virtual user 62 in order to clarify the position of the virtual point cloud data 64 .
  • Virtual point cloud data 64 corresponds to point cloud data acquired by sensor 94 .
  • the virtual point cloud data 64 is three-dimensional position information of the surface of the virtual peripheral object.
  • the virtual point cloud data 64 indicates the relative positions of the virtual peripheral objects with respect to the virtual moving object 61 .
  • the virtual point cloud data 64 can include virtual point cloud data 64 a of the virtual installation object 63 and virtual point cloud data 64 b of the virtual user 62 .
  • the detection calculation unit 23 calculates the detection result of the virtual sensor, that is, the virtual point cloud data 64a, based on the virtual position of the virtual moving body 61, the position of the virtual installed object 63, the user position, and the sensor performance. From the virtual position of the virtual moving object 61 and the position of the virtual installation object 63, the relative distance of the virtual installation object 63 from the virtual moving object 61 is obtained. Based on this relative distance and the sensor performance, the detection calculation unit 23 obtains the relative distance of the virtual installation object 63 reflecting the sensing error caused by the sensor performance, and calculates the relative distance of the virtual installation object 63 reflecting the sensing error. The virtual point cloud data 64a is generated based on.
  • the detection calculation unit 23 multiplies the relative distance of the virtual installed object 63 by a coefficient randomly selected from values between 0.9 and 1.1 to obtain the relative distance of the virtual installed object 63 reflecting the sensing error. You can ask for the distance.
  • the detection calculation unit 23 may calculate the relative distance of the virtual installation object 63 reflecting the sensing error by truncating the digits smaller than the number of digits corresponding to the resolution of the sensor 94 among the digits of the relative distance of the virtual installation object 63 . You can ask for the distance.
  • the sensing error is reflected so that the virtual sensor does not detect the virtual installation object 63.
  • the virtual point cloud data 64a may be calculated.
  • the virtual point cloud data 64a can be arranged at a position shifted from the surface of the virtual installed object 63, as shown in FIG. 8, by the amount reflecting the sensing error, for example.
  • the detection calculation unit 23 generates the virtual point cloud data 64b in the same manner as the virtual point cloud data 64a. That is, the detection calculation unit 23 calculates the virtual point cloud data 64b based on the virtual position of the virtual moving object 61, the position of the virtual user 62, and the sensor performance. The relative distance of the virtual user 62 from the virtual mobile object 61 is obtained from the virtual position of the virtual mobile object 61 and the position of the virtual user 62 . The detection calculation unit 23 obtains the relative distance of the virtual user 62 reflecting the sensing error based on this relative distance and the sensor performance, and generates virtual point cloud data based on the relative distance of the virtual user 62 reflecting the sensing error. 64b.
  • the calculation method of the relative distance of the virtual user 62 reflecting the sensing error is the same as in the case of the virtual point cloud data 64a.
  • the virtual point cloud data 64b can be arranged at a position shifted from the surface of the columnar virtual user 62, as shown in FIG. 8, by the amount reflecting the sensing error, for example.
  • the motion generation unit 24 generates a virtual motion of the virtual moving object 61 in the virtual space 60 .
  • the virtual action is the action similar to the action of the moving body 9 in the real space 80 .
  • the virtual action is autonomous running of a virtual mobile object 61 in the virtual space 60 .
  • the virtual motion generated by the motion generation unit 24 is the motion of the virtual moving body 61 corresponding to the virtual object.
  • the virtual moving body 61 performs a motion in response to the virtual object as a virtual motion.
  • autonomous travel when the virtual mobile object 61 approaches a virtual object, it travels to avoid contact with the virtual object.
  • the motion generation unit 24 generates a virtual motion based on the detection result of the virtual sensor calculated by the detection calculation unit 23.
  • the motion generation unit 24 generates the route of the virtual moving body 61 in the virtual space 60 based on the detection result of the virtual sensor, and causes the virtual moving body 61 to move along the generated route.
  • the motion generator 24 corrects the route of the virtual moving object 61 based on the detection result of the virtual sensor.
  • the motion generation unit 24 calculates a command value (hereinafter referred to as a "virtual command value”) to the virtual driving unit based on the generated path, and moves the virtual moving object 61 based on the calculated virtual command value. .
  • the movement that is, the displacement of the virtual moving body 61 is the virtual action.
  • FIG. 9 is a detailed functional block diagram of the motion generator 24.
  • the motion generation unit 24 includes a global path calculation unit 24a, an object position calculation unit 24b, an estimated position calculation unit 24c, a small area route calculation unit 24d, a command value calculation unit 24e, and a dynamic model 24f.
  • the global path computing unit 24a computes a virtual global path.
  • the virtual global path corresponds to the global path computed by controller 96 .
  • the virtual global route is a provisional and rough route used when the virtual mobile object 61 autonomously travels.
  • a virtual global route is a travel route from the starting point to the arrival point of the virtual moving object 61 .
  • the global route calculation unit 24a calculates a virtual global route based on the second map stored in the storage unit 11. FIG. Specifically, based on the positions and sizes of the virtual moving object 61 and the virtual installation object 63, the global path calculation unit 24a calculates a distance between the starting point and the arrival point such that the virtual moving object 61 does not interfere with the virtual installation object 63.
  • the route of the virtual moving object 61 to is calculated as a virtual global route. If there is a waypoint between the departure point and the arrival point, the virtual global route becomes a route that passes through the waypoint.
  • the object position calculation unit 24b calculates the relative position of the virtual peripheral object detected by the virtual sensor with respect to the virtual moving body 61 (hereinafter referred to as "detection position").
  • Virtual surrounding objects may include virtual user 62 and virtual installation 63 .
  • the object position calculation unit 24b calculates the detected position of the virtual peripheral object based on the virtual point cloud data 64 calculated by the detection calculation unit 23.
  • FIG. As described above, the virtual point cloud data 64a reflects the sensor performance, so it can be arranged at a position deviated from the surface of the virtual installed object 63 .
  • the detected position of the virtual installation object 63 is not the relative position of the virtual installation object 63 with respect to the virtual moving object 61 specified based on the second map, but the position specified based on the second map. This is the position when the virtual installation object 63 is detected by the virtual sensor.
  • the detected position of the virtual user 62 is not the relative position of the virtual user 62 with respect to the virtual moving body 61 set based on the user position in the physical space 80, but the position set based on the user position in the physical space 80. This is the position when the virtual user 62 placed in is detected by the virtual sensor.
  • the estimated position calculation unit 24c calculates the position and orientation of the virtual moving body 61 in the virtual coordinate system, which is estimated based on the detection result of the virtual sensor.
  • the position and orientation of these virtual moving bodies 61 are simply referred to as "virtual estimated position”.
  • the estimated position calculation unit 24c obtains the relative position of the virtual installed object 63 from the virtual moving body 61 based on the detection result of the virtual sensor.
  • the second map contains information on the absolute position of the virtual installation object 63 in the virtual coordinate system.
  • the estimated position calculation unit 24c compares the relative position of the virtual installation object 63 with respect to the virtual moving object 61 and the absolute position of the virtual installation object 63 defined by the second map, thereby obtaining the absolute position of the virtual installation object 63.
  • the absolute position and orientation of the reference virtual moving body 61 are obtained.
  • the absolute position and orientation of the virtual moving object 61 obtained in this manner are the estimated virtual position.
  • the relative position of the virtual installation object 63 calculated by the object position calculator 24b may include sensing errors due to the sensor performance of the virtual sensor. Therefore, the estimated virtual position may deviate from the virtual position, which is the absolute position of the virtual moving object 61 in the virtual space 60 .
  • the small area route calculation unit 24d calculates a virtual small area route.
  • the virtual subregion path corresponds to the subregion path that controller 96 computes.
  • a virtual local route is a definite route of the virtual moving object 61 generated based on the virtual global route.
  • the small-region route calculator 24d calculates a virtual small-region route based on the virtual global route, the detected position of the virtual peripheral object, and the virtual estimated position.
  • the small-region route calculation unit 24d modifies the virtual global route so that the virtual moving object 61 avoids contact with the virtual user 62 and the virtual installation object 63.
  • the small-region route calculator 24d generates a route that has a small error from the virtual estimated position and the virtual global route, approaches the arrival point, and does not contact the virtual user 62 and the virtual installation object 63, as a virtual small-region route.
  • a virtual small area route is a travel route of a predetermined distance in a relatively short time. In this way, the small-range route calculation unit 24d gradually generates virtual small-range routes.
  • the starting point of the virtual small area route calculated by the small area route calculation unit 24d is not the virtual position of the virtual moving body 61 but the estimated virtual position. In other words, although the virtual moving object 61 is actually located at the virtual position, a virtual small area route from the virtual estimated position is generated.
  • the command value calculation unit 24e calculates a virtual command value.
  • the virtual command value corresponds to the command value to drive section 92 calculated by controller 96 . That is, the virtual command value is a command value that is input to the virtual driving unit in order to make the virtual moving body 61 travel from the start point to the end point of the virtual small area route.
  • the command value calculation unit 24e calculates a virtual command value based on the virtual small area route calculated by the small region route calculation unit 24d.
  • the dynamics model 24f generates virtual motions.
  • the dynamic model 24f is a motion model of the moving body 9.
  • the dynamic model 24f generates a virtual motion based on the virtual command value calculated by the command value calculator 24e.
  • the dynamics model 24f includes a drive unit model 24g and a vehicle body motion model 24h.
  • the drive unit model 24g is a motion model of the drive unit 92 modeled by mathematical modeling.
  • the drive unit model 24g receives the virtual command value from the command value calculation unit 24e, and outputs the drive force of the virtual drive unit (hereinafter referred to as "virtual drive force").
  • the virtual driving force corresponds to the driving force output by the driving section 92 when the same command value as the virtual command value is input from the controller 96 to the driving section 92 .
  • the vehicle body motion model 24h is a motion model of the main body 90 modeled by mathematical modeling.
  • the vehicle body motion model 24h calculates the motion of the main body 90 when the driving force that is the same as the virtual driving force is applied to the traveling portion 91 .
  • the vehicle body motion model 24h receives the virtual driving force from the driving part model 24g and outputs the displacement, that is, the movement of the virtual moving body 61 .
  • the displacement output from the vehicle body motion model 24h corresponds to the displacement of the moving body 9 when the driving section 92 generates the same driving force as the virtual driving force.
  • the vehicle body motion model 24h outputs the position and orientation of the virtual moving body 61 after being displaced when the virtual driving force is applied to the virtual moving body 61 positioned at the virtual position in the virtual space 60 as a virtual motion.
  • the virtual small-region route is generated based on the virtual estimated position, and the virtual driving force is calculated based on the virtual small-region route.
  • the dynamic model 24f moves the virtual moving body 61 located at the virtual position with the virtual driving force calculated based on the virtual small area path. Therefore, the virtual motion of the virtual moving body 61 may include sensing errors due to the sensor performance of the virtual sensor.
  • the motion generation unit 24 outputs the position and orientation of the virtual moving body 61 calculated by the dynamic model 24f as a virtual motion.
  • the motion generator 24 updates the virtual position of the virtual moving body 61 to the calculated position and orientation. By repeating such processing, the motion generation unit 24 generates motion of the virtual moving object 61 that moves generally along the virtual global path while avoiding contact with the virtual user 62 and the virtual installation object 63 in the virtual space 60. Generate.
  • the motion generator 24 periodically transmits the virtual position and orientation of the virtual moving body 61 as the virtual motion to the display device 3 .
  • FIG. 10 is a functional block diagram schematically showing the software configuration of the display device 3. As shown in FIG.
  • the controller 34 has an image generator 41 and a display 42 as functional blocks. The functions of these functional blocks are realized by the controller 34 reading the control program from the memory 33 .
  • FIG. 11 is a virtual image 7 displayed by the simulation system 100.
  • the image generation unit 41 generates a virtual image 7 including a virtual moving body 61 that performs a virtual motion. Specifically, the image generating unit 41 generates, as the virtual image 7, a mixed reality image in which the virtual moving body 61 is superimposed on the real space 80 that the user 81 can see through the lens 31a.
  • the image generator 41 generates the virtual image 7 based on the virtual motion generated by the motion generator 24 . Specifically, the image generator 41 generates an image of the virtual moving object 61 .
  • the image generator 41 acquires the virtual motion generated by the motion generator 24 , that is, the virtual position and orientation of the virtual moving object 61 and the user position in the physical space 80 detected by the position detector 32 .
  • the image generator 41 converts the position and orientation of the virtual moving body 61 in the virtual space 60 into the position and orientation of the virtual moving body 61 in the physical space 80 based on the correspondence relationship between the real coordinate system and the virtual coordinate system. .
  • the image generating unit 41 generates an image of the virtual moving body 61 when the virtual moving body 61 is viewed from the user position in the physical space 80 based on the object definition data of the virtual moving body 61 .
  • the display unit 42 causes the display 31 to display the virtual image 7 generated by the image generation unit 41 .
  • the display unit 42 provides the user 81 with the virtual image 7 by displaying the image of the virtual moving object 61 generated by the image generation unit 41 on the lens 31 a of the display device 31 . Therefore, the virtual image 7 displayed by the display device 31 can include not only the virtual moving object 61 but also the installation object 82 in the real space 80 that can be seen through the lens 31a.
  • the display unit 42 displays the virtual moving body 61 so that the virtual moving body 61 is arranged at the position in the real space 80 corresponding to the virtual position of the virtual moving body 61 in the virtual space 60 in the same posture as the virtual moving body 61 . 61 is displayed on the lens 31 a of the display 31 .
  • FIG. 12 is a schematic diagram showing an example of the physical space 80 during motion simulation.
  • the motion simulation is performed with the display device 3 attached to the head of the user 81, as shown in FIG.
  • the motion simulation is started by the user 81 operating the control device 1 or the display device 3, for example.
  • the virtual mobile object 61 is indicated by a dashed line in FIG. 12 , the virtual mobile object 61 does not actually exist in the physical space 80 .
  • FIG. 13 is a flowchart of motion simulation.
  • the virtual space generator 21 When the motion simulation is started, the virtual space generator 21 generates the virtual space 60, the virtual installed object 63, and the virtual moving body 61 based on the second map in step S11. At this time, the virtual space generation unit 21 generates the virtual moving body 61 at the position corresponding to the starting point of the second point information in the virtual space 60 .
  • the virtual space generator 21 also transmits a detection start command for the position detector 32 to the display device 3 via the communication device 13 .
  • the position detector 32 When the display device 3 receives a command to start detection by the position detector 32 via the communication device 35, the position detector 32 starts detecting the user's position in the physical space 80 in step S21.
  • the position detector 32 determines whether or not a predetermined detection cycle has arrived in step S22.
  • the detection period is the detection period of the position detector 32 . If the detection cycle has not arrived, the position detector 32 waits by repeating the process of step S22 until the detection cycle arrives.
  • the position detector 32 detects the user position in step S23.
  • the position detector 32 transmits the detected user position to the control device 1 via the communication device 35 .
  • step S12 the object generation unit 22 of the control device 1 determines whether or not a predetermined calculation cycle has arrived.
  • the computation cycle is the computation cycle of the detection computation unit 23 .
  • the computation period matches the detection period of the position detector 32 . If the calculation period has not arrived, the object generator 22 waits by repeating step S12 until the calculation period arrives. Note that the calculation cycle of the detection calculation unit 23 may be longer or shorter than the detection cycle of the position detector 32 .
  • the object generator 22 When the calculation cycle arrives, the object generator 22 generates a virtual user 62 in the virtual space 60 based on the user position from the position detector 32 in step S13.
  • step S14 the detection calculation unit 23 calculates virtual point cloud data 64, which is the detection result of the virtual sensor, based on the position and orientation of the virtual moving body 61 in the virtual space 60.
  • the motion generation unit 24 calculates a virtual command value based on the virtual point cloud data 64 calculated by the detection calculation unit 23 in step S15. Specifically, if the virtual global route has not yet been calculated, the global route calculation unit 24a calculates the virtual global route based on the second map. The motion generator 24 stores the calculated virtual global path in the storage device 11 . Based on the virtual point cloud data 64, the object position calculator 24b calculates the detected position of the virtual peripheral object. Based on the relative position of the virtual installation object 63 from the virtual mobile object 61 and the absolute position of the virtual installation object 63 on the second map, the estimated position calculation unit 24c calculates the absolute position of the virtual installation object 61 in the virtual coordinate system. Compute as an estimated position. The small-region route calculation unit 24d calculates a virtual small-region route based on the virtual global route, the relative position of the virtual peripheral object, and the virtual estimated position. The command value calculator 24e calculates a virtual command value based on the virtual small area route.
  • the motion generation unit 24 generates a virtual motion of the virtual moving body 61 based on the virtual command value in step S16. Specifically, the driving unit model 24g calculates a virtual driving force based on the virtual command value. The vehicle body motion model 24h calculates the position and posture of the virtual moving body 61 after displacement based on the virtual driving force. The motion generator 24 updates the virtual position and orientation of the virtual moving body 61 in the virtual space 60 to the post-displacement position and orientation. The motion generator 24 transmits the virtual motion, that is, the virtual position and orientation of the virtual moving body 61 after displacement to the display device 3 via the communication device 13 .
  • the image generator 41 In step S24, generates a displacement based on the virtual motion, the object definition data of the virtual moving body 61, and the user position. An image of the virtual moving object 61 after that is generated.
  • the display unit 42 causes the display 31 to display the virtual image 7 including the image of the virtual moving body 61 generated by the image generation unit 41 in step S25.
  • the motion generation unit 24 of the control device 1 determines in step S17 whether or not the virtual moving body 61 has finished autonomously traveling. Specifically, if the estimated virtual position and the arrival point match, the motion generator 24 determines that the autonomous travel of the virtual moving body 61 has ended, and the estimated virtual position and the arrival point match. If not, it is determined that the virtual moving body 61 has not finished autonomously traveling. If the autonomous travel of the virtual mobile body 61 has not ended, the process returns to step S12. That is, the control device 1 repeatedly executes the processes of steps S12 to S17 to repeatedly generate virtual motions. Thereby, the virtual moving body 61 in the virtual space 60 runs autonomously.
  • the processing of the display device 3 returns to step S22 after step S25. That is, the display device 3 repeatedly executes the processing of steps S22 to S25 to repeatedly detect the user position in the physical space 80 and generate and display the virtual image 7 . As a result, the display 31 provides the user 81 with the virtual image 7 in which the autonomously traveling virtual moving object 61 is superimposed on the physical space 80 .
  • step S15 the computation of the virtual global path by the motion generator 24 in step S15 is performed only when the virtual command value is first computed in the motion simulation. That is, the motion generation unit 24 uses the virtual global path stored in the storage unit 11 when calculating the virtual command value for the second and subsequent times. Further, the computation of the virtual global path by the motion generator 24 may be performed before the first computation of the virtual command value in the motion simulation, and may not be performed in step S15.
  • the processing in step S11 corresponds to generating a virtual space in which a virtual moving body corresponding to the moving body is arranged, corresponding to the real space.
  • the processing in steps S23 and S13 corresponds to generating in the virtual space a virtual object corresponding to the object that moves in the real space.
  • the processing in step S14 corresponds to calculating the detection result of the virtual sensor provided in the virtual moving body and detecting virtual objects around the virtual moving body.
  • the processing in steps S15 and S16 corresponds to generating a virtual motion of the virtual moving object with respect to the virtual object.
  • the processing in steps S15 and S16 also corresponds to generating a virtual motion of the virtual moving object based on the detection result of the virtual sensor.
  • the simulation system 100 can cause a virtual moving body 61 corresponding to the moving body 9 to virtually act in the virtual space 60 in which a virtual object corresponding to the moving object in the real space 80 is generated.
  • the virtual moving body 61 can be caused to perform a virtual action corresponding to the virtual object. Therefore, the user 81 can confirm the action of the moving body 9 reacting to the object moving in the real space 80 by using the virtual moving body 61 without using the actual machine of the moving body 9 .
  • the development stage of the mobile body 9 it is possible to check the operation of the mobile body 9 without manufacturing a prototype of the mobile body 9. Therefore, the development cost and development time of the moving body 9 can be reduced, and the specifications of the moving body 9 can be changed flexibly. For example, without manufacturing a prototype of the moving body 9, it is possible to proceed with the development of the moving body 9 by examining improvement points of the moving body 9, developing designs, and the like.
  • the user 81 can safely confirm the safety of the moving object 9 by confirming the virtual motion of the virtual moving object 61 .
  • a safety evaluation using an actual machine if the actual machine collides with a surrounding object, there is a risk of damage or the like occurring to the actual machine or the surrounding object.
  • the virtual moving object 61 that is virtually arranged does not cause actual damage. As a result, it is possible to safely confirm the safety of the moving body 9 .
  • the operation of the mobile body 9 can be demonstrated by the virtual mobile body 61 even if the actual mobile body 9 is not on site. In other words, there is no need to transport the actual mobile body 9 to the demonstration site, which improves the efficiency of sales promotion.
  • the simulation system 100 calculates the detection results of virtual sensors that detect virtual objects in the virtual space 60, and generates virtual actions based on the calculated detection results of the virtual sensors. Therefore, the user 81 can simulate the motion of the moving body 9 that moves autonomously based on the detection result of the sensor 94 by checking the virtual motion of the virtual moving body 61 .
  • the virtual sensor corresponds to the sensor 94 provided on the moving body 9 and detecting objects around the moving body 9 . Therefore, the virtual motion of the virtual moving body 61 becomes much closer to the motion of the moving body 9 provided with the sensor 94, and the motion of the moving body 9 can be reproduced accurately.
  • the simulation system 100 can perform an operation simulation of the moving body 9 in which the sensor performance of the sensor 94 is reflected. Therefore, the user 81 can grasp the actual operation of the moving body 9 more appropriately.
  • the virtual object generated in the virtual space 60 corresponds to a person acting in the real space 80. Therefore, the user 81 can appropriately grasp the movement of the moving body 9 with respect to a person who is difficult to predict.
  • the simulation system 100 generates a virtual object in the virtual space 60 based on the detection result of the position detector 32 that detects the position of the object moving in the real space 80 . Therefore, the motion of the object acting in the real space 80 can be reflected in the motion of the virtual object in real time. Therefore, the user 81 can confirm the operation of the moving body 9 more appropriately.
  • the virtual image 7 is a mixed reality image in which the virtual moving object 61 is superimposed on the real space 80 . Therefore, the user 81 can visually confirm the movement of the moving body 9 by visually recognizing the virtual moving body 61 displayed as if it were moving in the real space 80 .
  • the display device 3 that displays the virtual image 7 is a head-mounted display. Therefore, by confirming the virtual image 7 displayed on the display device 3 worn on the head, the user 81 can feel as if the user 81 is in the space represented by the virtual image 7, and can move the moving object. 9 operation can be properly confirmed. Especially when the display device 3 is provided with the position detector 32 as in this example, the user 81 can confirm the virtual image 7 including the virtual moving object 61 that virtually moves according to the motion of the user 81 . .
  • the simulation system 100 is a simulation system for simulating the movement of the moving body 9, and corresponds to the real space 80, and the virtual space 60 in which the virtual moving body 61 corresponding to the moving body 9 is arranged.
  • an object generation unit 22 that generates in the virtual space 60 a virtual user 62 (virtual object) corresponding to a user 81 (object) operating in the real space 80; and a motion generator 24 that generates a virtual motion for the virtual user 62 in the space 60 .
  • the simulation method is a simulation method for simulating the movement of the moving object 9, and includes generating a virtual space 60 corresponding to the real space 80 and corresponding to the user 81 (object) operating in the real space 80. generating a virtual user 62 (virtual object) in the virtual space 60;
  • the simulation program is a simulation program for simulating the movement of the moving object 9, and has a function of generating a virtual space 60 corresponding to the real space 80 and a user 81 (object) operating in the real space 80.
  • a computer is made to realize a function of generating a corresponding virtual user 62 (virtual object) in the virtual space 60 and a function of generating a virtual action of the virtual moving body 61 for the virtual user 62 .
  • the virtual moving body 61 corresponding to the moving body 9 can be virtually operated. Therefore, by confirming the virtual motion of the virtual moving object 61 , the user 81 can control the motion of the moving object 9 acting on the user 81 operating in the real space 80 without actually moving the moving object 9 . , can be verified.
  • the simulation system 100 further includes a detection calculation unit 23 that calculates the detection result of the virtual sensor that detects the virtual user 62 (virtual object), and the motion generation unit 24 generates the virtual motion based on the detection result of the virtual sensor. Generate.
  • the virtual motion of the virtual moving body 61 can be the motion of moving autonomously based on the detection result of the sensor 94 . Therefore, the user 81 can appropriately grasp the movement of the moving body 9 that operates autonomously based on the detection result of the sensor 94 .
  • the virtual sensor corresponds to the sensor 94 that is provided on the moving body 9 and that detects objects around the moving body 9 .
  • the virtual motion of the virtual moving body 61 is much closer to the motion of the moving body 9 provided with the sensor 94 . Therefore, the user 81 can more appropriately grasp the movement of the moving body 9 that operates based on the detection result of the sensor 94 .
  • the virtual object generated by the object generation unit 22 corresponds to a person acting in the physical space 80 .
  • the user 81 can appropriately grasp the movement of the moving object 9 with respect to a person who is difficult to predict.
  • the simulation system 100 further includes a position detector 32 that detects the position of the user 81 (object) in the real space 80 , and the object generator 22 generates a virtual user 62 (virtual object) based on the detection result of the position detector 32 .
  • object is generated in the virtual space 60 .
  • the motion of the virtual user 62 can be made closer to the motion of the user 81 operating in the real space 80 . Therefore, the user 81 can more appropriately confirm the motion of the moving body 9 that moves relative to the user 81 that moves in the physical space 80 .
  • the simulation system 100 further includes a head-mounted display that provides the virtual image 7 including the virtual moving body 61 that performs virtual motions, and the position detector 32 detects the position of the head-mounted display in the physical space 80. detects the position of the user 81 wearing the head-mounted display in the real space 80, and the object generation unit 22 moves the user 81 to the position corresponding to the position of the user 81 in the virtual space 60 based on the detection result of the position detector 32. A virtual user 62 corresponding to 81 is generated.
  • the user 81 can check the virtual image 7 provided by the head-mounted display by wearing the head-mounted display and check the operation of the moving body 9 .
  • the user 81 can confirm the virtual image 7 including the virtual moving body 61 that virtually moves according to the motion of the user 81 .
  • the simulation system 100 further includes an image generation unit 41 that generates a virtual image 7 including a virtual moving object 61 that performs a virtual action.
  • the user 81 can easily visually confirm the virtual motion of the virtual moving object 61 .
  • the virtual image 7 is a mixed reality image in which the virtual moving object 61 is superimposed on the real space 80 .
  • the user 81 can appropriately confirm the movement of the moving body 9 by looking at the virtual moving body 61 displayed as if it were moving in the real space 80 .
  • the user 81 can check the virtual image 7 displayed on the display device 3 to check the operation of the moving object 9 .
  • the display device 3 is a head-mounted display.
  • the user 81 by checking the virtual image 7 displayed on the display device 3 worn on the head, the user 81 feels as if the user 81 exists in the space represented by the virtual image 7. , the operation of the moving body 9 can be properly confirmed.
  • the simulation system 100 is a simulation system for simulating the movement of the moving body 9, and generates a virtual space 60 corresponding to the real space 80 and in which a virtual moving body 61 corresponding to the moving body 9 is arranged.
  • a virtual space generation unit 21 a detection calculation unit 23 that calculates detection results of virtual sensors that are provided in the virtual moving body 61 and detect virtual objects around the virtual moving body 61; and a motion generation unit 24 that generates a virtual motion of the moving body 61 .
  • the simulation method is a simulation method for simulating the movement of the moving body 9, and generates a virtual space 60 corresponding to the real space 80 and in which a virtual moving body 61 corresponding to the moving body 9 is arranged. calculating a detection result of a virtual sensor provided in the virtual moving body 61 for detecting virtual objects around the virtual moving body 61; and performing a virtual motion of the virtual moving body 61 based on the detection result of the virtual sensor. and generating
  • it is a simulation program for simulating the movement of the moving body 9, and has a function of generating a virtual space 60 corresponding to the real space 80 and in which a virtual moving body 61 corresponding to the moving body 9 is arranged. , a function of calculating the detection result of a virtual sensor provided in the virtual moving body 61 for detecting virtual objects around the virtual moving body 61, and generating a virtual motion of the virtual moving body 61 based on the detection result of the virtual sensor. Including functions.
  • the virtual moving body 61 corresponding to the moving body 9 can be virtually operated in the virtual space 60 . Therefore, the user 81 can appropriately confirm the motion of the moving object 9 operating in the physical space 80 by confirming the virtual motion of the virtual moving object 61 without using the moving object 9 . Specifically, the user 81 can appropriately confirm the movement of the moving body 9 based on the detection result of the sensor 94 that detects objects in the physical space 80 .
  • the motion simulation performed by the simulation system 100 is not limited to the autonomous travel of the moving body 9.
  • the motion simulation may be autonomous travel in which the moving body 9 follows a person detected by a sensor.
  • the mobile body 9 that is the target of the motion simulation is not limited to a carrier robot, and may be an autonomous mobile device other than a carrier robot.
  • Autonomous mobile devices other than carrier robots include, for example, guide robots, nursing care robots, patrol robots, humanoid robots, industrial robots, medical robots, automobiles, drones, construction machines, personal watercraft, and the like.
  • the moving body 9 that is the target of the motion simulation may be a mobile device other than an autonomous mobile device.
  • the sensor 94 is not limited to a LiDAR sensor.
  • sensor 94 may be a camera, a global positioning system (GPS), or the like.
  • GPS global positioning system
  • the sensor 94 is not limited to a sensor that detects objects around the moving body 9 .
  • the sensor 94 may be a sensor that detects other physical quantities such as the length, mass, time or speed of the moving body 9 or an object other than the moving body 9 .
  • the sensor 94 may be a sensor provided on an object other than the moving body 9 .
  • the virtual sensor corresponding to sensor 94 is similar.
  • the control device 1 may be one computer, or may be formed by a plurality of computers.
  • the display device 3 may be a tablet, a stationary display, a projector, or the like.
  • the simulation system 100 does not have to include the display device 3 .
  • the display 31 may be a video through display that displays the virtual moving object 61 in the image of the real space 80 captured by the camera.
  • the position detector 32 may use only the acceleration sensor and the gyro sensor, or only the acceleration sensor and the geomagnetic sensor.
  • the position detector 32 may be a radar, a GPS (Global Positioning System), a camera, an infrared sensor, or the like.
  • the position detector 32 is not limited to that provided in the display device 3 .
  • the position detector 32 may be an outside-in type detector that detects the position of the display device 3 using a sensor provided separately from the display device 3 .
  • the position detector 32 is not limited to a detector that detects the position of the display device 3 .
  • the position detector 32 may be a detector that directly detects a moving object using a sensor provided on a wall, pillar, ceiling, floor, or an object installed on these.
  • the position detector 32 can be omitted.
  • the object generation unit 22 may generate a plurality of virtual users 62 in the virtual space 60.
  • the simulation system 100 includes multiple display devices 3 .
  • the object generation unit 22 generates a virtual user 62 corresponding to the user 81 wearing each display device 3 in the common virtual space 60 .
  • the motion generator 24 generates virtual motions of the virtual mobile body 61 for the plurality of virtual users 62 .
  • each user 81 can confirm how the virtual mobile body 61 moves while avoiding other users 81 .
  • the virtual object generated by the object generation unit 22 is not limited to the virtual user 62.
  • the virtual object may be a person other than virtual user 62 .
  • Virtual objects are not limited to people.
  • the virtual object may be a robot different from the moving object 9.
  • the object generator 22 can be omitted.
  • the virtual space generator 21 may generate a virtual object that moves based on a preset motion in the virtual space 60 .
  • the action set for the virtual object is determined, for example, by measuring in advance the action of the action object that operates in the physical space 80 .
  • the detection calculation unit 23 calculates the virtual point cloud data 64a of the virtual installation object 63 based on the position and orientation of the virtual moving object 61 and the position of the virtual installation object 63 in the virtual space 60 without using the sensor performance. good too.
  • the motion generation unit 24 may generate the virtual motion based on the virtual command value without using the dynamic model 24f.
  • the virtual image 7 generated by the image generation unit 41 is not limited to a mixed reality image.
  • the virtual image 7 may be, for example, another cross-reality image such as a virtual reality image (VR (Virtual Reality) image).
  • VR Virtual Reality
  • the simulation system 100 does not have to include the image generator 41 .
  • ASICs Application Specific Integrated Circuits
  • a circuit or processing circuit that includes a combination of A processor is considered a processing circuit or circuit because it includes transistors and other circuits.
  • a circuit, unit, or means is hardware that performs or is programmed to perform the recited functions.
  • the hardware may be the hardware disclosed herein, or other known hardware programmed or configured to perform the recited functions.
  • a circuit, means or unit is a combination of hardware and software where the hardware is a processor which is considered a type of circuit, the software being used to configure the hardware and/or the processor.
  • simulation system 21 virtual space generation unit 22 object generation unit 23 detection calculation unit 24 motion generation unit 3 display device 32 position detector 41 image generation unit 60 virtual space 61 virtual moving object 62 virtual user (virtual object) 7 virtual image 80 real space 81 user (object) 9 moving body 94 sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Manipulator (AREA)

Abstract

現実空間において移動する移動体の動作を、移動体を用いることなく確認できるようにする。シミュレーションシステムは、移動体の動作シミュレーションを行う。シミュレーションシステムは、仮想空間生成部と、物体生成部と、動作生成部とを備える。仮想空間生成部は、現実空間に対応し、且つ、移動体に対応する仮想移動体61が配置される仮想空間60を生成する。物体生成部は、現実空間において動作する物体に対応する仮想物体を仮想空間60に生成する。動作生成部は、仮想移動体61の仮想物体に対する仮想動作を生成する。

Description

シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム
 ここに開示された技術は、シミュレーションシステム、シミュレーション方法及びシミュレーションプログラムに関する。
 特許文献1には、仮想画像をユーザに提供する情報処理装置が開示されている。情報処理装置は、現実空間を撮像することにより撮像画像を生成する撮像装置と、仮想的に生成された仮想オブジェクトを撮像画像に重畳させて出力画像を生成する制御器とを備えている。現実空間としての撮像画像上に重畳された仮想オブジェクトは、ユーザの操作に応じて動作する。
特開2014-149712号公報
 ところで、現実空間において移動する移動体の動作確認は、移動体の実機を準備して実機を動作させることによって行われる。このような動作確認においては、移動体の実機を準備する必要がある。実機を準備せずに移動体の動作を確認する方法として、前述のような仮想画像を用いる方法も考えられる。しかしながら、特許文献1のようにユーザ操作に応じて仮想的な移動体を動作させるだけでは、移動体の実際の動作を模擬することが難しく、移動体の動作を確認することができない。
 ここに開示された技術は、かかる点に鑑みてなされたものであり、その目的とするところは、現実空間において移動体を移動させることなく、移動体の動作を確認できるようにすることにある。
 ここに開示されたシミュレーションシステムは、移動体の動作シミュレーションを行うシミュレーションシステムであって、現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成する仮想空間生成部と、前記現実空間において動作する物体に対応する仮想物体を前記仮想空間に生成する物体生成部と、前記仮想移動体の前記仮想物体に対する仮想動作を生成する動作生成部とを備えている。
 ここに開示されたシミュレーションシステムは、移動体の動作シミュレーションを行うシミュレーションシステムであって、現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成する仮想空間生成部と、前記仮想移動体に設けられて前記仮想移動体の周囲の仮想物体を検知する仮想センサの検知結果を演算する検知演算部と、前記仮想センサの検知結果に基づいて前記仮想移動体の仮想動作を生成する動作生成部とを備えている。
 ここに開示されたシミュレーション方法は、移動体の動作シミュレーションを行うシミュレーション方法であって、現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成することと、前記現実空間において動作する物体に対応する仮想物体を前記仮想空間に生成することと、前記仮想移動体の前記仮想物体に対する仮想動作を生成することとを含む。
 ここに開示されたシミュレーション方法は、移動体の動作シミュレーションを行うシミュレーション方法であって、現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成することと、前記仮想移動体に設けられて前記仮想移動体の周囲の仮想物体を検知する仮想センサの検知結果を演算することと、前記仮想センサの検知結果に基づいて前記仮想移動体の仮想動作を生成することとを含む。
 ここに開示されたシミュレーションプログラムは、移動体の動作シミュレーションを行うシミュレーションプログラムであって、現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成する機能と、前記現実空間において動作する物体に対応する仮想物体を前記仮想空間に生成する機能と、前記仮想移動体の前記仮想物体に対する仮想動作を生成する機能とをコンピュータに実現させる。
 ここに開示されたシミュレーションプログラムは、移動体の動作シミュレーションを行うシミュレーションプログラムであって、現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成する機能と、前記仮想移動体に設けられて前記仮想移動体の周囲の仮想物体を検知する仮想センサの検知結果を演算する機能と、前記仮想センサの検知結果に基づいて前記仮想移動体の仮想動作を生成する機能とを含む。
図1は、シミュレーションシステムの概略構成図である。 図2は、現実空間における移動体を示した概略図である。 図3は、移動体の斜視図である。 図4は、移動体のハードウェア構成を概略的に示したブロック図である。 図5は、シミュレーションシステムのハードウェア構成を概略的に示したブロック図である。 図6は、制御装置のソフトウェア構成を概略的に示した機能ブロック図である。 図7は、シミュレーションシステムによって生成された仮想空間の図である。 図8は、仮想センサの検知結果を示した図である。 図9は、動作生成部の詳細な機能ブロック図である。 図10は、表示装置のソフトウェア構成を概略的に示した機能ブロック図である。 図11は、シミュレーションシステムによって表示された仮想画像である。 図12は、動作シミュレーション時の現実空間の斜視図である。 図13は、動作シミュレーションのフローチャートである。
 以下、例示的な実施形態を図面に基づいて詳細に説明する。図1は、シミュレーションシステム100の概略構成図である。図2は、現実空間80における移動体9を示した概略図である。シミュレーションシステム100は、移動体9の動作シミュレーションを行う。移動体9は、壁又は柱等の設置物82が存在し得る現実空間80において移動する物体である。シミュレーションシステム100は、移動体9に対応する仮想移動体を、現実空間80に対応する仮想空間において模擬的に動作させることによって、動作シミュレーションを実現する。この例では、移動体9は、現実空間80において自律的に走行、即ち、自律走行する。自律走行時において、移動体9は、例えば、設置物82及び人83等を回避しつつ走行する。シミュレーションシステム100は、仮想空間において仮想移動体を移動体9と同様に自律走行させる。
 シミュレーションシステム100は、動作シミュレーションを行う仮想移動体の仮想画像を、クロスリアリティ技術(XR技術)を利用してユーザに提供する。シミュレーションシステム100は、制御装置1と表示装置3とを備えている。制御装置1は、仮想空間における仮想移動体の模擬的な動作を生成する。表示装置3は、制御装置1によって生成された動作を実行する仮想移動体を含む仮想画像をユーザに提供する。例えば、表示装置3が提供する仮想画像は、複合現実(MR:Mixed Reality)画像である。表示装置3は、現実空間80に仮想移動体を重畳させた複合現実画像を提供する。
 まず、移動体9について説明する。図3は、移動体9の斜視図である。図4は、移動体9のハードウェア構成を概略的に示したブロック図である。この例の移動体9は、物品を搬送する搬送ロボットである。詳しくは、移動体9は、自律走行可能な搬送ロボットである。移動体9は、本体90、走行部91、駆動部92、センサ94、記憶器95及び制御器96を有している。
 本体90は、物品を搭載し得る。この例では、本体90の内部に、物品を収容可能な収容空間が形成されている。
 走行部91は、本体90を走行させる。この例では、走行部91は、左右の駆動輪91aと左右の従動輪91bとを有している。左右の駆動輪91aは、本体90の後部に設けられている。左右の従動輪91bは、本体90の前部に設けられている。
 駆動部92は、走行部91を駆動する。この例では、駆動部92は、左の駆動輪91aを回転駆動する左用モータと右の駆動輪91aを回転駆動する右用モータとを含んでいる。左右の駆動輪91aの各々の回転速度は、左用モータと右用モータとの各々の回転速度が変更されることで、個別に変更可能である。左用モータと右用モータとが左右の駆動輪91aを同一の回転速度で回転駆動することにより、走行部91は直進走行する。左用モータと右用モータとが左右の駆動輪91aを異なる回転速度で回転駆動することにより、走行部91は旋回走行(例えば、方向転換)する。尚、走行部91の旋回走行を行う機構は、これに限定されない。駆動部92は、例えば、駆動輪91a又は従動輪91bを上下方向に延びる旋回軸を中心に回転駆動することによって旋回走行を実現してもよい。
 センサ94は、移動体9の周囲の物体(以下、単に「周辺物体」という)を検知する。尚、本開示において、「物体」は、無生物と生物との両者を含む。周辺物体は、現実空間80に設置された設置物82(図2参照)と、現実空間において動作する物体(以下、「動作物体」という)とを含み得る。動作物体は、例えば、人83又は他のロボット等である。センサ94は、例えば、本体90に設けられる。この例のセンサ94は、センサ94から周辺物体までの距離を測定する測距センサである。具体的には、センサ94は、LiDAR(Light Detection and Ranging)センサである。センサ94は、例えば、移動体9の周囲に向けてレーザ光を照射する発光部と周辺物体の表面に当たって反射したレーザ光を受ける受光部とを有する。センサ94は、発光部から照射されたレーザ光が周辺物体の表面に当たって受光部に戻ってくるまでの飛行時間を測定する。センサ94は、測定された飛行時間に基づいてセンサ94から周辺物体の表面までの距離を測定する。センサ94は、測定された距離に基づいて、点群データを演算する。点群データは、周辺物体の表面の3次元の位置情報である。センサ94は、演算された点群データを制御器96へ出力する。移動体9の自律走行時において周辺物体の検知を所定の検知周期で繰り返し行う。センサ94は、周辺物体の検知の度に、センサ94の検知結果、即ち、点群データを制御器96へ出力する。
 記憶器95は、各種プログラム及び各種データを記憶する。記憶器95が記憶するデータは、第1地図を含んでいる。第1地図は、現実空間80における3次元の地図である。第1地図は、現実空間80に設定された座標系である現実座標系に基づいている。以下、現実空間に関する説明において、単に「位置」と記載する場合には、現実座標系の絶対位置を意味する。第1地図は、設置物82の位置を含んでいる。さらに、第1地図は、第1地点情報を含んでいる。第1地点情報は、自律走行する際の移動体9の出発点及び到着点を含んでいる。第1地図は、自律走行の制御に用いられる。第1地図は、記憶器95に予め記憶される。
 制御器96は、記憶器95に記憶された制御プログラムを読み込んで、移動体9の各部を統括的に制御する。制御器96は、センサ94の検知結果に基づいて駆動部92を制御することによって、自律走行を実現する。この例では、制御器96は、第1地図とセンサ94の検知結果とに基づいて駆動部92を制御することによって自律走行を実現する。
 制御器96は、第1地図に基づいて大域経路を演算する。大域経路は、移動体9の自律走行の際に用いられる、暫定的、且つ、概略的な経路である。大域経路は、移動体9の出発点から到着点までの走行経路である。制御器96は、演算された大域経路を記憶器95に記憶させる。
 制御器96は、センサ94からの点群データを取得し、取得された点群データに基づいて、移動体9からの周辺物体の相対位置を演算する。周辺物体は、設置物82と動作物体とを含み得る。
 制御器96は、センサ94によって検知された設置物82の移動体9からの相対位置に基づいて推定される、現実座標系における移動体9の位置及び姿勢を演算する。以下、これらの移動体9の位置及び姿勢を単に「推定位置」という。例えば、制御器96は、センサ94の検知結果に基づいて移動体9からの設置物82の相対位置を求め、設置物82の相対位置と第1地図で規定された設置物82の絶対位置とを照らし合わせることによって、設置物82の絶対位置を基準とした現実座標系における移動体9の絶対位置及び姿勢を求める。こうして求められた移動体9の絶対位置及び姿勢が推定位置である。
 制御器96は、大域経路と移動体9からの周辺物体の相対位置と推定位置とに基づいて小域経路を演算する。小域経路は、大域経路に基づいて生成される確定的な移動体9の経路である。具体的には、制御器96は、移動体9が設置物82及び動作物体との接触を回避するように大域経路を修正する。制御器96は、推定位置と大域経路との誤差が小さくなり且つ到着点に近づき且つ設置物82及び動作物体に接触しない経路を小域経路として生成する。小域経路は、所定距離の比較的短時間の移動経路である。
 制御器96は、演算された小域経路に基づいて駆動部92への指令値を演算する。指令値は、小域経路の始点から終点への移動体9の走行を実現するために駆動部92へ入力される指令値である。具体的には、指令値は、左用モータの回転速度及び右用モータの回転速度である。
 制御器96は、演算された指令値を駆動部92へ出力して走行部91を走行させる。これにより、移動体9の小域経路に沿った走行が行われる。
 制御器96は、前述した、点群データの取得、移動体9からの周辺物体の相対位置の演算、移動体9の推定位置の演算、小域経路の演算、指令値の演算、及び駆動部92への指令値の出力を繰り返し行う。これにより、移動体9は、小域経路に沿った走行を繰り返し行って、自律走行する。制御器96は、演算された推定位置が到着点と一致した時点で駆動部92を停止する。これにより、移動体9の自律走行が終了する。
 次に、制御装置1及び表示装置3について詳述する。図5は、シミュレーションシステム100のハードウェア構成を概略的に示したブロック図である。制御装置1は、現実空間80に対応する仮想空間と、設置物82に対応する仮想設置物と、動作物体に対応する仮想物体と、移動体9に対応する仮想移動体と、仮想空間における仮想移動体の動作である仮想動作とを生成する。制御装置1は、例えば、コンピュータである。制御装置1は、記憶器11と制御器12と通信器13とを有している。
 記憶器11は、各種プログラム及び各種データを記憶する。記憶器11は、例えば、ハードディスク等の磁気ディスク、CD(Compact Disc)及びDVD(Digital Versatile Disc)等の光ディスク、又は半導体メモリによって形成される。
 記憶器11は、第2地図を記憶する。第2地図は、仮想空間における3次元の地図である。第2地図は、仮想空間に設定された座標系である仮想座標系に基づいている。以下、特段の断りが無い限り、仮想空間60に関する説明において、単に「位置」と記載する場合には、仮想座標系の絶対位置を意味する。仮想座標系は、現実座標系と対応している。第2地図は、仮想空間における仮想設置物の位置を含んでいる。さらに、第2地図は、第2地点情報を含んでいる。第2地点情報は、自律走行する際の移動体9の出発点及び到着点を含んでいる。第2地点情報は、自律走行する際の移動体9の経由点をさらに含んでもよい。第2地図は、仮想空間、仮想物体、仮想設置物、仮想移動体及び仮想動作の生成に用いられる。第2地図は、予め記憶器11に記憶される。
 記憶器11は、さらに、センサ性能を記憶する。センサ性能は、センサ94の検知誤差と分解能と検知可能範囲とを含む。センサ性能は、仮想動作の生成に用いられる。尚、センサ性能は、センサ94の検知精度と分解能と検知可能範囲のうち1つだけ、又は2つだけを含んでいてもよい。
 制御器12は、記憶器11に記憶された各種プログラムを読み出して実行する。制御器12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)及び/又はDSP(Digital Signal Processor)等の各種プロセッサと、VRAM(Video Random Access Memory)、RAM(Random Access Memory)及び/又はROM(Read Only Memory)等の各種半導体メモリとを有する。
 制御器12は、記憶器11から制御プログラムを読み込んで、制御装置1の各部を統括的に制御すると共に、仮想空間、仮想物体、仮想移動体、及び仮想動作を生成する。
 通信器13は、無線通信により表示装置3と信号の送受信を行う。例えば、通信器13は、制御器12で生成された、仮想移動体の仮想動作を表示装置3へ送信する。
 表示装置3は、仮想動作する仮想移動体を含む仮想画像を生成し、生成された仮想画像を表示する。表示装置3は、ユーザ81の頭部に装着可能なヘッドマウントディスプレイ(Head Mounted Display)である。表示装置3は、図5に示すように、表示器31、位置検出器32、記憶器33、制御器34及び通信器35を有している。
 表示器31は、仮想画像を表示する。この例の表示器31は、光学シースルー型ディスプレイである。表示器31は、表示装置3が装着されたユーザ81の視線上に配置されるレンズ31a(図1参照)を有している。表示器31は、レンズ31aに仮想移動体の画像を表示することによって、現実空間80に仮想移動体を重畳させた仮想画像を提供する。
 位置検出器32は、表示装置3の位置及び姿勢、即ち、表示装置3を装着したユーザ81(詳しくは、ユーザ81の頭部)の現実空間80における位置及び姿勢を検出する。以下、ユーザ81の位置及び姿勢を単に「ユーザ位置」という。この例の表示装置3は、インサイドアウト方式のヘッドマウントディスプレイであり、位置検出器32は、表示装置3に設けられたセンサを利用して表示装置3の位置を検出する。位置検出器32は、例えば、表示装置3の角速度を検出するジャイロセンサ、表示装置3の加速度を検出する加速度センサ、及び表示装置3の位置の地磁気を検出する地磁気センサを含む。位置検出器32は、現実座標系に設定された基準点に対して、ジャイロセンサ、加速度センサ及び地磁気センサの検出結果から得られる移動ベクトルを累積的に加算することによって、現実座標系におけるユーザ位置を検出する。位置検出器32は、現実空間80において動作する動作物体の位置を検出する位置検出器の一例である。
 記憶器33は、各種プログラム及び各種データを記憶する。記憶器33は、例えば、ハードディスク等の磁気ディスク、CD及びDVD等の光ディスク、又は半導体メモリによって形成される。記憶器33は、仮想画像に含まれるオブジェクトを定義するオブジェクト定義データを記憶する。この例では、記憶器33は、仮想移動体のオブジェクト定義データを記憶する。
 制御器34は、記憶器33に記憶された各種プログラムを読み出して実行する。制御器34は、例えば、CPU、GPU及び/又はDSP等の各種プロセッサと、VRAM、RAM及び/又はROM等の各種半導体メモリとを有する。
 制御器34は、記憶器33から制御プログラムを読み込んで、表示装置3の各部を統括的に制御する。制御器34は、仮想画像を生成すると共に、生成された仮想画像を表示器31に表示させる。
 通信器35は、無線通信により制御装置1(詳しくは、通信器13)と信号の送受信を行う。例えば、通信器35は、位置検出器32によって検出されたユーザ位置を制御装置1へ送信する。例えば、通信器35は、制御装置1から送信された仮想動作を受信する。
 図6は、制御装置1のソフトウェア構成を概略的に示した機能ブロック図である。制御器12は、機能ブロックとして、仮想空間生成部21、物体生成部22、検知演算部23及び動作生成部24を有している。これらの機能ブロックの機能は、制御器12が記憶器11から制御プログラムを読み込むことによって、実現される。
 図7は、シミュレーションシステム100によって生成された仮想空間60の一例を示す図である。仮想空間生成部21は、仮想空間60を生成する。仮想空間生成部21は、第2地図に基づいて仮想空間60を生成する。仮想空間60は、現実空間80に対応する空間である。具体的には、仮想空間60は、現実空間80の設置物82に対応する仮想設置物63等が配置された空間である。つまり、仮想空間生成部21は、仮想空間60に仮想設置物63をさらに生成する。仮想空間生成部21は、仮想空間60において、第2地図に基づいて規定される位置に仮想設置物63を生成する。これにより、仮想空間60において現実空間80における壁及び柱と対応する位置に該壁及び柱と同様の形状の仮想的な壁及び柱が仮想設置物63として形成される。
 さらに、仮想空間生成部21は、仮想空間60に仮想移動体61を生成する。仮想移動体61は、移動体9に対応している。仮想移動体61は、移動体9と同様の構成及び機能を有している。例えば、仮想移動体61は、本体90に対応する仮想本体と、走行部91に対応する仮想走行部と、駆動部92に対応する仮想駆動部と、センサ94に対応する仮想センサとを有している。
 仮想センサは、センサ94と同様に、仮想空間60において、仮想移動体61の周囲に存在する仮想の物体(以下、「仮想周辺物体」という)を検知する。仮想センサは、例えば、仮想本体に設けられる。仮想センサは、センサ94と同様の性能を有している。例えば、仮想センサの検知精度は、センサ94の検知精度と一致している。仮想センサの分解能は、センサ94の分解能と一致している。仮想本体を基準とする仮想センサの検知範囲は、本体90を基準とするセンサ94の検知範囲と一致している。
 生成された仮想移動体61は、仮想空間60に配置される。例えば、仮想移動体61の初期位置は、第2地点情報で規定された出発点である。尚、仮想移動体61の初期姿勢も、第2地点情報において出発点における姿勢として規定されている。その後、仮想空間60における仮想移動体61の位置及び姿勢は、仮想動作に応じて更新されていく。以下、仮想空間60における仮想移動体61の位置及び姿勢を、単に「仮想位置」という。
 物体生成部22は、仮想空間生成部21によって生成された仮想空間60に、現実空間80の動作物体に対応する仮想物体を生成する。この例では、仮想物体は、ユーザ81に対応する仮想ユーザ62である。すなわち、物体生成部22が生成する仮想物体は、現実空間80において動作する人に対応している。
 物体生成部22は、位置検出器32の検出結果に基づき、現実空間80におけるユーザ位置に対応する、仮想空間60における位置に仮想ユーザ62を生成する。具体的には、物体生成部22は、位置検出器32の検出結果、即ち、現実空間80のユーザ位置を取得する。物体生成部22は、現実座標系と仮想座標系との対応関係に基づいて、現実空間80のユーザ位置を仮想空間60のユーザ位置に変換する。物体生成部22は、仮想空間60のユーザ位置に仮想ユーザ62を生成する。つまり、仮想空間60における仮想ユーザ62の位置は、現実空間80のユーザ位置を仮想空間60に変換した位置である。仮想ユーザ62は、例えば、円柱状のモデルである。
 検知演算部23は、仮想周辺物体を検知する仮想センサの検知結果を演算する。仮想周辺物体は、仮想設置物63及び仮想ユーザ62を含み得る。
 前述の如く、仮想センサの検知範囲は、仮想移動体61を基準に設定されている。検知演算部23は、仮想移動体61の仮想位置に応じて仮想センサの検知範囲を移動させる。仮想ユーザ62又は仮想設置物63が仮想センサの検知範囲内に存在する場合、検知演算部23は、仮想センサが仮想ユーザ62又は仮想設置物63を検知したと判定する。
 この例では、検知演算部23は、仮想センサが検知したと判断される仮想周辺物体の点群データ(以下、「仮想点群データ」という)64を仮想センサの検知結果として演算する。
 図8は、仮想空間60に対する仮想点群データ64の位置を示した図である。尚、図8では、仮想点群データ64の位置を明確にするため、仮想点群データ64だけでなく、仮想設置物63、仮想移動体61及び仮想ユーザ62も示している。仮想点群データ64は、センサ94が取得する点群データに対応する。仮想点群データ64は、仮想周辺物体の表面の3次元の位置情報である。仮想点群データ64は、仮想移動体61に対する仮想周辺物体の相対位置を示す。仮想点群データ64は、仮想設置物63の仮想点群データ64aと仮想ユーザ62の仮想点群データ64bとを含み得る。
 詳しくは、検知演算部23は、仮想移動体61の仮想位置と仮想設置物63の位置とユーザ位置とセンサ性能とに基づいて仮想センサの検知結果、即ち、仮想点群データ64aを演算する。仮想移動体61の仮想位置と仮想設置物63の位置とから、仮想移動体61からの仮想設置物63の相対距離が求められる。検知演算部23は、この相対距離とセンサ性能とに基づいてセンサ性能に起因するセンシング誤差が反映された仮想設置物63の相対距離を求め、センシング誤差が反映された仮想設置物63の相対距離に基づいて仮想点群データ64aを生成する。例えば、検知演算部23は、0.9以上1.1以下の値からランダムに選択された係数を仮想設置物63の相対距離に乗算して、センシング誤差が反映された仮想設置物63の相対距離を求めてもよい。あるいは、検知演算部23は、仮想設置物63の相対距離の桁のうち、センサ94の分解能に対応する桁数よりも小さい桁を切り捨てることによって、センシング誤差が反映された仮想設置物63の相対距離を求めてもよい。あるいは、検知演算部23は、仮想設置物63の相対距離がセンサ94の検知可能範囲内の距離ではない場合に、仮想センサが仮想設置物63を検知しなかったようにセンシング誤差が反映された仮想点群データ64aを演算してもよい。仮想点群データ64aは、例えば、センシング誤差が反映された分だけ、図8に示すように、仮想設置物63の表面からずれた位置に配置され得る。
 検知演算部23は、仮想点群データ64bを仮想点群データ64aと同様に生成する。すなわち、検知演算部23は、仮想移動体61の仮想位置と仮想ユーザ62の位置とセンサ性能とに基づいて仮想点群データ64bを演算する。仮想移動体61の仮想位置と仮想ユーザ62の位置とから、仮想移動体61からの仮想ユーザ62の相対距離が求められる。検知演算部23は、この相対距離とセンサ性能とに基づいてセンシング誤差が反映された仮想ユーザ62の相対距離を求め、センシング誤差が反映された仮想ユーザ62の相対距離に基づいて仮想点群データ64bを生成する。センシング誤差が反映された仮想ユーザ62の相対距離の演算方法は、仮想点群データ64aの場合と同様である。仮想点群データ64bは、例えば、センシング誤差が反映された分だけ、図8に示すように、円柱状の仮想ユーザ62の表面からずれた位置に配置され得る。
 動作生成部24は、仮想移動体61の仮想空間60における仮想動作を生成する。仮想動作は、現実空間80における移動体9の動作と同様の動作である。この例では、仮想動作は、仮想空間60における仮想移動体61の自律走行である。
 動作生成部24によって生成される仮想動作は、仮想物体に対応する仮想移動体61の動作である。つまり、仮想移動体61は、仮想物体に反応した動作を仮想動作として行う。自律走行の例では、仮想移動体61は、仮想物体に接近すると、仮想物体との接触を回避する走行を行う。
 動作生成部24は、検知演算部23によって演算された、仮想センサの検知結果に基づいて仮想動作を生成する。この例では、動作生成部24は、仮想センサの検知結果に基づいて仮想空間60における仮想移動体61の経路を生成し、生成された経路に沿って仮想移動体61を動作させる。このとき、動作生成部24は、仮想センサの検知結果に基づいて仮想移動体61の経路を修正する。動作生成部24は、生成された経路に基づいて仮想駆動部への指令値(以下、「仮想指令値」という)を演算し、演算された仮想指令値に基づいて仮想移動体61を移動させる。この仮想移動体61の移動、即ち、変位が仮想動作である。
 図9は、動作生成部24の詳細な機能ブロック図である。動作生成部24は、大域経路演算部24a、物***置演算部24b、推定位置演算部24c、小域経路演算部24d、指令値演算部24e及び力学モデル24fを含んでいる。
 大域経路演算部24aは、仮想大域経路を演算する。仮想大域経路は、制御器96が演算する大域経路に対応する。仮想大域経路は、仮想移動体61の自律走行の際に用いられる、暫定的、且つ、概略的な経路である。仮想大域経路は、仮想移動体61の出発点から到着点までの走行経路である。大域経路演算部24aは、記憶器11に記憶された第2地図に基づいて仮想大域経路を演算する。具体的には、大域経路演算部24aは、仮想移動体61及び仮想設置物63の位置及び大きさ等に基づいて、仮想移動体61が仮想設置物63に干渉しないような出発点から到着点までの仮想移動体61の経路を仮想大域経路として演算する。尚、出発点から到着点までの間に経由点が存在する場合には、仮想大域経路は、経由点を経由する経路となる。
 物***置演算部24bは、仮想センサが検知する仮想周辺物体の仮想移動体61に対する相対位置(以下、「検知位置」という)を演算する。仮想周辺物体は、仮想ユーザ62と仮想設置物63とを含み得る。物***置演算部24bは、検知演算部23によって演算された仮想点群データ64に基づいて、仮想周辺物体の検知位置を演算する。前述したように、仮想点群データ64aは、センサ性能が反映されているので、仮想設置物63の表面からずれた位置に配置され得る。このため、仮想設置物63の検知位置は、第2地図に基づいて規定された仮想設置物63の仮想移動体61に対する相対位置ではなく、第2地図に基づいて規定された位置に配置された仮想設置物63を仮想センサで検知した場合の位置である。同様に、仮想ユーザ62の検知位置は、現実空間80のユーザ位置に基づいて設定された仮想ユーザ62の仮想移動体61に対する相対位置ではなく、現実空間80のユーザ位置に基づいて設定された位置に配置された仮想ユーザ62を仮想センサによって検知した場合の位置である。
 推定位置演算部24cは、仮想センサの検知結果に基づいて推定される、仮想座標系における仮想移動体61の位置及び姿勢を演算する。以下、これらの仮想移動体61の位置及び姿勢を単に「仮想推定位置」という。推定位置演算部24cは、仮想センサの検知結果に基づいて仮想移動体61からの仮想設置物63の相対位置を求める。第2地図は、仮想座標系における仮想設置物63の絶対位置の情報が含まれている。推定位置演算部24cは、仮想移動体61からの仮想設置物63の相対位置と第2地図で規定された仮想設置物63の絶対位置とを照らし合わせることによって、仮想設置物63の絶対位置を基準とした仮想移動体61の絶対位置及び姿勢を求める。こうして求められた仮想移動体61の絶対位置及び姿勢が仮想推定位置である。前述したように、物***置演算部24bによって演算された仮想設置物63の相対位置は、仮想センサのセンサ性能に起因するセンシング誤差が含まれ得る。そのため、仮想推定位置は、仮想空間60における仮想移動体61の絶対位置である仮想位置からずれ得る。
 小域経路演算部24dは、仮想小域経路を演算する。仮想小域経路は、制御器96が演算する小域経路に対応する。仮想小域経路は、仮想大域経路に基づいて生成される確定的な仮想移動体61の経路である。小域経路演算部24dは、仮想大域経路と仮想周辺物体の検知位置と仮想推定位置とに基づいて仮想小域経路を演算する。
 具体的には、小域経路演算部24dは、仮想移動体61が仮想ユーザ62及び仮想設置物63との接触を回避するように仮想大域経路を修正する。小域経路演算部24dは、仮想推定位置から仮想大域経路との誤差が小さくなり且つ到着点に近づき且つ仮想ユーザ62及び仮想設置物63に接触しない経路を仮想小域経路として生成する。仮想小域経路は、所定距離の比較的短時間の移動経路である。このように、小域経路演算部24dは、仮想小域経路を少しずつ生成していく。
 ただし、小域経路演算部24dが演算する仮想小域経路の始点は、仮想移動体61の仮想位置ではなく、仮想推定位置である。つまり、仮想移動体61は、仮想位置に実際には配置されているものの、仮想推定位置からの仮想小域経路が生成される。
 指令値演算部24eは、仮想指令値を演算する。仮想指令値は、制御器96によって演算される、駆動部92への指令値に対応する。すなわち、仮想指令値は、仮想小域経路の始点から終点への仮想移動体61の走行を実現するために仮想駆動部へ入力される指令値である。指令値演算部24eは、小域経路演算部24dによって演算された仮想小域経路に基づいて仮想指令値を演算する。
 力学モデル24fは、仮想動作を生成する。力学モデル24fは、移動体9の運動モデルである。力学モデル24fは、指令値演算部24eによって演算された仮想指令値に基づいて仮想動作を生成する。この例では、力学モデル24fは、駆動部モデル24gと車体運動モデル24hとを含んでいる。
 駆動部モデル24gは、数学的モデリングによりモデル化された駆動部92の運動モデルである。駆動部モデル24gは、指令値演算部24eからの仮想指令値を入力とし、仮想駆動部の駆動力(以下、「仮想駆動力」という。)を出力する。仮想駆動力は、制御器96から駆動部92に仮想指令値と同じ指令値が入力された際に駆動部92が出力する駆動力に相当する。
 車体運動モデル24hは、数学的モデリングによりモデル化された本体90の運動モデルである。車体運動モデル24hは、仮想駆動力と同じ駆動力が走行部91に与えられた場合の本体90の動作を演算する。車体運動モデル24hは、駆動部モデル24gからの仮想駆動力を入力とし、仮想移動体61の変位、即ち、移動を出力する。車体運動モデル24hから出力される変位は、駆動部92が仮想駆動力と同じ駆動力を発生させた際の移動体9の変位に相当する。詳しくは、車体運動モデル24hは、仮想空間60において仮想位置に位置する仮想移動体61に仮想駆動力が付与された場合の変位後の仮想移動体61の位置及び姿勢を仮想動作として出力する。
 前述したように、仮想小域経路は仮想推定位置を基準に生成され、仮想駆動力は仮想小域経路に基づいて演算される。一方、力学モデル24fは、仮想位置に位置する仮想移動体61を仮想小域経路に基づいて演算された仮想駆動力で移動させる。そのため、仮想移動体61の仮想動作には、仮想センサのセンサ性能に起因するセンシング誤差が含まれ得る。
 動作生成部24は、力学モデル24fによって演算された仮想移動体61の位置及び姿勢を仮想動作として出力する。動作生成部24は、仮想移動体61の仮想位置を、演算された位置及び姿勢に更新する。動作生成部24は、このような処理を繰り返すことによって、仮想空間60において仮想ユーザ62及び仮想設置物63との接触を回避しながら仮想大域経路に概ね沿って移動する仮想移動体61の動作を生成する。
 また、動作生成部24は、仮想動作としての仮想移動体61の仮想位置及び姿勢を表示装置3へ周期的に送信する。
 図10は、表示装置3のソフトウェア構成を概略的に示した機能ブロック図である。制御器34は、機能ブロックとして、画像生成部41と表示部42とを有している。これらの機能ブロックの機能は、制御器34が記憶器33から制御プログラムを読み込むことによって、実現される。
 図11は、シミュレーションシステム100によって表示された仮想画像7である。画像生成部41は、仮想動作する仮想移動体61を含む仮想画像7を生成する。具体的には、画像生成部41は、ユーザ81がレンズ31aを透過して見える現実空間80に仮想移動体61を重畳させた複合現実画像を仮想画像7として生成する。画像生成部41は、動作生成部24で生成された仮想動作に基づいて仮想画像7を生成する。具体的には、画像生成部41は、仮想移動体61の画像を生成する。画像生成部41は、動作生成部24で生成された仮想動作、即ち、仮想移動体61の仮想位置及び姿勢と、位置検出器32によって検出された、現実空間80のユーザ位置とを取得する。画像生成部41は、現実座標系と仮想座標系との対応関係に基づいて、仮想空間60における仮想移動体61の位置及び姿勢を、現実空間80における仮想移動体61の位置及び姿勢に変換する。画像生成部41は、現実空間80において、ユーザ位置を起点として仮想移動体61を見たときの仮想移動体61の画像を仮想移動体61のオブジェクト定義データに基づいて生成する。
 表示部42は、画像生成部41で生成された仮想画像7を表示器31に表示させる。この例では、表示部42は、画像生成部41で生成された仮想移動体61の画像を表示器31のレンズ31aに表示することで、仮想画像7をユーザ81に提供する。したがって、表示器31によって表示された仮想画像7は、仮想移動体61だけでなく、レンズ31aを透過して見える現実空間80の設置物82を含み得る。表示部42は、仮想空間60における仮想移動体61の仮想位置に対応する現実空間80の位置に仮想移動体61の姿勢と同じ姿勢で仮想移動体61が配置されているように、仮想移動体61の画像を表示器31のレンズ31aに表示する。
 次に、動作シミュレーションについて詳述する。図12は、動作シミュレーション時の現実空間80の一例を示す概略図である。動作シミュレーションは、図12に示すように、ユーザ81の頭部に表示装置3が装着された状態で行われる。動作シミュレーションは、例えば、ユーザ81が、制御装置1又は表示装置3を操作することによって開始される。尚、図12では、仮想移動体61が一点鎖線で示されているが、仮想移動体61は、実際には現実空間80に存在しない。
 図13は、動作シミュレーションのフローチャートである。動作シミュレーションが開始されると、仮想空間生成部21は、ステップS11において、第2地図に基づいて、仮想空間60、仮想設置物63及び仮想移動体61を生成する。このとき、仮想空間生成部21は、仮想空間60における第2地点情報の出発点に対応する位置に仮想移動体61を生成する。また、仮想空間生成部21は、位置検出器32の検出開始の指令を通信器13を介して表示装置3へ送信する。
 表示装置3が通信器35を介して位置検出器32の検出開始の指令を受け取ると、位置検出器32は、ステップS21において、現実空間80におけるユーザ位置の検出を開始する。
 位置検出器32は、ステップS22において、所定の検出周期が到来したか否かを判定する。検出周期は、位置検出器32の検出の周期である。検出周期が到来していなければ、位置検出器32は、検出周期が到来するまでステップS22の処理を繰り返すことによって待機する。
 検出周期が到来すると、位置検出器32は、ステップS23において、ユーザ位置を検出する。位置検出器32は、検出されたユーザ位置を通信器35を介して制御装置1へ送信する。
 一方、制御装置1の物体生成部22は、ステップS12において、所定の演算周期が到来したか否かを判定する。演算周期は、検知演算部23の演算の周期である。例えば、演算周期は、位置検出器32の検出周期と一致している。演算周期が到来していなければ、物体生成部22は、演算周期が到来するまでステップS12を繰り返すことによって待機する。尚、検知演算部23の演算周期は、位置検出器32の検出周期よりも長くてもよいし、短くてもよい。
 演算周期が到来すると、物体生成部22は、ステップS13において、位置検出器32からのユーザ位置に基づいて仮想空間60に仮想ユーザ62を生成する。
 続いて、検知演算部23は、ステップS14において、仮想空間60における仮想移動体61の位置及び姿勢に基づいて仮想センサの検知結果である仮想点群データ64を演算する。
 動作生成部24は、ステップS15において、検知演算部23によって演算された仮想点群データ64に基づいて、仮想指令値を演算する。具体的には、仮想大域経路がまだ演算されていない場合には、大域経路演算部24aは、第2地図に基づいて仮想大域経路を演算する。動作生成部24は、演算された仮想大域経路を記憶器11に記憶させる。物***置演算部24bは、仮想点群データ64に基づいて、仮想周辺物体の検知位置を演算する。推定位置演算部24cは、仮想移動体61からの仮想設置物63の相対位置と第2地図における仮想設置物63の絶対位置とに基づいて、仮想座標系における仮想移動体61の絶対位置を仮想推定位置として演算する。小域経路演算部24dは、仮想大域経路と仮想周辺物体の相対位置と仮想推定位置とに基づいて仮想小域経路を演算する。指令値演算部24eは、仮想小域経路に基づいて仮想指令値を演算する。
 動作生成部24は、ステップS16において、仮想指令値に基づいて仮想移動体61の仮想動作を生成する。具体的には、駆動部モデル24gは、仮想指令値に基づいて仮想駆動力を演算する。車体運動モデル24hは、仮想駆動力に基づいて変位後の仮想移動体61の位置及び姿勢を演算する。動作生成部24は、仮想空間60における仮想移動体61の仮想位置及び姿勢を、変位後の位置及び姿勢に更新する。動作生成部24は、仮想動作、即ち、変位後の仮想移動体61の仮想位置及び姿勢を通信器13を介して表示装置3へ送信する。
 表示装置3が仮想動作を通信器35を介して制御装置1から受け取ると、画像生成部41は、ステップS24において、仮想動作と仮想移動体61のオブジェクト定義データとユーザ位置とに基づいて、変位後の仮想移動体61の画像を生成する。
 表示部42は、ステップS25において、画像生成部41によって生成された仮想移動体61の画像を含む仮想画像7を表示器31に表示させる。
 制御装置1の動作生成部24は、仮想動作を生成した後、ステップS17において、仮想移動体61の自律走行が終了したか否かを判定する。具体的には、動作生成部24は、仮想推定位置と到着点とが一致していれば、仮想移動体61の自律走行は終了したと判定し、仮想推定位置と到着点とが一致していなければ、仮想移動体61の自律走行は終了していないと判定する。仮想移動体61の自律走行が終了していなければ、処理はステップS12に戻る。すなわち、制御装置1は、ステップS12~ステップS17の処理を繰り返し実行し、仮想動作の生成を繰り返し行う。これにより、仮想空間60における仮想移動体61は、自律走行する。
 また、表示装置3の処理は、ステップS25の後、ステップS22に戻る。すなわち、表示装置3は、ステップS22~ステップS25の処理を繰り返し実行して、現実空間80におけるユーザ位置の検出並びに仮想画像7の生成及び表示を繰り返し行う。これにより、自律走行する仮想移動体61を現実空間80に重畳させた仮想画像7が表示器31によってユーザ81に提供される。
 尚、ステップS15での動作生成部24による仮想大域経路の演算は、動作シミュレーションにおいて最初に仮想指令値を演算するときにのみ行われる。すなわち、動作生成部24は、2回目以降に仮想指令値を演算する場合、記憶器11に記憶された仮想大域経路を用いる。また、動作生成部24による仮想大域経路の演算は、動作シミュレーションにおいて最初に仮想指令値を演算する前に行われればよく、ステップS15において実行されなくてもよい。
 この例では、ステップS11による処理は、現実空間に対応し、且つ、移動体に対応する仮想移動体が配置される仮想空間を生成することに相当する。ステップS23及びステップS13による処理は、現実空間において動作する物体に対応する仮想物体を仮想空間に生成することに相当する。ステップS14による処理は、仮想移動体に設けられて仮想移動体の周囲の仮想物体を検知する仮想センサの検知結果を演算することに相当する。ステップS15及びステップS16による処理は、仮想移動体の仮想物体に対する仮想動作を生成することに相当する。ステップS15及びステップS16による処理は、仮想センサの検知結果に基づいて仮想移動体の仮想動作を生成することにも相当する。
 この例では、シミュレーションシステム100は、現実空間80において動作する物体に対応する仮想物体が生成された仮想空間60において、移動体9に対応する仮想移動体61を仮想動作させることができる。このとき、仮想移動体61に、仮想物体に応じた仮想動作を実行させることができる。このため、ユーザ81は、現実空間80において動作する物体に対して反応する移動体9の動作を、移動体9の実機を用いなくても、仮想移動体61によって確認することができる。
 したがって、例えば、移動体9の開発段階においては、移動体9の試作機を製造することなく、移動体9の動作確認を行うことができる。このため、移動体9の開発費用及び開発時間を軽減でき、且つ、移動体9の仕様を柔軟に変更できる。例えば、移動体9の試作機を製造することなく、移動体9の改良点の検討及び開発設計等を行って、移動体9の開発を進めることが可能になる。
 また、ユーザ81は、仮想移動体61の仮想動作を確認することで、移動体9の安全性を安全に確認できる。例えば、移動体9の周辺物体への接近及び衝突等の安全性の確認を、実機である移動体9を実際に移動させることなく、確認できる。実機を用いた安全性の評価においては、実機が周辺物体に衝突すると、実機又は周辺物体に損傷等が発生する虞がある。つまり、安全性の評価において不可となる状況が発生しても、仮想的に配置される仮想移動体61であれば、実際の被害が発生しない。その結果、移動体9の安全性の確認を安全に行うことができる。
 また、移動体9の製品の完成後においては、移動体9の実機が現場になくても移動体9の動作を仮想移動体61によってデモンストレーションすることができる。つまり、移動体9の実機をデモンストレーションの現場に運搬する必要がなく、販売促進の効率が向上する。
 さらに言うと、この例では、シミュレーションシステム100は、仮想空間60における仮想物体を検知する仮想センサの検知結果を演算し、演算された仮想センサの検知結果に基づいて仮想動作を生成する。このため、ユーザ81は、仮想移動体61の仮想動作を確認することで、センサ94の検知結果に基づいて自律的に移動する移動体9の動作を模擬的に確認することができる。
 特にこの例では、仮想センサは、移動体9に設けられ、移動体9の周囲の物体を検知するセンサ94に対応する。このため、仮想移動体61の仮想動作は、センサ94が設けられた移動体9の動作に一層近くなり、移動体9の動作を正確に再現できる。つまり、シミュレーションシステム100は、センサ94のセンサ性能が反映された移動体9の動作シミュレーションを行うことができる。したがって、ユーザ81は、移動体9の実際の動作を一層適切に把握することができる。
 さらには、仮想空間60に生成される仮想物体は、現実空間80において動作する人に対応している。このため、ユーザ81は、予測し難い人に対する移動体9の動作を適切に把握することができる。
 また、シミュレーションシステム100は、現実空間80において動作する物体の位置を検出する位置検出器32の検出結果に基づいて、仮想物体を仮想空間60に生成する。このため、現実空間80において動作する物体の動作を仮想物体の動作にリアルタイムで反映させることができる。したがって、ユーザ81は、移動体9の動作をより適切に確認することができる。
 また、仮想画像7は、現実空間80に仮想移動体61が重畳された複合現実画像である。このため、ユーザ81は、あたかも現実空間80において動作するように表示された仮想移動体61を視認して、移動体9の動作を適切に確認することができる。
 また、この例では、仮想画像7を表示する表示装置3は、ヘッドマウントディスプレイである。このため、ユーザ81は、頭部に装着された表示装置3に表示された仮想画像7を確認することで、あたかもユーザ81が仮想画像7によって表現される空間に居るような感覚で、移動体9の動作を適切に確認することができる。特にこの例のように表示装置3に位置検出器32が設けられている場合、ユーザ81は、ユーザ81の動作に応じて仮想動作する仮想移動体61を含む仮想画像7を確認することができる。
 以上のように、シミュレーションシステム100は、移動体9の動作シミュレーションを行うシミュレーションシステムであって、現実空間80に対応し、且つ、移動体9に対応する仮想移動体61が配置される仮想空間60を生成する仮想空間生成部21と、現実空間80において動作するユーザ81(物体)に対応する仮想ユーザ62(仮想物体)を仮想空間60に生成する物体生成部22と、仮想移動体61の仮想空間60における仮想ユーザ62に対する仮想動作を生成する動作生成部24とを備える。
 換言すれば、シミュレーション方法は、移動体9の動作シミュレーションを行うシミュレーション方法であって、現実空間80に対応する仮想空間60を生成することと、現実空間80において動作するユーザ81(物体)に対応する仮想ユーザ62(仮想物体)を仮想空間60に生成することと、仮想移動体61の仮想ユーザ62に対する仮想動作を生成することとを含む。
 さらに換言すれば、シミュレーションプログラムは、移動体9の動作シミュレーションを行うシミュレーションプログラムであって、現実空間80に対応する仮想空間60を生成する機能と、現実空間80において動作するユーザ81(物体)に対応する仮想ユーザ62(仮想物体)を仮想空間60に生成する機能と、仮想移動体61の仮想ユーザ62に対する仮想動作を生成する機能とをコンピュータに実現させる。
 これらの構成によれば、現実空間80において動作するユーザ81に対応する仮想ユーザ62が生成された仮想空間60において、移動体9に対応する仮想移動体61を仮想動作させることができる。このため、ユーザ81は、仮想移動体61の仮想動作を確認することで、現実空間80において動作するユーザ81に対して動作する移動体9の動作を、移動体9を実際に移動させることなく、確認することができる。
 また、シミュレーションシステム100は、仮想ユーザ62(仮想物体)を検知する仮想センサの検知結果を演算する検知演算部23をさらに備え、動作生成部24は、仮想センサの検知結果に基づいて仮想動作を生成する。
 この構成によれば、仮想移動体61の仮想動作を、センサ94の検知結果に基づいて自律的に移動する動作とすることができる。このため、ユーザ81は、センサ94の検知結果に基づいて自律的に動作する移動体9の動作を適切に把握することができる。
 また、仮想センサは、移動体9に設けられ、且つ、移動体9の周囲の物体を検知するセンサ94に対応している。
 この構成によれば、仮想移動体61の仮想動作は、センサ94が設けられた移動体9の動作に一層近くなる。このため、ユーザ81は、センサ94の検知結果に基づいて動作する移動体9の動作を一層適切に把握することができる。
 また、物体生成部22が生成する仮想物体は、現実空間80において動作する人に対応している。
 この構成によれば、ユーザ81は、予測し難い人に対する移動体9の動作を適切に把握することができる。
 また、シミュレーションシステム100は、現実空間80におけるユーザ81(物体)の位置を検出する位置検出器32をさらに備え、物体生成部22は、位置検出器32の検出結果に基づいて仮想ユーザ62(仮想物体)を仮想空間60に生成する。
 この構成によれば、仮想ユーザ62の動作を現実空間80において動作するユーザ81の動作に近づけることができる。したがって、ユーザ81は、現実空間80において動作するユーザ81に対して相対的に動作する移動体9の動作をより適切に確認することができる。
 また、シミュレーションシステム100は、仮想動作を実行する仮想移動体61を含む仮想画像7を提供するヘッドマウントディスプレイをさらに備え、位置検出器32は、現実空間80におけるヘッドマウントディスプレイの位置を検出することによって、ヘッドマウントディスプレイを装着したユーザ81の現実空間80における位置を検出し、物体生成部22は、位置検出器32の検出結果に基づき、仮想空間60においてユーザ81の位置に対応する位置にユーザ81に対応する仮想ユーザ62を生成する。
 この構成によれば、ユーザ81は、ヘッドマウントディスプレイを装着することで、ヘッドマウントディスプレイによって提供された仮想画像7を確認して、移動体9の動作を確認することができる。また、ユーザ81は、ユーザ81の動作に応じて仮想動作する仮想移動体61を含む仮想画像7を確認することができる。
 また、シミュレーションシステム100は、仮想動作を実行する仮想移動体61を含む仮想画像7を生成する画像生成部41をさらに備える。
 この構成によれば、ユーザ81は、仮想移動体61の仮想動作を視覚的に容易に確認できる。
 また、仮想画像7は、現実空間80に仮想移動体61が重畳された複合現実画像である。
 この構成によれば、ユーザ81は、あたかも現実空間80において動作するように表示された仮想移動体61を見て、移動体9の動作を適切に確認することができる。
 また、シミュレーションシステム100は、仮想画像7を表示する表示装置3をさらに備える。
 この構成によれば、ユーザ81は、表示装置3に表示された仮想画像7を確認して、移動体9の動作を確認することができる。
 また、表示装置3は、ヘッドマウントディスプレイである。
 この構成によれば、ユーザ81は、頭部に装着された表示装置3に表示された仮想画像7を確認することで、あたかもユーザ81が仮想画像7によって表現される空間に存在するような感覚で、移動体9の動作を適切に確認することができる。
 また、シミュレーションシステム100は、移動体9の動作シミュレーションを行うシミュレーションシステムであって、現実空間80に対応し、且つ、移動体9に対応する仮想移動体61が配置される仮想空間60を生成する仮想空間生成部21と、仮想移動体61に設けられて仮想移動体61の周囲の仮想物体を検知する仮想センサの検知結果を演算する検知演算部23と、仮想センサの検知結果に基づいて仮想移動体61の仮想動作を生成する動作生成部24とを備える。
 換言すれば、シミュレーション方法は、移動体9の動作シミュレーションを行うシミュレーション方法であって、現実空間80に対応し、且つ、移動体9に対応する仮想移動体61が配置される仮想空間60を生成することと、仮想移動体61に設けられて仮想移動体61の周囲の仮想物体を検知する仮想センサの検知結果を演算することと、仮想センサの検知結果に基づいて仮想移動体61の仮想動作を生成することとを含む。
 さらに換言すれば、移動体9の動作シミュレーションを行うシミュレーションプログラムであって、現実空間80に対応し、且つ、移動体9に対応する仮想移動体61が配置される仮想空間60を生成する機能と、仮想移動体61に設けられて仮想移動体61の周囲の仮想物体を検知する仮想センサの検知結果を演算する機能と、仮想センサの検知結果に基づいて仮想移動体61の仮想動作を生成する機能とを含む。
 これらの構成によれば、仮想空間60において、移動体9に対応する仮想移動体61を仮想動作させることができる。このため、ユーザ81は、仮想移動体61の仮想動作を確認することで、現実空間80において動作する移動体9の動作を、移動体9を用いることなく、適切に確認することができる。詳細には、ユーザ81は、現実空間80において物体を検知するセンサ94の検知結果に基づいて移動する移動体9の動作を適切に確認することができる。
 《その他の実施形態》
 以上のように、本出願において開示する技術の例示として、前記実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き替え、付加、省略などを行った実施の形態にも適用可能である。また、前記実施形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。また、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、前記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
 シミュレーションシステム100が実行する動作シミュレーションは、移動体9の自律走行に限定されない。例えば、動作シミュレーションは、移動体9がセンサによって検知した人に追従する自律走行であってもよい。
 動作シミュレーションの対象である移動体9は、搬送ロボットに限定されず、搬送ロボット以外の自律移動装置であってもよい。搬送ロボット以外の自律移動装置は、例えば、案内ロボット、介護ロボット、見回りロボット、ヒューマロイドロボット、産業ロボット、医療ロボット、自動車、ドローン、建機、水上バイク等である。動作シミュレーションの対象である移動体9は、自律移動装置以外の移動装置であってもよい。
 センサ94は、LiDARセンサに限定されない。例えば、センサ94は、カメラ、全地球測位システム(GPS)等であってもよい。センサ94は、移動体9の周囲の物体を検知するセンサに限定されない。例えば、センサ94は、移動体9又は移動体9以外の物体の長さ、質量、時間又は速度等の他の物理量を検知するセンサであってもよい。例えば、センサ94は、移動体9以外の物体に設けられたセンサであってもよい。センサ94に対応する仮想センサも同様である。
 制御装置1は、一つのコンピュータであってもよいし、複数のコンピュータで形成されてもよい。
 表示装置3は、タブレット、据置型ディスプレイ又はプロジェクタなどであってもよい。シミュレーションシステム100は、表示装置3を備えなくてもよい。
 表示器31は、カメラによって撮影された現実空間80の画像に仮想移動体61を表示するビデオスルー型ディスプレイであってもよい。
 位置検出器32は、加速度センサ、ジャイロセンサ及び地磁気センサのうち、加速度センサとジャイロセンサのみ、あるいは、加速度センサと地磁気センサのみを用いてもよい。位置検出器32は、レーダ、GPS(Global Positioning System)、カメラ、赤外線センサ等であってもよい。位置検出器32は、表示装置3に設けられたものに限定されない。例えば、位置検出器32は、表示装置3とは別に設けられたセンサを利用して表示装置3の位置を検出するアウトサイドイン方式の検出器であってもよい。位置検出器32は、表示装置3の位置を検出する検出器に限定されない。例えば、位置検出器32は、壁、柱、天井若しくは床、又はこれらに設置された設置物等に設けられたセンサを用いて動作物体を直接検出する検出器であってもよい。位置検出器32は省略可能である。
 物体生成部22は、仮想空間60に複数の仮想ユーザ62を生成してもよい。この場合、シミュレーションシステム100は、複数の表示装置3を備える。物体生成部22は、各表示装置3が装着されたユーザ81に対応する仮想ユーザ62を共通の仮想空間60に生成する。動作生成部24は、仮想移動体61の複数の仮想ユーザ62に対する仮想動作を生成する。この場合、各ユーザ81は、仮想移動体61が他のユーザ81を回避して動作する様子を確認することができる。
 物体生成部22が生成する仮想物体は、仮想ユーザ62に限定されない。例えば、仮想物体は、仮想ユーザ62以外の人であってもよい。仮想物体は、人に限定されない。例えば、仮想物体は、移動体9とは別のロボットであってもよい。物体生成部22は、省略可能である。この場合、例えば、仮想空間生成部21は、仮想空間60に、予め設定された動作に基づいて動作する仮想物体を生成してもよい。仮想物体に設定される動作は、例えば、現実空間80において動作する動作物体の動作等を事前に測定しておくことによって決定される。
 検知演算部23は、センサ性能を用いず、仮想空間60における仮想移動体61の位置及び姿勢と仮想設置物63の位置とに基づいて、仮想設置物63の仮想点群データ64aを演算してもよい。
 動作生成部24は、仮想動作を、力学モデル24fを用いず、仮想指令値に基づいて生成してもよい。
 画像生成部41が生成する仮想画像7は、複合現実画像に限定されない。仮想画像7は、例えば、仮想現実画像(VR(Virtual Reality)画像)等の他のクロスリアリティ画像であってもよい。シミュレーションシステム100は、画像生成部41を備えなくてもよい。
 本明細書で開示する要素の機能は、開示された機能を実行するよう構成またはプログラムされた汎用プロセッサ、専用プロセッサ、集積回路、ASIC(Application Specific Integrated Circuits)、従来の回路、および/または、それらの組み合わせ、を含む回路または処理回路を使用して実行できる。プロセッサは、トランジスタやその他の回路を含むため、処理回路または回路と見なされる。本開示において、回路、ユニット、または手段は、列挙された機能を実行するハードウェアであるか、または、列挙された機能を実行するようにプログラムされたハードウェアである。ハードウェアは、本明細書に開示されているハードウェアであってもよいし、あるいは、列挙された機能を実行するようにプログラムまたは構成されているその他の既知のハードウェアであってもよい。ハードウェアが回路の一種と考えられるプロセッサである場合、回路、手段、またはユニットはハードウェアとソフトウェアの組み合わせであり、ソフトウェアはハードウェアおよび/またはプロセッサの構成に使用される。
100  シミュレーションシステム
21   仮想空間生成部
22   物体生成部
23   検知演算部
24   動作生成部
3    表示装置
32   位置検出器
41   画像生成部
60   仮想空間
61   仮想移動体
62   仮想ユーザ(仮想物体)
7    仮想画像
80   現実空間
81   ユーザ(物体)
9    移動体
94   センサ

Claims (15)

  1.  移動体の動作シミュレーションを行うシミュレーションシステムであって、
     現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成する仮想空間生成部と、
     前記現実空間において動作する物体に対応する仮想物体を前記仮想空間に生成する物体生成部と、
     前記仮想移動体の前記仮想物体に対する仮想動作を生成する動作生成部とを備えているシミュレーションシステム。
  2.  請求項1に記載のシミュレーションシステムにおいて、
     前記仮想物体を検知する仮想センサの検知結果を演算する検知演算部をさらに備え、
     前記動作生成部は、前記仮想センサの検知結果に基づいて前記仮想動作を生成するシミュレーションシステム。
  3.  請求項2に記載のシミュレーションシステムにおいて、
     前記仮想センサは、前記移動体に設けられ、且つ、前記移動体の周囲の物体を検知するセンサに対応しているシミュレーションシステム。
  4.  請求項1乃至3の何れか1つに記載のシミュレーションシステムにおいて、
     前記物体生成部が生成する前記仮想物体は、前記現実空間において動作する人に対応しているシミュレーションシステム。
  5.  請求項1乃至4の何れか1つに記載のシミュレーションシステムにおいて、
     前記現実空間における前記物体の位置を検出する位置検出器をさらに備え、
     前記物体生成部は、前記位置検出器の検出結果に基づき、前記仮想空間において前記物体の位置に対応する位置に前記仮想物体を生成するシミュレーションシステム。
  6.  請求項5に記載のシミュレーションシステムにおいて、
     前記仮想動作を実行する前記仮想移動体を含む仮想画像を提供するヘッドマウントディスプレイをさらに備え、
     前記位置検出器は、前記現実空間における前記ヘッドマウントディスプレイの位置を検出することによって、前記ヘッドマウントディスプレイを装着したユーザの前記現実空間における位置を検出し、
     前記物体生成部は、前記位置検出器の検出結果に基づき、前記仮想空間において前記ユーザの位置に対応する位置に前記ユーザに対応する仮想ユーザを生成するシミュレーションシステム。
  7.  請求項1~5の何れか1つに記載のシミュレーションシステムにおいて、
     前記仮想動作を実行する前記仮想移動体を含む仮想画像を生成する画像生成部をさらに備えているシミュレーションシステム。
  8.  請求項7に記載のシミュレーションシステムにおいて、
     前記仮想画像は、前記現実空間に前記仮想移動体が重畳された複合現実画像であるシミュレーションシステム。
  9.  請求項7又は請求項8に記載のシミュレーションシステムにおいて、
     前記仮想画像を提供する表示装置をさらに備えているシミュレーションシステム。
  10.  請求項9に記載のシミュレーションシステムにおいて、
     前記表示装置は、ヘッドマウントディスプレイであるシミュレーションシステム。
  11.  移動体の動作シミュレーションを行うシミュレーションシステムであって、
     現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成する仮想空間生成部と、
     前記仮想移動体に設けられて前記仮想移動体の周囲の仮想物体を検知する仮想センサの検知結果を演算する検知演算部と、
     前記仮想センサの検知結果に基づいて前記仮想移動体の仮想動作を生成する動作生成部とを備えているシミュレーションシステム。
  12.  移動体の動作シミュレーションを行うシミュレーション方法であって、
     現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成することと、
     前記現実空間において動作する物体に対応する仮想物体を前記仮想空間に生成することと、
     前記仮想移動体の前記仮想物体に対する仮想動作を生成することとを含むシミュレーション方法。
  13.  移動体の動作シミュレーションを行うシミュレーション方法であって、
     現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成することと、
     前記仮想移動体に設けられて前記仮想移動体の周囲の仮想物体を検知する仮想センサの検知結果を演算することと、
     前記仮想センサの検知結果に基づいて前記仮想移動体の仮想動作を生成することとを含むシミュレーション方法。
  14.  移動体の動作シミュレーションを行うシミュレーションプログラムであって、
     現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成する機能と、
     前記現実空間において動作する物体に対応する仮想物体を前記仮想空間に生成する機能と、
     前記仮想移動体の前記仮想物体に対する仮想動作を生成する機能とをコンピュータに実現させるシミュレーションプログラム。
  15.  移動体の動作シミュレーションを行うシミュレーションプログラムであって、
     現実空間に対応し、且つ、前記移動体に対応する仮想移動体が配置される仮想空間を生成する機能と、
     前記仮想移動体に設けられて前記仮想移動体の周囲の仮想物体を検知する仮想センサの検知結果を演算する機能と、
     前記仮想センサの検知結果に基づいて前記仮想移動体の仮想動作を生成する機能とを含むシミュレーションプログラム。
PCT/JP2021/048790 2021-12-28 2021-12-28 シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム WO2023127096A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/048790 WO2023127096A1 (ja) 2021-12-28 2021-12-28 シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/048790 WO2023127096A1 (ja) 2021-12-28 2021-12-28 シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム

Publications (1)

Publication Number Publication Date
WO2023127096A1 true WO2023127096A1 (ja) 2023-07-06

Family

ID=86998450

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/048790 WO2023127096A1 (ja) 2021-12-28 2021-12-28 シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム

Country Status (1)

Country Link
WO (1) WO2023127096A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218534A (ja) * 2015-05-15 2016-12-22 国立大学法人九州大学 画像表示システムおよび画像表示方法
JP2017170584A (ja) * 2016-03-25 2017-09-28 株式会社国際電気通信基礎技術研究所 ロボットの行動シミュレーション装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218534A (ja) * 2015-05-15 2016-12-22 国立大学法人九州大学 画像表示システムおよび画像表示方法
JP2017170584A (ja) * 2016-03-25 2017-09-28 株式会社国際電気通信基礎技術研究所 ロボットの行動シミュレーション装置

Similar Documents

Publication Publication Date Title
JP6436604B2 (ja) 演算システムによって実施される方法及びシステム
Ben-Ari et al. Elements of robotics
US11420330B2 (en) Robot control device, robot, and simulation device
KR101664582B1 (ko) 자율주행차량의 주행경로 생성장치 및 방법
JP5059978B2 (ja) 危険提示装置、危険提示システム、危険提示方法およびプログラム
JP2019125345A (ja) 情報処理装置、情報処理方法、プログラム、およびシステム
CN109215433A (zh) 用于自动驾驶仿真的基于视觉的驾驶场景生成器
JP2006107475A (ja) 移動ロボット
Singh et al. TurtleBot: Design and hardware component selection
Zaki et al. Microcontroller-based mobile robot positioning and obstacle avoidance
JP5414465B2 (ja) シミュレーションシステム
JP5947644B2 (ja) 無人移動体システム
JP2012247835A (ja) ロボットの運動予測制御方法と装置
CN113784767A (zh) 热电堆阵列融合跟踪
WO2023127096A1 (ja) シミュレーションシステム、シミュレーション方法及びシミュレーションプログラム
US11704827B2 (en) Electronic apparatus and method for assisting with driving of vehicle
JP6855759B2 (ja) 自動運転車両の制御システム
JPS6234784A (ja) 移動体の移動制御方法
JP5092300B2 (ja) ヘッドモーショントラッカ装置
WO2017158951A1 (ja) 物体検知システム、異常判定方法、及びプログラム
CN112530022A (zh) 在虚拟环境中计算机实现模拟lidar传感器的方法
KR102175943B1 (ko) 무인자동차 교육용 플랫폼 및 자동차 플랫폼
JP2010026774A (ja) 移動ロボット装置及び移動ロボットの制御方法
WO2023032061A1 (ja) 経路生成方法
Gill et al. Design, development and validation of sensors for a Simulation Environment for Autonomous Robots

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023570577

Country of ref document: JP