WO2022034638A1 - マッピング装置、トラッカー、マッピング方法及びプログラム - Google Patents

マッピング装置、トラッカー、マッピング方法及びプログラム Download PDF

Info

Publication number
WO2022034638A1
WO2022034638A1 PCT/JP2020/030595 JP2020030595W WO2022034638A1 WO 2022034638 A1 WO2022034638 A1 WO 2022034638A1 JP 2020030595 W JP2020030595 W JP 2020030595W WO 2022034638 A1 WO2022034638 A1 WO 2022034638A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
tracker
coordinate system
target position
represented
Prior art date
Application number
PCT/JP2020/030595
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/JP2020/030595 priority Critical patent/WO2022034638A1/ja
Priority to US18/012,457 priority patent/US20230314171A1/en
Priority to JP2022542525A priority patent/JP7495502B2/ja
Publication of WO2022034638A1 publication Critical patent/WO2022034638A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Definitions

  • the present invention relates to a mapping device, a tracker, a mapping method and a program.
  • SLAM Simultaneous Localization and Mapping
  • Patent Document 1 describes an environment in which a position is expressed by a shared coordinate system shared by a plurality of trackers, which is generated based on sensing data acquired by each of the plurality of trackers. A map is listed.
  • maps include not only general maps but also satellite maps and aeronautical maps
  • X-reality technologies such as AR (Augmented Reality) technology that superimposes virtual visual information on the landscape of the real world.
  • visual information representing anchors, area information, store information, etc. struck on a map indicated by map data provided by a map service can be seen as a position in the real world corresponding to a geographical position on the map. Service becomes possible.
  • visual information such as a mark can be seen at a position in the real world corresponding to the specified geographical position according to a user's operation of specifying a geographical position on a map displayed on a terminal such as a smartphone or a tablet terminal.
  • a terminal such as a smartphone or a tablet terminal. The service to do so is possible.
  • geographic locations such as the locations shown on the map are represented in geographic coordinate systems such as latitude, longitude, and elevation
  • the user's location in the environmental map estimated using SLAM technology is.
  • X coordinate value, Y coordinate value, Z coordinate value, etc. are expressed in the Euclidean coordinate system.
  • the coordinate system used for expression differs between the geographical position and the user's position in the environmental map estimated using SLAM technology. Therefore, in the prior art, a given geographical position is used as the environmental map. I could't map it accurately.
  • the present invention has been made in view of the above problems, and one of the objects thereof is to provide a mapping device, a tracker, a mapping method and a program capable of accurately mapping a given geographical position to an environmental map. To do.
  • the mapping device stores environment map data indicating an environment map in which a position represented by an Euclidean coordinate system and a position represented by a geographical coordinate system are associated with each other.
  • a tracker position estimation unit that estimates the position of the tracker represented by the Euclidean coordinate system based on the map data storage unit, sensing data acquired by the tracker, and the environment map data, and the geographical coordinates.
  • the target position represented by the Euclidean coordinate system is specified based on the target position data acquisition unit that acquires the target position data indicating the target position represented by the system, the target position data, and the environment map data. Includes a coordinate conversion unit.
  • the tracker includes an image showing a state in which visual information arranged at the target position represented by the Euclidean coordinate system is viewed from the position of the tracker represented by the Euclidean coordinate system. It further includes a display control unit that controls display on the display unit.
  • the target position data acquisition unit acquires the target position data associated with the registration data registered in the given map service in association with the target position
  • the display control unit obtains the target position data. It may be controlled so that an image showing the appearance of the visual information according to the registered data viewed from the position of the tracker represented by the Euclidean coordinate system is displayed on the display unit.
  • the target position data acquisition unit acquires the target position data associated with the name data indicating the name corresponding to the target position, and the display control unit obtains the name indicated by the name data. It may be controlled so that an image showing the appearance of the visual information viewed from the position of the tracker represented by the Euclidean coordinate system is displayed on the display unit.
  • the display control unit may control the display unit of each of the plurality of trackers existing in a given range in the real space so that the image corresponding to the tracker is displayed.
  • the display control unit displays tracker position data indicating the position of the tracker represented by the Euclidean coordinate system on the tracker displaying the image on the display unit, and the tracker position data represented by the Euclidean coordinate system. Conversion target position data indicating the target position may be transmitted.
  • the target position data acquisition unit indicates the designated target position according to the operation of the user who designates the target position on the map displayed on a terminal different from the tracker.
  • the target position data is acquired.
  • the tracker position estimation unit is based on the sensing data and the environment map data, and the position of the tracker represented by the Euclidean coordinate system and the geographical coordinates.
  • the position of the tracker represented by the system is estimated, and the coordinate conversion unit uses the target position data, the position of the tracker represented by the Euclidean coordinate system, and the tracker represented by the geographical coordinate system.
  • the target position represented by the Euclidean coordinate system is specified based on the position of.
  • the mapping device includes a plurality of the environment map data storage units, and each of the plurality of environment map data storage units is associated with an origin in the Euclidean coordinate system.
  • the tracker position estimation unit stores a plurality of environmental map data indicating the environmental maps whose positions represented by the geographical coordinate systems are different from each other, and the tracker position estimation unit is stored in each of the plurality of environmental map data storage units.
  • the environmental map data specified based on the sensing data acquired by the tracker from the environmental map data, and the sensing data are expressed in the Euclidean coordinate system in the environmental map data.
  • the position of the tracker is estimated, and the coordinate conversion unit determines the environment based on the target position data from among the plurality of environmental map data stored in the plurality of environmental map data storage units. Based on the map data and the target position data, the target position represented by the Euclidean coordinate system in the environment map data is specified.
  • the geographical coordinate system based on the feature point cloud included in the environmental map and the map indicated by the given map data provided by the given map service. Further includes a correspondence estimation unit that estimates the position and orientation corresponding to the feature point cloud, and an environment map data update unit that associates the estimated position and orientation with the feature point cloud.
  • the corresponding estimation unit is generated based on the first projection image, which is a first-resolution image showing a state in which the feature point group is projected onto a plane orthogonal to the axis of gravity, and the map.
  • the first reference image which is the image of the first resolution
  • the direction corresponding to the feature point group represented by the geographical coordinate system is estimated, and the correspondence estimation unit obtains the feature point group.
  • a second projection image which is a second resolution image having a higher resolution than the first resolution
  • a second reference image which is a second resolution image generated based on the map, showing a state of being projected onto the plane.
  • the position corresponding to the feature point group represented by the geographical coordinate system may be estimated.
  • the tracker according to the present invention is a tracker including a sensor unit and a display unit, and is represented by the Euclidean coordinate system estimated based on the sensing data acquired by the sensor unit.
  • the mapping method includes sensing data acquired by a tracker and environmental map data indicating an environmental map in which a position represented by an Euclidean coordinate system and a position represented by a geographical coordinate system are associated with each other. , A step of estimating the position of the tracker expressed in the Euclidean coordinate system, a step of acquiring target position data indicating a target position expressed in the geographical coordinate system, and the target position data. A step of specifying the target position represented by the Euclidean coordinate system based on the environment map data is included.
  • the program according to the present invention includes sensing data acquired by a tracker, environmental map data showing an environmental map in which a position represented by an Euclidean coordinate system and a position represented by a geographical coordinate system are associated with each other. Based on, a procedure for estimating the position of the tracker represented by the Euclidean coordinate system, a procedure for acquiring target position data indicating a target position represented by the geographical coordinate system, the target position data and the environment map. Have the computer perform a procedure for identifying the target position represented in the Euclidean coordinate system based on the data.
  • FIG. 1 is a configuration diagram showing an example of an environmental map management system 1 according to an embodiment of the present invention.
  • the environmental map management system 1 according to the present embodiment includes a plurality of user systems 10.
  • the user system 10 according to the present embodiment includes a tracker 12 and a terminal 14.
  • FIG. 1 illustrates two user systems 10a and 10b.
  • the user system 10a includes a tracker 12a and a terminal 14a.
  • the user system 10b includes a tracker 12b and a terminal 14b.
  • the environmental map management system 1 according to the present embodiment also includes a server 16 and a map service 18.
  • the tracker 12, the terminal 14, the server 16, and the map service 18 are connected to a computer network 20 such as the Internet.
  • the tracker 12, the terminal 14, the server 16, and the map service 18 can communicate with each other.
  • the tracker 12 is a device that tracks the position and orientation of the user wearing the tracker 12.
  • the tracker 12 includes a processor 30, a storage unit 32, a communication unit 34, a display unit 36, and a sensor unit 38.
  • the processor 30 is a program control device such as a microprocessor that operates according to a program installed in the tracker 12, for example.
  • the storage unit 32 is, for example, a storage element such as a ROM or RAM.
  • the storage unit 32 stores a program or the like executed by the processor 30.
  • the communication unit 34 is a communication interface such as a wireless LAN module.
  • the display unit 36 is a display such as a liquid crystal display or an organic EL display arranged on the front side of the tracker 12.
  • the display unit 36 according to the present embodiment can display a three-dimensional image by displaying an image for the left eye and an image for the right eye, for example.
  • the display unit 36 may be capable of displaying only a two-dimensional image without displaying a three-dimensional image.
  • the sensor unit 38 is a sensor such as a camera, an inertial sensor (IMU), a geomagnetic sensor (orientation sensor), a gyro compass, a GPS (Global Positioning System) module, a depth sensor, an altitude sensor, and the like.
  • IMU inertial sensor
  • GPS Global Positioning System
  • the camera included in the sensor unit 38 captures an image at a predetermined sampling rate, for example.
  • the camera included in the sensor unit 38 may be capable of capturing a three-dimensional image or a depth image.
  • the geomagnetic sensor and the gyro compass included in the sensor unit 38 output data indicating the direction in which the tracker 12 faces to the processor 30 at a predetermined sampling rate.
  • the inertial sensor included in the sensor unit 38 outputs data indicating the acceleration, rotation amount, movement amount, etc. of the tracker 12 to the processor 30 at a predetermined sampling rate.
  • the GPS module included in the sensor unit 38 outputs data indicating the latitude and longitude of the tracker 12 to the processor 30 at a predetermined sampling rate.
  • the depth sensor included in the sensor unit 38 is, for example, a depth sensor using technologies such as ToF (Time of Flight), Patterned stereo, and Structured Light.
  • the depth sensor outputs data indicating the distance from the tracker 12 to the processor 30 at a predetermined sampling rate.
  • the altitude sensor included in the sensor unit 38 outputs data indicating the altitude of the tracker 12 to the processor 30 at a predetermined sampling rate.
  • the sensor unit 38 may include other sensors such as an RF sensor, an ultrasonic sensor, and an event driven sensor.
  • the tracker 12 may include, for example, an HDMI (registered trademark) (High-Definition Multimedia Interface) port, a USB port, an input / output port such as an AUX port, headphones, a speaker, and the like.
  • HDMI registered trademark
  • AUX AUX Port
  • the terminal 14 is a mobile information terminal such as a smartphone or a tablet terminal.
  • the terminal 14 includes a processor 40, a storage unit 42, a communication unit 44, a display unit 46, and a sensor unit 48.
  • the processor 40 is a program control device such as a microprocessor that operates according to a program installed in the terminal 14, for example.
  • the storage unit 42 is, for example, a storage element such as a ROM or RAM.
  • the storage unit 42 stores a program or the like executed by the processor 40.
  • the communication unit 44 is a communication interface such as a wireless LAN module.
  • the display unit 46 is a display such as a liquid crystal display or an organic EL display.
  • the sensor unit 48 is a sensor such as a camera, an inertial sensor (IMU), a geomagnetic sensor (orientation sensor), a gyro compass, a GPS (Global Positioning System) module, a depth sensor, an altitude sensor, and the like.
  • IMU inertial sensor
  • GPS Global Positioning System
  • the server 16 according to the present embodiment is, for example, a server computer such as a cloud server used by a user who uses the environment map management system 1.
  • the server 16 according to the present embodiment can be accessed from any user system 10 included in the environment map management system 1.
  • the server 16 includes a processor 50, a storage unit 52, and a communication unit 54.
  • the processor 50 is a program control device such as a CPU that operates according to a program installed in the server 16, for example.
  • the storage unit 52 is, for example, a storage element such as a ROM or RAM, a solid state drive, or the like.
  • the storage unit 52 stores a program or the like executed by the processor 50.
  • the communication unit 54 is a communication interface such as a network board or a wireless LAN module.
  • the map service 18 is composed of a server computer such as a cloud server managed by an existing map service provider, and provides a given map data to the user.
  • the map data provided by the map service 18 is not limited to map data indicating a general map.
  • the map service 18 may provide map data showing an aerial map (aerial image) or a satellite map (satellite image).
  • the map indicated by the map data provided by the map service 18 according to the present embodiment is a three-dimensional map, and for example, latitude, longitude, altitude, and direction are represented.
  • the map indicated by the map data provided by the map service 18 is a two-dimensional map, and may represent, for example, latitude, longitude, and direction.
  • the sensing data acquired by the tracker 12 included in the user system 10 is transmitted to the server 16.
  • the sensing data acquired by the processor 30 in response to the sensing by the sensor unit 38 is transmitted to the server 16.
  • SLAM Simultaneous Localization and Mapping
  • the environmental map data showing the environmental map is accumulated in the server 16. Further, in the present embodiment, the tracker position data indicating the estimation result of the user's position and orientation by the SLAM processing (here, for example, the estimation result of the position and orientation of the tracker 12) is transmitted from the server 16 to the tracker 12.
  • FIG. 3 shows a name image 60 showing the name of a tower called “XX Tower” as an example of visual information visible to the user.
  • the designated geographical position is set as shown in FIG.
  • an image of an apple is shown as an example of the mark 62, and in this service, for example, the user can see how the image of the apple falls.
  • geographic locations such as the locations shown on the map are represented in geographic coordinate systems such as latitude, longitude, and elevation
  • the user's location in the environmental map estimated using SLAM technology is.
  • X coordinate value, Y coordinate value, Z coordinate value, etc. are expressed in the Euclidean coordinate system.
  • the coordinate system used for expression differs between the geographical position and the user's position in the environmental map estimated using SLAM technology. Therefore, in the prior art, a given geographical position is used as the environmental map. I could't map it accurately.
  • the visual information can be accurately displayed at the position in the real world corresponding to the given geographical position as follows.
  • FIG. 6A is a functional block diagram showing an example of the functions implemented in the tracker 12 according to the present embodiment. It should be noted that the tracker 12 according to the present embodiment does not need to have all the functions shown in FIG. 6A, and may have functions other than the functions shown in FIG. 6A.
  • the tracker 12 functionally includes, for example, a sensing data acquisition unit 70, a sensing data transmission unit 72, a position data reception unit 74, an image generation unit 76, and a tracker display control unit 78.
  • the sensing data acquisition unit 70 mainly mounts the processor 30 and the sensor unit 38.
  • the sensing data transmission unit 72 and the position data reception unit 74 are mainly mounted with the communication unit 34.
  • the image generation unit 76 mainly implements the processor 30.
  • the tracker display control unit 78 mainly implements the processor 30 and the display unit 36.
  • the above functions may be implemented by executing a program installed on the tracker 12, which is a computer, including commands corresponding to the above functions on the processor 30.
  • This program may be supplied to the tracker 12 via a computer-readable information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, or a flash memory, or via the Internet or the like.
  • FIG. 6B is a functional block diagram showing an example of the functions implemented in the server 16 according to the present embodiment. It should be noted that it is not necessary that all the functions shown in FIG. 6B are implemented in the server 16 according to the present embodiment, and functions other than the functions shown in FIG. 6B may be implemented.
  • the server 16 has, for example, an environment map data storage unit 80, a sensing data reception unit 82, a SLAM processing execution unit 84, an environment map data update unit 86, and a target position data acquisition unit 88. , A coordinate conversion unit 90, and a server display control unit 92.
  • the environment map data storage unit 80 is mainly implemented with the storage unit 52.
  • the sensing data receiving unit 82, the target position data acquisition unit 88, and the server display control unit 92 are mainly mounted with the communication unit 54.
  • the SLAM processing execution unit 84, the environment map data update unit 86, and the coordinate conversion unit 90 are mainly mounted with the processor 50.
  • the server 16 includes a plurality of environment map data storage units 80.
  • Each of the plurality of environment map data storage units 80 includes a key frame data storage unit 80a, a public pause data storage unit 80b, and a geopose data storage unit 80c.
  • each of the plurality of environmental map data storage units 80 is associated with a geographical range (for example, a combination of a latitude range and a longitude range) in advance. Therefore, in the present embodiment, one environmental map data storage unit 80 associated with the geographical range including the geographical position is specified from among the plurality of environmental map data storage units 80 based on the geographical position. It is possible.
  • the above functions may be implemented by executing a program installed on the server 16 which is a computer and including a command corresponding to the above functions on the processor 50.
  • This program may be supplied to the server 16 via a computer-readable information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, or a flash memory, or via the Internet or the like.
  • the environmental map data storage unit 80 stores, for example, environmental map data indicating an environmental map associated with a position represented by the Euclidean coordinate system and a position represented by the geographical coordinate system.
  • the environmental map data according to the present embodiment includes, for example, key frame data (see FIG. 7), public pose data (see FIG. 8), and geopose data (see FIG. 9).
  • the key frame data is stored in the key frame data storage unit 80a.
  • the public pose data is stored in the public pose data storage unit 80b.
  • the geopose data is stored in the geopose data storage unit 80c.
  • FIG. 7 is a diagram showing an example of the data structure of the key frame data.
  • the key frame data includes, for example, a key frame ID and a plurality of feature point data (feature point data (1), feature point data (2), ).
  • FIG. 8 is a diagram showing an example of the data structure of public pose data.
  • the public pose data includes, for example, keyframe ID, X coordinate value data, Y coordinate value data, Z coordinate value data, and rotation matrix data.
  • FIG. 9 is a diagram showing an example of the data structure of geopose data.
  • Geopose data includes, for example, key frame ID, latitude data, longitude data, elevation data, azimuth data, and conversion flags.
  • the key frame data according to the present embodiment is, for example, data indicating a feature point group associated with the sensing data indicating the sensing result by the sensor unit 38 of the tracker 12.
  • the public pose data and geopose data are data indicating the position and orientation of the tracker 12 when sensing associated with the key frame data is performed.
  • the position and orientation are represented by the Euclidean coordinate system such as X coordinate value, Y coordinate value, Z coordinate value, etc.
  • the position and orientation are latitude, longitude, elevation, etc. Represented in a geographic coordinate system.
  • the public pose data indicating the position and orientation of the tracker 12 when the sensing is performed, and the geopose data are combined. Generated.
  • the key frame ID included in the key frame data is the identification information of the key frame data.
  • the key frame ID included in the key frame data may be a number indicating the order of sensing associated with the key frame data.
  • the key frame ID included in the public pose data is set to the same value as the key frame ID of the key frame data associated with the public pose data.
  • the key frame ID included in the geopose data is set to the same value as the key frame ID of the key frame data associated with the geopose data.
  • the feature point data included in the key frame data is data indicating the attribute of the feature point such as the position of the feature point specified based on the sensing data acquired by the tracker 12.
  • the key frame data includes a plurality of feature point data associated with different feature points.
  • the key frame data includes feature point data for the number of feature points identified by SLAM processing based on one-time sensing by the tracker 12.
  • the feature point data included in the keyframe data includes, for example, three dimensions of the relative positions of the feature points corresponding to the feature point data with the position and orientation indicated by the public pose data corresponding to the keyframe data as the origin. Coordinate values (eg, X coordinate value, Y coordinate value, and Z coordinate value) are included. Further, the feature point data includes color information indicating the color around the feature point corresponding to the feature point data.
  • the key frame data may include, for example, sensing data acquired by the tracker 12.
  • the X coordinate value data value, the Y coordinate value data value, and the Z coordinate value data value included in the public pose data are the positions of the tracker 12 when the sensing associated with the public pose data is performed.
  • the X coordinate value, Y coordinate value, and Z coordinate value of are set.
  • the unit of the value of the X coordinate value data, the value of the Y coordinate value data, and the value of the Z coordinate value data is meters.
  • the value of the rotation matrix indicating the direction of the tracker 12 when the sensing associated with the public pose data is performed is set.
  • the latitude data value, longitude data value, and elevation data value included in the geopose data are the latitude, longitude, and elevation of the position of the tracker 12 when the sensing associated with the geopose data is performed, respectively.
  • the value indicating is set.
  • the value of the azimuth angle data included in the geopose data is set to a value indicating the direction in which the tracker 12 is facing when the sensing associated with the geopose data is performed.
  • the range of latitude data values is ⁇ 90 to 90, the accuracy is equivalent to double, and the unit is degrees.
  • the range of the value of the longitude data is ⁇ 180 to 180, the accuracy is equivalent to double, and the unit is degrees.
  • the value of the altitude data represents the height from the sea level average of Tokyo Bay for Japan, and the unit is meters.
  • the range of the value of the azimuth angle data is 0 to 360, and the unit is degrees. In the azimuth data, a value indicating the azimuth angle is set so that the value indicating the northward direction becomes 0 and the value indicating the southward direction becomes 180.
  • the server 16 includes a plurality of environment map data storage units 80.
  • the plurality of environmental map data storage units 80 store environmental map data indicating environmental maps whose positions represented by the geographical coordinate systems associated with the origins in the Euclidean coordinate system are different from each other.
  • the sensing data acquisition unit 70 acquires, for example, sensing data indicating the sensing result by the sensor unit 38.
  • the sensing data acquired by the sensing data acquisition unit 70 may include, for example, an image taken by a camera included in the sensor unit 38 of the tracker 12.
  • the sensing data acquired by the sensing data acquisition unit 70 may include the depth data measured by the camera or the depth sensor included in the sensor unit 38 of the tracker 12.
  • the sensing data acquired by the sensing data acquisition unit 70 may include data indicating the orientation of the tracker 12 measured by the geomagnetic sensor or the gyro compass included in the sensor unit 38 of the tracker 12.
  • the sensing data acquired by the sensing data acquisition unit 70 may include data indicating the acceleration, rotation amount, movement amount, etc. of the tracker 12 measured by the inertial sensor included in the sensor unit 38.
  • the sensing data acquired by the sensing data acquisition unit 70 may include data indicating the latitude and longitude of the tracker 12 measured by the GPS module included in the sensor unit 38.
  • the sensing data acquired by the sensing data acquisition unit 70 may include data indicating the altitude measured by the altitude sensor included in the sensor unit 38.
  • the sensing data acquired by the sensing data acquisition unit 70 may include a feature point group (key frame).
  • the tracker 12 may utilize a position estimation service using a wireless spot, an identifier of a mobile edge server in a 5G environment, or the like.
  • the sensing data transmission unit 72 transmits, for example, the sensing data acquired by the sensing data acquisition unit 70 to the server 16.
  • the sensing data receiving unit 82 receives the sensing data transmitted from the tracker 12, for example.
  • the SLAM processing execution unit 84 executes SLAM (Simultaneous Localization and Mapping) processing based on the sensing data received by the sensing data receiving unit 82, for example.
  • the SLAM process includes, for example, a process of generating environmental map data (key frame data, public pose data, and geopose data). Further, the SLAM process includes a self-position estimation process for estimating the position of the tracker 12 represented in the Euclidean coordinate system based on the sensing data acquired by the tracker 12 and the above-mentioned environment map data. ..
  • the SLAM process may include a relocalization process, a loop closing process, a 3D meshing process, an object recognition process, and the like.
  • the SLAM process may include a plane detection / 3D mesh segmentation process.
  • Plane detection / 3D mesh segmentation processing refers to the processing of detecting continuous planes such as the ground and walls and dividing the entire 3D mesh into individual 3D meshes such as the ground, buildings, and trees.
  • the SLAM process may include a 3D mesh optimization process.
  • the 3D mesh optimization process refers to a process of removing presumed moving objects, dust due to noise, etc., reducing the number of polygons, and smoothing the surface of the mesh from the 3D mesh.
  • the SLAM process may include a texture generation process.
  • the texture generation process refers to a process of generating a texture image for a 3D mesh based on the colors of the vertices of the mesh.
  • provisional values are set for each of the X coordinate value data, the Y coordinate value data, the Z coordinate value data, and the rotation matrix data included in the public pose data generated by the SLAM processing execution unit 84. Will be done. As will be described later, these values are updated by the environment map data update unit 86 to the values indicating the positions and directions represented by the shared Euclidean coordinate system described later.
  • the positions indicated by the X coordinate value data, the Y coordinate value data, and the Z coordinate value data included in the generated public pose data are unique to the tracker 12 that generated the sensing data associated with the public pose data.
  • the value of the X coordinate value data is set so that the left-hand direction at the time of starting the tracker 12 is the positive direction.
  • the value of the Y coordinate value data is set so that the vertical upward direction at the time of starting the tracker 12 is the positive direction.
  • the value of the Z coordinate value data is set so that the front direction at the time of starting the tracker 12 is the positive direction.
  • the direction indicated by the rotation matrix data included in the generated public pose data is also expressed by the coordinate system peculiar to the tracker 12 that generated the sensing data associated with the public pose data.
  • the value of the rotation matrix data is set so that the front direction at the time of starting the tracker 12 is an identity matrix.
  • provisional values are set for each of the latitude data, longitude data, elevation data, and azimuth data included in the geopose data generated by the SLAM processing execution unit 84. As will be described later, these values are updated to more accurate values by the environment map data updating unit 86. Further, 0 is set in the value of the conversion flag included in the geopose data.
  • the latitude data value, the longitude data value, the elevation data value, and the azimuth angle data value included in the geopose data are the latitude value and the longitude indicated by the sensing data associated with the geopose data, respectively.
  • the value of, the value of altitude, and the value of azimuth angle are set.
  • the accuracy of the geopose data generated based on the sensing data depends on the accuracy of the sensing of the tracker 12, and is generally accurate between the environmental map and the map indicated by the map data provided by the map service 18. It cannot be said that the correspondence is sufficient.
  • a predetermined landmark may be detected from the image taken by the tracker 12. Then, the geographical position such as the latitude and longitude of the landmark may be specified with reference to the map provided by the map service 18. Then, a value indicating the geographical position specified in this way may be set as a provisional value of the generated geopose data.
  • the SLAM processing execution unit 84 is a plurality of environmental map data stored in the plurality of environmental map data storage units 80 based on the geographical position specified based on the sensing data acquired by the tracker 12. From among them, the environmental map data associated with the geographical location is determined.
  • the SLAM processing execution unit 84 may move to the associated geographical range from among the plurality of environmental map data storage units 80 based on the geographical position indicated by the value of the geopose data set in this way.
  • the environmental map data storage unit 80 including the geographical location is specified.
  • the SLAM processing execution unit 84 stores the generated key frame data in the key frame data storage unit 80a included in the specified environment map data storage unit 80. Further, the SLAM processing execution unit 84 stores the generated public pose data in the public pose data storage unit 80b included in the specified environment map data storage unit 80. Further, the SLAM processing execution unit 84 stores the generated geopose data in the geopose data storage unit 80c included in the specified environment map data storage unit 80.
  • the SLAM processing execution unit 84 may determine whether or not to register the generated key frame data based on the environment map data already stored in the specified environment map data storage unit 80. Then, when it is determined that registration is necessary, the SLAM processing execution unit 84 may store the generated key frame data, public pause data, and geopose data in the environment map data storage unit 80. good.
  • the environment map data update unit 86 executes, for example, update processing of geopose data and public pose data.
  • the environmental map data update unit 86 geographically based on, for example, a group of feature points included in the environmental map indicated by the environmental map data and a map indicated by the given map data provided by the given map service 18. The position and orientation corresponding to the feature point cloud represented by the coordinate system are estimated.
  • the environment map data update unit 86 specifies the key frame data associated with the geopose data in which the value of the conversion flag is 0. Then, the environment map data update unit 86 projects the feature point cloud indicated by each of the plurality of feature point data included in the specified keyframe data onto a plane orthogonal to the gravity axis (vertically upward axis). Generate an original projection image that shows the situation.
  • FIG. 10 is a diagram showing an example of the original projected image generated in this way. In FIG. 10, feature points are represented by black dots.
  • the environment map data update unit 86 identifies a portion presumed to be a linear road in the original projected image by using a predetermined image processing technique such as an image processing technique using a trained machine learning model such as pix2pix. To generate the processed projection image shown in.
  • FIG. 11 is a diagram showing an example of a processed projection image.
  • the environment map data update unit 86 obtains map data representing a map of an area of a predetermined size from the map service 18 based on the value of the geopose data associated with the key frame data, for example. get.
  • the environment map data update unit 86 is, for example, a square area having a side length of 100 meters centered on a geographical position corresponding to a combination of the latitude indicated by the latitude data of the geopose data and the longitude indicated by the longitude data. Get the map data that represents the map of.
  • the environmental map data updating unit 86 identifies and shows a road portion in the map represented by the map data by using a predetermined street extraction technique based on the acquired map data, for example. Generate a map image.
  • the environment map data update unit 86 generates a first projection image of the first resolution by, for example, compressing the processed projection image. Then, the environment map data update unit 86 generates the first reference image of the first resolution by compressing the map image.
  • a first projection image and a first reference image having a resolution corresponding to an area of 10 meters square corresponding to 100 ⁇ 100 pixels are generated.
  • the environment map data update unit 86 estimates the direction corresponding to the feature point cloud represented by the geographical coordinate system based on the first projection image and the first reference image. For example, by matching the orientations of the first projected image and the first reference image, the orientation of the original projected image on the map indicated by the map data is estimated.
  • the environment map data update unit 86 compresses the processed projection image to generate a second projection image having a second resolution higher than the above-mentioned first resolution. Then, the environment map data update unit 86 compresses the map image to generate a second reference image having a second resolution higher than the above-mentioned first resolution.
  • a second projection image and a second reference image having a resolution corresponding to a region of 10 meters square corresponding to 10000 ⁇ 10000 pixels are generated.
  • the environment map data update unit 86 sets the second projected image, the second reference image, and the orientation corresponding to the feature point cloud represented by the geographical coordinate system estimated as described above. Based on this, the position corresponding to the feature point cloud represented by the geographical coordinate system is estimated. For example, by matching the position between the second projected image rotated according to the direction estimated as described above and the second reference image, the position of the original projected image (east and west) on the map indicated by the map data. Direction and position in the north-south direction) is estimated.
  • FIG. 12 is a diagram schematically showing an example of a region R associated with the original projected image shown in FIG. 10 in the map shown by the map data.
  • the position and orientation represented by the geographical coordinate system associated with the feature points indicated by each of the plurality of feature point data included in the key frame data are estimated.
  • the environment map data update unit 86 associates the estimated position and orientation with the feature point cloud.
  • the environment map data update unit 86 is a key frame in which the specific point cloud is indicated based on the position and orientation represented by the geographical coordinate system associated with the feature point cloud estimated as described above. Update the value of the geopose data associated with the data.
  • the latitude and longitude of the sensing position of the sensing data associated with the key frame data indicating the feature point cloud, and the azimuth angle of the sensing data in the sensing direction are estimated. ..
  • the altitude of the sensing position is estimated by referring to the map data. Then, the latitude data, longitude data, and elevation data of the geopose data associated with the keyframe data so as to indicate the latitude, longitude, and elevation of the estimated sensing position and the azimuth in the estimated sensing direction, respectively. And the azimuth data is updated.
  • the estimation of the position and orientation associated with the feature point may fail. For example, if the road shown in the map data corresponding to the road estimated based on the original projected image is not found, the estimation fails. Further, for example, when a plurality of roads shown in the map data corresponding to the roads estimated based on the original projected image are specified, the estimation fails. Also, for example, if the reliability of orientation or position matching is low, the estimation fails.
  • the environment map data update unit 86 sets a value obtained by interpolating the values of a plurality of (for example, two) geopose data that succeeded in the estimation according to a predetermined rule for the geopose data that failed in the estimation. May be updated.
  • the geopose data is updated based on the given map data provided by the given map service 18 as described above.
  • the environment map data update unit 86 updates the public pose data associated with the geopose data based on the geopose data updated as described above.
  • the geopose data in which the conversion flag value is set to 1 and the public pose data associated with the geopose data are determined as reference destinations. Then, the public pose data to be updated matches the value of the referenced public pose data based on the difference between the value of the geopose data associated with the public pose data and the value of the referenced geopose data. It will be updated to.
  • the value of the X coordinate value data included in the public pose data is set so that the east direction is the positive direction by updating the public pose data by the environment map data update unit 86. Further, the value of the Y coordinate value data included in the public pose data is set so that the vertical upward direction is the positive direction. Further, the value of the Z coordinate value data included in the public pose data is set so that the north direction is the positive direction.
  • the difference of 1 degree latitude corresponds to 110.94297 ⁇ 1000 meters
  • the difference of 1 degree longitude corresponds to (1/360) ⁇ (cos (latitude ⁇ 2 ⁇ / 360)) ⁇ 2 ⁇ ⁇ 6378137 meters.
  • the value of the public pose data is updated (see equations (1) and (2) below). As described above, in the present embodiment, it is necessary to perform the update based on the conversion formula in consideration of the fact that the length per one degree of longitude differs depending on the latitude.
  • a predetermined value (for example, 0 or a value set at the time of generation) is set for the value of the X coordinate value data, the value of the Y coordinate value data, and the value of the Z coordinate value data of the public pose data. It may be done.
  • the value of the rotation matrix data included in the public pose data is updated so that the horizontal north direction becomes an identity matrix.
  • the position and orientation of the public pose data updated in this way will be expressed in the Euclidean coordinate system of the metric system common to other public pose data already registered.
  • the above processing is executed for each of the plurality of trackers 12 based on the sensing data transmitted from the tracker 12.
  • the updated public pose data is represented in position and orientation in the Euclidean coordinate system shared by the plurality of user systems 10 accessing the environment map data storage unit 80 in which the public pose data is stored.
  • the Euclidean coordinate system shared by the plurality of user systems 10 in this way will be referred to as a shared Euclidean coordinate system.
  • the updated geopose data will be represented in position and orientation in the geographical coordinate system shared by the plurality of user systems 10.
  • the environment map data update unit 86 updates the value of the conversion flag included in the geopose data associated with the public pose data updated as described above to 1.
  • the self-position estimation process is executed by the SLAM process execution unit 84.
  • the tracker is based on the sensing data received by the sensing data receiving unit 82 and the environmental map data stored in the environmental map data storage unit 80. Twelve positions and orientations are estimated.
  • the SLAM processing execution unit 84 estimates the position and orientation of the tracker 12 represented by the shared Euclidean coordinate system.
  • the SLAM processing execution unit 84 identifies one environmental map data based on the sensing data acquired by the tracker 12 from among the plurality of environmental map data stored in each of the plurality of environmental map data storage units 80. You may. For example, the environmental map data stored in the environmental map data storage unit 80 associated with the geographical range including the geographical position indicated by the sensing data acquired by the tracker 12 may be specified. Then, based on the specified environmental map data and the sensing data, the position of the tracker 12 represented by the shared Euclidean coordinate system in the environmental map data may be estimated.
  • the SLAM processing execution unit 84 may use the SLAM processing execution unit 84 to estimate the position of the tracker 12 represented in the geographical coordinate system. And the orientation are also estimated. For example, when the value of the conversion flag of the geopose data associated with the key frame data referred to in the SLAM processing is 1, the SLAM processing execution unit 84 has the position of the tracker 12 represented in the geographical coordinate system and the position of the tracker 12. The orientation may be estimated.
  • the key frame data according to the present embodiment is associated with not only public pose data in which the position and orientation are expressed in the shared Euclidean coordinate system but also geopose data in which the position and orientation are expressed in the geographical coordinate system. There is. Therefore, not only the position and orientation of the tracker 12 represented by the shared Euclidean coordinate system but also the position and orientation of the tracker 12 represented by the geographical coordinate system can be accurately estimated.
  • the difference of 1 degree latitude corresponds to 110.94297 ⁇ 1000 meters
  • the difference of 1 degree longitude is (1/360) ⁇ (cos (latitude ⁇ 2 ⁇ / 360)) ⁇ 2 ⁇ ⁇ .
  • the position and orientation of the tracker 12 represented in the geographic coordinate system may be estimated based on the equivalent of 6378137 meters.
  • the SLAM processing execution unit 84 generates and holds tracker position data indicating the position and orientation each time the position and orientation of the tracker 12 are estimated.
  • the tracker position data may indicate the position and orientation of the tracker 12 represented in one or both of the shared Euclidean coordinate system and the geographical coordinate system.
  • the target position data acquisition unit 88 acquires target position data indicating a position represented by a geographical coordinate system, for example.
  • the position represented by the geographical coordinate system shown in the target position data will be referred to as a target position.
  • the target position data acquisition unit 88 may acquire the target position data indicating the position represented by the geographical coordinate system of the target object for which the visual information is displayed at the corresponding position in the real world.
  • the target position data acquisition unit 88 obtains target position data indicating a geographical position on a map indicated by map data associated with objects such as anchors, areas, facilities (stores, etc.) that satisfy predetermined conditions. Obtained from map service 18.
  • the target position data acquisition unit 88 may acquire the target position data associated with the registration data registered in the map service 18 in association with the target position. Examples of registered data include comments and ratings for target positions, icon images, 3D models, characters, links (voice data, videos, or links to web pages), QR codes (registered trademarks), and operable. Scripts, etc.
  • the target position data acquisition unit 88 acquires the target position data associated with the name data indicating the name corresponding to the target position, such as the name of the object corresponding to the target position, the area, the facility, or the like. May be good.
  • the name data may be data registered in the map service 18 in association with the target position, that is, the above-mentioned registered data.
  • the target position data acquisition unit 88 may receive the target position data indicating the geographical position P1 designated by the user on the map displayed on the terminal 14 from the terminal 14 as shown in FIG.
  • the above-mentioned registration data and name data may be associated with the target position data.
  • the coordinate conversion unit 90 uses the Euclidean coordinate system based on, for example, the target position data acquired by the target position data acquisition unit 88 and the environmental map data stored in the environmental map data storage unit 80. Identify the represented target position.
  • the coordinate conversion unit 90 is expressed in the Euclidean coordinate system based on the target position data, the position of the tracker 12 expressed in the Euclidean coordinate system, and the position of the tracker 12 expressed in the geographical coordinate system.
  • the target position may be specified.
  • the coordinate conversion unit 90 may specify one environmental map data based on the target position data from the plurality of environmental map data stored in each of the plurality of environmental map data storage units 80.
  • the environmental map data stored in the environmental map data storage unit 80 associated with the geographical range including the geographical position indicated by the target position data may be specified.
  • the target position represented by the Euclidean coordinate system in the environment map data may be specified based on the specified environment map data and the sensing data.
  • the SLAM processing execution unit 84 estimates the latest position and orientation of the tracker 12 represented in the shared Euclidean coordinate system and the latest position and orientation of the tracker 12 represented in the geographical coordinate system. I will do it.
  • the coordinate conversion unit 90 first converts the position of the tracker 12 represented by the geographical coordinate system into the standard Euclidean coordinate system, and the orientation of the tracker 12 represented by the geographical coordinate system.
  • the quaternion RG corresponding to the direction obtained by converting (rotation matrix) into the standard Euclidean coordinate system is calculated according to the following equations (1) to (4).
  • the standard Euclidean coordinate system refers to the Euclidean coordinate system whose origin is the position corresponding to the latitude 0 degree, the longitude 0 degree, and the altitude 0.
  • the X coordinate value of PG is calculated after considering that the length per degree of longitude differs depending on the latitude.
  • 6378137 [m] is a value of the equatorial radius of the earth.
  • 110.94297 ⁇ 1000 [m] is a value indicating the length per degree of latitude.
  • Equation (4) generates rotation information (quaternion) in which only the yaw component is specified.
  • the coordinate conversion unit 90 calculates the position GP1 obtained by converting the target position expressed in the geographical coordinate system into the standard Euclidean coordinate system according to the following equations (5) to (7).
  • the coordinate conversion unit 90 calculates the position PP1 in which the target position expressed in the geographical coordinate system is expressed in the shared Euclidean coordinate system according to the following equations (8) to (11).
  • the position of the tracker 12 represented by the shared Euclidean coordinate system is represented by PP
  • the quaternion corresponding to the orientation of the tracker 12 represented by the shared Euclidean coordinate system is represented by RP.
  • the yaw component of quaternion RP is extracted by the formula shown in (8).
  • (RG ⁇ -1) represents the reverse quaternion of the quaternion RG.
  • ( ⁇ Rgp ⁇ -1) represents the inverse quaternion of the quaternion ⁇ Rgp.
  • the target position represented by the geographical coordinate system is accurately mapped to the position in the shared Euclidean coordinate system.
  • the server display control unit 92 has, for example, an image showing a state in which visual information arranged at a target position represented by the Euclidean coordinate system is viewed from the position of the tracker 12 represented by the Euclidean coordinate system. It is controlled so that it is displayed on the display unit 36 of 12.
  • the server display control unit 92 controls the display unit 36 to display an image showing the appearance of the visual information corresponding to the above-mentioned registered data viewed from the position of the tracker 12 expressed in the Euclidean coordinate system. May be good. Further, for example, an image showing how the server display control unit 92 sees the visual information showing the name indicated by the above-mentioned name data from the position of the tracker 12 expressed in the Euclidean coordinate system is displayed on the display unit 36. It may be controlled so as to.
  • the server display control unit 92 may control to display a character string or an image representing a comment or rating for the target position associated with the target position data. Further, the server display control unit 92 may control so that the icon image, the 3D model, and the character associated with the target position data are displayed.
  • the server display control unit 92 may control so that the link (voice data, moving image, or link to the Web page) associated with the target position data is displayed.
  • the link voice data, moving image, or link to the Web page
  • audio data, video reproduction, Web page display, and the like may be executed according to the user's operation of selecting the link.
  • the server display control unit 92 may control so that the QR code associated with the target position data is displayed.
  • the process according to the reading result of the QR code may be executed according to the selection operation of the link by the user.
  • server display control unit 92 may control so that the icon image corresponding to the script associated with the target position data is displayed.
  • the script may be executed according to the user's selection operation of the icon image.
  • the server display control unit 92 may transmit the generated tracker position data to the tracker 12 in response to the generation of the tracker position data by the SLAM processing execution unit 84.
  • server display control unit 92 generates conversion target position data indicating the target position represented by the shared Euclidean coordinate system each time the coordinate conversion unit 90 specifies the target position represented by the shared Euclidean coordinate system. You may.
  • the server display control unit 92 may transmit the generated conversion target position data to the tracker 12, for example, in response to the generation of the conversion target position data.
  • the converted target position data indicating the target position represented by the shared Euclidean coordinate system, which is specified based on the latest position and orientation of the tracker 12, may be transmitted to the tracker 12.
  • the server display control unit 92 may associate the name data associated with the target position data indicating the target position with the generated conversion target position data. Then, the server display control unit 92 may transmit to the conversion target position data associated with the name data.
  • the position data receiving unit 74 receives the tracker position data transmitted from the server display control unit 92, for example. Further, in the present embodiment, the position data receiving unit 74 receives the conversion target position data transmitted from the server display control unit 92, for example.
  • the image generation unit 76 generates, for example, an image showing a state in which the visual information arranged at the target position represented by the Euclidean coordinate system is viewed from the position of the tracker 12 represented by the Euclidean coordinate system.
  • the image generated by the image generation unit 76 in this way will be referred to as a target image.
  • the tracker display control unit 78 causes the display unit 36 to display the target image generated by the image generation unit 76, for example.
  • the image generation unit 76 may generate the virtual space S as shown in FIG.
  • the virtual space S shown in FIG. 13 corresponds to the position Q1 and orientation Q2 of the tracker 12 indicated by the latest tracker position data received by the position data receiving unit 74, and the conversion target position data received by the position data receiving unit 74.
  • the position Q3 to be used is mapped to the shared Euclidean coordinate system.
  • the position Q3 may be the position indicated by the conversion target position data, or the position indicated by the conversion target position data is shifted by a predetermined length in the height direction (positive direction along the Y axis). May be.
  • the image generation unit 76 looks at the direction Q2 from the position Q1 in the virtual space S in which the name image 60 representing the character string of the name indicated by the name data associated with the conversion target position data is arranged at the position Q3. An image to represent may be generated.
  • the image generation unit 76 sees the orientation Q2 from the position Q1 in the virtual space S in which the name image 60 representing the character string of the name represented by the name data associated with the conversion target position data is arranged at the position Q3.
  • An image as shown in FIG. 14 may be generated to show the situation.
  • the image generation unit 76 uses an image obtained by superimposing an image taken by the camera provided on the tracker 12 in front of the user and an image shown in FIG. You may generate a certain target image. Then, the tracker display control unit 78 may display the target image thus generated on the display unit 36.
  • the tracker display control unit 78 may display the image shown in FIG. 14 on the display unit 36 as a target image.
  • FIG. 15 shows that the image generation unit 76 looks at the direction Q2 from the position Q1 in the virtual space S in which the mark 62 is arranged at the position Q3 over several frames while changing the height of the position Q3. You may generate such an image.
  • the image generation unit 76 includes an image taken by the camera included in the tracker 12 in front of the user, an image shown in FIG. 15, and an image shown in FIG. You may generate a target image which is an image in which the above is superimposed. Then, the tracker display control unit 78 may display the target image thus generated on the display unit 36.
  • the tracker display control unit 78 may display the image shown in FIG. 15 on the display unit 36 as a target image.
  • an animation showing how an apple is falling is displayed on the display unit 36.
  • the sensing data receiving unit 82 receives the sensing data from the tracker 12 (S101).
  • the SLAM processing execution unit 84 determines one of the plurality of environment map data storage units 80 corresponding to the geographical position indicated by the sensing data, based on the sensing data received in the processing shown in S101. (S102).
  • the SLAM processing execution unit 84 executes SLAM processing based on the environment map data stored in the environment map data storage unit 80 determined by the processing shown in S102 and the sensing data received in the processing shown in S101. (S103).
  • a self-position estimation process for estimating the position and orientation of the tracker 12 when sensing corresponding to the sensing data received in the process shown in S101 is performed is executed.
  • the position and orientation are estimated.
  • the geographical coordinate system can be used.
  • the position and orientation of the represented tracker 12 are also estimated.
  • the keyframe data, the public pause data, and the conversion flag to which a new keyframe ID is assigned are set to values based on the sensing data received in the process shown in S101, if necessary.
  • Geopose data set to 0 is generated.
  • the generated key frame data is stored in the key frame data storage unit 80a included in the environment map data storage unit 80 determined by the process shown in S102.
  • the generated public pose data is stored in the public pose data storage unit 80b included in the environment map data storage unit 80 determined by the process shown in S102.
  • the generated geopose data is stored in the geopose data storage unit 80c included in the environment map data storage unit 80 determined by the process shown in S102.
  • the SLAM processing execution unit 84 generates tracker position data indicating the position and orientation of the tracker 12 based on the position and orientation of the tracker 12 estimated by the processing shown in S103 (S104). This tracker position data is held by the SLAM processing execution unit 84.
  • the server display control unit 92 transmits the tracker position data generated in the process shown in S104 to the tracker 12 which is the source of the sensing data received in the process shown in S101 (S105), and in this processing example. The indicated process is terminated.
  • the process described below may be repeatedly executed in the background. Further, the process described below may be executed for the geopose data in response to the storage of new geopose data in the geopose data storage unit 80c, for example.
  • the environment map data update unit 86 acquires the geopose data stored in the geopose data storage unit 80c of the environment map data storage unit 80 (S201).
  • the geopose data newly stored in the geopose data storage unit 80c may be acquired.
  • the environment map data update unit 86 confirms whether or not the value of the conversion flag of the geopose data acquired in the process shown in S201 is 0 (S202).
  • the environment map data update unit 86 acquires the keyframe data having the same keyframe ID as the geopose data acquired in the process shown in S201 (S201: Y). S203).
  • the environment map data update unit 86 generates the above-mentioned original projected image based on the feature point group indicated by the plurality of feature point data included in the key frame data acquired by the process shown in S203 (S204).
  • the environment map data update unit 86 generates the above-mentioned processed projection image based on the original projection image generated by the process shown in S204 (S205).
  • the environment map data update unit 86 represents a map of a square area having a side length of 10 meters from the map service 18 based on the geographical position indicated by the geopose data acquired in the process shown in S201. Acquire data (S206).
  • the environment map data update unit 86 generates the above-mentioned map image based on the map data acquired by the process shown in S206 (S207).
  • the environment map data update unit 86 compresses the processed projection image generated by the process shown in S205 to generate the first projection image having the above-mentioned first resolution (S208).
  • the environment map data update unit 86 compresses the map image generated by the process shown in S207 to generate the first reference image of the above-mentioned first resolution (S209).
  • the environment map data update unit 86 indicates the direction (rotation) expressed in the geographical coordinate system corresponding to the feature point cloud indicated by the plurality of feature point data included in the key frame data acquired in the process shown in S203. Is estimated (S210). In the process shown in S210, for example, by matching the first projected image and the first reference image, the orientation (rotation) expressed in the geographical coordinate system corresponding to the feature point cloud is estimated. To.
  • the environment map data update unit 86 generates the second projection image of the above-mentioned second resolution by compressing the processed projection image generated by the process shown in S205 (S211).
  • the environment map data update unit 86 generates the second reference image of the above-mentioned second resolution by compressing the map image generated by the process shown in S207 (S212).
  • the environment map data update unit 86 estimates the position represented by the geographical coordinate system corresponding to the feature point cloud indicated by the plurality of feature point data included in the key frame data acquired in the process shown in S203. (S213).
  • the second projected image rotated in the direction corresponding to the direction (rotation) estimated in S210 and the second reference image are matched to correspond to the feature point cloud.
  • the position expressed in the geographical coordinate system is estimated.
  • the environment map data update unit 86 shows the position estimated by the process shown in S210 and the direction (rotation) estimated by the process shown in S213, and the geopose acquired by the process shown in S201.
  • the data value is updated (S214).
  • the value of the conversion flag of the geopose data acquired in the process shown in S201 is also updated to 1. Then, the process shown in this process example is terminated.
  • the terminal 14 when the user performs a tap operation to specify the target position which is the geographical position P1 on the map displayed on the terminal 14, the terminal 14 generates the target position data indicating the target position (S301).
  • the target position is represented by a geographical coordinate system such as latitude, longitude, and altitude. Name data may be associated with this target position.
  • the terminal 14 transmits the target position data to the server 16, and the target position data acquisition unit 88 of the server 16 receives the target position data (S302).
  • the coordinate conversion unit 90 determines one of the plurality of environment map data storage units 80 corresponding to the geographical position indicated by the target position data, based on the target position data received in the process shown in S302. (S303).
  • the environment map data storage unit 80 associated with the geographical range including the geographical position P1 represented by the geographical coordinate system indicated by the target position data shown in S302 is determined.
  • the coordinate conversion unit 90 specifies the target position represented by the shared Euclidean coordinate system, which corresponds to the target position represented by the geographical coordinate system indicated by the target position data received in the process shown in S302 (S304). ..
  • the server display control unit 92 generates the converted target position data indicating the target position represented by the shared Euclidean coordinate system specified by the process shown in S304 (S305).
  • the server display control unit 92 transmits the conversion target data generated by the process shown in S305 to the tracker 12, and the position data receiving unit 74 of the tracker 12 receives the conversion target data (S306).
  • the image generation unit 76 generates a target image based on the conversion target data received in the process shown in S306 and the latest tracker position data (tracker position data last received by the tracker 12) (S307). ..
  • the tracker display control unit 78 causes the display unit 36 to display the target image generated by the process shown in S307 (S308), and the process shown in this processing example is terminated.
  • the target image is displayed on the display unit 36 of the tracker 12 included in the user system 10 in response to the tap operation for designating the geographical position P1 on the map displayed on the terminal 14 included in the user system 10. May be done.
  • the target position represented by the shared Euclidean coordinate system may be specified based on the target position data indicating the target position which is the geographical position P1.
  • conversion target position data indicating the specified target position may be generated.
  • the conversion target position data may be transmitted to the tracker 12 included in the user system 10.
  • a target image may be generated based on the tracker position data indicating the latest estimated position and orientation of the tracker 12 and the conversion target position data.
  • the generated target image may be displayed on the display unit 36 of the tracker 12.
  • the server display control unit 92 displays a target image corresponding to the tracker 12 on the display unit 36 included in each of the plurality of trackers 12 existing in a given range in the real space. You may control it. For example, even if the server display control unit 92 controls the display unit 36 of the plurality of trackers 12 to display the target image in response to the tap operation for designating the geographical position P1 on the map displayed on the terminal 14. good. In this case, the conversion target position data may be transmitted to a plurality of trackers 12.
  • the server display control unit 92 may control the target image to be displayed on the display unit 36 of the tracker 12 whose distance to the target position is equal to or less than a predetermined distance.
  • the server display control unit 92 displays the target image on the display unit 36 of the tracker 12 to which the latest position is mapped to the shared Euclidean coordinate system used in the environment map data storage unit 80 determined based on the target position. May be controlled to be displayed.
  • the target position represented by the Euclidean coordinate system is specified based on the target position data indicating the target position represented by the geographical coordinate system and the environmental map data. In this way, both the position of the tracker 12 and the position of the target are accurately mapped to the shared Euclidean coordinate system. In this way, according to the present embodiment, it is possible to accurately map a given geographical position to an environmental map.
  • an image showing the appearance of the visual information arranged at the target position represented by the Euclidean coordinate system viewed from the position of the tracker 12 represented by the Euclidean coordinate system is displayed.
  • This embodiment is expected to be applied in various fields such as automatic driving, factory automation (FA), automatic drone control, remote control of equipment and remote instruction, and the like.
  • FA factory automation
  • FA automatic drone control
  • remote control of equipment and remote instruction and the like.
  • the present invention is not limited to the above-described embodiment.
  • the division of roles between the tracker 12, the terminal 14, and the server 16 is not limited to those described above.
  • the server 16 may generate a target image.
  • the geopose data may include elevation / depression angle data indicating the elevation / depression angle of the tracker 12 when the sensing data associated with the geopose data is generated.
  • the sensing data for a private space such as the user's home may not be uploaded to the server 16.
  • the key frame data, public pose data, and geopose data for the private space may not be accessible to other users.

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

