Indoor positioning system and method for mobile robots based on aruco array

CN116972844BActive Publication Date: 2026-09-08SHANDONG UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310736337.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-06-20
Publication Date
2026-09-08
Estimated Expiration
2043-06-20

AI Technical Summary

Technical Problem

然而大尺寸标记更容易从长距离检测到,但是在短距离内,大尺寸标记超出了摄像头视野范围

Benefits of technology

[0032]This invention discloses an indoor positioning system and method for mobile robots based on ArUco arrays. To address the challenge of recognizing different movement distances during robot pose calculation, this invention proposes a positioning method using ArUco marker arrays, which can accurately acquire robot positioning data during both long and short distance movements. To improve the accuracy and robustness of indoor robot positioning, this invention employs a dynamic variance fusion positioning algorithm (EKF) that integrates wheel odometry, IMU, and visual sensors, effectively improving indoor positioning accuracy and reducing the impact of dynamic environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116972844B_ABST
    Figure CN116972844B_ABST
Patent Text Reader

Abstract

The application discloses a kind of mobile robot indoor positioning system and method based on ArUco array, design robot indoor positioning technical field.The system includes drive module, for calculating the pose information of robot in world coordinate system;Inertial measurement module, for obtaining the pose information in IMU coordinate system, and calculating the conversion relationship of world coordinate system and IMU coordinate system;Visual information module, for obtaining the pose information of camera in world coordinate system by identifying and analyzing the image containing ArUco array;Data fusion module, for obtaining the current pose state of robot by using fusion positioning algorithm for fusion prediction.The application solves the identification problem of different moving distances in the process of robot pose calculation, and effectively improves the precision of indoor positioning and reduces the influence of dynamic environment using dynamic variance fusion positioning algorithm.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of indoor robot positioning technology, and in particular to an indoor positioning system and method for mobile robots based on ArUco arrays. Background Technology

[0002] The statements in this section are merely background information related to the present invention and do not necessarily constitute prior art.

[0003] In mobile robot systems, both target detection and autonomous navigation require accurate estimation of the robot's pose. The estimation methods differ depending on the application scenario, primarily manifesting as outdoor and indoor positioning. In outdoor environments, a GPS / INS integrated navigation system is typically used to obtain the most accurate positioning data possible. Indoor positioning technologies often utilize various sensors, such as Wi-Fi, laser sensors, vision, and ultra-wideband (UWB) sensors, to achieve accurate positioning of the mobile robot. UWB positioning methods require the deployment of numerous base stations, and accuracy decreases significantly under non-line-of-sight conditions. Furthermore, positioning using a single sensor often incurs higher costs or yields less accurate results.

[0004] Visual localization achieves positioning by acquiring image information of the surrounding environment. It boasts advantages such as rich information, simple structure, low cost, and easy installation, and is widely used in mobile robot localization research. Visual localization can be further divided into environmental feature-based localization and man-made feature-based localization. Environmental feature-based visual localization methods, such as ORB-SLAM2, LDSO, and OpenVSLAM, are not robust enough due to issues such as illumination changes, motion blur, and perceptual aliasing. Man-made feature-based localization, such as QR code-based artificial landmarks, offers advantages over natural landmarks in terms of information stability, ease of fabrication, and rapid detection, providing absolute scale information for pose estimation. However, while large markers are easier to detect over long distances, they exceed the camera's field of view at short distances. Therefore, acquiring accurate localization data for robots during both long and short-distance movements and achieving high-precision indoor localization remains a pressing issue for current technologies. Summary of the Invention

[0005] To address the shortcomings of existing technologies, the present invention aims to provide an indoor positioning system and method for mobile robots based on ArUco arrays. Using ArUco markers as artificial features, the pose of the camera coordinate system relative to the world coordinate system is obtained by solving the motion of 3D to 2D point pairs. Furthermore, a fusion positioning algorithm integrates visual information, wheel encoder information, and IMU data, effectively improving the accuracy of indoor positioning for mobile robots and reducing the impact of dynamic environments.

[0006] To achieve the above objectives, the present invention is implemented through the following technical solution:

[0007] The first aspect of this invention provides an indoor positioning system for mobile robots based on an ArUco array, comprising:

[0008] The drive module is used to acquire the robot's current motion state and calculate the robot's pose information in the world coordinate system by constructing a kinematic model;

[0009] The inertial measurement module is used to acquire pose information in the IMU coordinate system and calculate the transformation relationship between the world coordinate system and the IMU coordinate system.

