A BIM model-based measured quantity robot automatic detection and real-time feedback system and method
Patent Information
- Application Number
- CN202610727892.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-05-25
- Publication Date
- 2026-10-09
AI Technical Summary
操作人员无法在扫描过程中及时发现漏扫区域或偏差超限情况,往往只能待全部扫描任务完成后才能发现问题并安排返工,造成时间和成本的浪费
(1)实现机器人实时位姿在BIM模型中的精确可视化。本发明通过多源融合定位与坐标标定技术,将机器人位姿统一到BIM世界坐标系中,并在BIM模型界面实时显示机器人的位置与运动轨迹。操作人员无需依赖机器人自身的局部地图,即可在BIM场景下直观监控机器人在具体房间、楼层及各构件附近的运动状态,便于路径规划、远程引导与路径校验。
Smart Images

Figure CN122881647A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the fields of Building Information Modeling (BIM) technology, autonomous navigation of mobile robots, and 3D vision inspection technology. Specifically, it relates to an intelligent system and method that enables unified alignment of robot real-time pose with the BIM world coordinate system, online automatic matching and association of point cloud scan data with BIM components, and real-time visual feedback of the scanning process during building measurement and construction quality inspection. Background Technology
[0002] With the widespread application of BIM technology throughout the entire building lifecycle, the integration of on-site measurement, construction quality inspection, and BIM model has become an important development direction for engineering digitization. Mobile robots equipped with 3D sensors such as LiDAR and depth cameras can automatically scan indoor spaces, significantly improving data acquisition efficiency and quality.
[0003] However, existing technologies still have significant technical challenges in aligning robot poses with BIM models, automatically associating scanned data with specific components, and providing real-time visual feedback during the scanning process.
[0004] Existing mobile robot systems typically employ simultaneous localization and mapping (SLAM) technology or simultaneous localization and mapping (SLT) technology for positioning and map building. Their output pose is based on a robot-built local coordinate system or sensor coordinate system, lacking a direct conversion relationship with the unified world coordinate system used in building BIM models. When the robot performs automated navigation and scanning tasks on-site, operators can usually only observe its movement trajectory in a two-dimensional grid map or a local three-dimensional point cloud map generated internally by the robot, and cannot intuitively locate the robot's current room position and its surrounding area on the BIM model interface.
[0005] In point cloud data processing, most existing methods for registering point clouds with BIM models fall under the category of offline post-processing. Operators need to manually segment or use registration algorithms to align the point clouds with the BIM model after collecting all the point cloud data, and then label each point cloud component individually. This process is not only inefficient but also prone to human error, failing to meet the needs of real-time quality control on-site.
[0006] In terms of quality control during the scanning process, existing systems lack an effective real-time feedback mechanism. Operators cannot promptly detect missed areas or deviations during the scanning process, and problems are often only discovered and rework arranged after all scanning tasks are completed, resulting in a waste of time and costs.
[0007] In summary, there is an urgent need to provide an integrated system solution that can uniformly align the robot's real-time pose, continuous 3D scanning data stream with the BIM model, associate component-level data online, and provide real-time feedback on scanning coverage and deviation information in a visual manner during the scanning process, so as to improve the automation level and data utilization efficiency of room measurement and construction inspection. Summary of the Invention
[0008] This invention aims to provide a BIM model-based automatic detection and real-time feedback scheme for robots. This scheme can realize the real-time conversion and fusion of robot pose and BIM world coordinate system, build an online association mechanism between 3D scanning data and BIM components, and provide real-time visualization and deviation feedback of the scanning process in the BIM scene, thereby effectively overcoming the problems existing in the prior art.
[0009] To achieve the above objectives, this invention provides a BIM model-based automatic detection and real-time feedback system for measurement robots, the system comprising: The positioning module is used to acquire the robot's six-degree-of-freedom pose in the BIM world coordinate system in real time; An index building module is used to preload the BIM model and build a spatial index structure for each component in the BIM model. The spatial index structure supports fast component ownership query for spatial coordinate points. The scanning and synchronization module is used to collect local point cloud data in real time during the robot's movement, and use the real-time pose output by the positioning module to transform the local point cloud data online to the BIM world coordinate system to generate a global point cloud stream with pose labels. The online association module is used to query the BIM component to which each point cloud or each point belongs in real time by calling the spatial index structure for each frame of point cloud or each point in the global point cloud stream, establish the dynamic ownership relationship between point cloud and BIM component, and organize point cloud data according to component. The visualization feedback module is used to calculate the scanned coverage of each component in real time based on the dynamic attribution relationship, and generate a scanned heat map of the global BIM model. The heat map is color-coded according to the coverage of each component and updated in real time.
[0010] Furthermore, the positioning module includes: Absolute positioning unit, used to output global position information aligned with the BIM world coordinate system; The relative positioning unit is used to perform simultaneous localization and mapping based on vehicle-mounted LiDAR or depth camera to obtain the robot's real-time pose in a local coordinate system. The coordinate fusion unit is used to filter and fuse the global position information with the real-time pose of the local coordinate system to output the robot's six-degree-of-freedom pose in the BIM world coordinate system.
[0011] Furthermore, the absolute positioning unit includes at least one of an ultra-wideband positioning unit, a visual marker recognition positioning unit, or a real-time dynamic differential GPS positioning unit; the BIM world coordinate system is obtained by pre-calibrating the rigid body transformation between the absolute positioning datum and the BIM model coordinate system.
[0012] Furthermore, the index building module establishes an axis-aligned bounding box or an oriented bounding box for each component, and constructs an octree, KD tree, or spatial hash table index structure based on the bounding box.
[0013] Furthermore, before querying, the online association module performs voxel downsampling or key point extraction on the global point cloud stream to reduce the amount of computation. Then, it performs a spatial index query on each downsampled point to determine the bounding box of the component into which the point falls, and assigns the point to the component with the most hits or the first hit component.
[0014] Furthermore, the visualization feedback module periodically counts the number of associated point clouds of each component and their spatial distribution on the component surface at preset time intervals, estimates the ratio of the scanned surface area to the total designed surface area of the component, obtains the coverage rate, and renders the corresponding component in the heat map with the corresponding color according to the threshold range of the coverage rate.
[0015] Furthermore, the visualization feedback module also provides a robot perspective scan overlay image. This overlay image uses the robot's current pose as the observation point and displays the global point cloud of the most recent frame or several recent frames in a semi-transparent manner on the corresponding position of the BIM model.
[0016] Furthermore, the visualization feedback module also provides a user interaction unit. When a user clicks on a component in the heat map, the system displays the component's BIM design parameters, the current number of associated point clouds, coverage, and the flatness or verticality deviation index calculated online.
[0017] Furthermore, the system also includes an online deviation detection module, which performs real-time geometric deviation analysis on the point cloud set associated with each component: selects a planar, cylindrical, or spherical fitting model according to the component type, calculates the distance statistics from the point cloud to the design geometric model, and when the deviation exceeds a preset threshold, highlights the component in the heat map as an alarm and records the abnormal state.
[0018] To achieve the above objectives, the present invention also provides a method for automatic detection and real-time feedback of a robot based on a BIM model, applied to the aforementioned system, characterized in that the method includes: The steps include preloading the BIM model and creating a spatial index structure for each component; Steps for real-time acquisition of the robot's six-DOF pose in the BIM world coordinate system; The steps include: real-time acquisition of local point clouds during robot movement, transformation of the point clouds to the BIM world coordinate system using the pose, and generation of a global point cloud flow. For each point or each frame of point cloud in the global point cloud stream, the spatial index structure is called to query its corresponding BIM component in real time, and the ownership relationship between point cloud and component is established online and point cloud data is organized according to the component. The steps include calculating the scanned coverage rate of each component in real time based on the aforementioned attribution relationship, generating a global BIM model scan heat map with color coding based on the coverage rate, and updating the heat map in real time.
[0019] Compared with the prior art, the present invention has the following beneficial effects: (1) Achieve accurate visualization of robot real-time pose in BIM model. This invention uses multi-source fusion positioning and coordinate calibration technology to unify robot pose into the BIM world coordinate system and displays the robot's position and motion trajectory in real time on the BIM model interface. Operators can intuitively monitor the robot's movement status in specific rooms, floors and near various components in the BIM scene without relying on the robot's own local map, which facilitates path planning, remote guidance and path verification.
[0020] (2) Constructing a real-time automatic association mechanism between scanned data and BIM components. This invention achieves the technical effect of automatically assigning each frame of scanned data to the corresponding BIM component through component-level spatial indexing and real-time point cloud matching algorithm, eliminating the need for manual point cloud cutting or post-registration. This mechanism significantly improves the efficiency of inspection data processing and can directly support component-based quality inspection and statistical analysis, effectively reducing the incidence of human error.
[0021] (3) Real-time feedback and quality control functions are provided during the scanning process. This invention displays the overlay effect of point cloud and model and the scanning coverage of each component in real time during the scanning process by overlaying the robot's view with the global BIM heat map. The operator can immediately find missed areas, insufficiently covered components and abnormal deviation components, and adjust the robot path and scanning strategy in a timely manner, thereby reducing rework and data omissions.
[0022] (4) It lays the technical foundation for fully automated deviation detection and acceptance analysis. Since the collected data is organized, associated and timestamped from the beginning according to the components, the subsequent dimensional deviation comparison, flatness and perpendicularity analysis can be automatically performed on a component-by-component basis and supports incremental updates. This system can be further extended to generate component-level quality inspection reports, realizing an automated closed-loop process from "scanning - association - analysis - report". Attached Figure Description
[0023] The present invention will be further described below with reference to the accompanying drawings and specific embodiments.
[0024] Figure 1 This is a schematic diagram of the overall architecture and data flow of the system of the present invention.
[0025] Figure 2 This is a flowchart of the multi-source fusion positioning and coordinate transformation of the present invention.
[0026] Figure 3 This is a schematic diagram of the real-time display interface of the present invention.
[0027] Figure 4 This is a flowchart of the algorithm for associating scan data with components in this invention.
[0028] Figure 5 This is a schematic diagram of the heat map showing the scanning coverage of the components of the present invention.
[0029] Figure 6 This is a schematic diagram illustrating the online deviation calculation and alarm of the components of this invention.
[0030] The meanings of the labels in the attached diagram are as follows: 100: Positioning module; 110: Absolute positioning unit; 120: Relative positioning unit; 130: Coordinate fusion unit; 200: Index building module; 210: BIM model loading unit; 220: Bounding box calculation unit; 230: Spatial index building unit; 300: Scanning and synchronization module; 310: 3D scanning sensor; 320: Pose synchronization unit; 330: Coordinate transformation unit; 340: Data output unit; 400: Online association module; 410: Data preprocessing subunit; 420: Spatial index access subunit; 430: Real-time association algorithm unit; 440: Component attribute association unit; 500: Visual feedback module; 510: Coverage calculation unit; 520: Heatmap rendering engine; 530: Robot view scan overlay map generation unit; 540: User interaction unit; 600: Online Deviation Detection Module; 610: Timed trigger unit; 620: Geometric fitting unit; 630: Deviation determination and alarm unit. Detailed Implementation
[0031] To make the technical means, creative features, objectives and effects of this invention easier to understand, the invention will be further described below with reference to specific illustrations.
[0032] like Figure 1 As shown, the BIM model-based automatic robot detection and real-time feedback system provided by this invention consists of five core modules: a positioning module 100, an index construction module 200, a scanning and synchronization module 300, an online association module 400, and a visualization feedback module 500. In addition, the system can be optionally equipped with an online deviation detection module 600 as an extended function.
[0033] The positioning module 100 in this system is configured to output the robot's six-degree-of-freedom pose in the BIM world coordinate system in real time. Simultaneously, this pose data is sent to the scanning and synchronization module 300 for coordinate transformation of the point cloud data, and to the visualization feedback module 500 to drive the synchronous display of the robot model in the BIM scene.
[0034] The index building module 200 is configured to run offline before the inspection task begins. It is used to load the BIM model, build a spatial index structure for each component, and provide the index structure to the online association module 400.
[0035] The scanning and synchronization module 300 is configured to continuously acquire raw laser point clouds during robot movement, while simultaneously receiving real-time pose data from the positioning module 100. This module adds a timestamp and corresponding pose to each frame of the point cloud, transforms the point cloud from the sensor coordinate system to the BIM world coordinate system, generates a global point cloud stream with pose labels, and then sends the point cloud stream to the online association module 400.
[0036] The online association module 400 receives the global point cloud stream and calls the spatial index structure provided by the index building module 200 for each point to quickly query the component ID to which the point belongs. Based on the query results, this module dynamically assigns the point cloud into the point cloud container of the corresponding component and organizes the point cloud data according to the component ID. At the same time, it outputs a data structure that includes at least the component ID, the associated point cloud set, design parameters, timestamps, and statistical features. Then, it sends these component-level point cloud data and their statistical features to the visualization feedback module 500.
[0037] The visualization feedback module 500 is configured to calculate the scanned coverage of each component in real time based on the received component-level point cloud data, and render a global BIM model scan heatmap accordingly. Simultaneously, this module renders a robot-view scan overlay image using the robot's current pose as the observation point. Users can view detailed information and deviation indicators for each component through user interaction.
[0038] The deviation online detection module 600, as an optional background thread, is configured to periodically read the associated point cloud data of each component from the online association module 400, perform plane fitting or surface fitting, and calculate the flatness or verticality deviation. When the deviation exceeds a preset threshold, the module sends an alarm signal to the visualization feedback module 500, which then alerts the user by highlighting and flashing the alarm.
[0039] The following section provides a further explanation of the specific configuration scheme of each module in this system.
[0040] like Figure 2 As shown, the positioning module 100 in this system adopts a three-layer architecture of "absolute positioning + relative positioning + filtering fusion" in its specific implementation, which is mainly composed of the absolute positioning unit 110, the relative positioning unit 120, and the coordinate fusion unit 130 working together.
[0041] The absolute positioning unit 110 is used to output global position information aligned with the BIM world coordinate system. In a specific implementation, the absolute positioning unit 110 preferably uses an ultra-wideband (UWB) positioning system, and is further configured to pre-deploy at least four UWB base stations within the building to be inspected. For example, this embodiment deploys six base stations to enhance coverage. Based on this, the precise three-dimensional coordinates of each base station are measured using a total station, and these coordinates are transformed into the BIM world coordinate system. Simultaneously, a UWB tag is installed on the top of the robot, which outputs its three-dimensional coordinates (x_u, y_u, z_u) in the UWB coordinate system at a preset frequency. The system uses a pre-calibrated rigid body transformation matrix T_UWB_BIM to convert these coordinates into the absolute position (x_abs, y_abs, z_abs) in the BIM world coordinate system in real time.
[0042] Furthermore, the calibration process is specifically configured as follows: Select at least 10 easily identifiable feature points (such as corner points or column center points) within the building, measure the coordinates of these feature points in the BIM world coordinate system using a total station, and simultaneously measure the coordinates of these feature points in the UWB coordinate system using a handheld UWB tag. The system then uses this set of corresponding points and employs the Singular Value Decomposition (SVD) algorithm to solve for the optimal rigid body transformation matrix T_UWB_BIM in the least squares sense.
[0043] The relative positioning unit 120 performs simultaneous localization and mapping (SLAM) based on vehicle-mounted LiDAR or depth camera to obtain the robot's real-time pose in a local coordinate system.
[0044] In its implementation, the relative positioning unit 120 preferably employs a combination of a 16-line LiDAR (e.g., Velodyne VLP-16) and an inertial measurement unit (IMU, e.g., MicroStrain 3DM-GX5). The LiDAR scans the environment at a preset frequency, and the IMU outputs three-axis angular velocity and acceleration data at the corresponding frequency. The robot's onboard computing platform runs the open-source LIO-SAM algorithm, which integrates LiDAR point cloud and IMU data to output the robot's six-degree-of-freedom pose (x_l, y_l, z_l, roll_l, pitch_l, yaw_l) and a local point cloud map in a local SLAM coordinate system. The origin of this local coordinate system is defined as the robot's position and orientation at the moment of startup.
[0045] The coordinate fusion unit 130 is used to fuse the local coordinate system pose output by the relative positioning unit with the global coordinates output by the absolute positioning unit. It uses Kalman filtering or extended Kalman filtering algorithm to output the robot's real-time six-degree-of-freedom pose (x, y, z, rx, ry, rz) in the BIM world coordinate system and periodically sends it to the host computer or display terminal through the communication interface.
[0046] In its implementation, the coordinate fusion unit 130 is deployed on the robot's onboard computing platform, running an extended Kalman filter (EKF). The state vector of this filter is defined as: X = [x, y, z, vx, vy, vz, roll, pitch, yaw, wx, wy, wz]^T; Where (x, y, z) represents the position component of the robot in the BIM world coordinate system, (vx, vy, vz) represents the velocity component, (roll, pitch, yaw) represents the attitude Euler angle component, and (wx, wy, wz) represents the angular velocity component.
[0047] The EKF prediction step utilizes IMU data for state recursion. The EKF update step simultaneously fuses two types of observation data: first, absolute position observations provided by UWB, with the observation equation H_abs mapping the position component in the state vector to UWB measurements; second, relative pose observations provided by SLAM, with the observation equation H_slam mapping the state vector to pose in the SLAM coordinate system. The filter dynamically adjusts its weights based on the covariance matrix of each observation: when the UWB signal is good, the filter reduces the UWB observation noise covariance, making the fused result more biased towards absolute localization; when the robot enters a region where the UWB signal is occluded, the filter automatically increases the UWB observation noise covariance, relying instead on SLAM prediction and IMU integration.
[0048] After EKF fusion, the coordinate fusion unit 130 outputs the robot's real-time six-DOF pose (x, y, z, rx, ry, rz) in the BIM world coordinate system, where (rx, ry, rz) represent Euler angles. As further explanation, this pose data can be published via ROS Topic at a preset frequency.
[0049] The resulting positioning module 100 pre-calibrates the UWB coordinate system to the BIM coordinate system before filtering and fusion, ensuring that the fused pose is directly located in the BIM world coordinate system. Furthermore, unlike most existing fusion positioning systems that only output poses relative to the origin or a local map, requiring additional coordinate transformations to align with the BIM model, this positioning module 100 eliminates the real-time transformation step through offline calibration, significantly reducing system latency and ensuring consistency between the positioning results and the BIM model. In this system, the index building module 200 is configured to perform offline preprocessing to create a spatial index structure for each component before the detection task begins. The index building module 200 is mainly composed of a BIM model loading unit 210, a bounding box calculation unit 220, and a spatial index building unit 230.
[0050] BIM model loading unit 210 is configured to read the BIM model file of the building to be inspected (e.g., in IFC format, exported by Revit software), parse the file, and extract the geometric information, unique identifier (ID), component type (e.g., wall, column, beam, slab, door, window), design dimensions (length, width, height, thickness), and spatial location (minimum bounding box coordinates of the component in the BIM world coordinate system) of each component.
[0051] Bounding box calculation unit 220 is configured to interact with BIM model loading unit 210, calculating the axis-aligned bounding box (AABB) for each component extracted by BIM model loading unit 210. The AABB is defined by two vertices: a minimum point (x_min, y_min, z_min) and a maximum point (x_max, y_max, z_max). This bounding box completely encloses the geometry of the component. For inclined walls or columns, an oriented bounding box (OBB) may be optionally calculated to more closely fit the component shape and reduce the overlap between adjacent component bounding boxes.
[0052] Spatial index building unit 230 is configured to interact with bounding box calculation unit 220 to insert the AABBs of all components into a 3D KD tree. The KD tree here is a binary tree structure, where each node corresponds to a spatial region (i.e., a bounding box).
[0053] As an example, the KD-tree construction process is as follows: Select the coordinate axis with the largest variance in the current node as the splitting axis, and use the median point on that axis as the split point to divide the data into two subsets. Then, recursively build a subtree for each subset. After construction, the KD-tree supports fast nearest neighbor search and bounding box intersection testing, with a query time complexity of O(log N), where N is the total number of components. For very large models with more than 10,000 components, the KD-tree can be replaced with an octree or a spatial hash table index.
[0054] The resulting index building module 200 completes the construction of the component-level spatial index offline before the scan begins, rather than dynamically during the scan. Furthermore, after completing the KD-tree construction, the index structure is serialized and saved to a disk file. When the online association module 400 starts, it loads this index structure from disk into memory and establishes a mapping table from component IDs to bounding boxes. This ensures that all query operations of the online association module 400 directly access this in-memory index, eliminating the need for repeated construction and guaranteeing the real-time performance of the online association module 400.
[0055] like Figure 1 As shown, the scanning and synchronization module 300 in this system is mainly composed of a three-dimensional scanning sensor 310, a pose synchronization unit 320, a coordinate transformation unit 330, and a data output unit 340.
[0056] The 3D scanning sensor 310 preferably employs a line lidar (e.g., Velodyne VLP-16) to output raw point cloud data at a fixed frame rate. Each point cloud frame contains approximately 3000 3D points, each containing (x, y, z) coordinates and a reflection intensity value. Furthermore, the sensor is configured to automatically read a high-precision timestamp (accuracy 0.1 milliseconds) from the system clock when acquiring each frame of point cloud data, and then associate the timestamp with the point cloud data and store it in the raw data queue.
[0057] The pose synchronization unit 320 is configured to maintain a pose circular buffer of a certain length in memory to store pose data received from the positioning module 100 within the most recent preset time (e.g., 200 milliseconds). This unit periodically retrieves point cloud frames from the raw data queue, uses their timestamps as query keys, performs time synchronization in the pose buffer, and obtains the robot pose pose(t_k) corresponding to the point cloud frame through linear interpolation or direct matching.
[0058] The coordinate transformation unit 330 is configured to receive the (point cloud frame, pose) pair output by the pose synchronization unit 320, and transform the point cloud from the sensor coordinate system to the BIM world coordinate system using the pre-calibrated sensor extrinsic parameter matrix T_sensor_base and robot pose matrix T_base_world(t_k), generating a global point cloud frame with pose label.
[0059] The data output unit 340 is configured to package the global point cloud frame output by the coordinate transformation unit 330 into a standard data structure (including timestamp, robot pose, and global point cloud array), and send it to the online association module 400 via shared memory or ZeroMQ message queue. Optionally, the original data can be saved to disk for offline debugging.
[0060] As further explained, the scanning and synchronization module 300 thus formed first performs pose synchronization and interpolation during operation. At this time, the pose synchronization unit 320 runs independently, periodically checking the original data queue. When the queue is not empty, the unit is configured to perform the following operations: retrieve a point cloud data packet from the head of the queue and obtain its timestamp t_k; search for two poses pose(t_prev) and pose(t_next) in the circular pose buffer whose timestamps satisfy t_prev ≤ t_k ≤ t_next; if the time difference between t_k and t_prev is less than 5 milliseconds, then pose(t_prev) is directly used as pose(t_k); otherwise, linear interpolation is used for the position component, and spherical linear interpolation (Slerp) is used for the pose component (Euler angles) to calculate pose(t_k); and pass (point cloud array P_k, pose(t_k)) to the coordinate transformation unit 330.
[0061] Next, coordinate transformation is performed. At this time, coordinate transformation unit 330 receives (P_k, pose(t_k)) pairs from pose synchronization unit 320 and performs the following transformation on each point in the point cloud: p_world = T_base_world(t_k) * T_sensor_base * p_lidar; Here, T_sensor_base is a pre-calibrated sensor extrinsic parameter matrix, and T_base_world(t_k) is constructed from pose(t_k). After the transformation is completed, this unit transmits the global point cloud frame P'_k and the corresponding timestamp and pose to the data output unit 340.
[0062] Next, data output is performed. At this point, the data output unit 340 assembles the received data into a message packet with a unified format, containing the following fields: timestamp, robot pose, and global point cloud array. This unit sends the message packet to the online association module 400 via shared memory or ZeroMQ message queue, and optionally saves the raw data to disk for offline debugging.
[0063] As a further explanation, when the 3D scanning sensor 310 acquires the N+2th frame, the pose synchronization unit 320 can synchronize the N+1th frame, the coordinate transformation unit 330 can transform the Nth frame, and the data output unit 340 can output the N-1th frame. The four sub-units form a four-stage pipeline, which effectively improves the overall throughput of the module.
[0064] Meanwhile, this module achieves precise time synchronization of data streams at different frequencies through a circular buffer and interpolation algorithm, solving the time alignment problem between the lidar and the positioning module; at the same time, the coordinate transformation unit transforms the point cloud from the sensor coordinate system to the BIM world coordinate system online, so that subsequent association modules do not need to handle coordinate system transformation again, reducing computational complexity.
[0065] like Figure 1 and Figure 4 As shown, the online association module 400 in this system is the core processing unit that realizes real-time association between point cloud data and BIM components. This module consists of four functionally defined and collaborative sub-units: data preprocessing sub-unit 410, spatial index access sub-unit 420, real-time association algorithm unit 430, and component attribute association unit 440. These four modules cooperate with each other to complete the entire process from receiving global point cloud data to outputting component-level data structures.
[0066] The data preprocessing subunit 410 is configured to perform voxel downsampling on the received global point cloud frames (voxel size set to 0.02m~0.05m) to control the point cloud size within a reasonable range (e.g., less than 500 points per frame) to reduce the processing load. This subunit does not perform coordinate transformation because the input is already a global point cloud in the BIM world coordinate system.
[0067] The spatial index access subunit 420 is configured to load the component spatial index structure pre-built by the index building module 200 and provide a standardized query interface for determining which BIM components a given spatial point is located within.
[0068] Specifically, the spatial index access subunit 420 maintains a read-only pointer to the index structure (such as an octree, KD-tree, or spatial hash table) generated by the index building module 200. The index structure is loaded from disk into memory during system initialization and remains unchanged throughout the detection process.
[0069] The spatial index access sub-unit 420 provides a query interface, through which a list of component IDs belonging to a 3D point with coordinates (x, y, z) in the BIM world coordinate system can be retrieved. The query algorithm utilizes the index structure for fast location: For octree indexes: by recursively accessing nodes, find the smallest voxel node containing that node and return the set of component IDs associated with that node.
[0070] For KD-tree indexes: branches that cannot contain the point are quickly eliminated by spatial partitioning, and the inclusion test is performed on each candidate bounding box.
[0071] For spatial hash tables: directly calculate the hash bucket where the point is located, obtain the list of component IDs in the bucket, and then test the inclusion relationship one by one.
[0072] Furthermore, when a point is located within the overlapping bounding box of multiple components (such as the area where a wall and a column intersect), the query interface returns all component IDs that meet the conditions, instead of just one. The final determination is then performed by the real-time association algorithm unit 430.
[0073] The resulting spatial index access subunit 420 is specifically responsible for loading the component spatial index structure pre-built by the index building module 200 and providing a unified spatial query interface. During system initialization, this subunit loads the octree, KD-tree, or spatial hash table index generated by the index building module 200 from the disk and keeps it resident in memory. During the detection process, this subunit does not participate in any write operations, but only provides query services. The query interface accepts a 3D point in the BIM world coordinate system as input, uses the index structure to quickly determine which components the point is located within, and returns a list of corresponding component IDs. When a point falls within the overlapping bounding boxes of multiple components, the interface returns all component IDs that meet the conditions for upper-level decision-making.
[0074] The real-time association algorithm unit 430, as the core control unit of the module, is configured to coordinate the workflow of the data preprocessing subunit 410 and the spatial index access subunit 420. For each point in the global point cloud of each frame, this unit calls the spatial index access subunit 420 to query its component affiliation, and organizes the query results (point coordinates + component ID) into a temporary list, which is then passed to the component attribute association unit 440.
[0075] Specifically, the real-time correlation algorithm unit 430 includes a frame processor that receives the global point cloud P'_k from the data preprocessing subunit 410 frame by frame, and is configured to perform the following operations for each point in P'_k (or each representative point after downsampling): First, call the query interface of spatial index access subunit 420 to obtain the list of component IDs to which the point belongs.
[0076] Then, based on the preset conflict resolution strategy, the final component ownership is selected from the list: Unique match: If the list contains only one component ID, then use that ID directly.
[0077] Multiple hits: If the list contains multiple component IDs (e.g., a point located at the intersection of a wall and a column), a "first hit" strategy (taking the first one in the query return order) or a "majority vote" strategy (referring to the point's ownership statistics in multiple consecutive historical frames and taking the ID with the highest frequency) can be used. As an example, this implementation uses the "first hit" strategy by default to ensure real-time performance.
[0078] Miss: If the list is empty, it means that the point does not fall within the bounding box of any component (which may be a measurement noise or an unmodeled object). The point is then marked as "unassociated" or "noise" and will not participate in subsequent component association.
[0079] For each valid hit, the unit generates a result record: (point_coordinate, component_id) and adds it to a temporary list. This list is organized frame by frame. After each frame is processed, the entire list is passed to the component attribute association unit 440, and then the temporary list is cleared to prepare for the next frame.
[0080] The resulting unit receives global point cloud frames from the data preprocessing subunit 410 at runtime and calls the query interface of the spatial index access subunit 420 point by point. For each point, the unit obtains its list of component IDs and determines its final assignment according to a preset conflict resolution strategy. Points that do not match any component are marked as noise and discarded. After processing each frame of point cloud, the unit organizes all valid hit (point coordinates, component ID) results into a temporary list, passes it as a whole to the component attribute association unit 440, and then clears the list to prepare for processing the next frame. This unit is also responsible for recording the hit statistics for each frame, but does not persist them.
[0081] The component attribute association unit 440 is configured to manage the accumulated data of all components and, based on the list transmitted by the real-time association algorithm unit 430, assign each point to the corresponding component's data structure. This unit is also responsible for updating statistical features (number of points, coverage, fitting residuals) and outputting a standardized data structure <component ID, associated point cloud set, design parameters, timestamp, statistical features> for use by the visualization feedback module 500 and the online deviation detection module 600.
[0082] Specifically, the component attribute association unit 440 maintains a global hash table with the component ID as the key and the component data object as the value. Each component data object contains at least the following fields: component ID, associated point cloud set (using a sliding window mechanism to retain only the most recent points), design parameters (read-only information read from the BIM model), timestamp, and statistical features (including cumulative point count, coverage estimate, and optional fitting residuals).
[0083] When the list of (point coordinates, component ID) transmitted by the real-time association algorithm unit 430 arrives, the unit is configured to perform the following processing steps: First, search for the corresponding component data object in the hash table; if it does not exist, create a new object using the design parameters and insert it. Then, add the point coordinates to the associated point cloud set, increment the accumulated point count by 1, and update the timestamp. To avoid affecting the processing of the real-time data stream, the coverage recalculation task is triggered asynchronously: a separate background thread periodically traverses the active components in the hash table, estimates the ratio of the scanned surface area to the total design surface area based on the projection distribution of its associated point cloud set on the component surface, obtains the coverage rate, and writes it into the statistical features. The updated component data structure is sent to the visualization feedback module 500 in real time via a message queue, while being retained in memory for the deviation online detection module 600 to read.
[0084] like Figure 3 and Figure 5 As shown, the visualization feedback module 500 in this system is deployed on a remote workstation and is mainly composed of a coverage calculation unit 510, a heat map rendering engine 520, a robot perspective overlay map generation unit 530, and a user interaction unit 540.
[0085] The coverage calculation unit 510 is configured to periodically collect the associated point cloud data of each component and perform coverage calculation accordingly.
[0086] Specifically, the coverage calculation unit 510 uses the voxel projection method for coverage calculation: Discretize the design surface of the component into a voxel mesh with a side length δ (δ is 0.02m); for each voxel center point, determine whether there is a related point cloud falling into a sphere with the voxel center as the center and a radius of δ / 2.
[0087] Based on this, the coverage rate is calculated using the following formula: Coverage rate = (Scanned surface area / Total surface area) × 100%; Wherein, the scanned surface area = number of hit voxels × δ 2 Total surface area = number of voxels on all surfaces of the component × δ 2 .
[0088] The heatmap rendering engine 520 is configured to use the Unity 3D engine for rendering. It reads the coverage rate from the hash table of the online associated module 400, sets the color for each component according to the coverage threshold range, and submits it to the GPU for rendering.
[0089] The robot perspective overlay generation unit 530 is configured to create a perspective camera with the robot's current pose as the viewpoint, and extract the point cloud data of the most recent frames (e.g., 5 frames) from the hash table of the online association module 400. After being clipped by the view frustum, the data is overlaid on the wireframe rendering of the BIM model as semi-transparent dots.
[0090] User interaction unit 540: listens for mouse click events, obtains the ID of the clicked component through ray detection, retrieves the complete data structure of the component from the hash table of the online association module 400, and displays the information panel.
[0091] The visualization feedback module 500, as thus formed, first performs data subscription and updates during runtime. The heatmap rendering engine subscribes to component data structure update messages published by the online association module 400. Whenever new data is received, the engine updates the internally maintained component coverage mapping table and triggers a redraw. During the redraw, the engine generates corresponding material colors for each component based on the coverage threshold range (<30% red, 30%-70% yellow, >70% green), enables a semi-transparent rendering mode (0.5 transparency), and then submits it to the GPU for rendering. The engine also subscribes to the real-time robot pose published by the positioning module 100 to update the position and orientation of the robot model.
[0092] Next, view synchronization is performed, using the robot's real-time pose to drive the robot's view to scan the perspective camera pose constructed by overlaying Figure 520. The camera acquires the latest robot pose at a preset frequency, recalculates the view matrix and projection matrix (field of view 90 degrees, near plane 0.1 meters, far plane 20 meters), and then extracts the point cloud (the union of the point cloud sets associated with each component) collected in the recent few frames (e.g., 5 frames) from the hash table of the online association module 400. After being clipped by the view frustum, the points are overlaid and displayed.
[0093] Finally, user interaction responses are handled by the user interaction unit 540, which listens for mouse click events. When a user clicks on a component on the heatmap, this unit obtains the component ID through ray detection and then queries the online association module 400 for the component's complete data structure. After the query result is returned via a callback function, the unit updates the information panel, displaying the component's design parameters (read from the "Design Parameters" field), the current number of associated point clouds (read from the "point_count" field in "Statistical Features"), the scanned coverage rate (coverage_rate), and, if the deviation detection module is enabled, the flatness deviation obtained from the fitting residual (fitting_residual) transformation. Simultaneously, the unit sends a command to the heatmap rendering engine, requesting that the camera focus be switched to the component for local magnified observation.
[0094] Unlike existing technologies where scan coverage is typically calculated offline after all point cloud data has been acquired, providing no real-time feedback during the scanning process, this visualization feedback module 500 dynamically calculates and visualizes coverage during scanning. This allows operators to immediately identify missed areas and adjust the robot's scanning path, significantly reducing rework caused by missed scans.
[0095] like Figure 6 As shown, the deviation online detection module 600 in this system is an optional configuration module, which is mainly composed of a timing triggering unit 610, a geometric fitting unit 620, and a deviation judgment and alarm unit 630.
[0096] The timed triggering unit 610 runs as an independent background thread, and is woken up once every preset time interval (1 second in this embodiment) to read the set of associated point clouds and design parameters of all active components from the hash table of the online association module 400.
[0097] The geometry fitting unit 620 is configured to select the appropriate geometry model fitting algorithm based on the component type (wall, column, floor). For walls, the Random Sample Consensus (RANSAC) algorithm is used to fit the plane equation; for columns, a cylindrical surface is fitted; and for floors, a plane is fitted. This unit outputs the fitting parameters (e.g., a, b, c, d of the plane equation) and the fitting residuals (root mean square error).
[0098] The deviation determination and alarm unit 630 is configured to interact with the geometric fitting unit 620, comparing the fitted geometric parameters with the component design parameters (such as the design plane equation of the wall and verticality requirements) to calculate the flatness deviation and verticality deviation. If the deviation exceeds a preset threshold, the unit generates an alarm record (including component ID, deviation type, deviation value, and timestamp) and sends it to the visualization feedback module 500 via a message queue. Simultaneously, the unit writes the fitting residual back to the statistical feature fields of the corresponding component data structure in the online association module 400.
[0099] The resulting deviation online detection module 600's timed triggering unit 610 operates independently, triggering once at a set time. After triggering, this unit sends a read request to the hash table of the online association module 400 to obtain a copy of the data structure of all components (only reading the associated point cloud set and design parameters, without modifying the original data). The geometric fitting unit 620 receives the data transmitted by the timed triggering unit 610 and first filters it according to the component type in the design parameters, performing analysis only on components of type "wall," "column," and "ground." For walls, the RANSAC plane fitting algorithm is called: three points are randomly selected from the associated point cloud, and the plane determined by these three points is calculated; the distance from all other points to this plane is calculated, and points with a distance less than 2 cm are marked as interior points; the above process is repeated 1000 times, and the plane with the most interior points is selected as the fitting result. The fitted plane equation is expressed as: ax + by + cz + d = 0, where (a, b, c) is the unit normal vector of the plane, and d is the distance from the origin to the plane. After the fitting is completed, the unit passes the fitting residual (root mean square error) and fitting parameters to the deviation determination and alarm unit 630.
[0100] The deviation judgment and alarm unit 630 compares the theoretical geometric values (e.g., the design plane equation of the wall, verticality requirements) in the component design parameters with the fitted parameters. The flatness deviation is defined as the average absolute distance from the point cloud to the fitted plane; the verticality deviation is defined as the angle between the normal vector of the fitted plane and the gravity direction (0,0,1). The system presets the following deviation thresholds: a wall flatness threshold of 5 mm and a wall verticality threshold of 1 / 500 (i.e., a deviation of 2 mm per meter is allowed). If the deviation exceeds the corresponding threshold, the unit generates an alarm record and sends it to the visualization feedback module 500 via the ZeroMQ message queue. Simultaneously, the unit writes the fitting residual back to the statistical feature field (fitting_residual) of the corresponding component data structure in the online association module 400.
[0101] Upon receiving an alarm message, the visualization feedback module 500 sets the corresponding component's heatmap color to a flashing red (alternating between red and the original color every 0.5 seconds) and displays a pop-up notification in the lower right corner of the interface. Simultaneously, the system adds an "anomaly marker" annotation to the component in the BIM model, recording the anomaly type, deviation value, and timestamp. These records will ultimately be exported to the inspection report.
[0102] Existing quality inspection processes typically involve first completing a scan, then analyzing the point cloud data offline, and finally organizing on-site retesting and rectification after identifying problems. This process has a long feedback cycle and is prone to causing delays. This invention utilizes an independent online deviation detection module 600 to perform geometric fitting and deviation analysis in the background via timed triggering, achieving online deviation detection and real-time alarms. This allows construction personnel to immediately identify quality issues during the scanning process and rectify them on-site, significantly shortening the closed-loop time of quality control.
[0103] To more clearly illustrate the application effect of this invention in practical engineering, the following example uses the indoor measurement and construction quality inspection task of a standard floor of a newly built office building, combined with... Figures 1 to 6 The system describes the specific functions of each module and sub-unit, and the complete workflow from deployment to completion of testing.
[0104] I. Task preparation and system calibration.
[0105] Before the task began, the technicians first deployed and calibrated the system. A differential wheeled mobile robot was selected as the carrier, equipped with a 16-line LiDAR, an inertial measurement unit (IMU), an odometer, and UWB positioning tags. Six UWB base stations were deployed inside the building to be inspected, and the precise three-dimensional coordinates of each base station were measured using a total station. These coordinates were then converted to the BIM world coordinate system. Simultaneously, the building's BIM model (IFC format) was imported into the system workstation.
[0106] At this point, the index building module 200 begins offline operation. Its BIM model loading unit parses the model, extracting the geometric information, unique ID, and spatial location of each component (wall, column, beam, slab, door, window); the bounding box calculation unit aligns the bounding box (AABB) for each component's calculation axis; and the spatial index building unit constructs a KD-tree spatial index based on the bounding boxes of all components and serializes and saves the index structure to disk. This index will be used for subsequent rapid point cloud attribution queries.
[0107] Simultaneously, the UWB coordinate system and the BIM coordinate system are calibrated: feature points such as wall corners and column corners are selected within the building, and the coordinates of these points in the BIM coordinate system are measured using a total station. The coordinates of the UWB labels are also measured at the same locations. The rigid body transformation matrix T_UWB_BIM is solved using singular value decomposition, thereby directly mapping the UWB positioning results to the BIM world coordinate system.
[0108] II. Robot Start-up and Real-time Positioning.
[0109] The operator loads the BIM model into the visual interface of the remote workstation, and the robot's scanning path is automatically planned based on the room topology of the model. After the robot starts, the positioning module 100 begins to output six-degree-of-freedom poses in real time.
[0110] The UWB tag in the absolute positioning unit 110 outputs its 3D coordinates in the UWB coordinate system at a frequency of 10Hz, which is then converted to its absolute position in the BIM world coordinate system using a pre-calibrated transformation matrix T_UWB_BIM. In the relative positioning unit 120, a 16-line LiDAR scans the environment at 10Hz, the IMU outputs angular velocity and acceleration data at 100Hz, and the onboard computing platform runs the LIO-SAM algorithm to output the robot's pose in the local SLAM coordinate system. The coordinate fusion unit 130 runs an extended Kalman filter: the state vector includes position, velocity, attitude, and angular velocity; the prediction step uses IMU data for state recursion; the update step simultaneously fuses the UWB absolute position and the SLAM relative pose. The filter dynamically adjusts the weights according to signal quality, ultimately outputting a smooth global six-DOF pose, which is sent to the visualization feedback module 500 at a frequency of 30Hz via a WebSocket interface.
[0111] III. Scanning Data Acquisition and Coordinate Transformation.
[0112] The robot travels along a preset path at a speed of 0.3 m / s. The scanning and synchronization module 300 begins operation. The 3D scanning sensor 310 (16-line LiDAR) acquires a frame of local point cloud (approximately 3000 points) every 0.1 seconds and adds a high-precision timestamp to each frame. The pose synchronization unit 320 maintains a circular pose buffer, storing pose data within the last 200 milliseconds. For each frame of point cloud, the pose synchronization unit uses its timestamp as the lookup key to find two poses with adjacent timestamps in the buffer, and calculates the robot pose at the time of point cloud acquisition using linear interpolation (position) and quaternion spherical linear interpolation (attitude). The coordinate transformation unit 330 receives (point cloud, pose) pairs and, using the pre-calibrated sensor extrinsic parameter matrix T_sensor_base (sensor coordinate system to robot base coordinate system) and robot pose matrix T_base_world(t) (robot base to BIM world coordinate system), transforms each point from the sensor coordinate system to the BIM world coordinate system: P_world = T_base_world(t) · T_sensor_base · P_sensor.
[0113] The transformed global point cloud frame, along with its timestamp and pose, is packaged by the data output unit 340 and sent to the online association module 400 via shared memory. For example, when the robot scans a wall 5 meters long, dozens of consecutive point cloud frames, after transformation, accurately fall within the designed space of the wall.
[0114] IV. Online association between point cloud and BIM components.
[0115] The online association module 400 receives the global point cloud stream and begins real-time attribution processing. The data preprocessing subunit 410 performs voxel downsampling on each frame of the global point cloud (the voxel size can be configured as needed) to control the number of points within a reasonable range (e.g., 500 points per frame) to reduce the amount of subsequent computation. Note that this subunit does not perform coordinate transformation.
[0116] The spatial index access subunit 420 loads the KD-tree index pre-built by the index building module 200 from the disk during system initialization and keeps it resident in memory, providing a unified query interface: inputting a 3D point in the BIM world coordinate system, outputting a list of one or more component IDs to which the point falls. The real-time association algorithm unit 430 calls the query interface point by point and determines the final assignment according to the conflict resolution strategy: if a unique ID is returned, it is used directly; if multiple IDs are returned (such as at the intersection of walls and columns), the "first hit" strategy is used; if an empty list is returned, it is marked as noise and discarded. After processing each frame, this unit passes all valid hit records (point coordinates, component ID) to the component attribute association unit 440.
[0117] The component attribute association unit 440 maintains a global hash table, with the component ID as the key and the component data object as the value. Each component data object contains a point cloud buffer (sliding window, retaining only the most recent points), BIM design parameters, cumulative point count, timestamp, and statistical features (coverage, fitting residuals, etc.). For each hit record, the unit inserts the point coordinates into the corresponding component's point cloud buffer and updates the cumulative point count. A separate background thread periodically traverses all active components, estimates the ratio of the scanned surface area to the total design surface area based on the distribution of the point cloud on the component surface (e.g., voxel projection), obtains the coverage, and writes it into the statistical features. The updated component data structure is sent to the visualization feedback module 500 in real time via a message queue. Taking the wall Wall_101 as an example, as the robot moves along the wall, the component's point cloud buffer gradually accumulates thousands of points, and the coverage gradually increases from the initial 0% to over 90%.
[0118] V. Real-time visualization and interactive feedback.
[0119] like Figure 3 and Figure 5As shown, the visualization feedback module 500 is deployed on a remote workstation. Its heatmap rendering engine subscribes to component data update messages published by the online association module 400 and reads the coverage of each component. Based on a preset threshold range (red for below 30%, yellow for 30%~70%, and green for above 70%), it generates a semi-transparent material color for each component and overlays it in the BIM scene to form a global scanning heatmap. Simultaneously, the engine subscribes to the robot pose of the positioning module 100, updates the position and orientation of the robot model in the BIM scene in real time, and draws historical motion trajectories using blue dashed lines. The robot perspective overlay generation unit sets up a perspective camera with the robot's current pose as the observation point, extracts the most recent 5 frames of point cloud from the hash table of the online association module 400, and displays them as semi-transparent dots overlaid on the BIM wireframe model after frustum clipping, forming an augmented reality scanning view.
[0120] The user interaction unit listens for mouse click events. When an operator clicks on a component on the heatmap, the system obtains the component ID through ray detection, queries the online association module 400 for the component's complete data structure, and displays its BIM design parameters, current associated point cloud quantity, coverage, and (if deviation detection is enabled) flatness deviation in the information panel. Simultaneously, the system automatically switches the camera focus to the component, enabling magnified observation of the local area.
[0121] During the scanning process, the operator could clearly see that most of the walls had turned green, but one pillar was still red, and clicking on it showed a coverage rate of only 15%. The operator then added a waypoint to the interface, and the robot automatically adjusted its path to scan the pillar again. In real time, the coverage rate increased to 85%, and the color turned green, confirming that the missed area had been filled.
[0122] VI. Online Deviation Detection and Alarms.
[0123] like Figure 6As shown, if the system is configured with the online deviation detection module 600, the background thread automatically performs geometric deviation analysis at preset time intervals (e.g., 1 second). The timed trigger unit reads the associated point cloud set and design parameters of all active components from the hash table of the online association module 400. The geometric fitting unit selects a fitting algorithm according to the component type: for walls, the RANSAC algorithm is used to fit the plane equation (randomly select 3 points, calculate the plane, count the interior points, repeat the iteration, and select the plane with the most interior points); for columns, a cylindrical surface is fitted; for the ground, a plane is fitted. The deviation judgment and alarm unit compares the fitted parameters with the design parameters and calculates the flatness deviation (average distance from the point cloud to the fitted plane) and the verticality deviation (angle between the plane normal vector and the direction of gravity). If the flatness deviation of a wall exceeds a preset threshold (e.g., 5 mm), the unit generates an alarm record (component ID, deviation type, deviation value, timestamp) and sends it to the visualization feedback module 500 through a message queue.
[0124] Upon receiving the alarm, the visualization feedback module 500 sets the wall to a flashing red state on the heatmap (alternating between red and the original color every 0.5 seconds) and displays an alarm message in the lower right corner of the interface: "Wall_101 flatness deviation 7mm, please verify on-site." Simultaneously, an anomaly marker is added to the component in the BIM model, recording the deviation value and timestamp. On-site construction personnel can immediately go to the location to verify and rectify the issue without waiting for offline analysis after all scans are completed.
[0125] VII. Task Completion and Report Generation.
[0126] After the robot completes scanning all preset paths, the operator confirms that the coverage of each major component meets the preset requirements (e.g., all are above 90%, and components with excessive deviations have been addressed). Based on the component-level point cloud data and deviation detection records stored in the online association module 400, the system automatically generates an inspection report, including the design parameters of each component, scanned coverage, flatness / verticality deviation statistics, an anomaly marker list, and optional on-site photos. This report can be directly used for project acceptance and quality archiving, achieving a fully automated closed loop from scanning to association, analysis, and reporting.
[0127] As can be seen from the above application examples, the positioning module 100, index construction module 200, scanning and synchronization module 300, online association module 400, visualization feedback module 500, and optional online deviation detection module 600 in the system of the present invention work together. Each sub-unit has a clear responsibility and a complete data flow loop. This effectively solves the problems in the prior art, such as the difficulty in aligning robot pose with BIM model, the inefficiency of associating point cloud with component, and the lack of real-time feedback in the scanning process. It significantly improves the level of intelligence in building measurement and construction inspection.
[0128] The foregoing has shown and described the basic principles, main features, and advantages of the present invention. Those skilled in the art should understand that the present invention is not limited to the above embodiments. The embodiments and descriptions in the specification are merely illustrative of the principles of the invention. Various changes and modifications can be made to the invention without departing from its spirit and scope, and all such changes and modifications fall within the scope of the present invention as claimed. The scope of protection of this invention is defined by the appended claims and their equivalents.
Claims
1. A BIM model-based automatic robot detection and real-time feedback system for actual measurement, characterized in that, The system includes: The positioning module (100) is used to acquire the six-degree-of-freedom pose of the robot in the BIM world coordinate system in real time; An index building module (200) is used to preload the BIM model and establish a spatial index structure for each component in the BIM model. The spatial index structure supports fast component ownership query for spatial coordinate points. The scanning and synchronization module (300) is used to collect local point cloud data in real time during the robot's movement, and use the real-time pose output by the positioning module (100) to transform the local point cloud data online to the BIM world coordinate system to generate a global point cloud stream with pose labels. The online association module (400) is used to call the spatial index structure to query the BIM component to which each frame of point cloud or each point in the global point cloud stream belongs in real time, establish the dynamic ownership relationship between point cloud and BIM component, and organize point cloud data according to component. The visualization feedback module (500) is used to calculate the scanned coverage of each component in real time according to the dynamic attribution relationship, and generate a scanned heat map of the global BIM model. The heat map is color-coded according to the coverage of each component and updated in real time.
2. The system according to claim 1, characterized in that, The positioning module (100) includes: Absolute positioning unit (110) is used to output global position information aligned with the BIM world coordinate system; The relative positioning unit (120) is used to perform simultaneous localization and mapping based on vehicle-mounted lidar or depth camera to obtain the real-time pose of the robot in the local coordinate system. The coordinate fusion unit (130) is used to filter and fuse the global position information with the real-time pose of the local coordinate system to output the six-degree-of-freedom pose of the robot in the BIM world coordinate system.
3. The system according to claim 2, characterized in that, The absolute positioning unit (110) includes at least one of an ultra-wideband positioning unit, a visual marker recognition positioning unit, or a real-time dynamic differential GPS positioning unit; the BIM world coordinate system is obtained by pre-calibrating the rigid body transformation between the absolute positioning datum and the BIM model coordinate system.
4. The system according to claim 1, characterized in that, The index building module (200) builds an axis-aligned bounding box or an oriented bounding box for each component, and builds an octree, KD tree or spatial hash table index structure based on the bounding box.
5. The system according to claim 1, characterized in that, Before querying, the online association module (400) performs voxel downsampling or key point extraction on the global point cloud flow to reduce the amount of computation. Then, it performs spatial index query on each downsampled point to determine the bounding box of the component into which the point falls and assigns the point to the component with the most hits or the first hit component.
6. The system according to claim 1, characterized in that, The visualization feedback module (500) periodically counts the number of associated point clouds of each component and their spatial distribution on the surface of the component at preset time intervals, estimates the ratio of the scanned surface area to the total designed surface area of the component, obtains the coverage rate, and renders the corresponding component in the heat map with the corresponding color according to the threshold range of the coverage rate.
7. The system according to claim 1, characterized in that, The visualization feedback module (500) also provides a robot perspective scan overlay image. This overlay image uses the robot's current pose as the observation point and displays the global point cloud of the most recent frame or several recent frames in a semi-transparent form on the corresponding position of the BIM model.
8. The system according to claim 1, characterized in that, The visualization feedback module (500) also provides a user interaction unit (510). When a user clicks on a component in the heat map, the system displays the component's BIM design parameters, the current number of associated point clouds, coverage, and the flatness or verticality deviation index calculated online.
9. The system according to claim 1, characterized in that, The system also includes an online deviation detection module (600), which performs real-time geometric deviation analysis on the point cloud set associated with each component: selects a planar, cylindrical, or spherical fitting model according to the component type, calculates the distance statistics from the point cloud to the design geometric model, and when the deviation exceeds a preset threshold, highlights the component in the heat map and records the abnormal state.
10. A method for automatic detection and real-time feedback of a robot based on a BIM model for actual measurement, applied to the system according to any one of claims 1 to 9, characterized in that, The method includes: The steps include preloading the BIM model and creating a spatial index structure for each component; Steps for real-time acquisition of the robot's six-DOF pose in the BIM world coordinate system; The steps include: real-time acquisition of local point clouds during robot movement, transformation of the point clouds to the BIM world coordinate system using the pose, and generation of a global point cloud flow. For each point or each frame of point cloud in the global point cloud stream, the spatial index structure is called to query its corresponding BIM component in real time, and the ownership relationship between point cloud and component is established online and point cloud data is organized according to the component. The steps include calculating the scanned coverage rate of each component in real time based on the aforementioned attribution relationship, generating a global BIM model scan heat map with color coding based on the coverage rate, and updating the heat map in real time.