Patent Description:
At present, the civil positioning and navigation technology generally relies on the GNSS (global navigation satellite system), the accuracy of such navigation technology for global positioning is not high, and the error is usually at a meter level. Although the SLAM (simultaneous localization and mapping) technology in the field of robotics may provide an accurate positioning function, global positioning cannot be performed since the SLAM map data are only a relative local map.

The document <CIT> refers to a method of performing wide area localization at a mobile device, comprising: receiving, one or more images of a local environment of the mobile device; initializing, a keyframe based simultaneous localization and mapping (SLAM) map of the local environment with the one or more images, wherein the initializing comprises selecting a first keyframe from one of the images; determining, a respective localization of the mobile device within the local environment, wherein the respective localization is based on the keyframe based SLAM map; sending, the first keyframe to a server; and receiving, a first global localization response from the server.

<CIT> refers to a visual positioning system for indoor locations with associated content. The system has a map creator and a viewer. The map creator maps the indoor location by acquiring plans thereof, detects paths through the location and associates with the paths frames relating to objects and views of the paths. The viewer allows a user to orient in the indoor location by locating the user with respect to a path. The viewer enhances GPS/WIFI/<NUM> data by matching user-captured images with the frames, and then interactively displaying the user data from the mapped paths with respect to user queries.

<CIT> refers to an information processing device including: a global map acquiring unit that acquires at least a part of a global map representing positions of objects in a real space where a plurality of users are in activity; a local map generating unit that generates a local map representing positions of nearby objects detectable by a device of one user among the plurality of users; and an updating unit that updates the global map based on position data of objects included in the local map.

The publication "ALIMC: Activity Landmark-Based Indoor Mapping via Crowdsourcing" refers to indoor maps being integral to pedestrian navigation systems, an essential element of intelligent transportation systems (ITS). The authors of the publication propose ALIMC, i.e., Activity Landmark-based Indoor Mapping system via Crowdsourcing. ALIMC can automatically construct indoor maps for anonymous buildings without any prior knowledge using crowdsourcing data collected by smartphones. ALIMC abstracts the indoor map using a link-node model in which the pathways are the links and the intersections of the pathways are the nodes, such as corners, elevators, and stairs. When passing through the nodes, pedestrians do the corresponding activities, which are detected by smartphones. After activity detection, ALIMC extracts the activity landmarks from the crowdsourcing data and clusters the activity landmarks into different clusters, each of which is treated as a node of the indoor map. ALIMC then estimates the relative distances between all the nodes and obtains a distance matrix. Based on the distance matrix, ALIMC generates a relative indoor map using the multidimensional scaling technique. Finally, ALIMC converts the relative indoor map into an absolute one based on several reference points. To evaluate ALIMC, we implement ALIMC in an office building. Experiment results show that the 80th percentile error of the mapping accuracy is about <NUM>-<NUM> (<NPL>).

The embodiments of the present invention provide for accurately performing global positioning.

In order to achieve the above object, the embodiment of the present invention adopts the technical solutions taught in the methods of independent claims <NUM> and <NUM>, the computer storage media of independent claims <NUM> and <NUM>, the computer program products of independent claims <NUM> and <NUM>, the terminal of independent claim <NUM> and the server of independent claim <NUM>.

According to the positioning method, the terminal and the server provided by the embodiment of the present invention, the server searches for matched local map data and mapping parameters and sends the same to the terminal according to the first global coordinate which has relatively low precision sent by the terminal, and then the terminal performs positioning from the local map data according to the surrounding environment information of the current location obtained in real time to obtain the local coordinate corresponding to the surrounding environment information of the current location, the precision of the local coordinate obtained at this time is relatively high, then the obtained local coordinate is converted into the second global coordinate of the current position according to the mapping parameters. Since the second global coordinate are converted from the local coordinate with higher precision, the precision of the second global coordinate is also relatively high, thereby completing accurate global positioning.

To illustrate technical solutions in the embodiments of the present invention or the prior art more clearly, a brief introduction on the drawings which are needed in the description of the embodiments or the prior art is given below. Apparently, the drawings in the description below are merely some of the embodiments of the present invention, based on which other drawings may be obtained by those of ordinary skills in the art without any creative effort.

A clear and complete description of technical solutions in the embodiments of the present invention will be given below, in combination with the drawings in the embodiments of the present invention. Apparently, the embodiments described below are merely a part, but not all, of the embodiments of the present invention.