[0010] The visual information module is used to acquire images containing the ArUco array captured by the camera, and obtain the camera's pose information in the world coordinate system by recognizing and parsing the images.

[0011] The data fusion module is used to fuse and predict the pose information from the drive module, inertial measurement module, and vision information module using a fusion positioning algorithm to obtain the robot's current pose state.

[0012] Furthermore, the drive module includes a magnetic encoder, which is used to obtain the wheel speed per unit time, construct a kinematic model, and calculate the robot's positioning data relative to the starting point based on the wheel speed, thereby obtaining the robot's pose information in the world coordinate system.

[0013] Furthermore, the drive module also includes a motor and a motor drive. The motor is mounted on the robot's wheels, and a magnetic encoder is mounted on the motor. The motor and motor drive are used to provide power to the robot.

[0014] Furthermore, the inertial measurement module includes an inertial measurement unit, which includes a gyroscope, an accelerometer, and a magnetometer, used to measure rotational angular velocity, acceleration, and direction, respectively.

[0015] Furthermore, the inertial measurement unit is first calibrated during the measurement process, and then the Mahrny algorithm is used to fuse the data measured and calculated by the gyroscope, accelerometer and magnetometer to obtain the transformation matrix from the world coordinate system to the IMU coordinate system.

[0016] Furthermore, the ArUco array is an array composed of multiple ArUco codes, including multiple large codes and multiple small codes.

[0017] Furthermore, in the visual information module, the specific process of obtaining the camera's pose information in the world coordinate system is as follows:

[0018] Preprocess the images containing the ArUco array captured by the camera;

[0019] The corner points of the markers are detected using a quadrilateral approximation method;

[0020] Locate and identify based on the marked corner points;

[0021] Based on the correspondence between the corner points in the world coordinate system and the camera coordinate system, the pose information of the camera in the world coordinate system is obtained.

[0022] Furthermore, the data fusion module includes a prediction module and an update module. The prediction module is used to make predictions based on the robot's pose information in the world coordinate system using the fusion localization algorithm. The update module is used to construct an observation model using the pose information in the IMU coordinate system and the camera's pose information in the world coordinate system, and to iteratively update the prediction results obtained from the prediction process using the observation model.

[0023] Furthermore, the specific process of iteratively updating the prediction results obtained from the prediction process using the observation model is as follows:

[0024] Construct the observation matrix and calculate the Kalman gain based on the prior estimated covariance matrix and noise covariance matrix of the robot at the current moment obtained by the prediction module;

[0025] The robot's pose at the current moment is updated based on the Kalman gain and the observation model.

[0026] A second aspect of this invention provides an indoor positioning method for a mobile robot based on an ArUco array, comprising the following steps:

[0027] Obtain the robot's current motion state and calculate the robot's pose information in the world coordinate system by constructing a kinematic model;

[0028] Acquire pose information in the IMU coordinate system and calculate the transformation relationship between the world coordinate system and the IMU coordinate system;

[0029] Acquire images containing the ArUco array captured by the camera, and obtain the camera's pose information in the world coordinate system by image recognition and analysis;

[0030] A fusion localization algorithm is used to fuse and predict the robot's pose information in the world coordinate system, the pose information in the IMU coordinate system, and the pose information of the camera in the world coordinate system to obtain the robot's current pose state.

[0031] The above one or more technical solutions have the following beneficial effects:

[0032] This invention discloses an indoor positioning system and method for mobile robots based on ArUco arrays. To address the challenge of recognizing different movement distances during robot pose calculation, this invention proposes a positioning method using ArUco marker arrays, which can accurately acquire robot positioning data during both long and short distance movements. To improve the accuracy and robustness of indoor robot positioning, this invention employs a dynamic variance fusion positioning algorithm (EKF) that integrates wheel odometry, IMU, and visual sensors, effectively improving indoor positioning accuracy and reducing the impact of dynamic environments.

[0033] Advantages of additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. Attached Figure Description

[0034] The accompanying drawings, which form part of this invention, are used to provide a further understanding of the invention. The illustrative embodiments of the invention and their descriptions are used to explain the invention and do not constitute an improper limitation of the invention.

[0035] Figure 1 This is a framework diagram of the indoor positioning system for a mobile robot in Embodiment 1 of the present invention;

[0036] Figure 2 This is a schematic diagram of the coordinate system of the mobile robot system in Embodiment 1 of the present invention;

[0037] Figure 3 This is a schematic diagram of the kinematic model of the mobile robot in Embodiment 1 of the present invention;