所与の地理的位置を環境地図に的確にマッピングさせることができるマッピング装置、トラッカー、マッピング方法及びプログラムを提供する。環境地図データ記憶部(80)は、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データを記憶する。SLAM処理実行部(84)は、トラッカーにより取得されるセンシングデータと、環境地図データと、に基づいて、ユークリッド座標系で表現されたトラッカー(12)の位置を推定する。ターゲット位置データ取得部(88)は、地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得する。座標変換部(90)は、ターゲット位置データと環境地図データとに基づいて、ユークリッド座標系で表現されたターゲット位置を特定する。

Description

マッピング装置、トラッカー、マッピング方法及びプログラム
 本発明は、マッピング装置、トラッカー、マッピング方法及びプログラムに関する。
 トラッカーが備えるカメラにより撮影された撮影画像などといった、トラッカーが取得するセンシングデータに基づいて、自己位置推定及び環境地図作成を行うSLAM(Simultaneous Localization and Mapping)の技術が知られている。SLAMを活用した技術の一例として、特許文献1には、複数のトラッカーのそれぞれが取得するセンシングデータに基づいて生成される、これら複数のトラッカーで共有される共有座標系で位置が表現された環境地図が記載されている。
 また、インターネットを介して地図(当該地図には一般的な地図だけではなく衛星地図や航空地図も含まれる。)をユーザに提供する様々な地図サービスが存在する。
 また、現実世界の風景に仮想的な視覚情報を重ねて表示させるAR(Augmented Reality)技術などのXリアリティ(XR)技術が存在する。
