Firstly, the principle of positioning two-dimensional codes
This tutorial is aimed at mobile robots that use a Sengok Smart SRC controller and install a lower view-reader camera.
Two-dimensional code positioning on the ground is a conventional positioning method for mobile robots. Firstly, QR codes need to be laid out on the environment ground in advance. Each QR code has its globally unique ID and is bound to the plane physical coordinates of the scene. When the robot's down-reading code camera captures the two-dimensional code, the robot can obtain the global coordinates and orientation of the current moment by analyzing the code information, as well as the position and angle deviation between the camera and the two-dimensional code.
After the two-dimensional code is arranged in the scene and the two-dimensional code map is generated, the map in Roboshop will look like the following:
When the movement path of the robot passes through the two-dimensional code, the deviation of the robot relative to the two-dimensional code can be read by the visual reader, and the current position of the robot can be corrected. On the path between the two two-dimensional codes, the robot uses its own mileage and IMU data fusion to conduct relative positioning.
Secondly, Introduction of Code Reading Camera
2.1 Description of Principles
A code-reading camera is essentially a type of camera that directly identifies QR codes, rather than providing raw data.
Camera position relative to QR code, X and Y directional offset, and angle offset.
Displays the ID of the QR code tag.
Note: PGV is simply a QR code camera product from Pepperl + Fuku. Other suppliers offer similar features. The current claim that the PGV will replace QR code cameras is inaccurate.
2.2 Selection Comparison
Brand | Model Number | Interface | Fill Light Mode | Mounting Height | Precision Error | Supported Controllers | Degree of Recommendation | Usage Precautions |
---|---|---|---|---|---|---|---|---|
Double plus fortune | PGV100-F200A-R4-V19 | RS485 (supports single-bus multi-device) | Built-in light source, white visible light | 100 mm ± 20 mm | ±0.2mm / ±0.1° | SRC-800/2000/3000 | In | Supports only Peplus Fuku tag 4x4 Tag Standard Version with eight digits |
Double Plus Fortune | PGV100R - F200 - R4-1, 5 M | RS485 (supports single-bus multi-device) | Equipped with its own light source, red visible light | 100 mm ± 30 mm | ±0.2mm / ±0.1° | SRC-800/2000/3000 | High | Supports Double Plus Fu standard version with eight digits; Double Plus Fu extended edition with fourteen digits (directly supported, no configuration required) |
Ill | GLS100 series | RS485 (supports single-bus multi-device) | Equipped with its own light source, visible light | 100 mm ± 10 mm | ±0.1mm / ±0.1° | SRC2000 | Low | Uses Sick's special QR code |
Hikon | MV-IM5005-02MWG | RS485 (does not support single-bus multi-device) | Equipped with its own visible light source | 100 mm ± 20 mm | ±1mm (consistent with z values in the model file) / ±0.1° | SRC2000 | Within the | The output coordinates are in pixel values, which need to be converted into coordinate values based on the height value filled in the model file. Therefore, the output precision unit is the same as the height filled in the model file. In case of uneven ground, the output accuracy may be reduced. |
Dahua | MV-R3138MG010 | RS485 (does not support single-bus multi-device) | Equipped with its own visible light source | 100 mm ± 20 mm | 0.1mm / 0.1° | SRC-800/2000/3000 | high | Only supports Peplus Fuku tag 4x4 Tag Standard Version with eight digits |
Dappa | DB-PC-A1D6 (top view) | RS485 (does not support single-bus multi-device) | No built-in light source | 3 meters to 4 meters | ±20mm (related to installation height and two-dimensional code global coordinate accuracy) | SRC2000 | In use | Use Dappa's special QR code, QR code size is larger than 13cm * 13cm |
2.3 Parameter Configuration
Before using the reader camera, it requires specialized upper computer software for parameter configuration. Let's take PGV as an example. The configuration items are listed below:
Communication baud rate
Parity check
Device address (ID)
Communication mode
Light intensity
Two-dimensional code size
For a camera that reads codes and has its own light source, if the lighting intensity is set too high, the camera may not be able to accurately recognize the two-dimensional code.
2.4 Function Description
2.4.1 Location
Application Scenario:
Utilizing two-dimensional code positioning technology for robot path navigation.
Note:
Ensure that the camera is within the specified height range above the ground to avoid unrecognized data.
Avoid having multiple QR codes in the same field of view when using camera positioning.
Use a special level to ensure the accuracy of the two-dimensional code.
Stained or wrinkled QR codes may cause accuracy issues for the robot.
QR code positioning can be used for all models except for the single wheel car, including wheat wheel, double wheel differential, and double wheel.
Parameter Name | Parameter Position | Unit | Default Value | List | Supported Version |
---|---|---|---|---|---|
Localization | Model File -pgv-func | - | Adjust |
| 3.3.4.20 ~ Latest |
Use QR Codes for Robot Navigation |
2.4.2 Fine-tuning
Usage scenario:
The downward-facing camera is utilized for precise docking between the robot and the line and edge mechanism. The coordinate accuracy is ±2mm and the orientation angle accuracy is 0.1°. The robot can fine-tune its position.
An upward-facing camera is used for drilling into the shelf and pointing upwards at the shelf.
The upper view camera is employed to ensure that the shelf angle is not biased during movement.
Attention:
1. The usage mode of the scene has a problem with multi-vehicle consistency. Even if the robot arrives at the point with high accuracy, the accuracy of its end-effector cannot be guaranteed. It can be optimized by placing the camera on a terminal mechanism, such as a tank car.
Scenarios 2 and 3 arenot recommended.
The problem in scenario 2 can be solved by identifying the legs of the shelf.
The problem in scenario 3 can be solved by increasing the friction coefficient of the contact surface between the jacking vehicle and the shelf to prevent slipping.
Parameter Name | Parameter Position | Unit | Default Value | List | Supported Version |
---|---|---|---|---|---|
Adjust | Model File -pgv-func | - | Adjust |
| 3.3.4.20 ~ Latest |
When the robot reaches the target point, it makes adjustments according to the position of the QR code. |
2.4.3 Parameters Returned by the Sensor
Information of Two-dimensional Code | Unit | Remarks |
---|---|---|
tag_diff_x | m | Deviation in X-direction |
tag_diff_y | m | Deviation in Y-direction |
tag_diff_angle | radian | Angle Deviation |
tag_value | - | QR Code Tag Number |
warning_code | - | Alarm Code Read by Camera |
device_address | - | Reader Camera Device Address (Same as Model File ID) |
is_DMT_detected | - | Recognition of Two-dimensional Code |
error_code | - | Error Code Read by Camera |
2.5 Installation and Configuration of the Reader Camera
For the configuration method, please refer to:
Dappa
SICK code reader camera
Pepplus Plus code reader camera
Dahua code reader camera
III. Deployment of PGV Two-Dimensional Code
PGV is a unique code-reading camera that can capture and interpret QR code data, providing feedback on the position and angle deviation between the device center and the QR code center. This section outlines the requirements for QR codes when using PGV.
3.1 Classification of PGV Two-dimensional code
1. Type by application scenario
Navigation using QR code: The robot does not have a navigation laser and instead uses a camera to read QR codes on the ground for navigation.
Secondary positioning using QR code: The robot is equipped with a navigation laser and can accurately position itself by reading QR codes on the ground or at the bottom of the material rack using its camera.
2. Classification according to the type of QR code
11 Two-dimensional codes, hereinafter referred to as QR codes, have a shorter lifespan than 44 two-dimensional codes.
4x4 QR code
2x2 or 3x3 QR codes are not supported
3. Utilize different two-dimensional codes based on the camera model
For the brands Pepperl + Fu and Dahua, you can use the universal Pepperl + Fu 4*4 QR code. To print it, select the PGV QR code in the QR code tool in Roboshop.
The QR code style utilized by the Hikang code reader camera is displayed in the following image. Choose **AMB-800K from the Roboshop QR code tool, and use **PGV for this model in our standard products.
3.2 Generating QR Code
Tool: Roboshop Pro version 2.4.1.38 or newer
3.2.1 Tool for Generating Two-dimensional Codes
Visit the Roboshop Pro homepage and click on "Others" to access the QR Code Tool.
3.2.2 Creating a Two-Dimensional Code
Note: The actual generated number of the two-dimensional code is between 1 and 9999999.
Generate a 4x4 QR code
Select [PGV QR Code] in the QR Code Tool interface. Generate a two-dimensional code based on your specific needs, where:
Number of QR codes: Select 4 to generate a 4*4 QR code.
Starting number: Usually starts from 1.
End number: Enter this parameter as needed.
Generating monocode
Select [PGV Single QR Code] in the QR Code Tool interface. Generate a two-dimensional code based on your specific needs, where:
Version: Choose DM (14*14).
Starting number: The value begins at 1.
Ending number: Input this parameter as needed.
For the actual printed size of the QR code, refer to the QR code size calculation data on the right.
3.2.3. Save the QR code
Click the "Generate" button located in the image above to save the generated QR code file to your preferred directory.
Figure 2: 4x4 QR Code
3.3 Printing Two-dimensional Code
Printer: ZEBRA ZT410 300dpi
Printer Paper: WE PET 90*90
Carbon Belt: RICOH 100*300
3.3.1 Installing the Printer
Follow the instructions below to install the printer paper and carbon tape.
2. Once the installation is complete, connect the power supply and turn on the switch as shown in the image below.
Note: The carbon tape and printer paper must be clamped, otherwise the printer will prompt a task pause.
Printer driver:Link. Please install the driver after connecting the printer and computer using a USB cable or network cable (both are indispensable).
3.3.2 Printing the QR code
Click on "Print" to access the "Print Preview" interface.
2. Click on the icon button to access the printing interface.
3. Select the printer and click on the "Print" button.
4. The printing process is complete.
Explanation:
All small QR codes are of the same size;
No need to cut, can be used directly;
The current printer paper only supports printing of
2 * 2
,3*3 (without displaying center coordinates)
, and4 * 4
QR codes;It is recommended to use
4 * 4
and2 * 2
QR codes mainly for small areas, and there is no difference in technology between the two.
3.3.3 Two-dimensional Code Pasting
Utilize tools:
Tape measure
Coated paper: Frosted film, 110*110mm (as shown in Figure 3)
At least two ground-attached instruments (as shown in Figure 4)
Requirements for placing QR codes for navigation:
The standard distance between two QR codes is 1 meter. The QR code should be placed at the turning point of the robot.
The X and Y axes on the QR code must be aligned with the ground line (with an error of no more than 3 degrees).
The QR code numbers on the ground should increase gradually in accordance with the X and Y axis directions.
The QR code numbers in the area must be unique. QR codes with the same number are not allowed.
It is recommended that the X and Y axis directions of the QR code be consistent as much as possible.
3.3.4 Procedure for Pasting
Choose the location where you want to paste the QR code, as illustrated in the image below.
2. Utilize a tape measure to determine the distance of 1 meter, parallel to the laser line.
3. Align the center coordinates and affix.
4. Once affixed, cover with the film.
IV. Calibration
4.1 Calibration of PGV
Note: This method is only suitable for vehicles that are equipped with navigation lasers and have been calibrated correctly.
If the robot has obstacle avoidance lasers installed, it will require the use of PGV-odometer calibration.
Necessary Information
Acquiring data is necessary for PGV calibration.
QR code position data detected by PGV;
Robot odometer.
Define the special QR code area
An even and enclosed space.
Only one QR code on the floor.
Method of Calibration
Firstly, make sure that the calibration data for the navigation laser is functioning properly. A navigation laser scan is utilized to calibrate the environment using a single QR code and relocate the robot to ensure accurate positioning on the map.
In order to maneuver the robot onto the two-dimensional code, it is essential to align the robot's front (X+ direction) with the two-dimensional code's X+ direction, as illustrated in the figure below.
Once the is_DMT_detected value of the PGV option is changed to True while Roboshop is running.
Access the calibration option, choose PGV, and click on "Start Calibration" to initiate the calibration process.
Calibration Procedure
The PGV on the robot that needs calibration has detected the two-dimensional code. Now, proceed with the following steps:
Align the robot's posture so that PGV is centered on the QR code;
Move forward and backward several times;
Rotate around the center of PGV (as specified in the model file).
Adjustable Parameter
Parameter Name | Parameter Meaning | Remarks |
---|---|---|
PGVCalibSize | The distance of straight back and forth | - |
PGVCalibLinSpeed | The speed of going straight back and forth | - |
PGVCalibRotSpeed | Angular velocity of rotation about the center of PGV | - |
PGVCalibMoveCnt | The number of back and forth trips | - |
Attention Required
If PGV is not located on the Y-axis of the robot coordinate system (as per the model file), the vehicle will not be able to move in all directions, and step 3 of the calibration process will fail, resulting in a calibration failure.
Since the PGV's detection range for two-dimensional codes is limited, and the calibration process revolves around the PGV's position as described in the model file, any significant errors in the PGV's external parameters in the model file may result in insufficient data collection, leading to inaccurate identification. Therefore, it is crucial to set the PGV parameters correctly in the model file.
4.2 PGV Odometer Calibration
Pgv-odometer calibration is appropriate for dual-wheel differential vehicles that do not have Lidar equipment checked for positioning and are equipped with downward-facing PGV (such vehicles always rely on detecting QR codes for positioning). Each downward-facing PGV corresponds to a calibration item of this type.
Necessary Information
The Pgv-odometer calibration process requires the collection of:
Vehicle location data obtained from PGV;
Walking motor encoder data.
Define a special area for QR codes
To obtain as much positioning data as possible from the QR code pose information detected by PGV during the calibration process of the PGV-odometer, a dense QR code area is required. The simplest form of this area is a continuous strip QR code area, as shown in the image below:
Additionally, this bar QR code area possesses the following properties (refer to the figure below):
The X-axis of the two-dimensional code coordinate system corresponds to the longer side of the strip area.
Within the two-dimensional code area, the initial two-dimensional code is located at the end of the negative x direction in the two-dimensional code coordinate system. During PGV-otometer calibration, the robot must be positioned within the range of the two-dimensional code detected by PGV.
Please contact technical support personnel to obtain the dedicated QR code strip or inquire about additional requirements for setting up the dedicated QR code area.
In addition to laying out the two-dimensional code area, it is also necessary to determine the position and orientation of these codes on the map, so that the vehicle can correctly utilize the two-dimensional code.
Method for Calibration
Firstly, ensure that the lidar device on the robot is not selected for positioning.
Maneuver the robot to the location of the initial QR code, allowing PGV to have a clear view of the entire QR code as depicted below.
Make sure that the is_DMT_detected option of the PGV in the Roboshop running state is set to True.
Access the calibration option, choose PGV, and click on "Start Calibration" to initiate the calibration process.
Calibration Procedure
At the initial state, the robot can utilize PGV for calibration to detect the initial two-dimensional code. Once calibrated, the robot will execute the following actions:
Align the robot's posture so that PGV is centered on the initial QR code;
Move forward and backward several times;
Rotate counterclockwise and clockwise in place several times.
Adjustable Parameter
Parameter Name | Parameter Meaning | Remarks |
---|---|---|
PGVOdomCalibLength | The distance of straight back and forth | - |
PGVOdomCalibSpeed | The speed of going straight back and forth | - |
PGVOdomCalibAngle | The angle of the reciprocating rotation | - |
PGVOdomCalibRotSpeed | The angular velocity of the reciprocating rotation | - |
PGVOdomCalibGoBackandForthCnt | The number of back and forth straight lines | - |
PGVOdomCalibRotBackandForthCnt | The number of back and forth rotations | - |
Five, Two-Dimensional Code Navigation Settings
5.1 Importing Two-Dimensional Codes by Identification Method
After posting the QR code on your website, go to the Roboshop homepage and select the robot. The "Start Recognition" button will then appear on the right side of the toolbar.
Click on "Start Recognition" and manually control the robot positioned above the QR code. Once the robot stops moving, the QR code it has just identified will be displayed on the Roboshop map interface. Control the robot to scan all QR codes in sequence and click on "Stop Recognition" once the scanning is complete. Upload the current map and successfully mark the identified QR codes.
5.2 Manually Import and Set QR Code Coordinates
This method is suitable for scenarios where high accuracy is required for QR code navigation. The QR code should be pasted strictly in accordance with the horizontal and vertical orientation. All QR codes should have consistent orientation. Then, import the QR code coordinates according to the measurement data. As shown in the figure below, if all QR codes are evenly arranged:
Select the QR code and then use the Batch Create function
It supports uniform batch creation of a QR code or uniform creation of a QR code matrix. For non-uniform QR codes in some parts, you can select a group of QR codes for replication to create:
You can also achieve batch creation, and then modify the QR code ID according to the actual QR code pasting situation to ensure that the pasted QR codes are in the same order as the QR codes in the map.
Then save the map.
Method 1:
In Roboshop's map editing mode, select the site tool and drop an AP site at any location near the QR code (the same applies to other types of sites). Drag this AP point, and when it is close to the QR code, it will automatically attach to the QR code.
Method 2:
a. First, box all QR codes.
b. Right-click any QR code and select Batch LM point to automatically create all the sites above the QR code. You can also right-click a single QR code to create a single LM point.(This function requires RoboshopPro-2.4.1.36 or above to achieve)
Follow the previous steps to establish sites for all QR codes and plan routes.
Attention:
The orientation of the QR code on the map must match the orientation of the QR code on the ground;
The direction of AP points can be adjusted according to actual requirements of the map.
Ensure that the QR code number on the map corresponds to the actual location.
In Map editing, under
Region
>Advanced Region
, select the area you want to navigate using the QR code. TheTwo-dimensional code area
must cover all stations and routes that require QR code navigation.
Once the region configuration is finished, save and upload the map. When the robot reaches the designated area, it will automatically switch to two-dimensional code positioning. Upon leaving the area, it will switch back to laser positioning.
Six Precautions
6.1 Alarm Code Description
Error52121
Info: pgv model parameter configuration error.
Trigger condition:
This alarm code is triggered when the reader camera model is configured incorrectly.
Solution:
Check the reader camera model file
xUnit``xRange``yUnit``yRange``angleUnit
to ensure the configuration is correct.After restarting the robot, retrieve the model file and reconfigure the reader camera model.
Error52127
Info: PGV connection error.
Trigger condition:
This alarm code is triggered when communication between the reader camera and the SRC is disconnected.
Solution:
Check if the communication cable of the code reader camera is disconnected.
Check if the parameter settings of the code reader camera are incorrect.
Check if the model file brand configuration is incorrect.
Error52128
Tip: PGV information with mismatched device ID.
Trigger condition:
If the information reported by the camera reader does not match the model configuration information, this alarm code will be triggered.
Solution:
Check the model configuration of the camera reader.
Replace the camera reader code.
Error52301
Tip: Unable to detect tag after a certain distance.
Trigger condition:
When using QR code for positioning, the robot is unable to detect the next QR code after detecting that the previous QR code has moved a certain distance.
Solution:
Check if the ground is slippery, causing the robot to deviate from the line.
The distance between two QR codes is greater than the set threshold value, causing the robot to sound an alarm before detecting the next QR code.
Error54053
Hint: The tag is not visible.
Trigger condition:
This alarm code will be triggered when the QR code is not visible when using pure QR code for positioning.
Solution:
This warning will be reported during use because the two-dimensional code cannot be seen. It can be cleared after the two-dimensional code is visible.
Error54070
Hint: PGV cannot find codes.
Trigger condition:
This alarm code will be triggered when the QR code cannot be detected during secondary positioning.
Solution:
Increase the PGV_Time parameter in the settings to increase the error threshold.
Check if the distance between the camera and the QR code is appropriate.
Adjust the xRange and yRange of the model file reader cameras.