[0038] Figure 4 This is a flowchart of the Mahrni algorithm in Embodiment 1 of the present invention;

[0039] Figure 5 This is a schematic diagram of the ArUco marker array in Embodiment 1 of the present invention;

[0040] Figure 6 This is a schematic diagram of the coordinate transformation process in Embodiment 1 of the present invention;

[0041] Figure 7 This is a schematic diagram of the fusion module framework in Embodiment 1 of the present invention;

[0042] Figure 8 This is a diagram showing the results of identifying different quantities and sizes of ArUco markers in Embodiment 1 of the present invention;

[0043] Figure 9 This is a diagram of the robot's movement path in Embodiment 1 of the present invention;

[0044] Figure 10This is an experimental result diagram of the EKF algorithm fusing IMU and wheel odometry data to calculate the robot's position in Embodiment 1 of the present invention;

[0045] Figure 11 This is an experimental result diagram of the EKF algorithm in Embodiment 1 of the present invention, which fuses IMU, wheel odometry data and camera data to calculate the robot's position.

[0046] Figure 12 This is a schematic diagram of the experimental trajectory in Embodiment 1 of the present invention. Detailed Implementation

[0047] It should be noted that the following detailed descriptions are exemplary and intended to provide further illustration of the invention. Unless otherwise specified, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention pertains.

[0048] It should be noted that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the scope of exemplary embodiments according to the invention. As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. Furthermore, it should be understood that when the terms "comprising" and / or "including" are used in this specification, they indicate the presence of features, steps, operations, devices, components, and / or combinations thereof.

[0049] Example 1:

[0050] Embodiment 1 of the present invention provides an indoor positioning system for mobile robots based on an ArUco array, such as... Figure 1 As shown, this indoor positioning system integrates three types of sensors to ensure the robot can accurately locate itself indoors. The system's kinematic model combines wheel speed information acquired by a magnetic encoder to derive positioning data relative to the starting point. Furthermore, an inertial sensor mounted on the controller circuit board calculates the robot's attitude angles for more precise motion control. A vision sensor, mounted on the rear of the vehicle, uses image processing and pose estimation algorithms to send the recognition calculation results to the controller for further optimization of the robot's trajectory.

[0051] The controller uses the EKF algorithm to fuse positioning data from three sensors. World coordinate system X w Y w Z w Mark the coordinate system X m Y m Z m Camera coordinate system X cam Y cam Z cam IMU coordinate system X imu Y imuZ imu Robot coordinate system X r Y r Z r ,like Figure 2 As shown in the figure. The world coordinate system coincides with the marker coordinate system, and the robot coordinate system coincides with the IMU coordinate system.

[0052] The system specifically includes a drive module, an inertial measurement module, a visual information module, and a data fusion module.

[0053] The drive module is used to acquire the robot's current motion state and calculate the robot's pose information in the world coordinate system by constructing a kinematic model.

[0054] In one specific implementation, the drive module includes a magnetic encoder, a motor, and a motor drive. The motor is mounted on the robot's wheels, the magnetic encoder is mounted on the motor, and the motor and motor drive are used to provide power to the robot.

[0055] The robot is equipped with four omnidirectional wheels, enabling it to move in all directions in a two-dimensional horizontal environment. The wheel speed is obtained per unit time using encoders on the wheel motors via the M-method, a kinematic model is constructed, and the robot's position relative to its starting point is calculated based on the wheel speed, thus obtaining the robot's pose information in the world coordinate system.

[0056] The specific process of obtaining the wheel speed per unit time using the M-method is as follows: Within a certain time period Tc, the number of pulses M1 output by the encoder is measured to obtain the frequency of the encoder output pulses. Assuming that the motor generates Z pulses per revolution, the frequency is divided by the number of pulses Z per revolution to obtain the motor speed per unit time, and thus the wheel speed.

[0057] like Figure 3 As shown, [x,y,θ] T For the robot's pose in the world coordinate system, [x cam ,y cam ,θ cam ] T This represents the camera's pose in the world coordinate system. Let ω be the wheel angular velocity, i be the wheel number, l and b be the wheel spacing, r be the wheel radius, and a be the distance between the camera and the robot center.

[0058] The kinematic model of the robot is represented as follows:

[0059]

[0060] Among them, v x V represents the velocity in the x-direction. y ω represents the velocity in the y-direction, and ω represents the angular velocity.

[0061]

