Map construction method and device, storage medium and program product
By only building a small area map during the anchor map construction process and binding the anchor point to the area map, the anchor point drift problem caused by the mobile device's self-tracking function is solved, achieving higher positioning accuracy and resource conservation.
Patent Information
- Application Number
- CN202311756195.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-19
- Publication Date
- 2025-06-20
AI Technical Summary
The self-tracking function of mobile devices has accumulated drift, resulting in drifting of anchors placed in the anchor map.
When building anchors, only a small area map is built and the anchor point is bound to the area map to control the accumulated drift error of the device's self-tracking.
By building smaller area maps, the amount of drift of anchor points in the same area map is reduced, the resources required for map construction are saved, and the accuracy of positioning is improved.
Smart Images

Figure CN120176649A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate to the technical field of computers and network communications, and in particular, to a method, device, storage medium, and program product for map construction. Background Art
[0002] Spatial anchors, as a basic function of extended reality (XR) such as augmented reality (AR) and mixed reality (MR), have been widely used on various mobile devices.
[0003] In related technologies, an anchor map can be constructed based on the self-tracking pose of a mobile device to place anchors.
[0004] However, the inventors found that there are at least the following technical problems in related technologies: Since the self-tracking function of a mobile device usually has cumulative drift, the anchors placed by the user in the map also show a drift phenomenon. Summary of the Invention
[0005] Embodiments of the present disclosure provide a method, device, storage medium, and program product for map construction to reduce the drift phenomenon of anchors in the map.
[0006] In a first aspect, embodiments of the present disclosure provide a method for map construction, including:
[0007] Receiving a first placement request; the first placement request includes a first placement position of a first anchor in a target coordinate system;
[0008] If a second area map has not been located currently, determining a boundary range of a first area map according to the first placement position and constructing the first area map according to the boundary range of the first area map, and binding the first anchor to the first area map; the second area map is constructed according to placement requests for placing anchors received before the current moment.
[0009] In a second aspect, embodiments of the present disclosure provide a map construction device, including:
[0010] A receiving module, configured to receive a first placement request; the first placement request includes a first placement position of a first anchor in a target coordinate system;
[0011] A building module, configured to determine the boundary range of the first area map according to the first placement position and construct the first area map according to the boundary range of the first area map, and bind the first anchor point to the first area map if the second area map is not currently located; the second area map is constructed according to a placement request for placing an anchor point received before the current moment.
[0012] In a third aspect, an embodiment of the present disclosure provides an electronic device, including: a processor and a memory;
[0013] The memory stores computer-executable instructions;
[0014] The processor executes the computer-executable instructions stored in the memory, so that the at least one processor executes the map construction method described in the first aspect above and various possible designs of the first aspect.
[0015] In a fourth aspect, an embodiment of the present disclosure provides a computer-readable storage medium, in which computer-executable instructions are stored. When the processor executes the computer-executable instructions, the map construction method described in the first aspect above and various possible designs of the first aspect are implemented.
[0016] In a fifth aspect, an embodiment of the present disclosure provides a computer program product, including a computer program, and when the computer program is executed by a processor, the map construction method described in the first aspect above and various possible designs of the first aspect are implemented.
[0017] The map construction method, device, storage medium, and program product provided in this embodiment, the method includes receiving a first placement request, the first placement request includes a first placement position of a first anchor point in a target coordinate system, if the second area map is not currently located, then according to the first placement position, determine the boundary range of the first area map and construct the first area map according to the boundary range of the first area map, and bind the first anchor point to the first area map, the second area map is the latest area map used for positioning before the current moment, and both the second area map and the new area map are constructed according to a placement request for placing an anchor point received before the current moment. The map construction method provided in this embodiment can control the cumulative drift error of self-tracking of the device in the area map by constructing a smaller area map when constructing the anchor point, so as to reduce the drift amount of the anchor points placed in the same area map. Description of the Drawings
[0018] To more clearly illustrate the technical solutions in the embodiments of the present disclosure or the prior art, the following will briefly introduce the accompanying drawings required for the description of the embodiments or the prior art. Obviously, the accompanying drawings in the following description are some embodiments of the present disclosure. For those of ordinary skill in the art, without creative efforts, other accompanying drawings can be obtained based on these drawings.
[0019] Figure 1 Schematic diagram of the application scenario for map construction provided by the embodiments of the present disclosure Figure 1 ;
[0020] Figure 2 Schematic diagram of the process flow of the map construction method provided by the embodiments of the present disclosure Figure 1 ;
[0021] Figure 3 Schematic diagram of the application scenario for map construction provided by the embodiments of the present disclosure Figure 2 ;
[0022] Figure 4 Schematic diagram of the application scenario for map construction provided by the embodiments of the present disclosure Figure 3 ;
[0023] Figure 5 Schematic diagram of the process flow of the map construction method provided by the embodiments of the present disclosure Figure 2 ;
[0024] Figure 6 Schematic diagram of the application scenario for map construction provided by the embodiments of the present disclosure Figure 4 ;
[0025] Figure 7 Block diagram of the structure of the map construction device provided by the embodiments of the present disclosure;
[0026] Figure 8 Schematic diagram of the hardware structure of the map construction device provided by the embodiments of the present disclosure. Detailed implementation manners
[0027] To make the objectives, technical solutions, and advantages of the embodiments of the present disclosure clearer, the following will clearly and completely describe the technical solutions in the embodiments of the present disclosure with reference to the accompanying drawings in the embodiments of the present disclosure. Obviously, the described embodiments are some, but not all, of the embodiments of the present disclosure. Based on the embodiments of the present disclosure, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the scope of protection of the present disclosure.
[0028] Spatial anchors, as a basic function of extended reality (XR) such as Augmented Reality (AR) and Mixed Reality (MR), have been widely used on various mobile devices. This function allows an application to create a reference system or a positioning point in space, so that virtual objects in the application can be stored in space for a long time. Taking a game scenario as an example, for game players, a 3D chessboard can be placed in space, and when the device is powered off and then on again, the 3D chessboard will still appear in the same spatial position, and the game can continue.
[0029] In related technologies, an anchor map can be constructed based on the self-tracking pose (positioning function / Simultaneous Localization and Mapping (SLAM)) of a mobile device to place anchors.
[0030] However, for the self-tracking function of a mobile device in a complex environment, there is usually cumulative drift, resulting in the anchors placed in the map also drifting, and the large amount of map data consumes computing power and storage resources.
[0031] To solve the above technical problems, the inventors of the present disclosure have found that during the construction of the anchor map, it is necessary to construct based on the self-tracking pose "pose" output by the mobile device. The larger the area of the map construction, the larger the amount of "pose" data required, and then the larger the cumulative drift error of "pose". Therefore, in order to reduce the cumulative error and the impact of the cumulative error on the anchor, it is only necessary to construct a map with a smaller area when creating the anchor. This can not only save the resources consumed by map construction, but also avoid the problem that the anchor drifts due to excessive cumulative drift of "pose". Based on this, the embodiments of the present disclosure provide a map construction method.
[0032] Refer to Figure 1 , Figure 1Schematic diagram of the application scenario for map construction provided by an embodiment of the present disclosure. Assume that the second anchor point is anchor point A, the second area map is map M1, the first anchor point is anchor point B, and the first area map is M2. The XR device can be worn by a user. When the XR device receives a placement request for anchor point A input by the user, it can determine the boundary range of map M1 based on the placement position of anchor point A in the placement request, construct map M1 based on the boundary range of map M1, bind anchor point A to map M1, and then can perform positioning based on map M1. When receiving a placement request for anchor point B, if the placement position of anchor point B exceeds the boundary range of map M1 and no new area map has been located currently (the area map constructed according to the placement requests for placing anchor points received before the current moment), it can determine the boundary range of map M2 according to the placement position of anchor point B and construct map M2 according to the boundary range of map M2, bind anchor point B to map M2, and perform positioning based on map M2. The map construction method provided by the embodiment of the present disclosure can control the cumulative drift error of self-tracking of the device in the area map by constructing an area map with a smaller area when constructing anchor points, so as to reduce the drift amount of the anchor points placed in the same area map.
[0033] Reference Figure 2 , Figure 2 Schematic flow of the map construction method provided by an embodiment of the present disclosure Figure 1 The method of this embodiment can be applied to a terminal device or a server. The map construction method includes:
[0034] 201. Receive a first placement request; the first placement request includes the first placement position of the first anchor point in the target coordinate system.
[0035] In an embodiment of the present disclosure, the target coordinate system may be a coordinate system for self-tracking and positioning of XR devices such as AR devices and MR devices.
[0036] Exemplarily, the user wears an XR device, and the XR device receives the first placement request input by the user's touch operation on the XR device. The first placement request is used to indicate the coordinates of the anchor point to be placed in the positioning coordinate system of the XR device.
[0037] 202. If no second area map has been located currently, determine the boundary range of the first area map according to the first placement position and construct the first area map according to the boundary range of the first area map, and bind the first anchor point to the first area map; the second area map is constructed according to the placement requests for placing anchor points received before the current moment.
[0038] Among them, the second area map can be the area map that was previously constructed based on the anchor placement request and was the most recently located area map before the current moment, or it can be the area map that was most recently constructed and used for positioning before the current moment. The situation where the second area map is not currently located can include: the placement position of the anchor to be placed exceeds the boundary range of the second area map, and it can also include: although the placement position of the anchor to be placed is within the boundary range of the second area map, but since the XR device has just entered the second area map, the XR device has not yet recognized that it has entered the boundary range of the second area map.
[0039] Exemplarily, in one scenario, after the XR device receives the anchor placement request, it can determine the boundary range of the second area map corresponding to the anchor based on the placement position of the anchor (such as the pose in the target coordinate system). And within this boundary range, it can construct the second area map in real time based on the self-tracking pose output by the XR device (such as the pose in the target coordinate system), and bind the anchor to the second area map. If it continues to receive the first placement request for the first anchor, it can determine whether the first placement position of the first anchor is within the just-constructed second area map. If the first placement position of the first anchor is not within the boundary range of the second area map, that is, the second area map cannot be located currently, it indicates that a new area map needs to be constructed for the new anchor. Then, it can determine the boundary range of the first area map based on the first placement position of the first anchor, construct the first area map based on this boundary range, and bind the first anchor to the first area map.
[0040] If it powers on again after shutting down later, it can respectively display the bound anchors based on the saved binding information in the relatively small maps such as the first area map and the second area map that were constructed.
[0041] In an embodiment of the present disclosure, there can be various ways of map construction.
[0042] Exemplarily, when the user wears the XR device and walks, the XR device can provide a 6 - Degree - Of - Freedom (DOF) pose through filtering or other means, and obtain image frames through one or more cameras set on the XR device. During the map construction process, feature points (such as edge points or corner points) can be extracted from the obtained image frames first, and a bag - of - words can be generated based on the extracted feature points (for example, each feature point can correspond to a description, and for each image frame, a bag - of - words corresponding to the image frame is generated based on the descriptions of multiple feature points in the image frame). After obtaining the bag - of - words corresponding to each image frame respectively, epipolar search can be performed based on the determined 6DOF pose and the generated bag - of - words to obtain the matching feature points between different image frames, and then a 3D point cloud can be generated. Multi - frame point cloud triangulation processing is carried out, and finally bundle adjustment (BA) is performed based on the triangulated point cloud to realize the construction of the local map.
[0043] During the positioning process based on the constructed local map, feature points can be extracted from the image frames obtained by the camera of the XR device. Based on the extracted feature points, a bag - of - words corresponding to the image frame is generated. Based on the bag - of - words, a target image frame corresponding to the current image frame is searched from the bag - of - words of the historical image frames corresponding to the local map. Based on the feature point matching of the target image frame, the 3D feature points corresponding to the 2D feature points of the current image frame in the point cloud of the local map are obtained. Then, the pose of the camera in the local map can be solved based on the PNP algorithm. In order to ensure the accuracy of the positioning result, multi - frame consistency judgment can be performed.
[0044] It should be noted that the above - mentioned map construction algorithm and positioning algorithm are only examples, and other algorithms can be used. The embodiments of the present disclosure do not limit this.
[0045] In an embodiment of the present disclosure, after receiving the first placement request, it may further include: if the second local map is currently located, binding the first anchor point to the second local map.
[0046] Specifically, the second local map can be the latest constructed local map or a previously constructed local map. If it is determined that the placement position of the first anchor point is within the boundary range of the second local map, the first anchor point can be bound to the second local map. Since the boundary range of the second local map can be controlled within a relatively small range, the anchor points placed within the local map will not have a large drift, ensuring the accuracy of positioning.
[0047] Exemplarily, such as Figure 3As shown, assume that the second anchor point is anchor point A, the second regional map is map M1, and the first anchor point is anchor point C. The XR device can be worn by the user. When the XR device receives a placement request for anchor point A input by the user, it can determine the boundary range of map M1 based on the placement position of anchor point A in the placement request, construct map M1 based on the boundary range of map M1, bind anchor point A to map M1, and then can perform positioning based on map M1. When receiving a placement request for anchor point C, if the placement position of anchor point C is within the boundary range of map M1, then anchor point C can be bound to map M1, and positioning can continue based on map M1. The map construction method provided by the embodiments of the present disclosure can control the cumulative drift error of self-tracking of the device in the regional map by constructing a regional map with a smaller area when constructing anchor points and placing the anchor points in the newly constructed regional map, so as to reduce the drift amount of the anchor points placed in the same regional map.
[0048] In an embodiment of the present disclosure, the determining the boundary range of the first regional map according to the first placement position may include: determining the boundary range of the first regional map with the first placement position as the center.
[0049] Exemplarily, the boundary range may be a range of different shapes such as a circle or a square, which can be specifically selected according to actual needs, and the embodiments of the present disclosure do not limit this.
[0050] In an embodiment of the present disclosure, the binding of the first anchor point to the first regional map may include: determining the target position of the first anchor point in the map coordinate system of the first regional map based on the conversion relationship between the map coordinate system of the first regional map and the target coordinate system according to the first placement position, and placing the first anchor point based on the target position.
[0051] Specifically, the XR device uses the target coordinate system for self-tracking. In the placement request for placing the anchor point, it usually includes the placement position in the target coordinate system. When constructing the map, the map coordinate system is usually used, and the map construction is based on the self-tracking pose. Therefore, the conversion relationship between the map coordinate system and the target coordinate system of the XR device can be known. The placement position of the anchor point in the target coordinate system can be converted to the placement position in the map coordinate system based on the conversion relationship between the target coordinate system and the map coordinate system. When the device is powered on again after being powered off, the previously placed anchor points can be displayed based on the placement position in the map coordinate system. Since the area of the regional map is small, the drift between the anchor points placed based on this regional map can be controlled within a certain range.
[0052] In an embodiment of the present disclosure, the maximum cumulative drift error corresponding to the boundary range of the first regional map is less than a preset threshold.
[0053] Specifically, the cumulative drift of the self-tracked pose of the XR device increases as the walking distance increases. Therefore, within a certain range, the cumulative drift of the self-tracked pose can be less than a preset threshold. Based on this, the boundary range of the regional map can be determined to avoid excessive drift of the anchors placed within the regional map.
[0054] As can be seen from the above description, by constructing a regional map with a small area when constructing an anchor, the cumulative drift error of the device's self-tracking in the regional map can be controlled to reduce the drift amount of the anchors placed in the same regional map.
[0055] In an embodiment of the present disclosure, the second regional map is a previously constructed historical regional map. The user wears the XR device and enters the boundary range of the second regional map again and locates to the second regional map. At this time, a placement request for the first anchor is received, and the placement position of the first anchor is within the boundary range of the second regional map, then the first anchor can be bound to the second regional map. The third regional map is constructed based on the placement request of the anchor.
[0056] Exemplarily, as Figure 4 shown, assume that the second anchor is anchor A, the first regional map is map M1, the first anchor is anchor D, and the second regional map is M3. The XR device can be worn by the user. When the XR device receives the placement request for anchor A input by the user, it can determine the boundary range of map M1 based on the placement position of anchor A in the placement request, construct map M1 based on the boundary range of map M1, and bind anchor A to map M1. Then, it can perform positioning based on map M1. When the placement request for anchor D is received, if it is currently located to the already constructed map M3 (M3 is constructed according to the placement requests for placing anchors received before the current moment), and the placement position of anchor D is within the boundary range of map M3, then anchor D is bound to map M3. The map construction method provided by the embodiment of the present disclosure can control the cumulative drift error of the device's self-tracking in the regional map by constructing a regional map with a small area when constructing an anchor and placing the anchor within the already constructed regional map, so as to reduce the drift amount of the anchors placed in the same regional map.
[0057] Refer to Figure 5 , Figure 5 which is a schematic flow chart of the map construction method provided by the embodiment of the present disclosure. Figure 2 In this embodiment, the process of map merging is illustrated by an example. The map construction method includes:
[0058] 501. Receive a first placement request; the first placement request includes the first placement position of the first anchor in the target coordinate system.
[0059] 502. Determine whether the second area map has not been located currently. If so, execute step 503; the second area map is constructed based on the placement request for placing the anchor point received before the current moment.
[0060] 503. Determine the boundary range of the first area map according to the first placement position, construct the first area map according to the boundary range of the first area map, and bind the first anchor point to the first area map.
[0061] 504. Determine whether the second area map has been located. If so, execute step 505.
[0062] 505. Determine whether the located second area map overlaps with the first area map. If so, execute step 506.
[0063] 506. Merge the second area map with the first area map.
[0064] Specifically, considering that it takes a certain amount of time to complete the map construction and the execution of the positioning algorithm, therefore, after a new area map is newly constructed based on the anchor point placement request, it may be found that a constructed map has been located, and there is an overlap between the constructed area map and the newly constructed area map. Then, in order to avoid large errors in the overlapping part of the map and ensure that the placed anchor points do not drift with large errors, the two maps need to be merged. To ensure the accuracy of the merged map, the map can be corrected before merging. During the correction process, the newly constructed map and the constructed map can be corrected simultaneously, or one of the maps can be selected for correction.
[0065] Optionally, if the second area map has been located, but there is no overlap between the two maps, no merging is performed.
[0066] Optionally, if the second area map has not been located, although there is an overlap between the second area map and the first area map, there is no need to merge temporarily.
[0067] In an embodiment of the present disclosure, considering that the cumulative drift is getting larger and the error of the newly constructed map is larger, the constructed map can be fixed before merging, and the newly constructed map can be corrected. Specifically, the merging of the second area map with the first area map may include: correcting the first area map, and merging the corrected first area map with the second area map.
[0068] In one embodiment of the present disclosure, the correcting the first area map may include: determining a plurality of historical area maps constructed between the last positioning to the second area map and the current positioning to the second area map; the historical area maps are constructed according to placement requests for placing anchors; constructing a total error function based on a loop formed by the origin of the map coordinate system of the second area map and the origin of the map coordinate systems of the plurality of historical area maps; calculating and obtaining a target pose transformation relationship between the map coordinate system of the first area map and a target coordinate system that minimizes the total error function; determining the corrected first area map according to the target pose transformation relationship; the target coordinate system is a coordinate system for self-tracking positioning.
[0069] Exemplarily, as Figure 6 shown, assume that the second area map is M4. After M4 is constructed, maps M1, M2, and M3 are constructed. Later, when repositioned to M4, it is found that M3 overlaps with M4. At this time, M3 and M4 need to be merged, and the historical area maps are maps M1 to M3. Before merging M3 and M4, the transformation relationship between the map coordinate system of M4 and the target coordinate system can be fixed, and the transformation relationships between the map coordinate systems corresponding to M1, M2, and M3 and the target coordinate system can be adjusted respectively. To evenly distribute the total error of the loop formed by M1, M2, M3, and M4.
[0070] In one embodiment of the present disclosure, the constructing a total error function based on a loop formed by the second area map and the plurality of historical area maps may include: obtaining a first pose transformation relationship between the map coordinate systems of adjacent maps among the second area map and the plurality of historical area maps; for each pair of adjacent maps, determining an accumulated error term corresponding to the adjacent map according to the first pose transformation relationship corresponding to the adjacent map and a second pose transformation relationship between the map coordinate systems corresponding to the two area maps in the adjacent map and the target coordinate system; determining the total error function according to the accumulated error terms corresponding to the plurality of adjacent maps.
[0071] Exemplarily, when merging maps, usually map associations will be connected into a loop. When the association relationship forms a loop, due to positioning errors, the formed loop association may not be consistent, such as Figure 6As shown, M1, M2, M3, and M4 are connected in a loop. M1 and M2, M2 and M3, M3 and M4, and M4 and M1 are adjacent maps. The pose transformation relationship between the origins of the map coordinate systems corresponding to two maps in adjacent maps can be determined in various ways. For example, it can be determined according to the self-tracking pose provided by the XR device, or it can be determined according to the sensing data obtained by sensors such as the Inertial Measurement Unit (IMU) set in the XR device. If there is no error, the pose transformation relationship between the origin of the map coordinate system of M4 and the origin of the map coordinate system of M1, the pose transformation relationship between the origin of the map coordinate system of M1 and the origin of the map coordinate system of M2, the pose transformation relationship between the origin of the map coordinate system of M2 and the origin of the map coordinate system of M3, and the pose transformation relationship between the origin of the map coordinate system of M3 and the origin of the map coordinate system of M4. The product of the rotation matrices in the four transformation relationships should be the identity matrix, and the sum of the translations should be zero. However, due to the existence of cumulative drift errors, positioning errors occur, resulting in the product of the rotation matrices may not be the identity matrix, and the sum of the translations may not be zero. Therefore, it is necessary to globally correct the loop formed by the maps to evenly distribute the errors.
[0072] Assume that the current regional map used for positioning is M4. To avoid affecting the accuracy of the current positioning anchor point, the transformation relationship between the map coordinate system of the current map M4 used for positioning and the target coordinate system can be fixed. By using the relationship of the sides formed by the origins of the map coordinate systems given by the positioning, a non-linear optimization is constructed, and finally, the transformation relationships between the map coordinate systems of the maps that are not currently being positioned (M1, M2, and M3) and the target coordinate system are calculated, so as to update the poses of the origins of each map coordinate system, and finally achieve the even distribution of errors.
[0073] Assume that the transformation relationship between map Mi and the target coordinate system is R i,w t i , where R i,w t i represent the rotation matrix and translation respectively. For the edge ij between the origin of map Mi and the origin of map Mj, the error can be defined as:
[0074]
[0075] Furthermore, by traversing all the edges in the loop, the total error can be obtained:
[0076]
[0077] The final optimization minimizes the total error err, thereby solving the rotation and translation corresponding to the origin of the map coordinate systems of maps M1, M2, and M3, obtaining the corrected M1, and then merging M1 and M4, so that the error caused by self-tracking drift in the merged map is corrected. During this error correction process, it is not necessary to optimize all the trajectory data in the loop, greatly reducing the computational amount.
[0078] As can be seen from the above description, by constructing a regional map with a small area when constructing the anchor points, the cumulative self-tracking drift error of the device in the regional map can be controlled to reduce the drift amount of the anchor points placed in the same regional map, and by merging the relevant regional maps, it can be ensured that the drift amount of the anchor points placed in the merged map is controlled within a reasonable range.
[0079] Corresponding to the map construction method in the above embodiment Figure 7 The following is a structural block diagram of the map construction device provided by the embodiments of the present disclosure. For ease of description, only the parts related to the embodiments of the present disclosure are shown. Referring to Figure 7 the device includes: a receiving module 701 and a constructing module 702.
[0080] Among them, the receiving module 701 is used to receive a first placement request; the first placement request includes the first placement position of the first anchor point in the target coordinate system.
[0081] The constructing module 702 is used to, if the second regional map is not located currently, determine the boundary range of the first regional map according to the first placement position and construct the first regional map according to the boundary range of the first regional map, and bind the first anchor point to the first regional map; the second regional map is constructed according to the placement requests for placing anchor points received before the current moment.
[0082] In an embodiment of the present disclosure, the constructing module 702 is specifically used to: determine the boundary range of the first regional map with the first placement position as the center.
[0083] In an embodiment of the present disclosure, the constructing module 702 is specifically used to: determine the target position of the first anchor point in the map coordinate system of the first regional map based on the conversion relationship between the first placement position and the map coordinate system of the first regional map and the target coordinate system, and place the first anchor point based on the target position.
[0084] In an embodiment of the present disclosure, the maximum cumulative drift error corresponding to the boundary range of the first regional map is less than a preset threshold.
[0085] In one embodiment of the present disclosure, the construction module 702 is further configured to: if the second area map is currently located, bind the first anchor point to the second area map.
[0086] In one embodiment of the present disclosure, the construction module 702 is further configured to: if the second area map is currently located and there is an overlap between the second area map and the first area map, merge the second area map with the first area map.
[0087] In one embodiment of the present disclosure, the construction module 702 is specifically configured to: correct the first area map and merge the corrected first area map with the second area map.
[0088] In one embodiment of the present disclosure, the construction module 702 is specifically configured to: determine a plurality of historical area maps constructed between the last location of the second area map and the current location of the second area map; the historical area maps are constructed according to placement requests for placing anchor points; based on the loop formed by the origin of the map coordinate system of the second area map and the origin of the map coordinate systems of the plurality of historical area maps, construct a total error function; calculate the target pose transformation relationship between the map coordinate system of the first area map and the target coordinate system that minimizes the total error function; determine the corrected first area map according to the target pose transformation relationship; the target coordinate system is the coordinate system for self-tracking positioning.
[0089] In one embodiment of the present disclosure, the construction module 702 is specifically configured to: obtain the first pose transformation relationship between the map coordinate systems of adjacent maps among the second area map and the plurality of historical area maps; for each pair of adjacent maps, determine the cumulative error term corresponding to the adjacent maps according to the first pose transformation relationship corresponding to the adjacent maps and the second pose transformation relationships between the map coordinate systems corresponding to the two area maps in the adjacent maps and the target coordinate system; determine the total error function according to the cumulative error terms corresponding to the plurality of adjacent maps.
[0090] The device provided in this embodiment can be used to execute the technical solutions of the above method embodiments, and its implementation principle and technical effects are similar, which will not be elaborated here in this embodiment.
[0091] To implement the above embodiments, the present disclosure embodiments also provide an electronic device.
[0092] Reference Figure 8, which shows a schematic structural diagram of an electronic device 900 suitable for implementing the embodiments of the present disclosure. The electronic device 900 may be a terminal device or a server. Among them, the terminal device may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, personal digital assistants (PDAs), tablet computers (PADs), portable media players (PMPs), in-vehicle terminals (such as in-vehicle navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 8 The electronic device shown is merely an example and should not impose any limitations on the functions and usage scope of the embodiments of the present disclosure.
[0093] As Figure 8 shown, the electronic device 900 may include a processing device (such as a central processing unit, a graphics processing unit, etc.) 901, which may perform various appropriate actions and processes according to the program stored in the read-only memory (ROM) 902 or the program loaded from the storage device 908 into the random access memory (RAM) 903. In the RAM 903, various programs and data required for the operation of the electronic device 900 are also stored. The processing device 901, the ROM 902, and the RAM 903 are connected to each other through a bus 904. The input / output (I / O) interface 905 is also connected to the bus 904.
[0094] Generally, the following devices may be connected to the I / O interface 905: an input device 906 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 907 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 908 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 909. The communication device 909 may allow the electronic device 900 to communicate with other devices wirelessly or wiredly to exchange data. Although Figure 8 the electronic device 900 with various devices is shown, it should be understood that it is not required to implement or have all the shown devices. Instead, more or fewer devices may be implemented or had.
[0095] In particular, according to an embodiment of the present disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, an embodiment of the present disclosure includes a computer program product that includes a computer program carried on a computer-readable medium, and the computer program includes program code for performing the methods shown in the flowcharts. In such an embodiment, the computer program can be downloaded and installed from a network via a communication device 909, or installed from a storage device 908, or installed from a ROM 902. When the computer program is executed by a processing device 901, the above-described functions defined in the methods of the embodiments of the present disclosure are performed.
[0096] It should be noted that the above-mentioned computer-readable medium in the present disclosure can be a computer-readable signal medium, a computer-readable storage medium, or any combination of the two. A computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples of the computer-readable storage medium can include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, the computer-readable storage medium can be any tangible medium that contains or stores a program, and the program can be used by or in combination with an instruction execution system, apparatus, or device. In the present disclosure, a computer-readable signal medium can include a data signal propagated in a baseband or as part of a carrier wave, which carries computer-readable program code. Such a propagated data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer-readable signal medium can also be any computer-readable medium other than the computer-readable storage medium, and the computer-readable signal medium can send, propagate, or transmit a program for use by or in combination with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted by any appropriate medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
[0097] The above-mentioned computer-readable medium can be included in the above-mentioned electronic device; or it can exist separately and not be assembled into the electronic device.
[0098] The above-mentioned computer-readable medium carries one or more programs, and when the one or more programs are executed by the electronic device, the electronic device is caused to perform the methods shown in the above embodiments.
[0099] Computer program code for performing the operations of this disclosure may be written in one or more programming languages or combinations thereof. The programming languages include object-oriented programming languages such as Java, Smalltalk, C++, and also include conventional procedural programming languages such as the "C" language or similar programming languages. The program code may execute entirely on the user's computer, partially on the user's computer, execute as a stand-alone software package, execute partially on the user's computer and partially on a remote computer, or execute entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).
[0100] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a program segment, or a portion of code that contains one or more executable instructions for implementing a specified logical function. It should also be noted that, in some alternative implementations, the functions noted in the blocks may occur in a different order than noted in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, or they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and combinations of blocks in the block diagram and / or flowchart, may be implemented by a dedicated hardware-based system that performs the specified functions or operations, or may be implemented by a combination of dedicated hardware and computer instructions.
[0101] The units described in the embodiments of this disclosure may be implemented in software or in hardware. Among them, the name of the unit does not constitute a limitation on the unit itself in some cases. For example, the first acquisition unit may also be described as "the unit for acquiring at least two Internet protocol addresses".
[0102] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: Field Programmable Gate Arrays (FPGA), Application Specific Integrated Circuits (ASIC), Application Specific Standard Products (ASSP), System on a Chip (SOC), Complex Programmable Logic Devices (CPLD), and so on.
[0103] In the context of the present disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0104] The above description is only a preferred embodiment of the present disclosure and an explanation of the applied technical principles. Those skilled in the art should understand that the scope of the disclosure involved in the present disclosure is not limited to the technical solutions formed by the specific combination of the above technical features, and should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above disclosure concept. For example, the technical solutions formed by mutually replacing the above features with the technical features (but not limited to) having similar functions disclosed in the present disclosure.
[0105] Furthermore, although the operations are depicted in a particular order, this should not be construed as requiring that the operations be performed in the particular order shown or in sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, although several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of the present disclosure. Certain features described in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment can also be implemented separately or in any suitable sub-combination in multiple embodiments.
[0106] Although the subject matter has been described in language specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are merely example forms of implementing the claims.
Claims
1. A method for map construction, characterized in that, Including: Receiving a first placement request; the first placement request includes a first placement position of a first anchor point in a target coordinate system; If the second area map is not currently located, determining a boundary range of the first area map according to the first placement position and constructing the first area map according to the boundary range of the first area map, and binding the first anchor point to the first area map; The second area map is constructed according to a placement request for placing an anchor point received before the current moment.
2. The method according to claim 1, characterized in that, The determining a boundary range of the first area map according to the first placement position includes: Determining a boundary range of the first area map with the first placement position as the center.
3. The method according to claim 1, characterized in that, The binding the first anchor point to the first area map includes: Based on a conversion relationship between the map coordinate system of the first area map and the target coordinate system at the first placement position, determining a target position of the first anchor point in the map coordinate system of the first area map, and placing the first anchor point based on the target position.
4. The method according to claim 1, characterized in that, The maximum cumulative drift error corresponding to the boundary range of the first area map is less than a preset threshold.
5. The method according to any one of claims 1-4, characterized in that, After receiving the first placement request, it further includes: If the second area map is currently located, binding the first anchor point to the second area map.
6. The method according to any one of claims 1-4, characterized in that, After binding the first anchor point to the first area map, it further includes: If the second area map is currently located and there is an overlap between the second area map and the first area map, merging the second area map and the first area map.
7. The method according to claim 6, characterized in that, The merging the second area map and the first area map includes: Correcting the first area map and merging the corrected first area map with the second area map.
8. The method according to claim 7, characterized in that, The correcting the first area map includes: Determining a plurality of historical area maps constructed between the last location of the second area map and the current location of the second area map; the historical area maps are constructed according to a placement request for placing an anchor point; Based on a loop formed by the origin of the map coordinate system of the second area map and the origins of the map coordinate systems of the plurality of historical area maps, constructing a total error function; Calculating and obtaining a target pose conversion relationship between the map coordinate system of the first area map and the target coordinate system that minimizes the total error function; determining the corrected first area map according to the target pose conversion relationship; the target coordinate system is a self-tracking and positioning coordinate system.
9. The method according to claim 8, characterized in that, The constructing a total error function based on a loop formed by the second area map and the plurality of historical area maps includes: Obtaining a first pose conversion relationship between the map coordinate systems of adjacent maps in the second area map and the plurality of historical area maps; For each pair of adjacent maps, determining a cumulative error term corresponding to the adjacent maps according to the first pose conversion relationship corresponding to the adjacent maps and a second pose conversion relationship between the map coordinate systems of the two area maps in the adjacent maps and the target coordinate system; Determine a total error function according to the cumulative error terms respectively corresponding to multiple adjacent maps.
10. A map construction device, characterized in that, Including: A receiving module, configured to receive a first placement request; the first placement request includes a first placement position of a first anchor point in a target coordinate system. A construction module, configured to, if the second area map has not been located currently, determine a boundary range of the first area map according to the first placement position and construct the first area map according to the boundary range of the first area map, and bind the first anchor point to the first area map. The second area map is constructed according to the placement requests for placing anchor points received before the current moment.
11. An electronic device, characterized in that, Including: A processor and a memory; The memory stores computer execution instructions; The processor executes the computer execution instructions stored in the memory, so that the processor executes the map construction method according to any one of claims 1 to 9.
12. A computer-readable storage medium, characterized in that, Computer execution instructions are stored in the computer-readable storage medium, and when the processor executes the computer execution instructions, the map construction method according to any one of claims 1 to 9 is implemented.
13. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, the map construction method according to any one of claims 1 to 9 is implemented.