US20260103852A1
Regression of Rail Alignments from Survey Points
Publication
Application
Classifications
IPC Classifications
CPC Classifications
Applicants
Autodesk, Inc.
Inventors
Flavia Dobrescu, Wojciech Garczewski, Qiang Wu, Valentin R. Koch
Abstract
A method and system provide the ability to align a railway track. Survey representing the track are obtained. A centerline of the railway track and curvatures are autonomously computed based on the survey points. Geometry is detected based on the curvature plot and provides for geometry types including a tangent, a spiral, and a curve. An alignment is displayed and includes a curvature plot that includes the detected geometry with each geometry type displayed in a visually distinguishable manner. Parameters of the detected geometry are changed and the alignment is dynamically updated. The alignment is then exported to a physical machine that aligns the railway track consistent with the alignment.
Figures
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001]This application claims the benefit under 35 U.S.C. Section 119(e) of the following co-pending and commonly-assigned U.S. provisional patent application(s), which is/are incorporated by reference herein:
[0002]Provisional Application Ser. No. 63/706,494, filed on Oct. 11, 2024, with inventor(s) Valentin R. Koch, entitled “Detection of Alignment Geometries from Survey Points,” attorneys' docket number 30566.0635USP1.
BACKGROUND OF THE INVENTION
1. Field of the Invention
[0003]The present invention relates generally to railway systems and design, and in particular, to a method, apparatus, system, and article of manufacture for alignment regression of railways.
2. Description of the Related Art
[0004](Note: This application references a number of different publications as indicated throughout the specification by reference numbers enclosed in brackets, e.g., [x]. A list of these different publications ordered according to these reference numbers can be found below in the section entitled “References.” Each of these publications is incorporated by reference herein.)
[0005]Railways are subject to heavy wear and tear, which affects riding comfort and results in material stress and safety issues. Laser surveying is used to record points along the deformed rails. Engineers then use design software to find a best-fit alignment geometry that passes through these survey points. This task is also known as alignment regression (or horizontal regression analysis). The corrected alignment geometry is fed into the computer of a heavy tamping machine train, which then moves along the tracks. The tamper lifts the rails out of the ballast and moves them vertically and horizontally to align with the best-fit alignment. This periodic maintenance saves rail companies from the expensive reconstruction of railways. In addition, there may be other use cases for “regression analysis” including verifying values of rail superelevation or maximum speed, railway upgrade, railway construction, and digitalization of the existing railway tracks.
[0006]The alignment regression task is quite complex. Traditional/conventional computer aided design (CAD) approaches are manual, where a user manually examines/inspects the survey points from a 2D (two-dimensional) perspective and then visually detects each segment type (straights, curves, and spirals). For example, the user manually tries to fit tangents to sections where points form a straight line, and arcs where they think a curve lies. They then use CAD tools to place transition curves (spirals) between the tangents and curves. While existing CAD tools may provide some level of automatization of spiral segment detection, such tools require laborious adjustments. For example, such tools may require manual adjustments of the tangents and curves to make the spirals fit. This traditional approach can take from hours to multiple days, depending on the length and complexity of the alignment. Further, users working on rail and roadway rehab projects have identified limitations with such approaches including low time efficiency, performance and lack of flexibility of the output. Further, prior art solutions do not allow users to inspect and improve results with small cognitive load.
[0007]To better understand the problems with prior art alignment regression, a description of prior art approaches may be useful.
[0008]AUTODESK'S™ CIVIL 3D™ application currently provides a best-fit alignment tool. According to user feedback, the tool does not perform consistently, and rail users generally avoid using it. The few rail engineers who use the CIVIL 3D™ application for alignment regression rely on other existing tools to fit single arcs or tangents to a selection of points. This results in disconnected geometries that the user connects by placing spirals (clothoids) between the geometries. The entire task is quite manual and very time-consuming. The BENTLEY™ company offers OPENRAIL™ software (available at www.bentley.com/software/openrail-designer to their customers, which provides additional tools for alignment regression. One of these tools is a curvature plot, which allows an engineer to better see at which survey point a geometry (tangent, spiral, arc) starts or ends. However, the recent rewrite of OPENRAIL™ has resulted in unhappy customers who are now looking for alternatives.
SUMMARY OF THE INVENTION
[0009]Embodiments of the invention provide the ability to compute and use curvature information between the survey points. Curvature can be seen as the rate of change (or derivative) of an alignment. This rate of change is zero on a tangent and a constant negative or positive value on a curve. The spirals in-between tangents and curves have a linear rate of change. Depicting the curvature or rate of change between the survey points in a separate curvature graph (also referred to as a radius graph) allows the user to see where a tangent, curve, or spiral starts or stops (thereby significantly accelerating the process of identifying mentioned entities). This helps to make the manual process much faster.
[0010]Embodiments of the invention provide a new best-fit tool that makes use of a curvature plot. The curvature plot is computed from the survey points, where station and curvature pairs are assigned to one or multiple survey points to form the plot. In embodiments of the invention, an algorithm attempts to detect the various geometries automatically from this new curvature plot and presents the user with a connected/unified alignment. The user is then able to correct and edit the automatic detection. The final alignment may be further adjusted by an optimization algorithm to reduce (i.e., minimize) the distance/offset from the alignment to the survey points. The result is a best-fit alignment that is not only closer to manual methods but also offers an automation that saves users time in the order of days.
- [0012]Moving Average filter computed on the curvature plot,
- [0013]L1 Regularization on the curvature plot.
- [0015]Linear regression, dynamic programming, and statistical checks such as median, mean, quantiles, Cook's distance, leverage, etc. One or more thresholds may be used for these checks, which can be adjusted by the user to influence the result.
- [0016]Machine Learning models such as Convolutional Neural Networks (CNN).
[0017]The start and end points of the detected geometries are then provided to an alignment math solver, which creates the connected alignment geometry with the help of spiral solvers or other geometry solvers. Alternatively, it returns an unconnected alignment and marks the locations where geometries cannot be connected smoothly. Thereafter, the connected alignment geometry is exported to a physical machine that aligns the railway track consistent with the alignment.
BRIEF DESCRIPTION OF THE DRAWINGS
[0018]Referring now to the drawings in which like reference numbers represent corresponding parts throughout:
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
DETAILED DESCRIPTION OF THE INVENTION
[0029]In the following description, reference is made to the accompanying drawings which form a part hereof, and which is shown, by way of illustration, several embodiments of the present invention. It is understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.
Overview
[0030]Embodiments of the invention provide a workflow that incorporates two new concepts: firstly, it facilitates the automatic detection and creation of the continuous alignment, and secondly, it allows the user to modify and alter the alignment geometry, while being simultaneously guided by displayed meta information such as curvature and offset distance to survey points—all combined within the same view. In embodiments of the invention, detection may be conducted using statistical properties or through machine learning processes. Depending on the accuracy, the detection will already undertake a significant portion of the traditional workflow, which will save time. Where the detection is imprecise, the user can swiftly edit and rectify the alignment using the combined alignment, curvature, and offset graph view.
[0031]Geometries are visualized in both the curvature and the alignment preview, enabling a user to rapidly see where entities start and end. The alignment's geometries can be visualized using different colors in the radius graph and on the real alignment plot.
[0032]Furthermore, geometries can be displayed in an alignment table, which could facilitate easy editing of start and end points, along with other geometry parameters. The tables may also be utilized for verification of results by inspecting the offset values between surveyed points and regression alignment geometries. Additionally, they may be used to exclude erroneous points or assign weights to the points.
- [0034]Modern engine that identifies lines, curves and spirals;
- [0035]A streamlined, iterative process that allows users to easily refine results;
- [0036]Generation of a design-ready CAD application alignment; and
- [0037]Generation of detailed skew reports
Process Workflow
[0038]
[0039]At step 104, the imported data is organized/prepared. For example, the data may be prepared using preferred presets for the purpose of a particular project. Depending on the context, such settings may be made according to standards of a user's design firm, national standards, or individual preference. In any case, the choices made at this step have the role customize the characteristics of the alignment that will be output. The order of the workflow's steps do not have a defining role over the concept. For instance, many of the settings (e.g., naming the geometry) may also be made at a later point in the process without altering the concept. As an example, within an “alignment settings” selection, the user may decide on presets that fine-tune the final alignment including aspects such as the name of the resulting object, the layer where the alignment will be placed, and/or the station numbering convention (e.g., distance along the alignment).
[0040]At step 106, the centerline of the path(s) is (autonomously—i.e., without any additional user input) computed (based on the survey points). In this regard, survey points may represent one of the rail tracks or the centerline between two tracks.
Curvature Computations 108
[0041]At step 108, the curvatures are (autonomously) computed. Such computing may include plotting the curvatures on a curvature plot. More specifically, for each consecutive triplet of survey points, an arc is placed over the triplet, and the curvature of this arc is (autonomously) computed. That curvature is then assigned to one or more of the survey points in the triplet, and a station value that may represent a distance from the start or end of the alignment is assigned to that curvature value. The curvature plot may then be created and contains new points formed by the station and curvature values.
[0042]Different methods may be chosen to compute the curvature from the three points. Two commonly used ones are versine curvature and menger curvature.
Versine Curvature
[0043]Consider the points A, B, and C that form a triplet. Furthermore, consider the point D that lies perpendicular to B on the line segment from A to C. We define the distances:
where ∥·∥2 is the Euclidean distance. Then the radius R of the circle that circumscribes the three points A, B, and C can be computed by the Versine formula:
The curvature is then just the reciprocal of R. This method to compute curvature is an approximation to the real curvature, which is popular among surveyors for its simplicity.
Menger Curvature
[0044]Consider the points mentioned above. Furthermore, consider the area S of the triangle formed by A, B, and C. Then the Menger Curvature can be calculated by
Curvature Plot Smoothing
Moving Average
[0046]For the moving average, we use a moving window of size k and replace the points in the curvature plot 200 by (ti, xi), i=1,2, . . . , n−k, where
[0047]In this case, the last k points are truncated or replaced by a fixed value. The moving average can be calculated similarly by truncating or fixing the first k points, or by truncating or fixing on both sides up to k points.
L 1 Regularization
[0048]Consider the three consecutive curvature points (t1,y1), (t2,y2), (t3,y3). Let
and let ∥·∥ be the L1 norm defined by
where ν is a vector of length n, and |·| denotes the absolute value. Then the grade change minimization between the three points can be stated as
[0049]Expanding this to n points in a curvature plot can be stated as
The problem can be written in matrix form as
Geometry Detection 110
[0051]At step 110, geometries are detected in the curvature plot 200. Such detected geometry includes geometry types that consist of a tangent, a spiral, and a curve. The smoothed or un-smoothed curvature plot 200 can be regarded as a signal on an x, y plot. The x-axis represents the stations or distance from the beginning or another marker point of the alignment, and the y-axis represents the curvature value at that station. For points on tangents 202, curvature values are around zero, whereas for arcs or curves 204, the values are non-zero (positive or negative) but stay constant along the stations that belong to the curve. Points between curves and tangents usually rise or fall linearly, indicating a spiral 206 or clothoid. In other terms, the curvature plot 200 represents the mathematical derivative of the alignment geometries 202-206.
[0052]As mentioned above, the automated geometry detection 110 of embodiments of the invention may be based on a sliding window of arbitrary size k, that reads in k consecutive points (ti, xi) from the curvature plot 200. The size k could be chosen as a small number or include all points of the curvature plot 200. An analysis method is then run for the points in the window.
[0053]Two different approaches may be utilized to detect geometry at step 110—a statistical analysis approach and a machine learning approach. Both approaches are described in detail below.
Statistical Analysis
[0054]
[0055]In this regard, the algorithm 304 is run for each segment left (as determined at step 306) in the curvature plot. Once the algorithm 302 has divided the curvature plot into all of the segments S, the process continues.
[0056]At step 308, each segment s E S is then analyzed to determine its geometric properties. In this regard, for each segment/tangent, and statistical measures (e.g., the slope, median, and quartiles) are obtained. More specifically, the slope m of each segment is calculated, and statistical measures such as the median μ1/2, lower quantile ql, and upper quantile qu of the curvature values are obtained. Based on these measurements/geometric properties, the method classifies each segment as either a tangent, curve, or spiral.
[0057]A determination is made at step 310 regarding whether the slope is flat or not (i.e., whether it is below a predefined threshold). If the slope of a segment is below a predefined threshold ε, the segment is considered flat (and the process continues to
[0058]As illustrated in
[0059]If the segment is longer than the minimum spiral, a determination is made at step 320 regarding whether the segment is on a tangent. Thereafter, further checks of the median (via steps 322-328) and quantiles (via steps 330-336) help distinguish between these two geometries. More specifically, if not on a tangent (as determined at step 320), a determination is made at step 322 regarding whether there are opposite sign quartiles or a small median. If the quartile signs are not opposite or the median is not small, it is determined that the segment is on the previous curve at step 324. However, if the quartiles have opposite signs or there is small median, the curve geometric segment is ended at step 326 and the tangent geometric segment is started at step 328.
[0060]Returning to step 320, if the segment is on a tangent, a determination is made at step 330 regarding whether the quartiles have the same sign. If not, it is determined that the segment is on a previous tangent at step 332. If the quartiles have the same sign, the tangent segment is ended at step 334, and a new curve geometric segment is started at step 336.
[0061]Returning to
[0062]If the segment was on a spiral before (as determined at step 338), a determination is made at step 350 regarding whether a significant spiral change has happened. If not, the process continues with the next segment (back to
[0063]The method iteratively processes (via steps 306) all points in the curvature plot until no more points are left. It tracks previous segments to connect them with segments in subsequent windows if they form the same geometry. Segments representing spirals may be merged to form a single spiral. The method also keeps track of consecutive spirals and removes or inserts curves where necessary.
[0064]In view of the above,
| TABLE A |
|---|
| Require: Curvature Plot, ε |
| 1 | repeat |
| 2 | Read k points for Tim |
| 3 | Run Bellman to obtain segments S |
| 4 | for all s∈S do |
| 5 | Read curvature values C from s |
| 6 | m ← slope of s |
| 7 | μ1/2 ← median of C |
| 8 | qu ← an upper quantile of C |
| 9 | ql ← a lower quantile of C |
| 10 | if |m| ≤ ε then |
| 11 | if previous s was a spiral? Then |
| 12 | Add a spiral and start tangent or curve. |
| 13 | else |
| 14 | if s is longer than some minimum spiral length? Then |
| 15 | if previous s is a tangent? Then |
| 16 | if sign(qu)≠sign (ql) then |
| 17 | Add tangent and start curve. |
| 18 | else |
| 19 | Stay on previous tangent. |
| 20 | end if |
| 21 | else |
| 22 | if μ1/2 is small or sign(qu)≠sign (ql) then |
| 23 | Add a curve and start tangent. |
| 24 | else |
| 25 | Stay on previous curve. |
| 26 | endif |
| 27 | endif |
| 28 | endif |
| 29 | endif |
| 30 | else |
| 31 | if previous s was a spiral? Then |
| 32 | if significant spiral change happened? Then |
| 33 | Add a spiral and start new spiral. |
| 34 | else |
| 35 | μ*1/2 ← median of previous C |
| 36 | q*u ← an upper quantile of previous C |
| 37 | q*l ← a lower quantile of previous C |
| 38 | if μ*1/2 is small or sign (q*u) ≠sign (q*l) then |
| 39 | Add a tangent and start spiral. |
| 40 | else |
| 41 | Add a curve and start spiral. |
| 42 | endif |
| 43 | endif |
| 44 | endif |
| 45 | endif |
| 46 | end for |
| 47 | until no more points are left |
Machine Learning Analysis
[0065]In a machine learning approach, the system performs classification of sequences of survey points to detect the railway geometry. For each survey point, it produces one of four labels in a 4-class system: Tangent (T), Curve (C), Spiral Increasing (SI), and Spiral Decreasing (SD). These classifications feed a geometry solver that generates a connected best-fit alignment.
[0066]From survey points (x, y) we compute bearing (direction of travel), station (distance along the track), and curvature (how sharply the track bends). Curvature may use the versine or Menger formulas (as described above). For each of the survey points, based on the signals, we then build input vectors using named feature modes that describe which signals are included (in that survey point):
| • | sc: [station, curvature] | ||
| • | scC: [station, curvature, |curvature|] (adds absolute | ||
| curvature for clearer spiral boundaries) | |||
| • | xysc: [x, y, station, curvature] | ||
| • | xysC: [x, y, station, |curvature|] | ||
| • | xycC: [x, y, curvature, |curvature|] | ||
| • | xybc: [x, y, bearing, curvature] | ||
| • | xyscC: [x, y, station, curvature, |curvature|] | ||
| • | xybsc: [x, y, bearing, station, curvature] | ||
| • | xybscC: [x, y, bearing, station, curvature, |curvature|] | ||
[0067]Any of these feature modes can be used as input to the classification model; the choice depends on which signals are available and the desired robustness.
[0068]The inputs are then normalized so the model sees similar value ranges during training and in use. For curvature, a symmetric percentile scaling may be used: typical large positive and negative curvature values are estimated (for example the 95th percentile magnitudes) across data, then positives and negatives are scaled by their own constants and clipped to [−1,1]. This keeps left/right bends balanced and helps the model recognize spirals. Standard scaling and a legacy station/curvature scheme are also available.
[0069]Once normalized, a sequence is constructed. The signal is cut into overlapping windows of a fixed length (for example 200-500 points). A small overlap helps smooth the result at window boundaries. Only the last, shorter fragment is padded if needed.
[0070]An ML Model is then defined that is trained to predict a class for each survey point by receiving the survey point as input and outputting a class from a predefined list of classes (for each survey point).
[0071]Exemplary ML model embodiments may utilize a hybrid network as the default model. Such embodiments may first use 1D convolutions (Conv1D) to extract local patterns, then a bidirectional LSTM (long short term memory) to understand how those patterns evolve along the (railway) track, and finally a small classifier that outputs one of the four classes for each survey point. Alternative versions can add residual connections or use attention layers, but the overall idea is the same: recognize local shapes, then use context over distance.
- [0073]spot nearly constant curvature (typical for a circular curve),
- [0074]spot curvature near zero (typical for a tangent),
- [0075]spot small linear ramps in curvature (typical for a spiral increasing or decreasing),
- [0076]recognize a gentle local turn or arc shape in the (x, y) view,
- [0077]distinguish steady bearing changes (curves/spirals) from flat bearing (tangents),
- [0078]use the absolute curvature channel to stabilize the detection of spiral boundaries.
- [0080]confirm that a short curve-like patch is truly part of a longer curve (i.e., that a first segment is part of a second longer segment);
- [0081]follow gradual ramps in curvature to identify spirals reliably; amd
- [0082]place cleaner boundaries between tangents, curves, and spirals by using context on both sides.
[0083]The model can be trained to predict the correct geometry class for each survey point. The training objective encourages correct classifications and stable boundaries between regions, so results are both accurate and smooth along the track.
[0084]Inference Pipeline—when classifying a new alignment, the same overlapping window may slide along the data. Each window makes its own prediction; where windows overlap, their opinions may be combined by simple majority voting. A small smoothing step (for example, taking the majority in a short neighborhood) removes isolated misclassifications. The result is one stable label per survey point.
[0085]Direction-Aware Segmentation and Merging—consecutive points with the same label/class may be grouped into segments and very short segments (likely noise) can be dropped. Because spirals can increase or decrease in curvature, SI and SD may be kept separate so transitions are respected. Simple rules decide when neighboring segments can be merged (for example, tangent next to tangent).
[0086]Integration with Geometry Solver—Each segment becomes/is converted into a simple geometry primitive (tangent, curve with a sign for left/right, or spiral with increase/decrease). A solver then connects these pieces (i.e., each geometry primitive) while enforcing smooth joins (tangency). If a larger group cannot be solved, the system tries smaller groups or flags the spot for a quick manual check.
- [0088]Phase 1: Basic patterns with controlled noise to establish core recognition.
- [0089]Phase 2: Wear simulation across noise intensities (light→severe) conditioned on asset factors (age, maintenance, traffic).
- [0090]Phase 3: Challenging compositions (long spirals, rapid transitions, compound curves; spiral-curve-spiral) and a fraction of clean references to sharpen boundaries. Complex pattern injection increases robustness.
[0091]These datasets mirror feature computation and normalization used in deployment to avoid train-inference skew.
[0092]Performance and Industrial Applicability—Representative evaluations on synthetic and real survey data show high point-wise accuracy and strong segment-level fidelity, with especially high precision on spiral detection. The pipeline is efficient (parallel preprocessing and lightweight models), deployable in CAD contexts, and integrable with existing alignment solvers. The described components may be implemented on CPU, GPU, or APPLE SILICON™ processor acceleration without changing the method.
[0093]Variations—In addition to dual-branch and hybrid models, alternative classifiers (including attention-only encoders) may be substituted. Feature modes may be selected per dataset; notably, adding Icurvaturel (xycC) often improves spiral boundary detection. Voting stride, smoothing windows, segment thresholds, and solver back-off policies may be tuned without departing from the core method.
- [0095](1) Method: Receiving survey points 402; computing signals/features 404 such as bearing, station, and curvature; normalizing curvature 406 by standard, legacy-2D, or raw symmetric percentile scaling with separate kpos and kneg; sequence construction 408 (e.g., with length L, strid s, and padding at the tail), for example, assembling feature sequences (from the curvature) in a selected mode (including [x, y,curvature, |curvature|]); and utilizing an ML model to perform various predictions including extracting features 410 (e.g., using a Conv1D feature extractor (multi-layer); classifying 412-414 each point with a dual-branch or hybrid sequence model (e.g., a (bi)LSTM sequence modeler 412) that may utilize head per-point logits (B, L, 4) 414 (e.g., generating class T, C, SI, or SD as described above); aggregating overlapping-window predictions 416 by majority voting (and/or temporal smoothing); performing direction-aware segmentation 418 that preserves SI/SD; and generating alignment primitives and invoking group solvers to output a connected best-fit alignment (e.g., a geometry solver (2-/3-/4-entity; tangency).
- [0096](2) System: One or more processors and memory storing instructions to perform the method, including model parameters and configuration for feature modes, normalization, windowing, and segmentation thresholds.
- [0097](3) Computer-Readable Medium: Instructions which, when executed, cause a machine to perform the method, including computing the symmetric percentile scaler and applying direction-aware segmentation rules.
[0098]In addition to the above, feature modes/sequences may be selected from a library (xysc, xybc, xycC, xybscC); using (bi)LSTM or attention encoders; applying temporal logit smoothing; tuning window length/stride; iterative refinement using solver residuals.
Geometry Solver
[0099]When the detection algorithm 110 identifies the geometries (tangents, spirals, and curves), they are detected in a sequence that should represent a connected alignment. The rail track alignment should be smooth where the geometries join. In civil engineering, this smoothness is also called tangency where the geometries meet.
[0100]Sometimes it is possible to join curves 506 and tangents 502 directly and preserve tangency or smoothness. However, in many cases, they don't connect smoothly. This is where spirals 504 are used to transition from a curve 506 to a tangent 502 or vice versa, or from curve 506 to curve 506. Euler spirals 504 (clothoids) have a linear change in curvature, and solving for the correct start and end radius can be done using optimization methods such as Newton's method. Sometimes it is not possible to solve for such a spiral 504.
[0101]In embodiments of the invention, the detection algorithm attempts to identify spirals 504 between tangents 502 and curves 506, and the corresponding parameters. However, embodiments may use an exact solver to compute the correct spiral parameters. This is where a Geometry Solver comes into play. It uses pre-existing spiral solvers within the CIVIL 3D™ application to connect various geometries. These spiral solvers can solve for different kinds of geometry sequences.
[0102]The main idea of a Geometry Solver of embodiments of the invention is the way the corresponding spiral solver is chosen from the CIVIL 3D™ application. The following pseudo-code in Table B illustrates this concept:
| TABLE B |
|---|
| Require: Detected geometries sequence |
| 1 | Initialize the alignment geometry list G ={g1, g2, ... , gn} |
| 2 | i ← 1 |
| 3 | while i≤n do |
| 4 | Use appropriate 4-entity solver for quadruplet gi, gi+1, gi+2, and |
| gi+3 | |
| 5 | if 4-entity solver fails then |
| 6 | Use appropriate 3-entity solver for triplet gi, gi+1, gi+2 |
| 7 | if 3-entity solver fails then |
| 8 | Use appropriate 2-entity solver for pair gi, gi+1 |
| 9 | if 2-entity solver fails then |
| 10 | Mark gi as requiring manual adjustment |
| 11 | endif |
| 12 | i ← i + 1 |
| 13 | else |
| 14 | i ← i + 2 |
| 15 | endif |
| 16 | else |
| 17 | i ← i + 3 |
| 18 | endif |
| 19 | end while |
| 20 | Return the connected alignment geometry list G |
[0103]With a sequence of detected geometries of G, the Geometry Solver algorithm processes the geometries in the sequence by grouping them into pairs, triplets, and quadruplets. The algorithm then uses the appropriate group solver to solve the geometries in one group. After solving the geometries in one group, the algorithm moves on to the next group. Solving a group of geometries involves calculating the geometries in the group and keeps them being tangential to each other.
[0104]Embodiments of the invention support 2-entity, 3-entity, and 4-entity solvers for pairs, triplets, and quadruplets, respectively. For example, a simple 2-entity solver can solve for a spiral 504 between a tangent (T) 502 and a curve (C). 506. Let's call this a TC solver. A 3-entity solver solves for a spiral 504 between two curves 506 is called a CC solver. Similarly, if there is already a tangent 502, a spiral (S) 504, and a curve 506, and it is desired to add another curve 506, a 4-entity solver TSCC solver may be used.
- [0106]Tangent-Spiral-Spiral-Tangent (TSST) solver
- [0107]Tangent-Spiral-Spiral-Curve (TSSC) solver
- [0108]Curve-Spiral-Spiral-Tangent (CSST) solver
- [0109]Curve-Spiral-Spiral-Curve (CSSC) solver
- [0111]Tangent-Spiral-Curve (TSC) solver
- [0112]Curve-Spiral-Tangent (CST) solver
- [0113]Curve-Spiral-Curve (CSC) solver
- [0114]Tangent-Curve-Tangent (TCT) solver
- [0116]Tangent-Spiral (TS) solver
- [0117]Spiral-Tangent (ST) solver
- [0118]Spiral-Curve (SC) solver
- [0119]Curve-Spiral (CS) solver
- [0120]Tangent-Curve (TC) solver
- [0121]Curve-Tangent (CT) solver
Modifications Optimization
[0122]Returning to
[0123]At step 114, the results may be changed/adjusted (e.g., by adjusting detection parameters/parameters of the detected geometry).
[0124]
[0125]
[0126]Once the results are changed at step 114, the plots may be further optimized at step 116 before the alignment is exported at step 118 (e.g., exported to a tamping machine [e.g., in a LandXML format] to perform the alignment consistent with the alignment). In this regard, step 118 includes exporting the alignment to a physical machine (e.g., a tamping machine) that aligns the railway track consistent with the alignment.
Alternative Embodiments and Details
[0127]In view of the above, after computing the centerline at step 106, steps 108-116 provide the ability to analyze and fine tune the alignment. In this regard, the user may visualize the alignment in multiple equivalent representations (e.g., the curvature plot and alignment plot) that are displayed simultaneously from different points of view of the graphical user interface. Each of the sub-views (e.g., the plots and/or data/methods to adjust the alignment) that are displayed during the analysis describe the alignment geometry from a different point of view, but all refer to the same object(s). While
[0128]As described above, there are two different options for performing the analysis and fine tuning of the alignment (i.e., the geometry detection 110 and resulting adjustments in 114-116): (1) machine learning approach; and (2) the statistical analysis (also referred to as regression detection) approach.
[0129]For the machine learning approach, the user may choose to enable the artificial intelligence assisted detection and may have the option to switch between the regression detection and the AI alternative.
[0130]In the non-AI based workflow, the user may have the option to adjust various parameters as illustrated in
[0131]Once detected, the alignment descriptions may be analyzed in the form of various graphs/plots/views including a radius graph, offset graph, station navigator, segment properties (tabular view), point properties (tabular view), and canvas geometry. Each of these different forms of analysis are described in details below.
[0132]Radius Graph (also referred to as a curvature plot)—referring to
[0133]Offset Graph—the offset graph 712 helps the user visualize the difference (comparative differences) between the position of the survey data (i.e., the survey points) and the detected alignment/geometry. An “O” deviation axis 714 may be displayed in the middle—segments that diverge upwards describe an offset of the alignment to the left of the survey data; similarly, the segments that diverge downwards describe an offset of the alignment to the left of the survey data. The line of the graph may also be color coded, so that the user can visualize high deviations easier—for example, areas of high deviation may be in red, mid range deviation may be marked with yellow, and small to no deviation may be represented in green. The curvature information may be mapped in accordance to the alignment stationing (distance on the course of the alignment) on the x-axis and the value of the deviation on the y-axis.
[0134]Station Navigator 716—this is a zoomed out depiction of the curvature graph/plot 702, allowing users to orientate and quickly move along the stationing of the alignment. The rectangle 718 that highlights a particular segment of the (zoomed out) graph/view determines which segment is currently visible in other views (e.g., in the displayed alignment of the curvature plot).
[0135]Segment Properties (tabular view) (also referred to as alignment element properties 802)—this is a table that is describing the geometric properties of each detected alignment segment (each straight/tangent, curve, and spiral) in numerical form. It gives information about features such as the segment type, total length, start and end point alongside the alignment stationing. The tabular view communicates with the graphs (e.g., the curvature plot) and the displayed information is correlated. Some of the values can be modified by editing the number in the table cell of the tabular view 802 and the change will be reflected (e.g., dynamically updated) in the alignment geometry/curvature plot.
[0136]Point properties (tabular view) 804—this is a table that is describing the properties of each individual data point (i.e., survey point) in numerical form. It gives information about features such as: the stationing of the point alongside the alignment; Northing and Easting of the point; and offset (distance between original survey data point and detected alignment). The point properties tabular view 804 communicates with the graphs (e.g., the curvature plot) and displayed information is correlated. Some of the values can be modified by editing the number in the table cell and the change will be reflected (e.g., dynamically updated) in the alignment geometry/curvature plot.
[0137]Canvas geometry preview (also referred to as alignment plot/graph 704)—applications of embodiments of the invention may display a preview of the alignment geometry.
[0138]After reviewing/editing via the above graphs/plots/views, the user may commit the changes and generate the geometry for export (i.e., step 118).
Hardware Environment
[0139]
[0140]In one embodiment, the computer 902 operates by the hardware processor 904A performing instructions defined by the computer program 910 (e.g., a computer-aided design [CAD] application) under control of an operating system 908. The computer program 910 and/or the operating system 908 may be stored in the memory 906 and may interface with the user and/or other devices to accept input and commands and, based on such input and commands and the instructions defined by the computer program 910 and operating system 908, to provide output and results.
[0141]Output/results may be presented on the display 922 or provided to another device for presentation or further processing or action. In one embodiment, the display 922 comprises a liquid crystal display (LCD) having a plurality of separately addressable liquid crystals. Alternatively, the display 922 may comprise a light emitting diode (LED) display having clusters of red, green and blue diodes driven together to form full-color pixels. Each liquid crystal or pixel of the display 922 changes to an opaque or translucent state to form a part of the image on the display in response to the data or information generated by the processor 904 from the application of the instructions of the computer program 910 and/or operating system 908 to the input and commands. The image may be provided through a graphical user interface (GUI) module 918. Although the GUI module 918 is depicted as a separate module, the instructions performing the GUI functions can be resident or distributed in the operating system 908, the computer program 910, or implemented with special purpose memory and processors.
[0142]In one or more embodiments, the display 922 is integrated with/into the computer 902 and comprises a multi-touch device having a touch sensing surface (e.g., track pod, touch screen, smartwatch, smartglasses, smartphones, laptop or non-laptop personal mobile computing devices) with the ability to recognize the presence of two or more points of contact with the surface. Examples of multi-touch devices include mobile devices (e.g., IPHONE, ANDROID devices, WINDOWS phones, GOOGLE PIXEL devices, NEXUS S, etc.), tablet computers (e.g., IPAD, HP TOUCHPAD, SURFACE Devices, etc.), portable/handheld game/music/video player/console devices (e.g., IPOD TOUCH, MP3 players, NINTENDO SWITCH, PLAYSTATION PORTABLE, etc.), touch tables, and walls (e.g., where an image is projected through acrylic and/or glass, and the image is then backlit with LEDs).
[0143]Some or all of the operations performed by the computer 902 according to the computer program 910 instructions may be implemented in a special purpose processor 904B. In this embodiment, some or all of the computer program 910 instructions may be implemented via firmware instructions stored in a read only memory (ROM), a programmable read only memory (PROM) or flash memory within the special purpose processor 904B or in memory 906. The special purpose processor 904B may also be hardwired through circuit design to perform some or all of the operations to implement the present invention. Further, the special purpose processor 904B may be a hybrid processor, which includes dedicated circuitry for performing a subset of functions, and other circuits for performing more general functions such as responding to computer program 910 instructions. In one embodiment, the special purpose processor 904B is an application specific integrated circuit (ASIC).
[0144]The computer 902 may also implement a compiler 912 that allows an application or computer program 910 written in a programming language such as C, C++, Assembly, SQL, PYTHON, PROLOG, MATLAB, RUBY, RAILS, HASKELL, or other language to be translated into processor 904 readable code. Alternatively, the compiler 912 may be an interpreter that executes instructions/source code directly, translates source code into an intermediate representation that is executed, or that executes stored precompiled code. Such source code may be written in a variety of programming languages such as JAVA, JAVASCRIPT, PERL, BASIC, etc. After completion, the application or computer program 910 accesses and manipulates data accepted from I/O devices and stored in the memory 906 of the computer 902 using the relationships and logic that were generated using the compiler 912.
[0145]The computer 902 also optionally comprises an external communication device such as a modem, satellite link, Ethernet card, or other device for accepting input from, and providing output to, other computers 902.
[0146]In one embodiment, instructions implementing the operating system 908, the computer program 910, and the compiler 912 are tangibly embodied in a non-transitory computer-readable medium, e.g., data storage device 920, which could include one or more fixed or removable data storage devices, such as a zip drive, floppy disc drive 924, hard drive, CD-ROM drive, tape drive, etc. Further, the operating system 908 and the computer program 910 are comprised of computer program 910 instructions which, when accessed, read and executed by the computer 902, cause the computer 902 to perform the steps necessary to implement and/or use the present invention or to load the program of instructions into a memory 906, thus creating a special purpose data structure causing the computer 902 to operate as a specially programmed computer executing the method steps described herein. Computer program 910 and/or operating instructions may also be tangibly embodied in memory 906 and/or data communications devices 930, thereby making a computer program product or article of manufacture according to the invention. As such, the terms “article of manufacture,” “program storage device,” and “computer program product,” as used herein, are intended to encompass a computer program accessible from any computer readable device or media.
[0147]Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with the computer 902.
[0148]
[0149]A network 1004 such as the Internet connects clients 1002 to server computers 1006. Network 1004 may utilize ethernet, coaxial cable, wireless communications, radio frequency (RF), etc. to connect and provide the communication between clients 1002 and servers 1006. Further, in a cloud-based computing system, resources (e.g., storage, processors, applications, memory, infrastructure, etc.) in clients 1002 and server computers 1006 may be shared by clients 1002, server computers 1006, and users across one or more networks. Resources may be shared by multiple users and can be dynamically reallocated per demand. In this regard, cloud computing may be referred to as a model for enabling access to a shared pool of configurable computing resources.
[0150]Clients 1002 may execute a client application or web browser and communicate with server computers 1006 executing web servers 1010. Such a web browser is typically a program such as MICROSOFT INTERNET EXPLORER/EDGE, MOZILLA FIREFOX, OPERA, APPLE SAFARI, GOOGLE CHROME, etc. Further, the software executing on clients 1002 may be downloaded from server computer 1006 to client computers 1002 and installed as a plug-in or ACTIVEX control of a web browser. Accordingly, clients 1002 may utilize ACTIVEX components/component object model (COM) or distributed COM (DCOM) components to provide a user interface on a display of client 1002. The web server 1010 is typically a program such as MICROSOFT'S INTERNET INFORMATION SERVER.
[0151]Web server 1010 may host an Active Server Page (ASP) or Internet Server Application Programming Interface (ISAPI) application 1012, which may be executing scripts. The scripts invoke objects that execute business logic (referred to as business objects). The business objects then manipulate data in database 1016 through a database management system (DBMS) 1014. Alternatively, database 1016 may be part of, or connected directly to, client 1002 instead of communicating/obtaining the information from database 1016 across network 1004. When a developer encapsulates the business functionality into objects, the system may be referred to as a component object model (COM) system. Accordingly, the scripts executing on web server 1010 (and/or application 1012) invoke COM objects that implement the business logic. Further, server 1006 may utilize MICROSOFT'S TRANSACTION SERVER (MTS) to access required data stored in database 1016 via an interface such as ADO (Active Data Objects), OLE DB (Object Linking and Embedding DataBase), or ODBC (Open DataBase Connectivity).
[0152]Generally, these components 1000-1016 all comprise logic and/or data that is embodied in/or retrievable from device, medium, signal, or carrier, e.g., a data storage device, a data communications device, a remote computer or device coupled to the computer via a network or via another data communications device, etc. Moreover, this logic and/or data, when read, executed, and/or interpreted, results in the steps necessary to implement and/or use the present invention being performed.
[0153]Although the terms “user computer”, “client computer”, and/or “server computer” are referred to herein, it is understood that such computers 1002 and 1006 may be interchangeable and may further include thin client devices with limited or full processing capabilities, portable devices such as cell phones, notebook computers, pocket computers, multi-touch devices, and/or any other devices with suitable processing, communication, and input/output capability.
[0154]Of course, those skilled in the art will recognize that any combination of the above components, or any number of different components, peripherals, and other devices, may be used with computers 1002 and 1006. Embodiments of the invention are implemented as a software/CAD application on a client 1002 or server computer 1006. Further, as described above, the client 1002 or server computer 1006 may comprise a thin client device or a portable device that has a multi-touch-based display.
CONCLUSION
[0155]This concludes the description of the preferred embodiment of the invention. The following describes some alternative embodiments for accomplishing the present invention. For example, any type of computer, such as a mainframe, minicomputer, or personal computer, or computer configuration, such as a timesharing mainframe, local area network, or standalone personal computer, could be used with the present invention. In summary, embodiments of the invention combine automatic detection, as well as a continuous alignment that can be edited simultaneously with support of a curvature/radius graph/plot, alignment preview/graph/plot, and/or alignment table. The user may easily correlate five (5) different methods of data visualization at the same time to inspect and customize the desired output. This allows for a very high level of precision in defining the desired alignment geometry.
[0156]Embodiments of the invention may also provide seamless integration within a CAD application environment (e.g., the CIVIL 3D™ application) and enhances user experience through its intuitive design and high performance. Also, embodiments of the invention may provide tools that are sharable components, that can be reused in different environments, e.g., the RECAP application).
[0157]Further to the above, embodiments of the invention provide an alignment process that utilizes a sliding window that performs a segmented lease square partition, and chains the segments together into geometries, mixes a greedy-approach algorithm with dynamic programming and some statistical ideas, in a manner that is not possible in the prior art.
[0158]The foregoing description of the preferred embodiment of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto.
REFERENCES
- [0159][Bellman] R. Bellman, On the approximation of curves by line segments using dynamic programming, Communications of the ACM, 4(6):284, 1961.
Claims
What is claimed is:
1. A computer-implemented method for aligning a railway track, comprising:
obtaining survey points that represent the railway track, wherein the railway track is a physical real world railway track;
autonomously computing a centerline of the railway track based on the survey points;
autonomously computing curvatures based on the survey points and centerline, wherein the computing comprises plotting the curvatures on a curvature plot;
detecting geometry based on the curvature plot, wherein the detected geometry comprises geometry types, wherein the geometry types comprise a tangent, a spiral, and a curve;
displaying an alignment on a graphical user interface, wherein:
the displayed alignment comprises the curvature plot;
the detected geometry is displayed on the curvature plot;
each geometry type is displayed in a visually distinguishable manner from other geometry types;
changing parameters of the detected geometry;
dynamically updating the alignment based on the changed parameters;
exporting the alignment to a physical machine that aligns the railway track consistent with the alignment.
2. The computer-implemented method of
for each triplet of the survey points:
placing an arc over the triplet;
autonomously computing a curvature of the arc;
assigning the curvature to one or more of the survey points in the triplet;
assigning a station value that represents a distance from a start or end of the alignment that is assigned to that curvature; and
creating the curvature plot that contains new points formed by the station value and the curvature, wherein an x-axis of the curvature plot comprises station values, and a y-axis of the curvature plot comprises curvature values.
3. The computer-implemented method of
smoothing the curvature plot.
4. The computer-implemented method of
5. The computer-implemented method of
6. The computer-implemented method of
the displayed alignment further comprises a tabular view of segment properties that describes geometric properties of each detected geometry in numerical form;
the tabular view communicates with the curvature plot and displayed information is correlated;
the changing the parameters further comprises modifying numbers in a table cell of the tabular view; and
the dynamically updating the alignment reflects the modified numbers in the curvature plot.
7. The computer-implemented method of
the displayed alignment further comprises a tabular view of point properties that describes properties of each survey point in numerical form;
the tabular view communicates with the curvature plot and displayed information is correlated;
the changing the parameters further comprises modifying numbers in a table cell of the tabular view; and
the dynamically updating the alignment reflects the modified numbers in the curvature plot.
8. The computer-implemented method of
the alignment that is displayed comprises a visualization of the alignment in multiple equivalent representations that are displayed simultaneously from different points of view on the graphical user interface.
9. A computer-implemented method for aligning a railway track, comprising:
(a) obtaining survey points that represent the railway track, wherein the railway track is a physical real world railway track;
(b) autonomously computing a centerline of the railway track based on the survey points;
(c) autonomously computing curvatures based on the survey points and centerline, wherein the computing comprises plotting the curvatures on a curvature plot;
(d) detecting geometry based on the curvature plot, wherein:
(1) the detected geometry comprises geometry types;
(2) the geometry types comprise a tangent, a spiral, and a curve;
(3) the detecting comprises a sliding window that iteratively steps over the curvature plot until all survey points in the curvature plot are processed;
(4) at each step:
(i) analyzing data in the sliding window to determine start and end points of the geometry types;
(e) providing the start and end points to an alignment solver that creates an alignment geometry using a geometry solver;
(f) exporting the alignment geometry to a physical machine that aligns the railway track consistent with the alignment.
10. The computer-implemented method of
11. The computer-implemented method of
reading a set of k consecutive points from the curvature plot within the sliding window;
processing the set of points using a segmentation method to divide the curvature plot into a set of consecutive segments;
analyzing each of the consecutive segments to determine its geometric properties, wherein the geometric properties comprise:
a slope of each segment; and
statistical measures of curvature values; and
classifying each segment as either a tangent, curve, or spiral based on the geometric properties.
12. The computer-implemented method of
determining that the slope of the segment is below a predefined threshold;
determining, based on the slope below the predefined threshold, that the segment is considered flat and can be classified as either a tangent or a curve;
based on the statistical measures, distinguishing between the tangent or the curve for the flat segment.
13. The computer-implemented method of
determining that the slope of the segment is above a predefined threshold;
determining, based on the slope above the predefined threshold, that the segment is part of a spiral;
evaluating a length of the segment and continuity with a previous segment to determine whether to merge the segment with an existing spiral or classify the segment as a new geometric feature.
14. The computer-implemented method of
checking for changes in curvature to identify potential spiral transitions;
comparing statistical measures of the segment to statistical measures of previous segments to determine whether to add a tangent, curve, or spiral at the potential spiral transition.
15. The computer-implemented method of
from survey points (x,y), computing signals, wherein the signals comprise a bearing, a station, and a curvature;
for each of the survey points, based on the signals, building input vectors that describe which signals are included in that survey point;
normalizing the input vectors;
constructing a sequence by cutting the signals into overlapping windows of a fixed length;
defining a machine learning (ML) model wherein the ML model:
is trained to predict a class, for each survey point;
receives the survey points as input and outputs a class from a predefined list of classes for each survey point,
extracts local patterns using 1D convolutions; and
uses a bidirectional long short-term memory (LSTM) to understand how patterns evolve along the railway track.
16. The computer-implemented method of
acts as a sliding detector;
spots curvature typical for a circular curve;
spots curvature typical for a tangent;
spots linear ramps in curvature typical for a spiral increasing or decreasing;
recognizes a local turn or arc shape in an (x,y) view;
distinguishes steady bearing changes from flat bearing; and
uses an absolute curvature channel to stabilize detection of spiral boundaries.
17. The computer-implemented method of
analyzes how local patterns change along the railway track;
maintains a running memory of what came before and what comes next on the railway track;
confirming that a first segment is part of a second segment, wherein the second segment is longer than the first segment;
follow ramps in curvature to identify spirals; and
places boundaries between tangents, curves, and spirals by using context on both sides.
18. The computer-implemented method of
grouping consecutive points with a same class into segments;
converting each segment into a geometry primitive;
connecting, using the geometry solver, each geometry primitive while enforcing smooth joins.
19. The computer-implemented method of
from the survey points, computing signals, wherein the signals comprise a bearing, a station, and a curvature;
normalizing the curvature by symmetric percentile scaling;
assembling feature sequences, from the curvature, in a selected mode;
utilizing a machine learning (ML) model to:
classify each of the survey points with a dual-branch or hybrid sequence model;
aggregating overlapping-window predictions by majority voting;
performing direction-aware segmentation that preserves spiral increasing (SI) and spiral decreasing (SD);
generating alignment primitives; and
invoking group solvers to output a connected alignment.
20. The computer-implemented method of
selecting the feature sequences from a library.
21. The computer-implemented method of
applying temporal logit smoothing.
22. The computer-implemented method of
tuning window length or stride.