[0062] Where T1 represents the transformation of the horizontal, vertical, and rotational velocities from the vehicle coordinate system to the global coordinate system. T2 represents the calculation of the vehicle's velocity based on the velocities of the four wheels.

[0063] The robot's pose at the k-th sampling time is represented by q. k =[x k ,y k ,θ k ] T x k y k The center position of the robot has been determined, θ k Let be the heading angle of the robot in the world coordinate system XOY.

[0064]

[0065] Where Δt represents the time interval for one sampling by the sensor.

[0066] The inertial measurement module is used to acquire pose information in the IMU coordinate system and calculate the transformation relationship between the world coordinate system and the IMU coordinate system.

[0067] In one specific implementation, the inertial measurement module includes an inertial measurement unit, which comprises a gyroscope, an accelerometer, and a magnetometer, used to measure rotational angular velocity, acceleration, and direction, respectively. The gyroscope measures the rotational angular velocity of the object, and by integrating it, obtains the object's roll, pitch, and heading increments. The accelerometer measures the object's acceleration in different directions, and by integrating it, obtains the object's velocity and displacement. Furthermore, the magnetometer senses magnetic north, thus obtaining the object's magnetic north heading information.

[0068] Gyroscopes possess excellent dynamic response characteristics, but they accumulate errors when calculating attitude. In contrast, magnetometers and accelerometers do not accumulate errors when measuring attitude. However, their dynamic response is not as good as that of gyroscopes. This embodiment uses the Mahony algorithm, employing the instantaneous output values ​​of the accelerometer and magnetometer to correct the gyroscope, achieving a complementary effect and thus improving measurement accuracy and system dynamic performance.

[0069] Specifically, the inertial measurement unit (IMU) is calibrated first during the measurement process. For gyroscope calibration, a simple method is generally used: after powering on, the IMU is kept stationary for a period of time, the zero bias is calculated, and this zero bias is subtracted from the IMU for each sampling. For magnetometer calibration, the carrier with the magnetometer mounted is usually subjected to specific motion or rotated to a specific angle. The magnetic field strength measurements under different postures are then analyzed to calibrate the magnetometer.

[0070] Then, the Mahrni algorithm was used to fuse the data measured and calculated by the gyroscope, accelerometer and magnetometer to obtain the transformation matrix from the world coordinate system to the IMU coordinate system.

[0071] This embodiment uses a northeast-northeast coordinate system, where the x-axis of the IMU coordinate system points due east, the y-axis points due north, and the z-axis points directly upwards. The Mahony algorithm flow is as follows: Figure 4 As shown.

[0072] Where b represents the carrier coordinate system and n represents the geographic coordinate system. Let q be the rotation matrix between the geographic coordinate system and the carrier coordinate system. i Given a quaternion, and the following equation holds:

[0073]

[0074] 1. Calculate the accelerometer correction amount

[0075] Because the navigation system N is northeast and the machine system is front-right-lower, if the accelerometer coordinate system is consistent with the machine system, the accelerometer measurement should be [0,0,-1] when the vehicle is stationary and horizontal, with the Z direction being negative. Using C... n b The matrix rotates the Earth vector to the lower right front of the machine system, resulting in... Calculate the vector product with the actual accelerometer output.

[0076] 2. Calculate the magnetometer correction amount

[0077] The magnetometer's measured values ​​are processed by C. b n Transferred to the Geography Department, obtained [h x ,h y ,h z ] T Because of inaccurate heading, errors occurred, resulting in magnetometer readings that appeared in both north and east directions after conversion. Converting this value back to the mechanical system yielded [w] x ,w y ,w z ] T Then, take the vector product with the magnetometer measurement.

[0078] 3. Summing the products of the two vectors yields...

[0079] 4. Adjust the pi value to set the correction amount for the gyroscope measurement:

[0080] 5. Update the quaternion and normalize it to obtain...

[0081] 6. Calculate θ using trigonometric functions. imu

[0082] The robot's angle estimate θ is obtained through the inertial measurement module. r_imu .

[0083] θ r_imu =θ imu (4)

[0084] The visual information module is used to acquire images containing the ArUco array captured by the camera, and obtain the camera's pose information in the world coordinate system by recognizing and parsing the images.

[0085] An ArUco array is an array of ArUco codes, including multiple large codes and multiple small codes. Each ArUco code consists of a black border and an internal code. The four corners of the border are marked corner points, and the internal code contains the mark's ID. Given the 3D coordinates of the four corner points, combined with the camera's pixel coordinates, the position and orientation of a single ArUco code can be obtained.

