The invention relates to a method and system for localising a robot using a scale plan of a designated environment.
As industries move forward towards Industry 4.0, automation is preferred over human involvement. As a result, using an autonomous mobile robot (AMR) is widely regarded as one of the most feasible solutions. An important aspect of AMR is robot localisation. Mobile robots, in modern technology, demand a more robust localization in a complex environment, such as when maneuvering within designated or confined environment such as a building. However, existing methods do not perform satisfactorily in such environments.
It is an object of the present invention to address problems of the prior art and/or to provide the public with a useful choice.
According to a first aspect of the present invention, there is provided a method of localising a robot using a scale plan of a designated environment, the method comprises: identifying reference features from the scale plan; generating a predicted pose of the robot's current location on the scale plan based on the identified reference features; scanning on-site reference features of the current location; and generating a map for the current location to localise the robot, based on the scanned on-site reference features of the current location and last N frames of historical scans of previous on-site reference features of a plurality of locations in the designated environment that the robot traversed through before reaching the current location; the last N frames being fewer than total frames of the historical scans of the previous on-site reference features.
As described in the preferred embodiment, by constructing the map using the current scan and the last N frames of historical scans of previous on-site reference features, the need of storing and processing historical scans older than the last N frame may be avoided, which may result in localising on a globally inconsistent but locally consistent map and hence the localised pose of the robot may fit nicely to the scale plan. Besides maintaining accuracy of local consistency of the generated map, this may also help to reduce computational cost and accumulated errors on mapping. As the last N frames are fewer than the total frames of historical scans, even if the scale plan has one or more regions that have inaccurate scale, the generated map may still be able to align the robot to the scale plan regions with inaccurate scale, which may improve the reliability of the localisation.
In an embodiment, the method may further comprise calculating a weight for the predicted pose based on the generated map and the scale plan. It is envisaged that the calculated weight may be used to update the predicted pose of the robot.
In an embodiment, the method may further comprise converting the scale plan to a first gradient direction map and converting the generated map to a second gradient direction map for calculating the weight for the predicted pose, wherein the first gradient direction map includes a first gradient direction representing a respective reference normal direction of surface to each reference feature identified on the scale plan and the second gradient direction map includes a second gradient direction representing a respective on-site normal direction of a surface to each on-site reference feature scanned at the current location. The gradient direction maps may help to address multiple local maxima caused by wall layout of the floor plan due to that wall layout in the floor plan shows two parallel lines of the occupied cells representing front and rear surfaces of walls, where the front surfaces are visible by robot's observation while the rear surfaces are not.
In an embodiment, the method may further comprise converting the scale plan to a gradient magnitude map for calculating the weight for the predicted pose, wherein the gradient magnitude map includes a gradient of magnitude representing a respective distribution for each reference feature identified on the scale plan, with a centre of each identified reference feature carrying a higher magnitude value than an edge of the respective identified reference feature. By generating the gradient magnitude map, the accuracy of localization may be maintained even when scale of the floor plan is slightly different from actual condition.
It is envisaged that the predicted pose may comprise a plurality of particles, each representing a potential location of the robot associated with a respective particle weight. It is also envisaged that calculating the weight for the predicted pose may comprise calculating the particle weight for each of the plurality of particles. In an embodiment, the particle weight for at least one of the plurality of particles may be calculated to be proportional to the magnitude value of a corresponding cell in the gradient magnitude map. Calculating particle weight to be proportional to the magnitude value may help to reflect the distribution of the occupied cells on the calculated weights, so that the robot may still be localised even if scale of the floor plan is slightly off (e.g. discrepancy exists in the floor plan, or minor mismatch between the scale of the floor plan and the structure sensed from the environment).
In an embodiment, the generated map may comprise a sensed pose of the robot and the scanned on-site reference features of the current location comprise a fixed or immovable object of the designated environment, the particle weight for at least one of the plurality of particles is calculated to be inverse proportional to a distance between the sensed pose and the fixed or immovable object. Calculating the particle weight to be inverse proportional to the distance between the sensed pose and the fixed or immovable object may help to prevent the robot from drifting away from the true pose because of high accumulated error from the historical frames of scans that were matched to discrepancy of the floor plan resulting in neglecting the matching of the occupied cell that is near to robot's pose in the PSLAM map.
In an embodiment, the N may be chosen from a range from 50 to 150, or from 60 to 140, or from 70 to 130, or from 80 to 120, or from 90 to 110. Indeed, N may be any number in these ranges. It is envisaged that the scanned on-site reference features of the current location may be stored as a latest frame of historical scans for generating the map when the robot traverses to a next location from the current location. It is envisaged that two neighbouring frames of the last N frames of historical scans may share an overlap of on-site reference features.
According to a second aspect of the present invention, there is provided a system for localising a robot using a scale plan of a designated environment, comprising: a sensor module configured to detect on-site reference features and a processor; the processor is configured to: identify reference features from the scale plan; generate a predicted pose of the robot's current location on the scale plan based on the identified reference features; scan on-site reference features of the current location; and generate a map for the current location to localise the robot, based on the scanned on-site reference features of the current location and last N frames of historical scans of previous on-site reference features of a plurality of locations in the designated environment that the robot traversed through before reaching the current location; the last N frames being fewer than total frames of the historical scans of the previous on-site reference features.
The processor of the system constructs the map using the current scan and the last N frames of historical scans of previous on-site reference features, so that the system may avoid the need of storing and processing historical scans older than the last N frame, which may result in localising on a globally inconsistent but locally consistent map and hence the localised pose of the robot may fit nicely to the scale plan. Besides maintaining accuracy of local consistency of the generated map, the processor using such method may also help the system to reduce computational cost and accumulated errors on mapping. Although the last N frames are fewer than the total frames of historical scans, the map generated from these frames still covers a relative large area. Hence even if the scale plan has one or more smaller regions that have inaccurate scale, the generated map may still be able to help the system to align the robot to the scale plan regions with inaccurate scale, which may improve the reliability of the localisation.
In an embodiment, the processor may be configured to further calculate a weight for the predicted pose based on the generated map and the scale plan. It is envisaged that the calculated weight may be used to update the predicted pose of the robot.
In an embodiment, the processor may be configured to further convert the scale plan to a first gradient direction map and convert the generated map to a second gradient direction map for calculating the weight for the predicted pose, wherein the first gradient direction map includes a first gradient direction representing a respective reference normal direction of surface to each reference feature identified on the scale plan and the second gradient direction map includes a second gradient direction representing a respective on-site normal direction of a surface to each on-site reference feature scanned at the current location. The system may use the gradient direction maps to address issues like multiple local maxima that may be caused by wall layout of the floor plan due to that wall layout occupied cells in the floor plan shows two parallel lines representing front and rear surfaces of the walls, where the front surfaces are visible to robot's observation while the rear surfaces are not.
In an embodiment, the processor may be configured to further convert the scale plan to a gradient magnitude map for calculating the weight for the predicted pose, wherein the gradient magnitude map includes a gradient of magnitude representing a respective distribution for each reference feature identified on the scale plan, with a centre of each identified reference feature carrying a higher magnitude value than an edge of the respective identified reference feature. The processor of the system, by generating the gradient magnitude map, may help to maintain the accuracy of localisation of the robot even when scale of the floor plan is slightly different from actual condition.
It is envisaged that the predicted pose may comprise a plurality of particles, each representing a potential location of the robot associated with a respective particle weight. In an embodiment, calculating the weight for the predicted pose may comprise calculating the particle weight for each of the plurality of particles. In an embodiment, wherein the particle weight for at least one of the plurality of particles may be calculated to be proportional to the magnitude value of a corresponding cell in the gradient magnitude map. The processor of the system, by calculating particle weight to be proportional to the magnitude value of a corresponding cell, may help to reflect the distribution of the occupied cells in the calculated weights, so that the system may still localise the robot even if the scale of the floor plan is slightly off (e.g. discrepancy in the floor plan, or minor mismatch between the scale of the floor plan and the structure sensed from the environment).
In an embodiment, the generated map may comprise a sensed pose of the robot and the scanned on-site reference features of the current location comprise a fixed or immovable object of the designated environment, the particle weight for at least one of the plurality of particles is calculated to be inverse proportional to a distance between the sensed pose and the fixed or immovable object. The processor of the system, by calculating the particle weight to be inverse proportional to a distance between the sensed pose and the fixed or immovable object may help the system in preventing the robot from drifting away from the true pose; such drift may be due to high accumulated error from the historical frames of scans that were matched to discrepancy of the floor plan resulting in neglecting the matching of the occupied cell that is near to robot's pose in the PSLAM map.
In an embodiment, the N may be chosen from a range from 50 to 150. It is envisaged that the processor may store the scanned on-site reference features of the current location as a latest frame of historical scans for generating the map when the robot traverses to a next location from the current location. It is envisaged that two neighbouring frames of the last N frames of historical scans may share an overlap of on-site reference features.
According to a third aspect of the present invention, there is provided a robot, comprising a system, and a controller configured to control an operation of the robot in a designated environment based on a localisation result provided by the system;
the system comprises: a sensor module configured to detect on-site reference features and a processor; the processor is configured to: identify reference features from the scale plan; generate a predicted pose of the robot's current location on the scale plan based on the identified reference features; scan on-site reference features of the current location; and generate a map for the current location to localise the robot, based on the scanned on-site reference features of the current location and last N frames of historical scans of previous on-site reference features of a plurality of locations in the designated environment that the robot traversed through before reaching the current location; the last N frames being fewer than total frames of the historical scans of the previous on-site reference features.
According to a fourth aspect of the present invention, there is provided a non-transitory computer-readable storage medium for storing a computer program, when executed by a processor, performs a method of localising a robot in a designated environment, comprises: identifying reference features from the scale plan; generating a predicted pose of the robot's current location on the scale plan based on the identified reference features; scanning on-site reference features of the current location; generating a map for the current location to localise the robot, based on the scanned on-site reference features of the current location and last N frames of historical scans of previous on-site reference features of a plurality of locations in the designated environment that the robot traversed through before reaching the current location; the last N frames being fewer than total frames of the historical scans of the previous on-site reference features.
In the following, an embodiment of the present invention including the figures will be described as non-limiting examples with reference to the accompanying drawings in which:
According to an embodiment of the present invention, a method of localising a robot on a scale plan of a designated environment and a localisation system for performing the method are provided. As will be described in detail below, the localisation is based on a scale plan. Reference features are identified from the scale plan for generating a predicted pose of the robot. On-site reference features of the robot's current location are scanned for constructing a map of the real environment. The construction of the map is based on the scanning result of the robot's current location and last N frames of historical scans of previous on-site reference features of a plurality of locations that the robot traversed through before reaching the current location, the last N frames being fewer than total frames of the historical scans of the previous on-site reference features.
The controller 106 may comprise computing devices and a plurality of sub-systems (not shown) for controlling specific aspects of movement of the robot 100 including but not limited to a deceleration system, an acceleration system and a steering system. Certain of these sub-systems may comprise one or more actuators, for example the deceleration system may comprise brakes, the acceleration system may comprise an accelerator pedal, and the steering system may comprise a steering wheel or other actuator to control the angle of turn of wheels of the robot 100, etc.
It is understood that by programming and/or loading executable instructions onto the localisation system 104, at least one of the CPU 108, the RAM 114, the ROM 112 and the GPU 120 are changed, transforming the localisation system 104 in part into a particular machine or apparatus having the novel functionality taught by the present disclosure. It is fundamental to the electrical engineering and software engineering arts that functionality that can be implemented by loading executable software into a computer can be converted to a hardware implementation by well-known design rules. Decisions between implementing a concept in software versus hardware typically hinge on considerations of stability of the design and numbers of units to be produced rather than any issues involved in translating from the software domain to the hardware domain. Generally, a design that is still subject to frequent change may be preferred to be implemented in software, because re-spinning a hardware implementation is more expensive than re-spinning a software design. Generally, a design that is stable that will be produced in large volume may be preferred to be implemented in hardware, for example in an application specific integrated circuit (ASIC), because for large production runs the hardware implementation may be less expensive than the software implementation. Often a design may be developed and tested in a software form and later transformed, by well-known design rules, to an equivalent hardware implementation in an application specific integrated circuit that hardwires the instructions of the software. In the same manner as a machine controlled by a new ASIC is a particular machine or apparatus, likewise a computer that has been programmed and/or loaded with executable instructions may be viewed as a particular machine or apparatus.
Additionally, after the localisation system 104 is turned on or booted, the CPU 108 and/or GPU 120 may execute a computer program or application. For example, the CPU 108 and/or GPU 120 may execute software or firmware stored in the ROM 112 or stored in the RAM 114. In some cases, on boot and/or when the application is initiated, the CPU 108 and/or GPU 120 may copy the application or portions of the application from the secondary storage 110 to the RAM 114 or to memory space within the CPU 108 and/or GPU 120 itself, and the CPU 108 and/or GPU 120 may then execute instructions that the application is comprised of. In some cases, the CPU 108 and/or GPU 120 may copy the application or portions of the application from memory accessed via the network connectivity devices 118 or via the I/O devices 116 to the RAM 114 or to memory space within the CPU 108 and/or GPU 120, and the CPU 108 and/or GPU 120 may then execute instructions that the application is comprised of. During execution, an application may load instructions into the CPU 108 and/or GPU 120, for example load some of the instructions of the application into a cache of the CPU 108 and/or GPU 120. In some contexts, an application that is executed may be said to configure the CPU 108 and/or GPU 120 to do something, e.g., to configure the CPU 108 and/or GPU 120 to perform the localisation according to the described embodiment. When the CPU 108 and/or GPU 120 is configured in this way by the application, the CPU 108 and/or GPU 120 becomes a specific purpose computer or a specific purpose machine.
The secondary storage 110 may comprise one or more disk drives or tape drives and is used for non-volatile storage of data and as an over-flow data storage device if the RAM 114 is not large enough to hold all working data. The secondary storage 110 may be used to store programs which are loaded into the RAM 114 when such programs are selected for execution. The ROM 112 is used to store instructions and perhaps data which are read during program execution. The ROM 112 is a non-volatile memory device which typically has a small memory capacity relative to the larger memory capacity of the secondary storage 110. The RAM 114 is used to store volatile data and perhaps to store instructions. Access to both the ROM 112 and the RAM 114 is typically faster than to the secondary storage 110. The secondary storage 110, the RAM 114, and/or the ROM 112 may be referred to in some contexts as computer readable storage media and/or non-transitory computer readable media.
The I/O devices 116 may include a wireless or wired connection to the sensor module 102 for receiving data from the sensor module 102 and/or a wireless or wired connection to the controller 106 for transmitting information, such as a path plan, so that the controller 106 may control operation of the robot 100 accordingly. The I/O devices 116 may alternatively or additionally include electronic displays such as video monitors, liquid crystal displays (LCDs), plasma displays, touch screen displays, or other well-known output devices.
The network connectivity devices 118 may enable a wireless connection to facilitate communication with other computing devices such as components of the robot 100, for example the sensor module 102 and/or controller 106 or with other computing devices not part of the robot 100. The network connectivity devices 118 may take the form of modems, modem banks, Ethernet cards, universal serial bus (USB) interface cards, serial interfaces, token ring cards, fibre distributed data interface (FDDI) cards, wireless local area network (WLAN) cards, radio transceiver cards that promote radio communications using protocols such as code division multiple access (CDMA), global system for mobile communications (GSM), long-term evolution (LTE), worldwide interoperability for microwave access (WiMAX), near field communications (NFC), radio frequency identity (RFID), and/or other air interface protocol radio transceiver cards, and other well-known network devices. The network connectivity devices 118 may enable the processor 108 and/or GPU 120 to communicate with the Internet or one or more intranets. With such a network connection, it is contemplated that the processor 108 and/or GPU 120 might receive information from the network, or might output information to the network in the course of performing a localisation method according to the described embodiment. Such information, which is often represented as a sequence of instructions to be executed using the processor 108 and/or GPU 120, may be received from and outputted to the network, for example, in the form of a computer data signal embodied in a carrier wave.
Such information, which may include data or instructions to be executed using the processor 108 and/or GPU 120 for example, may be received from and outputted to the network, for example, in the form of a computer data baseband signal or signal embodied in a carrier wave. The baseband signal or signal embedded in the carrier wave, or other types of signals currently used or hereafter developed, may be generated according to several methods well-known to one skilled in the art. The baseband signal and/or signal embedded in the carrier wave may be referred to in some contexts as a transitory signal.
The processor 108 and/or GPU 120 executes instructions, codes, computer programs, scripts which it accesses from hard disk, floppy disk, optical disk (these various disk-based systems may all be considered the secondary storage 110), flash drive, the ROM 112, the RAM 114, or the network connectivity devices 118. While only one processor 108 and GPU 120 are shown, multiple processors may be present. Thus, while instructions may be discussed as executed by one processor 108, the instructions may be executed simultaneously, serially, or otherwise executed by one or multiple processors. Instructions, codes, computer programs, scripts, and/or data that may be accessed from the secondary storage 110, for example, hard drives, floppy disks, optical disks, and/or other device, the ROM 112, and/or the RAM 114 may be referred to in some contexts as non-transitory instructions and/or non-transitory information.
In an embodiment, the localisation system 104 may comprise two or more computers in communication with each other that collaborate to perform a task. For example, but not by way of limitation, an application may be partitioned in such a way as to permit concurrent and/or parallel processing of the instructions of the application. Alternatively, the data processed by the application may be partitioned in such a way as to permit concurrent and/or parallel processing of different portions of a data set by the two or more computers. In an embodiment, virtualization software may be employed by the localisation system 104 to provide the functionality of a number of servers that is not directly bound to the number of computers in the localisation system 104. For example, virtualization software may provide twenty virtual servers on four physical computers. In an embodiment, the functionality according to the described embodiment may be provided by executing the application and/or applications in a cloud computing environment. Cloud computing may comprise providing computing services via a network connection using dynamically scalable computing resources.
Cloud computing may be supported, at least in part, by virtualization software. A cloud computing environment may be established by an enterprise and/or may be hired on an as-needed basis from a third-party provider. Some cloud computing environments may comprise cloud computing resources owned and operated by the enterprise as well as cloud computing resources hired and/or leased from a third-party provider.
In an embodiment, some or all of the functionality of the described embodiment may be provided as a computer program product. The computer program product may comprise one or more computer readable storage medium having computer usable program code embodied therein to implement the functionality according to the described embodiment. The computer program product may comprise data structures, executable instructions, and other computer usable program code. The computer program product may be embodied in removable computer storage media and/or non-removable computer storage media. The removable computer readable storage medium may comprise, without limitation, a paper tape, a magnetic tape, magnetic disk, an optical disk, a solid-state memory chip, for example analogue magnetic tape, compact disk read only memory (CD-ROM) disks, floppy disks, jump drives, digital cards, multimedia cards, and others. The computer program product may be suitable for loading, by the localisation system 104, at least portions of the contents of the computer program product to the secondary storage 110, to the ROM 112, to the RAM 114, and/or to other non-volatile memory and volatile memory of the localisation system 104. The processor 108 and/or GPU 120 may process the executable instructions and/or data structures in part by directly accessing the computer program product, for example by reading from a CD-ROM disk inserted into a disk drive peripheral of the localisation system 104. Alternatively, the processor 108 and/or GPU 120 may process the executable instructions and/or data structures by remotely accessing the computer program product, for example by downloading the executable instructions and/or data structures from a remote server through the network connectivity devices 118. The computer program product may comprise instructions that promote the loading and/or copying of data, data structures, files, and/or executable instructions to the secondary storage 110, to the ROM 112, to the RAM 114, and/or to other non-volatile memory and volatile memory of the localisation system 104.
In some contexts, the secondary storage 110, the ROM 112, and the RAM 114 may be referred to as a non-transitory computer readable medium or a computer readable storage media. A dynamic RAM embodiment of the RAM 114, likewise, may be referred to as a non-transitory computer readable medium in that while the dynamic RAM receives electrical power and is operated in accordance with its design, for example during a period of time during which the localisation system 104 is turned on and operational, the dynamic RAM stores information that is written to it. Similarly, the processor 108 and/or GPU 120 may comprise an internal RAM, an internal ROM, a cache memory, and/or other internal non-transitory storage blocks, sections, or components that may be referred to in some contexts as non-transitory computer readable media or computer readable storage media.
For localising the robot 100 in a designated environment, the localisation system 104 is configured to perform a method of localising the robot 100 in the designated or confined environment based on a scale plan of the designated environment. A scale plan of a designated or confined environment refers to a pre-existing map, plan or drawing drawn to scale and shows a layout of the designated environment. The layout is usually illustrated in plan view (i.e. view from the above) and includes at least certain information (e.g. fixed or immovable objects) of the environment, such as features of structures in an indoor environment, features of fixed regions/areas in an outdoor environment. For an indoor environment, a floor plan 136 (see
At step 122, the localisation system 104 identifies reference features from the floor plan 136 of the building.
Returning to
At step 126, the localisation system 104 scans the on-site reference features 186 (see
At step 128, the localisation system 104 generates a map 158 (see
For further processing, the generated PSLAM map 158 and the floor plan 136 are pre-processed. In this embodiment, a Sobel filter is used to detect edges from the PSLAM map 158 and the floor plan 136 for computing direction of facing of wall surfaces 170 (see
Further, the scale plan is also pre-processed by diffusing the occupied cells 154 in the floor plan 136. To diffuse the occupied cells 154, values are assigned to grids of the floor plan 136 corresponding to the occupied cells 154, with those grids at the centres of diffused occupied cells 182 being assigned with higher value than those are away from the centres.
Returning to
The PSLAM map 158 is aligned to the floor plan 136 for localising the robot 100 based on the on-site detected reference features on the PSLAM map 158 and the reference features identified on the floor plan 136.
With the gradient direction map 166 generated from the PSLAM map 158, the direction grid map 160 and the gradient magnitude map 184 generated from the floor plan 136, and the predicted pose 156 comprising pose information of the plurality of particles, a weight wt of each particle [m] is calculated based on these inputs, using Equations (3) and (4) as below.
Equation (3) calculates an angle's fitting score, qj,t[m] for each occupied cell 154 in the PSLAM map 158, where, G∈G represents the occupied cell's magnitude in the gradient magnitude map 184, θ∈Θ represents the occupied cell's angle which in turn represents the occupied cell's normal direction which is identified from the PSLAM map 158 or the floor plan 136, j comprises (x,y) which are coordinates of the occupied cell 154 in the PSLAM map 158, fx
After the angle's fitting scores are calculated, Equation (4) is used to calculate weight, wt for each particle of the predicted pose 156. Based on value of the corresponding angle's fitting score of the occupied cell 154 at the corresponding particle [m], there are two ways of calculating the weight. If the corresponding fitting score is zero or negative, then assign zero as the value of the weight for the corresponding particle. If the corresponding fitting score is higher than zero, then further enhance the fitting score using the associated occupied cell's magnitude, fG (jt, fx
At step 132, the localisation system 104 localises the robot 100 based on the calculated weights of the plurality of particles, wherein the pose of the particle with the highest weight is used as the corrected robot pose.
At step 134, based on the calculated weights of the plurality of particles, the localisation system 104 proceeds with re-sampling a new set of plurality of particles according to the current particle weights. These re-sampled particles may be used for generating a predicted pose 156 for another location.
For illustrating how the method may be implemented, two examples of implementation are described below.
Robot-PSLAM transformation, Ttr-s is used to transform coordinates from the robot frame 206 to the PSLAM frame 208 while in the opposite direction, PSLAM-robot transformation, Tts-r is used to transform coordinates from the PSLAM frame 208 to the robot frame 206; and PSLAM-floorplan transformation, Tts-f is used to transform coordinates from the PSLAM frame 208 to the floor plan frame 210 while in the opposite direction, floorplan-PSLAM transformation, Ttf-s is used to transform coordinates from the floor plan frame 210 to the PSLAM frame 208. The pose of the robot 100 is optimized when above four transformations are corrected.
In
The MCL flow chart 204 comprises two stages: a pre-processing stage 226 and a processing stage 228. At the pre-processing stage 226, the localisation system 104 takes the floor plan 136 and the PSLAM map 158 as inputs to carry out some pre-processing steps. At step 230, the localisation system 104 carries out pre-processing by converting the floor plan 136 to the gradient direction map 160, fΘ, the gradient directions 264 indicate normal directions 168 of surfaces of fixed or immovable objects of the building. At step 232, the localisation system 104 converts the floor plan 136 to the gradient magnitude map 184, fG. A gradient magnitude of a point of the occupied cell 182 in the gradient magnitude map 184 is proportional to a distance between the point to a surface of the occupied cell 182, and the value follows Gaussian distribution with regard to the distance between the point to the surface of the occupied cell 182. Where the PSLAM map 158 becomes available, at step 234, the localisation system 104 converts the PSLAM map 158 to the gradient direction map 166, sΘ
In Equation (5), dist(sxt[m], j) represents distance between pose of robot and occupied cell (x,y) in PSLAM map; fG
Before calculating weights, the sample floor plan 252 is converted to the gradient direction map 160, fΘ and a Gaussian map (i.e. the gradient magnitude map 184), fG. The three sample PSLAM maps 254, 256 and 258 are converted to the gradient direction maps 166, sΘ, respectively. The matrices of the sample floor plan 252 and the sample PSLAM maps 254, 256 and 258 comprise the empty cells 260, the occupied cells 154 and the unknown cells 262. The occupied cells 154 demonstrate structures of the building. The gradient direction 264 are orthogonal to the occupied cells 154 in the respective gradient direction map, pointing from the unknown cells 262 to the empty cells 260. As shown in
Angle's fitting score, qj,t[m], for each occupied cell 154 in each sample PSLAM map is calculated based on the floor plan gradient direction map 160, fΘ and each of the PSLAM gradient direction maps 166, sΘ, using formula (6):
wherein, as indicated in
wherein fG
For illustrating changes of weight of every single interest cell, the relevant elements in the matrices are highlighted with black background in
Turning back to
Experiments are conducted to investigate effectiveness of the localisation method of the present invention. For the purpose of the experiments, an office building in Singapore is chosen as the designated environment, the localisation was performed on level 9 and level 12 of the office building, based on 2D floor plan 136 of the office building. A 2D LiDAR map was built using a known algorithm, G-Mapping, which is then aligned to the 2D floor plan map to match with the G-Mapping built map with eyeballing, so both maps share the same resolution and same world coordinates.
A robot, Pioneer P3-DX equipped with Hokuyo UTM-30LX LiDAR with a field of view of 250° and a range of 30.0 m, is used to perform navigation tasks. All the sensor readings including odometer information are recorded by using an existing Rosbag package. Sensor readings from Rosbag are extracted to perform localisation using an Adaptive Monte Carlo Localisation (AMCL) approach with the G-mapping built map as ground truth of localisation information. Thereafter, the same Rosbag is used to perform the localisation method of the present invention (hereinafter referred to as “the PSLAM method”) with different historical frame numbers being used for constructing the PSLAM map 158. The readings of both localisations are then compared for computing errors.
Similar to
An experiment was also conducted on using AMCL directly using the floor plan 136 as grid map on level 9 and level 12 of the office building. During the experiment, the AMCL approach failed to localise the robot 100 when the robot 100 entered high discrepancy regions 276. The robot 100 drifted away from the true pose and could not recover its pose until the pose on the floor plan 136 is reinitialized.
Experiments were also carried out to compare the weight calculation method proposed in the present invention and a conventional method, using PSLAM as the input observation in the same pose, the results of which are illustrated in
As shown above, the proposed method demonstrates various advantages over the conventional methods. By constructing the PSLAM map 158 based on the current scan and the stored last N frames of historical scans, the accuracy of local consistency of the constructed PSLAM map 158 may be maintained at a level that supports continuous accurate localisation of the robot, and the PSLAM map may continue align the robot 100 in a region where the floor plan 136 comprises an inaccurate scale.
Further, the PSLAM proposed in this embodiment involves frontend scan-matching processes and may not require closed-loop backend processes. Utilizing scan-matching, it is possible to align a current scan to a previous map to maximize the likelihood of the current pose relative to the previous one. Since there may not be a need for the closed-loop process which might be useful for reducing accumulated error on full mapping, the proposed PSLAM may still be useful to create locally consistent maps, although less useful for globally consistent maps.
Also, since the proposed PSLAM may store only the last N frames of historical scans when constructing its map, older frames may drop off when there are more than N of historical frames. This effect is similar to moving windows, and is useful to keep the locally consistent map accurate, and accumulated errors on mapping would not be large. These may help to reduce computational power compared to a pose-graph SLAM, due to a small number of historical frames being used and thus, may not require closed-loop adjustment.
In view of the above, it is envisaged that the PSLAM method may be used to tackle a situation where LiDAR reading has no endpoint matching to permanent structure on the floor plan 136 when the robot 100 enters a zone where the walls are completely occluded by furniture, as illustrated in
The pre-processing of converting the floor plan 136 and the PSLAM map 158 to the gradient direction map 166 may be used to facilitate determining if a particle matches against the rear surface of the wall 142 in the floor plan 136, which may help to reduce weights of particles with the wrong matching of surface normal direction 162 and therefore may help to improve the accuracy of localisation. It is envisaged that, the PSLAM method may be used to tackle an issue that a localisation based on a floor plan may face: wall layout of the floor plan 136 may cause multiple local maxima due to that wall layout in the floor plan 136 shows two parallel lines of the occupied cells 154 representing the front and rear surfaces of the wall 142, where the front surface is visible by robot LiDAR's observation while the rear surface is not.
Diffusing the occupied cells 154 so that the centre of the diffused occupied cells 182 carries higher value which is lower when away from the centre, may be helpful in maintaining the accuracy of the localisation even in regions where the floor plan scale is slightly different from the real environment, such as the condition illustrated in
Overall, the approach combining PSLAM built map, MCL, gradient direction map and Gaussian grid map may help to tackle the issues of missing information in the floor plan 136. Further, with the ability to control the number of historical frames to be used to adapt to a large variety of buildings' floor plans, robustness of the proposed solution may be improved.
While the flow chart of
While it is mentioned in the described embodiment that the robot 100 has wheels, it is envisaged that the robot 100 may be of any type that is able to move around, such as a robot equipped with legs, wings, propellers and/or balloon. It is also envisaged that one type of the robot 100 equipped with wheels is an autonomous vehicle (AV).
While the designated environment in the described embodiment is a building, it is envisaged that the method and system may be applied to outdoor scenarios as well, such as outdoor AVs and mobile platform applications.
While the sensor module 102 in the above described embodiment comprises the 2D LiDAR sensor 194, the odometer 196 and the steering angle sensor 198, it is envisaged that the sensor module 102 may comprise other sensors that may help to detect reference features of an environment and/or detect movement information of the robot 100, such as a 3D LiDAR sensor, a RADAR sensor, an ultrasonic sensor, speedometer, etc. Further, while steering angle sensor 198 is used to detect travelled angle of the robot 100, it is envisaged that the angle can be obtained from the odom or from any steering measure sensors like IMU etc.
While particle filter based MCL is used for localising the pose of the robot 100 in the described embodiment and examples, it is envisaged that other filter algorithms may be used, such as Kalman filters, histogram filters, Kullback-leibler Divergence (KLD) sampling based MCL, Iterative Closet Point based (ICP) method, Template Matching based method, and grid localisation etc.
While in the examples of implementation, the pre-processing stage comprises pre-processing steps carried out before the start of MCL algorithm, it is envisaged that one or more pre-processing steps may be carried out concurrently with or after some steps of the MCL algorithm. For example, the floor plan 136 may be converted to the gradient direction map 160 and the gradient magnitude map 184 first, and then the PSLAM map 158 may be converted to gradient direction map 166 before the update of weight starts.
While in the examples of implementation, the earliest frame exceeding N is deleted, it is envisaged that the frames may not be necessarily deleted from all mediums, for example, the frames may be deleted from the robot hardware, but before the deletion, the frames may be sent to a server (e.g. at cloud).
While the floor plan is converted to the gradient direction map 160 and/or the gradient magnitude map 184, it is envisaged that other algorithms or tools may be used to identify the reference features (such as the surface normal, distribution of occupied cells) from the floor plan. For example, for detecting the normal of a line, methods that may be used to detect the direction of the line may be used as the direction of the line is perpendicular to the normal of the line, such as line segmentation, phase portrait model, etc.; for distribution of occupied cells, morphological operation “dilate” may be used.
While in the described embodiment, grid map is used. It is envisaged that other types of map that is able to represent information of the map appropriately, such as vector maps (e.g. SVG).
While the localisation system 104 is shown as a separate module in
Having now described the invention, it should be apparent to one of ordinary skill in the art that many modifications can be made hereto without departing from the scope as claimed.
Number | Date | Country | Kind |
---|---|---|---|
10202203238W | Mar 2022 | SG | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/SG2023/050207 | 3/29/2023 | WO |