AGV double vehicle linkage from vehicle positioning method, device, equipment and medium
Patent Information
- Application Number
- CN202610677772.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-05-18
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2046-05-18
Smart Images

Figure CN122239808B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of intelligent industrial logistics technology, and in particular to a method, device, equipment and medium for AGV dual-vehicle linkage slave vehicle positioning. Background Technology
[0002] In the assembly and transfer of ultra-long and ultra-heavy materials such as electric buses, aircraft parts, and heavy tooling, master-slave dual-vehicle linkage omnidirectional AGVs (Automated Guided Vehicles) have become important engineering solutions due to their strong load-bearing capacity, large support span, and flexible attitude adjustment. The effectiveness of dual-vehicle linkage control highly depends on the slave vehicle's real-time and accurate acquisition of its own global pose and the relative pose of the master and slave vehicles. In heavy-duty omnidirectional AGV dual-vehicle linkage scenarios, the master and slave vehicles typically need to maintain synchronous movement under long support spans and high loads to ensure attitude stability and path tracking accuracy when handling large materials.
[0003] In existing technologies, vehicle positioning often relies on one or a few data sources, such as single encoder trajectory estimation, single laser positioning, or single visual observation. Furthermore, the sampling frequencies, timestamp references, and coordinate representation methods of each sensor are typically inconsistent, making it difficult for the slave vehicle to continuously obtain reliable global pose and master-slave relative pose information under a unified spatiotemporal reference. Especially under heavy-load conditions, factors such as tire slippage, changes in ground adhesion, vehicle obstruction, glare interference, and communication link fluctuations further amplify problems like odometer drift, intermittent laser observation, and unstable visual recognition. This causes lag, jumps, or accumulated deviations in slave vehicle pose estimation, thereby weakening the distance maintenance, heading synchronization, and lateral tracking capabilities in dual-vehicle linkage control.
[0004] On the other hand, existing solutions are usually rather crude in their handling of observation effectiveness and abnormal working conditions. They lack a mechanism for the coordinated fusion and consistency verification of laser absolute pose observation and visual relative observation, and they also lack graded degradation and safety protection strategies when single-source failure, dual-source failure or safety interlock triggering occurs. This can easily cause interruption or incorrect updating of the vehicle positioning output, which in turn leads to an increase in the synchronization error between the two vehicles, resulting in insufficient stability of the vehicle tracking control in the dual-vehicle linkage scenario of heavy-duty omnidirectional AGV.
[0005] Therefore, there is an urgent need for a new AGV dual-vehicle linkage slave vehicle positioning method to solve the technical problem of insufficient slave vehicle tracking control stability in heavy-duty omnidirectional AGV dual-vehicle linkage scenarios in existing technologies. Summary of the Invention
[0006] The embodiments of the present invention provide a method, device, equipment and medium for slave vehicle positioning in dual-vehicle linkage of AGV, which aims to solve the technical problem of insufficient stability of slave vehicle tracking control in heavy-duty omnidirectional AGV dual-vehicle linkage scenarios in the prior art.
[0007] In a first aspect, embodiments of the present invention provide an AGV dual-vehicle linkage slave vehicle positioning method, the method comprising: Acquire multi-source data and align it to a unified fusion period and coordinate reference. The multi-source data includes vehicle encoder data, vehicle laser positioning data, master vehicle state data, and relative observation data based on preset visual identifiers. Based on a preset vehicle omnidirectional kinematics model, perform extended Kalman filtering state prediction using the vehicle encoder data to obtain a priori state estimate of the vehicle. Update the priori state estimate using the vehicle laser positioning data. Evaluate the effectiveness of the absolute pose observations corresponding to the vehicle laser positioning data and the relative observation data, and determine the validity of the evaluation. Construct absolute and relative observation models; based on the absolute and relative observation models, perform sequential measurement updates and consistency checks on the prior state estimates to obtain the fused global pose of the slave vehicle; calculate the master-slave vehicle pose error based on the fused global pose of the slave vehicle and the master vehicle state data, and output the fused global pose and the master-slave vehicle pose error at a fixed control frequency; continuously monitor the validity and safety interlock status of the multi-source data, and when an anomaly is detected, determine the anomaly form based on preset anomaly judgment rules, and execute the corresponding degradation fusion strategy or safety protection control according to the anomaly form.
[0008] Secondly, embodiments of the present invention also provide an AGV dual-vehicle linkage slave vehicle positioning device, used to execute the AGV dual-vehicle linkage slave vehicle positioning method described above, comprising: a data alignment unit, used to acquire multi-source data and align the multi-source data to a unified fusion period and coordinate reference, wherein the multi-source data includes slave vehicle encoder data, slave vehicle laser positioning data, master vehicle status data, and relative observation data based on preset visual identifiers; a state prediction and update unit, used to perform extended Kalman filtering state prediction based on a preset slave vehicle omnidirectional kinematic model and in combination with the slave vehicle encoder data to obtain a priori state estimate of the slave vehicle, and to update the priori state estimate through observation using the slave vehicle laser positioning data; and an observation evaluation and modeling unit, used to evaluate the absolute position corresponding to the slave vehicle laser positioning data. The system performs validity assessments on the pose observations and relative observation data, and constructs absolute and relative observation models respectively when the assessment is valid. A measurement update and verification unit performs sequential measurement updates and consistency checks on the prior state estimates based on the absolute and relative observation models to obtain the fused global pose of the slave vehicle. An error calculation and output unit calculates the master-slave vehicle pose error based on the fused global pose of the slave vehicle and the master vehicle state data, and outputs the fused global pose and the master-slave vehicle pose error at a fixed control frequency. An anomaly monitoring and protection unit continuously monitors the validity and safety interlock status of the multi-source data. When an anomaly is detected, it determines the anomaly type based on preset anomaly judgment rules and executes corresponding degradation fusion strategies or safety protection controls according to the anomaly type.
[0009] Thirdly, embodiments of the present invention also provide a computer device, the computer device including a memory and a processor connected to the memory; the memory is used to store a computer program; the processor is used to run the computer program stored in the memory to perform the steps of the above-described AGV dual-vehicle linkage slave vehicle positioning method.
[0010] Fourthly, embodiments of the present invention also provide a computer-readable storage medium storing a computer program, the computer program including program instructions, which, when executed by a processor, can implement the steps of the above-described AGV dual-vehicle linkage slave vehicle positioning method.
[0011] Compared with the prior art, the beneficial effects of the present invention are: In the technical solution of this invention, the AGV dual-vehicle linkage slave positioning method acquires slave encoder, laser positioning, master vehicle status, and relative observation data based on visual identifiers, and aligns them to a unified fusion cycle and coordinate reference. Based on the slave omnidirectional kinematic model and encoder data, extended Kalman filter state prediction is performed, followed by laser absolute pose observation for updating. Simultaneously, the effectiveness of laser absolute observation and visual relative observation is evaluated, and corresponding observation models are constructed. Sequential measurement updates and consistency checks are performed to obtain the slave vehicle's fused global pose. The master-slave pose error is then calculated and output at a fixed frequency. When multi-source data is abnormal or safety interlocks are triggered, downgraded fusion or safety protection control is performed according to preset rules. This solution improves the continuity, accuracy, and anti-interference capability of slave positioning in heavy-duty omnidirectional AGV dual-vehicle linkage scenarios, and enhances tracking control stability. Attached Figure Description
[0012] To more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the following description of the embodiments will be briefly introduced. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0013] Figure 1 A flowchart of the AGV dual-vehicle linkage slave vehicle positioning method provided by the present invention; Figure 2 This is the first sub-flowchart of the AGV dual-vehicle linkage slave vehicle positioning method provided by the present invention; Figure 3 This is the second sub-flowchart of the AGV dual-vehicle linkage slave vehicle positioning method provided by the present invention; Figure 4 This is the third sub-flowchart of the AGV dual-vehicle linkage slave vehicle positioning method provided by the present invention; Figure 5 This is the fourth sub-flowchart of the AGV dual-vehicle linkage slave vehicle positioning method provided by the present invention; Figure 6 This is the fifth sub-flowchart of the AGV dual-vehicle linkage slave vehicle positioning method provided by the present invention; Figure 7 The sixth sub-flowchart of the AGV dual-vehicle linkage slave vehicle positioning method provided by the present invention; Figure 8 A schematic block diagram of a unit of the AGV dual-vehicle linkage slave vehicle positioning device provided by the present invention; Figure 9 A schematic block diagram of a computer device provided in an embodiment of the present invention; Figure 10A top-view diagram showing the arrangement and working distance of the 3D camera illuminating the reflective film at the rear of the master vehicle in the AGV dual-vehicle linkage slave vehicle positioning method provided by the present invention. Figure 11 This is a rear-view diagram of the end face showing the installation and symmetrical arrangement of the reflective film at the rear of the master vehicle in the AGV dual-vehicle linkage slave vehicle positioning method provided by the present invention. Detailed Implementation
[0014] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0015] It should be understood that, when used in this specification and the appended claims, the terms "comprising" and "including" indicate the presence of the described features, integrals, steps, operations, elements and / or components, but do not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components and / or collections thereof.
[0016] It should also be understood that the terminology used in this specification is for the purpose of describing embodiments only and is not intended to limit the invention. As used in this specification and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms unless the context clearly indicates otherwise.
[0017] It should also be further understood that the term "and / or" as used in this specification and the appended claims refers to any combination of one or more of the associated listed items and all possible combinations, and includes such combinations.
[0018] In order to solve the technical problem of insufficient stability of slave vehicle tracking control in heavy-duty omnidirectional AGV dual-vehicle linkage scenarios in the prior art, this invention discloses a slave vehicle positioning method for dual-vehicle linkage of AGVs.
[0019] Specifically, the AGV dual-vehicle linkage slave vehicle positioning method of the present invention relies on a dedicated positioning module deployed on the slave vehicle side and a master-slave vehicle collaborative hardware architecture.
[0020] The hardware infrastructure mainly includes a local sensor group for the vehicle, a communication and visual identification unit for the main vehicle, and a computing and control interface unit for the vehicle. The local sensor group is fixedly installed on the vehicle chassis and body structure, specifically including a driving incremental encoder, a steering multi-turn absolute encoder, a laser positioning unit, and a 3D camera. The driving incremental encoder and the steering multi-turn absolute encoder are coupled to the drive wheel assembly and steering mechanism of the vehicle's omnidirectional chassis, respectively, to collect wheel motion pulses and steering angles in real time to calculate the omnidirectional speed input of the vehicle. The laser positioning unit is installed on the top or side of the vehicle body in an unobstructed position, used to scan the surrounding environmental features and output the absolute pose observation of the vehicle in the global coordinate system. The 3D camera is rigidly installed at the centerline of the front of the vehicle, with its optical axis pointing longitudinally towards the rear of the main vehicle, used to collect 3D spatial data of preset visual identification marks at the rear of the main vehicle. The main vehicle communication and visual identification unit is deployed on the side of the main vehicle. Two thin reflective films are symmetrically arranged on the rear end face of the main vehicle about the vehicle centerline as preset visual identifications. The center distance between the two reflective films is fixed and the surface has high reflectivity to ensure that the 3D camera can stably identify within the preset working distance.
[0021] The master vehicle control system integrates an industrial-grade high-performance Bluetooth communication module, used to periodically broadcast timestamped master vehicle status data frames according to a custom communication protocol. These master vehicle status data frames include the master vehicle's global pose, omnidirectional motion vector, and safety interlock signals. The slave vehicle computing and control interface unit is integrated into the slave vehicle's onboard industrial control computer or dedicated positioning controller, internally configured with a real-time processor and a multi-source data bus interface. This unit connects to the slave vehicle's local sensor group via an industrial communication link, establishes bidirectional data interaction with the master vehicle's Bluetooth module via a wireless communication link, and connects to the slave vehicle's motion controller and safety actuators via a control bus. The slave vehicle computing and control interface unit is responsible for performing timestamp alignment of multi-source data, coordinate extrinsic parameter transformation, extended Kalman filter state prediction and measurement update, master-slave error calculation, and anomaly-tolerant logic operations. It then sends the final output of the slave vehicle's fused global pose and the master-slave vehicle pose error to the slave vehicle motion control interface at a fixed control frequency. Simultaneously, it receives safety interlock status in real time to trigger degradation fusion or safety protection commands.
[0022] The aforementioned hardware infrastructure achieves physical interconnection and data interoperability through standardized electrical interfaces and communication protocols, providing high-frequency, low-latency, multi-modal data acquisition channels and real-time computing power support for the AGV dual-vehicle linkage slave positioning method of this invention, ensuring stable operation in heavy-load, high-interference industrial environments.
[0023] Reference Figures 1 to 7 The AGV dual-vehicle linkage slave vehicle positioning method includes the following steps: S110. Acquire multi-source data and align the multi-source data to a unified fusion period and coordinate reference. The multi-source data includes vehicle encoder data, vehicle laser positioning data, master vehicle status data, and relative observation data based on preset visual labels. S120. Based on the preset omnidirectional kinematic model of the vehicle, the state prediction of the vehicle is performed by extended Kalman filtering in combination with the encoder data of the vehicle to obtain the prior state estimate of the vehicle, and the prior state estimate is updated by observation using the laser positioning data of the vehicle. S130. Evaluate the effectiveness of the absolute pose observation and the relative observation data corresponding to the laser positioning data of the vehicle, and construct the absolute observation model and the relative observation model respectively when the evaluation is effective. S140. Based on the absolute observation model and the relative observation model, perform sequential measurement update and consistency check on the prior state estimate to obtain the vehicle-fused global pose. S150. Based on the fused global pose of the slave vehicle and the state data of the master vehicle, calculate the pose error between the master and slave vehicles, and output the fused global pose and the pose error between the master and slave vehicles at a fixed control frequency. S160. Continuously monitor the validity and security interlock status of the multi-source data. When an anomaly is detected, determine the anomaly type based on preset anomaly judgment rules, and execute the corresponding degradation fusion strategy or security protection control according to the anomaly type.
[0024] First, the system acquires multi-source data and aligns it to a unified fusion period and coordinate reference. The vehicle positioning module receives timestamped data frames from the main vehicle control system via an industrial-grade wireless communication link and parses them to obtain the main vehicle status data. Simultaneously, the system locally acquires encoder data and laser positioning data from the vehicle, and uses a 3D camera to collect environmental point cloud data to calculate relative observation data based on preset visual identifiers. To eliminate timing misalignment caused by differences in sampling frequencies among the multi-source sensors, the system uses a preset fusion period as the time reference and performs linear interpolation or extrapolation alignment using the timestamps of each data frame. Subsequently, the laser positioning data from the vehicle and the relative observation data based on preset visual identifiers are uniformly transformed to the vehicle body coordinate system or the global coordinate system using a pre-calibrated installation extrinsic parameter matrix, thus unifying the coordinate reference.
[0025] Next, based on the preset omnidirectional kinematic model of the vehicle, and combined with the encoder data of the vehicle, extended Kalman filtering is performed to predict the state of the vehicle, obtaining a prior state estimate of the vehicle. This prior state estimate is then updated using the laser positioning data of the vehicle. The system constructs a six-dimensional state vector: ; in, Let be the slave vehicle state vector at the k-th fusion cycle. Let x be the x-coordinate of the vehicle in the global coordinate system at the k-th fusion cycle time; Let be the ordinate of the vehicle in the global coordinate system at time k of the fusion cycle. Let the heading angle of the vehicle in the global coordinate system be the value at time k of the fusion cycle. For the kth fusion cycle, the longitudinal velocity component of the vehicle in the vehicle coordinate system is taken from the vehicle body coordinate system. For the kth fusion cycle, the lateral velocity component of the vehicle in the vehicle coordinate system is taken from the vehicle body coordinate system. Let be the angular velocity of the vehicle around the vertical axis at the k-th fusion cycle; T represents the matrix transpose operation. That is, the pose of the vehicle in the global coordinate system. That is, the omnidirectional planar velocity components of the vehicle in the vehicle coordinate system. That is, the angular velocity about the vertical axis.
[0026] Based on the omnidirectional velocity input of the current cycle calculated from the encoder data, the discrete state transition equations are constructed by substituting them into the omnidirectional kinematic model of the vehicle: ; ; ; in, The prior pose of the vehicle at time k is calculated based on the state at time k-1. Let the posterior pose of the vehicle be at time k-1. The input component is the omnidirectional velocity of the vehicle at time k-1; This refers to the time step of the system control cycle or fusion cycle.
[0027] The state transition equation is used to integrally extrapolate the state at the previous time step to obtain the prior state estimate, and the state transition Jacobian matrix is calculated to update the prediction covariance matrix. Based on this, an absolute observation model is constructed using the vehicle laser positioning data as the observation quantity. The first Kalman gain is calculated, and the prior state estimate is updated by absolute pose observation to obtain the updated state estimate, thereby effectively suppressing the cumulative drift of pure track extrapolation.
[0028] Subsequently, the validity of the absolute pose observations and relative observation data corresponding to the vehicle laser positioning data is evaluated, and absolute observation models and relative observation models are constructed respectively when the evaluation is valid. The system determines in real time whether the positioning reliability of the vehicle laser positioning data is higher than a preset dynamic threshold and whether the timestamps are continuous to determine whether the absolute pose observation is valid; at the same time, it determines whether the 3D camera completely recognizes the preset visual markers symmetrically arranged at the rear of the main vehicle, whether the ranging is within a preset working range, and whether the camera extrinsic parameters have been calibrated to determine whether the relative observation data is valid.
[0029] If the evaluation is valid, an absolute observation model and a relative observation model are constructed respectively. Based on the absolute observation model and the relative observation model, sequential measurement updates and consistency checks are performed on the prior state estimates to obtain the vehicle-fused global pose. The system prioritizes the measurement updates of the absolute observation model, followed by the measurement updates of the relative observation model. Before each measurement update, the observation innovation vector and its covariance matrix are calculated, and a Mahalanobis distance test is performed. If the test passes, the state and covariance are updated using Kalman gain. The specific formula is as follows: ; ; ; ; in, This is the absolute observation matrix, used to map the state vector to the laser observation space; Let K be the laser observation noise vector at time k. Let be the absolute observation information covariance matrix at time k; Let K be the laser observation noise covariance matrix at time k. is the first Kalman gain matrix at time k, used to dynamically balance the confidence levels of the predicted values and the laser observation values; Let $k$ be the absolute observation innovation vector at time $k$, calculated using the following formula: ; The absolute pose observation value output from the vehicle laser positioning data at time k; The updated state estimate is obtained after performing the absolute pose observation update; I is the identity matrix with the same dimension as the state vector; This is the state covariance matrix updated by absolute observations.
[0030] If the test fails, the current abnormal measurement is rejected and weight reduction is performed, ultimately outputting a smooth and reliable vehicle-to-vehicle fused global pose.
[0031] Based on the fused global pose of the slave vehicle and the state data of the master vehicle, the master-slave vehicle pose error is calculated, and the fused global pose and the master-slave vehicle pose error are output at a fixed control frequency. The system extracts the slave vehicle position coordinates and heading angle from the fused global pose of the slave vehicle, and the master vehicle position coordinates and heading angle from the master vehicle state data. By calculating the Euclidean distance between the master vehicle and slave vehicle position coordinates and subtracting the preset target distance, the longitudinal distance error is obtained. ; Calculate the difference between the heading angle of the lead vehicle and the heading angle of the slave vehicle to obtain the heading angle error: ; Projecting the position difference between the master and slave vehicles onto the lateral axis of the slave vehicle's body coordinate system yields the lateral tracking deviation: ; in, The longitudinal spacing error between the master and slave vehicles; Let x and y be the x and y coordinates of the main vehicle in the global coordinate system at time k. Let x and y be the x and y coordinates of the vehicle at time k in the global coordinate system; Maintain distance between the pre-defined master and slave vehicle targets; The heading angle error of the master and slave vehicles; Let $k$ be the heading angle of the main vehicle in the global coordinate system at time $k$. Let $\mathbf{k}$ be the heading angle of the vehicle in the global coordinate system at time $k$. The lateral tracking deviation between the master and slave vehicles represents the projected deviation of the master vehicle's position relative to the lateral axis of the slave vehicle's body.
[0032] The aforementioned vehicle-to-vehicle global pose fusion and master-slave vehicle pose error are packaged and output to the vehicle-to-vehicle motion control interface at a fixed control frequency, providing a high-frequency, low-latency feedback signal for downstream linkage control algorithms.
[0033] Finally, the system continuously monitors the validity and safety interlock status of the multi-source data. When an anomaly is detected, the system determines the anomaly type based on preset anomaly judgment rules and executes the corresponding degradation fusion strategy or safety protection control according to the anomaly type. The system classifies the anomaly type into single-source failure, dual-source failure, and safety trigger level based on the validity combination of each observation source. When a single observation source failure is detected, the measurement update step for the corresponding failed observation source is skipped, and degradation fusion is performed only based on the valid observation source and encoder prediction. When at least two types of key observations fail simultaneously, the system switches to the encoder-based short-time trajectory estimation mode and reduces the output confidence. When the abnormal state continues to time out or the safety interlock signal is triggered, the abnormal state is immediately locked, and a deceleration, stop, or emergency stop command is sent to the slave vehicle controller. In the degradation or safety protection state, the system continuously monitors the recovery status of the observation sources. If the observations recover and the safety interlock is normal for multiple consecutive control cycles, the covariance matrix is reset and the system is restored to normal fusion output.
[0034] In summary, the AGV dual-vehicle linkage slave positioning method provided in this embodiment constructs a complete and highly reliable positioning link through spatiotemporal synchronization and alignment of multi-source data, EKF prediction based on omnidirectional kinematics and absolute laser updates, sequential fusion and consistency verification of absolute and relative observations, high-frequency calculation output of master-slave errors, and hierarchical fault-tolerant and safety closed-loop control. This method effectively overcomes the positioning drift, relative pose lag, and observation interruption problems caused by tire slippage, environmental obstruction, communication delay, and sensor failure in complex industrial environments for heavy-duty omnidirectional AGVs. It significantly improves the accuracy and continuity of global pose estimation of the slave vehicle, thereby ensuring the stability and operational safety of master-slave dual-vehicle linkage tracking control.
[0035] In one embodiment, step S110 includes: S111. Receive a time-stamped data frame sent by the master vehicle through a wireless communication link, and parse it to obtain the master vehicle status data. The master vehicle status data includes at least the master vehicle global pose, omnidirectional motion vector and safety interlock signal. S112. Collect the data from the vehicle encoder and the vehicle laser positioning data, and collect environmental data through a 3D camera to calculate the relative observation data based on preset visual markers; S113. Using the fusion period as a time reference, interpolate or extrapolate the timestamps of each data for alignment. S114. The laser positioning data of the vehicle and the relative observation data are converted to a unified vehicle body coordinate system or global coordinate system through preset external parameters.
[0036] To facilitate understanding, a specific example from this case will be used for illustration. (Refer to...) Figure 10 and Figure 11This embodiment has been designed for use in an omnidirectional AGV dual-vehicle linkage system with a single vehicle load capacity of 10 tons and a combined load capacity of 15 tons. The vehicle positioning module performs data acquisition and spatiotemporal alignment operations in a 50Hz fusion cycle.
[0037] The slave vehicle positioning module establishes a wireless communication link with the master vehicle control system via a Bluetooth communication unit. The Bluetooth communication unit uses a custom communication protocol, and the data frame structure includes a frame header, protocol version, data type, serial number, timestamp, dual-vehicle motion vectors, master vehicle global pose, master vehicle encoder feedback, safety interlock signals, operating status field, and verification field. After receiving the data frame sent by the master vehicle, the slave vehicle positioning module first verifies the frame header identifier and verification field to ensure data integrity. Then, it parses the timestamp field to obtain the master vehicle's data generation time and parses the dual-vehicle motion vector field to obtain the master vehicle's omnidirectional motion vector. ; in The longitudinal velocity component of the main vehicle, The lateral velocity component of the main vehicle. The angular velocity of the master vehicle around the Z-axis is calculated. The position coordinates of the master vehicle in the global coordinate system W are obtained by parsing the master vehicle's global pose field from the vehicle localization module. and heading angle The system parses the safety interlock signal fields to obtain the safety status flags sent by the master vehicle, which are used for dual-vehicle linkage safety protection judgment. The master vehicle status data is sent at a frequency of 50Hz, consistent with the slave vehicle's fusion cycle, to ensure time synchronization between master and slave vehicle data.
[0038] The vehicle positioning module acquires data from the vehicle's travel encoder and steering encoder at a frequency of 50Hz via the encoder acquisition unit. Based on the pulse count from the travel encoder and the angle value from the steering encoder, the vehicle positioning module calculates the omnidirectional velocity components of the vehicle using the vehicle's kinematic model. , and angular velocity .
[0039] The vehicle positioning module acquires vehicle laser positioning data at a frequency of 20Hz via a laser positioning unit. The laser positioning unit uses either lidar with reflector positioning or laser SLAM positioning to output the vehicle's position coordinates in the global coordinate system W. ) and heading angle Simultaneously, a positioning reliability index is output for subsequent effectiveness evaluation. Environmental point cloud data is acquired from the vehicle positioning module at a frequency of 10Hz via a 3D camera relative pose detection unit.
[0040] Specifically, the 3D camera identifies two reflective films positioned at the rear of the main vehicle as preset visual markers. Each reflective film is 0.0375m wide, with a center-to-center distance of 1m, and is symmetrically arranged about the vehicle's centerline. The 3D camera identifies the spatial position of the two reflective films within a detection range of 0.8-5m, extracting the coordinates of their center points in the camera's coordinate system C. For example: and The vehicle positioning module calculates the relative pose observation data of the master vehicle relative to the slave vehicle based on the coordinates of the center points of the two reflective films, including the relative longitudinal distance, relative lateral deviation, and relative heading angle.
[0041] In the step of using the fusion period as a time reference and performing interpolation or extrapolation alignment using the timestamps of each data source, the vehicle positioning module aligns the multi-source data to [the desired timeframe] via the time synchronization unit. A unified fusion cycle is defined from the vehicle positioning module. Where k is the discrete-time index. The vehicle positioning module uses nearest-neighbor alignment for encoder data. Since the encoder sampling frequency of 50Hz is consistent with the fusion period of 50Hz, the encoder measurement values within the current fusion period are directly used. The vehicle positioning module uses linear interpolation for laser positioning data. The laser positioning sampling frequency of 20Hz is lower than the fusion period of 50Hz. When the fusion period time... Located at two laser observation times and During this period, linear interpolation is performed from the vehicle positioning module according to the time ratio. The interpolation formula is as follows: ; and Interpolation was performed using the same method.
[0042] The vehicle positioning module uses either extrapolation or hold methods for 3D camera data. The 3D camera sampling frequency of 10Hz is lower than the fusion period of 50Hz. When no new camera observations are made within the fusion period, the vehicle positioning module holds the previous valid observation or performs a short-term extrapolation based on the motion model. The vehicle positioning module uses timestamp matching for the master vehicle's Bluetooth data, selecting the timestamp closest to the fusion period. The master vehicle data frame is used as the current cycle input. A time synchronization flag is generated by the slave vehicle positioning module. When the timestamps of all observation sources are continuous and uninterrupted, they are set to valid; when the timestamps of a certain observation source are interrupted for more than a preset threshold, they are set to invalid.
[0043] In the step of converting the vehicle laser positioning data and relative observation data to a unified vehicle body coordinate system or global coordinate system using preset extrinsic parameters, the vehicle positioning module performs a coordinate system unification operation through the coordinate transformation unit. The vehicle positioning module defines a global coordinate system W, a master vehicle body coordinate system B1, a slave vehicle body coordinate system B2, and a 3D camera coordinate system C. The vehicle positioning module directly represents the laser positioning data in the global coordinate system W without coordinate transformation. The vehicle positioning module transforms the center point of the reflective film observed by the 3D camera from the camera coordinate system C to the slave vehicle body coordinate system B2. The transformation formula is: ; in The pre-calibrated camera extrinsic matrix, including the rotation matrix. Translation vector .
[0044] The fixed installation offset from the center of the rear reflective film of the main vehicle to the center of motion O1 of the main vehicle is superimposed on the vehicle positioning module to obtain the relative position and heading angle of the main vehicle relative to the slave vehicle. The slave vehicle positioning module further transforms the relative observation data to the global coordinate system W for EKF (Extended Kalman Filter) fusion and update. After the slave vehicle positioning module completes the coordinate unification, it generates an observation validity flag. and , respectively, correspond to the validity of the coordinate transformation results of laser positioning and visual observation.
[0045] In one embodiment, step S120 includes: S121. Calculate the omnidirectional speed input of the vehicle in the current cycle based on the data from the vehicle encoder. The omnidirectional speed input includes a longitudinal speed component, a lateral speed component, and an angular velocity about the vertical axis. S122. Substitute the omnidirectional velocity input into the vehicle omnidirectional kinematic model to construct the discrete state transition equation, and calculate the Jacobian matrix to update the prediction covariance. S123. Based on the state transition equation, perform integral calculation on the state at the previous time step to obtain the prior state estimate; S124. Construct an absolute observation model using the vehicle laser positioning data as the observation quantity, calculate the first Kalman gain, perform absolute pose observation update on the prior state estimate, and obtain the updated state estimate.
[0046] The encoder data for the vehicle is provided by the vehicle's travel encoder and steering encoder. After processing, the encoder data yields the omnidirectional speed input of the vehicle in the current cycle. This omnidirectional speed input includes longitudinal speed components, lateral speed components, and angular velocity about the vertical axis. For an omnidirectional AGV, the longitudinal and lateral speed components together reflect the planar motion characteristics of the vehicle in the vehicle coordinate system, while the angular velocity about the vertical axis reflects the heading characteristics of the vehicle. Therefore, the encoder data can characterize not only the linear motion of the vehicle but also its lateral and steering motion.
[0047] In practice, the vehicle controller first calculates the omnidirectional velocity input for the current cycle based on the encoder pulse increment and steering angle feedback. Then, it substitutes this omnidirectional velocity input into a preset vehicle omnidirectional kinematic model to construct a discrete state transition equation. This model describes the vehicle's state evolution at discrete moments. The state vector typically includes the vehicle's global planar position, heading angle, omnidirectional velocity components, and angular velocity. In discrete form, the vehicle's state can be recursively derived from the previous state under the current velocity input. The state transition equation for its kinematic relationship is as follows: ; ; ; in, This indicates the vehicle's position and heading at the predicted time. This indicates that the status has been updated in the previous moment. , and These represent the longitudinal velocity, lateral velocity, and angular velocity at the previous moment, respectively. Indicates the fusion cycle.
[0048] Through the above state transition equations, the slave vehicle controller can complete the state integration calculation based on the previous state and the current speed input to obtain the prior state estimate of the slave vehicle.
[0049] During the prediction process, the vehicle controller also needs to calculate the Jacobian matrix corresponding to the state transition equation in order to update the prediction covariance. The Jacobian matrix is used to linearize the linear kinematic model, enabling the extended Kalman filter to propagate errors under linear conditions. The update of the prediction covariance can typically be expressed as: ; in, To predict covariance, The posterior covariance of the previous time step. Let Jacobian matrix be the state transition equation. Let be the process noise covariance. The first-order partial derivative of the discrete state transition equation with respect to the state vector is: ; Obtain the state transition Jacobian matrix The matrix is as follows:
[0050] Where Δt is the time step of the fusion cycle. , , Let be the posterior heading angle and velocity components at time k-1.
[0051] By using covariance propagation, the uncertainty of state prediction can be characterized from the vehicle controller, providing a statistical basis for subsequent observation updates.
[0052] After completing the state prediction, the vehicle controller constructs an absolute observation model using the vehicle's laser positioning data as the observations. The laser positioning data provides the absolute pose observation of the vehicle in the global coordinate system; therefore, the absolute observation model can be used to establish the mapping relationship between the vehicle's prior state and the laser positioning observations. Let the observations output by the laser positioning be denoted as... Then the absolute observation equation can be written as: ; in, Represents the vehicle state vector. Represents the laser observation function. The Jacobian at the operating point is consistent with the linear observation matrix. This indicates observation noise.
[0053] Based on the absolute observation model, the first Kalman gain is calculated from the vehicle controller, and the prior state estimate is updated using laser positioning data through absolute pose observation, thus obtaining the updated state estimate. The formula for calculating the Kalman gain is: ; in, This is the observation matrix corresponding to the absolute observation model. Let be the laser observation noise covariance. The state update process can be represented as: ; Through the above-mentioned absolute observation update, the vehicle controller can fuse the encoder prediction results with the laser absolute pose observation, further correcting the pose drift caused by tire slippage, changes in ground adhesion, or cumulative encoder errors, so that the updated state estimate is closer to the true pose of the vehicle.
[0054] The solution in this embodiment enables the slave vehicle to maintain better global pose continuity and anti-drift capability in heavy-duty omnidirectional AGV dual-vehicle linkage scenarios, providing a stable foundation for subsequent relative observation fusion, master-slave error calculation, and anomaly degradation control.
[0055] In one embodiment, step S130 includes: S1311. Determine whether the positioning reliability of the vehicle laser positioning data is higher than a preset dynamic threshold and whether the timestamp is continuous, so as to determine whether the absolute pose observation is effective. S1312. If the laser positioning data of the vehicle is valid, it is retained as the basis for the execution of the absolute pose observation update. The absolute observation model is used to characterize the mapping relationship between the global pose of the vehicle and the laser positioning observation value.
[0056] Furthermore, the steps in S130 also include: S1321. Determine whether the 3D camera has completely recognized the preset visual identifier, whether the ranging is within the preset working range, and whether the camera extrinsic parameters have been calibrated, so as to determine whether the relative observation data is valid. S1322. If the relative observation data is valid, then, in conjunction with the global pose of the master vehicle in the master vehicle state data, a relative observation model is constructed with the relative pose of the master and slave vehicles as the observation quantity. The relative observation model is used to characterize the mapping relationship between the relative pose of the master and slave vehicles and the relative observation data.
[0057] The positioning control unit reads the status flags and covariance matrix output by the laser positioning unit in real time, extracting a positioning reliability index, which is derived from the residual mean or matching score of the laser point cloud matching algorithm. The positioning control unit compares the positioning reliability with a preset dynamic threshold, which can be adaptively adjusted based on environmental feature density or the vehicle's speed. Simultaneously, the positioning control unit records the timestamp sequence of continuously received laser positioning data from the vehicle, calculates the time interval between adjacent timestamps, and determines that the timestamps are continuous if the time interval is less than the preset maximum allowable interruption duration. When the positioning reliability is higher than the preset dynamic threshold and the timestamps are continuous, the absolute pose observation is deemed valid. If the vehicle's laser positioning data is valid, it is retained as the basis for updating the absolute pose observation.
[0058] Subsequently, an absolute observation model is constructed to characterize the mapping relationship between the vehicle's global pose and the laser positioning observations. The formula for the absolute observation model has been explained previously and will not be repeated here. This mapping relationship clarifies how the laser positioning observations directly constrain the global pose state in the extended Kalman filter, providing a precise mathematical basis for subsequent measurement updates.
[0059] In the process of evaluating the effectiveness of relative observation data and constructing a relative observation model, the first step is to determine whether the 3D camera has completely recognized the preset visual markers, whether the ranging is within the preset working range, and whether the camera's extrinsic parameters have been calibrated. After the 3D camera acquires environmental data from the rear of the main vehicle, the positioning control unit executes point cloud segmentation and feature matching algorithms to count the number of recognized reflective markers. If the number of recognized markers equals the preset number and the geometric features meet the symmetrical arrangement requirements, then the preset visual markers are considered to have been completely recognized. Simultaneously, the positioning control unit calculates the Euclidean distance from the optical center of the 3D camera to the center of the preset visual markers and determines whether this distance is within the preset working range, which is set as the interval where the 3D camera's ranging accuracy is optimal. Furthermore, the positioning control unit reads the camera calibration status flag to confirm whether the camera's extrinsic parameter matrix has been calibrated and whether there has been any mechanical loosening.
[0060] When the preset visual markers are fully recognized, the ranging is within the preset working range, and the camera extrinsic parameters are calibrated, the relative observation data is determined to be valid. If the relative observation data is valid, a relative observation model is constructed using the master vehicle's global pose from the master vehicle's state data, with the relative poses of the master and slave vehicles as the observation quantities. The relative observation model is used to characterize the mapping relationship between the relative poses of the master and slave vehicles and the relative observation data. The relative observation model is expressed as: ; in, The relative observation vector is calculated based on preset visual identifiers, including the relative position and relative heading angle of the master vehicle relative to the slave vehicle; The global pose vector of the master vehicle; It is a linear relative observation function used to calculate the theoretical relative pose based on the slave vehicle's state vector and the master vehicle's global pose. Let be the relative observation noise vector. Where is the relative observation function. Defined as: ; in Let wrap(·) be the two-dimensional rotation matrix corresponding to the vehicle heading angle, and wrap(·) represents the angle normalization function that normalizes the angle to the interval (-π, π].
[0061] This mapping relationship couples the global pose of the master vehicle with the state of the slave vehicle through relative geometric constraints, enabling the extended Kalman filter to indirectly correct the state of the slave vehicle using the relative pose information of the master and slave vehicles.
[0062] This embodiment employs a dual validity gating mechanism to filter out abnormal and low-quality observation data, preventing invalid measurements from introducing state divergence into the extended Kalman filter. The explicit observation model mapping relationship in this embodiment provides precise mathematical constraints for sequential measurement updates, enabling the vehicle positioning system to adaptively fuse absolute global constraints and relative linkage constraints in complex industrial environments. This significantly improves the robustness of multi-source observation fusion, the accuracy of master-slave pose coordination, and the dynamic stability of dual-vehicle linkage tracking control.
[0063] In one embodiment, step S140 includes: S141. Calculate the second Kalman gain based on the relative observation model; S142. Before the measurement update, calculate the observation information vector and its covariance matrix, and perform the Mahalanobis distance test. S1431. If the Mahalanobis distance test passes, the relative pose observation update is performed on the updated state estimate using the second Kalman gain to obtain the vehicle-fused global pose.
[0064] Furthermore, step S140 also includes: S1432. If the Mahalanobis distance test fails, the current relative observation update is rejected, and the state estimate is retained as the vehicle-fused global pose.
[0065] Based on the absolute and relative observation models, sequential measurement updates and consistency checks are performed on the prior state estimates. After completing the absolute pose observation update, the positioning control unit enters the relative pose observation update stage. The positioning control unit first performs a first-order Taylor expansion linearization on the linear relative observation function at the currently updated state estimate to calculate the relative observation Jacobian matrix. This matrix represents the sensitivity of relative observations to the vehicle state vector.
[0066] Subsequently, the positioning control unit calculates the relative observation innovation vector. The calculation formula is as follows: ; in, This represents the relative observation vector calculated based on preset visual identifiers in the current fusion cycle. Represents a linear relative observation function. This represents the updated state estimate obtained after performing the absolute pose observation update. This represents the global pose vector of the main vehicle. This innovation vector is used to quantify the residual between the actual relative observation and the theoretically predicted relative pose.
[0067] Next, the positioning control unit calculates the relative observation information covariance matrix. Its expression is: ; in, The state covariance matrix is updated based on absolute observations. This is the relative observation noise covariance matrix, which comprehensively reflects the prediction uncertainty and sensor measurement noise.
[0068] Based on the aforementioned innovation vector and covariance matrix, the positioning control unit performs a Mahalanobis distance test, with the test conditions set as follows: ; in, To observe the inverse of the covariance matrix of the new information, This is a chi-square distribution threshold preset based on the relative observation dimension and system confidence.
[0069] If the Mahalanobis distance test passes, it indicates that the current relative observation data conforms to the expected Gaussian distribution and has no significant anomalies. The positioning control unit then calculates the second Kalman gain. : ; The gain matrix Used to dynamically balance the updated state estimate with the confidence level of the relative observation.
[0070] Subsequently, the positioning control unit uses the second Kalman gain to perform relative pose observation updates on the updated state estimate, thereby obtaining the vehicle-fused global pose.
[0071] And update the covariance matrix simultaneously. ; Where I is the identity matrix with the same dimension as the state vector. This is the final state covariance matrix after relative observation updates.
[0072] If the Mahalanobis distance test fails, it indicates that the current relative observation data has a significant bias or that environmental interference has caused the observation information to exceed a reasonable statistical range. The positioning control unit immediately rejects the current relative observation update, skips the state correction step based on the second Kalman gain, and directly maintains the updated state estimate. As the global pose output from vehicle fusion, while maintaining the state covariance matrix updated by absolute observation. The uncertainty weight remains unchanged or is appropriately increased according to the preset strategy.
[0073] This rejection mechanism effectively blocks abnormal visual observation data from contaminating the extended Kalman filter, preventing filter divergence caused by strong light interference with the 3D camera, partial occlusion of preset visual markers, or sudden changes in the vehicle's pose. By maintaining the updated state estimate as the optimal estimate for the current cycle, the system ensures the continuity and smoothness of the vehicle positioning output, providing stable and reliable pose feedback to the downstream motion control interface.
[0074] In one embodiment, step S150 includes: S151. Extract the slave vehicle position coordinates and heading angle from the slave vehicle fusion global pose, and the master vehicle position coordinates and heading angle from the master vehicle state data; S152. Calculate the Euclidean distance between the position coordinates of the master vehicle and the slave vehicle, and subtract the preset target distance to obtain the longitudinal distance error; S153. Calculate the difference between the heading angle of the main vehicle and the heading angle of the slave vehicle to obtain the heading angle error; S154. Project the position difference between the master and slave vehicles calculated based on the slave vehicle position coordinates and the master vehicle position coordinates onto the lateral axis of the slave vehicle body coordinate system to obtain the lateral tracking deviation. S155, The vehicle's global pose, longitudinal spacing error, heading angle error, and lateral tracking deviation are output to the vehicle motion control interface at the fixed control frequency.
[0075] The positional error between the slave vehicle and the master vehicle is calculated based on the fused global pose data and the master vehicle's state data, and output at a fixed control frequency. The positioning control unit first performs a data extraction operation. The positioning control unit extracts the slave vehicle's position coordinates and heading angle from the slave vehicle's fused global pose data output in the current fusion cycle, and simultaneously extracts the master vehicle's position coordinates and heading angle from the received master vehicle state data.
[0076] Subsequently, the positioning control unit calculates the longitudinal distance error between the master and slave vehicles. Based on the master vehicle's and slave vehicle's position coordinates, the positioning control unit calculates the Euclidean distance between them in the global coordinate system, and subtracts the preset target distance from this Euclidean distance to obtain the longitudinal distance error. The calculation formula is as follows: ; in Indicates the longitudinal spacing error. and These represent the horizontal and vertical components of the main vehicle's position coordinates, respectively. and These represent the horizontal and vertical components of the vehicle's position coordinates, respectively. This indicates the preset distance between the master and slave vehicle targets.
[0077] Next, the positioning control unit calculates the heading angle error between the master and slave vehicles. The positioning control unit directly calculates the difference between the heading angles of the master vehicle and the slave vehicle to obtain the heading angle error. The calculation formula is as follows: ; in, Indicates the heading angle error. Indicates the heading angle of the main vehicle. This represents the vehicle heading angle. During the calculation process, the positioning control unit performs periodic normalization on the angle difference to ensure that the error value is within the standard angle range. wrap(·) represents the normalization function.
[0078] Subsequently, the positioning control unit calculates the lateral tracking deviation between the master and slave vehicles. The positioning control unit first calculates the position difference vector between the master and slave vehicles based on the slave vehicle's position coordinates, and then projects this position difference vector onto the lateral axis of the slave vehicle's body coordinate system to obtain the lateral tracking deviation. The calculation formula is as follows: ; in, This formula represents the lateral tracking deviation. It maps the positional deviation in the global coordinate system to the lateral movement direction of the slave vehicle itself through coordinate rotation transformation, thereby accurately reflecting the degree of lateral deviation of the slave vehicle relative to the trajectory of the master vehicle.
[0079] After error calculation, the positioning control unit performs high-frequency data output. The positioning control unit packages the vehicle's global pose, longitudinal spacing error, heading angle error, and lateral tracking deviation into standardized control data frames, and continuously outputs them to the vehicle's motion control interface at a fixed control frequency via an industrial fieldbus or high-speed Ethernet interface. This fixed control frequency is synchronized with the system fusion cycle, ensuring that the downstream motion controller can acquire the relative pose status of the master and slave vehicles with low latency and high refresh rate, thereby generating real-time speed and steering control commands for the omnidirectional chassis.
[0080] In one embodiment, step S160 includes: S161. Continuously monitor the effectiveness of slave encoder data, slave laser positioning data, master vehicle status data, and relative observation data based on preset visual identifiers; S162. Continuously monitor the safety interlock status and abnormal statuses related to linkage control; S1631. When the vehicle laser positioning data is detected to be invalid, skip the absolute pose observation update and perform degraded fusion based only on encoder prediction. S1632. When the relative observation data based on the preset visual identifier is detected to be invalid, skip the relative pose update step and maintain the current state estimate. S1633. When it is detected that the laser positioning data from the vehicle and the relative observation data based on the preset visual identifier both fail simultaneously, switch to short-time trajectory estimation based on the encoder. S164. When the abnormal state continues to time out or the safety interlock is triggered, output the abnormal state and execute the deceleration, stopping or emergency stop control of the slave vehicle.
[0081] To continuously monitor the validity of multi-source data and the status of safety interlocks, and to execute degradation fusion or safety protection controls, the positioning control unit first establishes a multi-source data status monitoring mechanism. The positioning control unit continuously monitors the validity of slave vehicle encoder data, slave vehicle laser positioning data, master vehicle status data, and relative observation data based on preset visual identifiers. It dynamically generates valid status flags for each observation source by real-time analysis of the status flag bits output by each sensor, data frame verification results, timestamp continuity, and positioning reliability indicators. Simultaneously, the positioning control unit continuously monitors the safety interlock status and abnormal states related to linkage control. The safety interlock status is received in real-time via the industrial communication link from emergency stop signals, collision avoidance sensor trigger signals, or communication link interruption flags sent by the local safety controllers of the master and slave vehicles. The positioning control unit inputs the above monitoring results into a preset anomaly judgment rule engine. Based on the combination of valid statuses of each observation source and the triggering of safety interlock signals, it dynamically determines the current anomaly state of the system. Specific anomaly judgments and corresponding measures are as follows: When the preset anomaly judgment rule determines that the laser positioning data of the vehicle is invalid, the positioning control unit immediately skips the absolute pose observation update step, blocks the measurement update branch of the laser observation model in the extended Kalman filter execution process, and performs state prediction only based on the omnidirectional velocity input calculated from the encoder data of the vehicle and the omnidirectional kinematic model of the vehicle. The predicted prior state estimate is directly used as the degraded fusion result output of the current cycle, so as to maintain the continuous calculation of the vehicle pose in the absence of absolute global reference. When the preset anomaly judgment rule determines that the relative observation data based on the preset visual identifier is invalid, the positioning control unit skips the relative pose update step, keeps the updated state estimate obtained after performing the absolute pose observation update unchanged, and directly uses it as the vehicle fusion global pose output of the current cycle, so as to avoid the observation noise introduced by visual occlusion or abnormal identification interference with the filtering stability. When the preset anomaly judgment rule determines that the laser positioning data of the vehicle and the relative observation data based on the preset visual identifier are both invalid, the positioning control unit switches to the encoder-based short-time trajectory extrapolation mode, completely shuts down the measurement update channels of all external observation sources, and relies only on the encoder data of the vehicle and the omnidirectional kinematic model to perform trajectory integral extrapolation. At the same time, it reduces the confidence level of the output pose and sends a speed limit warning signal to the vehicle motion control interface to control the accumulation rate of trajectory extrapolation error. When the abnormal state continues for an extended period or the safety interlock is triggered, the positioning control unit immediately outputs the abnormal state and executes deceleration, stopping, or emergency stop control on the slave vehicle. The positioning control unit is equipped with an abnormal duration counter. If the failure state of the observed source exceeds the preset safety tolerance time, or the safety interlock signal is set to the triggered state, the positioning control unit determines that the system has entered the safety protection level. It sends the highest priority safety command to the slave vehicle motion controller through the control bus and executes deceleration coasting, smooth stopping, or emergency stop control to cut off power output according to the severity of the abnormality, so as to ensure the safe braking of the slave vehicle under inertia under heavy load conditions.
[0082] In degraded or safety protection mode, the positioning control unit continuously polls the recovery status of each observation source and the reset status of the safety interlock signal. If the laser positioning data from the vehicle and the relative observation data based on preset visual markers are both effectively recovered and the safety interlock signal is normal within multiple consecutive control cycles, the positioning control unit automatically resets the state covariance matrix of the extended Kalman filter, clears the abnormal flag bits, and smoothly restores to the normal multi-source fusion output mode. This embodiment effectively overcomes the problem of heavy-load mechanical shock caused by directly outputting abrupt data changes or blindly stopping when a sensor suddenly fails or communication is interrupted in traditional dual-vehicle linkage systems.
[0083] Based on the above embodiments, it can be concluded that the AGV dual-vehicle linkage slave vehicle positioning method of the present invention can be widely applied in the field of industrial automated logistics where positioning accuracy, collaborative stability and operational safety are extremely high. The following uses two typical scenarios, heavy equipment assembly and large-scale warehousing and transfer, as examples for illustration.
[0084] In heavy equipment assembly scenarios, this method can be applied to cross-station collaborative handling of aircraft fuselages, wind turbine blades, or large molds. Without relying on high-precision global navigation infrastructure, the system automatically achieves highly stable positioning under heavy load conditions through multi-source data spatiotemporal alignment and extended Kalman filtering for sequential updates, generating the following collaborative control feedback: first, laser absolute observation suppresses encoder track estimation drift; then, relative observation using a 3D camera and Mahalanobis distance verification filters out abnormal measurements caused by environmental interference; finally, a fixed control frequency is used to output the longitudinal distance between the master and slave vehicles, heading angle, and lateral tracking deviation. This process not only significantly reduces trajectory tracking deviation of ultra-long and ultra-heavy materials in narrow passages but also makes the assembly docking process data-driven, contributing to improved collaborative accuracy and operational safety on heavy production lines.
[0085] In large-scale warehousing and transshipment scenarios, this method can be applied to long-distance material relay transportation between automated storage and retrieval systems (AS / RS) and flexible production lines. For example, in complex logistics channels with dense dynamic shelving and mixed traffic of personnel and forklifts, the system automatically identifies abnormal states from continuously monitored multi-source data streams, capturing key fault nodes such as laser positioning failure, visual sign occlusion, and safety interlock triggering. It compares the effectiveness of the observation sources at each stage with the system confidence level, and then generates structured degradation control commands. The scheduling system can not only obtain high-confidence global pose and master-slave error summaries from the slave vehicles, but also view the speed limit or emergency stop strategies corresponding to the anomaly level, enhancing the system's robustness and operational continuity in complex logistics environments.
[0086] As can be seen from the above applications, the method of the present invention supports highly reliable fusion of multi-source data, precise coordination of master-slave poses, and smooth transition of fault states in industrial automated logistics scenarios with high reliability requirements and complex environmental interference, such as heavy assembly and dynamic warehousing. It has good practical value and development prospects.
[0087] Figure 8 This is a schematic block diagram of an AGV dual-vehicle linkage slave vehicle positioning device 600 provided in an embodiment of the present invention. Figure 8 As shown, corresponding to the above-described AGV dual-vehicle linkage slave positioning method, the present invention also provides an AGV dual-vehicle linkage slave positioning device 600. This AGV dual-vehicle linkage slave positioning device 600 includes a unit for executing the above-described AGV dual-vehicle linkage slave positioning method, and the device can be configured in terminals such as on-board industrial control computers, dedicated positioning controllers, embedded edge computing modules, and desktop computers.
[0088] Specifically, please refer to Figure 8 The AGV dual-vehicle linkage slave positioning device 600 includes: The data alignment unit 610 is used to acquire multi-source data and align the multi-source data to a unified fusion period and coordinate reference. The multi-source data includes vehicle encoder data, vehicle laser positioning data, master vehicle status data, and relative observation data based on preset visual labels. The state prediction and update unit 620 is used to perform extended Kalman filtering state prediction based on a preset omnidirectional kinematic model of the vehicle and combined with the encoder data of the vehicle to obtain a prior state estimate of the vehicle, and to update the prior state estimate by observation using the laser positioning data of the vehicle. The observation evaluation and modeling unit 630 is used to evaluate the effectiveness of the absolute pose observation and the relative observation data corresponding to the laser positioning data of the vehicle, and to construct the absolute observation model and the relative observation model respectively when the evaluation is effective. The measurement update and verification unit 640 is used to perform sequential measurement update and consistency verification on the prior state estimate based on the absolute observation model and the relative observation model to obtain the vehicle fusion global pose. The error calculation and output unit 650 is used to calculate the master-slave vehicle pose error based on the fused global pose of the slave vehicle and the master vehicle state data, and output the fused global pose and the master-slave vehicle pose error at a fixed control frequency. The anomaly monitoring and protection unit 660 is used to continuously monitor the validity and security interlock status of the multi-source data. When an anomaly is detected, it determines the anomaly form based on preset anomaly judgment rules and executes the corresponding degradation fusion strategy or security protection control according to the anomaly form.
[0089] In one embodiment, the data alignment unit 610 includes: The main vehicle data receiving unit is used to receive time-stamped data frames sent by the main vehicle through a wireless communication link, and parse them to obtain the main vehicle status data. The main vehicle status data includes at least the main vehicle global pose, omnidirectional motion vector and safety interlock signal. The sensor data acquisition unit is used to acquire the data from the vehicle encoder and the laser positioning data from the vehicle, and to acquire environmental data through a 3D camera to calculate the relative observation data based on preset visual markers; The timestamp alignment unit is used to perform interpolation or extrapolation alignment of each data using the timestamp of each data as the time reference, based on the fusion period. The coordinate system transformation unit is used to transform the vehicle laser positioning data and the relative observation data into a unified vehicle body coordinate system or global coordinate system through preset extrinsic parameters.
[0090] In one embodiment, the state prediction and update unit 620 includes: The omnidirectional speed calculation unit is used to calculate the omnidirectional speed input of the vehicle in the current cycle based on the data of the vehicle encoder. The omnidirectional speed input includes a longitudinal speed component, a lateral speed component, and an angular velocity about the vertical axis. The state transition equation construction unit is used to substitute the omnidirectional velocity input into the vehicle omnidirectional kinematic model, construct discrete state transition equations, and calculate the Jacobian matrix to update the prediction covariance. The prior state estimation unit is used to perform integral calculation on the state at the previous time step based on the state transition equation to obtain the prior state estimate. The absolute observation update unit is used to construct an absolute observation model with the vehicle laser positioning data as the observation quantity, calculate the first Kalman gain, perform absolute pose observation update on the prior state estimate, and obtain the updated state estimate.
[0091] In one embodiment, the observation, evaluation, and modeling unit 630 includes: The laser positioning validity judgment unit is used to determine whether the positioning reliability of the laser positioning data from the vehicle is higher than a preset dynamic threshold and whether the timestamp is continuous, so as to determine whether the absolute pose observation is valid. An absolute observation model construction unit is used to retain the vehicle laser positioning data as the basis for executing the absolute pose observation update if the data is valid. The absolute observation model is used to characterize the mapping relationship between the vehicle's global pose and the laser positioning observation value.
[0092] Furthermore, the observation, evaluation, and modeling unit 630 also includes: The relative observation validity judgment unit is used to determine whether the three-dimensional camera has completely recognized the preset visual mark, whether the ranging is within the preset working range, and whether the camera extrinsic parameters have been calibrated, so as to determine whether the relative observation data is valid. The relative observation model construction unit is used to construct a relative observation model with the relative pose of the master vehicle as the observation quantity, in combination with the global pose of the master vehicle in the master vehicle state data, if the relative observation data is valid. The relative observation model is used to characterize the mapping relationship between the relative pose of the master vehicle and the relative observation data.
[0093] In one embodiment, the measurement update and verification unit 640 includes: The Kalman gain calculation unit is used to calculate the second Kalman gain based on the relative observation model. The Mahalanobis distance test unit is used to calculate the observation information vector and its covariance matrix before measurement updates, and to perform Mahalanobis distance tests. The relative pose observation update unit is used to perform relative pose observation update on the updated state estimate using the second Kalman gain if the Mahalanobis distance test passes, so as to obtain the vehicle fused global pose.
[0094] Furthermore, the measurement update and verification unit 640 includes: An observation update rejection unit is used to reject the current relative observation update if the Mahalanobis distance test fails, and to maintain the state estimate as the vehicle-fused global pose.
[0095] In one embodiment, the error calculation and output unit 650 includes: The pose data extraction unit is used to extract the slave vehicle position coordinates and heading angle from the slave vehicle fusion global pose, and the master vehicle position coordinates and heading angle from the master vehicle state data; The longitudinal spacing error calculation unit is used to calculate the Euclidean distance between the position coordinates of the master vehicle and the slave vehicle, and subtract the preset target spacing to obtain the longitudinal spacing error; The heading angle error calculation unit is used to calculate the difference between the heading angle of the master vehicle and the heading angle of the slave vehicle to obtain the heading angle error; The lateral tracking deviation calculation unit is used to project the position difference between the master and slave vehicles, calculated based on the slave vehicle position coordinates and the master vehicle position coordinates, onto the lateral axis of the slave vehicle body coordinate system to obtain the lateral tracking deviation. The pose error output unit is used to output the vehicle's fused global pose, longitudinal spacing error, heading angle error, and lateral tracking deviation to the vehicle motion control interface at the fixed control frequency.
[0096] In one embodiment, the anomaly monitoring and protection unit 660 includes: The multi-source data validity monitoring unit is used to continuously monitor the validity of the slave encoder data, slave laser positioning data, master vehicle status data, and relative observation data based on preset visual labels; The safety interlock status monitoring unit is used to continuously monitor the safety interlock status and abnormal statuses related to linkage control; The laser failure degradation processing unit is used to skip the absolute pose observation update and perform degradation fusion based only on encoder prediction when the failure of the laser positioning data from the vehicle is detected. The relative observation failure handling unit is used to skip the relative pose update step and maintain the current state estimate when the relative observation data based on the preset visual identifier is detected to be invalid. The dual observation source failure handling unit is used to switch to encoder-based short-time trajectory estimation when the laser positioning data from the vehicle and the relative observation data based on preset visual markers fail simultaneously. The safety protection control unit is used to output the abnormal status and execute the deceleration, stopping or emergency stop control of the slave vehicle when the abnormal status continues for a period of time or the safety interlock is triggered.
[0097] The aforementioned AGV dual-vehicle linkage slave positioning device 600 can be implemented as a computer program, which can, for example... Figure 9 It runs on the computer device shown.
[0098] Please see Figure 9 , Figure 9 This is a schematic block diagram of a computer device 500 provided in an embodiment of this application. The computer device 500 can be a terminal or a server. The terminal can be an in-vehicle industrial control computer, a dedicated positioning controller, an embedded edge computing module, a desktop computer, or other electronic devices with communication functions. The server can be a standalone server or a server cluster composed of multiple servers.
[0099] See Figure 9The computer device 500 includes a processor 502, a memory, and a network interface 505 connected via a system bus 501. The memory may include a non-volatile storage medium 503 and internal memory 504.
[0100] The non-volatile storage medium 503 may store an operating system 5031 and a computer program 5032. The computer program 5032 includes program instructions that, when executed, cause the processor 502 to perform an AGV dual-vehicle linkage slave vehicle positioning method.
[0101] The processor 502 provides computing and control capabilities to support the operation of the entire computer device 500.
[0102] The internal memory 504 provides an environment for the operation of the computer program 5032 in the non-volatile storage medium 503. When the computer program 5032 is executed by the processor 502, the processor 502 can execute an AGV dual-vehicle linkage slave vehicle positioning method.
[0103] This network interface 505 is used for network communication with other devices. Those skilled in the art will understand that... Figure 9 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device 500 to which the present application is applied. The specific computer device 500 may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0104] The processor 502 is used to run a computer program 5032 stored in a memory to implement the steps of the above method.
[0105] It should be understood that in the embodiments of this application, the processor 502 may be a central processing unit (CPU), or it may be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor.
[0106] It will be understood by those skilled in the art that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program includes program instructions and can be stored in a storage medium, which is a computer-readable storage medium. The program instructions are executed by at least one processor in the computer system to implement the process steps of the embodiments of the above methods.
[0107] Therefore, the present invention also provides a storage medium. This storage medium can be a computer-readable storage medium. The storage medium stores a computer program, wherein the computer program includes program instructions. When executed by a processor, the program instructions cause the processor to perform the steps of the above-described method.
[0108] The storage medium can be any computer-readable storage medium capable of storing program code, such as a USB flash drive, portable hard drive, read-only memory (ROM), magnetic disk, or optical disk.
[0109] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this invention.
[0110] In the several embodiments provided by this invention, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For example, the division of each unit is only a logical functional division, and there may be other division methods in actual implementation. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed.
[0111] The steps in the method of this invention can be adjusted, merged, or reduced in order according to actual needs. The units in the device of this invention can be merged, divided, or reduced according to actual needs. Furthermore, the functional units in the various embodiments of this invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0112] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a storage medium. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, a terminal, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention.
[0113] It should be noted that any AI models, software tools, or components not belonging to this company appearing in the embodiments of this application are merely illustrative examples and do not represent actual use. All user personal information involved in the embodiments of this application has been authorized (with the knowledge and consent) by the relevant parties or has been fully authorized by all parties, and the executing entity may obtain it through various legal and compliant means. The collection, storage, use, processing, transmission, provision, and disclosure of the information, data, and signals involved all comply with relevant laws and regulations and do not violate public order and good morals.
[0114] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in the present invention, and these modifications or substitutions should all be covered within the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.
Claims
1. A method for positioning a slave vehicle in a dual-vehicle linkage AGV, characterized in that, The method includes: Acquire multi-source data and align the multi-source data to a unified fusion period and coordinate reference. The multi-source data includes vehicle encoder data, vehicle laser positioning data, master vehicle status data, and relative observation data based on preset reflective visual markers. Based on a preset omnidirectional kinematic model of the vehicle, and combined with the vehicle encoder data, an extended Kalman filter is used to perform state prediction, resulting in a prior state estimate of the vehicle. This prior state estimate is then updated using the vehicle's laser positioning data. Specifically, the omnidirectional velocity input of the vehicle in the current cycle is calculated based on the encoder data. This omnidirectional velocity input includes longitudinal velocity components, lateral velocity components, and angular velocity about the vertical axis. The omnidirectional velocity input is substituted into the vehicle's omnidirectional kinematic model to construct a discrete state transition equation. The Jacobian matrix is then calculated to update the prediction covariance. Based on the discrete state transition equation, the state at the previous time step is integrally extrapolated to obtain the prior state estimate. Finally, an absolute observation model is constructed using the vehicle's laser positioning data as the observation quantity. A first Kalman gain is calculated, and the prior state estimate is updated using absolute pose observation to obtain the updated state estimate. The validity of the absolute pose observation and the relative observation data corresponding to the vehicle laser positioning data is evaluated, and the absolute observation model and the relative observation model are constructed respectively when the evaluation is valid. Based on the absolute observation model and the relative observation model, sequential measurement updates and consistency checks are performed on the prior state estimates to obtain the vehicle-fused global pose. Specifically, the measurement update of the absolute observation model is performed first to obtain the updated state estimate. Subsequently, the relative observation innovation vector and its covariance matrix are calculated based on the relative observation model, and a Mahalanobis distance test is performed. If the Mahalanobis distance test passes, the updated state estimate is updated using the second Kalman gain to obtain the vehicle-fused global pose. If the Mahalanobis distance test fails, the current relative observation update is rejected, and the updated state estimate obtained after performing the measurement update of the absolute observation model is retained as the vehicle-fused global pose. Based on the fused global pose of the slave vehicle and the state data of the master vehicle, the pose error between the master and slave vehicles is calculated, and the fused global pose and the pose error between the master and slave vehicles are output at a fixed control frequency. The validity and security interlock status of the multi-source data are continuously monitored. When an anomaly is detected, the anomaly type is determined based on preset anomaly judgment rules, and the corresponding degradation fusion strategy or security protection control is executed according to the anomaly type.
2. The AGV dual-vehicle linkage slave vehicle positioning method according to claim 1, characterized in that, The steps of acquiring multi-source data and aligning the multi-source data to a unified fusion period and coordinate reference include: The system receives time-stamped data frames sent by the main vehicle via a wireless communication link and parses them to obtain the main vehicle status data. The main vehicle status data includes at least the main vehicle global pose, omnidirectional motion vector, and safety interlock signal. The data from the vehicle encoder and the vehicle laser positioning data are collected, and environmental data is collected by a 3D camera to calculate the relative observation data based on the preset reflective visual mark. Using the fusion period as a time reference, interpolation or extrapolation alignment is performed using the timestamps of each data item; The laser positioning data from the vehicle and the relative observation data are converted to a unified vehicle body coordinate system or global coordinate system using preset extrinsic parameters.
3. The AGV dual-vehicle linkage slave vehicle positioning method according to claim 1, characterized in that, The steps of evaluating the effectiveness of the absolute pose observations corresponding to the vehicle laser positioning data and constructing absolute observation models when the evaluation is effective include: Determine whether the positional reliability of the vehicle laser positioning data is higher than a preset dynamic threshold and whether the timestamps are continuous, in order to determine whether the absolute pose observation is effective; If the laser positioning data from the vehicle is valid, it is retained as the basis for executing the absolute pose observation update. The absolute observation model is used to characterize the mapping relationship between the global pose of the vehicle and the laser positioning observation value.
4. The AGV dual-vehicle linkage slave vehicle positioning method according to claim 3, characterized in that, The step of evaluating the validity of the relative observation data, and determining the relative observation model as valid when the evaluation is valid, includes: To determine whether the relative observation data is valid, it is determined whether the 3D camera fully recognizes the preset reflective visual mark, whether the ranging is within the preset working range, and whether the camera's extrinsic parameters have been calibrated. If the relative observation data is valid, then a relative observation model is constructed by combining the global pose of the master vehicle in the master vehicle state data with the relative pose of the master and slave vehicles as the observation quantity. The relative observation model is used to characterize the mapping relationship between the relative pose of the master and slave vehicles and the relative observation data.
5. The AGV dual-vehicle linkage slave vehicle positioning method according to claim 1, characterized in that, The step of calculating the master-slave vehicle pose error based on the fused global pose of the slave vehicle and the master vehicle state data, and outputting the fused global pose and the master-slave vehicle pose error at a fixed control frequency includes: Extract the slave vehicle position coordinates and heading angle from the slave vehicle fusion global pose, and the master vehicle position coordinates and heading angle from the master vehicle state data; Calculate the Euclidean distance between the position coordinates of the master vehicle and the slave vehicle, and subtract the preset target distance to obtain the longitudinal distance error; Calculate the difference between the heading angle of the main vehicle and the heading angle of the slave vehicle to obtain the heading angle error; The difference between the master and slave vehicle positions, calculated based on the slave vehicle position coordinates and the master vehicle position coordinates, is projected onto the lateral axis of the slave vehicle body coordinate system to obtain the lateral tracking deviation. The vehicle's global pose, longitudinal spacing error, heading angle error, and lateral tracking deviation are output to the vehicle motion control interface at the fixed control frequency.
6. The AGV dual-vehicle linkage slave vehicle positioning method according to claim 1, characterized in that, The steps of continuously monitoring the validity and security interlock status of the multi-source data, and when an anomaly is detected, determining the anomaly type based on preset anomaly judgment rules, and executing the corresponding degradation fusion strategy or security protection control according to the anomaly type include: Continuously monitor the effectiveness of the vehicle encoder data, vehicle laser positioning data, master vehicle status data, and relative observation data based on preset reflective visual markers; Continuously monitor the status of safety interlocks and abnormal states related to linkage control; When the vehicle laser positioning data is detected to be invalid, the absolute pose observation update is skipped, and degraded fusion is performed only based on encoder prediction; When the relative observation data based on the preset reflective visual marker is detected to be invalid, the relative pose update step is skipped, and the current state estimate is maintained. When it is detected that the laser positioning data from the vehicle and the relative observation data based on the preset reflective visual markers are both invalid, the system switches to short-term trajectory estimation based on the encoder. When the abnormal state continues to time out or the safety interlock is triggered, the abnormal state is output and the deceleration, stopping or emergency stop control of the slave vehicle is executed.
7. An AGV dual-vehicle linkage slave vehicle positioning device, characterized in that, A method for performing the AGV dual-vehicle linkage slave positioning method as described in any one of claims 1 to 6, comprising: The data alignment unit is used to acquire multi-source data and align the multi-source data to a unified fusion period and coordinate reference. The multi-source data includes vehicle encoder data, vehicle laser positioning data, master vehicle status data, and relative observation data based on preset reflective visual marks. The state prediction and update unit is used to perform extended Kalman filtering state prediction based on a preset vehicle omnidirectional kinematic model and combined with the vehicle encoder data to obtain a prior state estimate of the vehicle, and to update the prior state estimate through observation using the vehicle laser positioning data. Specifically, the unit calculates the omnidirectional velocity input of the vehicle in the current cycle based on the vehicle encoder data, the omnidirectional velocity input including longitudinal velocity components, lateral velocity components, and angular velocity about the vertical axis; substitutes the omnidirectional velocity input into the vehicle omnidirectional kinematic model to construct a discrete state transition equation; calculates the Jacobian matrix to update the prediction covariance; performs integral calculation on the state of the previous time step based on the discrete state transition equation to obtain the prior state estimate; constructs an absolute observation model using the vehicle laser positioning data as the observation quantity, calculates the first Kalman gain, and performs absolute pose observation update on the prior state estimate to obtain the updated state estimate. The observation evaluation and modeling unit is used to evaluate the effectiveness of the absolute pose observation and the relative observation data corresponding to the vehicle laser positioning data, and to construct the absolute observation model and the relative observation model respectively when the evaluation is effective. The measurement update and verification unit is used to perform sequential measurement updates and consistency checks on the prior state estimate based on the absolute observation model and the relative observation model to obtain the vehicle-fused global pose. Specifically, the measurement update of the absolute observation model is performed first to obtain the updated state estimate. Subsequently, the relative observation innovation vector and its covariance matrix are calculated based on the relative observation model, and a Mahalanobis distance test is performed. If the Mahalanobis distance test passes, the updated state estimate is updated using the second Kalman gain to obtain the vehicle-fused global pose. If the Mahalanobis distance test fails, the current relative observation update is rejected, and the updated state estimate is retained as the vehicle-fused global pose. The error calculation and output unit is used to calculate the master-slave vehicle pose error based on the fused global pose of the slave vehicle and the master vehicle state data, and output the fused global pose and the master-slave vehicle pose error at a fixed control frequency. An anomaly monitoring and protection unit is used to continuously monitor the validity and security interlock status of the multi-source data. When an anomaly is detected, the anomaly type is determined based on preset anomaly judgment rules, and the corresponding degradation fusion strategy or security protection control is executed according to the anomaly type.
8. A computer device, characterized in that, The computer device includes a memory and a processor connected to the memory; the memory is used to store a computer program; the processor is used to run the computer program stored in the memory to perform the steps of the method as described in any one of claims 1 to 6.
9. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, which includes program instructions that, when executed by a processor, can implement the steps of the method as described in any one of claims 1 to 6.