[0086] In one specific implementation, the process of obtaining the camera's pose information in the world coordinate system through image recognition and analysis is as follows:

[0087] (1) Preprocess the images containing the ArUco array captured by the camera. The preprocessing includes removing image noise, adjusting image brightness and contrast, and enhancing the image.

[0088] (2) The corner points of the markers are detected by the quadrilateral approximation method and the corner points are sorted in clockwise order.

[0089] Using a single marker cannot guarantee good positioning accuracy at both close and long distances. Positioning accuracy decreases at greater distances. This embodiment uses an array of multiple ArUco codes, including two large codes (50cm x 50cm) and five small codes (14cm x 14cm), such as... Figure 5 As shown, when the distance to the marker is close, the camera detects multiple small markers; when the distance is far, the camera detects both large and small markers, and the patterns of the large markers are more easily distinguishable within the same category.

[0090] Table 1 presents the coordinates of the four corner points of the marker in the world coordinate system, in centimeters. The corner point coordinates Id for 2, 8, and 9 can be obtained from the axisymmetric relationship. The order of these corner points starts from the top left corner of the marker and proceeds clockwise.

[0091] Table 1. Coordinates of the intersection points of the markers

[0092] 0,-53,87 0,-41,30 0,-24,30 0,-7,30 0,-3,87 0,-27,30 0,-10,30 0,7,30 0,-3,37 0,-27,16 0,-10,16 0,7,16 0,-53,37 0,-41,16 0,-24,16 0,-7,16

[0093] (3) Locate and identify the corner points of the marker. Map each sub-region of the marker to a set of bitmaps, use the dictionary provided in the ArUco library to identify the marker ID, and determine whether the marker is valid and matches the expected marker based on the marker ID.

[0094] (4) Based on the correspondence between the corner points in the world coordinate system and the camera coordinate system, the pose information of the camera in the world coordinate system is obtained.

[0095] Specifically, the transformation matrix from the marker coordinate system to the camera coordinate system is calculated using multiple markers. Then, the Random Sample Consensus (RANSAC) algorithm is used to filter out mismatched point pairs, thereby improving the accuracy and robustness of the solution. The world coordinate system coincides with the marker coordinate system, and the obtained transformation matrix is ​​equivalent to the rotation vector rvec and translation vector tvec from the world coordinate system to the camera coordinate system. The coordinate transformation relationship is as follows: Figure 6 As shown. Using Rodrigues' formula, the rotation vector is transformed into the associated rotation matrix. From this, the transformation matrix is ​​derived. cam R m However, obtaining the camera's position and orientation in the marked coordinate system requires... m R cam .

[0096] cam R m =Rodrigues(rvec)

[0097] in, m R cam = cam R -1 m (5)

[0098] This leads to the camera extrinsic matrix T.

[0099]

[0100] After coordinate transformation, the position and orientation of the camera in the world coordinate system are obtained, and then the robot's pose is derived.

[0101]

[0102]

[0103] It is important to note the following: 1. When the rotation angle is too large, at least two codes must be detected simultaneously before calculating the positioning angle. 2. When the distance exceeds 2.5m and the rotation angle is too large, both a large code and a small code must be detected before calculating the positioning angle; only then is the data considered valid. 3. When the camera is more than 2.5 meters away from the marker and the rotation angle is too large, both a large marker and a small marker must be detected for the data to be considered valid before calculation to determine the angle.

[0104] Data fusion module, such as Figure 7 As shown, a fusion localization algorithm is used to fuse and predict the pose information from the drive module, inertial measurement module, and vision information module to obtain the robot's current pose state. The data fusion module includes a prediction module and an update module. The prediction module uses the fusion localization algorithm to predict the robot's pose information in the world coordinate system. The update module uses the pose information in the IMU coordinate system and the camera's pose information in the world coordinate system to build an observation model, and uses the observation model to iteratively update the prediction results obtained from the prediction process.

[0105] In one specific implementation, the prediction process of the prediction module is as follows:

[0106] Using wheel odometry data for state prediction, the robot pose state calculated by the drive module is q. k =[x k ,y k ,θ k ] T .

[0107] The state equations of the control system are as follows:

[0108]

[0109] Among them, w k This is the normalized process noise at time k. k It is the system control vector, determined by external control signals to the system.

[0110] According to the EKF algorithm, the prediction equation for the robot's pose state at the current moment is:

[0111]

[0112] in, For the predicted robot pose state, Δt represents the time interval between one sensor sampling.

[0113] The prior estimate of the covariance matrix at the current time is:

