Laser-based automatic creation of two-dimensional code maps
By fusing data from lidar, camera units, inertial measurement units, and odometer units, high-precision QR code maps are automatically created, solving the positioning error problem caused by manual pasting and achieving efficient and low-cost QR code map generation and positioning.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHONGQING SAIMEI SHUZHI TECH CO LTD
- Filing Date
- 2023-02-22
- Publication Date
- 2026-04-10
AI Technical Summary
In existing technologies, QR code maps do not provide sufficient positioning accuracy for indoor robots or industrial mobile AGVs, and manual pasting of QR code landmarks introduces errors that affect positioning accuracy.
AGVs equipped with lidar, camera units, inertial measurement units, and odometer measurement units can automatically create QR code maps through joint calibration and data fusion. They can generate high-precision maps using visual positioning and laser positioning, reducing the accuracy requirements for manual pasting.
It improves the positioning accuracy of QR code maps, reduces deployment costs, achieves high-precision QR code map generation, reduces human error, and improves subsequent positioning accuracy.
Smart Images

Figure CN116124125B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of two-dimensional code maps, and particularly relates to a two-dimensional code map automatic creation method based on laser. BACKGROUND
[0002] In the use scenarios of indoor robots or industrial mobile AGVs, two-dimensional code positioning is generally adopted. Generally, an ink cartridge or a laser measuring instrument is used to determine the position and angle of a two-dimensional code landmark to be pasted, and then the two-dimensional code landmark is pasted at the specified position and angle by manual pasting, and then the position and angle of each two-dimensional code are manually input as a two-dimensional code map for subsequent positioning. This process is time-consuming in the early stage of deployment, requires high pasting accuracy of workers, and the inaccuracy of the two-dimensional code map caused by manual pasting affects the subsequent positioning accuracy.
[0003] Therefore, how to improve the accuracy of the two-dimensional code map and reduce the error between the two-dimensional code map and the navigation positioning map is a problem currently faced. SUMMARY
[0004] In view of the deficiencies in the prior art, the present application provides a two-dimensional code map automatic creation method based on laser to solve the problem of inaccurate two-dimensional code map positioning and large error in the use scenarios of indoor robots or industrial mobile AGVs in the prior art.
[0005] The present application provides a two-dimensional code map automatic creation method based on laser. An AGV contains a laser radar, a camera unit, an inertial measurement unit, and an odometer measurement unit. The laser point cloud data coordinate system hokuyo_link of the laser radar, the camera coordinate system camera_link of the camera unit, the data coordinate system imu_link of the inertial measurement unit, the odometer coordinate system odom_link of the odometer measurement unit, and the body coordinate system base_link of the AGV are obtained, and the method further comprises the following steps:
[0006] S1, obtaining an uncertainty value imu of the inertial measurement unit * The camera unit and the inertial measurement unit are jointly calibrated to obtain the zero bias bias and the Gaussian white noise noise of the inertial measurement unit, and the odometer value odom of the odometer measurement unit is obtained * The intrinsic matrix K of the camera unit is obtained, and the installation position and installation angle of the hokuyo_link, camera_link, and imu_link in the body coordinate system base_link are obtained, respectively, and are defined as the coordinates of the laser radar, camera unit, and inertial measurement unit.
[0007] S2, laying a two-dimensional code landmark, visual positioning through the camera unit, and generating a two-dimensional code map Map representing the environment and the real-time pose of base_link in the map through laser positioning;
[0008] S3, generating a two-dimensional code map based on the visual positioning and real-time pose, determining whether to add a real-time pose, if yes, updating the two-dimensional code map, otherwise, not updating.
[0009] Optionally, the visual positioning through the camera unit comprises:
[0010] solving the pose of the camera coordinate system camera_link in the coordinate system of the current two-dimensional code landmark and the id of the two-dimensional code landmark, denoted as markInfo.
[0011] Optionally, the two-dimensional code map Map representing the environment and the real-time pose of base_link in the map through laser positioning is denoted as comprises:
[0012] The laser positioning includes two cascaded functional modules of fusion positioning and laser slam, and the imu * and odom * are input into the fusion positioning module, and after fusion, odom * is denoted as fusion odom robot_odom, and the robot_odom and the laser point cloud are jointly input into the next laser slam module, and RBPF algorithm is adopted for simultaneous mapping and positioning, to generate a two-dimensional code map Map representing the environment and the real-time pose of base_link in the map, denoted as
[0013] Optionally, the two-dimensional code map based on the visual positioning and real-time pose comprises:
[0014] S301, initializing a MarkInfos container for saving markInfo information, initializing a RobotOdoms container for saving robot_odom information, odomWin_th for maintaining the maximum length threshold of the RobotOdoms container, and markWin_th for maintaining the maximum length threshold of the MarkInfos container;
[0015] S302, obtaining the pose conversion matrix of the camera coordinate system camera_link to the base coordinate system base_link
[0016] S303, constantly check whether there is a new fusion mileage value robot_odoom calculated, if yes, the new robot_odoom is added to the RobotOdoms container, and the oldest value in the window is deleted through the method of sliding window, to maintain the length of RobotOdoms no more than odomWin_th, otherwise no change;
[0017] S304, constantly loop to detect whether the visual positioning recognizes new two-dimensional code information, if there is new markInfo, the pose of camera_link coordinate system in mark_link coordinate system in markInfo is converted into the conversion matrix of camera_link coordinate system to mark_link coordinate system
[0018] S305, when new two-dimensional code information is detected, the RobotOdom container is searched for the robot_odom with the nearest time stamp before and after the current time, respectively defined as RobotOdom_pre and RobotOdom_after. If there is no RobotOdom_after, continue to wait until the latest robot_odom message arrives;
[0019] S306, the RobotOdom_pre and RobotOdom_after are interpolated according to time to estimate the RobotOdom corresponding to the time stamp markinfo.time of the current two-dimensional code information * value, and the pose information RobotOdom * converted into the conversion matrix of base_link to two-dimensional code map Map
[0020] S307, the pose of the current two-dimensional code in the two-dimensional code map Map coordinate system is calculated through the conversion matrix
[0021] S308, the coordinates in the two-dimensional code map Map and the pose of the AGV in the two-dimensional code map Map are calculated through the pose of the current two-dimensional code
[0022] S309, the multiple real-time poses of the two-dimensional code are filtered to obtain the mean and variance, and recorded to the MarkInfos container;
[0023] S310, before saving the two-dimensional code map Map, continuously detecting whether there is a new two-dimensional code, if yes, saving the real-time pose of the two-dimensional code If the real-time pose of the recognized two-dimensional code is detected Then repeat S304-S309, realize the update and save of the two-dimensional code map Map.
[0024] Optionally, the pose of the current two-dimensional code in the two-dimensional code map Map coordinate system is calculated through the conversion matrix The The calculation formula is:
[0025]
[0026] Where T.inv() represents the inverse matrix of the matrix, because for the coordinate system conversion matrix, there is
[0027] Compared with the prior art, the present application has the following beneficial effects:
[0028] 1. The positioning accuracy is increased. After the two-dimensional code is deployed in the early stage, the two-dimensional code map is generated by reverse calculation with the help of high-precision positioning of laser and inertial navigation fusion (which can reach +-5mm accuracy), which has higher accuracy than the two-dimensional code map generated by relying on manual measurement and pasting.
[0029] 2. Only in the early deployment stage, the laser is used to put into application in the later stage, and the two-dimensional code + inertial navigation fusion positioning robot is still used, which improves the positioning accuracy in the later stage without increasing the customer cost, and realizes low cost. BRIEF DESCRIPTION OF DRAWINGS
[0030] The accompanying drawings, which are incorporated into and form part of the specification, illustrate embodiments consistent with the present application and, together with the specification, serve to explain the principles of the application.
[0031] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the accompanying drawings needed to be used in the embodiments or prior art description will be briefly introduced. Obviously, for those skilled in the art, other drawings can also be obtained without creative labor.
[0032] Figure 1 The flowchart of the present application is shown;
[0033] Figure 2 The flowchart of S303 in the present application is shown;
[0034] Figure 3 The flowchart of S305 in the present application is shown;
[0035] Figure 4 The sensor structure schematic diagram involved in mapping in the present application;
[0036] Figure 5 The flowchart schematic diagram of the whole mapping in the present application;
[0037] Figure 6 The sensor coordinate system schematic diagram involved in mapping in the present application;
[0038] Figure 7 The GetTranslation flowchart in S304 in the present application;
[0039] Figure 8 The coordinate system conversion relationship schematic diagram of S304 in the present application;
[0040] Figure 9 The multiple sensor time matching and interpolation schematic diagram in the present application;
[0041] Figure 10 The schematic diagram of another embodiment in the present application. DETAILED DESCRIPTION
[0042] To make the purposes, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative work belong to the scope of protection of the present application. The functional units with the same and similar structures and functions with the same reference numerals in the embodiments of the present application have the same and similar structures and functions.
[0043] Reference Figure 1 The present application provides a kind of two-dimensional code map automatic creation method based on laser, AGV containing laser radar, camera unit, inertial measurement unit and odometer measurement unit, and respectively obtains the laser point cloud data coordinate system hokuyo_link of the laser radar, the camera coordinate system camera_link of camera unit, the data coordinate system imu_link of the inertial measurement unit, the odometer coordinate system odom_link of the odometer measurement unit and the ontology coordinate system base_link of AGV, also include:
[0044] S1, the uncertainty value imu of the inertial measurement unit is acquired * The camera unit and inertial measurement unit are jointly calibrated, and the zero bias bias and Gaussian white noise moise of the inertial measurement unit are obtained, and the odometer value odom of the odometer measurement unit is acquired *, obtain the intrinsic matrix K of the camera unit, and obtain the installation position and installation angle of the hokuyo_link, camera_link and imu_link under the base_link, respectively, which are defined as the coordinates of the lidar, camera unit and inertial measurement unit;
[0045] S2, lay the two-dimensional code landmark, perform visual positioning through the camera unit, and generate a two-dimensional code map Map representing the environment and the real-time pose of base_link in the map through laser positioning;
[0046] S3, generate a two-dimensional code map based on the visual positioning and real-time pose, determine whether to add a real-time pose, and if so, update the two-dimensional code map, otherwise do not update.
[0047] In this embodiment:
[0048] Referring to Figure 5 I. First, calibrate various types of sensors required for mapping, and the sensor data and coordinate system are defined as follows:
[0049] image (camera unit) - image captured by the camera;
[0050] Imu (inertial measurement unit) - three-axis linear acceleration and three-axis angular velocity collected by the 6-axis inertial measurement unit, represented as imu(time, acc x , acc y , acc z , ang x , ang y , ang z ), where time is the sampling time stamp;
[0051] Odom (odometer measurement unit) - two wheel encoders installed on the left and right drive wheels, which can obtain the rotational speed odom(time, v l , v r );
[0052] scan - (laser radar) point cloud data scan(time, rangs, intensities returned by the single-line laser radar sensor, including distance rangs and reflection intensity information intensities.
[0053] Referring to Figure 6 The coordinate system of each sensor is defined as follows:
[0054] imu_link - the coordinate system based on which the imu data is obtained;
[0055] hokuyo_link - coordinate system that laser point cloud data defined follow;
[0056] imu_link and hokuyo_link adopt coordinate system defined by each sensor manufacturer;
[0057] camera_link - camera coordinate system, defined according to the convention coordinate system in machine vision;
[0058] base_link - (robot body coordinate system) body coordinate system, defined the center of two drive wheels as the origin, the front of the robot as the x direction, and the left side as the y direction;
[0059] odom_link - body coordinate system at the moment of starting, defined as the odometer coordinate system;
[0060] mark_link - two-dimensional code coordinate system, three-axis defined as follows Figure 4 , the origin is defined at the center of the two-dimensional code chart;
[0061] map - map coordinate system, user-defined, this scheme first defines the base_link system at the beginning of mapping as the map coordinate system;
[0062] map * - updated map coordinate system, user-defined.
[0063] Secondly, the calibration content and algorithm, where the noise calibration is used to measure the uncertainty of each sensor measurement data, the internal parameter is used to solve the sensor data, and the external parameter is used to subsequent coordinate system conversion;
[0064] imu can be jointly calibrated with the camera, and the zero bias (bias x , acc y , acc z , ang x , ang y , ang z ) and Gaussian white noise (noise x , acc y , acc z , ang x , ang y , ang z ) of the imu can be obtained, and the imu data with uncertainty is redefined as imu * =(imu, cov), cov = bias + noise; the coordinate relationship between the imu and the camera can be obtained;
[0065] Camera intrinsic matrix K = [f / dx, 0cx; 0, f / dy, cy; 0, 0, 1], which includes focal length fx, fy, principal point position (cx, cy) and pixel to real environment size ratio dx, dy for subsequent two-dimensional code positioning module;
[0066] The odometer camera joint calibration of the odometer's intrinsic and uncertainty noise.
[0067] The intrinsic includes the distance between the two wheels of the odometer and the radius of the left and right wheels, and adopts a two-wheel differential model (see https: / / zhuanlan.zhihu.com / p / 89939454 for details). The following formula is used:
[0068]
[0069] Convert the encoding value odom to the odometer value odom * (time, x, y, theta t ), the above specific implementation adopts various sensor calibration modules in OpenCalib open source calibration toolbox or kalibr_allan open source algorithm module, and at the same time, OpenCalib open source calibration tool can be used to calibrate the external parameters of various sensors to obtain the installation position and angle deviation of imu_link, camera_link and hokuyo_link in the body coordinate system base_link, which are respectively defined as: and
[0070] Secondly, enter the mapping process, 1. Lay two-dimensional code landmarks, manually lay two-dimensional code landmarks according to the preset distance interval during deployment, and the pose accuracy of laying two-dimensional code landmarks does not need to be too high (the position deviation should be within the field of view angle of the camera, and the angle can be 360° in any direction); 2. In an environment without moving objects and personnel, remotely control the robot to pass above each two-dimensional code landmark laying point, at which time the controller will automatically generate a two-dimensional code map, and the algorithm process of the process is as follows. Four-way sensor data will enter the visual positioning and laser positioning units respectively.
[0071] In visual positioning, the two-dimensional code is collected through the fixed focus camera of the camera unit. When the collected image information contains two-dimensional code information, since the size of the two-dimensional code is known, the PnP algorithm (see https: / / blog.csdn.net / cocoaqin / article / details / 77848588) is used according to the pinhole imaging principle of computer vision;
[0072] The position and attitude (hereinafter referred to as pose) of the camera coordinate system in the two-dimensional code coordinate system are solved And identify the ID of the current QR code, denoted as: markInfo(time, Pose, Id), where time is the timestamp of the obtained time, and Pose is... This indicates the pose of the camera coordinate system in the mark coordinate system; Id represents the Id information value contained in the recognized QR code, used to mark the unique number of each QR code. This module is triggered when a QR code landmark appears in the camera's field of view.
[0073] Laser positioning comprises two cascaded functional modules: fusion positioning and laser SLAM. First, the IMU... * and odom * The data is input into the fusion positioning unit, and the extended Kalman filter algorithm is used to solve the odom * x, y, θ t As a measurement value, IMU * Because the robot moves in a two-dimensional plane, acc z =0,ang x =0,ang y =0, so it only applies to acc x ,acc y ,ang z Velocity integration and acceleration double integration are performed as state update values. The fused odometry data is denoted as `robot_odom`. The fused odometry data and the laser point cloud are input to the next-level laser SLAM module. The RBPF algorithm can be used for simultaneous mapping and localization, generating a QR code map representing the environment (`Map`) and the real-time pose of the `base_link` within that map, denoted as...
[0074] III. QR Code Map Generation
[0075] (a) Initialize the variables needed:
[0076] MarkInfos — Stores markInfo information obtained by the visual positioning module. A map can be used as a data container, and the ID of each mark can be used as the key value of the map.
[0077] RobotOdoms — Stores robot_odom information output by the fusion localization module, regardless of container type;
[0078] odomWin_th — Maintains the maximum length threshold for RobotOdoms containers;
[0079] markWin_th — Maintains the maximum length threshold of the MarkInfos container.
[0080] (ii) Load the pose transformation matrix from camera coordinate system to robot body coordinate system by querying the file
[0081] (iii) Refer to Figure 2 , constantly check whether there is a new fusion odometer value robot_odom calculated, if yes, add the new robot_odom to the RobotOdoms container, and through the method of sliding window, delete the oldest value in the window, to maintain the length of RobotOdoms no more than odomWin_th.
[0082] (iv) Continuously loop to detect whether the visual positioning module recognizes new two-dimensional code information, if there is new markInfo, convert the pose of the camera_link coordinate system in the mark_link coordinate system in the markInfo to the conversion matrix from the camera_link coordinate system to the mark_link coordinate system
[0083] Specifically refer to Figure 8 , find the pose P of point P in coordinate system C c in coordinate system M m , except that point P is the coordinate origin of C. You can first rotate the camera_link system to the same pose as the mark_link system by rotating around the z-axis, y-axis, and x-axis of the mark_link system by angles of 90°, 180°, and 270° respectively, and then translate the rotated camera_link system to coincide with the mark_link system, to realize the process of transferring the P point coordinate system from C to M. The P point coordinate solving process is as follows:
[0084]
[0085] Polynomial arrangement:
[0086]
[0087] Where:
[0088]
[0089] Here, point P(x c , y c , z c ) can be defined as the special point of the coordinate origin of the camera_link system. Through formulas (2) to (4), the pose of the known camera_link coordinate system in the mark_link coordinate system is solved to obtain the conversion matrix , which isFigure 7 The GetTranslation process.
[0090] (Five) Since each sensor data is a series of discrete sampling data, the sampling time is generally not completely aligned, so when there is new two-dimensional code positioning information, the robot_odom with the nearest time stamp before and after the current time in the RobotOdoms container needs to be found, as shown in Figure 3 , defined as RobotOdom_pre, RobotOdom_after. If there is no RobotOdom_after, continue to wait until the latest robot_odom message arrives.
[0091] (Six) Referring to Figure 9 , the RobotOdom_pre, RobotOdom_after obtained by multiple sensors (laser radar, camera unit, inertial measurement unit, and odometer measurement unit) are interpolated by time to estimate the RobotOdom value corresponding to the time stamp markinfo.time of the current two-dimensional code information. It is considered that the pose changes linearly at a constant speed in a short time interval, and the specific formula is as follows: *
[0092]
[0093]
[0094] Subsequently, the pose information RobotOdom * converted by GetTranslation from the body coordinate system to the map coordinate system
[0095] (Seven) Through the conversion matrix , the pose conversion matrix of a point in the two-dimensional code coordinate system to the two-dimensional code map map coordinate system , that is, left multiplying a matrix of any point P_{mark} in the two-dimensional code coordinate system, the pose P_{map} of the point in the map coordinate system can be obtained. Therefore is called the pose conversion matrix from the mark system to the map system, and the conversion formula is:
[0096]
[0097] where T.inv() represents the inverse matrix of the matrix, because for the coordinate system conversion matrix, there is (eight) the matrix of the previous step, through the inverse function of GetTranslation, Position, can be solved in the current markInfo.Id of the two-dimensional code in the global map map coordinate system The core of generating a two-dimensional code map MarkMap has been completed by the current step - solving With this value, when positioning, the coordinates of the two-dimensional code of the Id in the map can be obtained by retrieving the recognized mark's Id number in MarkMap Further, the robot's pose in the map obtained through the two-dimensional code sensor is realized by the following formula:
[0098]
[0099] (nine) multiple measurement results of the same Id two-dimensional code Filtering, mean value of probability statistics And variance, added to the MarkInfos container through ADDelement. The variance serves as the uncertainty of the pose of the two-dimensional code of each Id, which can be used as one of the subsequent two-dimensional code positioning uncertainties.
[0100] (ten) before receiving the command to save the map, it will continuously detect whether there is a new Id two-dimensional code recognition, if so, add the two-dimensional code of the Id If it is an old Id two-dimensional code positioning, update the two-dimensional code map through steps 5-13 and UpdateCov, until the save map command is received, save MarkInfos as MarkMap ends.
[0101] Further, the robot will automatically generate a two-dimensional code map after traversing each two-dimensional code landmark. The coordinate system of this map is the initial pose of the robot at the start time Figure 1 , while the actual starting pose of the robot is generally difficult to adjust to be consistent with the actual environment reference, resulting in a deviation between the generated two-dimensional code map coordinates and the familiar building environment coordinate system, which is not easy to display. Therefore, the function of the two-dimensional code map updating module is to reset the coordinate system of the two-dimensional code map according to customer needs. The two-dimensional code map updating module receives and displays the grid map output by the laser slam module, and the user can input the new system origin pose through clicking on the interface.
[0102] Reference Figure 10In another embodiment, as shown in the figure, a two-dimensional grid map of a warehouse is shown, where the left circle is the original coordinate system (red-x axis, green-y axis, blue-z axis), and a vector is picked up on the map, where (x, y) is the position coordinate in the two-dimensional plane, is the angle between the vector and the positive direction of the x-axis, and is defined as the new coordinate system, denoted as coordinate system. As shown in the right arrow in the figure, the origin is at the starting position of the arrow, the x-axis direction is in the direction of the arrow, the y-axis direction is 90 degrees counterclockwise rotation of the x-axis, and the z-axis is upward.
[0103] The two-dimensional vector projection to the three-dimensional coordinate is represented as That is, map * In the map coordinate system, the pose of the two-dimensional code map MarkMap in the original map coordinate system is It can be converted to map * In the coordinate system, thereby completing the coordinate system update of the two-dimensional code map.
[0104]
[0105] Compared with the traditional scheme, the present application reduces the requirement for the accuracy of the two-dimensional code label pasted by the construction personnel in the deployment stage (the position deviation is only required to be within the field of view angle of the camera, and in the present project, the allowable range of the position deviation can reach +-5cm, and the angle can be 360° in any direction), thereby improving the deployment efficiency; and after the two-dimensional code is pasted in the early deployment stage, high-precision positioning (which can reach +-5mm accuracy) is achieved by means of laser and inertial navigation fusion, and the two-dimensional code map is generated by reverse calculation, which has higher accuracy than the two-dimensional code map generated by relying on artificial manual measurement and pasting; and only in the mapping stage in the early deployment stage, the laser is used, and in the actual application process, the laser sensor can be removed, or only in the early deployment stage, a high-precision mapping robot with a laser sensor is used, and in the later application process, a two-dimensional code + inertial navigation fusion positioning robot is still used, which improves the positioning accuracy in the later stage without increasing the cost of customers; at the same time, according to the convenience of the front-end map display interface, for example, the horizontal and vertical directions of the actually pasted two-dimensional code are not horizontal to the building body itself or the direction of the shelf, the origin of the two-dimensional code map coordinate system used for AGV positioning can be quickly and conveniently adjusted, so that the direction of the positioning map used by the rear-end AGV is consistent with the direction of the front-end display map.
[0106] It has to be noted that, in the present document, relational terms are intended only to convey a possible relationship between elements or
[0107] The above description is merely that of the specific embodiments of the application and as such is not to be taken in a limiting sense, as the specific embodiments merely exemplify the general principles of the application. Certain modifications to the specific embodiments disclosed above can be apparent to one skilled in the art with the benefit of the present disclosure, and as such, should be within the purview of the application defined by the following claims, and their equivalents.
Claims
1. A laser-based two-dimensional code map automatic creation method, comprising an AGV containing a laser radar, a camera unit, an inertial measurement unit, and a odometer measurement unit, and respectively acquiring a laser point cloud data coordinate system of the laser radar , a camera coordinate system of the camera unit , a data coordinate system of the inertial measurement unit , an odometer coordinate system of the odometer measurement unit , and a body coordinate system of the AGV , characterized in that Also includes: S1, acquiring an uncertainty value of the inertial measurement unit , jointly calibrating the camera unit and the inertial measurement unit to obtain a zero offset of the inertial measurement unit and Gaussian white noise , acquiring an odometer value of the odometer measurement unit , acquiring an intrinsic matrix K of the camera unit, and acquiring installation positions and installation angles of the , , and in the body coordinate system, respectively defined as coordinates of the lidar, the camera unit and the inertial measurement unit S2, laying a two-dimensional code landmark, visual positioning is performed through the camera unit, and the camera coordinate system is solved the pose in the coordinate system of the current two-dimensional code landmark and the id of the two-dimensional code landmark, denoted as and a two-dimensional code map representing the environment is generated through laser positioning and the real-time pose in the map, the laser positioning includes two cascaded functional modules of fusion positioning and laser slam, and the and are input into the fusion positioning module, and after fusion denoted as a fused mileage value and the are jointly input into a next laser slam module, an RBPF algorithm is used for simultaneous mapping and positioning, and a two-dimensional code map representing the environment is generated and the real-time pose in the map, denoted as ; S3, generating a two-dimensional code map based on the visual positioning and real-time pose, judging whether to add a real-time pose, if yes, updating the two-dimensional code map, otherwise, not updating, which includes: S301, initializing a container for holding information s container, initializing a container for holding information container, for maintaining a maximum length threshold for the container and for maintaining a maximum length threshold for the container ; S302, obtaining the camera coordinate system to the body coordinate system pose conversion matrix ; S303, continuously check for new fusion mileage values. If the solution exists, then the new one will be calculated. Add the data to the RobotOdoms container, and maintain the length of RobotOdoms by removing the oldest value from the window using a sliding window method. Otherwise, no changes will be made; S304. Continuously check whether the visual positioning has recognized new QR code information. If new... ,Will In coordinate system in pose in coordinate system Convert to coordinate system to Transformation matrix in coordinate system ; S305、detecting the new two-dimensional code information, looking for the nearest time stamp before and after the current time in the RobotOdoms container , respectively defined as and , if there is no , continue to wait until the latest time message arrives; S306, regarding the above and Interpolate by time to estimate the timestamp relative to the current QR code information. Time corresponding The value, and the pose information obtained through interpolation. Convert to body coordinate system Go to QR code map Transformation matrix ; S307, calculating the current two-dimensional code in the two-dimensional code map through a conversion matrix pose in the coordinate system ; S308, using the current pose of the QR code Calculation in QR code map coordinates below And the AGV on the QR code map lower posture; S309, multiple real-time poses of the two-dimensional code Filtering processing is performed to obtain mean value and variance, and record to s container; S310, save the two-dimensional code map continuously detect whether there is a new two-dimensional code, if yes, save the real-time pose of the two-dimensional code , if the real-time pose of the recognized two-dimensional code is detected , repeat S304-S309, realize the update and save of the two-dimensional code map .
2. The laser-based two-dimensional code map automatic creation method according to claim 1, wherein, The pose of the current two-dimensional code in the two-dimensional code map is calculated through a conversion matrix coordinate system , the The calculation formula is: , wherein denotes the inverse of a matrix, because for coordinate system transformation matrices, there exists .
Citation Information
Patent Citations
Indoor robot positioning method, device and system based on two-dimensional codes and laser
CN108363386A
Mobile robot positioning system and method based on two-dimensional code vision and laser SLAM
CN115014338A