国際公開第2019/167213号
 SLAMの技術を用いて推定されたユーザの位置と地図などに示された地理的位置とを連携させることでXR技術を用いた新たなサービスを展開することが可能となる。
 例えば、地図サービスによって提供される地図データが示す地図上に打たれたアンカー、地域情報、店舗情報などを表す視覚情報が、地図上の地理的位置に対応する現実世界における位置に見えるようにするサービスが可能となる。
 また例えば、スマートフォンやタブレット端末などの端末に表示された地図における地理的位置を指定するユーザの操作に応じて、指定された地理的位置に対応する現実世界における位置に目印等の視覚情報が見えるようにするサービスが可能となる。
 しかし、地図に示された位置などの地理的位置は、緯度、経度、標高等の地理的座標系で表現される一方で、SLAMの技術を用いて推定される環境地図内のユーザの位置は、X座標値、Y座標値、Z座標値等のユークリッド座標系で表現される。
 このように、地理的位置とSLAMの技術を用いて推定される環境地図内のユーザの位置とで表現に用いられる座標系が異なるため、従来技術では、所与の地理的位置を環境地図に的確にマッピングさせることができなかった。
 本発明は上記課題に鑑みてなされたものであって、その目的の1つは、所与の地理的位置を環境地図に的確にマッピングさせることができるマッピング装置、トラッカー、マッピング方法及びプログラムを提供することにある。
 上記課題を解決するために、本発明に係るマッピング装置は、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データを記憶する環境地図データ記憶部と、トラッカーにより取得されるセンシングデータと、前記環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定するトラッカー位置推定部と、前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得するターゲット位置データ取得部と、前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する座標変換部と、を含む。
 本発明の一態様では、前記ユークリッド座標系で表現された前記ターゲット位置に配置された視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が、前記トラッカーが備える表示部に表示されるよう制御する表示制御部、をさらに含む。
 この態様では、前記ターゲット位置データ取得部は、前記ターゲット位置に対応付けて所与の地図サービスに登録されている登録データに関連付けられた前記ターゲット位置データを取得し、前記表示制御部は、前記登録データに応じた前記視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が前記表示部に表示されるよう制御してもよい。
 あるいは、前記ターゲット位置データ取得部は、前記ターゲット位置に対応する名称を示す名称データに関連付けられた前記ターゲット位置データを取得し、前記表示制御部は、前記名称データが示す名称が表された前記視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が前記表示部に表示されるよう制御してもよい。
 また、前記表示制御部は、実空間における所与の範囲に存在する複数の前記トラッカーのそれぞれが備える表示部に当該トラッカーに応じた前記画像が表示されるよう制御してもよい。
 また、前記表示制御部は、前記画像を前記表示部に表示させる前記トラッカーに、前記ユークリッド座標系で表現された前記トラッカーの位置を示すトラッカー位置データ、及び、前記ユークリッド座標系で表現された前記ターゲット位置を示す変換ターゲット位置データを送信してもよい。
 また、本発明の一態様では、前記ターゲット位置データ取得部は、前記トラッカーとは異なる端末に表示された地図における前記ターゲット位置を指定するユーザの操作に応じて、指定される前記ターゲット位置を示す前記ターゲット位置データを取得する。
 また、本発明の一態様では、前記トラッカー位置推定部は、前記センシングデータと、前記環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置、及び、前記地理的座標系で表現された前記トラッカーの位置を推定し、前記座標変換部は、前記ターゲット位置データと、前記ユークリッド座標系で表現された前記トラッカーの位置と、前記地理的座標系で表現された前記トラッカーの位置と、に基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する。
 また、本発明の一態様では、前記マッピング装置は、前記環境地図データ記憶部を複数含んでおり、前記複数の前記環境地図データ記憶部は、それぞれ、前記ユークリッド座標系での原点に対応付けられる前記地理的座標系で表現された位置が互いに異なる前記環境地図を示す前記環境地図データを記憶し、前記トラッカー位置推定部は、前記複数の前記環境地図データ記憶部にそれぞれ記憶されている複数の前記環境地図データのうちから前記トラッカーにより取得される前記センシングデータに基づいて特定される前記環境地図データと、当該センシングデータと、に基づいて、当該環境地図データにおける前記ユークリッド座標系で表現された前記トラッカーの位置を推定し、前記座標変換部は、前記複数の前記環境地図データ記憶部にそれぞれ記憶されている複数の前記環境地図データのうちから前記ターゲット位置データに基づいて特定される前記環境地図データと、当該ターゲット位置データと、に基づいて、当該環境地図データにおける前記ユークリッド座標系で表現された前記ターゲット位置を特定する。
 また、本発明の一態様では、前記環境地図に含まれる特徴点群と、所与の地図サービスが提供する所与の地図データが示す地図と、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する位置及び向きを推定する対応推定部と、推定される当該位置及び当該向きを前記特徴点群に対応付ける環境地図データ更新部と、をさらに含む。
 この態様では、前記対応推定部は、前記特徴点群を重力軸に対して直交する平面に投影した様子を表す第1解像度の画像である第1投影画像と、前記地図に基づいて生成される前記第1解像度の画像である第1参照画像と、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する向きを推定し、前記対応推定部は、前記特徴点群を前記平面に投影した様子を表す前記第1解像度よりも解像度が高い第2解像度の画像である第2投影画像と、前記地図に基づいて生成される前記第2解像度の画像である第2参照画像と、推定される前記向きと、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する位置を推定してもよい。
 また、本発明に係るトラッカーは、センサ部と、表示部と、を備えたトラッカーであって、前記センサ部により取得されるセンシングデータに基づいて推定されるユークリッド座標系で表現された前記トラッカーの位置と、前記トラッカーとは異なる端末に表示された地図においてユーザに指定される地理的位置であるターゲット位置と、に基づいて、前記ユークリッド座標系で表現された前記ターゲット位置に配置された視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像を前記表示部に表示させる表示制御部、をさらに備える。
 また、本発明に係るマッピング方法は、トラッカーにより取得されるセンシングデータと、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定するステップと、前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得するステップと、前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定するステップと、を含む。
 また、本発明に係るプログラムは、トラッカーにより取得されるセンシングデータと、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定する手順、前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得する手順、前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する手順、をコンピュータに実行させる。