[0114]

[0115]

[0116] Among them, F k-1 I3 represents the state transition matrix obtained from the system state transformation equation at the previous moment, also called the prediction matrix. I3 represents the 3x3 identity matrix.

[0117] The Q matrix is ​​a 3x3 diagonal matrix, representing the process noise covariance matrix in the system model.

[0118] The prediction process for the update module is as follows:

[0119] At time k, the robot pose measurement information θ is obtained from the IMU. k,r_imu The camera calculates the robot's position information using ArUco codes [x] k,r_cam ,y k,_cam ,θ k,r_cam ] T .

[0120] If all sensor data are valid, then the observation model z... k for:

[0121]

[0122] Among them, v k Let be the observation noise at time k.

[0123] Construct the observation matrix and calculate the Kalman gain based on the prior estimated covariance matrix and noise covariance matrix of the robot at the current moment obtained by the prediction module.

[0124] Specifically, Kalman gain K k The calculation formula is:

[0125]

[0126] Observation matrix H k Composed of the IMU observation matrix and the camera observation matrix, the values ​​are divided into three cases depending on whether the sensor data at time k is updated and whether it is valid:

[0127]

[0128]

[0129] The sensor noise covariance matrix R plays a crucial role in robot motion. Its default value is typically R = diag(0.1, 0.1, 0.1, 0.1), but in practical applications, the R matrix needs to be updated in real-time to adapt to different motion states and environmental conditions. Specifically, the value of the R matrix equals the variance of the sensor's 10 measurements up to time k. This real-time update method can more accurately reflect changes in the current environment, thereby improving the robot's motion efficiency and accuracy. Furthermore, the classification of R values ​​is also related to H... k same.

[0130] R = diag(σ) 2 (θ (k-10,k),r_imu ),σ 2 (x (k-10,k),r_cam ),σ 2 (y (k-10,k),r_cam ),σ 2 (θ (k-10,k),r_cam ))(17)

[0131] The robot's pose state at the current moment, obtained from the prediction module, is updated based on the Kalman gain and the observation model. The formula is:

[0132]

[0133]

[0134] To verify the EKF-based fusion localization algorithm, a mobile robot simulation model was built in Webots for simulation.

[0135] Step 1: Identify ArUco tags of different quantities and sizes.

[0136] The robot starts from point A, follows a set path, and reaches point B. Record the robot's position calculated by recognizing ArUco markers in the following four scenarios.

[0137] a. Use a single tag with ID=7 for location.

[0138] b. Use an array of three tags with IDs from 6 to 8 for positioning.

[0139] c. Use an array of 5 tags with IDs from 5 to 9 for positioning.

[0140] d. Use the designed ArUco array for positioning.

[0141] The result is as follows Figure 8As shown, the experimental results lead to the following conclusions: The positioning accuracy of a single small marker is poor; at distances greater than 2.5m from the marker, the positioning data deviation is too large to be used further. The positioning accuracy of multiple small markers is significantly improved; when using five small markers, the positioning deviation is within 0.1m at a distance of 3.5m from the marker. Using a matrix design combining large and small markers, the positioning deviation is within 0.02m within a 3.5m range.

[0142] Step 2: Use the EkF algorithm to perform data fusion.

[0143] The robot moves along the path ABCDEFGA, as follows: Figure 9 As shown.

[0144] 1. The robot's position was calculated using wheel odometry data. EKF was then used to fuse the IMU angle and wheel odometry data. The robot's initial position was pre-set in the program. Experimental results are as follows: Figure 10 As shown in the figure, the experimental results indicate that using the yaw value calculated by the IMU for angle updates via extended Kalman filtering can effectively eliminate the problem of angle data error accumulation in wheeled odometers. However, this method does not improve positioning data. Therefore, further research is needed to find a solution.

[0145] 2. The robot first initializes its localization at its initial position, using the camera's positioning data as its initial location. The robot then runs along a set trajectory for three revolutions, resulting in the trajectory map shown below. In some areas during the operation, markers are no longer detected in the camera's field of view; in these cases, only data from the wheel odometry and IMU are used for fused localization. The experimental results are as follows: Figure 11 As shown. According to the experimental results, Figure 10 The position graph calculated by the EKF algorithm shows that there is a positioning error of approximately 0.08m in the x-direction per revolution, and this error accumulates with the number of revolutions. Figure 11 In this study, the EKF algorithm calculates a position map with only minor fluctuations within 0.05m in the x-direction, and the positioning error does not accumulate. Therefore, using a camera for ArUco marker recognition to obtain positioning data and then updating the position with an extended Kalman filter can effectively eliminate the accumulated error in the positioning data domain of the wheel odometer, thereby improving positioning accuracy. It is particularly noteworthy that this method still achieves good positioning results even when camera data is invalid.

