Dual-guide mode mobile robot control method and system
By using historical reference pose and track topology information for pose correction in complex track networks, the problem of inaccurate track matching caused by odometry error is solved, and the mobile robot achieves highly robust positioning and stable control.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SHANGHAI HENGZE FUHUI INTELLIGENT TECHNOLOGY CO LTD
- Filing Date
- 2026-02-26
- Publication Date
- 2026-05-22
AI Technical Summary
In complex track networks, the cumulative error and sudden drift of the onboard odometer can cause mobile robots to be mistakenly associated with the wrong track segments, affecting the safety and stability of path planning and guidance modes.
By using the positioning state of the previous control cycle as the historical reference pose within the control cycle, and combining it with prior track topology information, the projected pose of the current odometry predicted pose is calculated within the local track search interval, and a state correction compensation amount is generated to iteratively correct the predicted pose, forming a closed-loop constraint.
It significantly reduces the probability of erroneous track segment association caused by odometry cumulative error and sudden drift, ensuring that the internal positioning state is continuous in time and consistent with the actual track geometry in space, thereby improving the operational safety and control performance of the mobile robot.
Smart Images

Figure CN121742477B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of intelligent control technology, and more specifically, to a dual-guided mobile robot control method and system. Background Technology
[0002] Currently, the large-scale application of mobile robots such as track-guided vehicles and AGVs in factories is becoming increasingly widespread. In order to balance long-distance high-efficiency transportation and local flexible scheduling, industrial sites generally adopt a dual-guidance mode that combines a track-guided area with a free-roaming area: in the track area, the robot achieves high-precision tracking based on track geometry constraints, and in the free area, it achieves autonomous navigation and obstacle avoidance based on odometers, lasers / vision, etc.
[0003] In such systems, the onboard odometer typically serves as the fundamental data source for motion control and path planning, used to recursively determine the robot's internal pose. However, due to factors such as tire slippage, load variations, uneven ground, and mechanical clearances, odometer errors accumulate over time, and sudden drifts often occur during braking, acceleration / deceleration, or traversing ramps or contaminated areas. To suppress these errors, existing technologies generally introduce magnetic nails, RFID tags, or track centerline fitting into the track area to periodically correct the odometer pose or perform a track projection within a local area, thereby improving short-term track matching accuracy.
[0004] However, in real-world industrial scenarios, track networks often contain complex topologies such as numerous branching points, intersections, and U-shaped loops, with multiple tracks arranged parallel or close to each other in space. In such cases, if track projection relies solely on the odometry-predicted pose at the current moment, without utilizing historical alignment states and reasonably constraining the search range, when the accumulated odometry error or sudden drift is large, it can easily lead to the robot being mistakenly associated with the wrong track segment or projection jumps between adjacent tracks. This results in inconsistencies between the internal positioning state and the actual physical track, thereby affecting the safety and stability of path planning, speed control, and even guidance mode switching.
[0005] Therefore, in industrial scenarios with complex track network topologies and dual-guided modes, how to overcome the impact of accumulated errors and sudden drifts of onboard odometers on track matching accuracy, and achieve highly robust continuous state alignment and correction control during track guidance operation, has become a technical problem that urgently needs to be solved by those skilled in the art. Summary of the Invention
[0006] To address the shortcomings of existing technologies, this application provides a dual-guided-mode mobile robot control method and system.
[0007] In a first aspect, this application provides a dual-guided-mode mobile robot control method, comprising:
[0008] Within the control cycle, the internal motion pose of the mobile robot is recursively obtained based on the motion measurement data collected by the on-board odometer, which serves as the first pose.
[0009] Obtain the positioning state of the mobile robot written into the internal positioning coordinate system in the previous control cycle, and use it as the fourth pose;
[0010] Based on the track topology information recorded in the prior map, the target track segment including the fourth pose is determined;
[0011] In the coordinate system where the target track segment is located, within a preset track search interval centered on the track position corresponding to the fourth pose, the projection pose of the first pose on the target track segment is determined as the second pose.
[0012] Calculate the topology deviation vector based on the pose difference between the first pose and the second pose;
[0013] A state correction compensation amount is generated based on the topology deviation vector, and the state correction compensation amount is applied to the first pose to obtain a compensated third pose.
[0014] The third pose is written into the internal positioning coordinate system of the mobile robot as the current positioning state of the mobile robot, and the third pose is used as the fourth pose in the next control cycle.
[0015] Optionally, the track topology information includes: a track network consisting of multiple track segments and multiple topology nodes located at the connection points of the multiple track segments, wherein the topology nodes include branch nodes, intersection nodes and / or U-shaped loop nodes.
[0016] Optionally, determining the projected pose of the first pose on the target track segment includes:
[0017] Along the travel direction of the target track segment, based on the fourth pose, determine the upstream topology node and downstream topology node in the track network that are connected to the target track segment and are closest to the fourth pose, wherein the upstream topology node and / or the downstream topology node are fork nodes, intersection nodes and / or U-shaped loop nodes;
[0018] The track search interval is limited to the track segment interval centered on the track position of the fourth pose and not crossing the upstream topology node and the downstream topology node.
[0019] Optionally, generating the state correction compensation amount based on the topology deviation vector includes:
[0020] Based on the tangent and normal directions of the target track segment, the topological deviation vector is decomposed into a track-along deviation component and a lateral deviation component.
[0021] The lateral deviation component is used as the first compensation component, and the track deviation component is limited within a preset compensation amplitude range and used as the second compensation component.
[0022] The first compensation component and the second compensation component are superimposed to obtain the state correction compensation amount.
[0023] Optionally, the method further includes:
[0024] Based on the track distance between the first pose and the topological node at the endpoint of the target track segment, and the direction of travel of the mobile robot, it is determined whether to perform track segment switching.
[0025] When the distance along the track is less than a preset node switching threshold and the travel direction of the first pose points to the endpoint topology node, the target track segment is updated to a downstream track segment connected to the endpoint topology node.
[0026] Optionally, using the lateral deviation component as the first compensation component includes:
[0027] Obtain the lever vector between the kinematic center of the mobile robot and the reference point used to characterize the first pose;
[0028] Calculate the heading angle difference between the first pose and the second pose;
[0029] Based on the lever vector and the heading angle difference, the rotation-induced lateral deviation component caused by the rotational attitude of the mobile robot around its kinematic center is calculated according to a preset geometric relationship.
[0030] Subtracting the rotation-induced lateral deviation component from the lateral deviation component yields the net lateral deviation, which characterizes the true degree of lateral deviation of the kinematic center, and the net lateral deviation is used as the first compensation component.
[0031] Optionally, calculating the rotation-induced lateral deviation component includes:
[0032] Obtain the tangent direction of the target track segment at the second pose, and calculate the projection length of the lever vector in the direction perpendicular to the tangent.
[0033] Based on the projection length and the heading angle difference, a tangential projection deviation component characterizing the linear approximation error is constructed; the track curvature is determined based on the position of the second pose on the target track segment, and a curvature correction deviation component characterizing the nonlinear bending characteristics of the track is constructed based on the track curvature, the arm vector, and the heading angle difference.
[0034] The rotation-induced lateral deviation component is obtained by vector superposition of the tangential projection deviation component and the curvature correction deviation component.
[0035] Optionally, the method further includes:
[0036] The vehicle-mounted environmental perception sensor is controlled to sample along the track direction on the target track segment at a first spatial sampling interval to obtain a set of scalar observations characterizing the lateral repeating structure arranged along the target track segment;
[0037] Based on the first pose and / or the third pose, each scalar observation is associated with the track position to form a track-side environment observation sequence with the track position as the independent variable.
[0038] Based on the repeating pitches recorded in the prior map, a periodic reference sequence along the track direction is constructed, which is used to characterize the ideal spatial periodic distribution of lateral repeating structures with the repeating pitches.
[0039] Perform a point-by-point multiplication operation on the along-track environmental observation sequence and the periodic reference sequence to obtain the modulated observation sequence;
[0040] Spatial low-pass filtering is performed on the modulated observation sequence to extract the spatial low-frequency beat envelope sequence that characterizes the beat effect of the lateral repeating structure.
[0041] Optionally, the method further includes:
[0042] In the spatial low-frequency beat envelope sequence, the track-side positions corresponding to adjacent antinodes and / or wave nodes are detected, and the relative phase quantity of the mobile robot in a single beat spatial period is determined based on the track-side distance of the sampling point relative to the nearest antinode and / or wave node.
[0043] Based on the preset conversion relationship between the beat space period and the repeating pitch, the relative phase quantity is converted into the track position offset along the target track segment to obtain the estimated physical coordinate value along the track direction, which is used as the track environment correction quantity.
[0044] The along-track environment correction is superimposed on the along-track position component of the third pose to update the position of the third pose in the along-track direction.
[0045] Secondly, this application provides a dual-guided-mode mobile robot control system, comprising:
[0046] The pose update module is used to recursively obtain the internal motion pose of the mobile robot based on the motion measurement data collected by the vehicle odometer within the control cycle, as the first pose; to obtain the positioning state of the mobile robot written into the internal positioning coordinate system in the previous control cycle, as the fourth pose; and to write the compensated third pose into the internal positioning coordinate system as the current positioning state of the mobile robot, and to use the third pose as the fourth pose in the next control cycle.
[0047] The track segment search module determines a target track segment including the fourth pose based on the track topology information recorded in the prior map; and determines the projection pose of the first pose on the target track segment as the second pose within a preset track search interval centered on the track position corresponding to the fourth pose in the coordinate system where the target track segment is located.
[0048] The state correction module calculates a topology deviation vector based on the pose difference between the first pose and the second pose; and generates a state correction compensation amount based on the topology deviation vector, and applies the state correction compensation amount to the first pose to obtain a compensated third pose.
[0049] Compared to existing technologies, this application introduces the positioning state of the previous control cycle as a historical reference pose in the time dimension, and combines it with prior track topology information to construct a local track-along search interval centered on the historical reference pose in the spatial dimension. The projected pose of the current odometry predicted pose on the target track segment is calculated only within this local interval, thus explicitly utilizing the dual information sources of track geometric constraints and state-time continuity. Furthermore, a topology deviation vector is constructed based on the difference between the predicted pose and the projected pose to generate a state correction compensation amount. This is used to iteratively correct the predicted pose, and the corrected aligned pose is written back to the internal positioning coordinate system as the historical reference for the next cycle, achieving closed-loop constraints on the internal positioning state during the track guidance phase.
[0050] Based on this scheme, the present invention can significantly reduce the probability of erroneous track segment association caused by accumulated odometer errors and sudden drift under complex topological conditions such as forks, intersections, U-shaped loops, and multiple parallel track layouts in the track network. It avoids discontinuous jumps in track projection results between adjacent tracks, ensuring that the internal positioning state remains continuous in time and consistent with the actual track geometry in space. This provides a stable and reliable pose foundation for subsequent speed control, path planning, and dual-guided mode switching. Compared with existing schemes that rely on single correction or local projection, this application exhibits higher state alignment robustness and correction capability under long-term operating conditions, which is beneficial to improving the operational safety and overall control performance of industrial mobile robot systems. Attached Figure Description
[0051] Figure 1 A flowchart illustrating a dual-guided mobile robot control method provided in this application embodiment;
[0052] Figure 2 A flowchart illustrating a method for determining projection pose provided in an embodiment of this application;
[0053] Figure 3 A flowchart illustrating a method for generating state correction compensation amounts provided in this application embodiment;
[0054] Figure 4 This is a schematic diagram of a dual-guided mobile robot control system provided in an embodiment of this application. Detailed Implementation
[0055] The technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments.
[0056] See Figure 1 The diagram shows a flowchart of a dual-guided mobile robot control method provided in an embodiment of this application, including steps S101 to S105, wherein:
[0057] S101: During the control cycle, based on the motion measurement data collected by the on-board odometer, the internal motion pose of the mobile robot is recursively obtained as the first pose.
[0058] S102: Obtain the positioning state of the mobile robot written into the internal positioning coordinate system in the previous control cycle, and use it as the fourth pose;
[0059] S103: Based on the track topology information recorded in the prior map, determine the target track segment including the fourth pose; in the coordinate system where the target track segment is located, within a preset track search interval centered on the track position corresponding to the fourth pose, determine the projection pose of the first pose on the target track segment as the second pose;
[0060] S104: Calculate the topology deviation vector based on the pose difference between the first pose and the second pose; generate a state correction compensation amount based on the topology deviation vector, and apply the state correction compensation amount to the first pose to obtain the compensated third pose;
[0061] S105: Write the third pose into the internal positioning coordinate system of the mobile robot as the current positioning state of the mobile robot, and use the third pose as the fourth pose in the next control cycle.
[0062] Regarding the above S101:
[0063] In practical implementation, S101 is used to recursively update the robot's internal motion pose based on motion measurement data acquired by the onboard odometer during each control cycle of the mobile robot's operation, thereby maintaining a continuous internal motion state for subsequent control and navigation modules to call. The mobile robot can be a differential drive AGV, a four-wheel steering vehicle, or an industrial mobile platform using Mecanum wheels or omnidirectional wheels. Its onboard odometer is usually located at the drive wheels, steering wheels, or motor output shaft, and is used to output measurements such as raw pulse counts, direction marks, and timestamps representing wheel speed and rotation angle.
[0064] In one optional embodiment, a first control unit is installed on the mobile robot. This first control unit can be implemented using an industrial PC, an ARM processor board, or an FPGA+ARM SoC platform, and is connected to the onboard odometer via a CAN bus, RS-485, Ethernet, or the encoder interface integrated into the motor driver. At the arrival of each control cycle, the first control unit reads the pulse increment, measurement direction, and corresponding sampling time length of each wheel encoder through the underlying driver program. It then combines the pulse increment with pre-calibrated parameters such as wheel diameter, reduction ratio, wheelbase, and vehicle geometry to calculate kinematic quantities such as linear velocity and angular velocity in the robot's body coordinate system within that control cycle. To ensure the real-time performance of the control loop, the control cycle can be set within the range of 5ms to 20ms, and the sampling frequency of the onboard odometer can be set to 50Hz to 500Hz. The first control unit can be configured according to the specific hardware computing power and the upper limit of the driving speed.
[0065] After calculating the linear velocity and angular velocity, the first control unit recursively updates the internal motion pose saved in the previous control cycle based on the preset discrete-time kinematic model.
[0066] For example, the internal motion pose can be represented by a combination of planar position and heading angle, including the lateral coordinates, longitudinal coordinates, and heading angle about the vertical axis in the robot's working environment coordinate system. Within each control cycle, the first control unit calculates the forward displacement and rotation increment based on the product of the calculated linear velocity and angular velocity and the control cycle duration. The forward displacement is then decomposed into lateral and longitudinal displacement components along the current heading direction and superimposed onto the lateral and longitudinal coordinates of the previous cycle. Simultaneously, the heading angle and rotation increment are added to obtain the updated internal motion pose. For mobile robots using Mecanum wheels or omnidirectional wheel chassis, the first control unit can also calculate the translational velocity components in both the lateral and longitudinal directions based on the rotational speeds of each drive wheel, and update the displacements in both directions separately in the discrete-time model. This application does not limit this specific implementation.
[0067] In another optional embodiment, to improve the robustness of the internal motion pose, the first control unit can also introduce basic sensor anomaly detection logic during the recursion process. For example, it can monitor whether the encoder pulse increment exceeds the reasonable range derived from the maximum vehicle speed and control cycle, or whether an abnormal pattern of frequent direction reversal occurs in a short period of time. When an obvious anomaly is detected, the first control unit can temporarily keep the internal motion pose of the previous cycle unchanged, or use interpolation to smoothly transition, so as to avoid the abnormal measurement in a single cycle from causing abrupt changes in the pose recursion.
[0068] In this way, without relying on an external absolute positioning source, the first control unit can recursively obtain the internal motion pose of the mobile robot based on the motion measurement data of the on-board odometer in each control cycle, and use the pose as the first pose of the current control cycle, providing continuous and real-time motion state input for subsequent state alignment and correction processing based on track topology information.
[0069] Regarding S102 above:
[0070] In a specific embodiment, S102 is used to read the mobile robot positioning state saved in the previous control cycle from the internal positioning coordinate system at the beginning of each control cycle, and use it as the historical reference pose for the current cycle, so as to provide a time-continuous and consistent reference for subsequent track segment determination and state alignment calculation.
[0071] For example, the first control unit on the mobile robot has a pre-defined "internal positioning coordinate system state buffer" in its memory to store the positioning state data obtained at the end of the current control cycle. The internal positioning coordinate system can be a two-dimensional or three-dimensional Cartesian coordinate system consistent with the global layout of the factory, and its origin and axis are determined through calibration during the system deployment phase. After completing the pose correction and control calculation of the previous control cycle, the first control unit writes the corrected pose result into the aforementioned state buffer in the form of structured data as the "current positioning state" of the previous cycle, and simultaneously records the writing timestamp and the state validity flag.
[0072] When the subsequent control cycle arrives, before or after executing step S101, the first control unit accesses the internal positioning coordinate system state buffer according to a predetermined program flow, and reads the most recently written and marked as valid positioning state record. For example, this positioning state may include the robot's lateral coordinates, longitudinal coordinates, heading angle in the internal positioning coordinate system, and optional altitude information, velocity estimates, or covariance information. The first control unit loads the read positioning state into the pose state variable in its running memory and marks this variable as "fourth pose" in the program logic to distinguish it from the first pose recursively obtained from the onboard odometer within this control cycle.
[0073] In one optional implementation, to improve the real-time performance and robustness of the reading process, the first control unit can use a circular buffer or a double-buffered structure to store the positioning status records of each iteration, where each record carries a timestamp and a status number. In step S102, the first control unit calculates the time index corresponding to the previous control cycle based on the cycle count of the current control cycle or the global time reference, and selects the record from the circular buffer that is closest to the time index and has a valid status flag as the fourth pose; if it is detected that the status of the previous cycle was not successfully written or the flag is invalid, it can either select the most recent valid record or trigger a preset degradation strategy to keep the previously used fourth pose unchanged, so as to avoid the historical reference pose being missing due to a single write failure.
[0074] During the system initialization phase, when the internal positioning coordinate system does not yet have historical records, the fourth pose in step S102 can be obtained based on external initialization methods, such as writing the initial pose into the state buffer through mechanical limit switches on the docking station, landmark recognition results, or manually set initial poses. Subsequently, during normal operation, the fourth pose is always updated by the positioning state written at the end of the previous control cycle, thus forming a continuous pose reference sequence on the timeline. This ensures that each control cycle uses the internal positioning state corrected by the previous cycle as the historical reference pose, providing a stable and consistent reference input for subsequent target track segment locking and local search interval limitation under track topology constraints.
[0075] Regarding the above S103:
[0076] In specific implementation, S103 is used to determine the track segment corresponding to the current historical reference pose based on the track topology information recorded in the prior map within each control cycle, and to precisely constrain the first pose obtained recursively from the onboard odometer to the track geometry within a local range of that track segment, thereby obtaining the second pose for subsequent state alignment and correction. Through this step, the free motion state in the pure odometer coordinate system can be converted into a track-side coordinate representation constrained by the track topology.
[0077] For example, the prior map can be generated offline by the host computer during the system deployment phase and distributed to the first control unit on the mobile robot for local storage. The track topology information recorded in the prior map can be modeled using a graph structure, with track segments as edges in the graph and topology nodes as points. Each track segment is associated with a unique track segment identifier and a parametric curve describing its geometry, such as a series of polyline point sequences, spline control point sequences, or circular arc segment parameter sets ordered along the track direction. Each topology node records its spatial coordinates in the internal positioning coordinate system, a list of connected track segments, and an optional node type label. During initialization, the first control unit loads the above track topology information into memory and establishes an index structure that facilitates retrieval, such as a hash table based on track segment identifiers, a raster index based on spatial location, or a kd-tree index, to improve the efficiency of subsequent fast positioning of track segments based on pose.
[0078] In specific implementation, the first control unit first determines the target trajectory segment including the fourth pose obtained in step S102. Specifically, the fourth pose includes information such as the robot's planar position coordinates and heading angle in the internal positioning coordinate system. The first control unit can prioritize candidate searches in the trajectory segment and its adjacent trajectory segments directly connected to it through topological nodes based on the trajectory segment identifier determined in the previous control cycle, thereby reducing the possibility of erroneous trajectory segments by utilizing the temporal continuity of motion.
[0079] For each candidate orbital segment, the first control unit can calculate the nearest point from the fourth pose to that orbital segment on its geometric curve and obtain the corresponding along-track parameter values. When the nearest distance is less than a preset orbital proximity threshold, the fourth pose is considered to fall within the effective influence range of that orbital segment. If multiple candidate orbital segments meet the conditions, they can be sorted according to their priority based on the nearest distance, the smallest angle with the fourth pose's heading, or the consistency with the orbital segment identifier of the previous cycle, and the highest priority one can be selected as the target orbital segment. If no orbital segment meeting the conditions is found in the set of locally adjacent orbital segments, a global search can be performed in a larger area, or a preset exception handling logic can be triggered; this application does not limit this.
[0080] After determining the target track segment, the first control unit calculates the position of the fourth pose along the track segment in the coordinate system of that track segment. For example, the target track segment can be parameterized by arc length, establishing a correspondence between the arc length parameter and spatial coordinates. The first control unit projects the position coordinates of the fourth pose onto the geometric curve of the target track segment, obtains the nearest projection point, and records the corresponding arc length parameter value as the position of the fourth pose along the track. Subsequently, based on a pre-set search radius or search length parameter L, a preset search interval centered on this position is constructed, for example, [s_4−L / 2, s_4+L / 2], where s_4 is the arc length parameter value corresponding to the fourth pose. To avoid the search interval crossing the endpoints of the track segment, the first control unit can limit the lower and upper limits of the calculated interval to the starting and ending arc lengths of the target track segment, respectively, thus ensuring that the search is always limited to a local area of a single track segment.
[0081] After obtaining the track-along search interval, the first control unit calculates the projected pose on the target track segment based on the first pose obtained in step S101, which serves as the second pose. Specifically, the first control unit first extracts the planar position coordinates of the first pose in the internal positioning coordinate system and performs a local projection operation on the geometric curve of the target track segment: for example, within the aforementioned track-along search interval, the track segment is discretely sampled at a certain arc length step, the Euclidean distance from each sampling point to the first pose position is calculated, and the sampling point with the smallest distance is selected as the approximate projection point; if computing power allows, a one-dimensional minimization algorithm based on curve parameters can also be used to further refine the distance function to obtain a more accurate projection arc length parameter value s_2. Then, the first control unit interpolates the corresponding spatial coordinates on the geometric curve of the target track segment based on the arc length parameter value, which serves as the planar position component of the second pose; at the same time, the track-along heading angle of the second pose can be determined based on the tangent direction of the track segment at that point, so that the attitude of the second pose is consistent with the track orientation.
[0082] In one optional implementation, to improve robustness in complex orbital environments, when the first control unit detects that the distance between the first pose and the nearest point obtained on the target orbital segment exceeds the preset maximum allowable projection distance, it can be determined that the odometry predicted pose deviates too much from the orbit in the current control cycle. At this time, it can be selected to keep the second pose of the previous cycle unchanged, or to weight and smooth the projection result according to the distance and then use it as the new second pose, thereby avoiding sudden changes in state alignment due to a single severe drift.
[0083] In this way, the freely recursive odometry pose can be constrained to a local region of the target orbit segment consistent with the historical benchmark in each control cycle, and a second pose strictly corresponding to the orbit geometry can be formed, providing a reliable geometric basis for subsequent state correction compensation based on topological deviation vector.
[0084] Regarding S104 above:
[0085] In specific implementation, S104 is used to quantify the degree of deviation of the current motion state of the mobile robot from the track geometry constraints according to the difference between the first pose and the second pose in each control cycle, and generate a state correction compensation amount for correcting the odometry recursion error, thereby obtaining the compensated third pose.
[0086] For example, after obtaining the second pose, the first control unit first represents the first pose and the second pose in the same coordinate system, such as the internal positioning coordinate system or the local coordinate system of the target track segment. For industrial mobile robots that mainly move in a plane, the pose can include two parts: position coordinates and heading angle. The position coordinates are used to characterize the robot's translational position in the plane, and the heading angle is used to characterize the robot's orientation.
[0087] In one implementation, the first control unit calculates the differences between the first and second poses in terms of position coordinates and heading angle, respectively. The position difference is decomposed into two components: along the track direction and laterally. These components, along with the heading angle difference, are then combined in a preset order to form a topology deviation vector. To avoid numerical jumps in the heading angle difference when crossing ±π, the first control unit can first calculate the difference between the two headings, and then constrain the result to a continuous interval through angle normalization, for example, by constraining it to -π / 2. arrive Within the range. The above difference calculation and angle normalization process can be implemented by calling existing mathematical function libraries, such as calling standard mathematical library functions in a C / C++ environment, calling angle processing functions in NumPy in a Python environment, and calling corresponding angle normalization functions in a Matlab environment. This application does not limit this.
[0088] After obtaining the topology deviation vector, the first control unit presets the state correction gain parameter based on the track accuracy requirements, the noise level of the on-board odometer, and the trade-off between response speed and stability of the control system.
[0089] Specifically, corresponding correction weights can be assigned to the along-track deviation component, lateral deviation component, and heading difference component, allowing for higher correction ratios for lateral and heading deviations, while using a relatively smaller correction ratio for along-track deviations to balance track-keeping capability and operational smoothness. During operation, the first control unit scales each component of the topology deviation vector according to its corresponding correction weight to obtain the state correction compensation amount for position and attitude. The above-mentioned weighted scaling and vector combination operations can be performed using matrix operation libraries, such as linear algebra libraries like Eigen or Armadillo in a C++ environment, and built-in matrix operation functions in a Matlab environment.
[0090] To further suppress jitter in high-noise scenarios, in another optional embodiment, the first control unit can also perform recursive smoothing on the state correction compensation amount. Specifically, the first control unit can retain the compensation amount applied in the previous cycle between control cycles, and perform a weighted average of the compensation amount of the previous cycle and the instantaneous compensation amount calculated based on the topology deviation in the current cycle according to a preset smoothing coefficient, thereby obtaining the smoothed state correction compensation amount. The smoothing coefficient can be set between 0 and 1, with a value closer to 1 enhancing stability and a value closer to 0 improving response speed. The specific value can be determined through simulation and field calibration. This recursive smoothing process can also be implemented using conventional numerical computation or vector computation libraries.
[0091] After generating the state correction compensation, the first control unit applies this compensation to the first pose to obtain the compensated third pose. For poses represented by position coordinates plus heading angle, the first control unit can subtract or add the position compensation component in the state correction compensation from the corresponding position coordinates of the first pose in the opposite direction, and subtract or add the attitude compensation component in the state correction compensation from the heading angle of the first pose in the opposite direction, thereby completing the pose update. For implementations using quaternions or rotation matrices to represent the attitude, the first control unit can construct corresponding micro-rotations based on the attitude compensation components, and apply these micro-rotations to the attitude part of the first pose through quaternion multiplication or rotation matrix multiplication to obtain the updated attitude. The above attitude update operations can be implemented in Python using the scipy.spatial.transform.Rotation interface, and in C++ using the rotation vector and quaternion module in Eigen.
[0092] In this way, without relying on complex models, the difference between the first pose and the second pose constrained by the orbit topology is converted into a topology deviation vector with clear physical meaning. Based on this, a state correction compensation amount with adjustable gain and smoothing characteristics is generated, thereby obtaining the compensated third pose. This provides a reliable basis for the subsequent writing of the state into the internal positioning coordinate system and participation in the next control cycle.
[0093] Regarding the above S105:
[0094] In practical implementation, S105 is used to solidify the third pose, after state correction, into the mobile robot's internal positioning coordinate system, serving as a unified position and attitude reference for the current moment and providing a historical alignment pose source for the next control cycle. Through this step, a closed loop of calculation-correction-writing-reuse can be formed within the control loop, ensuring that odometry recursion and trajectory constraint correction always revolve around the same set of internal positioning states.
[0095] For example, the host controller or vehicle-mounted main control board of the mobile robot pre-establishes an internal positioning coordinate system during system initialization and configures a positioning state register in memory to store the current positioning state and several historical positioning state records. The positioning state can be encapsulated in a structured data format, including fields such as position coordinates, attitude parameters, velocity information, and state quality evaluation indicators. The position coordinates represent the robot's translational position in the internal positioning coordinate system, the attitude parameters represent the robot's orientation, and the state quality indicators mark whether the positioning state has undergone track topology constraint correction, the corresponding timestamp, and the confidence level.
[0096] After calculating the third pose in step S104, the state management unit receives the third pose and its associated timestamp information from the operation and control loop thread and writes it into the aforementioned positioning state register to overwrite the old positioning state record written in the previous control cycle. The writing process can employ atomic updates or double-buffered switching to avoid read-write contention between the navigation module and the control module when reading the positioning state. For example, in a C / C++ environment, access to the positioning state structure can be managed using mutexes or read-write locks, while in a ROS-based implementation, the updated pose can be published using a TF transform tree or shared memory messages.
[0097] In an optional embodiment, to facilitate subsequent fault diagnosis and trajectory playback, the state management unit can also append the third pose generated in each control cycle to the circular buffer or log file in chronological order, while retaining the positioning status of the most recent several cycles, for use in performing rollback or reset operations when abnormal sensor readings or track constraint failures occur.
[0098] For example, when the topology deviation vector of the current cycle is detected to exceed the preset upper limit, the controller can choose not to use the third pose calculated in this cycle, but instead fall back to the positioning state of the previous moment in the buffer to improve the robustness of the system under extreme conditions.
[0099] After completing the write operation within the current control cycle, the state management unit internally records the mapping relationship between the current cycle index and the corresponding third pose. At the start of the next control cycle, in response to the call request of step S102, it reads the most recently written third pose from the positioning state register and provides it as the fourth pose to the odometry recursion and track segment search module. In this way, the third pose naturally evolves into the historical aligned pose of the next cycle in the time dimension, ensuring that track constraint correction always starts from the pose after the previous correction. This continuously suppresses the impact of odometry cumulative error and sudden drift in multi-cycle iterations, ensuring a high degree of consistency between the current positioning state recorded in the internal positioning coordinate system and the actual track geometry.
[0100] Optional, see Figure 2 The flowchart of a method for determining projection pose provided in this application embodiment includes steps S201 to S202, wherein:
[0101] S201: Along the travel direction of the target track segment, based on the fourth pose, determine the upstream topology node and downstream topology node in the track network that are connected to the target track segment and are closest to the fourth pose, wherein the upstream topology node and / or the downstream topology node are fork nodes, intersection nodes and / or U-shaped loop nodes;
[0102] S202: The track search interval is limited to the track segment interval centered on the track position of the fourth pose and not crossing the upstream topology node and the downstream topology node.
[0103] Based on the above embodiments, in order to address the problem that when track segment matching is performed solely based on local geometric relationships, track segments are easily misjudged near complex topological structures such as forks, intersections, or loops, leading to instability in subsequent pose projection and correction references, one embodiment of this application describes the track topology information in a network format and explicitly marks fork nodes, intersection nodes, and U-shaped loop nodes in the track network.
[0104] Specifically, during the system deployment phase, the map building terminal or host computer can collect or import track centerline data based on the on-site track layout, and divide the track geometry into segments, with each segment corresponding to a track segment record. Each track segment has attributes such as start and end coordinates, geometric shape description parameters, and length in its internal positioning coordinate system, and also records the identifiers of the topology nodes connected to it. The connection relationships between track segments are uniformly managed through topology nodes: topology nodes are set at the intersections, bifurcations, or loop closures of track segments, and each topology node is associated with at least two or more track segments. To facilitate subsequent algorithms to perform differentiated processing near nodes, a node type field is added to the topology node record to mark whether the node is a fork node (e.g., Y-shaped or T-shaped bifurcation point), an intersection node (e.g., a crossroads), and / or a U-shaped loop node (e.g., a U-turn loop formed by track self-intersection). The track topology information as a whole constitutes a track network consisting of multiple track segments and multiple topology nodes. During initialization, the first control unit loads the track network into memory and establishes a track segment table and a topology node table, representing the connection relationship between the two through a start / end point index or an adjacency list structure.
[0105] For example, in a C++ environment, a track network can be implemented using Boost.Graph or a custom adjacency list, while in a Python environment, a graph structure library such as NetworkX can be used. The above implementation methods are only examples, and this application does not limit the specific software environment.
[0106] By using the above-mentioned track network modeling method, the information of forks, intersections and U-shaped loops can be explicitly used in the subsequent track segment search, node switching and local search interval limitation process, thereby improving the positioning robustness in complex topology scenarios.
[0107] Furthermore, in a track network with forks, intersections, or U-shaped loops, if the track search interval crosses a topology node, the projection of the first pose onto the target track segment may fall into the node's neighborhood or even be incorrectly projected onto other track segments connected to that node, leading to jumps or erroneous switching during track segment switching. In one embodiment of this application, when determining the projection pose of the first pose, upstream and downstream topology nodes are introduced to limit the track search interval.
[0108] In specific implementation, after determining the target track segment including the fourth pose and obtaining the track-side position of the fourth pose on the track segment through step S103, the first control unit searches for the closest pair of upstream and downstream nodes to the fourth pose in the set of topology nodes directly connected to the target track segment along the travel direction of the target track segment, based on the topology information recorded in the track network. For example, a one-dimensional parameter axis can be established along the track direction of the target track segment, and the parameter values of the topology nodes corresponding to the start and end points or intermediate bifurcation and intersection positions of the track segment can be pre-recorded in a node table. During operation, the first control unit searches forward and backward for the nearest topology nodes with parameter values less than and greater than the track-side position, respectively, based on the track-side parameter values of the fourth pose, and marks them as upstream and downstream topology nodes, respectively. For special nodes marked as bifurcation nodes, intersection nodes, or U-shaped loop nodes, the first control unit can prioritize using them as the boundaries of the track-side search interval to avoid searching across areas where both track geometry and topology change drastically.
[0109] After determining the upstream and downstream topology nodes, the first control unit constructs a candidate track-along search interval centered on the track-along position corresponding to the fourth pose, according to the preset search length parameter. The lower limit of this interval is not less than the track-along position corresponding to the upstream topology node, and the upper limit is not greater than the track-along position corresponding to the downstream topology node, thereby constraining the final track-along search interval to the track segment interval that does not cross the upstream and downstream topology nodes.
[0110] Thus, when the first pose deviates near a node due to odometry error, its projection onto the target track segment is always confined to a single track segment centered on the fourth pose, without extending to other track segments connected by nodes. Subsequently, the first control unit calculates the closest point from the first pose to the target track segment within this restricted track-along search interval in the aforementioned manner, and determines the second pose accordingly. By introducing upstream and downstream topological nodes to impose topological constraints on the track-along search interval, the risk of erroneous track segment projection and cross-node jumps can be significantly reduced near complex nodes such as forks, intersections, and U-shaped loops, thereby further improving the track matching accuracy and state alignment stability of the dual-guided mobile robot in complex track network environments.
[0111] Optional, see Figure 3 The flowchart below illustrates a method for generating state correction compensation amounts according to an embodiment of this application, including steps S301 to S303, wherein:
[0112] S301: Based on the tangent and normal directions of the target track segment, the topological deviation vector is decomposed into a track-along deviation component and a lateral deviation component;
[0113] S302: The lateral deviation component is used as the first compensation component, and the track deviation component is limited within a preset compensation amplitude range and used as the second compensation component.
[0114] S303: The first compensation component and the second compensation component are superimposed to obtain the state correction compensation amount.
[0115] Based on the above embodiments, when a uniform compensation gain is set only based on the overall topology deviation vector, the deviations in the track direction and the lateral direction are amplified equally, which can easily lead to the following problems in high-precision track constraint scenarios: On the one hand, the track deviation is over-corrected, which will disrupt the original speed planning, causing the mobile robot to experience frequent small accelerations and decelerations in the track direction, affecting the smoothness and efficiency of operation; on the other hand, the coupled processing of lateral deviation and track deviation is not conducive to prioritizing the track-keeping capability. In this embodiment, when generating the state correction compensation amount, a tangent-normal coordinate system of the target track segment is introduced to decompose the topology deviation vector in direction and limit the compensation amplitude in the track direction.
[0116] Specifically, after obtaining the second pose and determining its geometric position on the target track segment according to step S103, the first control unit first calculates the tangent direction and normal direction of the target track segment at that position.
[0117] For example, for a track segment described by a polyline sequence, the first control unit can select two or three adjacent sampling points near the arc length position corresponding to the second pose, calculate the local direction vector based on the coordinate difference of these sampling points, and normalize it as the tangent direction. Then, a vector perpendicular to the tangent direction is constructed in the plane as the normal direction. In specific engineering implementations, the above vector difference and normalization operations can be implemented using a conventional vector operation library, for example, using basic linear algebra operations in a C / C++ environment. This application does not limit the specific software library and development language. For track segments described by spline curves or circular arcs, the first derivative of the curve can also be calculated at the curve parameters corresponding to the second pose as the local tangent direction, and then the normal direction can be derived from it. The implementation method can also reuse conventional numerical calculation interfaces.
[0118] After obtaining the tangent and normal directions, the first control unit decomposes the topology deviation vector obtained in step S104 in the aforementioned local coordinate system. Specifically, the planar position deviation component of the topology deviation vector is obtained by taking the inner product with the tangent and normal directions respectively to obtain the along-track deviation component and the lateral deviation component; the attitude deviation component is kept as a separate heading deviation for subsequent processing.
[0119] In this way, it is possible to clearly distinguish between lateral deviations, which have a greater impact on track safety, and along-track deviations, which mainly affect operational sequence and speed planning.
[0120] In one embodiment, the first control unit directly uses the lateral deviation component as the first compensation component to prioritize eliminating the lateral deviation of the mobile robot relative to the track centerline. To balance response speed and noise suppression, the control system can internally configure a gain coefficient close to 1 for the lateral deviation, for example, selecting a specific value within the range of 0.7 to 1.2, with a default value of 1. This coefficient can be appropriately reduced when there is significant measurement noise in the field environment. The above gain parameter can be calibrated and optimized through simulation debugging and trial operation.
[0121] For the track deviation component, the first control unit introduces a preset compensation amplitude range for amplitude limiting before generating the second compensation component. For example, the maximum allowable track position compensation Δs_max within a single cycle can be pre-calculated based on the mobile robot's maximum operating speed v_max, the current control cycle duration T_ctrl, and the allowable acceleration / deceleration margin, and the track deviation component can be clipped within [...]. Within the range of Δs_max, the typical value of Δs_max can be set between 5mm and 30mm. The specific value can be estimated using the formula Δs_max ≈ α·v_max·T_ctrl, where α is a coefficient between 0.1 and 0.5. For industrial mobile robots with a control cycle of 5ms to 20ms and a maximum operating speed of 1m / s, Δs_max can be preferentially set within the range of 10mm to 20mm to avoid excessive instantaneous corrections along the track that could lead to speed scrambling and sudden acceleration changes.
[0122] The limiting operation itself can be implemented through simple comparison and assignment. For example, in software implementation, the logic of "if the deviation is greater than the upper limit, take the upper limit; if it is less than the lower limit, take the lower limit" can be used. The deviation component along the track obtained after the limiting process is used as the second compensation component, which is used to slowly pull back the drift along the track while satisfying the smoothness constraint.
[0123] After obtaining the first and second compensation components, the first control unit constructs a planar position compensation vector in the tangent-normal coordinate system and combines it with the attitude compensation amount corresponding to the heading deviation to form a complete state correction compensation amount. Specifically, the first compensation component is superimposed along the normal direction, and the second compensation component is superimposed along the tangent direction to obtain the position compensation vector; then the heading compensation amount is packaged together as the attitude compensation part. When needed, the first control unit can transform the compensation vector in this local coordinate system back to the internal positioning coordinate system through a known coordinate transformation matrix for unified processing. Subsequently, the state correction compensation amount is applied to the first pose in the aforementioned manner to update and obtain the third pose.
[0124] By performing directional decomposition of the topological deviation vector in the track tangent-normal coordinate system and implementing amplitude limiting for track-side compensation, this embodiment can effectively suppress excessive compensation along the track direction while ensuring lateral track maintenance and attitude stability. This balances positioning accuracy, operational smoothness, and the long-term ability of the operation control system to suppress odometer errors.
[0125] Based on the above embodiments, in order to address the problem that the target track segment switching may not be timely or may be incorrectly switched near the track endpoint when performing pose projection and state correction only within a single track segment, this embodiment further introduces track segment switching processing based on track distance and travel direction, which is used to achieve smooth update of the current anchored track segment to the downstream track segment when approaching the topology node.
[0126] In this way, in complex track networks, mobile robots can avoid logically remaining on the previous track segment or repeatedly switching between adjacent track segments near junctions, thus ensuring the continuity and stability of track constraints.
[0127] Specifically, after completing steps S101 to S104 and obtaining the first pose, second pose, and target orbital segment of the current control cycle, the first control unit can execute the orbital segment switching determination process in each control cycle.
[0128] For example, the first control unit first determines the distance along the track between the first pose and the topological nodes at both ends of the target track segment based on the position of the first pose along the track segment. To this end, the target track segment has been parameterized according to arc length or equivalent track parameters during the prior map construction stage, and the track parameter values of the starting and ending endpoint topological nodes are recorded in the track segment attributes. During operation, the first control unit can project the planar position of the first pose onto the geometric curve of the target track segment to obtain the corresponding track parameter values, and obtain the distance along the track from the first pose to each endpoint topological node by calculating the difference between the first pose and the parameter values of the starting and ending endpoints.
[0129] The calculation of the above-mentioned differences in parameters along the track can be achieved in software through simple real number subtraction and absolute value operations, such as using numpy for scalar operations in a Python environment.
[0130] After obtaining the along-track distances between the first pose and each endpoint topology node, the first control unit determines whether the current first pose has entered the switching neighborhood of a certain endpoint topology node based on a preset node switching threshold. The node switching threshold can be configured according to the track segment length, control cycle duration, and the upper limit of the mobile robot's running speed to ensure that logical track segment updates are triggered in advance when the robot is physically close to a node but has not yet actually crossed the node.
[0131] For example, in scenarios where the track length is between 10m and 50m, the robot's running speed is between 0.5m / s and 2m / s, and the control cycle is between 5ms and 20ms, the node switching threshold can be preferentially set in the range of 0.1m to 0.5m. The specific value can be determined by simulation and on-site debugging. When there is significant positioning noise in the operating environment, the threshold can be appropriately increased to enhance the robustness of the switching.
[0132] On the other hand, the first control unit also uses the travel direction of the first posture to determine whether the topological node at the end of the target track segment is a "downstream node" relative to the current motion trend.
[0133] Specifically, the first control unit can determine the robot's current trajectory based on the current heading angle of the first pose and the tangential direction of the target track segment near the second pose or the first pose. Then, based on the relative orientation between the spatial position of the endpoint topology node on the track segment and the position of the first pose, it can determine whether the travel direction of the first pose points to a certain endpoint topology node. If the angle between the travel direction of the first pose and the direction of the line pointing to the endpoint topology node is less than a preset angle threshold (e.g., the range of 30° to 60°), it is considered that the robot is moving towards the endpoint topology node, and the endpoint topology node can be regarded as a downstream topology node on the current movement path; otherwise, even if the track distance is small, the track segment update in the direction of the node will not be triggered, thereby avoiding erroneous switching due to incorrect direction judgment.
[0134] In a preferred embodiment, the first control unit triggers a track segment switch only when the following conditions are met simultaneously: first, the distance along the track between the first pose and an endpoint topological node of the target track segment is less than a preset node switching threshold; second, the travel direction of the first pose points to the endpoint topological node, i.e., the included angle is less than a preset direction threshold. At this time, based on the track network topology in the prior map, the first control unit selects the track segment most consistent with the current travel direction from the list of track segments connected to the endpoint topological node as the downstream track segment, and updates the current target track segment identifier to the identifier of this downstream track segment. The updated target track segment will participate as a new anchored track segment in step S103 of the next control cycle in the track segment determination and local search interval construction of the fourth pose, thereby achieving a smooth transition from the current track segment to the downstream track segment.
[0135] In practical implementation, to avoid frequent switching of track segment identifiers within adjacent cycles due to measurement noise or instantaneous fluctuations in the odometer near nodes, the first control unit can also introduce a simple hysteresis or state memory mechanism based on the above. For example, after triggering a track segment switch, the new target track segment identifier can be kept unchanged for a preset number of control cycles, or different threshold pairs can be used for entering and exiting the node switch threshold, thereby forming a dual-threshold hysteresis interval. Such optimization measures help to further improve the stability of track segment switching near junctions, intersections, and U-shaped loop points, and this application does not impose strict limitations on this.
[0136] In this way, it is possible to achieve logical switching of track segments consistent with the physical motion process under complex track network topology, avoiding projection failure and state alignment mutation caused by lag in track anchoring information or erroneous switching, thereby further improving the continuity and positioning robustness of the dual-guided mobile robot in the track guidance stage.
[0137] Based on the above embodiments, in the geometry of the mobile robot's body, track projection and deviation calculation are often referenced to the front-end sensor mounting point or the origin of the body coordinate system. However, the robot's actual kinematic center (e.g., the center point of the drive wheel axle) has a fixed lever offset from this reference point. When the robot turns or makes minor posture adjustments on the track, even if the kinematic center still moves approximately along the track centerline, due to the lever effect, an amplified lateral displacement is observed at the reference point, introducing a significant "rotation-induced spurious deviation" into the lateral deviation component of the topological deviation vector. If this spurious deviation is not identified and eliminated, the state correction module will incorrectly treat it as a true lateral deviation for compensation, leading to problems such as over-correction and serpentine oscillation in the control system on narrow channels or curved tracks, which is detrimental to maintaining both track accuracy and smooth operation.
[0138] This application explicitly establishes a rotation-induced lateral deviation component model by introducing the lever arm vector between the kinematic center and the reference point, as well as the heading angle difference between the first and second poses. This model is then subtracted before generating the lateral compensation component, thereby obtaining the net lateral deviation that characterizes the true degree of lateral deviation of the kinematic center and achieving geometric decoupling of the lever arm effect.
[0139] In practical implementation, during the system deployment and calibration phase, the location of the mobile robot's kinematic center is first determined. The kinematic center can be selected based on the chassis structure, such as the midpoint of the drive wheel axis, the geometric center of a four-wheel steering chassis, or the rotation center assumed in the control algorithm. This location has fixed coordinates in the robot's body coordinate system. Simultaneously, based on the definition of the first pose, the location of a reference point representing the first pose is determined, such as the navigation sensor mounting point at the front of the vehicle body, the origin of the body coordinate system, or a virtual reference point used for odometer calculation. Subsequently, the geometric offset between the kinematic center and this reference point is measured or read from the mechanical design data, forming a lever vector represented in the body coordinate system. This lever vector is then written as a static calibration parameter into the configuration file or parameter server of the first control unit. During subsequent operation, the first control unit can directly read this lever vector from the parameter storage for calculating rotationally induced deviations.
[0140] For example, the length of the lever arm from the kinematic center to the front sensor in an industrial mobile robot can be in the range of 0.2m to 1.5m, which varies depending on the size of the vehicle. This application does not limit the specific value.
[0141] Within each control cycle, after obtaining the difference between the first pose and the second pose in the local coordinate system of the target track segment according to step S104, and decomposing the lateral deviation component, the track deviation component and the heading difference accordingly, the first control unit further calculates the change in the robot's rotational attitude around its kinematic center within the current cycle based on the heading angle difference between the first pose and the second pose.
[0142] Specifically, the first control unit can employ the same angle normalization strategy as when calculating the topology deviation vector, reducing the angle difference between the first attitude heading angle and the second attitude along the track tangential direction to a preset angle range to avoid crossing [the specified angle range]. This can lead to discontinuous jumps. The heading angle difference is usually small in numerical terms; for example, it can be controlled within the order of magnitude in a single cycle under conventional orbit correction scenarios.
[0143] After obtaining the lever vector and heading angle difference, the first control unit calls the geometric compensation module to calculate the rotation-induced lateral deviation component caused by the change in attitude around the kinematic center, according to the preset rigid body motion geometry. For example, in the local coordinate system of the target track segment, the lever vector can be projected onto a plane, and a small-angle rotation transformation can be applied to the vector to simulate the robot's attitude change within the control cycle. Then, the difference in projection of the lever endpoints in the track normal direction before and after rotation is compared to obtain the lateral displacement increment caused by rotation, i.e., the rotation-induced lateral deviation component. In a specific implementation, the first control unit can encapsulate a "two-dimensional rigid body rotation" function in the software, taking the lever vector and heading angle difference as inputs and outputting the rotated lever vector. Then, by comparing the component differences between the rotated and unrotated lever vectors in the track normal direction, the lateral displacement component caused by the rotation attitude within that cycle can be calculated.
[0144] It is understood that the above vector rotation and projection operations can be directly implemented using existing linear algebra libraries, such as using NumPy in the Python environment to implement two-dimensional vector rotation and inner product calculation. The specific calling form can be flexibly selected according to the project needs, and this application does not limit it.
[0145] In an optional embodiment, to improve numerical stability, the geometric compensation module can also set an upper limit for the heading angle difference. When the heading angle difference in a single cycle is detected to exceed a preset threshold (e.g., 10° to 15°), the angle difference is clipped according to the threshold, or a degradation strategy is triggered to estimate the rotation-induced lateral deviation using an approximately linear relationship, so as to avoid excessive compensation in abnormally large turning angles, which would affect the overall control stability. This threshold can be initially estimated based on the robot's maximum turning speed, control cycle duration, and upper limit of track curvature through simulation analysis, and further calibrated during the trial operation phase.
[0146] After obtaining the rotation-induced lateral deviation component, the first control unit subtracts it from the original lateral deviation component to obtain the net lateral deviation, which characterizes the degree of true lateral deviation of the kinematic center.
[0147] Specifically, the geometric compensation module treats the component of the topological deviation vector in the normal direction as the "observed lateral deviation," and then treats the rotation-induced lateral deviation calculated from the lever effect as a spurious component. Through differential operations, it obtains the "net lateral deviation," which is closer to the true lateral deviation of the track centerline relative to the robot's kinematic center. Subsequently, when generating the state correction compensation, the state correction module incorporates the aforementioned net lateral deviation as the first compensation component in the construction, and combines it with the second compensation component (after limiting along the track direction) and the heading compensation component to update the first pose.
[0148] In this way, without changing the odometer and sensor hardware layout, the algorithm can effectively eliminate the geometric false lateral deviation caused by the non-coincidence of the sensor installation position and the kinematic center. This makes the lateral deviation component used for track keeping and correction control more accurately reflect the true deviation of the mobile robot's kinematic center from the track centerline. As a result, it significantly reduces the risk of overcorrection and serpentine oscillation in narrow passages, curved tracks, and scenarios with frequent fine-tuning of attitude, thereby improving the stability and safety margin of track tracking.
[0149] Optionally, based on the geometric decoupling of the lever arm, this application further refines the modeling and correction of the rotation-induced lateral deviation component, taking into account the geometric characteristics of curved tracks, small-radius curves, and loop sections. This improves the compensation accuracy in scenarios where trajectory curvature cannot be ignored and reduces systematic errors caused by straight-line approximation. Therefore, in calculating the rotation-induced lateral deviation component, this embodiment distinguishes and models the linear approximation deviation component generated by the difference between the lever arm and the heading angle, and the nonlinear correction deviation component generated by the track curvature, and superimposes them in the normal direction.
[0150] In one optional embodiment, after obtaining the second pose and determining the target track segment, the geometric compensation module first obtains the track tangent direction at the corresponding position of the second pose based on the prior map. Specifically, when constructing the geometric model of the track segment, the prior map can discretize each track segment into several arc-length ordered sampling points, and pre-calculate and store the tangent direction vector and curvature value for adjacent sampling points; or, during runtime, calculate the tangent direction and curvature online using a difference method based on the coordinates of adjacent sampling points. For example, for a track model using a polyline approximation, the geometric compensation module can locate the polyline segment it belongs to based on the arc length parameter corresponding to the second pose, and use the direction vector of the polyline segment as the tangent direction at that point; for a track modeled using a circular arc segment, the tangent direction and radius of curvature can be directly calculated using the direction of the line connecting the center of the circle and the trajectory point. This application does not limit the specific curve modeling method, as long as the tangent unit vector and curvature at the second pose can be queried.
[0151] After obtaining the tangent direction of the track at the second pose, the geometric compensation module defines the tangent direction as the local x-axis in the local coordinate system of the target track segment, and constructs a normal direction perpendicular to it as the local y-axis. In this local coordinate system, the lever vector obtained during the system calibration phase is transformed from the robot body coordinate system to the track local coordinate system, and the projected length of the lever vector in the normal direction is calculated. This projected length reflects the geometric amplification effect of the sensor reference point in the track normal direction when it rotates around the kinematic center. This transformation and projection can be achieved through vector dot product; for example, in software implementation, vector normalization and projection functions provided by a linear algebra library can be called.
[0152] Subsequently, the geometric compensation module combines the aforementioned normal projection length with the heading angle difference within the current control cycle to construct a tangential projection deviation component characterizing the linear approximation error. For example, when the heading angle difference is small (e.g., absolute value less than 10°–15°), a preset functional relationship can be used, with the product of "normal projection length × heading angle difference" or its nonlinear amplified form serving as the linear approximation deviation estimate. When the heading angle difference is large, a saturation function or a limiting function can be introduced to prevent excessive deviation estimation due to linear approximation. The specific function form and threshold can be determined through offline simulation and on-site calibration. For example, different combinations of heading angle difference and stick arm length can be selected in the simulation environment to evaluate the deviation distribution between the linear approximation error and the actual geometric deviation, thereby setting the applicable range and amplification factor for linear approximation.
[0153] After obtaining the tangential projection deviation components, to further consider the influence of the track's own curvature on the rotation-induced lateral deviation, the geometric compensation module determines the track curvature at the target track segment based on the position of the second pose. Specifically, for tracks modeled using a combination of polylines and circular arcs, the curvature of straight segments can be considered zero, and the curvature of circular arc segments can be set to 1 / R, where R is the radius of the circular arc; for tracks modeled using spline curves, the curvature can be calculated by taking the first and second derivatives of the curve's parametric equations.
[0154] For example, the curvature scalar can be pre-calculated and stored for each arc length sampling point during the track construction phase, and the table can be directly looked up via the arc length index during runtime, reducing online computation overhead.
[0155] Based on the aforementioned curvature values, lever vectors, and heading angle differences, the geometric compensation module constructs a curvature correction deviation component characterizing the nonlinear bending features of the track. Intuitively, when the track curvature is large (e.g., the corresponding curvature radius is in the range of 3m to 10m), the same heading angle difference will cause the reference point to have a lateral offset relative to the track centerline that differs from the straight-line assumption. Therefore, an additional correction needs to be introduced on top of the tangential projection deviation generated by the straight-line approximation. In implementation, a set of correction coefficients determined by the curvature range, lever length, and heading angle difference can be preset, or a two-dimensional / three-dimensional lookup table can be constructed. Based on the lookup table, linear interpolation is used to obtain a curvature correction deviation value that matches the current curvature and heading angle difference.
[0156] For example, the absolute value of curvature can be divided into several intervals (such as 0 to 0.02, 0.02 to 0.05, 0.05 to 0.1, etc., corresponding to different radius ranges), and a set of correction factors can be pre-fitted for each interval to amplify or reduce the coefficients of the linear approximation deviation component, thereby obtaining the curvature correction deviation component.
[0157] In one embodiment, to avoid introducing unnecessary corrections in near-straight segments or track segments with large modeling errors, the geometric compensation module can set upper and lower thresholds for curvature. For example, when the absolute value of curvature is less than a first threshold (e.g., 0.01, corresponding to a radius greater than approximately 100m), the curvature correction deviation component is set to zero, retaining only the tangential projection deviation component. When the absolute value of curvature exceeds a second threshold (e.g., corresponding to a radius less than 2m) and is determined to be an abnormal modeling segment, a limiting strategy can be adopted to restrict the curvature correction deviation component to within a preset maximum value, preventing local abnormal curvature from adversely affecting the overall compensation effect. The above threshold range can be selected based on actual track design specifications and simulation results, and this application does not limit it in this regard.
[0158] After constructing the linear approximation deviation component and the curvature correction deviation component, the geometric compensation module performs vector superposition of the two in the orbital normal direction to obtain the final rotation-induced lateral deviation component.
[0159] In practical implementation, both deviation components can be represented as scalar offsets along the track normal direction, and the superposition result can be obtained by directly performing scalar addition. In implementation schemes that need to consider the coupling between the track direction and the normal direction, two-dimensional deviation vectors of the two components in the local coordinate system can be constructed separately, and the rotation-induced deviation vector can be obtained by vector addition. Then, its normal component can be taken as the value of the rotation-induced lateral deviation component. The above operations can be implemented in the controller software using conventional vector operation functions. For example, in a Python environment, this can be achieved using NumPy's vector addition, subtraction, and interpolation functions, or in a C / C++ environment, using basic vector operations or a simple linear algebra library.
[0160] In this way, the rotation-induced lateral deviation component can degenerate into a linear geometric model based on the arm projection and heading angle difference in straight and gently curved sections. In small-radius curves, U-shaped loops, and track sections with large curvature changes, a curvature correction component is introduced for compensation. This improves the accuracy of rotation-induced deviation estimation without significantly increasing computational complexity, providing more accurate basic data for subsequent calculation of net lateral deviation and track alignment and correction control.
[0161] Optionally, the target track section is typically equipped with approximately equidistant lateral repeating structures such as shelf columns, crash barriers, and pallet support frames. While relying solely on track geometry projection and odometer recursion can effectively constrain lateral deviations, in long straight sections, areas with weak texture, or scenarios lacking visual features, the cumulative error of the odometer along the track direction remains difficult to correct effectively. Furthermore, traditional matching methods based on individual "pillars" or "landmarks" are highly sensitive to local occlusion, missing elements, and installation deviations.
[0162] This application further utilizes a track-side environmental observation and processing method based on existing track constraints, which forms a "spatial beat signal" using lateral repeating structures. This transforms the repeating structures that originally caused SLAM mismatches into a spatial measurement reference for auxiliary positioning, thereby providing additional observational support for small positional errors along the track during long-distance travel.
[0163] In practical implementation, the track-side environment observation module can be deployed in the first control unit and interact with onboard LiDAR, depth cameras, or other environmental perception sensors. To obtain a track-side observation sequence with a defined spatial sampling interval, the track-side environment observation module controls the onboard environmental perception sensors to sample at a first spatial sampling interval as they run on the target track segment. This first spatial sampling interval can be implemented in two ways: In one implementation, sensor sampling is triggered at fixed time intervals, and the time interval is converted into an approximately constant spatial interval by combining the instantaneous velocity recorded in the third pose or the first pose. For example, when the robot's typical travel speed is 0.6 m / s to 1.2 m / s, the sampling frequency is set to 60 Hz to 120 Hz to obtain a spatial sampling step size of about 1 cm to 2 cm. In another implementation, the track-side environment observation module maintains a set of track-side sampling trigger thresholds internally based on the track arc length parameters of the first pose or the third pose. When the cumulative displacement of the robot along the track exceeds the preset first spatial sampling interval (e.g., 0.02 m to 0.05 m), an environmental data sampling is triggered. The purpose of collecting environmental observations along the track with a fixed spatial step size can be approximately achieved through any of the above methods.
[0164] Regarding the sampling content, the vehicle-mounted environmental perception sensor can be a side-mounted two-dimensional LiDAR, and the environmental observation module can extract scalar indicators such as feature intensity, distance, or echo quantity corresponding to the shelf column or wall structure from each scan; alternatively, it can be an RGB-D camera or a monocular camera, and after simple edge extraction or template matching, the environmental observation module statistically analyzes the pixel count, average grayscale, or texture response value falling on the repeating structure in the field of view as scalar observation values. This application does not limit the physical meaning of the scalar observation values, as long as they can reflect the periodic changes of the lateral repeating structure along the track direction.
[0165] After completing a single sampling, the track-side environment observation module associates each scalar observation with a track-side position based on the first pose and / or the compensated third pose within the current control cycle. Specifically, the module can use the arc length parameter of the target track segment to map the current position of the first or third pose to arc length coordinates on the track, and use these arc length coordinates as the track-side position index for this scalar observation. For implementations that trigger multiple samplings within the same control cycle, an internal track-side sampling queue can be maintained to record the arc length coordinates and observation value corresponding to the trigger time of each sampling event. As the mobile robot moves along the target track segment, the track-side environment observation module sorts the observation values in ascending order of arc length coordinates, forming a track-side environment observation sequence with track-side position as the independent variable and scalar observation value as the dependent variable.
[0166] In an optional embodiment, to avoid the impact of short-term odometer drift on the accuracy of track position calibration, the track environment observation module can preferentially use the third pose after state correction compensation to provide the track position; when the third pose is not yet stable or is in the system startup phase, the first pose can be used to provide a temporary track position estimate, and subsequent batch recalibration can be performed after the track topology constraint correction is completed.
[0167] After obtaining the track-side environmental observation sequence, the track-side environmental observation module constructs a periodic reference sequence along the track direction based on the repeating pitch recorded in the prior map. For example, when constructing the track model, the prior map can simultaneously record the theoretical pitch along the track direction for each track segment corresponding to the lateral repeating structure (e.g., the centerline of the shelf upright). This pitch can come from field measurement data or design drawings. The track-side environmental observation module internally establishes a reference sequence array corresponding one-to-one with the sampling points of the environmental observation sequence. Based on the ratio of the repeating pitch D to the first spatial sampling interval, it assigns a reference value of an ideal periodic pattern to each sampling point. Specifically, a sine wave, square wave, or calibrated template waveform can be used as a single periodic pattern, repeatedly arranged on several sampling points corresponding to one period length to obtain the periodic reference sequence along the track direction.
[0168] For example, in a Python implementation, the "ideal pillar position phase" corresponding to each sampling point can be calculated based on the sampling point index and the pitch D, and a reference sequence in approximate as a sine wave or square wave can be generated by calling a numerical library. Alternatively, a standard periodic template can be pre-built offline and then repeatedly filled at the sampling points using index modulo. The specific waveform of the periodic reference sequence is not limited, as long as it can spatially reflect the periodic structure corresponding to the repeating pitch D.
[0169] Subsequently, the along-track environment observation module performs point-by-point multiplication on the along-track environment observation sequence and the periodic reference sequence to obtain the modulated observation sequence. In implementation, two one-dimensional arrays of equal length can be multiplied item by item at index k in the program, and the product result can be written into a new array to form the modulated observation sequence.
[0170] In the vectorized implementation, the array multiplication interface provided by the numerical computing library can be used to perform pointwise multiplication on the entire sequence at once. For example, calling the array multiplication function in NumPy in the Python environment can complete the item-by-item multiplication of a large number of data points while ensuring real-time performance. From a signal processing perspective, this pointwise multiplication operation is equivalent to performing a kind of "synchronous modulation" on the original environmental observation signal in the spatial domain, using a reference sequence to explicitly highlight the periodic components in the original observation, thus providing a foundation for subsequent extraction of beat effects.
[0171] After modulation, to extract the low-frequency envelope characterizing the beat effect of the lateral repeating structure from the modulated observation sequence, the track-side environment observation module performs a spatial low-pass filtering operation on the modulated sequence. Specifically, the modulated observation sequence can be regarded as a discrete spatial signal of the track coordinates. According to the expected beat spatial period, an appropriate low-pass cutoff frequency is set in the frequency domain or a moving average window length is set in the time domain. For example, when the first spatial sampling interval is 0.02m and the repeating pitch D is 0.8m to 1.2m, the low-frequency components corresponding to the beat effect in the modulated observation sequence change slowly in space. The track-side environment observation module can select a sliding window covering a spatial length of 0.4m to 1.0m as the low-pass filtering window, perform a weighted average of the modulated observation values within the window, and output a smoothed low-frequency beat envelope sequence.
[0172] For example, a finite impulse response (FIR) filter or a simple moving average filter can be used, and the window length and weight distribution can be adjusted experimentally to balance the need to suppress local noise and preserve the beat envelope shape.
[0173] In a preferred embodiment, to improve robustness to local occlusion, missing pillars, or environmental changes, the along-track environmental observation module can preprocess the amplitude of the modulated observation sequence. For example, it can limit the amplitude of anomalous peaks, mark sample points below a certain signal-to-noise ratio threshold as low-confidence and assign them smaller weights during low-pass filtering. It can also employ bidirectional filtering or exponential smoothing to reduce the impact of single-point anomalies. The low-pass filtering operation can also be implemented using a general-purpose numerical computing library, such as calling the one-dimensional convolution function or filtering function in scipy.signal in a Python environment; the specific software environment is not limited.
[0174] In this way, without relying on complex image feature matching or detailed 3D modeling, the track-side environment observation module modulates the original scalar observations along the track direction, which are subject to noise interference, point-by-point with a periodic reference sequence with a known repeating pitch, and applies a low-pass filter in the spatial domain to obtain a smooth spatial low-frequency beat envelope sequence. This beat envelope sequence changes slowly on a spatial scale and has strong anti-interference capabilities against the absence of individual repeating structures, local occlusion, or fluctuations in reflection intensity.
[0175] Optionally, even if the spatial low-frequency beat envelope sequence has been extracted from the track-side environmental observation sequence in the aforementioned manner, a problem may still exist: how to convert the periodic phase information implicit in the beat envelope into a physical position offset with sub-pitch accuracy that can be directly used to correct the track-side coordinates of the third pose. If only a rough trend of the envelope amplitude or a simple threshold is used for judgment, it is difficult to accurately determine which phase position the mobile robot is in within a single beat spatial period, thus making it difficult to fully utilize the ability of the beat signal to suppress track-side cumulative errors under long-distance operation conditions.
[0176] In one optional implementation, an along-track phase calculation submodule can be set in the first control unit. This module receives the spatial low-frequency beat envelope sequence and its corresponding along-track position index output by the beat extraction module. Within each control cycle, the along-track phase calculation submodule first analyzes the local morphology of the beat envelope within a preset sliding window centered on the currently interesting along-track position. The sliding window can be symmetrically expanded around the along-track position corresponding to the third pose, and the coverage length can be configured according to the size of the beat spatial period and the environmental noise level. For example, it can cover 1 to 2 beat spatial periods, and the corresponding along-track length can be calibrated and determined within the range of 3m to 15m.
[0177] Within the sliding window, the along-track phase calculation submodule identifies the locations of antinodes (local maxima) and / or nodes (local minima) in the envelope sequence using a local extremum detection method. Extremum detection can be implemented using a simple neighborhood comparison strategy, such as determining whether the envelope value of each candidate sampling point is greater than or less than several adjacent sampling points. In scenarios with high noise suppression requirements, a one-dimensional smoothing filter can be performed on the beat envelope sequence before detection, or an extremum detection method based on first-order derivative zero-crossing can be used. In actual implementation, the peak detection interface in an existing signal processing library can be called to complete the above local extremum calibration; the manual does not specify specific limitations on this.
[0178] After obtaining the set of antinodes and / or wave nodes within the sliding window, the track-side phase calculation submodule selects the antinode or wave node closest to the target sampling point (e.g., the envelope sample closest to the current third pose track-side position) as the phase reference point for the target sampling point in the current control cycle. By calculating the distance between the track-side position of the target sampling point and the track-side position of the phase reference point, a relative displacement falling within half of the beat space cycle can be obtained. This relative displacement can be regarded as the spatial representation of the relative phase of the mobile robot in the current beat space cycle. To further improve the positional accuracy of the phase reference point, during the determination of extreme positions, quadratic polynomial fitting or spline interpolation can be used in the neighborhood of the extreme point to refine the estimation of the extreme track-side position.
[0179] In an optional implementation, to prevent occasional noise extrema from being misclassified as valid antinodes or nodes, the track-side phase calculation submodule can also set a minimum threshold for the envelope amplitude of candidate extrema and set a reasonable range constraint on the track-side spacing between adjacent extrema. For example, when the envelope amplitude of a candidate extrema is significantly lower than the historical average level, or when the track-side spacing between it and its adjacent extrema deviates significantly from the typical range of the preset beat space period, the extrema can be marked as low confidence and eliminated, and the second-best extrema can be selected as the current phase reference point, thereby improving the reliability of the relative phase estimation.
[0180] After obtaining the relative phase quantity, the track-side phase calculation submodule converts the relative phase quantity into the track-side position offset along the target track segment based on the preset conversion relationship between the beat space period and the repeating pitch. The beat space period can be estimated during system deployment or offline calibration using measured beat envelope data on a calibration track of known length. For example, the average track-side spacing between several consecutive antinodes can be statistically analyzed, and this average value can be used as the beat space period. The repeating pitch is given by the geometric layout parameters of the lateral repeating structure recorded in the prior map. For example, the center distance between the shelf uprights can be configured within the range of 0.8m to 1.5m. Based on the proportional relationship between the beat space period and the repeating pitch, the conversion coefficient from "beat phase change" to "track-side physical displacement" can be pre-calculated. During runtime, the relative phase quantity is directly mapped to the track-side physical position offset by looking up a table or performing simple multiplication. To avoid abrupt changes in track position due to excessive single-cycle correction, the track position offset can be limited to a certain percentage range of the repeating pitch, such as 20% to 40%. The specific value can be determined by combining simulation results and field tests.
[0181] After calculating the track-side position offset, the track-side phase calculation submodule uses this offset as a track-side environment correction and adds it to the track-side position component recorded in the current third pose to update the position of the third pose in the track-side direction. In a simple implementation, the track-side environment correction can be directly added to the track-side coordinates of the third pose to obtain the updated track-side coordinates. In embodiments where the continuity of position changes is more critical, a weighted average can be performed on the track-side environment correction calculated in the current cycle and the correction applied in the previous cycle to achieve a recursively smooth track-side correction sequence, further reducing the instantaneous fluctuations caused by single phase estimation errors.
[0182] It is understandable that the above superposition and smoothing operations can be completed through conventional vector addition and subtraction and scalar multiplication. This can be implemented in embedded controllers using fixed-point or floating-point operations, or in host computer simulation environments using numerical computation libraries.
[0183] In this way, based on the existing track geometry constraints and odometer recursive state alignment, a track-side phase calculation and high-precision position correction process based on spatial differential envelope is introduced. This enables the system to effectively suppress the growth of track-side cumulative errors under extreme conditions such as long straight sections, weak texture areas, and multiple round trips, and significantly improve the positioning accuracy and operational robustness of the dual-guided mobile robot in the track-side direction.
[0184] Based on the same inventive concept, this application also provides a dual-guided mode mobile robot control system corresponding to a dual-guided mode mobile robot control method. Since the principle of the system in this application is similar to the dual-guided mode mobile robot control method described above, the implementation of the system can refer to the implementation of the method, and the repeated parts will not be described again.
[0185] Reference Figure 4 The diagram shown is a schematic of a dual-guided mobile robot control system provided in an embodiment of this application. The system includes:
[0186] The pose update module 10 is used to recursively obtain the internal motion pose of the mobile robot based on the motion measurement data collected by the vehicle odometer within the control cycle, as the first pose; to obtain the positioning state of the mobile robot written into the internal positioning coordinate system in the previous control cycle, as the fourth pose; and to write the compensated third pose into the internal positioning coordinate system as the current positioning state of the mobile robot, and to use the third pose as the fourth pose in the next control cycle.
[0187] The track segment search module 20 determines a target track segment including the fourth pose based on the track topology information recorded in the prior map; and determines the projection pose of the first pose on the target track segment as the second pose within a preset track search interval centered on the track position corresponding to the fourth pose in the coordinate system where the target track segment is located.
[0188] The state correction module 30 calculates a topology deviation vector based on the pose difference between the first pose and the second pose; and generates a state correction compensation amount based on the topology deviation vector, and applies the state correction compensation amount to the first pose to obtain a compensated third pose.
[0189] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application.
Claims
1. A control method for a dual-guided mobile robot, characterized in that, include: Within the control cycle, the internal motion pose of the mobile robot is recursively obtained based on the motion measurement data collected by the on-board odometer, which serves as the first pose. Obtain the positioning state of the mobile robot written into the internal positioning coordinate system in the previous control cycle, and use it as the fourth pose; Based on the track topology information recorded in the prior map, the target track segment including the fourth pose is determined; In the coordinate system where the target track segment is located, within a preset track search interval centered on the track position corresponding to the fourth pose, the projection pose of the first pose on the target track segment is determined as the second pose. Calculate the topology deviation vector based on the pose difference between the first pose and the second pose; A state correction compensation amount is generated based on the topology deviation vector, and the state correction compensation amount is applied to the first pose to obtain a compensated third pose. The generated state correction compensation amount includes: decomposing the topological deviation vector into a track-along deviation component and a lateral deviation component based on the tangent direction and normal direction of the target track segment; using the lateral deviation component as the first compensation component, and limiting the track-along deviation component within a preset compensation amplitude range as the second compensation component; and superimposing the first compensation component and the second compensation component to obtain the state correction compensation amount. The step of using the lateral deviation component as the first compensation component includes: obtaining the lever vector between the kinematic center of the mobile robot and the reference point used to characterize the first pose; calculating the heading angle difference between the first pose and the second pose; and calculating the rotation-induced lateral deviation component caused by the rotational attitude of the mobile robot around its kinematic center according to a preset geometric relationship based on the lever vector and the heading angle difference. Subtracting the rotation-induced lateral deviation component from the lateral deviation component yields the net lateral deviation characterizing the true degree of lateral deviation of the kinematic center, and the net lateral deviation is used as the first compensation component. The third pose is written into the internal positioning coordinate system of the mobile robot as the current positioning state of the mobile robot, and the third pose is used as the fourth pose in the next control cycle.
2. The dual-guided mobile robot control method according to claim 1, characterized in that, The track topology information includes: a track network consisting of multiple track segments and multiple topology nodes located at the connection points of the multiple track segments, wherein the topology nodes include branch nodes, intersection nodes and / or U-shaped loop nodes.
3. The dual-guided mobile robot control method according to claim 2, characterized in that, Determining the projection pose of the first pose on the target track segment includes: Along the travel direction of the target track segment, based on the fourth pose, determine the upstream topology node and downstream topology node in the track network that are connected to the target track segment and are closest to the fourth pose, wherein the upstream topology node and / or the downstream topology node are fork nodes, intersection nodes and / or U-shaped loop nodes; The track search interval is limited to the track segment interval centered on the track position of the fourth pose and not crossing the upstream topology node and the downstream topology node.
4. A dual-guided mobile robot control method according to any one of claims 1 to 3, characterized in that, Also includes: Based on the track distance between the first pose and the topological node at the endpoint of the target track segment, and the direction of travel of the mobile robot, it is determined whether to perform track segment switching. When the distance along the track is less than a preset node switching threshold and the travel direction of the first pose points to the endpoint topology node, the target track segment is updated to a downstream track segment connected to the endpoint topology node.
5. The dual-guided mobile robot control method according to claim 1, characterized in that, The calculation of the rotation-induced lateral deviation component includes: Obtain the tangent direction of the target track segment at the second pose, and calculate the projection length of the lever vector in the direction perpendicular to the tangent. Based on the projection length and the heading angle difference, a tangential projection deviation component characterizing the linear approximation error is constructed; the track curvature is determined based on the position of the second pose on the target track segment, and a curvature correction deviation component characterizing the nonlinear bending characteristics of the track is constructed based on the track curvature, the arm vector, and the heading angle difference. The rotation-induced lateral deviation component is obtained by vector superposition of the tangential projection deviation component and the curvature correction deviation component.
6. The dual-guided mobile robot control method according to claim 1, characterized in that, The method further includes: The vehicle-mounted environmental perception sensor is controlled to sample along the track direction on the target track segment at a first spatial sampling interval to obtain a set of scalar observations characterizing the lateral repeating structure arranged along the target track segment; Based on the first pose and / or the third pose, each scalar observation is associated with the track position to form a track-side environment observation sequence with the track position as the independent variable. Based on the repeating pitches recorded in the prior map, a periodic reference sequence along the track direction is constructed, which is used to characterize the ideal spatial periodic distribution of lateral repeating structures with the repeating pitches. Perform a point-by-point multiplication operation on the along-track environmental observation sequence and the periodic reference sequence to obtain the modulated observation sequence; Spatial low-pass filtering is performed on the modulated observation sequence to extract the spatial low-frequency beat envelope sequence that characterizes the beat effect of the lateral repeating structure.
7. The dual-guided mobile robot control method according to claim 6, characterized in that, The method further includes: In the spatial low-frequency beat envelope sequence, the track-side positions corresponding to adjacent antinodes and / or wave nodes are detected, and the relative phase quantity of the mobile robot in a single beat spatial period is determined based on the track-side distance of the sampling point relative to the nearest antinode and / or wave node. Based on the preset conversion relationship between the beat space period and the repeating pitch, the relative phase quantity is converted into the track position offset along the target track segment to obtain the estimated physical coordinate value along the track direction, which is used as the track environment correction quantity. The along-track environment correction is superimposed on the along-track position component of the third pose to update the position of the third pose in the along-track direction.
8. A dual-guided mobile robot control system, characterized in that, include: The pose update module is used to recursively obtain the internal motion pose of the mobile robot based on the motion measurement data collected by the on-board odometer within the control cycle, and use it as the first pose. The control is used to obtain the positioning state of the mobile robot written into the internal positioning coordinate system in the previous control cycle as the fourth pose; and to write the compensated third pose into the internal positioning coordinate system as the current positioning state of the mobile robot, and to use the third pose as the fourth pose in the next control cycle. The track segment search module determines the target track segment including the fourth pose based on the track topology information recorded in the prior map. And to determine, within a preset track-along search interval centered on the track-along position corresponding to the fourth pose, the projected pose of the first pose on the target track segment in the coordinate system where the target track segment is located, as the second pose; The state correction module calculates a topology deviation vector based on the pose difference between the first pose and the second pose; and A state correction compensation amount is generated based on the topology deviation vector, and the state correction compensation amount is applied to the first pose to obtain a compensated third pose. The generated state correction compensation amount includes: decomposing the topological deviation vector into a track-along deviation component and a lateral deviation component based on the tangent direction and normal direction of the target track segment; using the lateral deviation component as the first compensation component, and limiting the track-along deviation component within a preset compensation amplitude range as the second compensation component; and superimposing the first compensation component and the second compensation component to obtain the state correction compensation amount. The step of using the lateral deviation component as the first compensation component includes: obtaining the lever vector between the kinematic center of the mobile robot and the reference point used to characterize the first pose; calculating the heading angle difference between the first pose and the second pose; and calculating the rotation-induced lateral deviation component caused by the rotational attitude of the mobile robot around its kinematic center according to a preset geometric relationship based on the lever vector and the heading angle difference. Subtracting the rotation-induced lateral deviation component from the lateral deviation component yields the net lateral deviation, which characterizes the true degree of lateral deviation of the kinematic center, and the net lateral deviation is used as the first compensation component.