The shelf cannot always be fixed at a position. When the AGV needs to perform some operations such as pulling or lifting the shelf, it needs to know the location of the shelf accurately. At this time, the AGV's own positioning on the map is accurate, but the location of the shelf is unknown on the map, so we need to identify the shelf to determine the location of the shelf. And some scenes require that the shelf legs cannot be modified (such as pasting reflective film, etc.). At this time, it is necessary to identify the shape of the shelf legs.
1. Under normal circumstances, the shelf has four legs, and the four legs are required to form a rectangle;
2. The other parts of the shelf design are required to be in axisymmetric form, including limit holes that cooperate with the jacking mechanism, and the shelf part supported on the shelf legs;
3. The inner width of the shelf is 20cm wider than the maximum width of the robot, that is, 10cm redundant adjustment space of drilling the shelf on the left and right sides;
4. The requirement on the shelf height is determined according to the itinerary of the jacking module;
5. The surface of the shelf legs is required to be smooth and flat;
6. The shape of the shelf legs is preferably a regular cube;
7. The surface of the shelf legs cannot be made of specular reflective materials;
8. The surface of the shelf legs cannot be translucent materials;
9. The surface of the shelf legs cannot be black material;
The picture below shows a typical usable shelf leg.
The above figure is a schematic diagram of shape identification by laser radar. The blue coordinate system in the figure is the car body coordinate system of AGV, the dotted square is the configurable identification area of laser radar, and the dotted line in the square is the schematic diagram of the laser radar scanning, scan.
When using laser radar for shape identification, ensure that there are shelf legs to be identified in the identification range of the laser radar, and the identification area can be configured according to the on-site environment;
The several parameters shown in the figure above represent the identification area of the laser radar. This parameter needs to be configured according to the actual environment of the site.
ValidShapeX: the maximum identification distance in the car body coordinate system, and the unit is m;
ValidShapeBias: the amount of deviation;
According to the identification direction, the system will automatically calculate the identification range. For instance, it can identify the dotted frame on the diagram.
When detect_direction is x, ValidShapeX is the maximum distance in the x direction in the car body coordinate system, that is: 0<x<ValidShapeX, and the range of identification in the y direction is: -(distance/2 + ValidShapeBias) <y <(distance/2 + ValidShapeBias).
When detect_direction is -x, ValidShapeX is the maximum distance in the x direction in the car body coordinate system, that is: -ValidShapeX<x<0, and the range of identification in the y direction is: -(distance/2 + ValidShapeBias) <y <(distance /2 + ValidShapeBias).
When detect_direction is y, ValidShapeX is the maximum distance in the y direction in the car body coordinate system, that is: 0<y<ValidShapeX, and the range of identification in the x direction is: -(distance/2 + ValidShapeBias) <x <(distance/2 + ValidShapeBias).
When detect_direction is -y, ValidShapeX is the maximum distance in the y direction in the car body coordinate system, that is: -ValidShapeX<y<0, and the range of identification in the x direction is: -(distance/2 + ValidShapeBias) <x <(distance /2 + ValidShapeBias).
Note: the car body coordinate system is a right-handed coordinate system, that is, the positive front is the positive X direction, and the positive left is the positive Y direction.
ValidShapeDistanceThreshold: this value represents the difference between the distance between the shelf legs calculated in the identification algorithm and the actual distance;
ValidShapeLineThreshold: this value represents the difference between the length of the shelf leg calculated internally by the identification algorithm and the actual length.
ValidShapeLineSplidThreshold: this value represents half of the diagonal length of the shelf leg and needs to be changed according to the size of the shelf leg.
ValidShapeValidShelfAngle: this value represents the maximum inclination angle between the car body and the shelf. When the identification direction is the front and rear of the vehicle, it indicates the maximum inclination angle between the front and rear of the vehicle and the shelf. Lateral identification is expressed as the maximum angle of inclination between the side of the car and the shelf.
ValidShapeDetertorNum: this value represents the number of consecutive identifications. When the results of multiple consecutive identifications are very close, then the identification is successful. This parameter is only valid for drilling the shelf.
Use Roboshop software of our company, click the [Identification File] tab to enter the configuration interface, select a [shelf] file, and configure the parameters of the shelf description file in the properties window on the right. As shown below:
Description of drill-in attribute parameter:
1.align_depth: the depth of drilling into the shelf in the case of car head identification (x-direction);
2.anti_align_depth: the depth of drilling into the shelf in the case of car trail identification (-x direction);
3.y_align_depth: the depth of drilling into the shelf in the case of lateral identification of the car head (y-direction);
4.y_anti_align_depth: the depth of drilling into the shelf in the case of lateral identification of the trail (y-direction);
5.continue_detect: whether to enable continuous identification
6.recDist: if the front point is far away from the shelf, you can configure recDist. This value indicates how far from the shelf to start recognition. Through the numerical value, the influence of factors such as uneven ground and uneven level of lidar installation can alleviate to a certain extent, and the application can improve the recognition accuracy.
It is required to configure five parameters as shown in the figure:
1. rightStandardLength, the length of the right shelf leg;
2. rightVerticalLength, the width of the right shelf leg
3. leftVerticalLength, the width of the left shelf leg;
4. leftStandardLength, the length of the left shelf leg;
5. distance, the distance between the inner sides of the shelf legs;
6. use_optimization, checked by default, represents use optimization.
In addition, the angle between the length and width of the shelf leg is 90° by default, and it can also be additionally configured. When the length and width of the shelf leg are greater than 6cm, check use_optimization to improve the identification accuracy.
After completing the configuration of the above-mentioned reflective film or shape identification, you only need to configure the identification model file in the attribute of the front point corresponding to the shelf point, that is, the shelf file, and then set the
ObsExpansion in the line attribute to 0 to avoid the situation that the robot stalls during the process of drilling the shelf. Next, configure the execution action:
1. If it is required to identify the position of the shelf, and drill into the material shelf to jack it up, you need to check to Recognize and click Load;
2. If there is no need to identify the position of the shelf, drill in an open-loop to a fixed position and jack it up, you don't need to check Recognize, just click Load;
3. If it is required to identify whether there is a shelf in the position, and place the shelf, you need to check Recognize, and click Unload. If there is a shelf occupied, an error will be reported; if identification is not required, and it is required to open the loop and place it, you don't need to check Recognize, just click Unload;
4. There are a few cases where you need to click Wait. If you check to Recognize and then click Wait, the robot will recognize the position of the material shelf, drill into the bottom of the material shelf, and then end the task without moving and jacking module; if you don't check Recognize, and click Wait directly, the robot will navigate to the workstation with a fixed path, and then end the task without jacking.
Then if we select the execution action when executing the path planning, AMR will automatically switch to the identification mode at this front point, and calculate the center position of the shelf according to the position of the recognized shelf leg and automatically generate the route to this position.
For the omnidirectional car with the laser radar installed at the front and rear, the front, rear, left and right sides of the car can also be identified through configuration. The configuration is shown in the following figure:
1. In order to reduce wrong identification, when using the laser to identify the material shelf, the distance between the center of the front two legs of the material shelf and the front identification point should be less than 2m, and the angle deviation between the line from the center point to the identified position laser and the car body is less than 10°, and the angle deviation between the angle of the shelf itself and the AMR during identification is less than 20°;
2. To use the identification function of the laser point cloud shape, you need to configure the parameter method_type to by_legShape, and avoid blocking the shelf legs in the laser radar identification area;
identification accuracy: the accuracy in the x and y directions is higher than ±1cm, and the angle accuracy is higher than 1°. (The closer the identification distance, the wider the shelf legs, the more accurate the identification. The accuracy is measured at the identification distance of 1m and the length and width of 6cm)