[0146] To verify the effectiveness of the system, an experimental platform was built for testing. Red circles with a diameter of 20cm were placed at the four corners of the house, and red and green circles with a diameter of 15cm were placed on the robot, all on the same horizontal plane. A vertically downward-facing camera was fixed to the top of the house to record the robot's movement. The robot's pose was calculated and used as the true value for comparison with other data.

[0147] The process of obtaining the robot's pose from a camera on the roof is as follows:

[0148] Step 1: After color segmentation, morphological processing and Hough detection, the coordinates of the center of six circles and their radius values ​​are obtained in the pixel coordinate system.

[0149] Step 2: Calculate the perspective transformation matrix T based on the coordinates of the four circles in the corner in the world coordinate system and the pixel coordinate system.

[0150]

[0151] Step 3: Using the coordinates of the centers of the red and green circles on the robot, obtain the positions (x, y) of the two circles on the robot in the world coordinate system. r ,y r ) and (x g ,y g ).

[0152] Step 4: Calculate the robot's position and heading angle θ based on the coordinates of the two center points, and use these as the true values ​​of the robot's indoor positioning data.

[0153] The remotely controlled robot runs three laps along a specific route, using OpenCV to process video from a camera mounted on the roof in real time and calculate the robot's pose. Simultaneously, the robot transmits its position information, calculated using the EKF algorithm, to the computer via a ZigBee module. Figure 12 This is the experimental trajectory.

[0154] The position and heading angle estimated by the wheeled odometry are relatively stable in the short term. However, after a period of time, the odometry data accumulates errors, and the positioning error reaches 0.1m after the robot has traveled 5m. Using a camera for positioning can obtain the robot's global positioning information. However, during the robot's movement, the camera may no longer be pointing towards the marker in some areas, and when the marker is lost or re-detected, the camera positioning data will experience temporary fluctuations. The designed EKF data fusion algorithm, combining the characteristics of wheeled odometry and visual positioning, achieves a positioning error within 0.04m.

[0155] To address indoor positioning challenges, this embodiment employs an ArUco manual marker, a monocular camera, an IMU, and a wheel encoder. For the positioning algorithm, an EKF-based data fusion algorithm is used to achieve accurate and robust positioning of the mobile robot. Experiments demonstrate that the proposed dynamic variance EKF fusion positioning algorithm, compared to single-sensor positioning methods, effectively improves the problems of posture deviation and positioning error accumulation during the positioning process, significantly reducing random positioning errors and thus enhancing positioning accuracy and robustness.

[0156] Example 2:

[0157] Embodiment 2 of the present invention provides an indoor positioning method for a mobile robot based on an ArUco array, comprising the following steps:

[0158] Obtain the robot's current motion state and calculate the robot's pose information in the world coordinate system by constructing a kinematic model;

[0159] Acquire pose information in the IMU coordinate system and calculate the transformation relationship between the world coordinate system and the IMU coordinate system;

[0160] Acquire images containing the ArUco array captured by the camera, and obtain the camera's pose information in the world coordinate system by image recognition and analysis;

[0161] A fusion localization algorithm is used to fuse and predict the robot's pose information in the world coordinate system, the pose information in the IMU coordinate system, and the pose information of the camera in the world coordinate system to obtain the robot's current pose state.

[0162] The steps and methods involved in the above embodiment two correspond to those in embodiment one. For specific implementation details, please refer to the relevant description section of embodiment one.

[0163] Those skilled in the art will understand that the modules or steps of the present invention described above can be implemented using general-purpose computer devices. Optionally, they can be implemented using computer-executable program code, thereby allowing them to be stored in a storage device for execution by a computer device, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. The present invention is not limited to any particular combination of hardware and software.

[0164] While the specific embodiments of the present invention have been described above in conjunction with the accompanying drawings, this is not intended to limit the scope of protection of the present invention. Those skilled in the art should understand that various modifications or variations that can be made by those skilled in the art without creative effort based on the technical solutions of the present invention are still within the scope of protection of the present invention.

Claims