本発明の一実施形態に係る環境地図管理システムの一例を示す構成図である。 本発明の一実施形態に係るトラッカーの一例を示す構成図である。 本発明の一実施形態に係る端末の一例を示す構成図である。 本発明の一実施形態に係るサーバの一例を示す構成図である。 名称画像が見える様子の一例を示す図である。 端末に表示された地図における地理的位置を指定するユーザの操作が行われている様子の一例を示す図である。 目印が見える様子の一例を示す図である。 本発明の一実施形態に係るトラッカーで実装される機能の一例を示す機能ブロック図である。 本発明の一実施形態に係るサーバで実装される機能の一例を示す機能ブロック図である。 キーフレームデータのデータ構造の一例を示す図である。 パブリックポーズデータのデータ構造の一例を示す図である。 ジオポーズデータのデータ構造の一例を示す図である。 オリジナル投影画像の一例を示す図である。 加工投影画像の一例を示す図である。 地図内におけるオリジナル投影画像に対応付けられる領域の一例を模式的に示す図である。 生成される仮想空間の一例を模式的に示す図である。 生成される画像の一例を模式的に示す図である。 生成される画像の一例を模式的に示す図である。 本発明の一実施形態に係るサーバで行われる処理の流れの一例を示すフロー図である。 本発明の一実施形態に係るサーバで行われる処理の流れの一例を示すフロー図である。 本発明の一実施形態に係るサーバで行われる処理の流れの一例を示すフロー図である。 本発明の一実施形態に係るユーザシステム及びサーバで行われる処理の流れの一例を示すフロー図である。
 以下、本発明の一実施形態について図面に基づき詳細に説明する。
 図1は、本発明の一実施形態に係る環境地図管理システム1の一例を示す構成図である。図1に示すように、本実施形態に係る環境地図管理システム1には、複数のユーザシステム10が含まれる。そして、本実施形態に係るユーザシステム10には、トラッカー12と、端末14と、が含まれる。図1には、2つのユーザシステム10a、10bが例示されている。ユーザシステム10aには、トラッカー12aと端末14aが含まれる。ユーザシステム10bには、トラッカー12bと端末14bが含まれる。また、本実施形態に係る環境地図管理システム1には、サーバ16、及び、地図サービス18も含まれる。
 本実施形態では例えば、環境地図管理システム1を利用する複数のユーザが、それぞれ、当該ユーザのユーザシステム10を管理していることとする。そして各ユーザは、他のユーザが管理しているユーザシステム10にはアクセスできないこととする。
 トラッカー12、端末14、サーバ16、地図サービス18は、インターネット等のコンピュータネットワーク20に接続されている。そして本実施形態では、トラッカー12、端末14、サーバ16、地図サービス18は、互いに通信可能になっている。
 本実施形態に係るトラッカー12は、当該トラッカー12を装着したユーザの位置や向きを追跡する装置である。
 図2Aに示すように、本実施形態に係るトラッカー12には、プロセッサ30、記憶部32、通信部34、表示部36、センサ部38、が含まれる。
 プロセッサ30は、例えばトラッカー12にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。記憶部32は、例えばROMやRAM等の記憶素子などである。記憶部32には、プロセッサ30によって実行されるプログラムなどが記憶される。通信部34は、例えば無線LANモジュールなどの通信インタフェースである。
 表示部36は、トラッカー12の前側に配置されている、例えば液晶ディスプレイや有機ELディスプレイ等のディスプレイである。本実施形態に係る表示部36は、例えば左目用の画像と右目用の画像を表示することによって三次元画像を表示させることができるようになっている。なお表示部36は三次元画像の表示ができず二次元画像の表示のみができるものであっても構わない。
 センサ部38は、例えばカメラ、慣性センサ(IMU)、地磁気センサ(方位センサ)、ジャイロコンパス、GPS(Global Positioning System)モジュール、デプスセンサ、標高センサなどといったセンサである。
 センサ部38に含まれるカメラは、例えば所定のサンプリングレートで画像を撮影する。センサ部38に含まれるカメラは、三次元画像や奥行き画像が撮影可能なものであってもよい。
 またセンサ部38に含まれる地磁気センサやジャイロコンパスは、トラッカー12が向く方位を示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
 またセンサ部38に含まれる慣性センサは、トラッカー12の加速度、回転量、移動量などを示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
 またセンサ部38に含まれるGPSモジュールは、トラッカー12の緯度及び経度を示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
 センサ部38に含まれるデプスセンサは、例えば、ToF(Time of Flight)、Patterned stereo、Structured Lightなどの技術を用いたデプスセンサである。当該デプスセンサは、トラッカー12からの距離を示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
 またセンサ部38に含まれる標高センサは、トラッカー12の標高を示すデータを、所定のサンプリングレートで、プロセッサ30に出力する。
 また、センサ部38に、RFセンサ、超音波センサ、イベントドリブンセンサなどの他のセンサが含まれていてもよい。
 なお本実施形態に係るトラッカー12が、例えばHDMI(登録商標)(High-Definition Multimedia Interface)ポート、USBポート、AUXポートなどの入出力ポート、ヘッドホン、スピーカなどを含んでいてもよい。
 本実施形態に係る端末14は、スマートフォンやタブレット端末などの携帯情報端末である。
 図2Bに示すように、本実施形態に係る端末14には、プロセッサ40、記憶部42、通信部44、表示部46、センサ部48、が含まれる。
 プロセッサ40は、例えば端末14にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。記憶部42は、例えばROMやRAM等の記憶素子などである。記憶部42には、プロセッサ40によって実行されるプログラムなどが記憶される。通信部44は、例えば無線LANモジュールなどの通信インタフェースである。表示部46は、例えば液晶ディスプレイや有機ELディスプレイ等のディスプレイである。センサ部48は、例えばカメラ、慣性センサ(IMU)、地磁気センサ(方位センサ)、ジャイロコンパス、GPS(Global Positioning System)モジュール、デプスセンサ、標高センサなどといったセンサである。
 本実施形態に係るサーバ16は、例えば、環境地図管理システム1を利用するユーザによって利用されるクラウドサーバなどのサーバコンピュータである。本実施形態に係るサーバ16は、環境地図管理システム1に含まれるいずれのユーザシステム10からもアクセスできるようになっている。
 図2Cに示すように、本実施形態に係るサーバ16には、プロセッサ50、記憶部52、及び、通信部54、が含まれる。プロセッサ50は、例えばサーバ16にインストールされているプログラムに従って動作するCPU等のプログラム制御デバイスである。記憶部52は、例えばROMやRAM等の記憶素子やソリッドステートドライブなどである。記憶部52には、プロセッサ50によって実行されるプログラムなどが記憶される。通信部54は、ネットワークボードや無線LANモジュールなどといった通信インタフェースである。
 本実施形態に係る地図サービス18は、例えば、既存の地図サービス事業者によって管理されているクラウドサーバなどのサーバコンピュータから構成されており、ユーザに所与の地図データを提供する。地図サービス18によって提供される地図データは、一般的な地図を示す地図データには限定されない。地図サービス18によって、航空地図(航空画像)や衛星地図(衛星画像)を示す地図データが提供されても構わない。本実施形態に係る地図サービス18によって提供される地図データが示す地図は、三次元地図であり、例えば、緯度、経度、標高、及び、方位が表現されている。なお、地図サービス18によって提供される地図データが示す地図が、二次元地図であり、例えば、緯度、経度、及び、方位が表現されていてもよい。
 本実施形態では、ユーザシステム10に含まれるトラッカー12によって取得されるセンシングデータがサーバ16に送信される。本実施形態では例えば、センサ部38によるセンシングに応じてプロセッサ30が取得するセンシングデータがサーバ16に送信される。
 そして本実施形態では例えば、サーバ16において、センシングデータに基づいて、自己位置推定処理及び環境地図作成処理を含むSLAM(Simultaneous Localization and Mapping)処理が実行される。
 その結果、環境地図を示す環境地図データがサーバ16に蓄積されていく。また、本実施形態では、SLAM処理によるユーザの位置及び向きの推定結果(ここでは例えば、トラッカー12の位置及び向きの推定結果)を示すトラッカー位置データがサーバ16からトラッカー12に送信される。
 このようにして推定されたユーザの位置と地図などに示された地理的位置とを連携させることでAR(Augmented Reality)等のXリアリティ(XR)技術を用いた新たなサービスを展開することが可能となる。
 例えば、図3に示すように、地図サービス18によって提供される地図データが示す地図上に打たれたアンカー、地域情報、店舗情報などを表す視覚情報が、地図上の地理的位置に対応する現実世界における位置に見えるようにするサービスが可能となる。図3には、ユーザに見える視覚情報の一例として、「XXタワー」というタワーの名称を示す名称画像60が示されている。
 また例えば、図4に示すような、端末14の表示部46に表示された地図における地理的位置P1を指定するユーザの操作に応じて、図5に示すように、指定された地理的位置に対応する現実世界における位置に目印62等の視覚情報が見えるようにするサービスが可能となる。図5の例では、目印62の一例として、りんごの画像が示されており、このサービスでは、例えば、このりんごの画像が落下する様子がユーザに見えることとなる。
 しかし、地図に示された位置などの地理的位置は、緯度、経度、標高等の地理的座標系で表現される一方で、SLAMの技術を用いて推定される環境地図内のユーザの位置は、X座標値、Y座標値、Z座標値等のユークリッド座標系で表現される。
 このように、地理的位置とSLAMの技術を用いて推定される環境地図内のユーザの位置とで表現に用いられる座標系が異なるため、従来技術では、所与の地理的位置を環境地図に的確にマッピングさせることができなかった。
 そこで本実施形態では、以下のようにして、所与の地理的位置を環境地図に的確にマッピングさせることができるようにした。
 また、従来技術では、所与の地理的位置を環境地図に的確にマッピングさせることができなかったため、所与の地理的位置に対応する現実世界における位置に的確に視覚情報を表示させることができなかった。
 そこで本実施形態では、以下のようにして、所与の地理的位置に対応する現実世界における位置に的確に視覚情報を表示させることができるようにした。
 以下、本実施形態に係るトラッカー12及びサーバ16の機能、及び、環境地図管理システム1で実行される処理についてさらに説明する。
 図6Aは、本実施形態に係るトラッカー12で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るトラッカー12で、図6Aに示す機能のすべてが実装される必要はなく、また、図6Aに示す機能以外の機能が実装されていても構わない。
 図6Aに示すように、トラッカー12には、機能的には例えば、センシングデータ取得部70、センシングデータ送信部72、位置データ受信部74、画像生成部76、トラッカー表示制御部78、が含まれる。センシングデータ取得部70は、プロセッサ30及びセンサ部38を主として実装される。センシングデータ送信部72、位置データ受信部74は、通信部34を主として実装される。画像生成部76は、プロセッサ30を主として実装される。トラッカー表示制御部78は、プロセッサ30及び表示部36を主として実装される。
 以上の機能は、コンピュータであるトラッカー12にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ30で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してトラッカー12に供給されてもよい。
 図6Bは、本実施形態に係るサーバ16で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係るサーバ16で、図6Bに示す機能のすべてが実装される必要はなく、また、図6Bに示す機能以外の機能が実装されていても構わない。
 図6Bに示すように、サーバ16には、機能的には例えば、環境地図データ記憶部80、センシングデータ受信部82、SLAM処理実行部84、環境地図データ更新部86、ターゲット位置データ取得部88、座標変換部90、サーバ表示制御部92、が含まれる。環境地図データ記憶部80は、記憶部52を主として実装される。センシングデータ受信部82、ターゲット位置データ取得部88、サーバ表示制御部92は、通信部54を主として実装される。SLAM処理実行部84、環境地図データ更新部86、座標変換部90は、プロセッサ50を主として実装される。
 また、図6Bに示すように、本実施形態に係るサーバ16には、環境地図データ記憶部80が複数含まれている。そして、複数の環境地図データ記憶部80のそれぞれには、キーフレームデータ記憶部80a、パブリックポーズデータ記憶部80b、ジオポーズデータ記憶部80c、が含まれる。また、本実施形態では例えば、複数の環境地図データ記憶部80のそれぞれには、予め、地理的範囲(例えば、緯度の範囲と経度の範囲との組合せ)が関連付けられていることとする。そのため、本実施形態では、地理的位置に基づいて、複数の環境地図データ記憶部80のうちから、当該地理的位置を含む地理的範囲に関連付けられている1つの環境地図データ記憶部80が特定可能になっている。
 以上の機能は、コンピュータであるサーバ16にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ50で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してサーバ16に供給されてもよい。
 環境地図データ記憶部80は、本実施形態では例えば、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データを記憶する。本実施形態に係る環境地図データには、例えば、キーフレームデータ(図7参照)、パブリックポーズデータ(図8参照)、ジオポーズデータ(図9参照)が含まれる。キーフレームデータは、キーフレームデータ記憶部80aに記憶される。パブリックポーズデータは、パブリックポーズデータ記憶部80bに記憶される。ジオポーズデータは、ジオポーズデータ記憶部80cに記憶される。
 図7は、キーフレームデータのデータ構造の一例を示す図である。図7に示すように、キーフレームデータには、例えば、キーフレームID、及び、複数の特徴点データ(特徴点データ(1)、特徴点データ(2)、・・・)が含まれる。
 図8は、パブリックポーズデータのデータ構造の一例を示す図である。図8に示すように、パブリックポーズデータには、例えば、キーフレームID、X座標値データ、Y座標値データ、Z座標値データ、及び、回転行列データが含まれる。
 図9は、ジオポーズデータのデータ構造の一例を示す図である。ジオポーズデータには、例えば、キーフレームID、緯度データ、経度データ、標高データ、方位角データ、及び、コンバージョンフラグが含まれる。
 本実施形態に係るキーフレームデータは、例えば、トラッカー12のセンサ部38によるセンシング結果を示すセンシングデータに対応付けられる特徴点群を示すデータである。
 パブリックポーズデータ、及び、ジオポーズデータは、キーフレームデータに対応付けられるセンシングが行われた際のトラッカー12の位置及び向きを示すデータである。パブリックポーズデータでは、位置及び向きが、X座標値、Y座標値、Z座標値等のユークリッド座標系で表現される一方で、ジオポーズデータでは、位置及び向きが、緯度、経度、標高等の地理的座標系で表現される。
 本実施形態では、トラッカー12によるセンシングに応じてキーフレームデータが生成される際に、当該センシングが行われた際のトラッカー12の位置及び向きを示すパブリックポーズデータ、及び、ジオポーズデータが併せて生成される。
 キーフレームデータに含まれるキーフレームIDは、キーフレームデータの識別情報である。ここで例えば、キーフレームデータに含まれるキーフレームIDは、当該キーフレームデータに対応付けられたセンシングの順序を示す番号であってもよい。
 そして本実施形態では、パブリックポーズデータに含まれるキーフレームIDには、当該パブリックポーズデータに対応付けられるキーフレームデータのキーフレームIDと同じ値が設定される。また、ジオポーズデータに含まれるキーフレームIDには、当該ジオポーズデータに対応付けられるキーフレームデータのキーフレームIDと同じ値が設定される。このようにして、センシングデータ、キーフレームデータ、パブリックポーズデータ、ジオポーズデータは、互いに対応付けられることとなる。
 キーフレームデータに含まれる特徴点データは、トラッカー12が取得するセンシングデータに基づいて特定される特徴点の位置などといった特徴点の属性を示すデータである。本実施形態では、キーフレームデータには、それぞれ互いに異なる特徴点に対応付けられる複数の特徴点データが含まれる。ここでは例えば、キーフレームデータには、トラッカー12による一度のセンシングに基づくSLAM処理によって特定される特徴点の数の特徴点データが含まれる。
 キーフレームデータに含まれる特徴点データには、例えば、当該キーフレームデータに対応するパブリックポーズデータが示す位置及び向きを原点とした当該特徴点データに対応する特徴点の相対的な位置の三次元座標値(例えば、X座標値、Y座標値、及び、Z座標値)が含まれる。また、特徴点データには、当該特徴点データに対応する特徴点の周囲の色を示す色情報が含まれる。
 なお、キーフレームデータには、以上のデータの他に、例えば、トラッカー12が取得するセンシングデータが含まれるようにしてもよい。
 パブリックポーズデータに含まれるX座標値データの値、Y座標値データの値、Z座標値データの値には、それぞれ、当該パブリックポーズデータに対応付けられるセンシングが行われた際のトラッカー12の位置のX座標値、Y座標値、Z座標値が設定される。本実施形態では例えば、X座標値データの値、Y座標値データの値、Z座標値データの値の単位は、メートルである。パブリックポーズデータに含まれる回転行列データには、当該パブリックポーズデータに対応付けられるセンシングが行われた際のトラッカー12の向きを示す回転行列の値が設定される。
 ジオポーズデータに含まれる緯度データの値、経度データの値、標高データの値には、それぞれ、当該ジオポーズデータに対応付けられるセンシングが行われた際のトラッカー12の位置の緯度、経度、標高を示す値が設定される。ジオポーズデータに含まれる方位角データの値には、当該ジオポーズデータに対応付けられるセンシングが行われた際にトラッカー12が向いていた方位を示す値が設定される。
 本実施形態では例えば、緯度データの値の範囲は-90~90であり、精度はdouble相当であり、単位は度である。また、経度データの値の範囲は-180~180であり、精度はdouble相当であり、単位は度である。また、標高データの値は、日本については東京湾の海抜平均からの高さを表し、単位はメートルである。また、方位角データの値の範囲は0~360であり、単位は度である。方位角データには、北向きを示す値が0となり、南向きを示す値が180となるよう方位角を示す値が設定される。
 上述のように、本実施形態に係るサーバ16には、複数の環境地図データ記憶部80が含まれている。そして、複数の環境地図データ記憶部80には、それぞれ、ユークリッド座標系での原点に対応付けられる地理的座標系で表現された位置が互いに異なる環境地図を示す環境地図データが記憶される。
 センシングデータ取得部70は、本実施形態では例えば、センサ部38によるセンシング結果を示すセンシングデータを取得する。
 センシングデータ取得部70が取得するセンシングデータには、例えば、トラッカー12のセンサ部38に含まれるカメラにより撮影される画像が含まれていてもよい。
 また、センシングデータ取得部70が取得するセンシングデータに、トラッカー12のセンサ部38に含まれるカメラやデプスセンサにより計測されるデプスデータが含まれていてもよい。
 また、センシングデータ取得部70が取得するセンシングデータに、トラッカー12のセンサ部38に含まれる地磁気センサやジャイロコンパスにより計測されるトラッカー12の方位を示すデータが含まれていてもよい。
 また、センシングデータ取得部70が取得するセンシングデータに、センサ部38に含まれる慣性センサにより計測されるトラッカー12の加速度、回転量、移動量などを示すデータが含まれていてもよい。
 また、センシングデータ取得部70が取得するセンシングデータに、センサ部38に含まれるGPSモジュールにより計測されるトラッカー12の緯度及び経度を示すデータが含まれていてもよい。
 また、センシングデータ取得部70が取得するセンシングデータにセンサ部38に含まれる標高センサにより計測される標高を示すデータが含まれていてもよい。
 また、センシングデータ取得部70が取得するセンシングデータに、特徴点群(キーフレーム)が含まれていてもよい。
 なお、センシングデータが示す緯度及び経度の精度を高めるため、トラッカー12が、無線スポットを用いた位置推定サービスや、5G環境のモバイルエッジサーバの識別子などを活用してもよい。
 センシングデータ送信部72は、本実施形態では例えば、センシングデータ取得部70が取得するセンシングデータをサーバ16に送信する。
 センシングデータ受信部82は、本実施形態では例えば、トラッカー12から送信されるセンシングデータを受信する。
 SLAM処理実行部84は、本実施形態では例えば、センシングデータ受信部82が受信するセンシングデータに基づいて、SLAM(Simultaneous Localization and Mapping)処理を実行する。本実施形態に係るSLAM処理には、例えば、環境地図データ(キーフレームデータ、パブリックポーズデータ、及び、ジオポーズデータ)の生成処理が含まれる。また、当該SLAM処理には、トラッカー12により取得されるセンシングデータと、上述の環境地図データと、に基づいて、ユークリッド座標系で表現されたトラッカー12の位置を推定する自己位置推定処理が含まれる。なお、当該SLAM処理には、リロカライズ処理、ループクロージング処理、3Dメッシュ化処理、物体認識処理などが含まれていてもよい。
 また、当該SLAM処理に、平面検出/3Dメッシュのセグメンテーション処理が含まれていてもよい。平面検出/3Dメッシュのセグメンテーション処理とは、地面、壁などといった連続した平面を検出して、全体の3Dメッシュを、地面、建物、木、などといった個々の3Dメッシュに分割する処理を指す。また、当該SLAM処理に、3Dメッシュの最適化処理が含まれていてもよい。3Dメッシュの最適化処理とは、3Dメッシュから、移動体と推定される部分や、ノイズなどによるゴミを除去したり、ポリゴン数を減らしたり、メッシュの表面を滑らかにしたりする処理を指す。また、当該SLAM処理に、テクスチャ生成処理が含まれていてもよい。テクスチャ生成処理とは、メッシュの頂点の色に基づいて3Dメッシュに対するテクスチャイメージを生成する処理を指す。
 本実施形態では例えば、SLAM処理実行部84によって生成されるパブリックポーズデータに含まれるX座標値データ、Y座標値データ、Z座標値データ、回転行列データのそれぞれには、暫定的な値が設定される。これらの値は、後述するように、環境地図データ更新部86によって、後述する共有ユークリッド座標系で表現された位置や向きを示す値に更新される。
 例えば、生成されるパブリックポーズデータに含まれるX座標値データ、Y座標値データ、Z座標値データのそれぞれが示す位置は、当該パブリックポーズデータに対応付けられるセンシングデータを生成したトラッカー12に固有の座標系で表現される。例えば、トラッカー12の起動時の左手方向が正方向となるようX座標値データの値は設定される。また、トラッカー12の起動時の鉛直上方向が正方向となるようY座標値データの値は設定される。また、トラッカー12の起動時の正面方向が正方向となるようZ座標値データの値は設定される。
 また、生成されるパブリックポーズデータに含まれる回転行列データが示す向きも、当該パブリックポーズデータに対応付けられるセンシングデータを生成したトラッカー12に固有の座標系で表現される。例えば、トラッカー12の起動時の正面方向が単位行列となるよう回転行列データの値は設定される。
 また、SLAM処理実行部84によって生成されるジオポーズデータに含まれる緯度データ、経度データ、標高データ、方位角データのそれぞれには、暫定的な値が設定される。これらの値は、後述するように、環境地図データ更新部86によって、より精度の高い値に更新される。また、当該ジオポーズデータに含まれるコンバージョンフラグの値には0が設定される。
 例えば、ジオポーズデータに含まれる緯度データの値、経度データの値、標高データの値、方位角データの値には、それぞれ、当該ジオポーズデータに対応付けられるセンシングデータが示す緯度の値、経度の値、標高の値、方位角の値が設定される。センシングデータに基づいて生成されるジオポーズデータの精度は、トラッカー12のセンシングの精度に依存しており、一般的に、環境地図と地図サービス18によって提供される地図データが示す地図との的確な対応付けが可能なほど充分であるとはいえない。
 また、画像認識技術等を用いることで、トラッカー12によって撮影された画像から所定のランドマークが検出されてもよい。そして、地図サービス18によって提供される地図を参照して、当該ランドマークの緯度及び経度などといった、地理的な位置が特定されてもよい。そして、このようにして特定される地理的な位置を示す値が、生成されるジオポーズデータの暫定的な値として設定されてもよい。
 そして、SLAM処理実行部84は、トラッカー12により取得されるセンシングデータに基づいて特定される地理的位置に基づいて、複数の環境地図データ記憶部80にそれぞれ記憶されている複数の環境地図データのうちから、当該地理的位置に対応付けられる環境地図データを決定する。
 例えば、SLAM処理実行部84は、このようにして設定されるジオポーズデータの値が示す地理的位置に基づいて、複数の環境地図データ記憶部80のうちから、関連付けられている地理的範囲に当該地理的位置が含まれる環境地図データ記憶部80を特定する。
 そして、SLAM処理実行部84は、生成されたキーフレームデータを、特定された環境地図データ記憶部80に含まれるキーフレームデータ記憶部80aに記憶させる。また、SLAM処理実行部84は、生成されたパブリックポーズデータを、特定された環境地図データ記憶部80に含まれるパブリックポーズデータ記憶部80bに記憶させる。また、SLAM処理実行部84は、生成されたジオポーズデータを、特定された環境地図データ記憶部80に含まれるジオポーズデータ記憶部80cに記憶させる。
 なお、SLAM処理実行部84は、特定された環境地図データ記憶部80に既に記憶されている環境地図データに基づいて、生成されたキーフレームデータの登録要否を判定してもよい。そして、登録が必要であると判定される場合に、SLAM処理実行部84は、生成されたキーフレームデータ、パブリックポーズデータ、及び、ジオポーズデータを、環境地図データ記憶部80に記憶させてもよい。
 環境地図データ更新部86は、本実施形態では例えば、ジオポーズデータ、及び、パブリックポーズデータの更新処理を実行する。
 環境地図データ更新部86は、例えば、環境地図データが示す環境地図に含まれる特徴点群と、所与の地図サービス18が提供する所与の地図データが示す地図と、に基づいて、地理的座標系で表現された当該特徴点群に対応する位置及び向きを推定する。
 ここで例えば、環境地図データ更新部86は、コンバージョンフラグの値が0であるジオポーズデータに対応付けられるキーフレームデータを特定する。そして、環境地図データ更新部86は、特定されるキーフレームデータに含まれる複数の特徴点データのそれぞれが示す特徴点群を重力軸(鉛直上方向の軸)に対して直交する平面に投影した様子を表すオリジナル投影画像を生成する。図10は、このようにして生成されるオリジナル投影画像の一例を示す図である。図10では、特徴点が黒色の点で表現されている。
 そして、環境地図データ更新部86は、pix2pix等の学習済機械学習モデルを用いた画像処理技術などの所定の画像処理技術を用いて、オリジナル投影画像において線状の道路と推定される部分が識別して示されている加工投影画像を生成する。図11は、加工投影画像の一例を示す図である。
 そして、環境地図データ更新部86は、本実施形態では例えば、当該キーフレームデータに対応付けられるジオポーズデータの値に基づいて、地図サービス18から所定の大きさの領域の地図を表す地図データを取得する。環境地図データ更新部86は、例えば、ジオポーズデータの緯度データが示す緯度と経度データが示す経度との組合せに対応する地理的位置を中心とする、一辺の長さが100メートルである正方形領域の地図を表す地図データを取得する。
 そして、環境地図データ更新部86は、本実施形態では例えば、取得される地図データに基づいて、所定のストリート抽出技術を用いて、当該地図データが表す地図における道路の部分が識別して示されている地図画像を生成する。
 そして、環境地図データ更新部86は、例えば、加工投影画像を圧縮することで、第1解像度の第1投影画像を生成する。そして、環境地図データ更新部86は、地図画像を圧縮することで、第1解像度の第1参照画像を生成する。ここでは例えば、10メートル四方の領域が100×100ピクセルに相当する解像度の第1投影画像、及び、第1参照画像が生成される。
 そして、環境地図データ更新部86は、第1投影画像と、第1参照画像と、に基づいて、地理的座標系で表現された当該特徴点群に対応する向きを推定する。例えば、第1投影画像と第1参照画像とで向きのマッチングを行うことで、地図データが示す地図におけるオリジナル投影画像の向きが推定される。
 そして、環境地図データ更新部86は、例えば、加工投影画像を圧縮することで、上述の第1解像度より解像度が高い第2解像度の第2投影画像を生成する。そして、環境地図データ更新部86は、地図画像を圧縮することで、上述の第1解像度より解像度が高い第2解像度の第2参照画像を生成する。ここでは例えば、10メートル四方の領域が10000×10000ピクセルに相当する解像度の第2投影画像、及び、第2参照画像が生成される。
 そして、環境地図データ更新部86は、第2投影画像と、第2参照画像と、上述のようにして推定された、地理的座標系で表現された当該特徴点群に対応する向きと、に基づいて、地理的座標系で表現された特徴点群に対応する位置を推定する。例えば、上述のようにして推定された向きに応じた回転がされた第2投影画像と第2参照画像とで位置のマッチングを行うことで、地図データが示す地図におけるオリジナル投影画像の位置(東西方向及び南北方向における位置)が推定される。
 このようにして、地図データが示す地図内におけるオリジナル投影画像に対応付けられる領域、すなわち、地図データが示す地図内におけるオリジナル投影画像の位置及び向きが推定される。図12は、地図データが示す地図内における、図10に示すオリジナル投影画像に対応付けられる領域Rの一例を模式的に示す図である。本実施形態では、このようにして、キーフレームデータに含まれる複数の特徴点データのそれぞれが示す特徴点に対応付けられる地理的座標系で表現された位置及び向きが推定される。
 そして、環境地図データ更新部86は、推定される位置及び向きを当該特徴点群に対応付ける。例えば、環境地図データ更新部86は、上述のようにして推定される特徴点群に対応付けられる地理的座標系で表現された位置及び向きに基づいて、当該特定点群が示されたキーフレームデータに対応付けられるジオポーズデータの値を更新する。
 例えば、推定される位置及び向きに基づいて、当該特徴点群を示すキーフレームデータに対応付けられるセンシングデータのセンシング位置の緯度、経度、及び、当該センシングデータのセンシング方向の方位角が推定される。また、当該地図データを参照することで、当該センシング位置の標高が推定される。そして、推定されるセンシング位置の緯度、経度、標高、及び、推定されるセンシング方向の方位角をそれぞれ示すよう、当該キーフレームデータに対応付けられるジオポーズデータの緯度データ、経度データ、標高データ、及び、方位角データが更新される。
 ここで例えば、特徴点に対応付けられる位置及び向きの推定に失敗することがある。例えば、オリジナル投影画像に基づいて推定される道路に対応する、地図データに示されている道路が見つからない場合は、当該推定は失敗する。また例えば、オリジナル投影画像に基づいて推定される道路に対応する、地図データに示されている道路が複数特定される場合も、当該推定は失敗する。また例えば、向きや位置のマッチングの信頼度が低い場合も、当該推定は失敗する。
 ここで環境地図データ更新部86は、当該推定に失敗したジオポーズデータについては、当該推定に成功した複数(例えば2つ)のジオポーズデータの値を所定の規則に従って補間した値が設定されるよう更新してもよい。
 本実施形態では以上のようにして、所与の地図サービス18が提供する所与の地図データに基づいて、ジオポーズデータが更新される。
 そして、環境地図データ更新部86は、以上のようにして更新されたジオポーズデータに基づいて、当該ジオポーズデータに対応付けられるパブリックポーズデータを更新する。
 ここでは例えば、コンバージョンフラグの値に1が設定されているジオポーズデータ、及び、当該ジオポーズデータに対応付けられるパブリックポーズデータが参照先として決定される。そして、更新対象であるパブリックポーズデータは、当該パブリックポーズデータに対応付けられるジオポーズデータの値と参照先のジオポーズデータの値との差に基づいて、参照先のパブリックポーズデータと値が整合するよう更新される。
 本実施形態では、環境地図データ更新部86によるパブリックポーズデータの更新によって、当該パブリックポーズデータに含まれるX座標値データの値は東方向が正方向となるよう設定される。また、当該パブリックポーズデータに含まれるY座標値データの値は鉛直上方向が正方向となるよう設定される。また、当該パブリックポーズデータに含まれるZ座標値データの値は北方向が正方向となるよう設定される。
 ここで例えば、緯度1度の差が110.94297×1000メートルに相当し、経度1度の差が(1/360)×(cos(緯度×2π/360))×2π×6378137メートルに相当することに基づいて、パブリックポーズデータの値は更新される(下記の式(1)(2)参照)。このように、本実施形態では、緯度によって経度1度あたりの長さが異なることを考慮した変換式に基づく更新が行われる必要がある。
 なお、環境地図データ記憶部80に最初に記憶されるパブリックポーズデータについては、参照先がない。このようなパブリックポーズデータのX座標値データの値、Y座標値データの値、及び、Z座標値データの値については、所定値(例えば0、あるいは、生成時に設定されていた値)が設定されるようにしてもよい。
 また、環境地図データ更新部86によるパブリックポーズデータの更新によって、当該パブリックポーズデータに含まれる回転行列データの値は水平北方向が単位行列となるよう更新される。
 このようにして更新されたパブリックポーズデータは、既に登録されている他のパブリックポーズデータと共通のメートル単位系のユークリッド座標系で位置及び向きが表現されることとなる。
 本実施形態では、複数のトラッカー12のそれぞれについて、当該トラッカー12から送信されるセンシングデータに基づいて、上述の処理が実行される。その結果、更新されたパブリックポーズデータは、当該パブリックポーズデータが記憶される環境地図データ記憶部80にアクセスする複数のユーザシステム10で共有されるユークリッド座標系で位置及び向きが表現されることとなる。以下、このようにして複数のユーザシステム10で共有されるユークリッド座標系を共有ユークリッド座標系と呼ぶこととする。また、更新されたジオポーズデータは、複数のユーザシステム10で共有される地理的座標系で位置及び向きが表現されることとなる。
 そして、環境地図データ更新部86は、以上のようにして更新されたパブリックポーズデータに対応付けられるジオポーズデータに含まれるコンバージョンフラグの値を1に更新する。
 本実施形態では上述のように、SLAM処理実行部84によって自己位置推定処理が実行される。この自己位置推定処理では、例えば、SLAMの技術を用いることで、センシングデータ受信部82が受信するセンシングデータと、環境地図データ記憶部80に記憶されている環境地図データと、に基づいて、トラッカー12の位置及び向きが推定される。ここでは例えば、SLAM処理実行部84は、共有ユークリッド座標系で表現されたトラッカー12の位置及び向きを推定する。
 ここで、SLAM処理実行部84が、複数の環境地図データ記憶部80にそれぞれ記憶されている複数の環境地図データのうちからトラッカー12により取得されるセンシングデータに基づいて1つの環境地図データを特定してもよい。例えば、トラッカー12により取得されるセンシングデータが示す地理的位置を含む地理的範囲に関連付けられている環境地図データ記憶部80に記憶されている環境地図データが特定されるようにしてもよい。そして、特定される環境地図データと、当該センシングデータと、に基づいて、当該環境地図データにおける共有ユークリッド座標系で表現されたトラッカー12の位置を推定してもよい。
 また、ジオポーズデータに基づいて、地理的座標系で表現されたトラッカー12の位置及び向きの推定が可能であれば、SLAM処理実行部84は、地理的座標系で表現されたトラッカー12の位置及び向きも併せて推定する。例えば、SLAM処理において参照されるキーフレームデータに対応付けられるジオポーズデータのコンバージョンフラグの値が1である場合は、SLAM処理実行部84は、地理的座標系で表現されたトラッカー12の位置及び向きを推定してもよい。
 本実施形態に係るキーフレームデータには、共有ユークリッド座標系で位置及び向きが表現されたパブリックポーズデータだけでなく、地理的座標系で位置及び向きが表現されたジオポーズデータも対応付けられている。そのため、共有ユークリッド座標系で表現されたトラッカー12の位置及び向きだけでなく、地理的座標系で表現されたトラッカー12の位置及び向きも的確に推定できることとなる。なおここで、上述したように、緯度1度の差が110.94297×1000メートルに相当し、経度1度の差が(1/360)×(cos(緯度×2π/360))×2π×6378137メートルに相当することに基づいて、地理的座標系で表現されたトラッカー12の位置及び向きが推定されてもよい。
 そして、本実施形態では例えば、SLAM処理実行部84は、トラッカー12の位置及び向きが推定される度に、当該位置及び向きを示すトラッカー位置データを生成して、保持する。ここで、トラッカー位置データには、共有ユークリッド座標系又は地理的座標系のうちの一方又は両方で表現されたトラッカー12の位置及び向きが示されていてもよい。
 ターゲット位置データ取得部88は、本実施形態では例えば、地理的座標系で表現された位置を示すターゲット位置データを取得する。以下、ターゲット位置データに示されている、地理的座標系で表現された位置を、ターゲット位置と呼ぶこととする。ここで例えば、ターゲット位置データ取得部88は、対応する現実世界における位置に視覚情報を表示させる対象となるオブジェクトの地理的座標系で表現された位置を示すターゲット位置データを取得してもよい。
 例えば、ターゲット位置データ取得部88は、所定の条件を満足する、アンカー、地域、施設(店舗等)、などのオブジェクトに対応付けられる地図データが示す地図上における地理的位置を示すターゲット位置データを地図サービス18から取得する。ここで、ターゲット位置データ取得部88は、ターゲット位置に対応付けて地図サービス18に登録されている登録データに関連付けられたターゲット位置データを取得してもよい。登録データの例としては、例えば、ターゲット位置に対するコメントやレーティング、アイコン画像、3Dモデル、キャラクター、リンク(音声データ、動画、あるいは、Webページへのリンク)、QRコード(登録商標)、動作可能なスクリプト、などが挙げられる。
 また、ターゲット位置データ取得部88は、ターゲット位置に対応するアンカー、地域、施設等などのオブジェクトの名称などといった、ターゲット位置に対応する名称を示す名称データに関連付けられたターゲット位置データを取得してもよい。なお、名称データは、ターゲット位置に対応付けて地図サービス18に登録されているデータ、すなわち、上述の登録データであってもよい。
 また、ターゲット位置データ取得部88は、トラッカー12とは異なる端末14に表示された地図におけるターゲット位置を指定するユーザの操作に応じて、指定されるターゲット位置を示すターゲット位置データを取得してもよい。例えば、ターゲット位置データ取得部88は、図4に示すようにして端末14に表示された地図におけるユーザによって指定された地理的位置P1を示すターゲット位置データを端末14から受信してもよい。なお、このターゲット位置データに、上述の登録データや名称データが関連付けられていてもよい。
 座標変換部90は、本実施形態では例えば、ターゲット位置データ取得部88が取得するターゲット位置データと、環境地図データ記憶部80に記憶されている環境地図データと、に基づいて、ユークリッド座標系で表現されたターゲット位置を特定する。
 ここで、座標変換部90は、ターゲット位置データと、ユークリッド座標系で表現されたトラッカー12の位置と、地理的座標系で表現されたトラッカー12の位置と、に基づいて、ユークリッド座標系で表現されたターゲット位置を特定してもよい。
 また、座標変換部90は、複数の環境地図データ記憶部80にそれぞれ記憶されている複数の環境地図データのうちからターゲット位置データに基づいて1つの環境地図データを特定してもよい。例えば、ターゲット位置データが示す地理的位置を含む地理的範囲に関連付けられている環境地図データ記憶部80に記憶されている環境地図データが特定されるようにしてもよい。そして、特定される環境地図データと、当該センシングデータと、に基づいて、当該環境地図データにおけるユークリッド座標系で表現されたターゲット位置を特定してもよい。
 例えば、SLAM処理実行部84によって、共有ユークリッド座標系で表現されたトラッカー12の最新の位置及び向き、並びに、地理的座標系で表現されたトラッカー12の最新の位置及び向き、が推定されていることとする。
 この場合、例えば、座標変換部90は、まず、地理的座標系で表現されたトラッカー12の位置を標準ユークリッド座標系に変換した位置PG、及び、地理的座標系で表現されたトラッカー12の向き(回転行列)を標準ユークリッド座標系に変換した向きに対応するクォータニオンRGを以下の式(1)~(4)に従って算出する。ここで、標準ユークリッド座標系とは、緯度0度、経度0度、標高0に対応する位置が原点となるユークリッド座標系を指すこととする。
 (1)(PGのX座標値)=-((推定されたトラッカー12の経度)/360)×(cos(推定されたトラッカー12の緯度×2π/360))×2π×6378137[m]
 このように、PGのX座標値は、緯度によって経度1度あたりの長さが異なることが考慮された上で算出される。なお、6378137[m]は、地球の赤道半径の値である。
 (2)(PGのY座標値)=(推定されたトラッカー12の標高)[m]
 (3)(PGのZ座標値)=(推定されたトラッカー12の緯度)×110.94297×1000[m]
 なお、110.94297×1000[m]は、緯度1度当たりの長さを示す値である。
 (4)RG=Quaternion(0,(推定されたトラッカー12の方位角)×2π,0)
 式(4)によって、ヨー成分のみが指定された回転情報(クォータニオン)が生成される。
 そして、座標変換部90は、地理的座標系で表現されたターゲット位置を標準ユークリッド座標系に変換した位置GP1を以下の式(5)~(7)に従って算出する。
 (5)(GP1のX座標値)=-((ターゲット位置の経度)/360)×(cos(ターゲット位置の緯度×2π/360))×2π×6378137[m]
 (6)(GP1のY座標値)=(ターゲット位置の標高)[m]
 (7)(GP1のZ座標値)=(ターゲット位置の緯度)×110.94297×1000[m]
 そして、座標変換部90は、地理的座標系で表現されたターゲット位置を共有ユークリッド座標系で表現した位置PP1を以下の式(8)~(11)に従って算出する。以下の説明では、共有ユークリッド座標系で表現されたトラッカー12の位置をPPと表し、共有ユークリッド座標系で表現されたトラッカー12の向きに対応するクォータニオンをRPと表現することとする。
 (8)RPy=RP.getYaw()
 (8)に示す式によって、クォータニオンRPのヨー成分が抽出される。
 (9)ΔRgp=(RG^-1)×RPy
 ここで、(RG^-1)は、クォータニオンRGの逆クォータニオンを表している。
 (10)ΔPgp=(ΔRgp^-1)×PP-PG
 ここで、(ΔRgp^-1)は、クォータニオンΔRgpの逆クォータニオンを表している。
 (11)PP1=ΔRgp×(GP1+ΔPgp)
 以上のようにして、本実施形態によれば、地理的座標系で表現されたターゲット位置が共有ユークリッド座標系における位置に的確にマッピングされることとなる。
 サーバ表示制御部92は、本実施形態では例えば、ユークリッド座標系で表現されたターゲット位置に配置された視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像が、トラッカー12の表示部36に表示されるよう制御する。
 ここで、サーバ表示制御部92が、上述の登録データに応じた視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像が表示部36に表示されるよう制御してもよい。また、例えば、サーバ表示制御部92が、上述の名称データが示す名称が表された視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像が表示部36に表示されるよう制御してもよい。
 例えば、サーバ表示制御部92が、ターゲット位置データに関連付けられている、ターゲット位置に対するコメントやレーティングを表す文字列や画像が表示されるよう制御してもよい。また、サーバ表示制御部92が、ターゲット位置データに関連付けられている、アイコン画像、3Dモデル、キャラクターが表示されるよう制御してもよい。
 また、サーバ表示制御部92が、ターゲット位置データに関連付けられているリンク(音声データ、動画、あるいは、Webページへのリンク)が表示されるよう制御してもよい。この場合、ユーザによる当該リンクの選択操作に応じて、音声データや動画の再生、Webページの表示などが実行されるようにしてもよい。
 また、サーバ表示制御部92が、ターゲット位置データに関連付けられているQRコードが表示されるよう制御してもよい。この場合、ユーザによる当該リンクの選択操作に応じて、当該QRコードの読み取り結果に応じた処理が実行されてもよい。
 また、サーバ表示制御部92が、ターゲット位置データに関連付けられているスクリプトに対応するアイコン画像が表示されるよう制御してもよい。この場合、ユーザによる当該アイコン画像の選択操作に応じて、当該スクリプトが実行されるようにしてもよい。
 例えば、サーバ表示制御部92が、SLAM処理実行部84によるトラッカー位置データの生成に応じて、生成されたトラッカー位置データをトラッカー12に送信してもよい。
 また、サーバ表示制御部92は、座標変換部90によって共有ユークリッド座標系で表現されたターゲット位置の特定が行われる度に、共有ユークリッド座標系で表現されたターゲット位置を示す変換ターゲット位置データを生成してもよい。
 そして、サーバ表示制御部92は、例えば、変換ターゲット位置データの生成に応じて、生成された変換ターゲット位置データをトラッカー12に送信してもよい。ここで例えば、トラッカー12の最新の位置及び向きに基づいて特定される、共有ユークリッド座標系で表現されたターゲット位置を示す変換ターゲット位置データが、当該トラッカー12に送信されるようにしてもよい。
 ここで、サーバ表示制御部92は、当該ターゲット位置を示すターゲット位置データに関連付けられた名称データを、生成される変換ターゲット位置データに関連付けてもよい。そして、サーバ表示制御部92は、名称データに関連付けられた変換ターゲット位置データに送信してもよい。
 位置データ受信部74は、本実施形態では例えば、サーバ表示制御部92から送信されるトラッカー位置データを受信する。また、位置データ受信部74は、本実施形態では例えば、サーバ表示制御部92から送信される変換ターゲット位置データを受信する。
 画像生成部76は、本実施形態では例えば、ユークリッド座標系で表現されたターゲット位置に配置された視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像を生成する。以下、このようにして画像生成部76により生成される画像をターゲット画像と呼ぶこととする。
 トラッカー表示制御部78は、本実施形態では例えば、画像生成部76が生成するターゲット画像を表示部36に表示させる。
 ここで例えば、画像生成部76は、図13に示すような仮想空間Sを生成してもよい。図13に示す仮想空間Sには、位置データ受信部74が受信した最新のトラッカー位置データが示すトラッカー12の位置Q1と向きQ2、及び、位置データ受信部74が受信した変換ターゲット位置データに対応する位置Q3が共有ユークリッド座標系にマッピングされている。ここで、位置Q3は、変換ターゲット位置データが示す位置であってもよいし、変換ターゲット位置データが示す位置を所定の長さだけ高さ方向(Y軸に沿った正方向)にずらした位置であってもよい。
 そして、画像生成部76は、変換ターゲット位置データに関連付けられた名称データが示す名称の文字列を表す名称画像60が位置Q3に配置された仮想空間Sにおいて位置Q1から向きQ2を見た様子を表す画像を生成してもよい。
 ここで例えば、画像生成部76は、変換ターゲット位置データに関連付けられた名称データが表す名称の文字列を表す名称画像60が位置Q3に配置された仮想空間Sにおいて位置Q1から向きQ2を見た様子を表す、図14に示すような画像を生成してもよい。
 ここでトラッカー12がビデオシースルー型のヘッドマウントディスプレイである場合は、画像生成部76が、トラッカー12が備えるカメラがユーザの前方を撮影した画像と、図14に示す画像と、を重畳した画像であるターゲット画像を生成してもよい。そして、トラッカー表示制御部78が、このようにして生成されたターゲット画像を表示部36に表示させてもよい。
 一方、トラッカー12が光学シースルー型のヘッドマウントディスプレイである場合は、トラッカー表示制御部78が、図14に示す画像をターゲット画像として表示部36に表示させてもよい。
 また例えば、画像生成部76は、位置Q3の高さを変えながら数フレームにわたって、目印62が位置Q3に配置された仮想空間Sにおいて位置Q1から向きQ2を見た様子を表す、図15に示すような画像を生成してもよい。
 ここで上述のように、トラッカー12がビデオシースルー型のヘッドマウントディスプレイである場合は、画像生成部76が、トラッカー12が備えるカメラがユーザの前方を撮影した画像と、図15に示す画像と、を重畳した画像であるターゲット画像を生成してもよい。そして、トラッカー表示制御部78が、このようにして生成されたターゲット画像を表示部36に表示させてもよい。
 一方、トラッカー12が光学シースルー型のヘッドマウントディスプレイである場合は、トラッカー表示制御部78が、図15に示す画像をターゲット画像として表示部36に表示させてもよい。
 この場合は、例えば、りんごが落下する様子を表すアニメーションが表示部36に表示されることとなる。
 ここで、本実施形態に係るサーバ16で行われる、センシングデータの受信に応じたトラッカー位置データの送信処理の流れの一例を、図16に例示するフロー図を参照しながら説明する。
 まず、センシングデータ受信部82が、トラッカー12からセンシングデータを受信する(S101)。
 そして、SLAM処理実行部84が、S101に示す処理で受信したセンシングデータに基づいて、複数の環境地図データ記憶部80のうちから、当該センシングデータが示す地理的位置に対応する1つを決定する(S102)。
 そして、SLAM処理実行部84が、S102に示す処理で決定された環境地図データ記憶部80に記憶されている環境地図データと、S101に示す処理で受信したセンシングデータと、に基づくSLAM処理を実行する(S103)。S103に示す処理では、例えば、S101に示す処理で受信したセンシングデータに対応するセンシングが行われた際のトラッカー12の位置及び向きを推定する自己位置推定処理が実行される。
 ここでは、例えば、S102に示す処理で決定された環境地図データ記憶部80に記憶されているパブリックポーズデータでの位置及び向きの表現に用いられている共有ユークリッド座標系で表現されたトラッカー12の位置及び向きが推定される。なおこのとき、例えば、環境地図データ記憶部80に記憶されているジオポーズデータに基づいて、地理的座標系で表現されたトラッカー12の位置及び向きが推定可能であれば、地理的座標系で表現されたトラッカー12の位置及び向きが併せて推定される。
 なお、S103に示す処理では、必要に応じて、S101に示す処理で受信したセンシングデータに基づいて、新たなキーフレームIDが付与された、キーフレームデータ、パブリックポーズデータ、及び、コンバージョンフラグに値0が設定されたジオポーズデータが生成される。この場合、生成されたキーフレームデータは、S102に示す処理で決定された環境地図データ記憶部80に含まれるキーフレームデータ記憶部80aに記憶される。また、生成されたパブリックポーズデータは、S102に示す処理で決定された環境地図データ記憶部80に含まれるパブリックポーズデータ記憶部80bに記憶される。また、生成されたジオポーズデータは、S102に示す処理で決定された環境地図データ記憶部80に含まれるジオポーズデータ記憶部80cに記憶される。
 そして、SLAM処理実行部84が、S103に示す処理で推定されたトラッカー12の位置及び向きに基づいて、当該トラッカー12の位置及び向きを示すトラッカー位置データを生成する(S104)。このトラッカー位置データは、SLAM処理実行部84によって保持される。
 そして、サーバ表示制御部92が、S104に示す処理で生成されたトラッカー位置データを、S101に示す処理で受信したセンシングデータの送信元であるトラッカー12に送信して(S105)、本処理例に示す処理は終了される。
 次に、本実施形態に係るサーバ16で行われる、ジオポーズデータの更新処理の流れの一例を、図17A及び図17Bに例示するフロー図を参照しながら説明する。
 以下で説明する処理は、バックグラウンドで繰り返し実行されるようにしてもよい。また、以下で説明する処理は、例えば、ジオポーズデータ記憶部80cに新たなジオポーズデータが記憶されたことに応じて、当該ジオポーズデータに対して実行されるようにしてもよい。
 まず、環境地図データ更新部86が、環境地図データ記憶部80のジオポーズデータ記憶部80cに記憶されているジオポーズデータを取得する(S201)。ここで上述のように、ジオポーズデータ記憶部80cに新たに記憶されたジオポーズデータが取得されるようにしてもよい。
 そして、環境地図データ更新部86が、S201に示す処理で取得されたジオポーズデータのコンバージョンフラグの値が0であるか否かを確認する(S202)。
 コンバージョンフラグの値が1である場合は(S202:N)、本処理例に示す処理は終了される。
 コンバージョンフラグの値が0である場合は(S201:Y)、環境地図データ更新部86が、S201に示す処理で取得されたジオポーズデータとキーフレームIDが同じであるキーフレームデータを取得する(S203)。
 そして、環境地図データ更新部86が、S203に示す処理で取得されたキーフレームデータに含まれる複数の特徴点データが示す特徴点群に基づいて、上述のオリジナル投影画像を生成する(S204)。
 そして、環境地図データ更新部86が、S204に示す処理で生成されたオリジナル投影画像に基づいて、上述の加工投影画像を生成する(S205)。
 そして、環境地図データ更新部86が、S201に示す処理で取得されたジオポーズデータが示す地理的位置に基づいて、地図サービス18から一辺の長さが10メートルである正方形領域の地図を表す地図データを取得する(S206)。
 そして、環境地図データ更新部86が、S206に示す処理で取得された地図データに基づいて、上述の地図画像を生成する(S207)。
 そして、環境地図データ更新部86が、S205に示す処理で生成された加工投影画像を圧縮することで、上述の第1解像度の第1投影画像を生成する(S208)。
 そして、環境地図データ更新部86が、S207に示す処理で生成された地図画像を圧縮することで、上述の第1解像度の第1参照画像を生成する(S209)。
 そして、環境地図データ更新部86は、S203に示す処理で取得されたキーフレームデータに含まれる複数の特徴点データが示す特徴点群に対応する、地理的座標系で表現された向き(回転)を推定する(S210)。S210に示す処理では、例えば、第1投影画像と、第1参照画像と、のマッチングを行うことで、当該特徴点群に対応する、地理的座標系で表現された向き(回転)が推定される。
 そして、環境地図データ更新部86は、S205に示す処理で生成された加工投影画像を圧縮することで、上述の第2解像度の第2投影画像を生成する(S211)。
 そして、環境地図データ更新部86は、S207に示す処理で生成された地図画像を圧縮することで、上述の第2解像度の第2参照画像を生成する(S212)。
 そして、環境地図データ更新部86は、S203に示す処理で取得されたキーフレームデータに含まれる複数の特徴点データが示す特徴点群に対応する、地理的座標系で表現された位置を推定する(S213)。S213に示す処理では例えば、S210で推定された向き(回転)に対応する向きに回転された第2投影画像と、第2参照画像と、のマッチングを行うことで、当該特徴点群に対応する、地理的座標系で表現された位置が推定される。
 そして、環境地図データ更新部86は、例えば、S210に示す処理で推定された位置、及び、S213に示す処理で推定された向き(回転)を示すよう、S201に示す処理で取得されたジオポーズデータの値を更新する(S214)。S214に示す処理では、S201に示す処理で取得されたジオポーズデータのコンバージョンフラグの値についても1に更新される。そして、本処理例に示す処理は終了される。
 次に、本実施形態に係るユーザシステム10、及び、サーバ16で行われる、ターゲット画像の表示処理の流れの一例を、図18に例示するフロー図を参照しながら説明する。
 まず、ユーザが端末14に表示された地図における地理的位置P1であるターゲット位置を指定するタップ操作を行うと、端末14が、当該ターゲット位置を示すターゲット位置データを生成する(S301)。当該ターゲット位置データでは、ターゲット位置は、緯度、経度、標高などといった地理的座標系で表現されている。なお、このターゲット位置には、名称データが関連付けられていてもよい。
 そして、端末14が、ターゲット位置データをサーバ16に送信し、サーバ16のターゲット位置データ取得部88が、当該ターゲット位置データを受信する(S302)。
 そして、座標変換部90が、S302に示す処理で受信したターゲット位置データに基づいて、複数の環境地図データ記憶部80のうちから、当該ターゲット位置データが示す地理的位置に対応する1つを決定する(S303)。ここでは例えば、S302に示すターゲット位置データが示す地理的座標系で表現された地理的位置P1を含む地理的範囲に対応付けられている環境地図データ記憶部80が決定される。
 そして、座標変換部90が、S302に示す処理で受信したターゲット位置データが示す地理的座標系で表現されたターゲット位置に相当する、共有ユークリッド座標系で表現されたターゲット位置を特定する(S304)。
 そして、サーバ表示制御部92が、S304に示す処理で特定された、共有ユークリッド座標系で表現されたターゲット位置を示す変換ターゲット位置データを生成する(S305)。
 そして、サーバ表示制御部92が、S305に示す処理で生成された変換ターゲットデータをトラッカー12に送信し、トラッカー12の位置データ受信部74が、当該変換ターゲットデータを受信する(S306)。
 そして、画像生成部76が、S306に示す処理で受信した変換ターゲットデータ、及び、最新のトラッカー位置データ(トラッカー12が最後に受信したトラッカー位置データ)に基づいて、ターゲット画像を生成する(S307)。
 そして、トラッカー表示制御部78が、S307に示す処理で生成されたターゲット画像を表示部36に表示させて(S308)、本処理例に示す処理は終了される。
 本実施形態において、ユーザシステム10に含まれる端末14に表示された地図における地理的位置P1を指定するタップ操作に応じて、当該ユーザシステム10に含まれるトラッカー12の表示部36にターゲット画像が表示されてもよい。
 この場合、例えば、ユーザシステム10に含まれる端末14に表示された地図における地理的位置P1を指定するタップ操作に応じて、当該ユーザシステム10に含まれるトラッカー12について推定された最新の位置及び向きと、当該地理的位置P1であるターゲット位置を示すターゲット位置データと、に基づいて、共有ユークリッド座標系で表現されたターゲット位置が特定されてもよい。そして、特定されたターゲット位置を示す変換ターゲット位置データが生成されてもよい。そして、当該変換ターゲット位置データが、当該ユーザシステム10に含まれるトラッカー12に送信されてもよい。そして、当該トラッカー12について推定された最新の位置及び向きを示すトラッカー位置データと、当該変換ターゲット位置データと、に基づいて、ターゲット画像が生成されてもよい。そして、生成されたターゲット画像が当該トラッカー12の表示部36に表示されてもよい。
 また、本実施形態において、サーバ表示制御部92が、実空間における所与の範囲に存在する複数のトラッカー12のそれぞれが備える表示部36に、当該トラッカー12に応じたターゲット画像が表示されるよう制御してもよい。例えば、サーバ表示制御部92が、端末14に表示された地図における地理的位置P1を指定するタップ操作に応じて、複数のトラッカー12の表示部36にターゲット画像が表示されるよう制御してもよい。この場合、複数のトラッカー12に対して変換ターゲット位置データが送信されるようにしてもよい。
 例えば、複数のトラッカー12のそれぞれについて、当該トラッカー12の最新の位置及び向きと、地理的位置P1であるターゲット位置を示すターゲット位置データと、に基づいて、共有ユークリッド座標系で表現されたターゲット位置が特定されてもよい。そして、複数のトラッカー12のそれぞれについて、当該トラッカー12の最新の位置及び向きに基づいて特定されたターゲット位置を示す変換ターゲット位置データが、当該トラッカー12に送信されてもよい。
 ここで例えば、サーバ表示制御部92が、ターゲット位置までの距離が所定距離以下であるトラッカー12の表示部36にターゲット画像が表示されるよう制御してもよい。あるいは、サーバ表示制御部92が、ターゲット位置に基づいて決定される環境地図データ記憶部80で用いられている共有ユークリッド座標系に最新の位置がマッピングされているトラッカー12の表示部36にターゲット画像が表示されるよう制御してもよい。
 以上で説明したように、本実施形態では、地理的座標系で表現されたターゲット位置を示すターゲット位置データと環境地図データとに基づいて、ユークリッド座標系で表現されたターゲット位置が特定される。このようにして、トラッカー12の位置とターゲット位置の両方が共有のユークリッド座標系に的確にマッピングされる。このようにして本実施形態によれば、所与の地理的位置を環境地図に的確にマッピングさせることができることとなる。
 また、本実施形態ではユークリッド座標系で表現されたターゲット位置に配置された視覚情報をユークリッド座標系で表現されたトラッカー12の位置から見た様子を表す画像が表示される。このようにして本実施形態によれば、所与の地理的位置に対応する現実世界における位置に的確に視覚情報を表示させることができることとなる。
 本実施形態は、例えば、自動運転、ファクトリーオートメーション(FA)、ドローンの自動操縦、機器の遠隔操作や遠隔指示、などといった様々な分野での応用が期待される
 なお、本発明は上述の実施形態に限定されるものではない。
 例えば、トラッカー12、端末14、サーバ16の役割分担は、以上で説明したものに限定されない。例えば、サーバ16がターゲット画像を生成してもよい。
 また、ジオポーズデータに、当該ジオポーズデータに対応付けられるセンシングデータが生成される際におけるトラッカー12の仰俯角を示す仰俯角データが含まれていてもよい。
 なお、本実施形態において、ユーザの自宅などといったプライベートな空間についてのセンシングデータについては、サーバ16にアップロードされないようにしてもよい。
