WO2022172831A1 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
WO2022172831A1
WO2022172831A1 PCT/JP2022/004134 JP2022004134W WO2022172831A1 WO 2022172831 A1 WO2022172831 A1 WO 2022172831A1 JP 2022004134 W JP2022004134 W JP 2022004134W WO 2022172831 A1 WO2022172831 A1 WO 2022172831A1
Authority
WO
WIPO (PCT)
Prior art keywords
map
information processing
self
information
autonomous mobile
Prior art date
Application number
PCT/JP2022/004134
Other languages
English (en)
French (fr)
Inventor
貴之 猿田
祐樹 廣藤
優希 井上
Original Assignee
株式会社Preferred Networks
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 株式会社Preferred Networks filed Critical 株式会社Preferred Networks
Publication of WO2022172831A1 publication Critical patent/WO2022172831A1/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/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/16Anti-collision systems

Definitions

  • the present disclosure relates to an information processing device.
  • SLAM Simultaneous Localization And Mapping
  • the problem of the present disclosure is to reduce the burden on the user of an autonomous mobile object, for example, when the environment has changed significantly since the pre-map generation.
  • the information processing device has the features described in the claims.
  • FIG. 1 is a diagram illustrating a configuration of an information processing system including an information processing device according to an embodiment and an example of a hardware configuration of the information processing device.
  • FIG. 2 is a diagram illustrating an example of functional blocks in a processor of the information processing apparatus according to the embodiment;
  • FIG. 3 is a diagram for explaining an example of tracking processing.
  • FIG. 4 is a diagram for explaining an example of bundle adjustment processing according to the embodiment.
  • FIG. 5 is a diagram for explaining an example of bundle adjustment processing according to the embodiment.
  • FIG. 6 is a diagram showing an example of a pose graph for explaining map update processing.
  • FIG. 7 is a diagram showing an example of a pose graph for explaining map update processing.
  • FIG. 8 is a flow chart showing the flow of SLAM including new map automatic generation and map automatic update executed by the information processing apparatus according to the embodiment.
  • FIG. 1 is a diagram showing the configuration of an information processing system 1 including an information processing device 2 according to this embodiment and an example of the hardware configuration of the information processing device 2.
  • the information processing system 1 includes an information processing device 2 , an external device 7 , a detection device 8 , a display device 211 and an input device 213 .
  • the information processing apparatus 2 uses Visual SLAM, which executes self-position estimation and map creation in parallel using camera images, as an example.
  • an embodiment in which the information processing system 1 is mounted on an autonomous mobile body will be described as an example.
  • an autonomous mobile object is an object that can automatically advance (autonomously advance) without human intervention.
  • Autonomous mobile objects include, for example, vehicles, flying objects (manned airplanes, unmanned airplanes (eg, UAV (Unmanned Aerial Vehicle), drones)), robots, and the like.
  • UAV Unmanned Aerial Vehicle
  • robots and the like.
  • a case where the autonomous mobile body is an autonomous mobile robot will be described below as an example. To simplify the explanation, it is assumed that the position and orientation of the autonomous mobile robot and the position and orientation of the detection device 8 are the same.
  • the information processing device 2 uses Visual SLAM to control the map used to control the autonomous mobile robot.
  • the information processing device 2 executes SLAM including automatic new map generation and automatic map update. New map automatic generation and map automatic update will be explained later in detail.
  • the external device 7 is connected to the information processing device 2 via the network 5 .
  • the external device 7 is an information processing device such as a server device that exchanges information with the information processing device 2, for example.
  • the detection device 8 is a sensor that detects the space and objects around the autonomous mobile robot, and generates sensor data necessary for SLAM.
  • the detection device 8 has a stereo camera and an IMU sensor (gyro/acceleration sensor).
  • the detection device 8 generates sensor data including left and right camera data captured by the stereo camera and angular velocity and acceleration acquired by the IMU sensor for each frame, and sequentially outputs the sensor data to the information processing device 2 .
  • the detection device 8 is also simply called a camera.
  • the display device 211 is, for example, a LCD (Liquid Crystal Display), a CRT (Cathode Ray Tube), a PDP (Plasma Display Panel), an organic EL (Electro Luminescence) display, or the like.
  • the display device 211 displays the generated map or the like in a predetermined form under the control of the information processing device 2 .
  • the input device 213 receives various instructions and information inputs from the user.
  • the input device 213 includes, for example, a trackball, a switch button, a mouse, a keyboard, a touch pad that performs input operations by touching an operation surface, a touch screen that integrates a display screen and a touch pad, and a non-sensor using an optical sensor. It is implemented by a contact input circuit, an audio input circuit, and the like.
  • the information processing device 2 includes a processor 31 , a main storage device 33 , an auxiliary storage device 35 , a network interface 37 and a device interface 39 .
  • Processor 31 , main storage device 33 , auxiliary storage device 35 , network interface 37 and device interface 39 are connected via bus 41 .
  • the processor 31 is a processing circuit that comprehensively controls the information processing device 2 and the detection device 8, the display device 211, and the input device 213 connected to the information processing device 2.
  • FIG. 2 is a diagram showing an example of functional blocks in the processor 31 of the information processing device 2 according to the embodiment.
  • the processor 31 includes, as an example, a control function 31a, an acquisition function 31b, a tracking function 31c, a tracking accuracy determination function 31d, a keyframe determination function 31e, a bundle adjustment function 31f, a bundle adjustment accuracy determination function 31g, a pre-map localization function 31h, a loop It has a confinement determination function 31i, a map generation function 31j, a new map generation determination function 31k, and a map update function 31m.
  • Each function of the processor 31 is stored in the main storage device 33 in the form of a computer-executable program, for example. That is, the processor 31 reads out the programs from the main storage device 33 and executes them to implement functions corresponding to each program. In other words, the processor 31 having read each program has each function shown in the processor 31 of FIG.
  • the control function 31a and the acquisition function 31b are examples of a control unit and an acquisition unit, respectively.
  • the tracking function 31c and the bundle adjustment function 31f are an example of an information generation unit.
  • the tracking accuracy determination function 31d, the bundle adjustment accuracy determination function 31g, and the new map generation determination function 31k are examples of determination units.
  • the map generation function 31j and the map update function 31m are examples of a generation unit and an update unit, respectively.
  • the control function 31a of the present embodiment performs overall control of the information processing device 2 and the detection device 8, the display device 211, and the input device 213 connected to the information processing device 2.
  • the acquisition function 31b of this embodiment acquires sensor data related to the environment from the detection device 8 provided on the autonomous mobile body. That is, the acquisition function 31b acquires a plurality of frames of sensor data using the detection device 8 as a sensor provided in the autonomous mobile robot. More specifically, the acquisition function 31b acquires sensor data, which is data necessary for Visual SLAM, from the detection device 8 and sends it to the tracking function 31c.
  • the tracking function 31c of this embodiment generates information about the self-position of the autonomous mobile robot based on the current map (first map) used for controlling the autonomous mobile robot. That is, the tracking function 31c performs tracking processing using the sensor data received from the acquisition function 31b. Also, the tracking function 31c estimates the environment map using the sensor data from the acquisition function 31b.
  • the environment map is information that includes the three-dimensional coordinates of each point of an object that exists in the environment including the autonomous mobile robot.
  • Tracking processing is the process of tracking changes in camera position and posture from the keyframes held at that time (frames that make up an important image for 3D reconstruction) to the current frame. is the process of estimating That is, the tracking process is a process of estimating the self position by calculating the transformation from the keyframe to the current frame.
  • an indirect method or a direct method can be adopted.
  • the indirect method acquires feature points and feature values from the key frame image and the current frame image, solves the feature point matching, and uses the matched feature point pairs to obtain the current frame camera This is the process of estimating the position and orientation of the .
  • the direct method is a process of estimating the amount of movement of the camera so as to reduce the luminance difference or photometric error of all pixels between frame images without using feature points or the like.
  • FIG. 3 is a diagram for explaining an example of tracking processing (direct method).
  • FR i (T i ) is the image of the key frame at position T i
  • FT j (T j ) is the image of the target frame (for example, the current frame) at position T j
  • point P is the image FR i of the key frame.
  • a point on (T i ) is a projection point of the point P by the inverse depth dP on the image of the target frame image FT j (T j )
  • N p is a pixel pattern near the point P
  • ⁇ c is a point
  • the projection function of P′ and ⁇ c ⁇ 1 denote the back projection function of point P, respectively.
  • a key frame image is obtained by using the pixel pattern N p , the exposure time of each frame, the relational expression between the point P and the point P′ using the projection function ⁇ c and the back projection function ⁇ c ⁇ 1 , and the like.
  • the photometric error photometric error between frames FR i -FT j
  • the camera movement amount is estimated so that the photometry error between frames FR i -FT j is reduced.
  • the information obtained by the tracking process is an example of information regarding the self-position of the autonomous mobile robot.
  • the tracking accuracy determination function 31d of the present embodiment determines accuracy regarding self-position estimation based on information regarding self-position. That is, the tracking accuracy determination function 31d sequentially determines the self-position estimation accuracy in each frame estimated by the tracking process. For determination of self-position estimation accuracy, for example, the following criteria can be adopted.
  • the tracking accuracy determination function 31d determines based on the constraints of the robot. , the self-localization accuracy of the frame is determined to be low. If the estimated self-position of an autonomous mobile robot that moves only on a two-dimensional plane is not on the two-dimensional plane, the tracking accuracy determination function 31d determines that the self-position estimation accuracy of the frame is low. In addition, the tracking accuracy determination function 31d determines if the current moving speed or amount of rotation of the autonomous mobile robot has changed significantly from the previous moving speed or amount of rotation, or if the upper limit speed or upper limit of rotation amount has been exceeded. , the self-localization accuracy of the frame is determined to be low.
  • the tracking accuracy determination function 31d can determine the self-position estimation accuracy of each frame using the environment map. For example, the tracking accuracy determination function 31d extracts point groups corresponding (considered to be the same) between frames from the three-dimensional point groups on the environment. The tracking accuracy determination function 31d determines that the self-position estimation accuracy of the frame is low when the number of extracted point groups is less than a predetermined threshold, or when the number of point cloud decreases is equal to or greater than a predetermined threshold.
  • the information indicating each criterion described above can be quantified by any method.
  • the keyframe determination function 31e of the present embodiment executes keyframe determination processing for each frame in which the position and orientation of the autonomous mobile robot are estimated by tracking processing.
  • the key frame determination process is a process of determining whether or not each frame is a key frame. performed as a reference.
  • the keyframe determination function 31e executes keyframe determination processing using a predetermined index.
  • the predetermined index may be, for example, the length of the optical flow (the amount of change on the image), the amount of movement or rotation of the autonomous mobile robot obtained by the tracking process or its variance, the magnitude of the angular velocity or acceleration obtained by the IMU sensor. , the magnitude of the error during tracking processing, the amount of change above the threshold value of the camera setting parameter value such as the exposure time, the image similarity such as the BoVW (Bag of Visual Words) score (scene feature), etc., common between frames At least one of the number of visible feature points and the like can be employed.
  • the key frame determination function 31e can detect frames sampled at predetermined time intervals, frames acquired at the timing when other processing such as bundle adjustment is completed, and timing when a new frame is requested after processing on the server side is completed. You can also use the frame obtained with as a keyframe. Furthermore, the keyframe determination function 31e can also determine a keyframe using a learned model generated by machine learning or the like.
  • the tracking accuracy determination process and the key frame determination process may partially overlap. For example, a frame acquired at a timing when the tracking accuracy is degraded due to, for example, many sensor data fluctuations between frames may be determined as a key frame. In such a case, the processing contents of the tracking accuracy determination process and the key frame determination process are the same, and the efficiency can be improved by adopting separate determination thresholds for the key frame determination and the new map generation determination.
  • the bundle adjustment function 31f of this embodiment generates information regarding the self-position of the autonomous mobile robot based on the current map used for controlling the autonomous mobile robot. That is, the bundle adjustment function 31f executes bundle adjustment processing using a plurality of keyframes including the latest keyframe when it is determined to be a keyframe.
  • the bundle adjustment process is a process of estimating the pose of the autonomous mobile robot and the three-dimensional position of the point cloud with high accuracy using the estimated camera pose of each keyframe obtained by the tracking process as the initial value. .
  • the bundle adjustment function 31f calculates a more accurate camera pose and environment map by optimizing using the camera pose (self-position and pose) in the keyframes.
  • FIG. 4 and 5 are diagrams for explaining an example of the bundle adjustment processing according to this embodiment.
  • the feature point u i, j on the image Z j of the frame j and the feature point u i ,j +1 on the image Z j+ 1 of the frame j+1 are shown in association with each other.
  • R j and t j denote the rotation and translation of camera C j at frame j
  • R j+1 and t j+1 denote the rotation and translation of camera C j+1 at frame j, respectively.
  • u i,j and u i,j+1 in FIG. 5 are feature points in the image Z j of the frame j and the image Z j + 1 of the frame j+1, respectively.
  • the bundle adjustment process uses the camera rotation and translation between frame i and frame i+1 and projection function f(x i , R j , t j ) to minimize, for example, the following equation (1) can be
  • the position x i is the ray connecting the camera C j [R j , t j ] at the frame j and the projection point of the feature point u i,j and the camera C j+1 [R j+1 , at the frame j+1. t j+1 ] and the projection point of the feature point u i,j+1 .
  • the information obtained by the bundle adjustment process is an example of information regarding the self-position of the autonomous mobile robot.
  • the bundle adjustment accuracy determination function 31g of this embodiment determines the accuracy of self-position estimation based on the information on self-position. That is, the bundle adjustment accuracy determination function 31g evaluates the position and orientation of the camera at each keyframe estimated in the bundle adjustment process, similarly to the tracking accuracy determination process. In the bundle adjustment, it is also possible to consider the case where the position and orientation of the camera change greatly, and use restrictions on the movement of the autonomous mobile robot.
  • the bundle adjustment accuracy determination function 31g determines that the bundle adjustment accuracy has deteriorated when the number of three-dimensional points is less than a predetermined threshold, or when the number of three-dimensional points decreased is equal to or greater than a predetermined threshold. Also, for example, the bundle adjustment accuracy determination function 31g determines that the bundle adjustment accuracy has deteriorated when the number of reductions in the three-dimensional point cloud is equal to or greater than a predetermined threshold in the process of removing outliers during the bundle adjustment process. can also
  • the information used for each bundle adjustment accuracy determination described above can be quantified by any method.
  • the pre-map localization function 31h of the present embodiment uses the sensor data acquired at the time of keyframe determination to determine each position and orientation on the pre-map and frames) and perform pre-map localization processing.
  • the pre-map localization function 31h draws edges between the vertices (nodes) indicating poses on the matched pre-map (the relevant pose graph) and the nodes of the current map (the relevant pose graph). Further, the pre-map localization function 31h performs pre-map localization processing on the current map that has not been updated when a new map is to be generated as a result of the new map generation determination processing to be described later.
  • Information obtained by preliminary map localization processing is sent to the map generation function 31j and the new map generation determination function 31k.
  • the pose graph is a directed graph in which the vertices are linked to the position and orientation of the frame, and the edges are linked to the relative position and orientation between the endpoints.
  • the matching process in the pre-map localization process is not limited to sensor data.
  • an image if an image is stored, it can also be executed using feature values obtained from the image.
  • a statistic obtained by acquiring feature amounts from feature points of an image and statistically processing the obtained feature amounts for the entire image can be used.
  • pre-map localization processing is performed, for example, by the following steps.
  • Image matching processing (matching candidate extraction processing) Some feature values are acquired from the image and matching processing is performed to select node candidates in the preliminary map. Normally, this processing does not take into account edge information defined for each node.
  • edge information defined for each node.
  • For the feature amount for example, feature points and feature amounts are obtained from the image, statistical amounts such as histograms are obtained for the entire image, and the feature amount for the entire image can be adopted.
  • Feature point matching process (matching candidate narrowing process)
  • more detailed matching processing is performed from among the matching candidates obtained in the image matching step to narrow down the candidates. For example, the matching scores between the feature points of the current keyframe image and the feature points of the matching candidate images are calculated, and candidates are further narrowed down based on these scores.
  • the position and orientation of the key frame image are calculated from the position and orientation information in the preliminary map of the candidate images narrowed down in the feature point matching process.
  • the loop closure determination function 31i detects whether the current map is revisited by matching using sensor data in the same way as the localization process on the current map generated during autonomous movement. When a revisit is detected, an edge is drawn between the nodes on the pose graph corresponding to the pre-map.
  • the map generation function 31j starts map generation at the same time as the autonomous mobile robot starts to move autonomously.
  • the map generation function 31j holds information on the first frame and keyframes.
  • the map generating function 31j calculates relative positions and orientations between key frames and uses them as edges.
  • the map generation function 31j generates an environment map using sensor data sequentially acquired during autonomous movement.
  • the environment map may be represented by a pose graph.
  • the map generation function 31j holds poses at keyframes and environment maps obtained using the keyframes.
  • the map generation function 31j can also hold sensor data (or part thereof) corresponding to key frames.
  • the map generation function 31j executes pose graph optimization processing. That is, the map generating function 31j uses the pose graph obtained by the pre-map localization processing and the loop confinement determination processing to optimize the pose graph. Optimize your posture.
  • the map generation function 31j calculates a vertex group that minimizes the evaluation function F expressed by the following equations (2) and (3), and optimizes the self position and orientation.
  • C is the set of edges in the loop
  • is the predetermined weight
  • x i is the pose based on the vertex (node) i
  • x j is the pose coordinates based on the vertex j
  • z ij is A relative position and orientation value associated with an edge
  • e is an error function
  • F is an evaluation function.
  • the map generation function 31j when the new map generation determination function 31k determines to generate a new map (second map), the map generation function 31j generates a new map using sensor data of a plurality of frames.
  • the new map generation determination function 31k determines whether or not to generate a new map based on the accuracy of self-position estimation. That is, the new map generation determination function 31k performs a new Determine to generate a map. This new map is a newly generated map separate from the currently generated map. Also, after a new map is generated, the map that was generated immediately before is saved and managed as a generated map.
  • the information on the frames for which localization detection has been performed is an example of information on the self-location
  • the number of frames (time) in which localization detection cannot be performed is an example of accuracy on self-location estimation.
  • the new map generation determination function 31k determines to generate a new map.
  • the map generation function 31j When the new map generation determination function 31k determines to generate a new map, the map generation function 31j initializes a new pose graph with the current self-position as the origin and generates it as a new map. The map generation function 31j adds nodes and edges to the pose graph corresponding to the new map.
  • the tracking process and the bundle adjustment process are also initialized. That is, when a new map is generated, the control function 31a redefines a different SLAM coordinate system for each function.
  • the map update function 31m executes map update processing using a new map, at least one pre-map, and at least one generated map.
  • This map update processing includes at least one of map selection processing, map integration processing, and map editing processing. Each process will be described below.
  • Map selection process A situation occurs in which a player possesses multiple maps in advance, such as a new map, at least one generated map, or at least one preliminary map.
  • the map update function 31m selects the map for which localization has been detected in the preliminary map localization process as the first priority preliminary map.
  • the map generation function 31j performs subsequent self-position estimation on the selected first priority pre-map.
  • the map generation function 31j can also perform matching with at least one other pre-map and at least one other generated map when no localization is detected in the pre-map localization process for a predetermined number of frames or more.
  • the map update function 31m selects a map to be used for self-position estimation based on matching results with other pre-maps, other generated maps, and the like.
  • map update function 31m executes map integration processing using at least two of the plurality of maps.
  • 6 and 7 show an example of a pose graph for explaining map update processing. 6 and 7 respectively illustrate a plurality of previous maps M 0 , generated maps M 1 , generated maps M 2 newer than generated maps M 1 , and new maps M k as current maps.
  • map update function 31m detects a localization result in the preliminary map localization process (for example, as shown in FIG. 6 , the edge E between the pose graph representing the generated map M1 and the current map Mk ) 1 ), merge the generated map M1 with the current map Mk .
  • map integration means that a plurality of edged maps are regarded as one map (integrated map, third map).
  • the map update function 31m updates the current map to the integrated map.
  • the map update function 31m updates the generated map M2 and Merge with the current map Mk.
  • the generated map M 1 , the generated map M 2 , and the current map M k are regarded as one integrated map.
  • the map update function 31m updates the current map to a new integrated map.
  • the map update function 31m updates the previous map M0 and the current map Mk when, for example, an edge E3 is drawn between the pose graphs representing the previous map M0 and the current map Mk. Integrate with Mk .
  • the previous map M 0 , the generated map M 1 , the generated map M 2 and the current map M k are regarded as one integrated map.
  • the map update function 31m updates the current map to a new integrated map.
  • the integrated map is used as the current map for subsequent map generation processing, localization processing, and optimization processing. For example, when a generated map and a new map (current map) are integrated, point clouds defined in both coordinate systems can be merged in bundle adjustment processing.
  • the map update function 31m when new map generation is performed several times (for example, when the number of new map generation times exceeds a threshold value, when the number of new maps exceeds a threshold value, etc.), the generated map Execute map integration processing to suppress excessive increase. Specifically, it is held as one pose graph.
  • the map update function 31m edits the map by, for example, deleting nodes and edges for which the localization result has not been detected even after the reference period has elapsed in the pre-map or the generated map. For example, in the preliminary map M0 shown in FIG. 7, if the localization result is not detected for a node Ni even after the reference period has passed, the node Ni is deleted from the preliminary map M0 . This is because the node Ni can be determined as unnecessary map information due to environmental changes or the like. Also, it is possible to delete the map itself for which the localization result is not detected even after the reference period has passed. Furthermore, the map update function 31m may delete nodes and edges for which localization results are not detected due to capacity restrictions, elapsed time from pre-map generation, or the like.
  • the main storage device 33 is a storage device that stores commands executed by the processor 31 and various data.
  • the auxiliary storage device 35 is a storage device other than the main storage device 33 .
  • Various maps such as pre-maps, generated maps, new maps, and integrated maps, sensor data, and the like are stored in the main storage device 33 and the auxiliary storage device 35 .
  • These storage devices mean any electronic parts capable of storing electronic information, and may be semiconductor memories.
  • the semiconductor memory may be either volatile memory or non-volatile memory.
  • a storage device for storing various data used in various functions described later in the embodiments may be implemented by the main storage device 33 or the auxiliary storage device 35, or may be implemented by an internal memory built into the processor 31. good.
  • the storage section in the embodiment corresponds to the main storage device 33 or the auxiliary storage device 35 .
  • the main storage device 33 or the auxiliary storage device 35 corresponds to at least one memory.
  • the network interface 37 is an interface for connecting to the network 5 wirelessly or by wire.
  • the device interface 39 directly or indirectly connects the detection device 8 , the display device 211 , the input device 213 and the processor 31 via the bus 41 .
  • the device interface 39 may have a connection terminal such as a USB (Universal Serial Bus). Also, the device interface 39 may be connected to an external storage medium, a storage device (memory), or the like via a connection terminal.
  • FIG. 8 is a flow chart showing the flow of SLAM including new map automatic generation and map automatic update executed by the information processing apparatus 2 according to the present embodiment.
  • the tracking function 31c executes tracking processing using the sensor data for each frame received from the acquisition function 31b (step S1). Further, the map generation function 31j starts map generation at the same time when the autonomous mobile robot starts to move autonomously (step S8).
  • the tracking accuracy determination function 31d sequentially determines the self-position estimation accuracy in each frame estimated by the tracking process (step S2). When the tracking accuracy determination function 31d determines that the self-position estimation accuracy is less than the threshold value (No in step S2), the tracking accuracy determination function 31d sends information notifying that the self-location estimation accuracy is low to the new map generation determination function 31k. On the other hand, if the self-position estimation accuracy is equal to or higher than the threshold (Yes in step S2), the process proceeds to step S3.
  • the keyframe determination function 31e executes keyframe determination processing for each frame (step S3).
  • the process returns to the tracking process in step S1 (No in step S3).
  • the keyframe determination function 31e determines that there is a keyframe (that is, determines that the frame is a keyframe)
  • the process proceeds to step S4 (Yes in step S3).
  • the bundle adjustment function 31f executes bundle adjustment processing using a plurality of keyframes (step S4).
  • the bundle adjustment accuracy determination function 31g determines whether the bundle adjustment accuracy is equal to or greater than the threshold (step S5). When the bundle adjustment accuracy determination function 31g determines that the bundle adjustment accuracy is less than the threshold value (No in step S5), the bundle adjustment accuracy determination function 31g sends information notifying that the bundle adjustment accuracy is low to the new map generation determination function 31k. On the other hand, if the bundle adjustment accuracy is equal to or greater than the threshold (Yes in step S5), the process proceeds to steps S6 and S7.
  • the pre-map localization function 31h executes pre-map localization processing using the sensor data acquired during key frame determination (step S6).
  • the pre-map localization function 31h also sends the information obtained by pre-map localization processing to the map generation function 31j and the new map generation determination function 31k. If no matching keyframe is detected in the pre-map localization process, the process returns to the tracking process in step S1.
  • the loop closure determination function 31i performs matching using sensor data to detect whether or not the current map is being revisited, and executes loop closure determination (step S7).
  • the new map generation determination function 31k generates a new map with at least one of, for example, tracking accuracy being less than a threshold value, bundle adjustment accuracy being less than a threshold value, and localization detection not being possible for a predetermined number of frames or more. It is determined whether or not (step S9).
  • the map generation function 31j generates a new map.
  • the process proceeds to step S10.
  • the map update function 31m uses a plurality of maps to execute map update processing such as map selection processing and map integration processing (step S10).
  • the map generation function 31j executes pose graph optimization using the pose graph obtained by the preliminary map localization process and the loop closure determination process, and the map obtained by the map update process (step S11).
  • the control function 31a determines whether or not the autonomous mobile robot has finished autonomously moving (step S12). If the autonomous mobile robot has not finished moving autonomously (No in step S12), the processes from step S1 to step S11 are repeatedly executed. On the other hand, when the autonomous movement of the autonomous mobile robot ends (Yes in step S12), the control function 31a ends SLAM including new map automatic generation and map automatic update.
  • control function 31a reads a designated map from main storage device 33 in response to an instruction input from input device 213 and causes display device 211 to display the map.
  • the information processing apparatus 2 includes an acquisition function 31b as an acquisition unit, a tracking function 31c as an information generation unit, a bundle adjustment function 31f, a determination unit, and a tracking accuracy determination function 31d as a map generation unit. , and a bundle adjustment accuracy determination function 31g.
  • the acquisition unit acquires sensor data related to the environment using a detection device provided on the autonomous mobile body.
  • the information generator generates information about the self-location of the autonomous mobile body based on the current map used for controlling the autonomous mobile body.
  • the determination unit determines the accuracy of self-position estimation based on the information on the self-position, and determines whether to generate a new map based on the accuracy of self-position estimation.
  • the autonomous mobile robot can be used without burden even in a wide variety of environments where the environment changes, for example.
  • the map generation unit when the determination unit determines to generate a new map, the map generation unit generates a new map using sensor data of a plurality of frames.
  • a new map can be automatically generated according to the self-location accuracy of the autonomous mobile robot, and the self-location estimation accuracy on the map can be guaranteed. Also, since the new map is automatically generated, the user does not need to give an instruction to generate the new map. Therefore, it is possible to reduce the load of map generation on the user during the period of using the robot.
  • the map update function 31m updates the current map used for controlling the autonomous mobile robot based on multiple maps including new maps.
  • the map update function 31m executes map selection processing for selecting one of a plurality of maps including a new map, and sets the selected map as the current map used for controlling the autonomous mobile body.
  • the map update function 31m generates an integrated map using at least two of the plurality of maps including the new map, and uses the integrated map as the current map used for controlling the autonomous mobile robot.
  • the map update function 31m performs map editing by deleting nodes and edges for which localization results have not been detected even after the reference period has elapsed in a plurality of maps including a new map.
  • the information processing device 2 can estimate the self-position using the selected map and the map after updating with the integrated map when the accuracy of the information regarding the self-position is lowered.
  • the self-position using the integrated map it is possible to estimate the self-position using the consistency of information from the past to the present. As a result, the accuracy of self-localization can be automatically improved.
  • the information processing device 2 can automatically delete unnecessary information from the map by deleting nodes and edges for which localization results have not been detected even after the reference period has elapsed. Therefore, unnecessary calculation processing can be reduced.
  • the pre-map acquisition is not sufficient (such as when data acquisition on the autonomous route is insufficient), or if there are multiple pre-maps that need to be selected, the user does not have to bear the burden. Robust autonomous movement of the autonomous mobile robot can be realized while reducing the burden.
  • the information processing apparatus 2 can be used in an environment where people work together or in situations where the environment changes, such as construction sites, building maintenance (cleaning, security, delivery), station platforms, and factories. It can be said that the usefulness is high when using an autonomous mobile robot in such as.
  • LiDAR SLAM LiDAR SLAM
  • key frame determination and bundle adjustment may not be performed, and new map generation determination may be performed based on tracking processing accuracy.
  • image (camera) features together for pre-map localization and loop closure processing.
  • the information processing device 2 automatically generates a new map based on the tracking accuracy and the bundle adjustment accuracy, and automatically updates the new map.
  • the information processing device 2 and the detection device 8 are mounted on the autonomous mobile robot.
  • the information processing device 2, the detection device 8, the display device 211, and the input device 213 can all be mounted on the autonomous mobile robot.
  • the information processing device 2 capable of communicating with the autonomous mobile robot may be mounted on a stationary object.
  • a stationary object is an object that is fixed to the ground.
  • a stationary object is an object that cannot move or an object that is stationary with respect to the ground.
  • the information processing device 2 may be installed in an external device 7 capable of communicating with the autonomous mobile robot or a cloud server that executes processing on the cloud. In this way, an autonomous mobile system including an autonomous mobile and an information processing device physically separated from the autonomous mobile may be configured.
  • the new map generation determination function 31k estimates the self-position on the pre-map from the self-position obtained by the tracking process and the bundle adjustment process.
  • the new map generation determination function 31k determines that if the node information on the pre-map obtained near the estimated self-position and the matching score are low, there is a change in the environment, or the data acquisition during pre-map generation is insufficient. It is determined that there is, and it is determined that "a new map needs to be generated" (Yes in step S9).
  • the map generation function 31j generates a new map in response to the instruction from the new map generation determination function 31k (step S8).
  • Application example 3 is assumed to be applied to a case where an autonomous mobile robot autonomously moves without a prior map.
  • change the navigation method in the case of an autonomous mobile robot (rotate on the spot, navigate by selecting a route different from the previous route, communicate with the user to encourage the autonomous mobile robot to move) etc.), the environment, the state of the autonomous mobile robot, and information that can be acquired by the detection device can be changed.
  • the autonomous mobile robot by guiding the autonomous mobile robot to a place where it is difficult to lose its own position according to the past route on the map, it is possible to change the environment, the state of the autonomous mobile robot, and the information that can be obtained by the detection device.
  • the guidance to the location where the self-position is difficult to be lost and the point where the autonomous mobile robot is moved are, for example, the current position of the autonomous mobile robot on the map before it is judged that the tracking accuracy and bundle adjustment accuracy are poor.
  • the autonomous mobile robot if the autonomous mobile robot cannot estimate its own position, the autonomous mobile robot is observed by a sensor other than the detection device 8. More specifically, the autonomous mobile robot is observed by a center mounted on another autonomous mobile robot. The self-position of the autonomous mobile robot is estimated on the map generated using the data from the sensor different from the sensor obtained in this way, and the autonomous mobile robot is navigated according to the position. Then, when the self-position estimation of the autonomous mobile robot is recovered, the autonomous mobile robot can re-execute the autonomous mobile processing using the map possessed by the autonomous mobile robot.
  • Some or all of the devices in the above-described embodiments may be configured with hardware, or may be information processing software (programs) executed by a CPU (Central Processing Unit), GPU (Graphics Processing Unit), or the like. may consist of
  • software information processing software that realizes at least a part of the functions of each device in the above-described embodiments is stored on a flexible disk, a CD-ROM (Compact Disc-Read Only Memory), a USB memory, or the like.
  • Information processing of the software may be executed by storing it in a non-temporary storage medium (non-temporary computer-readable medium) and reading it into a computer. Alternatively, the software may be downloaded via a communication network. Further, information processing may be performed by hardware by implementing software in a circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the type of storage medium that stores the software is not limited.
  • the storage medium is not limited to a detachable one such as a magnetic disk or an optical disk, and may be a fixed storage medium such as a hard disk or memory. Also, the storage medium may be provided inside the computer, or may be provided outside the computer.
  • the information processing device 2 as a computer in FIG. 1 includes one component, but may include a plurality of the same components. Also, although FIG. 1 shows one information processing device 2, the software is installed in a plurality of computers, and each of the plurality of computers executes the same or different processing of the software. You may In this case, it may be a form of distributed computing in which each computer communicates via the network interface 37 or the like to execute processing. In other words, the information processing apparatus 2 in the above-described embodiment may be configured as a system in which functions are realized by one or more computers executing instructions stored in one or more storage devices. Further, the information transmitted from the terminal may be processed by one or more computers provided on the cloud, and the processing result may be transmitted to the terminal.
  • Various operations of the information processing device 2 in the above-described embodiment may be executed in parallel using one or more processors or using multiple computers via a network. Also, various operations may be distributed to a plurality of operation cores in the processor and executed in parallel. Also, part or all of the processing, means, etc. of the present disclosure may be executed by at least one of a processor and a storage device provided on a cloud capable of communicating with the information processing device 2 via a network. Thus, each device in the above-described embodiments may be in the form of parallel computing by one or more computers.
  • the processor 31 may be an electronic circuit (processing circuit, processing circuitry, CPU, GPU, FPGA, ASIC, etc.) including a computer control device and arithmetic device. Also, the processor 71 may be a semiconductor device or the like including a dedicated processing circuit. The processor 31 is not limited to an electronic circuit using electronic logic elements, and may be realized by an optical circuit using optical logic elements. The processor 31 may also include arithmetic functions based on quantum computing.
  • the processor 31 performs arithmetic processing based on data and software (programs) input from each device or the like of the internal configuration of the information processing device 2 as a computer, and outputs arithmetic results and control signals to each device or the like. can.
  • the processor 31 may control each component of the information processing device 2 by executing the OS (Operating System) of the information processing device 2, applications, and the like.
  • processors 31 may refer to one or more electronic circuits located on one chip, or one or more electronic circuits located on two or more chips or devices. may When multiple electronic circuits are used, each electronic circuit may communicate by wire or wirelessly.
  • the main storage device 33 is a storage device that stores commands and various data to be executed by the processor 31 , and information stored in the main storage device 33 is read by the processor 31 .
  • the auxiliary storage device 35 is a storage device other than the main storage device 33 .
  • These storage devices mean any electronic components capable of storing electronic information, and may be semiconductor memories.
  • the semiconductor memory may be either volatile memory or non-volatile memory.
  • a storage device for storing various data in the information processing device 2 in the above-described embodiment may be implemented by the main storage device 33 or the auxiliary storage device 35, or may be implemented by a built-in memory built into the processor 31. good.
  • the storage unit 102 in the above-described embodiment may be realized by the main storage device 33 or the auxiliary storage device 35.
  • a plurality of processors may be connected (coupled) to one storage device (memory), or a single processor may be connected.
  • a plurality of storage devices (memories) may be connected (coupled) to one processor.
  • the information processing device 2 in the above-described embodiment is composed of at least one storage device (memory) and a plurality of processors connected (coupled) to this at least one storage device (memory), among the plurality of processors
  • At least one processor may include a configuration coupled to at least one storage device (memory). Also, this configuration may be realized by storage devices (memory) and processors included in a plurality of computers. Furthermore, a configuration in which a storage device (memory) is integrated with a processor (for example, a cache memory including an L1 cache and an L2 cache) may be included.
  • the network interface 37 is an interface for connecting to the network 5 wirelessly or by wire. As for the network interface 37, an appropriate interface such as one conforming to existing communication standards may be used. The network interface 37 may exchange information with the external device 7 connected via the network 5 .
  • the network 5 may be any one of WAN (Wide Area Network), LAN (Local Area Network), PAN (Personal Area Network), etc., or a combination thereof. It is sufficient if information is exchanged between Examples of WANs include the Internet, examples of LANs include IEEE 802.11 and Ethernet (registered trademark), and examples of PANs include Bluetooth (registered trademark) and NFC (Near Field Communication).
  • the device interface 39 is an interface such as USB that directly connects to the external device 7 .
  • the external device 7 is a device connected to the information processing device 2 via the network 5 .
  • the external device 7 is a device directly connected to the information processing device 2 .
  • the external device 7 may be an input device, for example.
  • the input device is, for example, a device such as a camera, microphone, motion capture, various sensors, keyboard, mouse, or touch panel, and provides the information processing device 2 with acquired information.
  • a device such as a personal computer, a tablet terminal, or a smartphone including an input unit, a memory, and a processor may be used.
  • the external device 7 may be an output device, for example.
  • the output device may be, for example, a display device such as LCD (Liquid Crystal Display), CRT (Cathode Ray Tube), PDP (Plasma Display Panel), or organic EL (Electro Luminescence) panel, etc., and output audio etc. It may be a speaker or the like that Alternatively, a device such as a personal computer, a tablet terminal, or a smartphone including an output unit, a memory, and a processor may be used.
  • the external device 7 may be a storage device (memory).
  • the external device 7 may be a network storage or the like, and the external device 7 may be a storage such as an HDD.
  • the external device 7 may be a device having the functions of some of the components of the information processing device 2 in the above-described embodiment. That is, the information processing device 2 may transmit or receive part or all of the processing result of the external device 7 .
  • the expression "at least one (one) of a, b and c" or “at least one (one) of a, b or c" (including similar expressions) , a, b, c, ab, ac, bc, or abc. It may also include multiple instances of any element, such as aa, abb, aabbbcc, and so on. It also includes the addition of elements other than the listed elements (a, b and c), such as having d as in abcd.
  • expressions such as "data as input/based on data/according to/according to” refer to various data themselves unless otherwise specified. It includes the case of using it as an input, and the case of using as an input data obtained by performing some processing on various data (for example, noise-added data, normalized data, intermediate representation of various data, etc.).
  • some result can be obtained "based on/according to/depending on the data"
  • this includes cases where the result is obtained based only on the data, other data other than the data, It may also include cases where the result is obtained under the influence of factors, conditions, and/or states.
  • connection and “coupled” refer to direct connection/coupling, indirect connection/coupling, electrical ( are intended as non-limiting terms to include any of the following: electrically connected/coupled, communicatively connected/coupled, operatively connected/coupled, physically connected/coupled, etc. be.
  • the term should be interpreted appropriately according to the context in which the term is used, but any form of connection/bonding that is not intentionally or naturally excluded is not included in the term. should be interpreted restrictively.
  • the phrase "A configured to B” means that the physical structure of element A has a configuration capable of performing action B and , that a permanent or temporary setting/configuration of element A is configured/set to actually perform operation B.
  • element A is a general-purpose processor
  • the processor has a hardware configuration capable of executing operation B, and operation B is performed by setting a permanent or temporary program (instruction). It just needs to be configured to actually run.
  • the element A is a dedicated processor or a dedicated arithmetic circuit, etc., regardless of whether or not control instructions and data are actually attached, the circuit structure of the processor actually executes the operation B. It just needs to be implemented.

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

実施形態に係る情報処理装置は、取得部と、情報生成部と、判定部と、を備える。取得部は、自律移動体に設けられた検出装置により環境に関するセンサデータを取得する。情報生成部は、センサデータと、自律移動体の自律移動の制御に用いられる現在マップと、に基づいて、自律移動体の自己位置に関する情報を生成する。判定部は、自己位置に関する情報に基づいて自己位置推定に関する精度を判定する。

Description

情報処理装置
 本開示は、情報処理装置に関する。
 近年、SLAM(Simultaneous Localization And Mapping)を用いて移動体が自身で地図を作成し自律移動する技術が提案されている。この様なSLAMを利用する自律移動体は、自律移動ルートをティーチングするにおいても、マップにおいて自己位置推定を行いながら自律移動する場合でも事前マップを必要とする。
 しかしながら、例えば事前マップ生成時から環境が大きく変化した場合、自律移動中に自己位置推定がロストしてしまうケースがある。係る場合には、ユーザは、自己位置推定がロストする度にマップ生成作業を行う必要がある。そのため、使用環境によってはユーザへの負担が大きい。
特開2020-047188号公報
 本開示の課題は、例えば事前マップ生成時から環境が大きく変化した場合等において、自律移動体のユーザの負担軽減を実現することである。
 実施形態に係る情報処理装置は、請求項に記載される特徴を有する。
図1は、実施形態に係る情報処理装置を含む情報処理システムの構成と、情報処理装置のハードウェア構成の一例とを示す図である。 図2は、実施形態に係る情報処理装置のプロセッサにおける機能ブロックの一例を示す図である。 図3は、トラッキング処理の一例を説明するための図である。 図4は、実施形態に係るバンドル調整処理の一例を説明するための図である。 図5は、実施形態に係るバンドル調整処理の一例を説明するための図である。 図6は、マップ更新処理を説明するためのポーズグラフの一例を示す図である。 図7は、マップ更新処理を説明するためのポーズグラフの一例を示す図である。 図8は、実施形態に係る情報処理装置が実行する、新規マップ自動生成及びマップ自動更新を含むSLAMの流れを示したフローチャートである。
 以下、図面を参照しながら実施形態について詳細に説明する。
 図1は、本実施形態に係る情報処理装置2を含む情報処理システム1の構成と、情報処理装置2のハードウェア構成の一例とを示す図である。図1に示すように、情報処理システム1は、情報処理装置2と、外部装置7と、検出装置8と、表示装置211と、入力装置213と、を備えている。
 本実施形態に係る情報処理装置2は、説明を具体的にするため、カメラ画像を用いて自己位置推定と地図作成とを並行して実行するVisual SLAMを利用する場合を例とする。
 また、本実施形態では、情報処理システム1が自律移動体に搭載された形態を一例として説明する。ここで、自律移動体とは、人による運転操作を介さずに自動的に進行(自律進行)可能な物である。自律移動体は、例えば、車両、飛行可能な物体(有人飛行機、無人飛行機(例えば、UAV(Unmanned Aerial Vehicle)、ドローン))、ロボット、などである。以下においては、自律移動体が自律移動ロボットである場合を例として説明する。また、説明を簡単にするため、自律移動ロボットの位置姿勢と検出装置8の位置姿勢は同一であるとする。
 情報処理装置2は、Visual SLAMにより、自律移動ロボットの制御に用いるマップに関する制御を実行する。特に、情報処理装置2は、新規マップ自動生成及びマップ自動更新を含むSLAMを実行する。新規マップ自動生成、マップ自動更新については、後で詳しく説明する。
 外部装置7は、ネットワーク5を介して情報処理装置2と接続されている。外部装置7は、例えば情報処理装置2と情報をやり取りするサーバ装置等の情報処理装置である。
 検出装置8は、自律移動ロボットの周囲にある空間や物体を検出するセンサであり、SLAMに必要なセンサデータを生成する。本実施形態においては、検出装置8は、ステレオカメラ、IMUセンサ(ジャイロ・加速度センサ)を有するものとする。検出装置8は、ステレオカメラで撮像される左右カメラデータとIMUセンサで取得される角速度や加速度とを含むセンサデータをフレーム毎に生成し、情報処理装置2へ逐次出力する。以下、検出装置8を単にカメラとも呼ぶ。
 表示装置211は、例えばLCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、有機EL(Electro Luminescence)等のディスプレイである。表示装置211は、情報処理装置2の制御に基づいて、生成されたマップ等を所定の形態で表示する。
 入力装置213は、ユーザからの各種指示や情報入力を受け付ける。入力装置213は、例えば、トラックボール、スイッチボタン、マウス、キーボード、操作面へ触れることで入力操作を行うタッチパッド、表示画面とタッチパッドとが一体化されたタッチスクリーン、光学センサを用いた非接触入力回路、及び音声入力回路等によって実現される。
 情報処理装置2は、プロセッサ31と、主記憶装置33と、補助記憶装置35と、ネットワークインタフェース37と、デバイスインタフェース39と、を備える。プロセッサ31と、主記憶装置33と、補助記憶装置35と、ネットワークインタフェース37と、デバイスインタフェース39とは、バス41を介して接続されている。
 プロセッサ31は、情報処理装置2、及び情報処理装置2に接続された検出装置8、表示装置211、入力装置213の統括的な制御を行う処理回路である。
 図2は、実施形態に係る情報処理装置2のプロセッサ31における機能ブロックの一例を示す図である。プロセッサ31は、一例として、制御機能31a、取得機能31b、トラッキング機能31c、トラッキング精度判定機能31d、キーフレーム判定機能31e、バンドル調整機能31f、バンドル調整精度判定機能31g、事前マップローカリゼーション機能31h、ループ閉じ込み判定機能31i、マップ生成機能31j、新規マップ生成判定機能31k、マップ更新機能31mを備える。
 プロセッサ31の各機能は、例えばコンピュータによって実行可能なプログラムの形態で主記憶装置33に記憶されている。すなわち、プロセッサ31は、プログラムを主記憶装置33から読み出し、実行することで各プログラムに対応する機能を実現する。換言すると、各プログラムを読み出した状態のプロセッサ31は、図2のプロセッサ31内に示された各機能を有することとなる。
 なお、制御機能31a、取得機能31bは、それぞれ制御部、取得部の一例である。また、トラッキング機能31c、バンドル調整機能31fは情報生成部の一例である。また、トラッキング精度判定機能31d、バンドル調整精度判定機能31g、新規マップ生成判定機能31kは、判定部の一例である。また、マップ生成機能31j、マップ更新機能31mは、それぞれ生成部、更新部の一例である。
 本実施形態の制御機能31aは、情報処理装置2、及び情報処理装置2に接続された検出装置8、表示装置211、入力装置213の統括的な制御を行う。
 本実施形態の取得機能31bは、自律移動体に設けられた検出装置8により環境に関するセンサデータを取得する。すなわち、取得機能31bは、自律移動ロボットに設けられたセンサとしての検出装置8を用いて複数のフレームのセンサデータを取得する。より具体的には、取得機能31bは、検出装置8より、Visual SLAMに必要なデータであるセンサデータを取得し、トラッキング機能31cに送出する。
 本実施形態のトラッキング機能31cは、自律移動ロボットの制御に用いられる現在マップ(第1のマップ)に基づいて、自律移動ロボットの自己位置に関する情報を生成する。すなわち、トラッキング機能31cは、取得機能31bから受け取ったセンサデータを用いてトラッキング処理を実行する。また、トラッキング機能31cは、取得機能31bからのセンサデータを用いて環境マップを推定する。
 ここで、環境マップは、自律移動ロボットを含む環境上に存在する物体の各点の三次元座標を含む情報である。また、トラッキング処理とは、その時に保持しているキーフレーム(三次元復元において重要な映像を構成するフレーム)から現在フレームへのカメラの位置・姿勢の変化をトラッキングすることで、現在の自己位置を推定する処理である。すなわち、トラッキング処理は、キーフレームから現在フレームへの変換を算出することで自己位置推定する処理である。
 具体的なトラッキング処理としては、例えば、間接法又は直接法を採用することができる。ここで、間接法とは、キーフレームの画像及び現在フレームの画像からから特徴点及び特徴量を取得し、特徴点マッチングを解いたのちに、マッチした特徴点ペアを用いて、現在フレームのカメラの位置・姿勢を推定する処理である。また、直接法とは、特徴点等を用いず、フレーム画像間で全画素の輝度差或いは測光誤差が少なくなるようにカメラの移動量を推定する処理である。
 図3は、トラッキング処理(直接法)の一例を説明するための図である。図3において、FR(T)は位置Tのキーフレームの画像、FT(T)は位置Tの対象フレーム(例えば現在フレーム)の画像、点Pはキーフレームの画像FR(T)上の点、点P´は対象フレームの画像FT(T)の画像上の逆深度dPによる点Pの投影点、Nは点P近傍のピクセルパタン、Πは点P´の投影関数、Π -1は点Pの逆投影関数をそれぞれ意味する。直接法では、ピクセルパタンN、各フレームの露光時間、投影関数Πと逆投影関数Π -1とを用いた点Pと点P´との関係式等を用いて、キーフレームの画像FR(T)上の点Pが対象フレームの画像FT(T)上で観察されたときの測光誤差(フレームFR-FT間の測光誤差)を定義する。そして、フレームFR-FT間の測光誤差が少なくなるように、カメラ移動量を推定する。
 なお、トラッキング処理によって得られる情報は、自律移動ロボットの自己位置に関する情報の一例である。
 本実施形態のトラッキング精度判定機能31dは、自己位置に関する情報に基づいて自己位置推定に関する精度を判定する。すなわち、トラッキング精度判定機能31dは、トラッキング処理によって推定された各フレームでの自己位置推定精度を逐次的に判定する。自己位置推定精度の判定は、例えば以下の基準を採用することができる。
 例えば、トラッキング精度判定機能31dは、近傍キーフレームより自律移動ロボットの位置姿勢が所定閾値以上変化した場合(極端に長い距離を移動したと計測された場合等)には、ロボットの制約に基づいて、当該フレームの自己位置推定精度が低いと判定する。また、トラッキング精度判定機能31dは、二次元平面上しか移動しない自律移動ロボットの推定された自己位置が二次元平面上に載っていなければ、当該フレームの自己位置推定精度が低いと判定する。また、トラッキング精度判定機能31dは、現在の自律移動ロボットの移動速度や回転量が今までの移動速度や回転量から大きく変化している場合、上限速度や上限回転量を超えている場合には、当該フレームの自己位置推定精度が低いと判定する。
 また、トラッキング精度判定機能31dは、環境マップを用いて各フレームの自己位置推定精度を判定することができる。例えば、トラッキング精度判定機能31dは、環境上の三次元点群のうち、フレーム間で対応する(同一とみなせる)点群を抽出する。トラッキング精度判定機能31dは、抽出した点群の数が所定閾値より少なる場合、点群の減少数が所定の閾値以上である場合には、当該フレームの自己位置推定精度が低いと判定する。
 なお、上述した各基準を示す情報は、任意の手法により定量化することができる。
 本実施形態のキーフレーム判定機能31eは、トラッキング処理によって自律移動ロボットの位置姿勢が推定された各フレームに対してキーフレーム判定処理を実行する。ここで、キーフレーム判定処理とは、各フレームがキーフレームであるか否かを判定する処理であり、例えば、前キーフレームのシーンに対して現フレームのシーンが大きく変化しているか否かを基準として実行される。
 具体的には、キーフレーム判定機能31eは、所定の指標を用いてキーフレーム判定処理を実行する。所定の指標としては、例えば、オプティカルフローの長さ(画像上で変化量)、トラッキング処理で得られた自立移動ロボットの移動量や回転量またはその分散、IMUセンサで取得した角速度や加速度の大きさ、トラッキング処理したときのエラーの大きさ、露光時間などカメラの設定パラメータ値の閾値以上の変化量、BoVW(Bag of Visual Words)スコア(シーン特徴)等の画像類似度、フレーム間で共通で見えている特徴点の数等のうちの少なくとも一つを採用することができる。また、キーフレーム判定機能31eは、所定時間間隔でサンプリングするフレーム、バンドル調整等の他の処理が終わったタイミングで取得したフレーム、サーバ側の処理が完了していて新しいフレームを要求されているタイミングで取得したフレームをキーフレームとすることもできる。さらに、キーフレーム判定機能31eは、機械学習等によって生成された学習済モデルを用いてキーフレームを判定することもできる。
 なお、トラッキング精度判定処理とキーフレーム判定処理とにおいて、処理内容が一部重複する場合がある。例えば、フレーム間のセンサデータ変動が多いこと等によりトラッキング精度が劣化したタイミングで取得されたフレームは、キーフレームと判定される場合がある。係る場合、トラッキング精度判定処理とキーフレーム判定処理の処理内容は同様とし、キーフレーム判定と新規マップ生成判定とで個別の判定閾値を採用することで効率化することもできる。
 本実施形態のバンドル調整機能31fは、自律移動ロボットの制御に用いられる現在マップに基づいて、自律移動ロボットの自己位置に関する情報を生成する。すなわち、バンドル調整機能31fは、キーフレームと判定された場合に、最新のキーフレームを含む複数のキーフレームを用いて、バンドル調整処理を実行する。ここで、バンドル調整処理は、トラッキング処理によって得られた各キーフレームのカメラの姿勢の推定値を初期値として、自律移動ロボットの姿勢や点群の三次元位置を高精度に推定する処理である。バンドル調整機能31fは、キーフレームにおけるカメラのポーズ(自己位置及び姿勢)を用いて最適化することで、より精度の高いカメラの姿勢及び環境マップを算出する。
 図4、図5は、本実施形態に係るバンドル調整処理の一例を説明するための図である。図4においては、フレームjの画像Z上の特徴点ui,j、フレームj+1の画像Zj+1上の特徴点ui,j+1をそれぞれ対応付けて示している。また、図5においては、R、tはそれぞれフレームjでのカメラCの回転と並進を、Rj+1、tj+1はそれぞれフレームjでのカメラCj+1の回転と並進を、それぞれ示している。また、図5におけるui,j、ui,j+1は、それぞれフレームjの画像Z、フレームj+1の画像Zj+1における特徴点である。
 バンドル調整処理は、フレームi、フレームi+1間のカメラの回転及び並進運動と、投影関数f(x,R,t)とを用いて、例えば以下の式(1)を最小化する処理とすることができる。
Figure JPOXMLDOC01-appb-M000001
 ここで、位置xは、フレームjでのカメラC[R、t]と特徴点ui,jの投影点とを結んだ光線と、フレームj+1でのカメラCj+1[Rj+1、tj+1]と特徴点ui,j+1の投影点とを結んだ光線とによって定義される三次元点である。
 なお、バンドル調整処理によって得られる情報は、自律移動ロボットの自己位置に関する情報の一例である。
 本実施形態のバンドル調整精度判定機能31gは、自己位置に関する情報に基づいて自己位置推定に関する精度を判定する。すなわち、バンドル調整精度判定機能31gは、トラッキング精度判定処理と同様に、バンドル調整処理において推定された各キーフレームでのカメラの位置姿勢を評価する。なお、バンドル調整においては、カメラの位置姿勢が大きく変化する場合を考慮し、自律移動ロボットの移動に関する制約などを用いることもできる。
 バンドル調整精度判定機能31gは、三次元点の数が所定閾値より少なくなった場合、三次元点の減少数が所定閾値以上となった場合等には、バンドル調整精度が劣化したと判定する。また、例えば、バンドル調整精度判定機能31gは、バンドル調整処理時に外れ値除去の処理において、三次元点群の減少数が所定閾値以上となった場合には、バンドル調整精度が劣化したと判定することもできる。
 なお、上述した各バンドル調整精度判定に用いる情報は、任意の手法により定量化することができる。
 本実施形態の事前マップローカリゼーション機能31hは、キーフレーム判定時に取得されたセンサデータを用いて、事前マップ上の各位置姿勢と、(通常事前マップ生成時に同様の判定方法でキーフレームと判定されたフレーム)の情報とのマッチングし、事前マップローカリゼーション処理を実行する。事前マップローカリゼーション機能31hは、マッチングされた事前マップ(該当するポーズグラフ)上の位置姿勢を示す頂点(ノード)と現在マップ(該当するポーズグラフ)のノード間でエッジを張る。また、事前マップローカリゼーション機能31hは、後述する新規マップ生成判定処理の結果、新規マップを生成する場合には、更新されていない現在マップに対して事前マップローカリゼーション処理を行う。事前マップローカリゼーション処理によって得られた情報は、マップ生成機能31j、新規マップ生成判定機能31kへ送出される。
 なお、ポーズグラフとは、頂点にフレームの位置姿勢、エッジに端点間の相対位置姿勢を紐付けた有向グラフをいう。
 なお、事前マップローカリゼーション処理におけるマッチング処理は、センサデータに限らず、例えば画像を保持している場合には画像から得られる特徴量を用いて実行することもできる。例えば、画像の特徴点から特徴量を取得し、得られた特徴量を画像全体で統計的に処理した統計量を用いることができる。
 画像を用いる場合、事前マップローカリゼーション処理は、例えば以下のような工程により実行される。
[画像マッチング処理(マッチング候補抽出処理)]
 画像から何らかの特徴量を取得してマッチング処理を行い事前マップ内のノード候補を選択する。通常、この処理には各ノードに規定されているエッジの情報は考慮しない。特徴量は、例えば、画像中から特徴点及び特徴量を取得して、画像全体でヒストグラムなどの統計量を取得し、画像全体の特徴量を採用することができる。
[特徴点マッチング工程(マッチング候補絞り込み工程)]
 この工程では、画像マッチング工程で取得されたマッチング候補の中からさらに詳細なマッチング処理を行って候補を絞り込む。例えば、現在のキーフレーム画像の特徴点とマッチング候補画像の各特徴点同士のマッチングスコアを計算し、それらのスコアからさらに候補を絞りこむ。
[位置姿勢推定工程]
 特徴点マッチング工程において絞り込みが行われた候補画像の事前マップにおける位置姿勢情報から、キーフレーム画像の位置姿勢を算出する。
[時系列方向についての整合化工程]
 位置姿勢推定工程において推定された位置姿勢結果が確からしいかを判定して、最終的にキーフレームの事前マップにおける自己位置を推定する。例えば、直近のキーフレームの自己位置姿勢などから、推定した自己位置姿勢が時系列的に見て確からしいかを判定する。
 ループ閉じ込み判定機能31iは、自律移動時に生成する現在マップ上において、ローカリゼーション処理と同様に、センサデータを用いてマッチングすることで、現在マップ上で再訪しているかどうかを検出する。再訪が検出された場合には事前マップに該当するポーズグラフ上のノード間にエッジを張る。
 マップ生成機能31jは、自律移動ロボットの自律移動開始と同時にマップ生成を開始する。マップ生成機能31jは、最初のフレーム及びキーフレームの情報を保持する。マップ生成機能31jは、ポーズグラフを生成する際には、キーフレーム間の相対位置姿勢を算出しエッジとする。
 また、マップ生成機能31jは、自律移動時に順次取得されるセンサデータを用いて環境マップを生成する。本実施形態では、環境マップをポーズグラフで表現することもある。典型的には、マップ生成機能31jは、キーフレームにおけるポーズと、当該キーフレームを用いて得られる環境マップを保持する。また、マップ生成機能31jは、キーフレームに対応するセンサデータ(若しくはその一部)を保持することもできる。
 また、マップ生成機能31jは、ポーズグラフ最適化処理を実行する。すなわち、マップ生成機能31jは、事前マップローカリゼーション処理、ループ閉じ込み判定処理によって得られたポーズグラフを用いて、ポーズグラフ最適化を行い、ループ上かつ現在のポーズグラフ上のノードに該当する自己位置姿勢を最適化する。
 すなわち、マップ生成機能31jは、次の式(2)、(3)で示される評価関数Fを最小とする頂点群を算出し、自己位置姿勢を最適化する。
Figure JPOXMLDOC01-appb-M000002
 ここで、Cはループ内のエッジ集合、Ωは所定の重み、xは頂点(ノード)iに基づく位置姿勢(ポーズ)、xは頂点jに基づく位置姿勢(ポーズ)座標、zijはエッジに紐づく相対位置姿勢の値、eは誤差関数、Fは評価関数である。
 また、マップ生成機能31jは、新規マップ生成判定機能31kが新規マップ(第2のマップ)を生成すると判定した場合、複数のフレームのセンサデータを用いて新規マップを生成する。
 新規マップ生成判定機能31kは、自己位置推定に関する精度に基づいて、新規マップを生成するか否かを判定する。すなわち、新規マップ生成判定機能31kは、トラッキング精度判定処理、バンドル調整精度判定処理において自己位置推定精度が劣化していると判定された場合、ローカリゼーション検出が所定フレーム(時間)以上できない場合に、新規マップを生成すると判定する。この新規マップは、現在生成しているマップとは別に、新たに生成されるマップである。また、新規マップが生成された以降は、その直前まで生成していたマップは、生成済マップとして保存され管理されることになる。
 なお、ローカリゼーション検出が実行されたフレームの情報は自己位置に関する情報の一例であり、ローカリゼーション検出ができないフレーム数(時間)は、自己位置推定に関する精度の一例である。
 事前マップにおける自己位置を推定し、その付近の位置姿勢におけるノードが存在するにもかかわらずローカリゼーション結果が検出されない場合、事前マップを取得したときと比較して、環境が部分的にでも変化していると考えられる。係る状況を示す情報が取得された場合には、新規マップ生成判定機能31kは、新規マップを生成すると判定する。
 新規マップ生成判定機能31kが新規マップを生成すると判定した場合、マップ生成機能31jは、現在の自己位置を原点とする新たなポーズグラフを初期化し、新規マップとして生成する。マップ生成機能31jは、新規マップに対応するポーズグラフにノード及びエッジを追加する。
 また、マップ生成機能31jにより新規マップが生成された場合には、トラッキング処理及びバンドル調整処理も初期化される。すなわち、制御機能31aは、新規マップが生成された場合には、各機能において今までとは別のSLAM座標系を再定義する。
 マップ更新機能31mは、新規マップ、少なくとも一つの事前マップ、少なくとも一つの生成済マップを用いて、マップ更新処理を実行する。このマップ更新処理は、マップ選択処理、マップ統合処理、マップ編集処理の少なくとも一つを含むものである。以下、各処理について説明する。
[マップ選択処理]
 予め複数の事前マップを所持している場合、新規マップ、少なくとも一つの生成済マップ、少なくとも一つの事前マップを保持している場合等、複数のマップを所持している状況が発生する。係る状況においては、マップ更新機能31mは、事前マップローカリゼーション処理でローカリゼーション検出されたマップを第一優先事前マップとして選択する。マップ生成機能31jは、それ以降の自己位置推定を選択された第一優先事前マップ上で行う。
 なお、マップ生成機能31jは、事前マップローカリゼーション処理にローカリゼーションが所定フレーム以上検出されなかった場合、他の少なくとも一つの事前マップ、他の少なくとも一つの生成済マップとのマッチングを行うことも可能である。マップ更新機能31mは、他の事前マップや他の生成済マップ等とのマッチング結果に基づいて、自己位置推定に用いるマップを選択する。
[マップ統合処理]
 マップ更新機能31mは、複数あるマップのうちの少なくとも二つを用いて、マップ統合処理を実行する。
 図6、図7は、マップ更新処理を説明するためのポーズグラフの一例を示している。図6、図7は、複数の事前マップM、生成済マップM、生成済マップMより新しい生成済マップM、現在マップとしての新規マップMをそれぞれ例示している。
 例えば、マップ更新機能31mは、事前マップローカリゼーション処理においてローカリゼーション結果が検出された場合(例えば、図6に示した様に、生成済マップMと現在マップMを表現するポーズグラフ間でエッジEが張られた場合)、生成済マップMと現在マップMとを統合(マージ)する。ここで、マップの統合とは、エッジが張られた複数のマップを一つのマップ(統合マップ、第3のマップ)とみなすことを意味する。マップ更新機能31mは、現在マップを統合マップに更新する。
 また、図7に示した様に、マップ更新機能31mは、例えば、生成済マップMと現在マップMを表現するポーズグラフ間でエッジEが張られた場合、生成済マップMと現在マップMとを統合する。その結果、生成済マップM、生成済マップM、現在マップMは統合された一つの統合マップとみなされる。マップ更新機能31mは、現在マップを新たな統合マップに更新する。
 また、図7に示した様に、マップ更新機能31mは、例えば、事前マップMと現在マップMを表現するポーズグラフ間でエッジEが張られた場合、事前マップMと現在マップMとを統合する。その結果、事前マップM、生成済マップM、生成済マップM、現在マップMは統合された一つの統合マップとみなされる。マップ更新機能31mは、現在マップを新たな統合マップに更新する。
 マップ更新機能31mによって複数のマップが統合され現在マップが統合マップに更新された場合には、当該統合マップを現在マップとして以降のマップ生成処理、ローカリゼーション処理、最適化処理を実行する。例えば、生成済マップと新規マップ(現在マップ)とが統合された場合には、バンドル調整処理において両座標系で定義されている点群をマージすることもできる。
 また、マップ更新機能31mは、新規マップ生成が数回行われている場合(例えば、新規マップ生成回数が閾値を超えた場合、新規マップの数が閾値を超えた場合等)、生成済マップが多く増え過ぎることを抑制するためにマップ統合処理を実行する。具体的には一つのポーズグラフとして保持する。
[マップ編集処理]
 マップ更新機能31mは、例えば事前マップや生成済マップにおいて、ローカリゼーション結果が基準期間経過しても検出されないノード及びエッジを消去することで、マップ編集を行う。例えば図7に示した事前マップMにおいて、ノードNに対して基準期間経過してもローカリゼーション結果が検出されない場合には、当該ノードNを事前マップMから削除する。これは、ノードNを環境変化などにより不要なマップ情報として判断することができるからである。また、ローカリゼーション結果が基準期間経過しても検出されないマップそのものを削除することも可能である。さらに、マップ更新機能31mは、その他容量制限や事前マップ生成時からの経過時間などから、ローカリゼーション結果が検出されないノード及びエッジを消去しても良い。
 図1に戻り、主記憶装置33は、プロセッサ31が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置33に記憶された情報がプロセッサ31により読み出される。補助記憶装置35は、主記憶装置33以外の記憶装置である。なお、事前マップ、生成済マップ、新規マップ、統合マップ等の各種マップ、センサデータ等は、主記憶装置33や補助記憶装置35に記憶される。
 これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。実施形態における後述の各種機能において用いられる各種データを保存するための記憶装置は、主記憶装置33又は補助記憶装置35により実現されてもよく、プロセッサ31に内蔵される内蔵メモリにより実現されてもよい。例えば、実施形態における記憶部は、主記憶装置33又は補助記憶装置35に対応する。また、主記憶装置33又は補助記憶装置35は、少なくとも1つのメモリに対応する。
 ネットワークインタフェース37は、無線又は有線により、ネットワーク5に接続するためのインタフェースである。
 デバイスインタフェース39は、バス41を介して、検出装置8、表示装置211、入力装置213とプロセッサ31とを直接的または間接的に接続する。なお、デバイスインタフェース39は、USB(Universal Serial Bus)等の接続端子を有していてもよい。また、デバイスインタフェース39には、接続端子を介して、外部記憶媒体や記憶装置(メモリ)などが接続されてもよい。
(新規マップ自動生成及びマップ自動更新を含むSLAM)
 次に、第1の実施形態に係る情報処理装置2が実行する、新規マップ自動生成及びマップ自動更新を含むSLAMについて説明する。なお、以下の説明においては、例えば、事前マップを利用した自律移動中に自己位置推定をロストした場合を想定している。
 図8は、本実施形態に係る情報処理装置2が実行する、新規マップ自動生成及びマップ自動更新を含むSLAMの流れを示したフローチャートである。図8に示した様に、トラッキング機能31cは、取得機能31bから受け取ったフレーム毎のセンサデータを用いてトラッキング処理を実行する(ステップS1)。また、マップ生成機能31jは、自律移動ロボットの自律移動開始と同時にマップ生成を開始する(ステップS8)。
 トラッキング精度判定機能31dは、トラッキング処理によって推定された各フレームでの自己位置推定精度を逐次判定する(ステップS2)。トラッキング精度判定機能31dは、自己位置推定精度が閾値未満であると判定した場合には(ステップS2のNo)、自己位置推定精度が低いことを知らせる情報を新規マップ生成判定機能31kに送出する。一方、自己位置推定精度が閾値以上である場合には(ステップS2のYes)、処理はステップS3へ進む。
 キーフレーム判定機能31eは、各フレームに対してキーフレーム判定処理を実行する(ステップS3)。キーフレーム判定機能31eがキーフレーム無と判定した場合(すなわち、当該フレームがキーフレームと判定されなかった場合)には、ステップS1のトラッキング処理に戻る(ステップS3のNo)。一方、キーフレーム判定機能31eがキーフレーム有と判定した場合(すなわち、当該フレームがキーフレームであると判定した場合)には、ステップS4へ進む(ステップS3のYes)。
 バンドル調整機能31fは、複数のキーフレームを用いてバンドル調整処理を実行する(ステップS4)。
 バンドル調整精度判定機能31gは、バンドル調整精度が閾値以上であるか否かを判定する(ステップS5)。バンドル調整精度判定機能31gは、バンドル調整精度が閾値未満であると判定した場合には(ステップS5のNo)、バンドル調整精度が低いことを知らせる情報を新規マップ生成判定機能31kに送出する。一方、バンドル調整精度が閾値以上である場合には(ステップS5のYes)、処理はステップS6、ステップS7へ進む。
 事前マップローカリゼーション機能31hは、キーフレーム判定時に取得されたセンサデータを用いて、事前マップローカリゼーション処理を実行する(ステップS6)。また、事前マップローカリゼーション機能31hは、事前マップローカリゼーション処理によって得られた情報を、マップ生成機能31j、新規マップ生成判定機能31kへ送出する。なお、事前マップローカリゼーション処理においてマッチするキーフレームが検出されない場合には、ステップS1のトラッキング処理に戻る。
 ループ閉じ込み判定機能31iは、センサデータを用いたマッチングすることで、現在マップ上で再訪しているかどうかを検出し、ループ閉じ込み判定を実行する(ステップS7)。
 新規マップ生成判定機能31kは、例えば、トラッキング精度が閾値未満であること、バンドル調整精度が閾値未満であること、ローカリゼーション検出が所定フレーム以上できないことの少なくとも1つを契機として、新規マップを生成するか否かを判定する(ステップS9)。新規マップ生成判定機能31kが新規マップを生成すると判定した場合には(ステップS9のYes)、マップ生成機能31jは新規マップを生成する。一方、新規マップ生成判定機能31kが新規マップを生成しないと判定した場合には(ステップS9のNo)、処理はステップS10へ進む。
 マップ更新機能31mは、複数のマップを用いて、マップ選択処理、マップ統合処理等のマップ更新処理を実行する(ステップS10)。
 マップ生成機能31jは、事前マップローカリゼーション処理、ループ閉じ込み判定処理によって得られたポーズグラフと、マップ更新処理によって得られたマップを用いて、ポーズグラフ最適化を実行する(ステップS11)。
 制御機能31aは、自律移動ロボットの自律移動が終了したか否かを判定する(ステップS12)。自律移動ロボットの自律移動が終了していない場合には(ステップS12のNo)、ステップS1からステップS11までの処理が繰り返し実行される。一方、自律移動ロボットの自律移動が終了する場合には(ステップS12のYes)、制御機能31aは、新規マップ自動生成及びマップ自動更新を含むSLAMを終了する。
 なお、主記憶装置33に記憶された現在のマップ、或いは生成済マップ、統合マップは、任意のタイミングで読出し表示することができる。すなわち、制御機能31aは、入力装置213から入力される指示に応答して、指定されたマップを主記憶装置33から読出し、表示装置211に表示させる。
 以上述べた本実施形態に係る情報処理装置2は、取得部としての取得機能31b、情報生成部としてのトラッキング機能31c、バンドル調整機能31f、判定部と、マップ生成部としてのトラッキング精度判定機能31d、バンドル調整精度判定機能31gと、を備える。取得部は、自律移動体に設けられた検出装置により環境に関するセンサデータを取得する。情報生成部は、自律移動体の制御に用いられる現在マップに基づいて、自律移動体の自己位置に関する情報を生成する。判定部は、自己位置に関する情報に基づいて自己位置推定に関する精度を判定し、自己位置推定に関する精度に基づいて、新規マップを生成するか否かを判定する。
 すなわち、自律移動ロボットの自己位置精度に応じて新規マップの生成の要否を自動的に判定することができ、例えば、マップにおける自己位置推定精度を継続して保証できるか否かを判定することができる。従って、ユーザは新規マップの生成の要否のタイミングを自動的に把握することができ、自律移動体のユーザの負担軽減を実現することができる。その結果、例えば環境が変化するような多種多様な環境においても、自律移動ロボットを負担なく利用することができる。また、ユーザにとって使い勝手のよい自律移動ロボットを提供することができ、ユーザは自律移動アプリケーションを継続的に利用することができる。
 また、マップ生成部は、判定部が新規マップを生成すると判定した場合、複数のフレームのセンサデータを用いて、新規マップを生成する。
 従って、自律移動ロボットの自己位置精度に応じて新規マップを自動的に生成することができ、マップにおける自己位置推定精度を保証することができる。また、新規マップは自動的に生成されるため、ユーザによる新規マップ生成の指示を必要としない。従って、ロボット利用期間中のユーザへのマップ生成に関する負荷を軽減することができる。
 また、マップ更新機能31mは、新規マップを含む複数のマップに基づいて、自律移動ロボットの制御に用いられる現在マップを更新する。例えば、マップ更新機能31mは、新規マップを含む複数のマップのうちのいずれか一つを選択するマップ選択処理を実行し、選択されたマップを自律移動体の制御に用いられる現在マップとする。また、例えば、マップ更新機能31mは、新規マップを含む複数のマップのうちの少なくとも二つを用いて統合マップを生成し、統合マップを自律移動ロボットの制御に用いられる現在マップとする。また、例えば、マップ更新機能31mは、新規マップを含む複数のマップにおいて、ローカリゼーション結果が基準期間経過しても検出されないノード及びエッジを消去することで、マップ編集を行う。
 従って、情報処理装置2は、自己位置に関する情報の精度が低下した場合には、選択されたマップ、統合マップによる更新後のマップにより自己位置推定を行うことができる。特に、統合マップによる自己位置推定により、過去から現在までの情報の一貫性を利用した自己位置推定を実現することができる。その結果、自己位置推定の精度を自動的に改善することができる。
 また、情報処理装置2は、ローカリゼーション結果が基準期間経過しても検出されないノード及びエッジを消去し、マップ上から不要な情報を自動的に削除することができる。従って、不要な計算処理を低減することができる。
 また、例えば、自律移動ロボットによる自律移動や事前マップにおける自己位置を取得する環境において所持している事前マップが自己位置取得に有用でない場合、自律移動時において事前マップ取得時と環境が大きく変化している場合、事前マップ取得が十分でない場合(自律移動ルート上でのデータ取得が不十分である場合等)、複数の事前マップを所持しており選択する必要がある場合においても、ユーザ負担を軽減しつつ、自律移動ロボットのロバストな自律移動を実現することができる。
 特に、本実施形態に係る情報処理装置2は、人と協働するような環境や、環境が変化するような状況、例えば建設現場、ビルメンテナンス(掃除、警備、配送)、駅のホーム、工場等において自律移動ロボットを利用する場合に、有用性が高いと言える。
 (変形例1)
 上記実施形態においては、情報処理装置2がVisual SLAMを用いる場合を例として説明した。しかしながら、実施形態に係る情報処理装置2が実行する新規マップ自動生成及びマップ自動更新は、センサデータの種類や次元、マップの種類や次元に依存しない。すなわち、実施形態に係る情報処理装置2が実行する新規マップ自動生成及びマップ自動更新は、Visual SLAM以外のSLAMにおいても適用することができる。たとえば、Visual SLAMに用いるカメラではなく、LiDARを搭載してLiDAR SLAMを用いることもできる。また、どちらの場合でも他のIMUセンサなどを併用することも可能である。通常、LiDAR SLAMの場合には、Visual SLAMを用いるときと異なりキーフレーム判定やバンドル調整を行わないことが一般的である。このため、LiDAR SLAMを用いる場合には、例えばキーフレーム判定やバンドル調整は行わず、トラッキング処理精度により新規マップ生成判定を行うようにしてもよい。また、事前マップローカリゼーションやループ閉じ込み処理のために画像(カメラ)特徴を併用することも可能である。
 (変形例2)
 上記実施形態においては、情報処理装置2がトラッキング精度、バンドル調整精度に基づいて新規マップを自動的に生成し、新規マップを自動的に更新する場合を例示した。これらの自動的な処理に加えて、ユーザが自らマップ生成する処理を併用することも可能である。
 (変形例3)
 上記実施形態においては、情報処理装置2及び検出装置8が、自律移動ロボットに搭載された形態を例示した。これに対し、情報処理装置2、検出装置8、表示装置211、入力装置213の全てを自律移動ロボットに搭載することもできる。また、例えば、自律移動ロボットと通信可能な情報処理装置2を静止物に搭載する形態であってもよい。静止物は、地面に固定された物である。静止物は、移動不可能な物や、地面に対して静止した状態の物である。また、情報処理装置2は、自律移動ロボットと通信可能な外部装置7やクラウド上で処理を実行するクラウドサーバに搭載されていてもよい。このように、自律移動体と自律移動体と物理的に分離した情報処理装置を含む自立移動体システムを構成してもよい。
 (適用例1)
 上記実施形態においては、事前マップを利用した自律移動中に自己位置推定をロストした場合を想定した。これに対し、本適用例1では、事前マップ生成時よりもかなり時間が経過し環境が変化している場合への適用を想定する。
 係る場合、図8のステップS9において、新規マップ生成判定機能31kは、トラッキング処理及びバンドル調整処理によって得られた自己位置から事前マップ上の自己位置を推定する。新規マップ生成判定機能31kは、推定された自己位置付近で取得した事前マップ上のノード情報とマッチングスコアが低い場合には環境変化が起きている、若しくは事前マップ生成時のデータ取得が不十分であると判定し、「新規マップ生成要」と判定する(ステップS9のYes)。マップ生成機能31jは、新規マップ生成判定機能31kからの指示に応答して、新規マップ生成を行う(ステップS8)。
 (適用例2)
 本適用例2では、自律移動ロボットを手動操作した後に自律移動させる場合への適用を想定する。
 係る場合、事前マップローカリゼーション処理によって事前マップとのエッジが検出されるまでは現在マップ原点からの相対位置姿勢の推定のみを行う。この際にユーザによって事前マップ上の目的地を指定された場合には、事前マップとのマップローカリゼーションが行えるまで、自律移動のみを行う。
 (適用例3)
 本適用例3では、事前マップがない状態で自律移動ロボットを自律移動させる場合への適用を想定する。
 係る場合、初期状態で事前マップローカリゼーション処理においてマップローカリゼーション結果が検出されない場合には、該当する事前マップがないとして新規マップ生成を行う。事前マップとのマップローカリゼーション結果が検出されれば、マップ統合などの処理を行うが、自律移動中マップローカリゼーション結果が検出されなければ新規マップ生成のみを行って処理を終了する。
(適用例4)
 上述の実施形態においては、トラッキング精度やバンドル調整精度が悪いと判断された場合に、新規マップが生成され、SLAM処理が初期化される。初期化後は、新規マップを用いることにより、自己位置推定の精度を自動的に改善することができる。
 しかしながら、環境や自律移動ロボットや検出装置の状態によって、新規マップの生成・SLAM処理の初期化を行っても上述の精度が改善せず、複数回同様の処理が繰り返し実行されるケースが想定される。そのような場合には、新規マップの生成・SLAM処理の初期化以外に、環境、自律移動ロボット、検出装置のうちの少なくとも一つの状態を異ならせることで、精度を改善する方法を行うこともできる。
 例えば、自律移動ロボットの場合のナビゲーション方法を変更する等(その場で回転する、以前の経路とは異なる経路を選択するようなナビゲーションをする、ユーザとの間で自律移動ロボットの移動を促す通信を行う等)の処理を実行することで、環境、自立移動ロボットの状態、検出装置が取得可能な情報を変更することができる。また、マップにおける過去のルートに従って自己位置がロストしにくい場所に自律移動ロボットを誘導すること等により、環境、自立移動ロボットの状態、検出装置が取得可能な情報を変更することもできる。
 なお、上記自己位置がロストしにくい場所への誘導や自律移動ロボットの移動させる地点は、例えば、トラッキング精度やバンドル調整精度が悪いと判断される前のマップ上で、現在の自律移動ロボットの位置をロボットの運転時間やモータのエンコーダ情報を利用することで予測することができる。この予測位置とマップ上で以前に推定された己位置からルートを生成することで、移動を実行することができる。また、マップ上で自己位置推定が再度実行された場合には、マップ統合機能による処理が実行され、再度自律移動を実施することができる。
(適用例5)
 また、適用例4と同様に複数回新規マップが生成され、SLAM処理が初期化される状態になった場合に、当該自律移動ロボットが取得する情報以外の情報を用いて、当該自律移動ロボットの状態を改善することもできる。
 例えば、当該自律移動ロボットが自己位置を推定することができていない場合、検出装置8とは別のセンサで当該自律移動ロボットを観測する。より具体的には、当該自律移動ロボットとは別の自律移動ロボットに搭載されたセンタによって当該自律移動ロボットを観測する。こうして得られた検出装置8とは異なるセンサからのデータを用いて生成されるマップ上で、当該自律移動ロボットの自己位置を推定し、その位置に応じて当該自律移動ロボットに関するナビゲーションを行う。そして、当該自律移動ロボットの自己位置推定が復帰した場合には、当該自律移動ロボットが所持しているマップを用いた自律移動処理を再度実行することもできる。
(補足説明)
 前述した実施形態における各装置の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、又はGPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、フレキシブルディスク、CD-ROM(Compact Disc-Read Only Memory)、又はUSBメモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアがASIC(Application Specific Integrated Circuit)、又はFPGA(Field Programmable Gate Array)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
 ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
 図1のコンピュータとしての情報処理装置2は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図1では、1台の情報処理装置2が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース37等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における情報処理装置2は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
 前述した実施形態における情報処理装置2の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介して情報処理装置2と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
 プロセッサ31は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit, Processing circuitry、CPU、GPU、FPGA、又はASIC等)であってもよい。また、プロセッサ71は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ31は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ31は、量子コンピューティングに基づく演算機能を含むものであってもよい。
 プロセッサ31は、コンピュータとしての情報処理装置2の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ31は、情報処理装置2のOS(Operating System)や、アプリケーション等を実行することにより、情報処理装置2を構成する各構成要素を制御してもよい。
 実施形態における各種機能は、1又は複数のプロセッサ31により実現されてもよい。ここで、少なくとも1つのプロセッサ31は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいはデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
 主記憶装置33は、プロセッサ31が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置33に記憶された情報がプロセッサ31により読み出される。補助記憶装置35は、主記憶装置33以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における情報処理装置2において各種データを保存するための記憶装置は、主記憶装置33又は補助記憶装置35により実現されてもよく、プロセッサ31に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶部102は、主記憶装置33又は補助記憶装置35により実現されてもよい。
 記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における情報処理装置2が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ))とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
 ネットワークインタフェース37は、無線又は有線により、ネットワーク5に接続するためのインタフェースである。ネットワークインタフェース37は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース37により、ネットワーク5を介して接続された外部装置7と情報のやり取りが行われてもよい。なお、ネットワーク5は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等の何れか、又は、それらの組み合わせであってよく、情報処理装置2と外部装置7との間で情報のやり取りが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
 デバイスインタフェース39は、外部装置7と直接接続するUSB等のインタフェースである。
 外部装置7は情報処理装置2とネットワーク5を介して接続されている装置である。外部装置7は情報処理装置2と直接接続されている装置である。
 外部装置7は、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、又はタッチパネル等のデバイスであり、取得した情報を情報処理装置2に与える。また、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
 また、外部装置7は、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
 また、外部装置7は、記憶装置(メモリ)であってもよい。例えば、外部装置7はネットワークストレージ等であってもよく、外部装置7はHDD等のストレージであってもよい。
 また、外部装置7は、前述した実施形態における情報処理装置2の構成要素の一部の機能を有する装置でもよい。つまり、情報処理装置2は、外部装置7の処理結果の一部又は全部を送信又は受信してもよい。
 本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)は、a、b、c、a-b、a-c、b-c、又はa-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
 本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
 本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
 本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。
 本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
 本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
 本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
 本明細書(請求項を含む)において、「最大化(maximize)」等の用語は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。
 以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。