The embodiment of the present invention provides a positioning system, as shown in <FIG>, including: a terminal <NUM> located on site and a server <NUM> located in the cloud, the terminal <NUM> obtains current global coordinate data through a global sensor and sends the current global coordinate data to the server <NUM> in the cloud for retrieval and matching, then the server <NUM> sends corresponding local map data to the terminal <NUM>, and the terminal <NUM> compares the information collected by a current local sensor with the local map data to complete accurate global positioning.

The terminal <NUM> according to the embodiment of the present invention may be a smart device such as a blind guide helmet, a robot and the like, referring to <FIG>, the terminal <NUM> may include a sensor <NUM>, a processor <NUM>, a memory <NUM> and a communication interface <NUM>, which are connected with each other by a bus. The memory <NUM> is configured to store codes and data and the like executed by the processor <NUM>, and the processor <NUM> controls the sensor <NUM> to collect surrounding environment information of a current location, performs preliminary processing, and then sends the surrounding environment information to the server <NUM> through the communication interface <NUM> in a wired or wireless manner.

Referring to <FIG>, the server <NUM> according to the embodiment of the present invention may include a communication interface <NUM>, a processor <NUM> and a memory <NUM>, which are connected with each other by a bus. The memory <NUM> is configured to store codes and map data and the like executed by the processor <NUM>, and the processor <NUM> controls the communication interface <NUM> to receive the surrounding environment information of the current location from the terminal <NUM> in a wired or wireless manner, then processes the surrounding environment information and sends the processed map data to the terminal <NUM> via the communication interface <NUM>.

