Robot, intersection detection method of robot and storage medium
Through environmental map and section analysis, combining the number of sections and the angle of line segments, the intersection type and the robot's movement direction are judged, which solves the problem of inaccurate detection of intersection types in complex intersection environments, and improves safety and accuracy.
Patent Information
- Application Number
- CN202310212239.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-24
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2043-02-24
AI Technical Summary
Existing robots have difficulty accurately detecting the type of intersection in complex intersection environments, resulting in possible collisions or damage to the delivery items.
By determining the node location and road section based on the environmental map, combining the number of road sections and the angle threshold of line sections, the intersection type is judged, and the robot movement direction is adjusted according to the intersection type to avoid obstacles.
It improves the accuracy and safety of intersection detection, and reduces the risk of collision of robots in complex intersection environments and the probability of damage to distribute items.
Smart Images

Figure CN116206449B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of robotics technology, and in particular to a robot intersection detection method, device, robot, storage medium and computer program product. Background Art
[0002] With the development of technology, robots can be used in various scenarios. However, in real scenarios, there are generally many types of intersections (such as crossroads, T-shaped intersections, and L-shaped intersections). It is dangerous for robots to operate in such scenarios. For example, due to the obstruction of a certain direction, the robot is not clear about the blind spots on the other side of the intersection. When there are dynamic obstacles such as pedestrians suddenly rushing out of the blind spots, a collision may occur; or the robot brakes suddenly, causing the delivered soup to spill.
[0003] In traditional intersection detection schemes, the change trend of road width is mainly used for intersection detection. If the width difference between the intersection and the road on which it is located is not large, the accuracy of intersection detection is low. Summary of the invention
[0004] Based on this, it is necessary to provide a robot intersection detection method, device, robot, computer-readable storage medium and computer program product to address the above technical problems, which can accurately detect intersections.
[0005] In a first aspect, the present application provides a robot, the robot comprising a memory and a processor, the memory being used to store computer-readable instructions that can be run on the processor, and the processor being used to implement the following steps when executing the computer-readable instructions:
[0006] Determine a node position and a road section of the node position based on an environment map;
[0007] Determining, according to the number of the road sections, that the node position is a first intersection type or a second intersection type;
[0008] Whether the node position is a third intersection type is determined according to a relationship between an angle between a line segment in the road segment at the node position and an angle threshold.
[0009] In one embodiment, the determining of the node position and the road section of the node position based on the environment map includes:
[0010] determining roads in the map of the environment;
[0011] In the road, determining node positions based on connection positions of each of the line segments;
[0012] In the node positions, determining the endpoint positions of the segments where the number of the line segments meets a preset condition;
[0013] The road segments of each node position are determined based on the road segments formed by each line segment between adjacent road segment endpoint positions.
[0014] In one of the embodiments, determining the node position as the first intersection type or the second intersection type according to the number of the road segments includes:
[0015] When the number of road sections at the node position is equal to the first preset number of intersections, determining that the node position is the first intersection type;
[0016] When the number of road sections is the second preset number of intersections, determining that the node position is the second type of intersection; the first preset number of intersections is less than the second preset number of intersections;
[0017] When the number of road sections at which the node position is determined is less than the preset intersection number threshold, it is determined that the node position does not belong to a scene type of the first intersection type and the second intersection type.
[0018] In one embodiment, judging whether the node position is a third intersection type according to a relationship between an angle between a line segment in the road segment and the node position and an angle threshold value includes:
[0019] In the road section, determine the line segment of the node position;
[0020] Determine the angle between the line segments of the node positions;
[0021] Determine whether the angle is greater than a preset intersection angle threshold;
[0022] If it is greater, it is determined that the node position is the third intersection type.
[0023] In one of the embodiments, determining the line segment of the node position in the road segment includes:
[0024] If the node position is a position in a first road segment, determining a line segment of the node position from the first road segment;
[0025] If the node position is a connection position between a first road segment and a second road segment, a line segment of the node position is determined from the first road segment and the second road segment respectively.
[0026] In one embodiment, the processor is further configured to implement the following steps when executing the computer readable instructions:
[0027] If the node position belongs to a scene type among the first intersection type, the second intersection type and the third intersection type, determining the obstacle avoidance direction of the node position according to the scene type to which the node position belongs;
[0028] Adjusting the movement direction of the robot at the node position according to the obstacle avoidance direction to obtain an adjusted movement direction;
[0029] According to the adjusted movement direction, the robot is controlled to move at the node position.
[0030] In one of the embodiments, the processor is further configured to implement the following steps when executing the computer-readable instructions: determining whether a width change degree of a road exceeds a preset width change threshold based on the environmental map, and detecting an intersection in the environmental map.
[0031] In one embodiment, the processor is further configured to implement the following steps when executing the computer readable instructions:
[0032] Determining width information of different roads based on the environment map;
[0033] When it is determined based on the width information of the different roads that the road on which the robot is traveling is expected to be converted into a narrow aisle, performing curve obstacle avoidance planning for the narrow aisle;
[0034] The narrow corridor is a road whose width is less than a preset width threshold.
[0035] In a second aspect, the present application provides a robot intersection detection method. The method comprises:
[0036] Determine a node position and a road section of the node position based on an environment map;
[0037] Determining, according to the number of the road sections, that the node position is a first intersection type or a second intersection type;
[0038] Whether the node position is a third intersection type is determined according to a relationship between an angle between a line segment in the road segment at the node position and an angle threshold.
[0039] In a third aspect, the present application provides a robot intersection detection device. The device comprises:
[0040] A road section determination module, used for determining a node position and a road section of the node position based on an environment map;
[0041] A quantity determination module, used for determining whether the node position is a first intersection type or a second intersection type according to the quantity of the road section;
[0042] The angle judgment module is used to judge whether the node position is a third intersection type according to the relationship between the angle of the line segment in the road section at the node position and the angle threshold.
[0043] In a fourth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed by a processor, the steps implemented by the robot in any of the above embodiments are implemented.
[0044] In a fifth aspect, the present application further provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, the steps implemented by the robot in any of the above embodiments are implemented.
[0045] The robot and the intersection detection method, device, storage medium and computer program product of the robot determine the node position and the road section of the node position based on the environment map, take the node position as a potential intersection, and thus detect it with the data granularity of the road section of the node position. Determine whether the node position is the first intersection type or the second intersection type based on the number of the road sections, thereby judging whether the node position is an intersection type from the data granularity of the road section of the node position, and then accurately analyzing whether the node position belongs to the intersection type; from another perspective, judge whether the node position is the third intersection type based on the relationship between the angle of the line segment in the road section at the node position and the angle threshold; judge whether the node position is the third intersection type by generating line segments that further refine the road section, thereby increasing the accuracy of intersection recognition. BRIEF DESCRIPTION OF THE DRAWINGS
[0046] Figure 1 A schematic diagram of a flow chart of a method for detecting intersections by a robot in one embodiment;
[0047] Figure 2 is a schematic diagram of a road segment and a line segment in one embodiment;
[0048] Figure 3 is a schematic diagram of intersection detection in one embodiment;
[0049] Figure 4 A schematic diagram of the effect of the intersection detection result of the environment map in one embodiment;
[0050] Figure 5 A schematic diagram of path planning for different intersections in one embodiment;
[0051] Figure 6 is a schematic diagram of a narrow aisle detection result in one embodiment;
[0052] Figure 7 is a schematic diagram of a robot moving in a narrow aisle in one embodiment;
[0053] Figure 8 is a structural block diagram of a robot intersection detection device in one embodiment;
[0054] Fig. 9 1 is a diagram showing the internal structure of a robot in one embodiment. DETAILED DESCRIPTION
[0055] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0056] The robot intersection detection method provided in the embodiment of the present application can be applied to robot-based distributed application scenarios, and can also be applied to scenarios in which the robot communicates with a server.
[0057] In one embodiment, Figure 1 As shown, a robot is provided, the robot comprising a memory and a processor, the memory is used to store computer-readable instructions that can be run on the processor, and the processor is used to implement the following steps when executing the computer-readable instructions:
[0058] Step 102: determine the node location and the road section of the node location based on the environment map.
[0059] The environment map is the environment map of the robot's working scene. The environment map shows the static obstacles in the environment, and the roads in the environment map are determined based on the static obstacles in the environment. When a certain position on the road meets certain conditions, the position can be determined as a node position, and the part of the road connected to the node position is the road section of the node position.
[0060] The node position is the location where different line segments in the environment map are connected. There is an angle between different road segments connected to the same node position. The scene type of the node position may be an intersection, a location where the road width becomes smaller, or a corner with a smaller curvature. The scene type of the node position in the environment map is determined based on the road segment of the node position. The road segment of the node position is a part of the road that passes through the node position and has a certain curvature.
[0061] In one embodiment, determining node positions and road sections at node positions based on an environmental map includes: determining roads in the environmental map based on obstacles in the environmental map; determining node positions in the road based on connection positions of various line segments; determining, at the node positions, road section endpoint positions whose number of line segments meets preset conditions; and determining road sections at various node positions based on road sections formed by various line segments between adjacent road section endpoint positions.
[0062] In this embodiment, the roads in the environmental map are first determined, and then the roads are refined into line segments. The node positions are determined based on the line segments, thereby refining the road granularity in the environmental map, and the node positions are determined using the line segment positions; based on the number of line segments at the node positions, the segment endpoint positions whose number meets the preset conditions are selected from the node positions, and the road segments are formed using the road segment endpoint positions. The data granularity of the road segments is coarser than that of the line segments and finer than that of the roads, so that the node positions and the road segments at the node positions can be determined more quickly while ensuring accuracy.
[0063] Step 104 : determining whether the node position is a first intersection type or a second intersection type according to the number of road sections.
[0064] When the number of road sections meets a certain condition, it can be determined that the node position belongs to the intersection type; when the number of road sections does not meet the condition, the data from this angle is not sufficient to determine the relationship between the node position and the intersection type, and other angles can be used to determine whether the node position belongs to the intersection type.
[0065] The intersection type indicates that the node position belongs to an intersection, and because the data granularity of the road segment is coarser than the intersection detection result generated by the line segment, the number of road segments at the node position can be used to quickly identify whether the node position is an intersection; when the number of road segments at the node position determines that the node position belongs to the intersection type, the number of road segments at the node position can be used to accurately determine whether the intersection is the first intersection type or the second intersection type, so as to plan the robot's operating path on the road segment at the node position.
[0066] In one embodiment, determining the node position as the first intersection type or the second intersection type according to the number of road sections includes: determining the number of road sections at the node position; comparing the number of road sections with a preset road section number threshold; when the number of road sections exceeds the preset road section number threshold, determining that the node position belongs to the first intersection type or the second intersection type; correspondingly, the method also includes: when the number of road sections is less than the preset road section number threshold, it is impossible to determine that the node position belongs to the first intersection type, the second intersection type, or the third intersection type according to the node position. Among them, the preset road section number threshold can be three road sections. Thus, the judgment is made at the data granularity of the road section, and when it is impossible to determine that the node position belongs to the first intersection type, the second intersection type, or the third intersection type through the road section, it will not be arbitrarily determined that the node position does not belong to the intersection type, so as to ensure accuracy.
[0067] In one embodiment, determining whether a node position is a first intersection type or a second intersection type is based on the number of road sections, including: when the number of road sections at the node position is a first preset number of intersections, determining the node position is a first intersection type; when the number of road sections is a second preset number of intersections, determining the node position is a second intersection type; the first preset number of intersections is less than the second preset number of intersections; when the number of road sections at the node position is determined to be less than a preset intersection number threshold, determining that the node position does not belong to a scenario type between the first intersection type and the second intersection type.
[0068] The number of road sections at the node position can be obtained without much calculation, and the number of road sections at the node position can accurately and directly reflect how many roads exist at the node position, thereby determining its intersection type. When the number of road sections at the node position is the first preset intersection number, the node position is the first intersection type; when the number of road sections at the node position is the second preset intersection number, the node position is the second intersection type. Exemplarily, the first preset intersection number is three, and the second preset intersection number is four, then the first intersection type can be a T-type intersection or a Y-type intersection, and the second intersection type can be a crossroads or a similar intersection.
[0069] The first intersection type and the second intersection type are defined based on the probability of obstacles appearing in different directions. At the first position of the first intersection type, the probability of colliding with obstacles in both directions is approximately equal, while the probability of colliding with obstacles in a certain direction at the second position of the first intersection type is relatively large; and the probability of colliding with obstacles in both directions at each position of the second intersection type is approximately equal. For example, the probability of other objects appearing on the left and right sides of the first position of the T-shaped intersection is the same, so the robot stays close to the center line to avoid obstacles; the probability of other objects appearing in the preset direction of the second position of the T-shaped intersection is relatively high, so the robot stays away from the preset direction; the probability of other objects appearing on the left and right sides of the intersection is the same, so the robot stays close to the center line to avoid obstacles.
[0070] After determining that the number of road sections at the node location is greater than the preset intersection number threshold, the specific intersection type of the node location can be determined by the number of road sections at the node location, and then the scene type of the node location can be determined, and then obstacle avoidance is performed according to the obstacle avoidance directions of different roads in the scene type to reduce the safety hazards of the robot in the movement direction of the node location.
[0071] Step 106: Determine whether the node position is a third intersection type based on the relationship between the angle of the line segment in the road segment at the node position and the angle threshold.
[0072] The number of road sections can be used to quickly determine whether the node location is a crossroad, T-intersection, Y-intersection or other intersection types, but it is difficult to determine whether the node location is an L-shaped intersection or other intersections with large curvature.
[0073] The type of intersection to which the node position belongs is determined based on the line segments in the road section, so that the robot can avoid the node position in time. The line segments in the road section are obtained by refining the road section, which can reflect the curvature of the road section. The curvature of the road section is used to detect whether the node position is an intersection. Compared with the number of road sections, the relationship between the angle obtained by detecting the node position based on the line segments in the road section and the angle threshold can more accurately reflect whether the node position belongs to the type of intersection.
[0074] The relationship between the angle and the angle threshold is the intersection detection result with a finer granularity. The relationship between the angle and the angle threshold has a finer granularity than the number of road sections and belongs to a different angle with the number of road sections. It can quickly detect whether the node position is the third intersection type without affecting the accuracy.
[0075] In one embodiment, judging whether the node position is a third intersection type is based on the relationship between the angle between the line segments in the road section at the node position and the angle threshold, including: determining the line segments at the node position in the road section; determining the angle between the line segments at the node position; judging whether the angle is greater than a preset intersection angle threshold; if greater, determining that the node position is a third intersection type.
[0076] The node position itself is the connection position of different line segments; when the number of road segments cannot determine whether the node position is an intersection, the line segment at the node position is the intersection of two line segments.
[0077] If the node position is the third intersection type, then when the robot is at this node position, there is only a probability of collision with obstacles in one direction, and the curvature meets the corresponding conditions of the node position. The node position where the curvature meets the corresponding conditions means that there are two line segments at the node position, and the angle between the two line segments is greater than the preset intersection angle threshold.
[0078] The angle between the line segments at the node position is calculated to reflect the curvature of the road section at the node position; and judging whether the angle between the line segments at the node position is greater than the preset intersection angle threshold is essentially judging the curvature of the road section at the node position. If the angle between the line segments at the node position is greater than the preset intersection angle threshold, it is determined that the node position belongs to the third intersection type.
[0079] In this embodiment, the line segment of the node position is determined in the road segment, and the curvature between the road segments at the node position is calculated based on the angle between the line segments at the node position. When the angle between the line segments at the node position is greater than the preset intersection angle threshold, the curvature of the road segment at the node position meets the curvature condition of the third intersection type, and then accurately determines that the node position is the third intersection type, and the third intersection type is an L-shaped intersection or other intersections with a large curvature.
[0080] In one embodiment, in a road section, determining a line segment of a node position includes: if the node position is a position in a first road section, determining the line segment of the node position from the first road section; if the node position is a connecting position between the first road section and the second road section, determining the line segment of the node position from the first road section and the second road section respectively.
[0081] In one possible embodiment, determining the line segment of the node position from the first road section includes: determining a node position in the first road section, and determining the adjacent line segment of the node position in the first road section; correspondingly, determining the angle between the line segments of the node position includes: determining the angle between adjacent line segments based on the adjacent line segment of the node position in the first road section.
[0082] In a possible embodiment, determining the line segments at the node position from the first section and the second section respectively includes: determining the connection position between the first section and the second section; extracting adjacent line segments in different sections from the first section and the second section respectively; correspondingly, determining the angle between the line segments at the node position includes: determining the angle between the adjacent line segments in the different sections at the node position.
[0083] Therefore, if the node position is located in a road section, the road section of the node position is selected from the road section; if the node position is located at the connecting position of different road sections, line segments are selected from different road sections of the node position for connection, thereby avoiding data blocking of different road sections.
[0084] In one embodiment, the processor is also used to implement the following steps when executing computer-readable instructions: if the node position belongs to a scene type among the first intersection type, the second intersection type and the third intersection type, then determine the obstacle avoidance direction of the node position according to the scene type to which the node position belongs; adjust the movement direction of the robot at the node position according to the obstacle avoidance direction to obtain an adjusted movement direction; and control the robot to operate at the node position according to the adjusted movement direction.
[0085] The first intersection type, the second intersection type and the third intersection type belong to different scene types, and the scene type to which the node position belongs is determined according to steps 102 to 106. Each scene type has its own obstacle avoidance direction at the node position, so as to adjust the movement direction of the robot at the node position through each obstacle avoidance direction, thereby achieving obstacle avoidance.
[0086] In an exemplary embodiment, the obstacle avoidance direction of the node position is determined according to the scene type to which the node position belongs, including: when the node position is the first intersection type, the obstacle avoidance direction of the robot at the node position is determined to be one of the unilateral direction of the robot and the middle direction of the road section according to the position of the robot; when the node position is the second intersection type, the obstacle avoidance direction of the robot at the node position is determined to be the middle direction of the road section; when the node position is the third intersection type, the obstacle avoidance direction of the robot at the node position is determined to be the unilateral direction of the road section. The unilateral direction refers to a direction with a lower probability of collision with an obstacle; the middle direction refers to a direction from the robot's travel direction and located in the middle of the node position.
[0087] Therefore, the obstacle avoidance direction of the node position is determined by the scene type, and then the movement direction of the robot at the node position is adjusted according to the obstacle avoidance direction to obtain the adjusted movement direction; according to the adjusted movement direction, the robot is controlled to run at the node position to achieve obstacle avoidance of the robot at the node position.
[0088] In one embodiment, the processor is further configured to implement the following steps when executing computer-readable instructions: determining whether a width change degree of a road exceeds a preset width change threshold based on an environmental map, and detecting an intersection in the environmental map.
[0089] When the degree of width change of a road from a certain position to its adjacent position exceeds a preset width change threshold, it can be determined that the adjacent position is an intersection; when the degree of width change of a road from a certain position to its adjacent position is less than the preset width change threshold, it can be determined that the adjacent position is not an intersection.
[0090] In one embodiment, determining whether the width change of a road exceeds a preset width change threshold based on an environment map, and detecting an intersection in the environment map include: determining a target road section and an adjacent road section of the target road section; calculating a width difference between the target road section and its adjacent road section; determining whether the width difference is greater than a preset width change threshold; if greater, then there is an intersection between the target road section and its adjacent road section, and if less, then there is no intersection. It can be understood that the width difference can also be a ratio or other data that can reflect the difference between the two.
[0091] Among them, the intersection detection results in the environmental map include detection results based on node positions and detection results determined based on the degree of width change; these two detection results have certain redundancy and can complement each other to a certain extent to more accurately detect intersections in the environmental map.
[0092] In an optional embodiment, the processor is also used to implement the following steps when executing computer-readable instructions: determining width information of different roads based on the environment map; when it is determined that the road on which the robot is traveling is expected to be converted into a narrow aisle based on the width information of the different roads, performing curve obstacle avoidance planning for the narrow aisle; wherein the narrow aisle is a road whose width is less than a preset width threshold.
[0093] Therefore, during the operation of the robot, the robot checks whether the road within a certain threshold range in front of the machine is expected to be converted into a narrow aisle based on the current position. If there is a narrow aisle, the robot actively plans to avoid obstacles in a curve to slow down and pass through the narrow aisle. The manifestation of this is that no matter what kind of narrow aisle it is traveling in, the machine must try to walk along the edge.
[0094] In the intersection detection instruction executed by the robot, the node position and the road section of the node position are determined based on the environment map, the node position is used as a potential intersection, and the node position is detected at the data granularity of the road section of the node position. According to the number of road sections, it is determined whether the node position belongs to the first intersection type or the second intersection type, and the robot's running path is planned based on the road section of the node position; thus, it is determined whether the node position is an intersection type from the data granularity of the road section of the node position, and the intersection type to which the node position belongs is accurately analyzed; according to the relationship between the angle of the line segment in the road section at the node position and the angle threshold, it is determined whether the node position is a third intersection type, thereby accurately determining the relationship between different intersection types of the node position from two perspectives; different movement directions are planned for different intersection types, so as to facilitate the adoption of certain strategies to pass through dangerous areas, avoid potential collisions, or soup spillage caused by sudden braking, and improve the safety and stability of the machine.
[0095] In one embodiment, the environment map is a static obstacle map, and the roads in the environment map are divided into multiple tracks, and the tracks are composed of various line segments. Figure 2 As shown, the road segments include segment 1054, segment 164, and segment 1234; the line segments include 01, 12, 23, 34, 45, 50, 16, and 64.
[0096] In one embodiment, the method includes determining whether the width change degree of the road exceeds a preset width change threshold based on the environmental map, and detecting intersections in the environmental map; after the detection result is determined based on the width change degree, based on steps 102-106, extracting the missed intersection information, and judging the relationship between the node position and the scene type such as the first intersection type, the second intersection type or the third intersection type.
[0097] Among them, if based on the width of a certain section of road and the width of the previous section of road, it is determined that the degree of change in the width of the road exceeds the preset width change threshold, that is, there is an intersection at the intersection of the two sections of road; but if the road width of the entire environment changes little, the road width of the entire environment is relatively uniform, although there is an intersection, the intersection cannot be detected based on this method.
[0098] Among them, step 104, determining whether the node position is a first intersection type or a second intersection type according to the number of road segments, includes: if the node is connected to three or more road segments, then the node position is considered to be an intersection type.
[0099] Step 106, based on the relationship between the angle of the line segment in the road section at the node position and the angle threshold, includes: if the node position is a position in the first section, determine the current line segment and its previous line segment of the node position from the first section, and judge the angle between the current line segment and its previous line segment. If it is greater than a certain preset intersection angle threshold, it is considered to be an intersection; if the node position is the connecting position of the first section and the second section, determine the adjacent line segments of the node position according to the node position, determine the angle between the adjacent line segments, and if the angle is greater than a certain threshold, the node position is considered to be an intersection type. After the first intersection detection result is combined with the second intersection detection result, the result of processing a certain offline data is as follows: Figure 3 As shown in the figure, the first intersection detection result. After the second intersection detection result is combined with the third intersection detection result, the result of processing a certain offline data is as follows: Figure 4 shown.
[0100] exist Figure 3 and Figure 4 There is a road segment between adjacent hollow points (endpoints of the road segment), and there is a line segment between adjacent solid points (node positions). When the road width difference between two adjacent line segments is greater than 1m, the connection position of the two adjacent line segments is considered to belong to an intersection. The concentric circles represent the intersections detected based on the node information, and the line segments with different shapes and boldness represent the intersections detected based on the road width. The intersection detection results based on road width and node information extraction are complementary, but there is redundancy. After all the intersections are detected using the above two methods, the redundant intersections can be eliminated.
[0101] During the operation of the machine, the robot checks whether there is an intersection within a certain distance ahead of the robot according to the current position. If there is an intersection, the information is actively triggered to the planning, which causes the machine to slow down and adopt a certain movement strategy. Specifically, when the node position is the first intersection type, the movement strategy is as follows: Figure 5 (a); When the node position is the second intersection type, the movement strategy is as follows Figure 5 (b) When the node position is the third intersection type, the movement strategy is as follows: Figure 5 (c). The dotted line represents the center line of the road, and the arrow direction represents the direction of movement. Figure 5 At the intersection shown in (a), the machine is traveling along the center line; Figure 5 At the T-shaped intersection shown in (b), when the machine moves in direction 1, it stays close to the outer edge, and when it moves in direction 2, it moves close to the center line, similar to a crossroads; Figure 5 (c) For an L-shaped intersection, the machine moves in the direction of the arrow and drives close to the outer edge.
[0102] Optionally, the process of performing curve obstacle avoidance planning for narrow corridors includes: determining whether a line segment of the road is a narrow corridor when the width information of the road corresponds to a width less than 1.5 m or other preset width threshold. The identified line segment is a narrow corridor and its environment map such as Figure 6 shown.
[0103] Optionally, the method also includes: detecting narrow aisles: during the operation of the machine, detecting whether there is a narrow aisle in front of the robot's current position within a preset range. If there is a narrow aisle, it will actively trigger the planning, plan to slow down, and adopt a certain strategy to pass through the narrow aisle. Regardless of the narrow aisle, the machine should try to walk in a curve and walk close to the edge. When the robot runs from a non-narrow aisle to a narrow aisle as shown in the figure below, it will drive close to the outside. Among them, the robot's movement strategy through narrow aisles is as follows: Figure 7 As shown in (a), the robot adopts the traditional motion strategy of passing through narrow aisles. Figure 7 As shown in (b), the motion strategy of this scheme through the narrow aisle is as follows Figure 7 (c) as shown.
[0104] It should be understood that, although the steps in the flowcharts involved in the above embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps is not strictly limited in order, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0105] The present application provides a robot intersection detection method. The method includes: determining the node position and the road section of the node position based on the environment map; determining the node position as the first intersection type or the second intersection type according to the number of road sections; judging whether the node position is the third intersection type according to the relationship between the angle of the line segment in the road section at the node position and the angle threshold. The advantage of this method is: judging whether the node position is an intersection type from the data granularity of the road section of the node position, and then accurately analyzing whether the node position belongs to the first intersection type or the second intersection type, and judging whether the node position is the third intersection type through the relationship between the angle of the line segment further refined by the road section at the node position and the angle threshold, so as to more accurately judge whether the node position is an intersection, and the process does not use the width, and can detect intersections with small width changes.
[0106] Based on the same inventive concept, the embodiment of the present application also provides a robot intersection detection device for implementing the robot intersection detection method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in the embodiments of one or more robot intersection detection devices provided below can refer to the limitations of the robot intersection detection method above, and will not be repeated here.
[0107] In one embodiment, Figure 8 As shown, a robot intersection detection device is provided, comprising:
[0108] A road section determination module 802, configured to determine a node position and a road section of the node position based on an environment map;
[0109] A quantity determination module 804, configured to determine whether the node position is a first intersection type or a second intersection type according to the number of the road sections;
[0110] The angle determination module 806 is used to determine whether the node position is a third intersection type according to the relationship between the angle of the line segment in the road segment at the node position and the angle threshold.
[0111] In one embodiment, the road segment determination module 802 is used to:
[0112] determining roads in the map of the environment;
[0113] In the road, determining node positions based on connection positions of each of the line segments;
[0114] In the node positions, determining the endpoint positions of the segments where the number of the line segments meets a preset condition;
[0115] The road segments of each node position are determined based on the road segments formed by each line segment between adjacent road segment endpoint positions.
[0116] In one embodiment, the quantity determination module 804 is used to:
[0117] When the number of road sections at the node position is equal to the first preset number of intersections, determining that the node position is the first intersection type;
[0118] When the number of road sections is the second preset number of intersections, determining that the node position is the second type of intersection; the first preset number of intersections is less than the second preset number of intersections;
[0119] When the number of road sections at which the node position is determined is less than the preset intersection number threshold, it is determined that the node position does not belong to a scene type of the first intersection type and the second intersection type.
[0120] In one embodiment, the angle determination module 806 is used to:
[0121] In the road section, determine the line segment of the node position;
[0122] Determine the angle between the line segments of the node positions;
[0123] Determine whether the angle is greater than a preset intersection angle threshold;
[0124] If it is greater, it is determined that the node position is the third intersection type.
[0125] In one embodiment, the angle determination module 806 is used to:
[0126] If the node position is a position in a first road segment, determining a line segment of the node position from the first road segment;
[0127] If the node position is a connection position between a first road segment and a second road segment, a line segment of the node position is determined from the first road segment and the second road segment respectively.
[0128] In one embodiment, the device further includes an intersection detection module, which is used to:
[0129] Based on the environment map, it is determined whether the width change degree of the road exceeds a preset width change threshold, and the intersection in the environment map is detected.
[0130] In one embodiment, the device further includes a narrow aisle determination module, which is used to:
[0131] Determining width information of different roads based on the environment map;
[0132] When it is determined based on the width information of the different roads that the road on which the robot is traveling is expected to be converted into a narrow aisle, performing curve obstacle avoidance planning for the narrow aisle;
[0133] The narrow corridor is a road whose width is less than a preset width threshold.
[0134] Each module in the intersection detection device of the robot can be implemented in whole or in part by software, hardware, or a combination thereof. Each module can be embedded in or independent of the processor in the robot in the form of hardware, or can be stored in the memory of the robot in the form of software, so that the processor can call and execute the operations corresponding to each module.
[0135] In one embodiment, a robot is provided, whose internal structure diagram can be shown as follows: Fig. 9 As shown. The robot includes a processor, a memory, an input / output interface, a communication interface, a display unit and an input device. The processor, the memory and the input / output interface are connected via a system bus, and the communication interface, the display unit and the input device are connected to the system bus via the input / output interface. The processor of the robot is used to provide computing and control capabilities. The memory of the robot includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the robot is used to exchange information between the processor and an external device. The communication interface of the robot is used to communicate with an external robot in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, NFC (near field communication) or other technologies. When the computer program is executed by the processor, a robot intersection detection method is implemented. The display unit of the robot is used to form a visually visible image, and can be a display screen, a projection device or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the robot can be a touch layer covered on the display screen, or a button, trackball or touchpad set on the robot shell, or an external keyboard, touchpad or mouse, etc.
[0136] Those skilled in the art will understand that Fig. 9 The structure shown in the figure is merely a block diagram of a partial structure related to the scheme of the present application, and does not constitute a limitation on the robot to which the scheme of the present application is applied. The specific robot may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.
[0137] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.
[0138] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.
[0139] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards of relevant countries and regions.
[0140] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, etc., but are not limited to this.
[0141] The technical features of the above embodiments may be arbitrarily combined. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0142] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. A robot, characterized in that: The robot comprises a memory and a processor, wherein the memory is used to store computer-readable instructions that can be run on the processor, and the processor is used to implement the following steps when executing the computer-readable instructions: Determine the node position and the road section of the node position based on the environment map; the part of the road connected to the node position is the road section; Determining, according to the number of the road sections, that the node position is a first intersection type or a second intersection type; In the case where the node position does not belong to the first intersection type or the second intersection type, judging whether the node position is a third intersection type according to a relationship between an angle between a line segment in the road segment and the node position and an angle threshold; The line segment is obtained by thinning the road segment; If the node position belongs to a scene type among the first intersection type, the second intersection type and the third intersection type, determining the obstacle avoidance direction of the node position according to the scene type to which the node position belongs; Adjusting the movement direction of the robot at the node position according to the obstacle avoidance direction to obtain an adjusted movement direction; According to the adjusted movement direction, the robot is controlled to move at the node position.
2. The robot according to claim 1, characterized in that: The determining of the node position and the road section of the node position based on the environment map includes: determining roads in the environment map; In the road, determining node positions based on connection positions of each of the line segments; In the node positions, determining the endpoint positions of the segments where the number of the line segments meets a preset condition; The road segments of each node position are determined based on the road segments formed by each line segment between adjacent road segment endpoint positions.
3. The robot according to claim 1, characterized in that: The determining, according to the number of the road sections, that the node position is a first intersection type or a second intersection type comprises: When the number of road sections at the node position is equal to the first preset number of intersections, determining that the node position is the first intersection type; When the number of road sections is the second preset number of intersections, determining that the node position is the second type of intersection; the first preset number of intersections is less than the second preset number of intersections; When the number of road sections at which the node position is determined is less than the preset intersection number threshold, it is determined that the node position does not belong to a scene type of the first intersection type and the second intersection type.
4. The robot according to claim 1, characterized in that: The determining, based on a relationship between an angle between a line segment in the road segment and the node position and an angle threshold, whether the node position is a third intersection type includes: In the road section, determine the line segment of the node position; Determine the angle between the line segments of the node positions; Determine whether the angle is greater than a preset intersection angle threshold; If it is greater, it is determined that the node position is the third intersection type.
5. The robot according to claim 4, characterized in that: Determining the line segment of the node position in the road segment includes: If the node position is a position in a first road segment, determining a line segment of the node position from the first road segment; If the node position is a connection position between a first road segment and a second road segment, a line segment of the node position is determined from the first road segment and the second road segment respectively.
6. The robot according to claim 1, characterized in that: The processor is further configured to implement the following steps when executing the computer readable instructions: Based on the environment map, it is determined whether the width change degree of the road exceeds a preset width change threshold, and the intersection in the environment map is detected.
7. The robot according to claim 6, characterized in that: The determining, based on the environment map, whether the width change degree of the road exceeds a preset width change threshold, and detecting the intersection in the environment map includes: Determine a target section of the road and adjacent sections of the target section based on the environment map; Calculating a width difference between the target road section and the adjacent road section; Determining whether the width difference is greater than a preset width change threshold; If it is greater than, there is an intersection between the target road section and the adjacent road section; If it is less than, then there is no intersection.
8. The robot according to claim 1, characterized in that: The processor is further configured to implement the following steps when executing the computer readable instructions: Determining width information of different roads based on the environment map; When it is determined based on the width information of the different roads that the road on which the robot is traveling is expected to be converted into a narrow aisle, performing curve obstacle avoidance planning for the narrow aisle; The narrow corridor is a road whose width is less than a preset width threshold.
9. A robot intersection detection method, characterized in that: The intersection detection method comprises the steps implemented by the robot described in any one of claims 1-8.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps implemented by the robot according to any one of claims 1 to 8 are implemented.
Citation Information
Patent Citations
Vehicular-mounted unmanned aerial vehicle auxiliary driving system and operation mode
CN105825713A
Steering assist method and apparatus
CN113365902A
Method and device for generating virtual lane line, electronic equipment and program product
CN115166774A
Apparatus and method for correction of database
JP2001174267A
Autonomous traveling device and program
JP2008090380A