Patent Publication Number: US-11662738-B2

Title: Autonomous mobile apparatus, autonomous move method, and recording medium that use a selected environment map

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims the benefit of Japanese Patent Application No. 2018-042608, filed on Mar. 9, 2018, the entire disclosure of which is incorporated by reference herein. 
     FIELD 
     This application relates generally to an autonomous mobile apparatus, an autonomous move method, and a recording medium. 
     BACKGROUND 
     Autonomous mobile apparatuses that create an environment map and autonomously moves, such as cleaning robots that automatically clean indoor spaces, have become in wide use. When images that are captured by a camera are used for creating an environment map, the contents of the created environment map are significantly influenced by environment such as the lights. Therefore, if its own location is estimated using an environment map in an environment that is different from such environment as the lights in which the environment map is created, the performance in estimating the location is largely deteriorated. As a technique for solving this problem, International Publication No. 2016/016955 describes an autonomous mobile apparatus that estimates its own location based on the location of a landmark in the surrounding environment so as to enable estimation of its own location that is less influenced by external disturbance. 
     SUMMARY 
     The autonomous mobile apparatus of the present disclosure is an autonomous mobile apparatus, including a memory and a processor. The processor is configured to acquire environment information that is information of a surrounding environment of the autonomous mobile apparatus, based on the acquired environment information, select, as an estimation environment map, an environment map that is suitable for the surrounding environment from among environment maps that are saved in a memory, and estimate a location of the autonomous mobile apparatus using the selected estimation environment map and an image of surroundings of the autonomous mobile apparatus that is captured by an imager. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       A more complete understanding of this application can be obtained when the following detailed description is considered in conjunction with the following drawings, in which: 
         FIG.  1    is an illustration that shows the appearance of the autonomous mobile apparatus according to Embodiment 1 of the present disclosure; 
         FIG.  2    is an illustration that shows the appearance of the charger according to Embodiment 1; 
         FIG.  3    is an illustration for explaining feedback signals that are transmitted by the charger according to Embodiment 1; 
         FIG.  4    is a diagram that shows the functional configuration of the autonomous mobile apparatus according to Embodiment 1; 
         FIG.  5    is a chart that shows the data structure of an environment map that is created by the autonomous mobile apparatus according to Embodiment 1; 
         FIG.  6    is a flowchart of the start-up procedure of the autonomous mobile apparatus according to Embodiment 1; 
         FIG.  7    is a flowchart of the own location estimation thread of the autonomous mobile apparatus according to Embodiment 1; 
         FIG.  8    is a flowchart of the environment map saving procedure of the autonomous mobile apparatus according to Embodiment 1; 
         FIG.  9    is a flowchart of the environment map extraction procedure of the autonomous mobile apparatus according to Embodiment 1; 
         FIG.  10    is a flowchart of the relocalization procedure of the autonomous mobile apparatus according to Embodiment 1; and 
         FIG.  11    is a flowchart of the own location estimation thread of the autonomous mobile apparatus according to Modified Embodiment 2 of Embodiment 1 of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     The autonomous mobile apparatus according to an embodiment of the present disclosure will be described below with reference to the drawings. Here, in the figures, the same or corresponding parts are referred to by the same reference numbers. 
     Embodiment 1 
     The autonomous mobile apparatus according to an embodiment of the present disclosure is an apparatus that autonomously moves according to the purpose of use while creating maps (environment maps). The purpose of use includes, for example, use for security monitoring, for indoor cleaning, for pets, for toys, and the like. 
     An autonomous mobile apparatus  100  comprises, as shown in  FIG.  1   , feedback signal receivers  31  ( 31   a ,  31   b ), drivers  32  ( 32   a ,  32   b ), an imager  33 , and charge connectors  35  in appearance. Although not shown in  FIG.  1   , the autonomous mobile apparatus  100  may comprise an obstacle sensor that detects objects (obstacles) that are present in the surroundings. Moreover, a charger  200  for charging the battery of the autonomous mobile apparatus  100  comprises, as shown in  FIG.  2   , feedback signal transmitters  51  ( 51   a ,  51   b ), power supplies  52 , and a charger&#39;s imager  53  in appearance. 
     As the charge connectors  35  of the autonomous mobile apparatus  100  and the power supplies  52  of the charger  200  are connected, the autonomous mobile apparatus  100  can receive power supply from the charger  200  and charge the built-in battery. Here, the charge connectors  35  and the power supplies  52  are each a connection terminal for connecting each other. The charge connectors  35  and the power supplies  52  are connected as the autonomous mobile apparatus  100  moves onto the charger  200  by means of the drivers  32 . The connection may be made as the charge connectors  35  and the power supplies  52  make contact or may be made through electromagnetic induction as the charge connectors  35  and the power supplies  52  come close to each other. 
     The imager  33  comprises a wide-angle lens that allows for photographing in a wide range between the forward and upward fields of the autonomous mobile apparatus  100 . Therefore, the imager  33  can capture an image that makes it possible to determine whether the ceiling light is on. Then, the autonomous mobile apparatus  100  can perform a process of monocular simultaneous localization and mapping (SLAM) using the imager  33 . 
     Although not used in Embodiment 1, the charger&#39;s imager  53  also comprises a wide-angle lens that allows for photographing in a wide range around and above the charger  200 . Like the imager  33 , the charger&#39;s imager  53  can also capture an image that makes it possible to determine whether the ceiling light is on. 
     The feedback signal receivers  31  of the autonomous mobile apparatus  100  are a device for receiving feedback signals (infrared beacons) that are transmitted by the charger  200 . A total of two feedback signal receivers  31 , a feedback signal receiver  31   a  to the left and a feedback signal receiver  31   b  to the right in a front view of the autonomous mobile apparatus  100 , are provided. Moreover, the feedback signal transmitters  51  of the charger  200  are a device for transmitting feedback signals to the autonomous mobile apparatus  100 . A feedback signal transmitter  51   a  to the right and a feedback signal transmitter  51   b  to the left in a front view of the charger  200  are each provided as the feedback signal transmitters  51 . Then, feedback signals that are transmitted by the feedback signal transmitter  51   a  and feedback signals that are transmitted by the feedback signal transmitter  51   b  are different signals. Therefore, the feedback signal receivers  31  can determine from which of the right and left feedback signal transmitters  51   a ,  51   b  the feedback signals are received. 
       FIG.  3    shows exemplary right and left respective receivable ranges  54  ( 54   a ,  54   b ) of feedback signals that are transmitted by the feedback signal transmitters  51  of the charger  200 . Feedback signals that are transmitted by the feedback signal transmitter  51   a  can be received when the feedback signal receivers  31  of the autonomous mobile apparatus  100  enter the receivable range  54   a . Then, feedback signals that are transmitted by the feedback signal transmitter  51   b  can be received when the feedback signal receivers  31  of the autonomous mobile apparatus  100  enter the receivable range  54   b . Therefore, entering the receivable ranges  54 , the autonomous mobile apparatus  100  can know the direction in which the charger  200  is present. Then, the autonomous mobile apparatus  100  advances while adjusting the orientation so that the feedback signal receiver  31   a  receives feedback signals from the feedback signal transmitter  51   a  and the feedback signal receiver  31   b  receives feedback signals from the feedback signal transmitter  51   b , thereby being able to move onto the charger  200 . As the autonomous mobile apparatus  100  moves onto the charger  200 , the charge connectors  35  and the power supplies  52  are connected and the battery that is built in the autonomous mobile apparatus  100  can be charged. 
     The drivers  32  are of an independent two-wheel drive type and moving means that comprises wheels and motors. The autonomous mobile apparatus  100  can parallel-shift (translation) back and forth by driving the two wheels in the same direction, rotate (turn) on the spot by driving the two wheels in opposite directions, and circle (translation+rotation (turn)) by driving the two wheels at different speeds. Moreover, each wheel is provided with a rotary encoder. The amount of translation and the amount of rotation can be calculated by measuring the numbers of rotations of the wheels with the rotary encoders and using geometric relationships of the diameter of the wheels, the distance between the wheels, and the like. For example, assuming that the diameter of a wheel is D and the number of rotations is R (that is measured by the rotary encoder), the amount of translation at the ground contact part of the wheel is π·D·R. Moreover, assuming that the diameter of a wheel is D, the distance between the wheels is I, the number of rotations of the right wheel is RR, and the number of rotations of the left wheel is RL, the amount of rotation for turning (assuming that the right turn is positive) is 360°×D×(RL−RR)/(2×I). Successively adding the amount of translation and the amount of rotation above, the drivers  32  function as so-called odometry (mechanical odometry) and can measure its own location (the location and the orientation with reference to the location and the orientation at the start of moving). 
     As shown in  FIG.  4   , the autonomous mobile apparatus  100  comprises, in addition to the feedback signal receivers  31  ( 31   a ,  31   b ), the drivers  32  ( 32   a ,  32   b ), the imager  33 , and the charge connectors  35 , a controller  10 , a memory  20  and a communicator  34 . 
     The controller  10  comprises a central processing unit (CPU) as a processor and the like, and executes programs that are stored in the memory  20  to realize the functions of parts described later (an environment information acquirer  11 , a map creator  12 , an own location estimator  13 , an action planner  14 , and a move controller  15 ). Moreover, comprising a clock (not shown), the controller  10  can acquire the current date/time and measure the elapsed time. 
     The memory  20  comprises a read only memory (ROM), a random access memory (RAM), and the like. The ROM comprises an electrically rewritable memory (a flash memory or the like) in part or in whole. The memory  20  functionally includes a map storage  21  and a map saver  22 . The ROM stores programs that are executed by the CPU of the controller  10  and data that are necessary preliminary to executing the program. The RAM stores data that are created and/or changed while the programs are executed. 
     The map storage  21  stores an environment map that is created by the map creator  12  through the SLAM based on information of an image that is captured by the imager  33 . An environment map includes, as shown in  FIG.  5   , a set of key frame information and a set of MapPoint information as well as environment information upon acquisition of these sets of information. Each environment map is given a map ID (identifier). The map ID is an ID for uniquely identifying an environment map. 
     Here, a key frame is a frame that is used in the SLAM for estimating a three-dimensional (3D) location among images (frames) that are captured by the imager  33 . Then, as shown in  FIG.  5   , the key frame information includes a 3D posture (a location (3D coordinates) and an orientation) within an environment map (in a three-dimensional space) of the imager  33  (the autonomous mobile apparatus  100 ) when the key frame is captured and information of multiple feature points that are included in the key frame. Moreover, each key frame information is given a key frame ID that is an ID for uniquely identifying the key frame. 
     The feature points that are included in a key frame mean points of featuring parts within an image such as edge parts and corner parts in a key frame (an image). The feature points can be detected using an algorithm, for example scale-invariant feature transform (SIFT), speeded up robust features (SURF), features from accelerated segment test (FAST), and the like. Then, as shown in  FIG.  5   , information of a feature point includes the 2D coordinates of the feature point within the key frame, a feature quantity of the feature point, and an ID of the MapPoint that corresponds to the feature point when the 3D coordinates of the feature point within the environment map are already estimated. When the 3D coordinates of the feature point within the environment map are not yet estimated, a special ID (for example, 0) that indicates that the 3D coordinates are not estimated is saved in the “CORRESPONDING MapPoint ID.” 
     Here, as a feature quantity of a feature point, for example, a feature of oriented FAST and rotated BRIEF (ORB) can be used. Moreover, the MapPoint means a point of 3D coordinates of a feature point for which the 3D coordinates within the environment map are successfully estimated by the SLAM. The MapPoint information includes, as shown in  FIG.  5   , a MapPoint ID (an ID for uniquely identifying a MapPoint) and the 3D coordinates of the MapPoint within the environment map. Therefore, the 3D coordinates of a feature point within the environment map can be acquired from the “corresponding MapPoint ID” that is included in the information of the feature point. 
     Moreover, the environment information is information of surrounding environments that possibly influence estimation of the location of the autonomous mobile apparatus  100  such as the light being ON/OFF, brightness information, and the time. Important environment information is mainly information regarding the brightness (the light being ON/OFF, the curtains being opened/closed, conditions of the sunlight from the windows (morning or evening, weather), and the like) and may include the number of people, the furniture arrangement, and the like. Moreover, although the temperature, the humidity, the atmospheric pressure, and the like do not directly influence estimation of the location, these kinds of information may be included in the environment information if causing some change in the room arrangement and/or people entering/leaving the room. 
     The map saver  22  is present in the electrically rewritable ROM (such as a flash memory) of the memory  20  and saves the environment map that is stored in the map storage  21  so that the environment map is not erased after the autonomous mobile apparatus  100  is powered off. 
     The communicator  34  is a wireless module including an antenna for wireless communication with the charger  200  and other external apparatuses. For example, the communicator  34  is a wireless module for short range wireless communication based on Bluetooth (registered trademark). Using the communicator  34 , the autonomous mobile apparatus  100  can receive image data that are captured by the charger&#39;s imager  53  that is provided to the charger  200  and exchange data with external apparatuses. 
     Next, the functional configuration of the controller  10  of the autonomous mobile apparatus  100  will be described. The controller  10  realizes the functions of the environment information acquirer  11 , the map creator  12 , the own location estimator  13 , the action planner  14 , and the move controller  15  to create environment maps, estimate its own location, control the move, and so on. Moreover, the controller  10  has the capability of multithreading and can execute multiple threads (different process flows) in parallel. 
     The environment information acquirer  11  acquires environment information that presents the surrounding environment, such as the light being ON/OFF and brightness information, based on image data that are captured by the imager  33 . Moreover, when date/time information is included in the environment information, the environment information acquirer  11  acquires the current date/time from the clock that is provided to the controller  10 . 
     The map creator  12  creates environment map data that comprise a set of key frame information and a set of MapPoint information shown in  FIG.  5    by the SLAM using the image data that are captured by the imager  33  and writes the data in the map storage  21 . 
     The own location estimator  13  estimates the posture (the location (3D coordinates) and the orientation) of the autonomous mobile apparatus  100  within the environment map by the SLAM using the image data that are captured by the imager  33  and the environment map data that are created by the map creator  12 . Here, stating “the posture (the location and the location)” each time is cumbersome and therefore, simply stating “the location” in this specification and the scope of claims means not only the location but also the orientation inclusive. In other words, “the location” is used to express “the posture (the location and the orientation)” in some cases. 
     The action planner  14  sets a destination and a route based on the environment map that is stored in the map storage  21  and an operation mode. Here, the operation mode determines an action manner of the autonomous mobile apparatus  100 . The autonomous mobile apparatus  100  has multiple operation modes, for example “a free walking mode” for randomly moving, “a map creation mode” for expanding the map creation range, and “a destination specification mode” for moving to a place that is specified by the main thread that is described later or the like. Conditions for shifting the operation mode may be preset; for example, the operation mode is initially the map creation mode and shifted to the free walking mode when a map is created to some extent (for example, after 10 minutes of the map creation mode) and then to the destination specification mode in which the destination is specified to the location of the charger  200  when the remaining battery level is low. Alternatively, the operation mode may be set by an order from an external source (the user, the main thread, or the like). When the action planner  14  sets a route, the action planner  14  sets a route from the current location of the autonomous mobile apparatus  100  to a destination based on an environment map that is created by the map creator  12 . 
     The move controller  15  controls the drivers  32  to move the autonomous mobile apparatus  100  along the route that is set by the action planner  14 . 
     The functional configuration of the autonomous mobile apparatus  100  is described above. Next, various procedures that are started by the autonomous mobile apparatus  100  will be described. During power-off, the autonomous mobile apparatus  100  is connected to the charger  200  and charged. Upon power-on, the start-up procedure that is described later is executed at the location where the autonomous mobile apparatus  100  is connected to the charger  200  and various threads including the main thread are executed in parallel. Here, the main thread is a thread for the autonomous mobile apparatus  100  to execute a procedure that corresponds to the purpose of use and, for example, a thread for executing an indoor cleaning procedure. Now, the start-up procedure of the autonomous mobile apparatus  100  is described with reference to  FIG.  6   .  FIG.  6    is a flowchart of the start-up procedure of the autonomous mobile apparatus  100 . 
     First, the controller  10  of the autonomous mobile apparatus  100  starts the main thread (Step S 101 ). The main thread is a thread for performing a procedure that corresponds to the purpose of use (for example, an indoor cleaning procedure), in response to reception of information of the current posture (the 3D coordinates and the orientation within the environment map) of the autonomous mobile apparatus  100  from an own location estimation thread that is started in the next step. 
     Next, the controller  10  starts various threads for the SLAM (Step S 102 ). The various threads for the SLAM mean an own location estimation thread for estimating the location of the autonomous mobile apparatus  100 , a map creation thread for creating an environment map, a loop closing thread for performing a loop closing procedure, and the like. Here, the loop closing procedure means a procedure that is executed when the autonomous mobile apparatus  100  recognizes its returning to the same location as before to correct the key frame on the moving trajectory up to the present since the previous visit and related MapPoint 3D locations using the difference in value between the posture when the autonomous mobile apparatus  100  was at this same location before and the current posture. 
     Next, the controller  10  starts the move thread (Step S 103 ). The move thread is a thread for performing, in response to reception of a move order from the main thread, a procedure that causes the move controller  15  to control the drivers  32  to move the autonomous mobile apparatus  100 . Then, from then on, the autonomous mobile apparatus  100  is controlled by the threads that are started by this start-up procedure. 
     Among the threads for the SLAM, the own location estimation thread will be described with reference to  FIG.  7   . The own location estimation thread is a thread for selecting an environment map that is suitable for the current environment among the environment maps that are saved in the map saver  22  and performing a tracking procedure (an own location estimation procedure) using the selected environment map. 
     First, the controller  10  determines whether environment maps are saved in the map saver  22  (Step S 201 ). If no environment map is saved in the map saver  22  (Step S 201 ; No), the controller  10  starts the SLAM from the initial state, sets a variable MODE to TRACKING (Step S 202 ), and proceeds to Step S 211 . Here, the variable MODE is a variable that presents whether the autonomous mobile apparatus  100  is currently in a state of being able to estimate its own location (in the state TRACKING) or in a state of being unable to estimate its own location (in the state LOST). 
     If environment maps are saved in the map saver  22  (Step S 201 ; Yes), the controller  10  performs an environment map extraction procedure that is a procedure to extract, from among the environment maps that are saved in the map saver  22 , an environment map that is highly possibly suitable for the current environment (Step S 203 ). Details of the environment map extraction procedure will be described later. 
     Then, the controller  10  performs a relocalization procedure that is a procedure to estimate its own location using an environment map when the current own location is unknown (Step S 204 ). Details of the relocalization procedure will be described later. 
     Then, the controller  10  determines whether the relocalization procedure was successful (Step S 205 ). If the relocalization procedure was unsuccessful (Step S 205 ; No), the controller  10  determines whether there is a termination order from the main thread or the user (Step S 206 ). If there is a termination order (Step S 206 ; Yes), the own location estimation thread ends. If there is no termination order (Step S 206 ; No), a move order is issued to the move thread to move (Step S 207 ) and the processing returns to Step S 204  to perform the relocalization procedure again. Here, the move in Step S 207  is a move for changing an image that is acquired first in the relocalization procedure. If the autonomous mobile apparatus  100  moves, for example, in the processing of another thread that is in parallel operation, there is no need to move again in Step S 207 . 
     On the other hand, if the relocalization procedure was successful (Step S 205 ; Yes), the controller  10  reads into the map storage  21  as the estimation environment map and uses in the subsequent own location estimation the environment map that was selected during the successful relocalization procedure (Step S 208 ). Then, the controller  10  sets the variable MODE to TRACKING (Step S 209 ) and proceeds to Step S 211 . 
     In Step S 211 , its own location is estimated in the tracking procedure by the SLAM. This tracking procedure, first, extracts feature points from image data that are captured by the imager  33  and acquires, using the feature quantities, a correspondence between the extracted feature points and feature points for which the 3D coordinates are already estimated in a key frame included in the environment map (the estimation environment map). If the number of feature points with the correspondence acquired (the corresponding feature points) is equal to or higher than a reference trackable number (for example, 10), the controller  10  can estimate its own location from the relationship between the 2D coordinates of the corresponding feature points in the image and the 3D coordinates within the environment map. In such a case, the tracking is successful. If the number of corresponding feature points is lower than the reference trackable number, estimation of its own location leads to a large error and the controller  10  determines that the tracking is unsuccessful and does not estimate its own location. 
     The controller  10  determines whether the tracking procedure was successful after the tracking procedure (Step S 212 ). If the tracking procedure was successful (Step S 212 ; Yes), the controller  10  transmits its own location that is acquired in the tracking procedure to the main thread (Step S 213 ). Then, the controller  10  sleeps for a prescribed time (for example, 10 seconds) (Step S 214 ). 
     On the other hand, if the tracking procedure was unsuccessful (Step S 212 ; No), the controller  10  sets the variable MODE to LOST (Step S 220 ), transmits to the main thread unsuccessful acquisition of its own location (Step S 221 ), and proceeds to Step S 214  to sleep for a prescribed time. 
     Subsequently, the controller  10  determines whether there is a termination order from the main thread or the user (Step S 215 ). If there is a termination order (Step S 215 ; Yes), the own location estimation thread ends. If there is no termination order (Step S 215 ; No), an environment map saving procedure that is a procedure to save an environment map is performed (Step S 216 ). Details of the environment map saving procedure will be described later. 
     Next, the controller  10  determines whether the value that is set in the variable MODE is LOST (Step S 210 ). If the value that is set in the variable MODE is not LOST (Step S 210 ; No), this means in the middle of TRACKING and the processing proceeds to Step S 211  to perform the tracking procedure. 
     If the value that is set in the variable MODE is LOST (Step S 210 ; Yes), the controller  10  performs the relocalization procedure using the environment map (the estimation environment map) that is currently in use (that is read into the map storage  21 ) (Step S 217 ), and determines whether that relocalization procedure was successful (Step S 218 ). If the relocalization procedure was successful (Step S 218 ; Yes), the controller  10  sets the variable MODE to TRACKING (Step S 219 ) and proceeds to Step S 213 . If the relocalization procedure was unsuccessful (Step S 218 ; No), the controller  10  proceeds to Step S 221 . 
     The own location estimation thread is described above. Next, the environment map saving procedure that is executed in Step S 216  of the own location estimation thread ( FIG.  7   ) will be described with reference to  FIG.  8   . This procedure is a procedure to save in the map saver  22  a map (an estimation environment map) that is stored in the map storage  21  in every given time (for example, one hour). 
     First, the controller  10  determines whether a predetermined time (for example, one hour) has elapsed since the environment map was saved in the map saver  22  last time (Step S 301 ). If the predetermined time has not elapsed (Step S 301 ; No), the environment map saving procedure ends. If the predetermined time has elapsed (Step S 301 ; Yes), the controller  10  captures an image with the imager  33  (Step S 302 ). Then, the controller  10  counts the number of regions in the image where the luminance is high to acquire the number of lights that are on (Step S 303 ). Here, the regions in an image where the luminance is high are specifically the regions that have a luminance that is equal to or higher than a predetermined reference luminance value. Since the imager  33  comprises a wide-angle lens that allows for photographing in a wide range between the forward and upward fields of the autonomous mobile apparatus  100 , the ceiling is included in the imaging range and an image that makes it possible to determine the number of lights on the ceiling can be captured. In Step S 303 , the controller  10  functions as the environment information acquirer  11 . 
     Then, the controller  10  writes in the map storage  21  the acquired number of lights that are on as environment information (Step S 304 ). Then, the controller  10  saves in the map saver  22  the environment map (the environment map to which the environment information is added as shown in  FIG.  5   ) that is stored in the map storage  21  (Step S 305 ). 
     Through the environment map saving procedure described above, data of an environment map to which environment information is added is saved in the map saver  22  in every given time. Next, the environment map extraction procedure that is executed in Step S 203  of the own location estimation thread ( FIG.  7   ) will be described with reference to  FIG.  9   . This procedure is a procedure to extract, from among multiple environment maps that are saved in the map saver  22 , an environment map that includes environment information that is identical or similar to the current environment information. 
     First, the controller  10  captures an image with the imager  33  (Step S 401 ). Then, the controller  10  obtains the number of regions in the image where the luminance is high (the regions that have a luminance that is equal to or higher than the predetermined reference luminance value) to detect the number of lights that are on (Step S 402 ). 
     Then, the controller  10  extracts, from among multiple environment maps that are saved in the map saver  22 , a predetermined number (N) of candidate environment maps that are the same or similar in the environment information (the number of lights that are on) (Step S 403 ) and ends the environment map extraction procedure. For extracting the environment maps, N environment maps are extracted in the order of similarity of the environment information that is added to the environment map to the current environment information. The N extracted environment maps are candidates for an environment map of future use and thus called candidate environment maps. Here, N can be any number, for example 5 or so; however, only less than N candidate environment maps may be extracted when a small number of environment maps are saved in the map saver  22 . 
     Through the environment map extraction procedure described above, N candidate environment maps having the environment information that is identical or similar to the current environment information are extracted from among multiple environment maps that are saved in the map saver  22 . Next, the relocalization procedure that is executed in Step S 204  of the own location estimation thread ( FIG.  7   ) will be described with reference to  FIG.  10   . 
     First, the controller  10  captures an image with the imager  33  (Step S 501 ). Then, the controller  10  detects feature points in the image and calculates feature quantities of the detected feature points (Step S 502 ). Any method of detecting feature points and any feature quantity can be used. For example, it is possible to use the FAST as the detection method and the ORB as the feature quantity. 
     Next, the controller  10  determines whether a correspondence between the detected feature points and feature points for which the 3D coordinates are already estimated in a similar key frame that is found in Step S 506  later described is checked for all of the N candidate environment maps that are extracted in the environment map extraction procedure that is executed earlier (Step S 503 ). If the correspondence between the feature points is checked for all candidate environment maps (Step S 503 ; Yes), it is assumed that the relocalization procedure was unsuccessful (Step S 504 ) and the relocalization procedure ends. 
     If there are still remaining candidate environment maps for which correspondence between feature points is not checked (Step S 503 ; No), the controller  10  selects one of the remaining candidate environment maps (Step S 505 ). Then, the controller  10  searches for a key frame that is similar to the image that is acquired in Step S 501  (the acquired image) in the set of key frame information of the selected candidate environment map (Step S 506 ). Any method of searching for a similar key frame can be used. For example, high speed search is possible by classifying all key frames within the selected candidate environment map by a histogram of feature quantities, which is followed by similarity search using the similarity between the histogram of feature quantities of the acquired image and the histogram. 
     Then, the controller  10  finds, using the feature quantities, correspondence between the feature points for which the 3D coordinates are already estimated in the similar key frame that is found in Step S 506  and the feature points in the acquired image that is acquired in Step S 501 . For example, when the similarity between the feature quantity of a feature point (for which the 3D coordinates are already estimated) within a similar key frame and the feature quantity of a feature point within the acquired image is higher than a predetermined reference similarity, these two feature points are assumed to be feature points that correspond to each other (the corresponding feature points). Then, the number of such corresponding feature points is obtained (Step S 507 ). 
     Then, the controller  10  determines whether the number of corresponding feature points is greater than 3 (Step S 508 ). If the number of corresponding feature points is equal to or less than 3 (Step S 508 ; No), the processing returns to Step S 503 . Here, before returning to Step S 503 , the processing may return to Step S 506  and search for a similar key frame that was not found last time (namely, the similarity is the second highest or lower) among the key frames that are similar to the image that is acquired in Step S 501 . This is because the number of corresponding feature points may be high in some cases even if the similarity is not high. The processing returns to Step S 506  to obtain the number of corresponding feature points in another similar key frame a predetermined number of times (for example, three times) and if the number of the corresponding feature points is equal to or less than 3 (Step S 508 ; No), the processing returns to Step S 503 . 
     On the other hand, if the number of corresponding feature points is greater than 3 (Step S 508 ; Yes), the processing proceeds to Step S 509 . If four or more feature points among the feature points within the acquired image correspond to feature points (for which the 3D coordinates are already estimated) within a similar key frame, it is possible to estimate the posture (the location and the orientation) of the autonomous mobile apparatus  100  at the time of acquisition of the acquired image as a perspective-n-point problem (PnP problem). 
     In Step S 509 , the controller  10  solves the PnP problem to estimate the posture of the autonomous mobile apparatus  100 . Using the estimated posture, the controller  10  calculates the error (a correspondence error) between the 2D coordinates of a feature point within the similar key frame and the 2D coordinates of a feature point within the acquired image that corresponds in feature quantity to the feature point within the similar key frame, that is, has a feature quantity similar thereto. Here, whether the 3D coordinates are already estimated is not a matter for this correspondence. Then, if the correspondence error is equal to or smaller than a reference error T, the controller  10  assumes that the locations of the feature points match and obtains the number of such matching, corresponding feature points (the number of matches) (Step S 509 ). 
     Then, the controller  10  determines whether the number of matches is greater than a reference match number K (for example, 10) (Step S 510 ). If the number of matches is equal to or less than the reference match number K (Step S 510 ; No), the processing returns to Step S 503 . If the number of matches is greater than the reference match number K (Step S 510 ; Yes), the controller  10  adds the posture that is estimated in Step S 509  to the 3D posture in the similar key frame to estimate its own location (Step S 511 ). Then, it is assumed that the relocalization procedure was successful (Step S 512 ) and the relocalization procedure ends. 
     Through the relocalization procedure described above, the autonomous mobile apparatus  100  can select an environment map that allows for correct estimation of its own location. Here, in the procedure of  FIG.  10   , among the candidate environment maps, the first environment map with the number of matches greater than K is eventually selected. However, it may be possible to obtain the number of matches for all candidate environment maps and eventually select an environment map that has the highest number of matches, or to also store the error in coordinate positions of feature points while obtaining the number of matches and eventually select an environment map that has the smallest error. 
     Through the own location estimation thread described above, the autonomous mobile apparatus  100  can select as an estimation environment map an environment map that is most suitable for the start-up environment and thus can perform robust estimation of its own location over environment change. 
     Modified Embodiment 1 of Embodiment 1 
     In Embodiment 1, only the number of lights that are on is used as the environment information. Simply using the number of lights as the environment information can improve the robustness over environment change in comparison to the prior art in which a single environment map is continuously used. However, other information may be used for further improving the robustness. For example, as Modified Embodiment 1 of Embodiment 1, a case in which information of the ceiling light being ON/OFF and information of the brightness of the surrounding environment are used as the environment information will be described. 
     In Embodiment 1, only the number of lights that are on is used as the environment information. On the other hand, in Modified Embodiment 1 of Embodiment 1, information of the light being ON/OFF and information of the brightness of the surrounding environment are used as the environment information; therefore, the environment information is expressed by a two-dimensional vector (the ceiling light being ON or OFF, the brightness of the surrounding environment). In Embodiment 1, the number of lights that are on is used as the environment information as it is in the environment map saving procedure ( FIG.  8   ) and the environment map extraction procedure ( FIG.  9   ). In Modified Embodiment 1 of Embodiment 1, in each procedure, a two-dimensional vector (the ceiling light being ON or OFF, the brightness of the surrounding environment) is generated as the environment information. 
     Here, whether the ceiling light is ON/OFF is determined by determining whether there is a region where the luminance is extremely higher than the surroundings in the region that corresponds to the top part of the imaging range in the image that is captured by the imager  33 . For example, if there is a region where the luminance is a reference high luminance value (for example, 10) or more times as high as the average luminance of the entire image in the upper half region of the captured image, it is determined that the ceiling light is on. 
     Moreover, in regard to information of the brightness of the surrounding environment, for obtaining this information, the autonomous mobile apparatus  100  may additionally comprise a brightness sensor or alternatively acquire the brightness of the surrounding environment with the imager  33 . For example, it may be possible to set the exposure time of the imager  33  to a value for measuring the brightness, acquire an image of the room where the autonomous mobile apparatus  100  is present, and use the average value or the median value of all pixel values of the image as the brightness of the surrounding environment. 
     The first value of the two-dimensional vector of the environment information (the ceiling light is ON or OFF) is a binary value, which is 1 if the light is ON and 0 if the light is OFF. The second value of the two-dimensional vector of the environment information (the brightness of the surrounding environment) is the average value or the median value of the pixel values as described above. Then, in the above-described environment map saving procedure, the environment information of such a two-dimensional vector is added to the environment map and saved. Moreover, in the environment map extraction procedure, the similarity between the two-dimensional vector of the environment information that is obtained by capturing an image and the two-dimensional vector of the environment information that is added to each of the environment maps that are saved in the map saver  22  is obtained and N candidate environment maps are extracted in the descending order of the similarity. Here, the similarity between the two-dimensional vectors can be obtained by normalizing the norm of each vector to 1 and calculating the inner product. 
     In the above-described Modified Embodiment 1 of Embodiment 1, change in the brightness of the surroundings is reflected in the environment information and therefore it is possible to accommodate not only influence of the light being ON/OFF but also influence of change in the sunlight entering through the windows depending on the position of the sun and influence of the blinds being opened or closed. Therefore, it is possible to select, as an estimation environment map from among the environment maps that are saved in the map saver  22 , an environment map that is more suitable for the current environment and thus perform more robust estimation of its own location over environment change. 
     Here, more varieties of information, if used as the environment information, can be accommodated by increasing the number of dimensions of the vector that presents the environment information. Moreover, if the number of dimensions of the vector is increased, the similarity of the environment information can be obtained by normalizing the norms of the two target vectors to calculate their similarity to 1 and obtaining the inner product. Increasing the number of dimensions of the vector that presents the environment information makes it possible to increase the possibility of selecting, as an estimation environment map from among the environment maps that are saved in the map saver  22 , an environment map that is further suitable for the current environment and thus perform further robust estimation of its own location over environment change. Here, in the above-described Modified Embodiment 1 of Embodiment 1, a case in which the environment information is expressed by a vector such as a two-dimensional vector is described. However, the environment information is not necessarily expressed by a vector and any data structure can be adopted. 
     Modified Embodiment 2 of Embodiment 1 
     In the above-described embodiment, the environment map that is in use is not changed even if the relocalization procedure in Step S 217  of the own location estimation thread ( FIG.  7   ) is unsuccessful. However, it is envisioned that environment such as the brightness of the surroundings may change with time when, for example, the autonomous mobile apparatus  100  keeps moving for a prolonged time. Modified Embodiment 2 of Embodiment 1 in which the environment map to use (an estimation environment map) can be changed as necessary in such a case will be described. 
     In the own location estimation thread according to Modified Embodiment 2 of Embodiment 1, as shown in  FIG.  11   , the processing in Step S 231  and Steps S 233  through S 235  is added to the own location estimation thread according to Embodiment 1 ( FIG.  7   ) and the processing in Step S 218  is replaced with the processing in Step S 232 . The other processing of Modified Embodiment 2 of Embodiment 1 is the same as in Embodiment 1. The added processing is processing for introducing a flag variable F for determining whether the “relocalization with the current environment map” in Step S 217  was unsuccessful two times in a row and starting over from Step S 203  if unsuccessful two times in a row. 
     First, in Step S 231 , the controller  10  initializes the flag variable F to 0. Then, in Step S 232 , if the relocalization procedure in Step S 217  was successful (Step S 232 ; Yes), the processing proceeds to Step S 219  as in Step S 218 . However, if the relocalization procedure was unsuccessful (Step S 232 ; No), the controller  10  determines whether the flag variable F is 1 (Step S 233 ). 
     If the flag variable F is not 1 (Step S 233 ; No), the controller  10  sets the flag variable F to 1 (Step S 234 ) and proceeds to Step S 221 . If the flag variable F is 1 (Step S 233 ; Yes), the controller  10  initializes the flag variable F to 0 (Step S 235 ) and returns to Step S 203  to start over from the environment map extraction. The processing other than the above described processing is the same as in the own location estimation thread according to Embodiment 1 ( FIG.  7   ) and its explanation is omitted. 
     Through the above-described own location estimation thread, if the relocalization with the environment map (the estimation environment map) that is currently in use is unsuccessful two times in a row, the processing starts over from the extraction of candidate environment maps and an environment map to which environment information that is identical or similar to the environment information at that time is added is selected from among the multiple environment maps that are saved in the map saver  22 . Therefore, even if the environment changes, it is possible to reselect an environment map that is suitable for the environment at that time as the estimation environment map and thus perform more robust estimation of its own location over environment change. 
     Modified Embodiment 3 of Embodiment 1 
     In the above-described embodiment, the imager  33  that is provided to the autonomous mobile apparatus  100  is used as means for acquiring the environment information. Modified Embodiment 3 of Embodiment 1 in which the charger&#39;s imager  53  that is provided to the charger  200  is used as the means for acquiring the environment information will be described. 
     For acquiring the state of the light being on/off, the brightness of the surrounding environment, and the like, the autonomous mobile apparatus  100  according to Modified Embodiment 3 of Embodiment 1 issues an imaging order to the charger  200  via the communicator  34  and receives an image that is captured by the charger&#39;s imager  53  that is provided to the charger  200  via the communicator  34 . Here, although not shown, the charger  200  also comprises a communicator that is communicable with the communicator  34  of the autonomous mobile apparatus  100 . The autonomous mobile apparatus  100  according to Modified Embodiment 3 of Embodiment 1 is the same as the autonomous mobile apparatus  100  according to Embodiment 1 except that an image for acquiring the environment information is captured by the charger&#39;s imager  53  in place of the imager  33 . Here, instead of always using the charger&#39;s imager  53  for capturing an image for acquiring the environment information, it may be possible to use either the imager  33  or the charger&#39;s imager  53  as appropriate or always use both the imager  33  and the charger&#39;s imager  53 . 
     In the above described Modified Embodiment 3 of Embodiment 1, an image for acquiring the environment information is captured by the charger&#39;s imager  53  of the charger  200 . The charger  200  does not move. Therefore, the charger&#39;s imager  53  can capture an image at a predetermined fixed location. Therefore, in comparison of using the imager  33  that moves with the autonomous mobile apparatus  100 , the environment information can be acquired in a more stable manner. Therefore, it is possible to select as an estimation environment map an environment map that is more suitable for the current environment based on this more stable environment information and thus perform more robust estimation of its own location over environment change. 
     Modified Embodiment 4 of Embodiment 1 
     In the above described Modified Embodiment 3 of Embodiment 1, the charger  200  has to comprise the charger&#39;s imager  53  and a communicator. Modified Embodiment 4 of Embodiment 1 in which the same effect is obtained using the imager  33  of the autonomous mobile apparatus  100  will be described. 
     The autonomous mobile apparatus  100  according to Modified Embodiment 4 of Embodiment 1 is charged on the charger  200  while powered OFF. Then, the autonomous mobile apparatus  100  is located on the charger  200  immediately after powered on. Therefore, an image that is captured by the imager  33  immediately after powered on can be treated as the same image that is captured by the charger&#39;s imager  53  that is fixed to the charger  200  according to Modified Embodiment 3. Then, in the environment map saving procedure that is executed in the own location estimation thread according to Modified Embodiment 4 of Embodiment 1, the processing of saving in the map saver  22  an environment map to which the environment information is added is performed when the autonomous mobile apparatus  100  returns to the charger  200 , not each time a predetermined time has elapsed. 
     The autonomous mobile apparatus  100  according to the above-described Modified Embodiment 4 of Embodiment 1 always captures an image for acquiring the environment information on the charger  200  and thus can acquire change in the environment information in a more stable manner as in Modified Embodiment 3 of Embodiment 1. Therefore, it is possible to select as an estimation environment map an environment map that is more suitable for the current environment based on this more stable environment information and thus perform more robust estimation of its own location over environment change. 
     Modified Embodiment 5 of Embodiment 1 
     In the above-described embodiments, the autonomous mobile apparatus  100  captures an image of the surrounding environment for acquiring the environment information with the imager  33  (or the charger&#39;s imager  53 ) and extracts, as candidate environment maps, environment maps to which environment information that is similar to the environment information that is acquired through the imaging is added in the environment map extraction procedure ( FIG.  9   ). However, the user may select candidate environment maps. Modified Embodiment 5 of Embodiment 1 in which the user can select candidate environment maps will be described. 
     In Modified Embodiment 5 of Embodiment 1, the controller  10  does not need to acquire environment information by capturing an image in the environment map extraction procedure ( FIG.  9   ) and instead, extracts, as candidate environment maps, environment maps that are selected by the user. In doing so, the user selects, from an external terminal apparatus or the like via the communicator  34 , any number (for example, N) of environment maps he wishes to select from among the environment maps that are saved in the map saver  22 . Then, the controller  10  performs the relocalization procedure ( FIG.  10   ) using the candidate environment maps that are selected by the user. 
     In order for the user to easily select the environment maps, the external terminal apparatus that is used for selecting the environment maps may present the meanings of the environment information that is added to each environment map in an easily-understandable manner. For example, for each environment map, environment information “Date of saving: Mar. 1, 2018, 10:00, Number of lights that are on; 1, Brightness: 1000 lux” may be displayed so that the user can select environment maps. 
     In the above-described Modified Embodiment 5 of Embodiment 1, the user can select candidate environment maps from among the environment maps that are saved in the map saver  22 . Therefore, the user himself can select environment maps that are more suitable for the current environment even in a special case in which it is difficult to successfully extract environment maps that are suitable for the current environment through extraction by the similarity of the environment information, and thus it is possible to perform more robust estimation of its own location over environment change. Here, the autonomous mobile apparatus  100  may comprise a microphone and voice recognition function and acquire environment maps that are selected by the user through voice recognition. Moreover, instead of all candidate environment maps being selected by the user, it may be possible that some of candidate environment maps are selected by the user and the other candidate environment maps are selected by the controller  10  based on the similarity of the environment information. 
     Modified Embodiment 6 of Embodiment 1 
     In the above-described embodiments, the autonomous mobile apparatus  100  captures an image of the surrounding environment for acquiring the environment information with the imager  33  (or the charger&#39;s imager  53 ) and saves in the map saver  22  an environment map to which the environment information that is acquired through the imaging is added in the environment map saving procedure ( FIG.  8   ). However, the environment information that is added in saving an environment map may be entered by the user. Modified Embodiment 6 of Embodiment 1 in which the user can enter environment information that is added to an environment map will be described. 
     In Modified Embodiment 6 of Embodiment 1, the controller  10  does not need to acquire environment information by capturing an image and saves an environment map along with environment information that is entered by the user in the environment map saving procedure ( FIG.  8   ). In doing so, the user enters any environment information he wishes to add to an environment map that is created by the autonomous mobile apparatus  100  by then into the autonomous mobile apparatus  100  from an external terminal apparatus or the like via the communicator  34 . At this point, the communicator  34  functions as an input device that acquires information that is entered by the user. Then, the controller  10  saves in the map saver  22  an environment map to which the environment information that is entered by the user is added. 
     In the above-described Modified Embodiment 6 of Embodiment 1, the user can enter environment information into the autonomous mobile apparatus  100 . Therefore, the user himself can enter environment information that properly presents the current environment into the autonomous mobile apparatus  100  even in a special case in which environment information cannot properly be acquired. Consequently, it is easier to extract environment maps that are suitable for the current environment in extracting candidate environment maps, and thus it is possible to perform more robust estimation of its own location over environment change. Here, the autonomous mobile apparatus  100  may comprise a microphone and voice recognition function and acquire environment information that is entered by the user through voice recognition. In such a case, the microphone functions as the input device. 
     Moreover, instead of the user entering environment information to add to an environment map for all environment maps, it may be possible to add environment information that is entered by the user to an environment map only when the user thinks that it is difficult for the controller  10  to acquire proper environment information and wishes to enter environment information and, otherwise, add to an environment map environment information that is acquired by the environment information acquirer  11  such as by capturing an image. 
     Modified Embodiment 7 of Embodiment 1 
     In the above-described embodiment, the environment maps to which environment information that is identical or similar to the current environment information is added are extracted as candidate environment maps in the environment map extraction procedure ( FIG.  9   ). Modified Embodiment 7 of Embodiment 1 in which a randomly selected environment map is extracted as a candidate environment map will be described. 
     In Modified Embodiment 7 of Embodiment 1, an environment map that is randomly selected from among the environment maps that are saved in the map saver  22  is added to the candidate environment maps. For example, for extracting N candidate environment maps, N-1 environment maps are extracted in the order of identicality or similarity to the current environment information and, for the last one, an environment map is randomly selected from among the environment maps that are saved in the map saver  22  and has not yet been extracted and added to the candidate environment maps. 
     In the above-described Modified Embodiment 7 of Embodiment 1, an environment map that is randomly selected under no influence of the environment information is included in the candidate environment maps. Therefore, it is possible to improve the possibility of an environment map that is suitable for the current environment being selected as the estimation environment map even in a special case in which an environment map that is suitable for the current environment cannot be extracted based on the similarity of the environment information, and thus perform more robust estimation of its own location over environment change. Here, the number of randomly selected environment maps is not restricted to one and can be any number equal to or lower than N such as 2 or N. 
     Moreover, the above-described embodiment and modified embodiments can be combined as appropriate. For example, the combination of Modified Embodiments 5 and 7 of Embodiment 1 makes it possible to include an environment map that is selected by the user and a randomly selected environment map in the candidate environment maps other than the candidate environment maps that are extracted by the controller  10  based on the similarity of the environment information. In this way, it is possible to further increase the possibility of an environment map that is more suitable for the current environment being selected even in a special case in which an environment map that is suitable for the current environment cannot be extracted through extraction based on the similarity of the environment information, and thus perform more robust estimation of its own location over environment change. 
     Here, the above embodiments are described on the assumption that the autonomous mobile apparatus  100  creates maps by the SLAM and periodically saves in the map saver  22  an environment map that includes environment information in the environment map saving procedure ( FIG.  8   ). However, it is not essential to create and save maps. When environment maps that are created under various kinds of environment information are saved in the map saver  22  beforehand, the autonomous mobile apparatus  100  can perform estimation of its own location by selecting from among the environment maps that are saved in the map saver  22  and using an environment map that is suitable for the current environment without creating maps. 
     Moreover, the above embodiments are described on the assumption that, as shown in  FIG.  5   , an environment map corresponds to a piece of environment information (each environment map is an environment map that includes the piece of environment information). In such a case, environment maps as many as the number of kinds of environment information are created. However, the correspondence between environment information and environment maps is not restricted thereto. For example, it may be possible that the autonomous mobile apparatus  100  creates a single environment map and environment information is included in each feature point information that is included in the environment map, thereby configuring a single environment map that can accommodate multiple environments. In such a case, upon acquisition of each feature point information, environment information at that time is also acquired and an environment map that includes the environment information in the feature point information is created. Moreover, for using the environment map, the feature point information that includes environment information that is closest to the current environment is used. Such a modified embodiment is also included in the present disclosure. 
     Here, the functions of the autonomous mobile apparatus  100  can also be implemented by a computer such as a conventional personal computer (PC). Specifically, the above embodiments are described on the assumption that the program for the autonomous move control procedure that is performed by the autonomous mobile apparatus  100  is prestored on the ROM of the memory  20 . However, the program may be saved and distributed on a non-transitory computer-readable recording medium such as a flexible disc, a compact disc read only memory (CD-ROM), a digital versatile disc (DVD), and a magneto-optical disc (MO), and read and installed on a computer to configure a computer that can realize the above-described functions. 
     The foregoing describes some example embodiments for explanatory purposes. Although the foregoing discussion has presented specific embodiments, persons skilled in the art will recognize that changes may be made in form and detail without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. This detailed description, therefore, is not to be taken in a limiting sense, and the scope of the invention is defined only by the included claims, along with the full range of equivalents to which such claims are entitled.