また、プライベートな空間についてのキーフレームデータ、パブリックポーズデータ、ジオポーズデータについては、他のユーザがアクセスできないようにしてもよい。
 また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。

Claims (14)

  1.  ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データを記憶する環境地図データ記憶部と、
     トラッカーにより取得されるセンシングデータと、前記環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定するトラッカー位置推定部と、
     前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得するターゲット位置データ取得部と、
     前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する座標変換部と、
     を含むことを特徴とするマッピング装置。
  2.  前記ユークリッド座標系で表現された前記ターゲット位置に配置された視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が、前記トラッカーが備える表示部に表示されるよう制御する表示制御部、をさらに含む、
     ことを特徴とする請求項1に記載のマッピング装置。
  3.  前記ターゲット位置データ取得部は、前記ターゲット位置に対応付けて所与の地図サービスに登録されている登録データに関連付けられた前記ターゲット位置データを取得し、
     前記表示制御部は、前記登録データに応じた前記視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が前記表示部に表示されるよう制御する、
     ことを特徴とする請求項2に記載のマッピング装置。
  4.  前記ターゲット位置データ取得部は、前記ターゲット位置に対応する名称を示す名称データに関連付けられた前記ターゲット位置データを取得し、
     前記表示制御部は、前記名称データが示す名称が表された前記視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像が前記表示部に表示されるよう制御する、
     ことを特徴とする請求項2に記載のマッピング装置。
  5.  前記表示制御部は、実空間における所与の範囲に存在する複数の前記トラッカーのそれぞれが備える表示部に当該トラッカーに応じた前記画像が表示されるよう制御する、
     ことを特徴とする請求項2から4のいずれか一項に記載のマッピング装置。
  6.  前記表示制御部は、前記画像を前記表示部に表示させる前記トラッカーに、前記ユークリッド座標系で表現された前記トラッカーの位置を示すトラッカー位置データ、及び、前記ユークリッド座標系で表現された前記ターゲット位置を示す変換ターゲット位置データを送信する、
     ことを特徴とする請求項2から5のいずれか一項に記載のマッピング装置。
  7.  前記ターゲット位置データ取得部は、前記トラッカーとは異なる端末に表示された地図における前記ターゲット位置を指定するユーザの操作に応じて、指定される前記ターゲット位置を示す前記ターゲット位置データを取得する、
     ことを特徴とする請求項1から6のいずれか一項に記載のマッピング装置。
  8.  前記トラッカー位置推定部は、前記センシングデータと、前記環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置、及び、前記地理的座標系で表現された前記トラッカーの位置を推定し、
     前記座標変換部は、前記ターゲット位置データと、前記ユークリッド座標系で表現された前記トラッカーの位置と、前記地理的座標系で表現された前記トラッカーの位置と、に基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する、
     ことを特徴とする請求項1から7のいずれか一項に記載のマッピング装置。
  9.  前記マッピング装置は、前記環境地図データ記憶部を複数含んでおり、
     前記複数の前記環境地図データ記憶部は、それぞれ、前記ユークリッド座標系での原点に対応付けられる前記地理的座標系で表現された位置が互いに異なる前記環境地図を示す前記環境地図データを記憶し、
     前記トラッカー位置推定部は、前記複数の前記環境地図データ記憶部にそれぞれ記憶されている複数の前記環境地図データのうちから前記トラッカーにより取得される前記センシングデータに基づいて特定される前記環境地図データと、当該センシングデータと、に基づいて、当該環境地図データにおける前記ユークリッド座標系で表現された前記トラッカーの位置を推定し、
     前記座標変換部は、前記複数の前記環境地図データ記憶部にそれぞれ記憶されている複数の前記環境地図データのうちから前記ターゲット位置データに基づいて特定される前記環境地図データと、当該ターゲット位置データと、に基づいて、当該環境地図データにおける前記ユークリッド座標系で表現された前記ターゲット位置を特定する、
     ことを特徴とする請求項1から8のいずれか一項に記載のマッピング装置。
  10.  前記環境地図に含まれる特徴点群と、所与の地図サービスが提供する所与の地図データが示す地図と、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する位置及び向きを推定する対応推定部と、
     推定される当該位置及び当該向きを前記特徴点群に対応付ける環境地図データ更新部と、をさらに含む、
     ことを特徴とする請求項1から9のいずれか一項に記載のマッピング装置。
  11.  前記対応推定部は、前記特徴点群を重力軸に対して直交する平面に投影した様子を表す第1解像度の画像である第1投影画像と、前記地図に基づいて生成される前記第1解像度の画像である第1参照画像と、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する向きを推定し、
     前記対応推定部は、前記特徴点群を前記平面に投影した様子を表す前記第1解像度よりも解像度が高い第2解像度の画像である第2投影画像と、前記地図に基づいて生成される前記第2解像度の画像である第2参照画像と、推定される前記向きと、に基づいて、前記地理的座標系で表現された前記特徴点群に対応する位置を推定する、
     ことを特徴とする請求項10に記載のマッピング装置。
  12.  センサ部と、表示部と、を備えたトラッカーであって、
     前記センサ部により取得されるセンシングデータに基づいて推定されるユークリッド座標系で表現された前記トラッカーの位置と、前記トラッカーとは異なる端末に表示された地図においてユーザに指定される地理的位置であるターゲット位置と、に基づいて、前記ユークリッド座標系で表現された前記ターゲット位置に配置された視覚情報を前記ユークリッド座標系で表現された前記トラッカーの位置から見た様子を表す画像を前記表示部に表示させる表示制御部、をさらに備える、
     ことを特徴とするトラッカー。
  13.  トラッカーにより取得されるセンシングデータと、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定するステップと、
     前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得するステップと、
     前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定するステップと、
     を含むことを特徴とするマッピング方法。
  14.  トラッカーにより取得されるセンシングデータと、ユークリッド座標系で表現された位置及び地理的座標系で表現された位置が対応付けられた環境地図を示す環境地図データと、に基づいて、前記ユークリッド座標系で表現された前記トラッカーの位置を推定する手順、
     前記地理的座標系で表現されたターゲット位置を示すターゲット位置データを取得する手順、
     前記ターゲット位置データと前記環境地図データとに基づいて、前記ユークリッド座標系で表現された前記ターゲット位置を特定する手順、
     をコンピュータに実行させることを特徴とするプログラム。
