Railway track searching and hoisting method and system for long steel rails
By setting up lidar in the storage area to collect and fuse segmented point cloud data, the problems of low automation and precise positioning in the hoisting of long steel rails were solved, realizing efficient and precise hoisting of long steel rails, reducing manpower requirements and improving efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- CENT SOUTH UNIV
- Filing Date
- 2026-01-29
- Publication Date
- 2026-05-26
AI Technical Summary
Existing long rail hoisting technology has a low level of automation, which can easily lead to uneven or twisted rails, as well as low efficiency and difficulty in achieving precise positioning and efficient hoisting.
Multiple lidar sensors positioned along the length of the reservoir area are used to collect segmented point cloud data. By fusing, segmenting, and filtering the point cloud data, the target of the operation on the uppermost long steel rail is determined, and the hoisting device is used for precise positioning and grabbing.
It achieves precise positioning and efficient hoisting of long steel rails, reduces manpower requirements, improves hoisting efficiency, and reduces point cloud data volume through voxel mesh technology, thereby improving grasping accuracy and robustness.
Smart Images

Figure CN122079013A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of point cloud positioning technology, and in particular to a method and system for track finding and hoisting long steel rails. Background Technology
[0002] In the long rail storage base, long rails are transported to the base by flatbed trucks and then unloaded. They are then lifted into the storage area using gantry cranes. The long rails are not always straight on the flatbed trucks; they may have curves or shift during transport. Multiple gantry cranes need to work together to precisely position the long rails. If the gantry crane's rail-picking position is too far off, it will fail to pick up the rail, requiring manual repositioning. If the correction fails and the rail is forcibly lifted manually by shaking, it can cause the rail to become uneven or twisted, compromising the quality of the seamless track rails.
[0003] The existing methods for hoisting long steel rails mainly include the following: 1. Relying on multiple operators, each holding a remote control to operate a single hoist for movement and loading / unloading. This method relies on operators shouting commands, resulting in low automation and efficiency. It may also cause the rails to be misaligned after hoisting, leading to skewed, twisted deformation during movement. 2. Installing positioning devices on each hoist and then using centralized control to manage all hoists. This method significantly improves operational efficiency, but because it's impossible to obtain the exact position of the long rails across the span of each hoist (which usually varies), the centralized control system assigns the same rail retrieval address for all hoists. Ultimately, manual fine-tuning of some hoist positions is still required to retrieve the rails. Summary of the Invention
[0004] In view of this, the present invention proposes a method and system for track-finding and hoisting long steel rails. This method involves collecting segmented point cloud data using multiple lidar sensors positioned along the length of the storage area, fusing the collected data to form a unified point cloud. Then, by segmentation, individual point cloud clusters of all scanned long steel rails are obtained. Based on their coordinates, the uppermost long steel rail is selected as the target for operation. After selection, the gripping point is determined by the position of its corresponding point cloud cluster relative to the hoisting device, thereby achieving precise positioning of each gripping point. This reduces the required manpower and further improves the hoisting efficiency of long steel rails.
[0005] The technical solution of this invention is implemented as follows: On one hand, the present invention provides a method for track-finding and hoisting long steel rails, which divides the storage area into multiple segmented sections along the length of the storage area, and installs a laser radar above the long rail car track in each segmented section. The track-finding and hoisting method includes the following steps: S1 uses multiple lidars to collect initial point cloud data of multiple long rails within the corresponding segmented sections. S2 preprocesses the initial point cloud data collected by each lidar and merges them to form overall point cloud data; S3 segments the complete point cloud data to obtain the point cloud data of each long rail on the surface. S4 determines the point cloud data of the rail corresponding to the uppermost long rail and selects one of the uppermost long rails as the operation object. S5 obtains the coordinates of multiple grab points based on the corresponding rail point cloud data of the work object and the position of the hoisting device; The S6 consists of multiple hoisting devices that work together to grab and hoist the work object according to the corresponding grabbing points.
[0006] Based on the above technical solution, preferably, in step S2, the initial point cloud data collected by each lidar is preprocessed, including the following steps: S21 sets a point cloud retention area and removes points in each initial point cloud data that are outside the point cloud retention area, while the long steel rail is located within the point cloud retention area; S22 sets the outlier detection threshold and removes points that meet the outlier detection threshold; The remaining point cloud set in the initial point cloud data of S23 is used as local point cloud data.
[0007] More preferably, in step S2, fusing to form the overall point cloud data includes the following steps: S24 transforms the various local point cloud data and unifies them into the global coordinate system; S25 performs point cloud registration based on the overlapping point clouds of two adjacent local point cloud data; S26 calculates the weighted average coordinates of points in a neighborhood in the overlapping area of two adjacent local point cloud data, and replaces the original multiple points with the calculated average point to obtain global point cloud data. S27 defines a three-dimensional voxel mesh in the global coordinate system and inputs the point cloud data from the global point cloud into the three-dimensional voxel mesh; S28 For each occupied voxel, calculate the weighted average of the points falling within the voxel to obtain the representative point of that voxel. S29 treats the set of all representative points as the overall point cloud data.
[0008] Based on the above technical solutions, preferably, step S3 includes the following sub-steps: S31 filters out the background and non-railway object point clouds to obtain candidate point clouds; S32 establishes a KD-Tree data structure for the point cloud and sets the neighborhood radius and minimum number of cluster points; S33 traverses the candidate point cloud and groups points whose distance to each other is less than the neighborhood radius and satisfy the minimum number of cluster points into the same cluster, thus obtaining multiple independent point cloud clusters; S34 sets an angle threshold and calculates the normal vector of each point in an independent point cloud cluster. If the angle between the normal vectors of adjacent points exceeds the angle threshold, they are determined to be different rail boundaries and are segmented. S35 sets the thickness parameter and layers the point cloud according to height, merging consecutive point clouds in the same layer to obtain several candidate clusters; S36 sets a filtering threshold, removes candidate clusters that do not meet the filtering threshold, and obtains several rail point cloud data corresponding to long rails.
[0009] More preferably, the screening threshold includes at least one of a rail length threshold, a point cloud fracture threshold, and a rail cross-section threshold.
[0010] Based on the above technical solutions, preferably, step S4 includes the following sub-steps: S41 sets the height tolerance threshold; S42 calculates the average height of each rail point cloud data; S43 sorts the point cloud data of each rail in descending order based on the average height. S44 uses the rail point cloud data with the largest average height, and the rail point cloud data with a difference of less than the height tolerance threshold, as the highest layer rail set; S45 selects one set of rail point cloud data from the highest layer of rail data as the target for operation.
[0011] Further preferably, if all the long rails corresponding to the rail point cloud data in the highest layer rail set have been hoisted, then the highest layer rail set is reacquired.
[0012] Based on the above technical solutions, preferably, with the length of the storage area as the X-axis, the height as the Z-axis, and the Y-axis perpendicular to the XZ-axis plane, step S5 includes the following sub-steps: S51 performs dimensionality reduction by projection on the XY-axis plane of the work object; S52 fits the centerline curve to the rail point cloud data of the reduced-dimensional work object; S53 determines the X-axis coordinates of the grab points of each hoisting device on the centerline curve.
[0013] More preferably, step S5 further includes the following sub-steps: S54 selects the width tolerance zone centered on the X-axis coordinate of the grab point; S55 calculates the median Y-coordinate of the point cloud within the width tolerance band and uses it as the Y-axis coordinate of the grab point; S56 sets the XY coordinate domain and extracts the maximum Z-axis value of the point cloud within the XY coordinate domain; S57 sets the spreader clearance. The sum of the maximum Z-axis value and the spreader clearance is the Z-axis coordinate of the grab point.
[0014] On the other hand, the present invention provides a long rail-tracking and hoisting system, including a gantry crane, a lidar system, and a host computer, wherein... There are multiple gantry cranes, which are installed along the length of the warehouse area; The lidar is installed on a large number of the gantry cranes and faces the long rail car; The host computer communicates with the lidar and is electrically connected to the gantry crane. The host computer is used to receive data collected by the lidar and send control commands to the gantry crane. The host computer incorporates the above-mentioned long rail track-finding and hoisting method.
[0015] The long steel rail tracking and hoisting method and system of the present invention have the following advantages over the prior art: (1) Segmented point cloud data is collected by multiple lidars set along the length of the reservoir area, and then fused to form overall point cloud data. Then, by segmentation, individual point cloud clusters of all scanned long rails are obtained, and the uppermost long rail is selected according to its coordinates. The uppermost long rail is selected as the work object, and after selection, the grab point is determined by the position of its corresponding point cloud cluster and the hoisting device, so as to achieve precise positioning of each grab point, reduce the required manpower, and further improve the hoisting efficiency of long rails. (2) By adopting voxel grid downsampling technology, the entire point cloud space is divided into a uniform three-dimensional grid. The weighted average position of all points falling within each occupied voxel is calculated, and only this representative point is retained. This greatly reduces the amount of data in the massive point cloud while retaining the main geometric features and structural information, and finally forms the optimized overall point cloud data, laying the foundation for subsequent rail identification and segmentation; (3) Project and reduce the dimension of the point cloud of the work object on the XY plane, ignoring height information and focusing on the actual direction of the rail in the horizontal plane. Then, perform curve fitting on these two-dimensional projection points on the XY plane, such as splines or RANSAC, to obtain a continuous curve describing the horizontal centerline of the rail. Then, based on the number and spacing strategy of the hoisting devices, determine the corresponding grab position coordinates X_i of each hoisting device in the length direction on this centerline curve. For the X coordinate of each grab point, set a width tolerance band in the adjacent Y-axis direction. Calculate the median of the Y coordinate of the point cloud within this tolerance band and use it as the hoisting point. This setting has better robustness and higher grab accuracy. Attached Figure Description
[0016] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0017] Figure 1 This is a flowchart of the long steel rail tracking and hoisting method of the present invention; Figure 2 This is a schematic diagram of the long rail tracking and hoisting system of the present invention. Detailed Implementation
[0018] The technical solutions of the present invention will be clearly and completely described below with reference to the embodiments of the present invention. Obviously, the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of protection of the present invention.
[0019] The existing methods for hoisting long steel rails are as follows: (1) Relying on multiple operators, each holding a remote control to control the movement and loading / unloading of a single hoist. This method relies on shouting slogans to operate together, resulting in a very low level of automation and low efficiency. It may cause the steel rails to be out of alignment with the horizontal and vertical lines after being hoisted, leading to oblique tension and torsional deformation during the movement of the steel rails. (2) Installing positioning devices on each hoist and then using centralized control to uniformly control all hoists. This method greatly improves the efficiency of operation, but because it is impossible to obtain the position of the long steel rails on the span of each hoist, and this position is usually different, the rail retrieval address given by centralized control is the same. In the end, the position of some hoists must be fine-tuned to retrieve the steel rails.
[0020] Currently, in order to improve the level of intelligence and free up labor, many rail storage bases have begun to adopt the second technical method. How to solve the problem of automatic rail searching of long steel rails by hoist cranes has become an urgent problem to be solved.
[0021] To solve the problem of automatic track finding for long steel rails by hoists, firstly, the coordinates of each steel rail on the long rail car are fixed in the system. However, the steel rails on the long rail car may have significant curvature, so the hoist may fail to automatically grasp the rail. Therefore, a lidar is installed on the main beam of each hoist above the center of the long rail car track.
[0022] Based on this, such as Figure 1As shown, the long rail locating and hoisting method of the present invention divides the warehouse area into multiple segmented sections along the length of the warehouse area, and sets up a laser radar above the long rail car track in each segmented section. The locating and hoisting method includes steps S1-S6.
[0023] Step S1: Multiple lidars collect initial point cloud data of multiple long rails within the corresponding segmented sections.
[0024] Along the length of the storage area, the entire area to be scanned is pre-divided into several continuous segments. A lidar scanning device is fixedly installed directly above each segment, above the long-rail vehicle track. The positions of these lidars strictly correspond to the segments they are responsible for.
[0025] Once the flatbed truck carrying stacked long steel rails stops at the designated location, the system activates all lidar sensors to perform synchronous or on-demand scanning. Each radar emits a laser beam directly below its corresponding segment, scanning the surface of the multi-layered stacked long steel rails on the flatbed truck within that segment. The radar receives the reflected signals, acquiring in real time massive amounts of raw point cloud data within that local area, including three-dimensional spatial information such as the surface irregularities, gaps, edges, and stacking layers of the steel rails.
[0026] The unprocessed point cloud acquired by each lidar is the initial point cloud data, which accurately records the spatial geometry and distribution of all visible rail surfaces within that segment in the form of a set of discrete points. Each lidar is only responsible for acquiring the local point cloud within its jurisdiction, providing the basic data source for subsequent fusion processing.
[0027] Each lidar point cloud contains surface points from a section of the long rail. This long rail may be bent or displaced. In addition, there may be background point clouds and interference data. It is important to note that each lidar scan needs to have an overlapping area, which can be set to approximately 20%.
[0028] Step S2: Preprocess the initial point cloud data collected by each lidar and fuse them to form overall point cloud data.
[0029] The core objective of this step is to transform the scattered and noisy initial point cloud data collected by multiple lidars in step S1 into a precise, complete, and usable overall point cloud data through a series of rigorous preprocessing and fusion operations.
[0030] This process first involves independent data cleaning of each initial point cloud. Specifically, this can be achieved by defining a physical point cloud retention area and removing invalid points that fall outside the boundaries of the flatbed truck, the track, or areas that are clearly outside the rails. Then, an outlier filtering algorithm is applied, based on the statistical characteristics of the distance between a point and its neighboring points, to eliminate isolated noise points that are significantly deviated from the main point cloud. The set of valid points that remain constitutes the local point cloud data.
[0031] Then, these local point clouds are unified to the global coordinate system through coordinate transformation, and fine registration is performed using the common point clouds of adjacent radar scan overlapping areas to accurately align the point cloud boundaries. To address the issues of excessively high point density and potential small registration errors in overlapping areas, a weighted average is applied to the points in the local neighborhood of the overlapping area to generate a smoother and more accurately positioned average point.
[0032] Finally, a voxel grid downsampling technique was employed to divide the entire point cloud space into a uniform 3D grid. The weighted average position of all points falling within each occupied voxel was calculated, and only this representative point was retained. This significantly reduced the amount of data in the massive point cloud while preserving the main geometric features and structural information, ultimately forming optimized overall point cloud data, laying the foundation for subsequent rail identification and segmentation.
[0033] First, the initial point cloud data collected by the lidar is preprocessed to reduce the subsequent computational load and improve the calculation accuracy. This can be summarized as steps S21-S23.
[0034] Step S21: Set the point cloud retention area and remove points in each initial point cloud data that are outside the point cloud retention area, wherein the long rail is located within the point cloud retention area.
[0035] This step involves spatial filtering. Based on the fixed parking position of the flatbed truck in the storage area and the physical range of the long steel rail stacks, one or more precise cubic or polygonal regions are predefined in three-dimensional space, i.e., point cloud preservation regions. This region tightly surrounds the effective area of the flatbed truck carrying the steel rails, including the reasonable range of possible rail offsets.
[0036] When processing the initial point cloud of each radar, the system checks whether each 3D point is located within a preset retention area. Only points within the retention area are retained, while points outside the area, such as scanned ground, equipment, track infrastructure, or distant background objects, are directly removed. This step significantly reduces the amount of data processed subsequently and greatly reduces the interference of irrelevant background points on rail identification.
[0037] Assuming the point cloud region is a three-dimensional cuboid, it can be represented as: V ROI ={p=(x,y,z)∈R 3 |x min≤x≤x max ,y min ≤y≤y max ,z min ≤z≤z max} Among them, R 3 V represents the three-dimensional real space. ROI The area to be preserved in the point cloud is represented by P, where P represents a single point cloud, xmin and xmax represent the range of track length in the storage area, ymin and ymax represent the width of the flatbed car plus the safety margin, and zmin and zmax represent the maximum height of the rail stack plus the space for the lifting device.
[0038] Step S22: Set an outlier detection threshold and remove points that meet the outlier detection threshold.
[0039] This step removes outliers. Despite ROI filtering, the point cloud may still contain noise points caused by LiDAR measurement errors, small floating objects such as dust and water droplet reflections, or local scanning anomalies—these are outliers. The average distance to each point's K nearest neighbors is calculated; then, the mean μ and standard deviation σ of these average distances for the entire point cloud or a local area are calculated; a distance threshold is set. Any point whose average neighborhood distance exceeds this threshold is identified as an outlier and removed. This step effectively eliminates scattered noise points, focusing on the true surface structure of the rail.
[0040] For each point, calculate its average distance to the K nearest zeros:
[0041] Where K is the number of neighborhood points detected for outliers. Let Pj be the average distance from point Pi to its K nearest neighbors, μd be the global average neighborhood distance, σd be the standard deviation of the neighborhood distance, α be the outlier detection threshold coefficient, which can be set to 1.0~3.0, and Pj be a single 3D point in the point cloud.
[0042] Step S23: The remaining point cloud set in the initial point cloud data is used as local point cloud data.
[0043] This step defines the set of points retained from the original initial point cloud after the preprocessing steps S21 and S22. These points are located within the effective area and are not outliers. This set is defined as the local point cloud data for the corresponding segment interval of the radar. This local point cloud data represents the cleaned, higher-quality 3D information of the rail surface within the radar's field of view and serves as the input data for subsequent fusion operations.
[0044] After steps S21-S23, the data collected by each lidar has been preprocessed. Then, steps S24-S29 will be used to fuse multiple local point cloud data to form overall point cloud data.
[0045] Step S24: Convert the local point cloud data and unify them into the global coordinate system.
[0046] This step is used to establish the first coordinate system. Each radar has its own local coordinate system when it is installed. In order to integrate the data from different radar scans into a coherent overall scene, it is necessary to transform all local point cloud data into a common global coordinate system.
[0047] This relies on the radar's precise calibration extrinsic parameters in the global coordinate system, namely the rotation matrix R and the translation vector T. These extrinsic parameters can be obtained during the initial system installation and preparation phase. Applying these extrinsic parameters to perform coordinate transformations on each point in each local point cloud ensures that all points are represented within the same global reference frame, thus laying the foundation for point cloud stitching.
[0048] Let the calibration parameters of the k-th radar be the rotation matrix and the translation vector, then we have:
[0049] Where Pglobal={P1,P2,.....,PN} represents the complete set of point clouds of all radars after coordinate transformation, registration and fusion in a unified global coordinate system, representing the three-dimensional shape of the rails in the entire reservoir area. Rk is the rotation matrix of the k-th radar, tk is the translation vector of the k-th radar, and Plocal represents the set of point clouds of the k-th radar in the local coordinate system. It is the effective point cloud after ROI filtering and outlier removal, and only contains reliable data of the rails within the current radar field of view.
[0050] Step S25: Perform point cloud registration based on the overlapping point clouds of two adjacent local point cloud data.
[0051] This step performs fine-tuning of the point cloud. Even after the initial coordinate transformation in S24, slight misalignment may still exist in the overlapping areas of point clouds from adjacent radar scans due to calibration errors or minor equipment deformation. This step aims to further and more accurately align two adjacent local point clouds.
[0052] The iterative nearest neighbor algorithm or its variants are typically used. This involves finding the nearest neighbor of a point in the target point cloud within the overlapping region of adjacent point clouds, forming a point pair. An optimal rigid body transformation is calculated by minimizing the distance between these point pairs. This transformation is iteratively applied, and the nearest neighbor search is repeated until convergence. This process significantly improves the alignment accuracy of adjacent point clouds at boundaries.
[0053] Step S26: In the overlapping area of two adjacent local point cloud data, calculate the weighted average coordinates of points in a neighborhood, and replace the original multiple points with the calculated average point to obtain global point cloud data.
[0054] This step requires point cloud fusion in the overlapping area. After S25 registration, adjacent point clouds contain a large number of points from different radars describing the same surface in the overlapping area, doubling the point cloud density within the stitched overlapping region. Directly retaining all points would lead to data redundancy and potential inconsistencies. Therefore, it is necessary to calculate the weighted average coordinates of spatially close points within the overlapping region. The weights can be based on the distance from the point to the radar or the radar's confidence level. The calculated weighted average point represents the best estimated location of the surface in that small area. This average point is then used to replace all the original points in the neighborhood that participated in the averaging.
[0055] This step significantly reduces the point density in the overlapping area, smooths the data, and integrates multi-view information, improving the accuracy and consistency of the point cloud at the fusion boundary, thus forming a preliminary fused global point cloud data.
[0056] Step S27: Define a three-dimensional voxel mesh in the global coordinate system and input the point cloud data from the global point cloud into the three-dimensional voxel mesh.
[0057] This step prepares the data for voxel downsampling. To further reduce the overall data volume of the global point cloud and make its distribution more uniform, voxel mesh filtering is used. This involves defining a 3D mesh covering the entire point cloud space in the global coordinate system. Each mesh cell is a small cube, or voxel. The mesh resolution (i.e., the side length of the voxel) is a key parameter and needs to be set according to the point cloud accuracy requirements and application scenario (such as the detail requirements of a rail surface). Then, each point in the global point cloud is traversed, and it is assigned to the corresponding voxel mesh based on its XYZ coordinates. Note that a voxel may contain zero, one, or more points.
[0058] Step S28: For each occupied voxel, calculate the weighted average of the points falling within the voxel to obtain the representative point of that voxel.
[0059] This step is used for in-voxel point cloud aggregation. For each voxel containing at least one point (i.e., a voxel with at least one point cloud), calculate the weighted average coordinates of all points falling within that voxel. The weights can be uniform or set according to the point attributes. The calculated weighted average point is used as the representative point of this voxel. This representative point is approximately located at the centroid of the point cloud cluster within that voxel.
[0060] Step S29: Use the set of all representative points as the overall point cloud data.
[0061] This step outputs the results. After processing in S28, each occupied voxel outputs only one representative point, and the set of representative points from all voxels constitutes the final overall point cloud data. This step greatly compresses the data volume while maintaining the main shape and structural features of the original point cloud, making the point cloud distribution more uniform and significantly improving the processing efficiency and robustness of subsequent segmentation and recognition algorithms. This overall point cloud data is the direct input to step S3.
[0062] Step S3: Segment the complete point cloud data to obtain the point cloud data of each long rail on the surface.
[0063] The core task of step S3 is to intelligently segment the overall point cloud data describing the entire scene generated in step S2, and accurately separate the independent point cloud clusters corresponding to each long steel rail stacked on the flatbed truck, i.e., the rail point cloud data. This process first filters out background and non-rail objects, such as the flatbed truck floor, supports, tools, and debris point clouds, to obtain candidate point clouds focused on the steel rail stack.
[0064] Next, using the Euclidean clustering algorithm based on KD-Tree efficient spatial indexing, the candidate point cloud is initially divided into multiple independent point cloud clusters that may correspond to a single rail or a local rail, based on the spatial proximity between points.
[0065] However, closely spaced rails may be clustered into a large cluster. Therefore, a fine segmentation based on normal vector analysis is introduced, which calculates the normal vector of each point within the cluster. When the angle between the normal vectors of adjacent points exceeds a preset angle threshold, they are identified as the boundaries of different rails and segmented.
[0066] To address the layering of stacked rails in the height direction and the potential breakage of point clouds due to occlusion, the point cloud is layered by height according to preset thickness parameters, and spatially continuous point clouds within the same height layer are merged to form a more complete candidate cluster.
[0067] Finally, strict screening thresholds are applied, such as rail length threshold (to eliminate excessively short off-rail segments), point cloud breakage threshold (allowing certain gaps but excluding invalid clusters with severe breaks), and rail cross-section threshold (to verify that the cross-section size and shape conform to the rail characteristics), to eliminate candidate clusters that do not meet the requirements. Finally, several rail point cloud data that accurately correspond to a single long rail are output, providing a basis for subsequent selection of target rails.
[0068] Specifically, step S3 includes sub-steps S31-S36.
[0069] Step S31: Filter out the background and non-railway object point clouds to obtain candidate point clouds.
[0070] This step is used for preliminary target extraction. Based on the physical characteristics of the long rails, such as height range, approximate location, and prior knowledge of geometry, rule-based or learning methods, such as height threshold filtering, planar model segmentation to remove the flatbed, and shape- or intensity-based classifiers, are used to identify and remove points in the overall point cloud data that clearly do not belong to the long rails.
[0071] These points may originate from the flatbed structure, the ground, surrounding equipment, scattered tools, or other debris. After removing these background and non-target object points, the remaining point cloud set is called the candidate point cloud, which mainly contains points from the surface of the stacked long rails, greatly focusing the target area and reducing interference in subsequent processing.
[0072] Step S32: Establish a KD-Tree data structure for the point cloud and set the neighborhood radius and minimum number of cluster points.
[0073] This step prepares the ground for spatial clustering. To improve the efficiency of subsequent neighborhood search and clustering algorithms, a KD-Tree spatial index data structure is established for the candidate point cloud. This data structure can quickly query the nearest neighbors or points within a radius of any point in space.
[0074] Meanwhile, two key clustering parameters are set: neighborhood radius, which defines the maximum spatial distance for determining whether two points belong to the same cluster, and should be slightly smaller than the minimum distance between two adjacent rails; and minimum cluster number, which defines the minimum number of points that an effective cluster must contain, and is used to filter out noise points or tiny fragments.
[0075] Step S33: Traverse the candidate point cloud and group points whose distance to each other is less than the neighborhood radius and satisfy the minimum number of cluster points into the same cluster to obtain multiple independent point cloud clusters.
[0076] Using the established KD-Tree, traverse every unvisited point in the candidate point cloud. Centering on the current point, search for all neighboring points within its radius. If the number of neighboring points plus the current point itself reaches or exceeds the minimum cluster size, mark these points as belonging to the same cluster, and recursively perform the same operation on their neighboring points, continuously expanding the cluster. If the number of neighboring points is insufficient, the current point may be considered noise or small fragments and temporarily not classified.
[0077] After the traversal is complete, all interconnected point sets that have reached the minimum number of points are aggregated into independent point cloud clusters. At this point, each cluster may correspond to a complete rail, a part of a rail, or multiple closely connected rails.
[0078] Step S34: Set an angle threshold, calculate the normal vector of each point in the independent point cloud cluster, and if the angle between the normal vectors of adjacent points exceeds the angle threshold, they are determined to be different rail boundaries and are segmented.
[0079] For the large, independent point cloud clusters that may contain multiple rails obtained from S33, segmentation is performed using the local geometric features of the point cloud.
[0080] First, the normal vector of each point within the cluster is calculated, typically by fitting a local plane of points in the neighborhood of that point or using principal component analysis (PCA). The normal vector characterizes the orientation of the local surface where the point is located.
[0081] Then, a key angle threshold is set. Points within the cluster are traversed, and the angle between the normal vectors of adjacent points is compared. If the angle between the normal vectors of two points exceeds this threshold, it means that the surface orientation has changed drastically, such as transitioning from the top surface of one rail to the side surface of another rail, or from the side surface to a gap; in this case, the two points are determined to belong to different rail entities.
[0082] At these boundary points, the original large cluster is divided into two or more new sub-clusters. This step effectively separates closely spaced or partially contacting rails.
[0083] Step S35: Set the thickness parameters, and divide the point cloud into layers according to height. Merge consecutive point clouds within the same layer to obtain several candidate clusters.
[0084] Considering that the rails are stacked in layers, and that lower rails may be occluded by upper layers, leading to broken or incomplete point clouds, a thickness parameter is set, slightly larger than the height of a single rail but smaller than the interlayer spacing. The entire candidate point cloud is divided into multiple consecutive thin layers along the height direction according to the thickness parameter. Within each thin layer, a spatial proximity-based method, such as Euclidean clustering, is applied again, using a small neighborhood radius to identify spatially continuous point cloud fragments within that layer. Then, spatially continuous point cloud fragments belonging to the same rail in different layers are merged into a more complete candidate cluster. This step aims to reconstruct the broken rail point cloud caused by stacking occlusion and to form a candidate representation for each rail as complete as possible.
[0085] Step S36: Set a filtering threshold and remove candidate clusters that do not meet the filtering threshold to obtain several rail point cloud data corresponding to long rails.
[0086] The candidate clusters obtained through the preceding steps may contain some invalid targets, such as residual noise blocks, structural fragments, severely fractured rail sections, or targets that do not conform to the characteristics of rails.
[0087] Filtering can be achieved by setting one or more screening thresholds. For example, the span of candidate clusters along their length can be calculated to eliminate clusters significantly shorter than the standard rail length (e.g., fragments). Another approach is to evaluate the point cloud continuity of candidate clusters; if a cluster has excessively large gaps along its length, it is considered not a complete, safe-to-lift rail and is therefore eliminated. Yet another method is to sample several cross-sections at different locations within the candidate cluster and analyze the point cloud distribution of these cross-sections, including width, height, and approximate rectangular or I-shaped contours. If the cross-sectional dimensions or shape differ significantly from the standard rail cross-section, it is eliminated.
[0088] Only candidate clusters that simultaneously meet all the screening thresholds are ultimately confirmed as valid rail point cloud data corresponding to a complete long rail. This data will then be passed to step S4 for target selection and capture point calculation.
[0089] Step S4: Determine the rail point cloud data corresponding to the uppermost long rail, and select one of the uppermost long rails as the operation object.
[0090] The goal of this step is to intelligently identify the set of long rails currently located on the top layer of the stack from the point cloud data of multiple rails obtained in step S3, and select one of them as the object to be lifted in this operation. This is a crucial step to ensure that the lifting operation starts from the top layer and avoids interfering with the lower rails.
[0091] First, a reasonable height tolerance threshold is set to handle possible incomplete horizontality, local deformation, or minor errors in point cloud measurement that may exist in rail stacking.
[0092] Next, the average height of the point cloud data corresponding to each rail is calculated, which can be taken as the average Z-coordinate of all points. Then, all rail point clouds are sorted in descending order based on these average heights to initially identify the rail with the highest position. Considering that stacked rails may have similar heights due to unevenness or point cloud errors, the system categorizes the rail with the largest average height, as well as the point cloud data of all rails whose average height differs from its average height within the height tolerance threshold, into the highest-layer rail set.
[0093] Finally, one rail is selected from this top-level set. This selection can be based on factors such as the most complete point cloud, the most centered rail, or a preset strategy, and is officially designated as the object to be grabbed and lifted in this operation. Alternatively, the operator can manually select the long rails according to their sequence. Once all rails in this layer have been lifted, the top-level set is automatically re-acquired, and the next lifting cycle begins.
[0094] Step S41: Set the height tolerance threshold.
[0095] The height tolerance threshold is a predefined positive value, with units consistent with point cloud coordinates, such as millimeters. Its purpose is to define an allowable range of height differences to address situations where rail stacks are not perfectly flat in real-world scenarios. For example, due to slight bends in the rails themselves, local unevenness during stacking, system errors or noise in point cloud acquisition, even rails in the same layer may have slightly different average heights calculated from their point cloud data.
[0096] This threshold should be greater than the expected measurement error and the local deformation of the rail, but less than the theoretical layer height between two layers of rails. Setting this threshold appropriately can effectively prevent rails that are in the same physical layer but have slight height differences from being misclassified as belonging to different layers.
[0097] Step S42: Calculate the average height of each rail point cloud data.
[0098] For each set of rail point cloud data output in step S3, calculate the arithmetic mean of the Z-axis coordinates (height coordinates) of all points in that point cloud set. That is: Z_avg = (Z1 + Z2 + ... + Zn) / n, where n is the total number of points in the rail point cloud. The average height Z_avg represents the approximate average height of the rail in the global coordinate system and is the main basis for determining its stacking layer. Calculating the average value can smooth out local unevenness in the point cloud, obtaining a more stable height representation.
[0099] Step S43: Sort the point cloud data of each rail in descending order based on the average height.
[0100] All rail point cloud data and their corresponding calculated average height Z_avg are compiled into a list. This list is then sorted from largest to smallest Z_avg value (i.e., from highest to lowest). The rail point cloud data at the beginning of the list has the highest average height, theoretically representing the top layer of rails. This sorting result forms the basis for the next step of identifying the highest-layer set.
[0101] Step S44: Take the rail point cloud data with the largest average height and the rail point cloud data with a difference of less than the height tolerance threshold as the highest layer rail set.
[0102] Extract the rail point cloud data set with the largest Z_avg value from the sorted list. Then, iterate through the subsequent rail point cloud data sets in the list and determine whether the absolute difference between their Z_avg values and this largest Z_avg value is less than or equal to the height tolerance threshold set in step S41.
[0103] If the difference is less than or equal to the threshold, the rail is considered to be on the same physical stack layer as the highest rail, i.e., the top layer, and is added to the set of rails in the top layer. This set contains all long rails currently on the top layer of the stack, which may be one or more.
[0104] Step S45: Select one set of rail point cloud data from the highest layer rail set as the operation object.
[0105] From the rail point cloud data contained in the highest-level rail set, a set is selected as the specific target, i.e., the work object, for this hoisting operation. The selection strategy can be a simple sequential selection (such as from left to right, from front to back), based on point cloud completeness (selecting the most numerous and continuous point cloud points), based on location (selecting the most central or closest to the starting point), or based on a scheduling strategy (such as prioritizing the hoisting of rails with specific numbers). The selected set of rail point cloud data will be used in step S5 to calculate the specific grab point coordinates.
[0106] If all the long rails corresponding to the point cloud data of all rails in the highest layer rail set have been hoisted, then the highest layer rail set is reacquired.
[0107] Step S5: Based on the corresponding rail point cloud data of the work object and the position of the hoisting device, obtain the coordinates of multiple grab points.
[0108] In this embodiment, the length of the storage area is taken as the X-axis, the height as the Z-axis, and the plane perpendicular to the XZ-axis is taken as the Y-axis.
[0109] The core objective of step S5 is to accurately calculate the three-dimensional coordinates (X, Y, Z) required for each cooperating hoisting device to grab the long rail based on the point cloud data of the selected work object rail.
[0110] First, the point cloud of the work object is projected and its dimensions reduced on the XY plane, ignoring height information and focusing on the actual direction of the rail in the horizontal plane. Next, curve fitting, such as splines or RANSAC, is performed on these two-dimensional projected points on the XY plane to obtain a continuous curve describing the horizontal centerline of the rail. Then, based on the number and spacing strategy of the lifting devices, the grab position coordinates X_i of each lifting device in the length direction are determined on this centerline curve. For the X coordinate of each grab point, a width tolerance band is set in the adjacent Y-axis direction. The median Y coordinate of the point cloud within this tolerance band is calculated, and this is used as the more robust and accurate final grab point Y-axis coordinate (Y_grab), i.e., the center position of the rail width.
[0111] Subsequently, a small XY plane neighborhood is defined near the grab point (X_grab, Y_grab), and the maximum Z coordinate (Z_max) of the original 3D point cloud within this neighborhood is extracted, representing the highest point on the rail surface at that location.
[0112] Finally, considering the required safety clearance of the lifting device, the preset lifting device clearance value (C_gap) is added to Z_max to obtain the final Z-axis coordinate of the grab point (Z_grab = Z_max + C_gap). The final output is the precise (X_grab, Y_grab, Z_grab) command corresponding to each lifting device.
[0113] Step S51: Project the object onto the XY plane to reduce its dimensionality.
[0114] Ignoring the Z-coordinate value of each point in the 3D point cloud of the work object, and retaining only its X and Y coordinates, all points are projected onto the XY plane to form a 2D point set (X, Y). This eliminates the interference of height changes and clearly shows the actual path of the rail on the ground plan of the storage area, such as a straight line, a curve, or an S-shape.
[0115] Step S52: Fit the centerline curve to the rail point cloud data of the reduced-dimensional object.
[0116] Based on the two-dimensional point set (X, Y) obtained by projection, curve fitting algorithms, such as polynomial fitting, B-spline curves, and robust RANSAC, are applied to fit a smooth, continuous curve that best represents the horizontal orientation of the rail. This centerline curve describes the continuous trajectory of the rail from its starting point to its ending point in both width (X) and length (Y) directions, and is the basis for planning the horizontal position of the lifting points.
[0117] Step S53: Determine the X-axis coordinates of the grab points of each hoisting device on the centerline curve.
[0118] Based on the number of hoists involved in the lifting operation and the preset strategy, N points are determined on the centerline curve fitted in step S52. These N points correspond to the rail length position that each lifting device should grab. For each such point, its X-coordinate value (X_i) is read. This X_i value represents the target coordinate of the lifting point in the length direction (X-axis). At the same time, this point also has a corresponding Y-coordinate value on the centerline, but this is only the theoretical value of the centerline; the precise Y-coordinate of the rail width center will be calculated in S55.
[0119] Step S54: Select the width tolerance zone with the X-axis coordinate of the grab point as the center.
[0120] For each grab point determined in step S53, its X-coordinate (X_i) and corresponding length coordinate (Y_i) need to be refined in the original 3D point cloud to achieve precise positioning. The system defines a small interval along the length direction, around the Y_i coordinate of that point, called the "width tolerance band" (named for its use in refining the width direction coordinate X, although the search occurs in the length direction Y). This Y-direction interval defines the range of point clouds used to calculate the precise X_grab. (The tolerance band name "width" refers to its purpose; the actual search direction is the Y-axis).
[0121] Step S55: Calculate the median Y-coordinate of the point cloud within the width tolerance band and use it as the Y-axis coordinate of the capture point.
[0122] Extract all original 3D point clouds that fall within the width tolerance band defined in step S54 and whose X-coordinates are within a small neighborhood of X_i. Calculate the median of the Y-coordinates of these selected point clouds. The median is used because it is insensitive to outliers in the Y-direction of the point cloud, such as edge noise or adjacent rail interference points, and can more stably represent the center position of the rail in the width direction at that specific length location. Use this calculated median Y-coordinate as the final, accurate Y-axis coordinate (Y_grab) of the grab point.
[0123] Step S56: Set the XY coordinate domain and extract the maximum Z-axis value of the point cloud within the XY coordinate domain.
[0124] Now that the precise horizontal coordinates of the grab point have been determined, define a small rectangular or circular neighborhood on the XY plane centered at the point (X_grab, Y_grab). Extract all original 3D point clouds falling within this XY neighborhood. Among these points, find the one with the largest Z-coordinate value.
[0125] The Z_max value represents the highest point (top surface of rail head) on the rail surface near the grab point (X_grab, Y_grab), used to ensure the safe descent of the spreader.
[0126] Step S57: Set the lifting gear clearance. The sum of the maximum value of the Z-axis and the lifting gear clearance is the Z-axis coordinate of the grab point.
[0127] A positive gap value C_gap is preset, representing the minimum safe distance that the lifting device, such as the bottom of the clamp or hook, needs to maintain between itself and the highest surface of the rail to avoid collisions or to allow for operational space. The final Z-axis coordinate (Z_grab) of the gripping point is calculated using the formula: Z_grab = Z_max + C_gap. This command instructs the lifting device to descend to a position C_gap above the highest point of the rail surface, and then execute the gripping action. At this point, the precise three-dimensional gripping point coordinates (X_grab, Y_grab, Z_grab) for each lifting device have been calculated.
[0128] Step S6: Multiple hoisting devices work together to grab and hoist the work object according to the corresponding grab points.
[0129] In this step, each hoisting device simply needs to move according to the coordinates of its calculated grab point and grab and hoist the work object. After hoisting, the corresponding long rails are placed in the storage area for stacking.
[0130] like Figure 2 As shown, the long rail tracking and hoisting system of the present invention includes a gantry crane, a lidar, and a host computer.
[0131] There are multiple gantry cranes, which are set along the length of the warehouse area. The lidar is set on the gantry cranes and faces the long rail car. The host computer communicates with the lidar and is electrically connected to the gantry cranes. The host computer is used to receive the data collected by the lidar and send control commands to the gantry cranes. The host computer is embedded with the above-mentioned long rail track finding and hoisting method.
[0132] In a specific embodiment, the system comprises 32 spans of hoisting devices, each of which can be a hoist crane. Each span forms a gantry structure, consisting of a main beam on each span, with the hoist crane movably mounted on the main beam. Eight lidar sensors are installed on each of the eight main beams, numbered 2, 6, 10, 14, 18, 22, 26, and 30, for a total of eight lidar sensors. These sensors are used to scan the 3D point cloud data of the long rails on each layer of the long rail transport vehicle. The point cloud data is transmitted via Ethernet to an industrial control computer installed in the dispatch room. The aforementioned algorithm is embedded in the industrial control computer to calculate the address of each layer of long rails and convert it to the hoist crane's positioning coordinate system. Finally, the address of each layer of long rails is transmitted to the PLC control system for precise address-based rail finding by each hoist crane, achieving automatic rail finding.
[0133] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A method for track-finding and hoisting long steel rails, characterized in that, The storage area is divided into multiple segments along its length, and a lidar sensor is installed above the long railcar track in each segment. The track-finding and hoisting method includes the following steps: S1 uses multiple lidars to collect initial point cloud data of multiple long rails within the corresponding segmented sections. S2 preprocesses the initial point cloud data collected by each lidar and merges them to form overall point cloud data; S3 segments the complete point cloud data to obtain the point cloud data of each long rail on the surface. S4 determines the point cloud data of the rail corresponding to the uppermost long rail and selects one of the uppermost long rails as the operation object. S5 obtains the coordinates of multiple grab points based on the corresponding rail point cloud data of the work object and the position of the hoisting device; The S6 consists of multiple hoisting devices that work together to grab and hoist the work object according to the corresponding grabbing points.
2. The method for track finding and hoisting long steel rails as described in claim 1, characterized in that, In step S2, the initial point cloud data collected by each lidar is preprocessed, including the following steps: S21 sets a point cloud retention area and removes points in each initial point cloud data that are outside the point cloud retention area, while the long steel rail is located within the point cloud retention area; S22 sets the outlier detection threshold and removes points that meet the outlier detection threshold; The remaining point cloud set in the initial point cloud data of S23 is used as local point cloud data.
3. The method for track finding and hoisting long steel rails as described in claim 2, characterized in that, In step S2, the overall point cloud data is fused, including the following steps: S24 transforms the various local point cloud data and unifies them into the global coordinate system; S25 performs point cloud registration based on the overlapping point clouds of two adjacent local point cloud data; S26 calculates the weighted average coordinates of points in a neighborhood in the overlapping area of two adjacent local point cloud data, and replaces the original multiple points with the calculated average point to obtain global point cloud data. S27 defines a three-dimensional voxel mesh in the global coordinate system and inputs the point cloud data from the global point cloud into the three-dimensional voxel mesh; S28 For each occupied voxel, calculate the weighted average of the points falling within the voxel to obtain the representative point of that voxel. S29 treats the set of all representative points as the overall point cloud data.
4. The method for track finding and hoisting long steel rails as described in claim 1, characterized in that, Step S3 includes the following sub-steps: S31 filters out the background and non-railway object point clouds to obtain candidate point clouds; S32 establishes a KD-Tree data structure for the point cloud and sets the neighborhood radius and minimum number of cluster points; S33 traverses the candidate point cloud and groups points whose distance to each other is less than the neighborhood radius and satisfy the minimum number of cluster points into the same cluster, thus obtaining multiple independent point cloud clusters; S34 sets an angle threshold and calculates the normal vector of each point in an independent point cloud cluster. If the angle between the normal vectors of adjacent points exceeds the angle threshold, they are determined to be different rail boundaries and are segmented. S35 sets the thickness parameter and layers the point cloud according to height, merging consecutive point clouds in the same layer to obtain several candidate clusters; S36 sets a filtering threshold, removes candidate clusters that do not meet the filtering threshold, and obtains several rail point cloud data corresponding to long rails.
5. The method for track finding and hoisting long steel rails as described in claim 4, characterized in that, The screening thresholds include at least one of the rail length threshold, point cloud fracture threshold, and rail cross-section threshold.
6. The method for track finding and hoisting long steel rails as described in claim 1, characterized in that, Step S4 includes the following sub-steps: S41 sets the height tolerance threshold; S42 calculates the average height of each rail point cloud data; S43 sorts the point cloud data of each rail in descending order based on the average height. S44 uses the rail point cloud data with the largest average height, and the rail point cloud data with a difference of less than the height tolerance threshold, as the highest layer rail set; S45 selects one set of rail point cloud data from the highest layer of rail data as the target for operation.
7. The method for track finding and hoisting long steel rails as described in claim 6, characterized in that, If all the long rails corresponding to the point cloud data of all rails in the highest layer rail set have been hoisted, then the highest layer rail set is reacquired.
8. The method for track-finding and hoisting long steel rails as described in claim 1, characterized in that, With the length of the storage area as the X-axis, the height as the Z-axis, and the plane perpendicular to the XZ-axis as the Y-axis, step S5 includes the following sub-steps: S51 performs dimensionality reduction by projection on the XY-axis plane of the work object; S52 fits the centerline curve to the rail point cloud data of the reduced-dimensional work object; S53 determines the X-axis coordinates of the grab points of each hoisting device on the centerline curve.
9. The method for track finding and hoisting long steel rails as described in claim 8, characterized in that, Step S5 further includes the following sub-steps: S54 selects the width tolerance zone centered on the X-axis coordinate of the grab point; S55 calculates the median Y-coordinate of the point cloud within the width tolerance band and uses it as the Y-axis coordinate of the grab point; S56 sets the XY coordinate domain and extracts the maximum Z-axis value of the point cloud within the XY coordinate domain; S57 sets the spreader clearance. The sum of the maximum Z-axis value and the spreader clearance is the Z-axis coordinate of the grab point.
10. A track-finding and hoisting system for long steel rails, characterized in that, This includes a gantry crane, lidar, and a host computer, among which... There are multiple gantry cranes, which are installed along the length of the warehouse area; The lidar is installed on a large number of the gantry cranes and faces the long rail car; The host computer communicates with the lidar and is electrically connected to the gantry crane. The host computer is used to receive data collected by the lidar and send control commands to the gantry crane. The host computer incorporates the long rail tracking and hoisting method according to any one of claims 1-9.