Claims (13)

  1.  自律移動体に設けられた検出装置により環境に関するセンサデータを取得する取得部と、
     前記センサデータと、前記自律移動体の自律移動の制御に用いられる現在マップと、に基づいて、前記自律移動体の自己位置に関する情報を生成する情報生成部と、
     前記自己位置に関する情報に基づいて自己位置推定に関する精度を判定する判定部と、
     を備える情報処理装置。
  2.  前記自己位置に関する情報は、前記自律移動体の自己位置の推定において実行されるトラッキング処理、バンドル調整処理、ローカリゼーション検出の少なくともいずれかによって得られる情報である、
     請求項1に記載の情報処理装置。
  3.  前記自己位置推定に関する精度は、トラッキング精度、バンドル調整精度、ローカリゼーション検出が行われなかった時間のいずれか1つである、請求項1または2に記載の情報処理装置。
  4.  前記判定された自己位置に関する精度が閾値未満の場合、新規マップを生成する処理、または、前記現在マップを更新する処理、の少なくともいずれかを行う、請求項1乃至3のいずれか一項に記載の情報処理装置。
  5.  判定した前記自己位置に関する精度に応じた処理を行う、請求項1乃至3のいずれか一項に記載の情報処理装置。
  6.  前記処理は、新規マップを生成する処理、または、前記現在マップを更新する処理のいずれかを含む、請求項5に記載の情報処理装置。
  7.  前記処理として、前記判定部は前記精度に基づいて新規マップを生成するか否かを判定する処理を行う、請求項5に記載の情報処理装置。
  8.  前記判定部が前記新規マップを生成すると判定した場合、前記センサデータを用いて、前記新規マップを生成するマップ生成部と、
     を備える請求項7に記載の情報処理装置。
  9.  前記新規マップを含む複数のマップに基づいて、前記自律移動体の自律移動の制御に用いられる前記現在マップを更新する更新部、
     をさらに備える請求項7または8に記載の情報処理装置。
  10.  前記更新部は、前記複数のマップのうちのいずれか一つを選択し、前記選択されたマップを前記自律移動体の自律移動の制御に用いられる前記現在マップとする、
     請求項9に記載の情報処理装置。
  11.  前記更新部は、前記複数のマップのうちの少なくとも二つを用いて統合マップを生成し、前記統合マップを前記自律移動体の自律移動の制御に用いられる前記現在マップとする、
     請求項9に記載の情報処理装置。
  12.  前記更新部は、新規マップを含む複数のマップにおいて、ローカリゼーション結果が基準期間経過しても検出されないノード及びエッジを消去しマップ編集を実行する、
     請求項9に記載の情報処理装置。
  13.  前記新規マップを含む前記複数のマップのうちのいずれかを表示部に表示させる制御部、
     をさらに備える請求項9乃至12のいずれか一項に記載の情報処理装置。