PCT/JP2020/030595 2020-08-11 2020-08-11 マッピング装置、トラッカー、マッピング方法及びプログラム WO2022034638A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/030595 WO2022034638A1 (ja) 2020-08-11 2020-08-11 マッピング装置、トラッカー、マッピング方法及びプログラム
US18/012,457 US20230314171A1 (en) 2020-08-11 2020-08-11 Mapping apparatus, tracker, mapping method, and program
JP2022542525A JP7495502B2 (ja) 2020-08-11 2020-08-11 マッピング装置、トラッカー、マッピング方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/030595 WO2022034638A1 (ja) 2020-08-11 2020-08-11 マッピング装置、トラッカー、マッピング方法及びプログラム

Publications (1)

Publication Number Publication Date
WO2022034638A1 true WO2022034638A1 (ja) 2022-02-17

Family

ID=80247939

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/030595 WO2022034638A1 (ja) 2020-08-11 2020-08-11 マッピング装置、トラッカー、マッピング方法及びプログラム

Country Status (3)

Country Link
US (1) US20230314171A1 (ja)
JP (1) JP7495502B2 (ja)
WO (1) WO2022034638A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024048086A1 (ja) * 2022-08-30 2024-03-07 ソニーグループ株式会社 情報処理装置、情報処理方法、および記憶媒体

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019167213A1 (ja) * 2018-03-01 2019-09-06 株式会社ソニー・インタラクティブエンタテインメント 位置推定装置、トラッカー、位置推定方法及びプログラム
JP2020503507A (ja) * 2016-12-23 2020-01-30 深▲せん▼前海達闥云端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co.,Ltd. 測位方法、端末及びサーバー

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020503507A (ja) * 2016-12-23 2020-01-30 深▲せん▼前海達闥云端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co.,Ltd. 測位方法、端末及びサーバー
WO2019167213A1 (ja) * 2018-03-01 2019-09-06 株式会社ソニー・インタラクティブエンタテインメント 位置推定装置、トラッカー、位置推定方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024048086A1 (ja) * 2022-08-30 2024-03-07 ソニーグループ株式会社 情報処理装置、情報処理方法、および記憶媒体