The local coordinate in the embodiment of the present invention includes relative coordinate within a local geographic range obtained by sensors such as visual, infrared, ultrasonic, laser radar and IMU (inertial measurement unit); and the global coordinate are absolute coordinate within global geographic range. The local coordinate and the global coordinate may be two-dimensional plane coordinate shown in <FIG> or three-dimensional space coordinate shown in <FIG>. The plane coordinate obtained by means of GNSS satellite positioning (e.g., GPS (global position system), WIFI (wireless-fidelityy) positioning, base station positioning and other manners are two-dimensional plane coordinate, which may include longitude and latitude information and are generally applied to robots, self-driving cars, ships and other devices running on the land or in the ocean. On the basis of two-dimensional plane coordinate, three-dimensional space coordinate is constituted by adding height information obtained by an ultrasonic sensor or a height sensor or the like, and is generally applied to devices running in the air such as unmanned aerial vehicles, airplanes, hot air balloons and the like.

According to the positioning method, the terminal, and the server provided by the embodiment of the present invention, during the process of positioning, the server firstly performs coarse positioning according to the global data provided by the terminal to obtain corresponding local map data, then the terminal performs accurate global positioning according to the local map data and the surrounding environment information of the current location obtained in real time, so that the calculation amount of map positioning may be effectively reduced. In addition, since various processing and storage works are completed in the cloud, the resource requirements, the power consumption and the cost of the terminal side are effectively reduced.

The positioning method according to the embodiment of the present invention firstly needs to create a map database on the server, as shown in <FIG>, specifically including:
S101. the terminal obtains a third global coordinate of a current location and corresponding local map data.

The terminal simultaneously records the global coordinates and corresponding local map data while traveling along a specific trajectory, and forms data pairs from the global coordinates and the corresponding local map data (i. e, one-to-one correspondence), and the dimension of the global coordinates is the same as the dimension of the local coordinates in the local map data.

Exemplarily, in the embodiment of the present invention, it is taken as an example for illustration that the global coordinates are GPS latitude and longitude coordinates, and the local map data are vSLAM (visual simultaneous localization and mapping) map data (i.e., including frame numbers of corresponding image frames and corresponding local coordinates).

In case that the global coordinates and the local coordinates are two-dimensional plane coordinates, exemplarily, the global coordinates (latitude and longitude) may be collected by a GPS sensor, and meanwhile, an optical center of a first frame camera is taken as the origin, an image of the environment is collected by a visual sensor, a vSLAM map creation operation is performed on the collected image, a vSLAM frame corresponding to the global coordinates and corresponding two-dimensional local coordinates are output, and the two-dimensional local coordinates at this time are horizontal and vertical axis direction coordinates of the screen.

In case that the global coordinates and the local coordinates are three-dimensional space coordinates, exemplarily, height information may also be obtained by an ultrasonic sensor or a height sensor or the like at the same time, and the two-dimensional plane coordinates and the height information are collectively used as the global coordinates; and meanwhile, the optical center of the first frame camera is taken as the origin, the image of the environment is collected by the visual sensor, the vSLAM map creation operation is performed on the collected image, frame numbers of image frames corresponding to the global coordinates and corresponding three-dimensional local coordinates are output, and the three-dimensional local coordinates at this time are horizontal and vertical axis direction coordinates and optical axis direction coordinates of the screen.

In order to improve the retrieval efficiency, as shown in <FIG>, the frame numbers of key frames and corresponding key frame local coordinates may also be output during the process of vSLAM map creation, and each key frame represents a segment of continuous image frames in the collected image.

Therefore, in case that the local map data are the vSLAM map data, the local map data includes: the frame numbers of image frames and local coordinates corresponding to the global coordinates, the frame numbers of key frames and the key frame local coordinates.

Those skilled in the art may also appreciate that the global coordinates and the local map data obtained in other ways are equally applicable to the present invention.

the terminal sends the third global coordinate of the current location and corresponding local map data to the server.

the server receives the third global coordinate of the current location and corresponding local map data from the terminal.

the server solves mapping parameters R, T, and s according to a formula Y=(RX+T)/s.

Wherein, Y is an N*<NUM> matrix, representing the global coordinates; X is an N* <NUM> matrix, representing the local coordinates in the local map data corresponding to the global coordinates; and the mapping parameters indicate the mapping relationship between the global coordinates and the local coordinates, and specifically indicate transformation parameters used in a process of mapping the local coordinates to the global coordinates, R is an N*N matrix, T is an N*<NUM> matrix, R and T represent translation rotation parameters, s is a scaling factor, and N is the dimension of the global coordinates or the local coordinates. The mapping parameters R, T, and s calculated via each group of global coordinates and corresponding local map data are the same.

Specifically, the mapping parameters R, T, and s may be solved by using the least square method according to the above formula, wherein X may be all local coordinates in a group of local map data, Y represents corresponding global coordinates, and the calculated mapping parameters at this time are more accurate due to more data, but more computing resources are consumed; or, X may be the key frame local coordinates in a group of local map data, Y represents corresponding global coordinates, and the accuracy of the calculated mapping parameters at this time is reduced, but less computing resources are consumed.

In order to improve retrieval efficiency and save storage space, a map data mapping table as shown in Table <NUM> may be formed in case that both of the global coordinates and the local coordinates are two-dimensional plane coordinates:.

In case that both of the global coordinates and the local coordinates are three-dimensional plane coordinates, the map data mapping table as shown in Table <NUM> may be formed:.

The positioning method provided by the embodiment of the present invention, as shown in <FIG>, specifically includes:
S201. the terminal sends a first global coordinate of a current location to a server.

If the global coordinate of the current position obtained by the terminal through GNSS satellite positioning, WIFI positioning, base station positioning and other manners is not processed, the error thereof is at a meter level, and this global coordinate is called the first global coordinate. Furthermore, the first global coordinate may be two-dimensional plane coordinate or three-dimensional space coordinate.

the server receives the first global coordinate of the current location from the terminal.

the server searches for corresponding local map data and mapping parameters R, T, and s corresponding to the local map data according to the first global coordinate.

In case that the first global coordinate is two-dimensional plane coordinate, the server may query the column of the global coordinate of Table <NUM> to find the global coordinate with the closest Euclidean distance and to find a group of corresponding local map data and mapping parameters R, T and s simultaneously. Exemplarily, assuming that the found global coordinate with the closest Euclidean distance is <NUM>, <NUM>, then the corresponding local map data is "vSLAM map <NUM>", and the mapping parameters are R1, T1, s1.

In case that the first global coordinate is three-dimensional plane coordinate, the server may query the column of the global coordinate of Table <NUM> to find the global coordinate with the closest Euclidean distance and to find a group of corresponding local map data and corresponding mapping parameters R, T and s simultaneously.

the server sends the local map data corresponding to the first global coordinate and the mapping parameters R, T, and s corresponding to the local map data to the terminal.

the terminal receives the local map data corresponding to the first global coordinate and the mapping parameters R, T, and s corresponding to the local map data from the server.

the terminal obtains the local coordinate of the current location according to the local map data and the surrounding environment information of the current location.

Specifically, according to the present invention, wherein the local map data is vSLAM map data and the surrounding environment information of the current location is a current image frame obtain by the visual sensor, the coordinate obtained by the terminal by performing vSLAM positioning operation according to the current image frame and the vSLAM map data is used as the local coordinate corresponding to the current image frame.

the terminal obtains a second global coordinate of the current location according to the local coordinate of the current location and the mapping parameters R, T, and s.

Specifically, the terminal solves the second global coordinate of the current position according to Y=(RX+T)/s, wherein X is an N*<NUM> matrix, representing the local coordinate of the current position; and Y is an N*<NUM> matrix, representing the second global coordinate of the current location.

According to the positioning method provided by the embodiment of the present invention, the server searches for matched local map data and the mapping parameters and sends the same to the terminal according to the first global coordinate which has relatively low precision sent by the terminal, and then the terminal performs positioning from the local map data according to the surrounding environment information of the current location obtained in real time to obtain the local coordinate corresponding to the surrounding environment information of the current location, the precision of the local coordinate obtained at this time is relatively high, then the obtained local coordinate is converted into the second global coordinate of the current position according to the mapping parameters. Since the second global coordinate are converted from the local coordinate with higher precision, the precision of the second global coordinate is also relatively high, thereby completing accurate global positioning.

Those skilled in the art will readily appreciate that the present invention may be implemented by hardware or a combination of hardware and computer software in combination with the units and algorithm steps of the various examples described in the embodiments disclosed herein. Whether a certain function is implemented in the form of hardware or driving hardware depends on the specific applications and design constraint conditions of the technical solutions. Those skilled in the art may implement the described functions by using different methods for each specific application, but this implementation should not be considered beyond the scope of the present invention.

The embodiment of the present invention may divide the function modules of the terminal according to the above method example, for example, the function modules may be divided according to the functions, and two or more functions may also be integrated into one processing module. The above integrated module may be implemented in the form of hardware and may also be implemented in the form of a software function module. It should be noted that the division of the modules in the embodiment of the present invention is schematic and is only a logical function division, and other division manners may be provided during the actual implementation.

In the case that the function modules are divided according to the functions, <FIG> shows a possible structural schematic diagram of the terminal involved in the above embodiments, the terminal <NUM> includes a receiving unit <NUM>, an obtaining unit <NUM> and a sending unit <NUM>. The receiving unit <NUM> is configured to support the terminal to execute the process S205 in <FIG>; the obtaining unit <NUM> is configured to support the terminal to execute the process S101 in <FIG> and the processes S206, S207 in <FIG>; and the sending unit <NUM> is configured to support the terminal to execute the process S102 in <FIG> and the process S201 in <FIG>. All the related contents of the steps involved in the foregoing method embodiment may be quoted to the function descriptions of the corresponding function modules, and thus details are not described herein again.

In the case that the integrated unit is adopted, <FIG> shows a possible structural schematic diagram of the terminal involved in the above embodiments. The terminal <NUM> includes a processing module <NUM> and a communication module <NUM>. The processing module <NUM> is configured to perform control and management on the actions of the terminal, for example, the processing module <NUM> is configured to support the terminal to execute the process S101 in <FIG> and the processes S206, S207 in <FIG>. The communication module <NUM> is configured to support the communication between the terminal and other entities, for example, the communication between the terminal and the function modules or network entities shown in <FIG>. The terminal <NUM> may further include a storage module <NUM>, configured to store a program code and data of the terminal.

The processing module <NUM> may be a processor or a controller, for example, may be a central processing unit (CPU), a general purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combinations thereof. The processing module may implement or execute logic boxes, modules and circuits of various examples described in combination with the contents disclosed by the present invention. The processor may also be a combination for implementing a computing function, for example, a combination including one or more microprocessors, a combination of a DSP and a microprocessor, and the like. The communication module <NUM> may be a transceiver, a transceiver circuit or a communication interface and the like. The storage module <NUM> may be a memory.

In case that the processing module <NUM> is a processor, the communication module <NUM> is a transceiver, and the storage module <NUM> is a memory, the terminal involved in the embodiment of the present invention may be the terminal as shown in <FIG>.

Referring to <FIG>, the terminal <NUM> includes a processor <NUM>, a transceiver <NUM>, a memory <NUM> and a bus <NUM>. The transceiver <NUM>, the processor <NUM> and the memory <NUM> are connected to each other through the bus <NUM>; the bus <NUM> may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus or the like. The bus may be divided into an address bus, a data bus, a control bus and the like. For the ease of representation, the bus is only expressed by a thick line in <FIG>, but it does not mean that there is only one bus or one type of bus.

The steps of the method or algorithm described in combination with the contents disclosed by the present invention may be implemented in the form of hardware and may also be implemented by a processor executing software instructions. The embodiment of the present invention further provides a storage medium, the storage medium may include a memory <NUM>, configured to store a computer software instruction used by the terminal, and the computer software instruction includes a program code designed to execute the positioning method. Specifically, the software instruction may be composed of corresponding software modules, the software modules may be stored in a random access memory (RAM), a flash memory, a read only memory (ROM), an erasable programmable read-only memory (EPROM), an electrically EPROM (EEPROM), or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor, so that the processor may read information from and write information to the storage medium. Of course, the storage medium may also be a constituent part of the processor. The processor and the storage medium may be located in an ASIC. Additionally, the ASIC may be located in the terminal. Of course, the processor and the storage medium may also exist as discrete components in the terminal.

The embodiment of the present invention further provides a computer program, the computer program may be directly loaded into the memory <NUM> and contains a software code, and the computer program may implement the above positioning method after being loaded and executed by a computer.

In the case that the function modules are divided according to the functions, <FIG> shows a possible structural schematic diagram of the server involved in the above embodiments, the server <NUM> includes a receiving unit <NUM>, an obtaining unit <NUM> and a sending unit <NUM>. The receiving unit <NUM> is configured to support the server to execute the process S103 in <FIG> and the process S202 in <FIG>; the obtaining unit <NUM> is configured to support the server to execute the process S104 in <FIG> and the process S203 in <FIG>; and the sending unit <NUM> is configured to support the server to execute the process S204 in <FIG>. All the related contents of the steps involved in the foregoing method embodiment may be quoted to the function descriptions of the corresponding function modules, and thus details are not described herein again.

In the case that the integrated unit is adopted, <FIG> shows a possible structural schematic diagram of the server involved in the above embodiments. The server <NUM> includes a processing module <NUM> and a communication module <NUM>. The processing module <NUM> is configured to perform control and management on the actions of the server, for example, the processing module <NUM> is configured to support the server to execute the process S104 in <FIG> and the process S203 in <FIG>. The communication module <NUM> is configured to support the communication between the server and other entities, for example, the communication between the server and the function modules or network entities shown in <FIG>. The server <NUM> may further include a storage module <NUM>, configured to store a program code and data of the server.

In case that the processing module <NUM> is a processor, the communication module <NUM> is a transceiver, and the storage module <NUM> is a memory, the server involved in the embodiments of the present invention may be the server as shown in <FIG>.

Referring to <FIG>, the server <NUM> includes a processor <NUM>, a transceiver <NUM>, a memory <NUM> and a bus <NUM>. The transceiver <NUM>, the processor <NUM> and the memory <NUM> are connected to each other through the bus <NUM>; the bus <NUM> may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus or the like. The bus may be divided into an address bus, a data bus, a control bus and the like. For the ease of representation, the bus is only expressed by a thick line in <FIG>, but it does not mean that there is only one bus or one type of bus.

The steps of the method or algorithm described in combination with the contents disclosed by the present invention may be implemented in the form of hardware and may also be implemented by a processor executing software instructions. The embodiment of the present invention further provides a storage medium, the storage medium may include a memory <NUM>, configured to store a computer software instruction used by the server, and the computer software instruction includes a program code designed to execute the positioning method. Specifically, the software instruction may be composed of corresponding software modules, the software modules may be stored in a random access memory (RAM), a flash memory, a read only memory (ROM), an erasable programmable read-only memory (EPROM), an electrically EPROM (EEPROM), or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor, so that the processor may read information from and write information to the storage medium. Of course, the storage medium may also be a constituent part of the processor. The processor and the storage medium may be located in an ASIC. Additionally, the ASIC may be located in the server. Of course, the processor and the storage medium may also exist as discrete components in the server.

Claim 1:
A positioning method comprising:
sending (S201) a first global coordinate of a current location to a server;
receiving (S205) local map data corresponding to the first global coordinate and mapping parameters corresponding to the local map data from the server, wherein the mapping parameters are configured to indicate a mapping relationship between global coordinates and local coordinates;
obtaining (S206) a local coordinate of the current location according to the local map data and surrounding environment information of the current location; and
obtaining (S207) a second global coordinate of the current location according to the local coordinate of the current location and the mapping parameters;
wherein the local map data is visual simultaneous localization and mapping (vSLAM) map data, and the surrounding environment information of the current location is a current image frame obtained by a visual sensor, and said obtaining a local coordinate of the current location according to the local map data and surrounding environment information of the current location comprises: using the coordinate obtained by performing a vSLAM positioning operation according to the current image frame and the vSLAM map data as the local coordinate of the current location; wherein the first global coordinate, obtained by a global sensor, and the second global coordinate are absolute coordinates within a global geographic range, and the local coordinate is a relative coordinate within a local geographic range.