PCT/JP2022/004134 2021-02-10 2022-02-02 情報処理装置 WO2022172831A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-020014 2021-02-10
JP2021020014 2021-02-10

Publications (1)

Publication Number Publication Date
WO2022172831A1 true WO2022172831A1 (ja) 2022-08-18

Family

ID=82838813

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/004134 WO2022172831A1 (ja) 2021-02-10 2022-02-02 情報処理装置

Country Status (1)

Country Link
WO (1) WO2022172831A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016089A (ja) * 2017-07-05 2019-01-31 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP2020021257A (ja) * 2018-07-31 2020-02-06 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP2020060498A (ja) * 2018-10-12 2020-04-16 パイオニア株式会社 情報処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016089A (ja) * 2017-07-05 2019-01-31 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP2020021257A (ja) * 2018-07-31 2020-02-06 カシオ計算機株式会社 自律移動装置、自律移動方法及びプログラム
JP2020060498A (ja) * 2018-10-12 2020-04-16 パイオニア株式会社 情報処理装置

Similar Documents

Publication Publication Date Title
CN109307508B (zh) 一种基于多关键帧的全景惯导slam方法
CN107990899B (zh) 一种基于slam的定位方法和系统
CN112567201B (zh) 距离测量方法以及设备
KR101725060B1 (ko) 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
CN107160395B (zh) 地图构建方法及机器人控制系统
KR101776621B1 (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
KR101776622B1 (ko) 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
JP6198230B2 (ja) 深度カメラを使用した頭部姿勢トラッキング
JP5881743B2 (ja) 奥行きマップを使用したモバイルカメラの自己位置推定
KR101784183B1 (ko) ADoG 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
US8896660B2 (en) Method and apparatus for computing error-bounded position and orientation of panoramic cameras in real-world environments
CN109461208B (zh) 三维地图处理方法、装置、介质和计算设备
WO2020221307A1 (zh) 一种运动物体的追踪方法和装置
CN110874100A (zh) 用于使用视觉稀疏地图进行自主导航的系统和方法
JP2019215853A (ja) 測位のための方法、測位のための装置、デバイス及びコンピュータ読み取り可能な記憶媒体
JP7131994B2 (ja) 自己位置推定装置、自己位置推定方法、自己位置推定プログラム、学習装置、学習方法及び学習プログラム
US10636190B2 (en) Methods and systems for exploiting per-pixel motion conflicts to extract primary and secondary motions in augmented reality systems
US20190301871A1 (en) Direct Sparse Visual-Inertial Odometry Using Dynamic Marginalization
JP7369847B2 (ja) 自動運転車両に対するデータ処理方法及び装置、電子機器、記憶媒体、コンピュータプログラム、ならびに自動運転車両
CN112880674A (zh) 一种行驶设备的定位方法、装置、设备及存储介质
WO2023087681A1 (zh) 定位初始化方法、装置、计算机可读存储介质和计算机程序产品
CN114972668A (zh) 基于高度信息的激光slam方法和系统
KR20220004604A (ko) 장애물의 검출 방법, 전자 기기, 노변 기기 및 클라우드 컨트롤 플랫폼
CN113984068A (zh) 定位方法、定位装置和计算机可读存储介质
WO2022172831A1 (ja) 情報処理装置

Legal Events

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

Ref document number: 22752658

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22752658

Country of ref document: EP

Kind code of ref document: A1