Also Published As

Publication number Publication date
JP7495502B2 (ja) 2024-06-04
JPWO2022034638A1 (ja) 2022-02-17
US20230314171A1 (en) 2023-10-05

Similar Documents

Publication Publication Date Title
US12067772B2 (en) Methods and apparatus for venue based augmented reality
CA2949543C (en) Platform for constructing and consuming realm and object feature clouds
CN109931945B (zh) Ar导航方法、装置、设备和存储介质
US10127721B2 (en) Method and system for displaying and navigating an optimal multi-dimensional building model
US20190356936A9 (en) System for georeferenced, geo-oriented realtime video streams
CN108474666A (zh) 用于在地图显示中定位用户的系统和方法
JP2022077976A (ja) 画像ベースの測位方法及びシステム
KR100822814B1 (ko) Gps/ins 장비를 이용한 측량 정보 및 gis 지리정보, 실시간 영상정보를 결합한 공간정보 서비스방법
Cavallo et al. Riverwalk: Incorporating historical photographs in public outdoor augmented reality experiences
CN107885763B (zh) 室内图中兴趣点信息的更新方法、装置及计算机可读介质
Hansen et al. Augmented reality for subsurface utility engineering, revisited
CN109459029A (zh) 一种用于确定目标对象的导航路线信息的方法与设备
CN110749308B (zh) 使用消费级gps和2.5d建筑物模型的面向slam的室外定位方法
US20220138467A1 (en) Augmented reality utility locating and asset management system
CN105095314A (zh) 一种兴趣点的标注方法、终端、导航服务器及导航系统
CN112714266A (zh) 标注信息展示方法、装置、电子设备及存储介质
Liarokapis et al. Mobile augmented reality techniques for geovisualisation
KR20070087317A (ko) 실제영상에 가상매체를 표시할 수 있는 디지털 기기 및 그표시방법
WO2022034638A1 (ja) マッピング装置、トラッカー、マッピング方法及びプログラム
KR20150077607A (ko) 증강현실을 이용한 공룡 유적지 체험 서비스 제공 시스템 및 그 방법
KR102484772B1 (ko) 맵 생성 방법 및 이를 이용한 이미지 기반 측위 시스템
US20230021556A1 (en) Environmental map management apparatus, environmental map management method, and program
JP4896762B2 (ja) 画像処理装置および画像処理プログラム
CN112558008A (zh) 基于光通信装置的导航方法、系统、设备及介质
CN101738192B (zh) 一种基于计算机模型的信息映射方法、设备及系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20949500

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022542525

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20949500

Country of ref document: EP

Kind code of ref document: A1