Synchronous localization and mapping method and server
By decoupling construction tasks in a multi-machine collaborative SLAM system and using heartbeat signals to dynamically adjust processor nodes, the problems of high module coupling and lack of synchronization mechanism in the existing system are solved, achieving more efficient and accurate map construction.
Patent Information
- Application Number
- CN202510873156.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-26
- Publication Date
- 2025-09-26
AI Technical Summary
The existing multi-machine collaborative SLAM system has a high degree of coupling among functional modules, large differences in computing power requirements, and a lack of multi-process synchronization mechanism in the multi-machine collaborative process, resulting in poor system scalability, high overall latency and inaccurate processing results.
By receiving the target tasks of the scheduling unit, sending synchronization requests to the target acquisition device, receiving and processing perception data, decoupling the tasks of constructing the global pose graph, key frame set and local map set, and dynamically adjusting the processor nodes using heartbeat signals, multi-machine collaborative synchronous positioning and map construction can be achieved.
It reduces map construction latency, improves map construction efficiency and accuracy, enhances system flexibility and robustness, and reduces processor node consumption.
Smart Images

Figure CN120702453A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of artificial intelligence technology, and in particular to a method and server for simultaneous positioning and map building. Background Art
[0002] With the rapid development of robotics and automation systems, multi-machine collaborative simultaneous localization and mapping (SLAM) systems have become a research hotspot. In application scenarios such as search and rescue, environmental monitoring, and intelligent transportation, multiple mobile robots or drones in a SLAM system can collaborate to complete tasks that are more complex than a single device. However, current multi-machine collaborative SLAM solutions often suffer from problems such as high coupling between functional modules, large differences in computing power requirements between functional modules, and a lack of multi-process synchronization mechanisms during multi-machine collaboration. These problems lead to poor scalability of SLAM systems, high overall latency, and inaccurate processing results. Summary of the Invention
[0003] The present disclosure provides a synchronous positioning and map construction method and server to at least solve the above technical problems existing in the prior art.
[0004] According to a first aspect of the present disclosure, a synchronous positioning and map construction method is provided, including: receiving a target task sent by a scheduling unit; the target task is a subtask of a map generation task; sending an acquisition task corresponding to the target task to all corresponding target acquisition devices; sending a first synchronization request to all the target acquisition devices; receiving perception data sent by the target acquisition device based on the first synchronization request; the perception data includes the pose data of the target acquisition device, the key frame data collected by the target acquisition device, or the local map data generated by the target acquisition device; executing the target task based on the perception data to obtain a first execution result corresponding to the target task; the first execution result includes a global pose graph, a key frame set, a local map set, or global map data.
[0005] In one possible implementation, sending the first synchronization request to all the target acquisition devices includes: determining a first time interval based on the task processing time of all the target acquisition devices; and sending the first synchronization request to all the target acquisition devices based on the first time interval.
[0006] In one possible implementation, determining the first time interval based on the task processing time of all the target acquisition devices includes: monitoring the first heartbeat signals of all the target acquisition devices based on the second time interval; the first heartbeat signal includes the task processing time of the target acquisition device; and determining the first time interval based on the maximum task processing time.
[0007] In one possible implementation, receiving the perception data sent by the target acquisition device based on the first synchronization request includes: in response to the task processing time of the target acquisition device being less than a first threshold, receiving the perception data sent by the target acquisition device based on the first synchronization request.
[0008] In one possible implementation, executing the target task based on the perception data to obtain a first execution result corresponding to the target task includes: receiving a second execution result sent by other servers; the second execution result includes a global pose graph, a key frame set and a local map set; executing the target task based on the second execution result and the perception data to obtain a first execution result corresponding to the target task; the first execution result is the global map data.
[0009] In one possible implementation, a synchronous positioning and map construction method also includes: sending a second heartbeat signal to the scheduling unit based on a third time interval; the second heartbeat signal includes the maximum task processing time of all the target acquisition devices; receiving a second synchronization request sent by the scheduling unit; the second synchronization request is generated by the scheduling unit in response to the maximum task processing time being greater than a second threshold; in response to the second synchronization request, suspending execution of the target task and sending the second heartbeat signal to the scheduling unit.
[0010] In one possible implementation, a synchronous positioning and map construction method also includes: in response to the scheduling unit reallocating processor nodes to all servers based on the second heartbeat signal, executing the target task based on the reallocated processor nodes; the second heartbeat signal also includes the processing delay status of the target acquisition device and the status information of the target acquisition device.
[0011] According to the second aspect of the present disclosure, another method for synchronous positioning and map construction is provided, including: receiving a collection task sent by a target server; the collection task is a collection task corresponding to a target task sent by a scheduling unit received by the target server; the target task is a subtask of a map generation task; based on the collection task, surrounding environmental data is collected; based on the environmental data, perception data is generated; the perception data includes posture data, key frame data or local map data; based on a first synchronization request sent by the target server, the perception data is sent to the target server.
[0012] In one possible implementation, generating perception data based on the environmental data includes: determining multiple feature points of the surrounding environment based on the environmental data; sending the feature points to other target acquisition devices corresponding to the target server; receiving deduplicated feature points of the multiple feature points sent by the other target acquisition devices; generating the perception data based on target feature points that meet the target conditions among the deduplicated feature points; and sending the target feature points to the other target monitoring devices.
[0013] According to a third aspect of the present disclosure, a server is provided, including:
[0014] Multiple processor nodes;
[0015] The server corresponds to multiple target acquisition devices;
[0016] The plurality of processor nodes are configured to:
[0017] Receive a target task sent by a scheduling unit; the target task is a subtask of a map generation task;
[0018] Sending the acquisition task corresponding to the target task to all corresponding target acquisition devices;
[0019] Sending a first synchronization request to all the target acquisition devices;
[0020] Receiving perception data sent by the target acquisition device based on the first synchronization request; the perception data includes posture data of the target acquisition device, key frame data collected by the target acquisition device, or local map data generated by the target acquisition device;
[0021] Based on the perception data, the target task is executed to obtain a first execution result corresponding to the target task; the first execution result includes a global pose graph, a key frame set, a local map set or global map data.
[0022] It should be understood that the contents described in this section are not intended to identify the key or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] The above and other objects, features and advantages of the exemplary embodiments of the present disclosure will become readily understood by reading the detailed description below with reference to the accompanying drawings, in which several embodiments of the present disclosure are shown by way of example and not limitation, wherein:
[0024] In the drawings, the same or corresponding reference numerals denote the same or corresponding parts.
[0025] Figure 1 The following is a flow chart showing a method for simultaneous positioning and map building according to an embodiment of the present disclosure. Figure 1 ;
[0026] Figure 2 The following is a flow chart showing a method for simultaneous positioning and map building according to an embodiment of the present disclosure. Figure 2 ;
[0027] Figure 3 The following is a flow chart showing a method for simultaneous positioning and map building according to an embodiment of the present disclosure. Figure 3 ;
[0028] Figure 4 The following is a flow chart showing a method for simultaneous positioning and map building according to an embodiment of the present disclosure. Figure 4 ;
[0029] Figure 5 A schematic diagram of a method for simultaneous positioning and map construction according to an embodiment of the present disclosure is shown. Figure 1 ;
[0030] Figure 6 A schematic diagram of a method for simultaneous positioning and map construction according to an embodiment of the present disclosure is shown. Figure 2 ;
[0031] Figure 7 A schematic diagram of the structure of a server and a target acquisition device according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION
[0032] To make the purposes, features, and advantages of the present disclosure more apparent and understandable, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present disclosure, not all of them. All other embodiments obtained by those skilled in the art based on the embodiments of the present disclosure without creative work shall fall within the scope of protection of the present disclosure.
[0033] Figure 1 The following is a flow chart showing a method for simultaneous positioning and map building according to an embodiment of the present disclosure. Figure 1 ,like Figure 1 As shown, a method for simultaneous positioning and map construction includes:
[0034] Step S101: receiving a target task sent by a scheduling unit.
[0035] In this embodiment, a simultaneous positioning and mapping method is applied to any server in a simultaneous positioning and mapping (SLAM) system. The SLAM system includes multiple servers and multiple collection devices corresponding to the servers. The number of collection devices corresponding to each server can be the same or different. The functions of the multiple collection devices corresponding to each server are the same. The collection devices can be robots, drones, and other devices with collection functions. Figure 5 A schematic diagram of a method for simultaneous positioning and map construction according to an embodiment of the present disclosure is shown. Figure 1 ,like Figure 5 As shown in the figure, in the SLAM system, a server and the robot corresponding to the server are grouped together. The server is called the group server of this group. All group servers are composed of Figure 5 Each Group Server has different functions, such as pose graph optimization, inter-robot loop closure detection, and global map construction. Each Group Server can be composed of multiple processors such as graphics processing units (GPUs) or central processing units (CPUs), such as Figure 5 In the SLAM system, each Group Server can be composed of multiple GPUs; the SLAM system also includes a scheduler, such as a Stale Synchronous Parallel (SSP) scheduler, that is, an SSP scheduler. The SSP scheduler can schedule the GPU resources in the SLAM system. For example, the SSP scheduler can determine which GPUs to allocate to each Group Server.
[0036] like Figure 5Two groups of robots are shown in the figure, one of which includes robot α and the other includes robot β. Robot α captures a series of image data through a binocular camera, such as stereo images (Stereoimages), which can be used to perform visual SLAM (Visual SLAM) tasks. Robot α performs Visual SLAM tasks based on the tracker (Tracker), mapper (Mapper) and visualizer (Visualizer) models. The Tracker module is responsible for tracking the position and posture of the robot in real time, the Mapper module builds and updates the environment map, and the Visualizer module provides a visual interface. Robot α can generate the pose data of robot α at each moment in a timely manner. α ={(x,y,z,pitch,yaw,roll),…}, where x,y,z are the coordinates of the robot on the x,y,z axes respectively; pitch is the pitch angle, i.e., the rotation angle of the robot around the x-axis; yaw is the yaw angle, i.e., the rotation angle of the robot around the z-axis; roll is the roll angle, i.e., the rotation angle of the robot around the y-axis. At this time, the other robots in the same group as robot α also generate their own pose data; robot β uses the lidar to scan the 3D point cloud data of the surrounding environment (3D Point Clouds) and outputs a detailed local map G through inter-frame matching. β ={MapPoints((x1,y1,z1),…),…}, where x1, y1, and z1 are the coordinates of a single map point on the x, y, and z axes, respectively. At this point, other robots in the same group as robot β collect data at different locations and obtain local maps of other areas. Both robots α and β have edge devices / devices with low computational power (Edge devices / low computational power). Edge devices / devices with low computational power can be CPUs or GPUs, etc., used to generate pose data or local maps. Robots α and β can also send the generated pose data or local maps to their respective group servers via the Grouped Synchronous Staggered Parallelism (GSSP) protocol.
[0037] In this embodiment, any server in the SLAM system first needs to receive the target task sent by the scheduling unit. The target task is a subtask of the map generation task, such as building a local map of a specific area or generating a global pose graph of the area. The scheduling unit will assign different subtasks to different servers according to the progress and needs of the overall map construction.
[0038] Step S102: Send the collection task corresponding to the target task to all corresponding target collection devices.
[0039] In this embodiment, after receiving the target task, the server needs to determine the collection task corresponding to the target task. For example, if the target task is to determine the global pose graph of a certain area, the collection task is to collect the pose data of each robot; if the target task is to obtain a set of local maps, the collection task is to collect the local map of the current environment. The collection task corresponding to the target task can then be sent to all corresponding target collection devices. For example, for the collection task of collecting the pose data of each robot, the corresponding target collection device needs to have a binocular camera, and the collection task of collecting the pose data of each robot can be sent to all target collection devices with binocular cameras; for the collection task of collecting the local map of the current environment, the corresponding target collection device needs to have a lidar, and the collection task of collecting the local map of the current environment can be sent to all target collection devices with lidar. In one example, the collection task can include requirements such as the collection range, frequency, and data format to ensure that the target collection device can collect data that meets the requirements of the target task as required.
[0040] Step S103: Send a first synchronization request to all target acquisition devices.
[0041] In this embodiment, to ensure that the data collected by each target collection device corresponding to the server is consistent in time, the server needs to send a first synchronization request to all target collection devices. The first synchronization request can notify each target collection device to send its collected data to the server. For example, the server can send a first synchronization request at a certain interval. Within the time window between two first synchronization requests, all target collection devices need to complete data collection and prepare to send data to the server.
[0042] Step S104: receiving the perception data sent by the target acquisition device based on the first synchronization request.
[0043] In this embodiment, the target acquisition device receives the first synchronization request and can send the perception data collected by itself to the server. That is, the server receives the perception data sent by the target acquisition device based on the first synchronization request. Based on different target tasks, the perception data may also be different. The perception data may include the pose data of the target acquisition device, the key frame data collected by the target acquisition device, or the local map data generated by the target acquisition device. For example, if the target task is to determine the global pose graph of a certain area, the perception data is the pose data of the target acquisition device; if the target task is to determine the real environment data of a certain area, the perception data is the key frame data collected by the target acquisition device, such as a set of multiple picture frames; if the target task is to obtain a local map set, the perception data is the local map data generated by the target acquisition device.
[0044] Step S105: Execute the target task based on the perception data to obtain a first execution result corresponding to the target task.
[0045] In this embodiment, after the server collects the perception data sent by all target acquisition devices, it will execute the target task based on the perception data and obtain the first execution result corresponding to the target task. Based on the different perception data, the first execution result may be different, and the first execution result includes a global pose graph, a key frame set, a local map set or global map data. For example, if the perception data is the pose data of the target acquisition device, the server can fuse and optimize the pose data of multiple target acquisition devices to obtain a global pose graph; if the perception data is the key frame data collected by the target acquisition device, the server can organize the key frame data collected by multiple target acquisition devices to obtain a key frame set; if the perception data is the local map data generated by the target acquisition device, the server can organize the local map data generated by multiple target acquisition devices to obtain a local map set, or the server can also receive the global pose graph and key frame data sent by other servers, and generate global map data based on the global pose graph, key frame data sent by other servers and the local map data generated by the target acquisition device.
[0046] In this disclosure, a SLAM system groups a server and its corresponding target acquisition device. Each group performs different target tasks in the map generation task. Building a global pose graph, generating a keyframe set, generating a local map set, or building global map data are decoupled and executed in parallel by different groups of servers and target acquisition devices. Compared to the sequential execution of perception, positioning, and mapping in traditional SLAM solutions, this disclosure can reduce map construction latency and improve map construction efficiency. Furthermore, the coupling between different functional modules is low, resulting in strong scalability.
[0047] Figure 2The following is a flow chart showing a method for simultaneous positioning and map building according to an embodiment of the present disclosure. Figure 2 ,like Figure 2 As shown, a method for simultaneous positioning and map construction includes:
[0048] Step S201: receiving a target task sent by a scheduling unit.
[0049] Step S202: Send the collection task corresponding to the target task to all corresponding target collection devices.
[0050] The specific implementation details of step S201-step S202 are similar to those of step S101-step S102 and will not be repeated here.
[0051] Step S203: determining a first time interval based on the task processing time of all target acquisition devices.
[0052] In this embodiment, before sending a first synchronization request to a target acquisition device, the server determines a first duration interval based on the task processing times of all target acquisition devices. The task processing time is the time required for each target acquisition device to complete a data acquisition and processing session. In one example, the server collects the task processing times sent by each target acquisition device, determines the average task processing time of all target acquisition devices, and sums this average with a preset duration to determine the first duration interval. The preset duration can be set based on the actual application scenario to ensure that all target acquisition devices have sufficient time to complete data acquisition and processing.
[0053] Step S204: Send a first synchronization request to all target acquisition devices based on the first time interval.
[0054] In this embodiment, after determining the first time interval, the server can send a first synchronization request to all target acquisition devices based on the first time interval, that is, send a first synchronization request to all target acquisition devices every first time interval, so as to ensure that each target acquisition device sends perception data at approximately the same time point, thereby improving the time consistency of the perception data, and solving the problem that the existing SLAM system lacks a multi-process synchronization mechanism in the multi-machine collaboration process. At the same time, determining the first time interval based on the task processing time can also adapt to the processing capability differences of different acquisition devices, thereby improving the flexibility and robustness of the entire system.
[0055] Step S205: receiving the perception data sent by the target acquisition device based on the first synchronization request.
[0056] Step S206: Execute the target task based on the perception data to obtain a first execution result corresponding to the target task.
[0057] The specific implementation details of steps S205 to S206 are similar to those of steps S104 to S105 and are not repeated here.
[0058] In another embodiment, step S203 of “determining a first time interval based on task processing time of all target acquisition devices” includes:
[0059] The first heartbeat signals of all target acquisition devices are monitored based on the second time interval; the first heartbeat signals include the task processing time of the target acquisition device; and the first time interval is determined based on the maximum task processing time.
[0060] In this embodiment, the server monitors the first heartbeat signals sent by all target acquisition devices at intervals of the second duration. The first heartbeat signals include the task processing times of the target acquisition devices. The server can obtain the task processing times of each target acquisition device from the first heartbeat signals and determine the maximum task processing time as the first duration interval. In another example, the sum of the maximum task processing time and the preset duration can be determined as the first duration interval, thereby further ensuring that all target acquisition devices have sufficient time to complete data acquisition and processing.
[0061] In another embodiment, step S205 “receiving the perception data sent by the target acquisition device based on the first synchronization request” includes:
[0062] In response to the task processing time of the target acquisition device being less than the first threshold, the perception data sent by the target acquisition device based on the first synchronization request is received.
[0063] In this embodiment, when receiving sensory data from a target acquisition device, the server can filter the sensory data based on the target device's task processing time. The server will only accept sensory data from the target acquisition device if the target device's task processing time is less than a preset first threshold. In one example, the first threshold can be the sum of the maximum task processing time and another preset duration. This prevents the server from receiving sensory data that takes too long to process and may contain issues, while also helping to improve the overall system's operational efficiency.
[0064] In another possible implementation, for a collection device whose task processing time is greater than a first threshold, the server may dynamically limit its speed or isolate its computing tasks, thereby avoiding intra-group synchronization delays.
[0065] In another embodiment, step S105 of “executing the target task based on the perception data to obtain a first execution result corresponding to the target task” includes:
[0066] Receive the second execution result sent by other servers; the second execution result includes a global pose graph, a key frame set, and a local map set; based on the second execution result and the perception data, execute the target task to obtain the first execution result corresponding to the target task; the first execution result is the global map data.
[0067] In this embodiment, in the process of executing the target task, the server not only needs the perception data collected by the target acquisition device, but may also need the second execution results of other servers. The second execution results can be the global pose graph, key frame set or local map set obtained by other servers after executing their own target tasks. Therefore, after each server obtains its own execution result, it can send its own execution result to other servers, that is, each server may receive the second execution result sent by other servers, and based on the second execution result and the perception data, execute the target task to obtain the first execution result corresponding to the target task. The first execution result is global map data. In other words, for servers used to generate global maps, they will receive the second execution results sent by other servers, and based on the second execution result and the perception data, execute the target task to obtain global map data. For servers that do not generate global maps, if the second execution results of other servers are not required to execute their own target tasks, they do not need to receive the second execution results of other servers.
[0068] Figure 6 A schematic diagram of a method for simultaneous positioning and map construction according to an embodiment of the present disclosure is shown. Figure 2 ,like Figure 6 As shown in the figure, the SLAM system includes n servers, namely Group Server 1-Group Server n. Group Server 1 corresponds to Robot Group 1. Robot Group 1 includes Robot 1, Robot 2, ..., Robotα. Each Robot collects environmental data based on the Stereo Camera (stereo camera / binocular camera) and obtains its own pose data based on the collected data through the Tracker module, such as Poseω 1 、Poseω 2 、……、Poseω α , each Robot sends its own pose data to the corresponding Group Server 1, and Group Server 1 generates a global pose graph Pose Graphω based on all pose data, such as ω={ω 1 ,ω 2 ,……,ω αGroup Server 2 corresponds to Robot Group 2, GroupServer m corresponds to Robot Group m, Group Server m is used to collect key frames and finally generate a key frame set Key Frameρ, such as ρ={ρ m1 ,ρ m2 ,…,ρ km},ρ m1 is the key frame collected by the i-th robot in group m; and so on, Group Server n corresponds to Robot Group n, Robot Group n includes Robot i, Robot i+1, ..., Robotβ. Each Robot collects environmental data based on LiDAR (laser radar) and obtains a local map based on the collected data through the Mapper module, such as Each Robot sends its own local map to the corresponding Group Server n.
[0069] A global map can be generated based on Group Server n Since generating a global map requires a global pose graph ω and a keyframe set ρ, Robot Group 1 sends the global pose graph ω to Group Server n, and Group Server m sends the keyframe set ρ to Group Server n. Group Server n can jointly generate a global map based on all local maps, the global pose graph ω, and the keyframe set ρ. like Afterwards, Group Server n can use Global Map Send to other Group Servers to synchronize the global map.
[0070] In the present disclosure, after completing its own target task, each server may send the execution results to other servers, thereby realizing information sharing and integration among the servers, and finally one of the servers obtains the final global map based on all the execution results, thereby improving the map construction efficiency and accuracy of the entire system.
[0071] In another embodiment, a method for simultaneous positioning and map construction further includes:
[0072] A second heartbeat signal is sent to the scheduling unit based on a third time interval; the second heartbeat signal includes the maximum task processing time among all target acquisition devices; a second synchronization request sent by the scheduling unit is received; the second synchronization request is generated by the scheduling unit in response to the maximum task processing time being greater than a second threshold; in response to the second synchronization request, the execution of the target task is suspended, and a second heartbeat signal is sent to the scheduling unit.
[0073] In this embodiment, the server sends a second heartbeat signal to the scheduling unit at a third time interval. The second heartbeat signal includes the maximum task processing time of all target acquisition devices corresponding to the server. The maximum task processing time can also be the maximum time for the server to perform a task processing in the third time interval. After receiving the second heartbeat signal sent by the server, the scheduling unit will determine whether it is necessary to send a second synchronization request based on the maximum task processing time in the second heartbeat signal. If the maximum task processing time of a group is greater than the second threshold, a second synchronization request is generated. The second synchronization request is used to instruct the server to suspend task execution and resend the second heartbeat signal to the scheduling unit. The second synchronization request can then be sent to all servers. After receiving the second synchronization request, the server will respond to the second synchronization request, suspend the execution of the target task, and send the second heartbeat signal to the scheduling unit. The scheduling unit can re-assign a processor node to each server based on the second heartbeat signals sent by all scheduling units at the same time, and restart the monitoring timing of the second heartbeat signal.
[0074] In one example, in addition to generating a second synchronization request when the maximum task processing time of a group is greater than a second threshold, the scheduling unit can also generate a synchronization request when the difference between the global maximum task processing time and the maximum task processing time of the group is greater than a preset threshold, where the global maximum task processing time is the maximum value of the maximum task processing times of all groups.
[0075] In another embodiment, a method for simultaneous positioning and map construction further includes:
[0076] In response to the scheduling unit reallocating processor nodes to all servers based on the second heartbeat signal, the target task is executed based on the reallocated processor nodes; the second heartbeat signal also includes the processing delay status of the target acquisition device and the status information of the target acquisition device.
[0077] In this embodiment, after receiving the processor node reallocated by the scheduling unit based on the second heartbeat signal, the server adjusts its task execution strategy based on the new processor node. The new processor node allocation may be intended to optimize task processing efficiency, for example, by allocating processor nodes with higher processing capabilities to servers that consume longer processing time, or by removing processor nodes with lower processing capabilities from servers with less processing pressure. The server then executes the target task based on the reallocated processor node.
[0078] In one possible implementation, the second heartbeat signal also includes the processing delay status of the target acquisition device and the status information of the target acquisition device. The scheduling unit can reallocate processor nodes to each server based on the maximum task processing time, the processing delay status of the target acquisition device and the status information of the target acquisition device. For example, if the maximum task processing time is large, more processor nodes are allocated to the server; if the processing delay of the target acquisition device is large, more processor nodes are allocated to the server.
[0079] In this disclosure, a synchronization mechanism based on a second heartbeat signal between the scheduling unit and the server enables real-time dynamic adjustment of the processor nodes of each server, ensuring that the map generation task is accurately completed with the minimum number of processor nodes. Compared to existing SLAM systems, where each process of a single input is executed serially and the computing power requirements vary greatly between modules, it is necessary to provide each robot with the maximum computing power, that is, to provide a processor node that can meet the maximum computing power. This disclosure reduces the consumption of processor nodes and avoids wasted computing power.
[0080] Figure 3 The following is a flow chart showing a method for simultaneous positioning and map building according to an embodiment of the present disclosure. Figure 3 ,like Figure 3 As shown, a method for simultaneous positioning and map construction includes:
[0081] Step S301: receiving a collection task sent by a target server.
[0082] In this embodiment, a synchronous positioning and mapping method is applied to a target acquisition device, such as Figure 5 The target collection device first needs to receive a collection task from the target server, which is the server corresponding to the target collection device. The collection task is generated by the target server based on the target task assigned by the scheduling unit. The target task is a subtask of the map generation task and is used to guide the target collection device to collect data. The collection task may include requirements such as the collection scope, frequency, and data format.
[0083] Step S302: Based on the collection task, collect surrounding environment data.
[0084] In this embodiment, the target acquisition device can collect surrounding environmental data based on the acquisition task. The acquisition device is usually equipped with corresponding sensors, such as binocular cameras and laser radars, etc. The acquisition device can collect surrounding environmental data based on the acquisition task and its own sensors. For example, for Figure 5 In the example, robot α can capture a series of image data through acquisition tasks and a binocular camera, while robot β uses a lidar to scan the surrounding environment to generate 3D point cloud data. These image data and 3D point cloud data represent the environmental data collected by the respective robots. During the acquisition process, the target acquisition device collects data at the frequency and range required by the task and stores the collected data in a local data buffer. For example, a target acquisition device may collect visual data at a frequency of 10 frames per second and store each frame in a data buffer. Simultaneously, another set of target acquisition devices can collect 3D point cloud data from the lidar. The server can then perform processing such as timestamp alignment on the visual data and the 3D point cloud data.
[0085] Step S303: Generate perception data based on the environmental data.
[0086] In this embodiment, the perception data includes pose data, keyframe data, or local map data. After collecting environmental data, the target acquisition device generates perception data based on the environmental data, such as generating pose data based on stereo images captured by a binocular camera, or generating local map data based on three-dimensional point cloud data collected by a lidar. Pose data is the position and posture information of the target acquisition device when collecting data. Keyframe data is a representative frame extracted by the target acquisition device from continuously collected data. Local map data is a map of the local area constructed by the target acquisition device based on the data it has collected.
[0087] Step S304: Send the perception data to the target server based on the first synchronization request sent by the target server.
[0088] In this embodiment, after generating perception data, the target acquisition device sends it to the target server in response to a first synchronization request sent by the target server. The first synchronization request is a signal sent by the server to coordinate the data transmission time of each target acquisition device. The target acquisition device transmits the perception data at the specified time according to the first synchronization request. The perception data may include information such as a timestamp and device identifier, allowing the server to accurately execute the target task based on the perception data and ultimately generate global map data.
[0089] In the present disclosure, after the target acquisition device collects the surrounding environmental data based on the acquisition task and generates perception data based on the environmental data, it will send the perception data to the corresponding target server according to the first synchronization request sent by the target server. The target server and the corresponding target acquisition device are a group. There are multiple groups in the SLAM system, and each group performs different target tasks in the map generation task, thereby decoupling the construction of the global pose graph, the generation of the key frame set, the generation of the local map set, or the construction of the global map data to different groups of servers and target acquisition devices for parallel execution. Compared with the sequential execution of perception, positioning, and mapping in traditional SLAM solutions, the present disclosure can reduce the delay of map construction and improve the efficiency of map construction. In addition, the coupling of different functional modules is not high, and the scalability is strong.
[0090] In another embodiment, step S303 “generating perception data based on environmental data” includes:
[0091] Determine multiple feature points of the surrounding environment based on environmental data; send the feature points to other target collection devices corresponding to the target server; receive the feature points after deduplication of multiple feature points sent by other target collection devices; generate perception data based on the target feature points that meet the target conditions among the deduplicated feature points; and send the target feature points to other target monitoring devices.
[0092] In this embodiment, after collecting environmental data, the target acquisition device will first process the environmental data to determine multiple feature points of the surrounding environment. Feature points are locations with obvious features in the environment, such as corner points, edge points, texture points, etc. The target acquisition device can use various feature extraction algorithms to extract feature points from the environmental data, and then send the feature points to other target acquisition devices corresponding to the target server, that is, other target acquisition devices in the same group as the current target acquisition device.
[0093] In this embodiment, after a target acquisition device sends feature points to other target acquisition devices, it will receive deduplicated feature points from the other target acquisition devices. After receiving the feature points, the other target acquisition devices will perform deduplication processing on the received feature points based on their own feature points, removing duplicate feature points. For example, after receiving the feature points from target acquisition device A, target acquisition device B will compare them with its own extracted feature points. If any duplicate feature points are found, it will remove them and then send the deduplicated feature points to acquisition device A.
[0094] In this embodiment, after receiving the deduplicated feature points sent by other target acquisition devices, the target acquisition device will determine the target feature points that meet the target conditions among the deduplicated feature points. For example, the target acquisition device can verify the consistency of the two parties based on the inlier rate threshold based on the random sampling consensus algorithm (RANSAC). That is, if the inlier rate exceeds the inlier rate threshold, it is considered that the feature points between the two target acquisition devices are well matched and the result is credible, and the inlier point can be determined as the target feature point, thereby generating perception data based on the target feature point. The perception data includes posture data, key frame data or local map data. For example, the target acquisition device can use the target feature point to estimate the posture and obtain its own posture data; the target acquisition device can use the target feature point as the feature point of the key frame to generate key frame data; the target acquisition device can also construct a local map based on the target feature point. After generating the perception data, the target acquisition device will send the target feature point to other target monitoring devices, thereby realizing information sharing and collaborative work between the target acquisition devices.
[0095] In the present disclosure, by sharing, deduplicating and filtering feature points between target acquisition devices, the robustness and fault tolerance of the entire system can be improved, ensuring that the system can operate stably in complex environments while improving the accuracy of perception data.
[0096] In order to facilitate the understanding of the present disclosure, the following Figure 4 The complete process of a simultaneous positioning and map construction method in this disclosure is explained:
[0097] Figure 4 The following is a flow chart showing a method for simultaneous positioning and map building according to an embodiment of the present disclosure. Figure 4 ,like Figure 4 As shown in the figure, taking the group generating the global pose graph as an example, this group includes Group Server 1 and Robot Group 1. Group Server 1 and the SSP scheduler belong to the same server. The SSP scheduler can split the map generation task into multiple subtasks and then assign each subtask to the corresponding Group Server. Group Server 1 is assigned the subtask of determining the global pose graph of a certain area. Group Server 1 can send the corresponding collection task to all corresponding robots, such as Robot i and Robot j. After that, Group Server 1 can execute:
[0098] Step S405: monitor the first heartbeat signal of the target robot every T1.
[0099] Step S406: Maintain the maximum timer of the entire group. group_max_time=max 1≤i≤n robot_iter_time i , where group_max_time is the maximum timer for the entire group, robot_iter_time i Characterizes the task processing time of the i-th robot. Then, you can send the first synchronization request to all target robots every group_max_time, and receive the pose data sent by all target robots in response to the first synchronization request.
[0100] Step S407: Based on the pose data, the global pose graph is updated. In this process, the pose data can be optimized, and the global pose graph, i.e., the pose optimization result, is sent to all target robots.
[0101] If Group Server 1 receives a second synchronization request or a third synchronization request from the SSP scheduler, it executes step S408 and reports group_max_time to the SSP scheduler via a second heartbeat signal. This is the maximum task processing time for the entire group. The third synchronization request is a synchronization request sent by the SSP to Group Server 1 every T2 if Group Server 1's group_max_time meets a certain threshold. This request is only used to instruct Group Server 1 to send a second heartbeat signal, without requiring Group Server 1 to suspend the target task.
[0102] If Group Server 1 does not receive the second synchronization request or the third synchronization request from the SSP scheduler, it continues to monitor the first heartbeat signal of the target robot every T1.
[0103] The SSP scheduler can perform:
[0104] Step S401: monitor the second heartbeat signal of the Group Servers every T2, that is, monitor the maximum task processing time of all Group Servers.
[0105] Step S402: Maintain the global maximum timer. global_max_time=max group_max_time i , where Global_max_time is the global maximum timer, group_max_time i The maximum task processing time of group i.
[0106] If the difference between global_max_time and group_max_time1 of group Server 1 is less than or equal to θ, step S403 is executed to send a third synchronization request to the corresponding Group Server (Group Server 1) every T2.
[0107] If the difference between global_max_time and group_max_time1 of group Server 1 is not less than or equal to θ, step S404 is executed to send a second synchronization request to all group servers. This second synchronization request is used to instruct the server to suspend task execution and resend the second heartbeat signal to the scheduling unit.
[0108] Any Robot in Robot Group 1 can execute (taking Robot i as an example):
[0109] Step S409: collecting surrounding environment data.
[0110] Step S410: Select a key frame, that is, select a key frame in the environment data.
[0111] Step S411: Determine feature points. Specifically, determine feature points based on the keyframes and send them to Robot j. Robot j searches and removes duplicates from the received feature points based on its own feature points, obtaining deduplicated feature points.
[0112] Step S412, verification. That is, after receiving the deduplicated feature points, Robot i determines the target feature points that meet the target conditions among the deduplicated feature points. Robot i can then send the target feature points to Robot j.
[0113] Step S413: Generate pose data, that is, generate pose data based on the target feature points.
[0114] Step S414: Send task processing time and posture data to group Server 1.
[0115] Figure 7 A schematic diagram of the structure of a server and a target acquisition device according to an embodiment of the present disclosure is shown. Figure 7 As shown, a server includes:
[0116] Multiple processor nodes; such as server node 1-server node n;
[0117] The server corresponds to multiple target acquisition devices; such as target acquisition device 1-target acquisition device n;
[0118] Multiple processor nodes are used for:
[0119] Receive the target task sent by the scheduling unit; the target task is a subtask of the map generation task;
[0120] Send the collection task corresponding to the target task to all corresponding target collection devices;
[0121] Sending a first synchronization request to all target acquisition devices;
[0122] Receiving perception data sent by the target acquisition device based on the first synchronization request; the perception data includes posture data of the target acquisition device, key frame data collected by the target acquisition device, or local map data generated by the target acquisition device;
[0123] Based on the perception data, a target task is executed to obtain a first execution result corresponding to the target task; the first execution result includes a global pose graph, a key frame set, a local map set or global map data.
[0124] In one possible implementation, the multiple processor nodes are further configured to: determine a first time interval based on task processing time of all target acquisition devices; and send a first synchronization request to all target acquisition devices based on the first time interval.
[0125] In one embodiment, the multiple processor nodes are further used to: monitor the first heartbeat signals of all target acquisition devices based on the second time interval; the first heartbeat signal includes the task processing time of the target acquisition device; and determine the first time interval based on the maximum task processing time.
[0126] In one possible implementation, the multiple processor nodes are further configured to: in response to the task processing time of the target acquisition device being less than a first threshold, receive the perception data sent by the target acquisition device based on the first synchronization request.
[0127] In one embodiment, multiple processor nodes are also used to: receive a second execution result sent by other servers; the second execution result includes a global pose graph, a key frame set, and a local map set; based on the second execution result and the perception data, execute the target task to obtain a first execution result corresponding to the target task; the first execution result is global map data.
[0128] In one possible implementation, the multiple processor nodes are also used to: send a second heartbeat signal to the scheduling unit based on a third time interval; the second heartbeat signal includes the maximum task processing time in all target acquisition devices; receive a second synchronization request sent by the scheduling unit; the second synchronization request is generated by the scheduling unit in response to the maximum task processing time being greater than a second threshold; in response to the second synchronization request, suspend execution of the target task and send a second heartbeat signal to the scheduling unit.
[0129] In one embodiment, the multiple processor nodes are also used to: in response to the scheduling unit reallocating processor nodes to all servers based on the second heartbeat signal, execute the target task based on the reallocated processor nodes; the second heartbeat signal also includes the processing delay status of the target acquisition device and the status information of the target acquisition device.
[0130] In one possible implementation, multiple target acquisition devices are used to: receive acquisition tasks sent by a target server; the acquisition task is a acquisition task corresponding to a target task sent by a scheduling unit received by the target server; the target task is a subtask of a map generation task; based on the acquisition task, surrounding environmental data is collected; based on the environmental data, perception data is generated; the perception data includes posture data, key frame data or local map data; based on the first synchronization request sent by the target server, the perception data is sent to the target server.
[0131] In one possible implementation mode, multiple target acquisition devices are also used to: determine multiple feature points of the surrounding environment based on environmental data; send the feature points to other target acquisition devices corresponding to the target server; receive deduplicated feature points of multiple feature points sent by other target acquisition devices; generate perception data based on target feature points that meet the target conditions among the deduplicated feature points; and send the target feature points to other target monitoring devices.
[0132] It should be understood that the various forms of the processes shown above can be used to reorder, add, or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions of this disclosure can be achieved, and this document is not limited here.
[0133] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features being referred to. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one such feature. Throughout the present disclosure, "plurality" means two or more, unless otherwise specifically defined.
[0134] The above description is merely a specific embodiment of the present disclosure, but the scope of protection of the present disclosure is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this disclosure should be included in the scope of protection of the present disclosure. Therefore, the scope of protection of the present disclosure should be based on the scope of protection of the claims.
Claims
1. A method for simultaneous positioning and map construction, comprising: Receive the target task sent by the scheduling unit; The target task is a subtask of the map generation task; Sending the acquisition task corresponding to the target task to all corresponding target acquisition devices; Sending a first synchronization request to all the target acquisition devices; Receiving perception data sent by the target acquisition device based on the first synchronization request; the perception data includes posture data of the target acquisition device, key frame data collected by the target acquisition device, or local map data generated by the target acquisition device; Based on the perception data, the target task is executed to obtain a first execution result corresponding to the target task; the first execution result includes a global pose graph, a key frame set, a local map set or global map data.
2. The method according to claim 1, wherein sending a first synchronization request to all the target acquisition devices comprises: Determining a first time interval based on task processing time of all the target acquisition devices; Based on the first time interval, a first synchronization request is sent to all the target acquisition devices.
3. The method according to claim 2, wherein determining the first time interval based on the task processing time of all the target acquisition devices comprises: Monitoring the first heartbeat signals of all the target acquisition devices based on a second time interval; The first heartbeat signal includes the task processing time of the target acquisition device; The first duration interval is determined based on the maximum task processing time.
4. The method according to claim 2, wherein receiving the sensing data sent by the target acquisition device based on the first synchronization request comprises: In response to the task processing time of the target acquisition device being less than a first threshold, the perception data sent by the target acquisition device based on the first synchronization request is received.
5. The method according to claim 1, wherein executing the target task based on the perception data and obtaining a first execution result corresponding to the target task comprises: receiving a second execution result sent by another server; The second execution result includes a global pose graph, a key frame set, and a local map set; Based on the second execution result and the perception data, the target task is executed to obtain a first execution result corresponding to the target task; the first execution result is the global map data.
6. The method according to claim 1, further comprising: Sending a second heartbeat signal to the scheduling unit based on a third duration interval; The second heartbeat signal includes the maximum task processing time of all the target acquisition devices; receiving a second synchronization request sent by the scheduling unit; the second synchronization request is generated by the scheduling unit in response to the maximum task processing time being greater than a second threshold; In response to the second synchronization request, execution of the target task is suspended, and the second heartbeat signal is sent to the scheduling unit.
7. The method according to claim 6, further comprising: In response to the scheduling unit reallocating processor nodes to all servers based on the second heartbeat signal, executing the target task based on the reallocated processor nodes; The second heartbeat signal also includes the processing delay status of the target acquisition device and the status information of the target acquisition device.
8. A method for simultaneous positioning and map construction, comprising: Receive the collection task sent by the target server; The acquisition task is a acquisition task corresponding to the target task sent by the scheduling unit and received by the target server; The target task is a subtask of the map generation task; Based on the collection task, collect surrounding environmental data; Based on the environmental data, generating perception data; the perception data includes posture data, key frame data or local map data; The sensing data is sent to the target server based on the first synchronization request sent by the target server.
9. The method according to claim 8, wherein generating the perception data based on the environmental data comprises: determining a plurality of feature points of the surrounding environment based on the environmental data; Sending the feature points to other target acquisition devices corresponding to the target server; receiving the feature points after deduplication of the plurality of feature points sent by the other target acquisition device; Generating the perception data based on target feature points that meet the target condition among the deduplicated feature points; The target feature points are sent to the other target monitoring devices.
10. A server comprising: Multiple processor nodes; The server corresponds to multiple target acquisition devices; The plurality of processor nodes are configured to: Receive the target task sent by the scheduling unit; The target task is a subtask of the map generation task; Sending the acquisition task corresponding to the target task to all corresponding target acquisition devices; Sending a first synchronization request to all the target acquisition devices; Receiving perception data sent by the target acquisition device based on the first synchronization request; the perception data includes posture data of the target acquisition device, key frame data collected by the target acquisition device, or local map data generated by the target acquisition device; Based on the perception data, the target task is executed to obtain a first execution result corresponding to the target task; the first execution result includes a global pose graph, a key frame set, a local map set or global map data.