1. An indoor positioning system for mobile robots based on an ArUco array, characterized in that, include: The drive module is used to acquire the robot's current motion state and calculate the robot's pose information in the world coordinate system by constructing a kinematic model; The inertial measurement module is used to acquire pose information in the IMU coordinate system and calculate the transformation relationship between the world coordinate system and the IMU coordinate system. The visual information module is used to acquire images containing the ArUco array captured by the camera, and obtain the camera's pose information in the world coordinate system by recognizing and parsing the images. The ArUco array is an array composed of multiple ArUco codes, including multiple large codes and multiple small codes; The data fusion module is used to fuse and predict the pose information from the drive module, inertial measurement module, and visual information module using a fusion positioning algorithm to obtain the robot's current pose state. The data fusion module includes a prediction module and an update module. The prediction module is used to make predictions based on the robot's pose information in the world coordinate system using the fusion localization algorithm. The update module is used to construct an observation model using the pose information in the IMU coordinate system and the camera's pose information in the world coordinate system, and then iteratively update the prediction results obtained from the prediction process using the observation model. The specific process of iteratively updating the prediction results obtained from the prediction process using the observation model is as follows: Construct the observation matrix and calculate the Kalman gain based on the prior estimated covariance matrix and noise covariance matrix of the robot at the current moment obtained by the prediction module; The robot's pose at the current moment is updated based on the Kalman gain and the observation model.

2. The indoor positioning system for mobile robots based on ArUco array as described in claim 1, characterized in that, The drive module includes a magnetic encoder, which is used to obtain the wheel speed per unit time, construct a kinematic model, and calculate the robot's positioning data relative to the starting point based on the wheel speed, thereby obtaining the robot's pose information in the world coordinate system.

3. The indoor positioning system for mobile robots based on the ArUco array as described in claim 2, characterized in that, The drive module also includes a motor and a motor drive. The motor is mounted on the robot's wheels, and a magnetic encoder is mounted on the motor. The motor and motor drive are used to provide power to the robot.

4. The indoor positioning system for mobile robots based on the ArUco array as described in claim 1, characterized in that, The inertial measurement module includes an inertial measurement unit, which includes a gyroscope, an accelerometer, and a magnetometer, used to measure rotational angular velocity, acceleration, and direction, respectively.

5. The indoor positioning system for mobile robots based on the ArUco array as described in claim 4, characterized in that, The inertial measurement unit (IMU) is first calibrated during the measurement process. Then, the Mahrni algorithm is used to fuse the data measured and calculated by the gyroscope, accelerometer, and magnetometer to obtain the transformation matrix from the world coordinate system to the IMU coordinate system.

6. The indoor positioning system for mobile robots based on ArUco array as described in claim 1, characterized in that, In the visual information module, the specific process of obtaining the camera's pose information in the world coordinate system is as follows: Preprocess the images containing the ArUco array captured by the camera; The corner points of the markers are detected using a quadrilateral approximation method; Locate and identify based on the marked corner points; Based on the correspondence between the corner points in the world coordinate system and the camera coordinate system, the pose information of the camera in the world coordinate system is obtained.

7. A method for indoor positioning of a mobile robot based on an ArUco array, characterized in that, Includes the following steps: Obtain the robot's current motion state and calculate the robot's pose information in the world coordinate system by constructing a kinematic model; Acquire pose information in the IMU coordinate system and calculate the transformation relationship between the world coordinate system and the IMU coordinate system; Acquire images containing the ArUco array captured by the camera, and obtain the camera's pose information in the world coordinate system by image recognition and analysis; The ArUco array is an array composed of multiple ArUco codes, including multiple large codes and multiple small codes; A fusion localization algorithm is used to fuse and predict the robot's pose information in the world coordinate system, the pose information in the IMU coordinate system, and the pose information of the camera in the world coordinate system to obtain the robot's current pose state. The data fusion module includes a prediction module and an update module. The prediction module is used to make predictions based on the robot's pose information in the world coordinate system using the fusion localization algorithm. The update module is used to construct an observation model using the pose information in the IMU coordinate system and the camera's pose information in the world coordinate system, and then iteratively update the prediction results obtained from the prediction process using the observation model. The specific process of iteratively updating the prediction results obtained from the prediction process using the observation model is as follows: Construct the observation matrix and calculate the Kalman gain based on the prior estimated covariance matrix and noise covariance matrix of the robot at the current moment obtained by the prediction module; The robot's pose at the current moment is updated based on the Kalman gain and the observation model.

Citation Information

Patent Citations

  • Mobile robot positioning method through fusion of SSD target recognition and odometer information

    CN109540140A

  • Method and system for automatically positioning drones in a swarm

    WO2021048500A1