Robot navigation obstacle avoidance method, robot and related apparatus

By simulating the spatial occupancy of a non-circular robot at multiple rotation angles and dynamically adjusting obstacle expansion, the problem of path planning errors in existing navigation and obstacle avoidance algorithms is solved, thereby improving the navigation safety and reliability of the robot in complex environments.

CN122631079APending Publication Date: 2026-08-25DREAM INNOVATION TECH (SUZHOU) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610795545.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-06-03
Publication Date
2026-08-25

AI Technical Summary

Technical Problem

Existing navigation and obstacle avoidance algorithms fail to fully consider the rotation and space occupation characteristics of irregularly shaped robots, leading to path planning errors and obstacle avoidance failures.

Method used

By acquiring the robot's current posture, simulating its spatial occupancy at multiple rotation angles, dynamically adjusting obstacle expansion, and combining grid point sets to make navigation and obstacle avoidance decisions, taking into account the robot's actual shape and orientation changes.

Benefits of technology

It improves the path safety and stability of irregularly shaped robots in scenarios such as narrow corridors, door frames, and stairs, reduces the risk of turning collisions, and enhances navigation feasibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122631079A_ABST
    Figure CN122631079A_ABST
Patent Text Reader

Abstract

The robot navigation obstacle avoidance method, the robot and the related device provided by the embodiments of the present application relate to the technical field of navigation. The method comprises the following steps: acquiring a current pose of a robot, the pose comprising a position and an orientation of the robot; acquiring a first set of grid points occupied by the robot in a grid coordinate system at N rotation angles according to the pose; performing inflation on an obstacle according to the first set of grid points to obtain a second set of grid points of the obstacle; and navigating and avoiding the obstacle for the robot according to the pose and the second set of grid points. The above method can reduce the probability of collision of the robot when the robot moves in narrow corridors, door frames, staircases and other scenes, thereby improving the safety, stability and passable rate of the robot path execution.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of navigation technology, and in particular to a robot navigation and obstacle avoidance method, a robot, and related devices. Background Technology

[0002] Robots with irregularly shaped structures, such as stair climbers, have significantly different movement trajectories and space requirements compared to traditional circular robots.

[0003] If a robot with an irregular shape uses the navigation and obstacle avoidance algorithm of a traditional circular robot, the path planning may be incorrect and obstacle avoidance may fail because the rotation and space occupation characteristics of the irregular shape are not fully considered. Summary of the Invention

[0004] This application provides a robot navigation and obstacle avoidance method, a robot, and related devices to improve the feasibility and safety of navigation and obstacle avoidance for irregularly shaped robots.

[0005] In a first aspect, embodiments of this application provide a robot navigation and obstacle avoidance method, including:

[0006] Obtain the robot's current pose; the pose includes the robot's position and orientation.

[0007] Based on the posture, obtain the set of the first grid points occupied by the robot in the grid coordinate system at N rotation angles; N is an integer greater than 2;

[0008] The obstacle is expanded based on the first set of grid points to obtain the second set of grid points for the obstacle;

[0009] The robot navigates and avoids obstacles based on the stated posture and the second set of grid points.

[0010] The above method incorporates the spatial occupancy of the irregularly shaped robot at multiple rotation angles into the obstacle expansion and navigation decision-making process. This allows the representation of the obstacle risk area to be associated with the robot's actual shape and orientation changes. When the robot moves in scenarios such as narrow corridors, door frames, and stairs, the probability of turning collisions is reduced, thereby improving the safety, stability, and passability of the robot's path execution.

[0011] In some embodiments, the navigation and obstacle avoidance of the robot based on the pose and the second set of grid points includes:

[0012] Based on the posture and the second set of grid points, determine whether the robot's starting point and ending point are reachable;

[0013] If it is determined that both the starting point and the ending point are reachable, then the nearest point in the robot's navigation and obstacle avoidance process is determined;

[0014] The robot navigates and avoids obstacles based on the nearest points and the second set of grid points.

[0015] In some embodiments, the second set of grid points includes N first subsets corresponding to the N rotation angles, and determining whether the robot's starting point and ending point are reachable based on the posture and the second set of grid points includes:

[0016] Based on the robot's orientation, a first target subset is determined in the second set of grid points; the difference between the angle corresponding to the first target subset and the orientation is minimized.

[0017] If the robot's location does not belong to the first subset, then the starting point is determined to be reachable;

[0018] If at least one subset of the second set of grid points does not include the endpoint location, then the endpoint is determined to be reachable.

[0019] By associating the accessibility judgments of the starting point and the ending point with the multi-subset coverage relationship of the first target subset and the second grid point set corresponding to the current orientation, the accessibility judgment can simultaneously reflect the robot's posture and the spatial occupancy characteristics after obstacle expansion, thereby avoiding misjudgments caused by relying solely on a fixed shape.

[0020] In some embodiments, the navigation and obstacle avoidance of the robot based on the nearest points and the second set of grid points includes:

[0021] A second target subset is determined from the second set of grid points based on the orientation of the neighboring points; the difference between the angle corresponding to the second target subset and the orientation of the neighboring points is minimized.

[0022] If the location of the nearest point does not belong to the second target subset, then the nearest point is regarded as a candidate nearest point;

[0023] Based on the poses of the candidate nearest points and the robot's pose, reachable nearest points are determined;

[0024] The robot is controlled based on the reachable proximity point.

[0025] By associating the orientation of neighboring points with the second set of grid points, attitude factors can be considered simultaneously when selecting neighboring points, preventing the robot from entering areas that conflict with the actual occupied area and improving the stability of irregularly shaped robots in complex environments.

[0026] In some embodiments, determining reachable nearest points based on the poses of the candidate nearest points and the robot pose includes:

[0027] For each candidate neighboring point, with the orientation of the candidate neighboring point as the target, the robot's orientation is rotated by M angles to obtain M sets of third grid points; where each angle corresponds to one set of third grid points.

[0028] If the robot's position does not belong to any of the third grid point sets, then the candidate neighboring point is taken as the reachable neighboring point.

[0029] In some embodiments, the first set of grid points includes N second subsets corresponding to the N rotation angles, and the step of expanding the obstacle according to the first set of grid points to obtain the second set of grid points of the obstacle includes:

[0030] For any second subset, the coordinates of each grid point of the obstacle are expanded using the grid point coordinates in the second subset to obtain the set of grid point coordinates corresponding to each grid point;

[0031] The multiple sets of grid point coordinates are merged and deduplicated to obtain a subset of grid points corresponding to the obstacle.

[0032] The second set of grid points is determined based on the grid point subsets corresponding to each of the second subsets.

[0033] In some embodiments, the method further includes:

[0034] Obtain the current environmental characteristics; these environmental characteristics are used to indicate the complexity of the current environment.

[0035] The step size between the N rotation angles is dynamically adjusted based on the environmental characteristics.

[0036] In some embodiments, the method further includes:

[0037] Pre-obtain the first subsets corresponding to two adjacent angles in the second set of grid points;

[0038] If the similarity between the first subsets is greater than the preset similarity, then the step size between the N rotation angles is dynamically increased;

[0039] If the similarity between the subsets is less than the preset similarity, then the step size between the N rotation angles is dynamically reduced.

[0040] Secondly, embodiments of this application provide a robot, including a processor, a transceiver, and a memory; the processor is communicatively connected to the transceiver and the memory respectively;

[0041] The memory stores computer-executed instructions;

[0042] The transceiver communicates and interacts with external devices.

[0043] The processor executes computer execution instructions stored in the memory, causing the processor to perform the first aspect and / or various possible implementations of the first aspect as described above.

[0044] Thirdly, this application provides a computer-readable storage medium having a computer program stored thereon, the computer program being executed by a processor to implement the method of any of the first aspects.

[0045] Fourthly, this application provides a computer program product, including a computer program that, when executed by a processor, implements the method of any one of the first aspects.

[0046] The robot navigation and obstacle avoidance method, robot, and related apparatus provided in this application acquire the robot's current posture, including its position and orientation; based on the posture, acquire the first set of grid points occupied by the robot in a grid coordinate system at N rotation angles; expand the obstacle based on the first set of grid points to obtain a second set of grid points for the obstacle; and navigate and avoid obstacles based on the posture and the second set of grid points. By incorporating the spatial occupancy of the irregularly shaped robot at multiple rotation angles into the obstacle expansion and navigation decision-making process, this method can correlate the expression of the obstacle risk area with the robot's actual shape and orientation changes, thereby enabling the irregularly shaped robot to obtain collision judgment results that are more consistent with reality. Based on these results, the probability of robot turning and colliding can be reduced when the robot moves in scenarios such as narrow corridors, door frames, and stairs, thereby improving the safety, stability, and passability of the robot's path execution. Attached Figure Description

[0047] Figure 1 A flowchart illustrating a robot navigation and obstacle avoidance method provided in this application embodiment. Figure 1 ;

[0048] Figure 2 A schematic diagram of robot rotation provided for an embodiment of this application;

[0049] Figure 3 A flowchart illustrating a robot navigation and obstacle avoidance method provided in this application embodiment. Figure 2 ;

[0050] Figure 4 A schematic diagram of a nearest point provided in an embodiment of this application;

[0051] Figure 5 A schematic diagram illustrating a nearest-neighbor rotation method provided in an embodiment of this application;

[0052] Figure 6 This is a schematic diagram of the structure of a robot provided in an embodiment of this application. Detailed Implementation

[0053] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0054] In the embodiments of this application, the terms "first" and "second" are used to distinguish identical or similar items with essentially the same function and effect, without limiting their order. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and that the terms "first" and "second" do not necessarily imply that they are different.

[0055] It should be noted that, in the embodiments of this application, the terms "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design scheme described as "exemplary" or "for example" in this application should not be construed as being more preferred or advantageous than other embodiments or design schemes. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.

[0056] Robot autonomous navigation and obstacle avoidance technologies are widely used in indoor service robots, handling robots, and floor transfer equipment.

[0057] Existing navigation and obstacle avoidance solutions typically employ grid maps combined with the A* algorithm for path planning. For example, the environment is first modeled using LiDAR, vision, or other sensing methods, discretizing the actual space into a grid. Then, the robot is abstracted as a circle, and obstacles are uniformly expanded. Finally, a path from the starting point to the destination is searched within the expanded passable area.

[0058] However, for robots with irregular structures (such as square, rectangular, or other non-circular structures) like stair climbers, the actual area occupied by the robot changes significantly depending on its orientation. The same location that is passable in one orientation may interfere with door frames, corners, or furniture edges in another. If existing navigation and obstacle avoidance schemes are used for path planning, the impact of changes in robot orientation on path feasibility may be ignored, leading to path planning errors and obstacle avoidance failures.

[0059] In view of this, embodiments of this application provide a robot navigation and obstacle avoidance method, a robot, and related devices. When the robot performs a navigation task, it dynamically simulates the robot's space occupancy at different rotation angles, expands obstacles based on the robot's space occupancy, and then performs navigation and obstacle avoidance decisions based on the expansion results. This solution incorporates the robot's space occupancy at multiple rotation angles into the obstacle handling and navigation process, making the navigation judgment more closely resemble the actual passage conditions of irregularly shaped robots. This improves the accuracy of robot path planning, thereby enhancing the feasibility and safety of navigation and obstacle avoidance for irregularly shaped robots.

[0060] The technical solution of this application and how it solves the above-mentioned technical problems will be described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of this application will be described below with reference to the accompanying drawings.

[0061] Figure 1 A flowchart illustrating a robot navigation and obstacle avoidance method provided in this application embodiment includes:

[0062] S101, Obtain the robot's current posture.

[0063] The execution entity in this application embodiment can be a navigation controller, main control processor, or edge computing unit set in the robot body, etc. The following description will take the navigation controller (hereinafter referred to as the controller) as an example.

[0064] In some embodiments, the robot's pose includes the robot's position and orientation. The robot's position describes the robot's spatial coordinates in a grid coordinate system, and the robot's orientation describes the angular state of the robot's current pointing.

[0065] For example, the robot's position can be represented by two-dimensional coordinates of the robot's geometric center in the grid coordinate system, denoted as the horizontal coordinate (rx) and the vertical coordinate (ry). The orientation (rz) can be represented by the angle value relative to the reference direction of the grid coordinate system, and the angle range can be set from 0 degrees to 360 degrees, or from -180 degrees to +180 degrees.

[0066] In some embodiments, the controller can obtain the attitude through an attitude acquisition unit onboard the robot itself. For example, the attitude acquisition unit may include one or more of the following: an odometry unit, an inertial measurement unit, a LiDAR, a depth camera, a visual positioning module, and an ultra-wideband positioning module.

[0067] In one possible embodiment, to further improve the accuracy of the acquired posture, the controller can also read the posture from the previous moment at the current moment and synchronously receive the posture output by the posture acquisition unit at the current moment. Then, the postures from the previous moment and the current moment are fused by methods such as extended Kalman filtering and particle filtering to obtain the robot's current posture.

[0068] In some embodiments, to ensure that the pose can be used to accurately describe the robot's space occupancy, the controller can update the pose in real time at a preset period. For example, every 50 milliseconds, 100 milliseconds, or 200 milliseconds.

[0069] S102. Based on the posture, obtain the set of the first grid points occupied by the robot in the grid coordinate system at N rotation angles; N is an integer greater than 2.

[0070] In some embodiments, N rotation angles are used to represent the set of angles used by the robot to perform space occupancy calculations under multiple discrete rotational postures.

[0071] The first set of grid points is used to represent the grid area covered by the robot at N rotation angles.

[0072] For example, N rotation angles can be uniformly selected in the forward and backward directions based on the robot's forward orientation, or N rotation angles can be selected in a fixed step size within the range of 0 degrees to 360 degrees. The embodiments of this application do not limit the value of N.

[0073] In some embodiments, after acquiring the robot's posture, the controller can determine the grid points (also known as grid point range) occupied by the robot in the grid coordinate system based on the posture and pre-stored robot structural parameters. The robot's structural parameters can refer to parameters describing its body geometry, including but not limited to the robot's length, width, front and rear overhang dimensions, and lateral protrusion dimensions.

[0074] For example, using the robot's structural center as the reference point (origin), the robot's outline is represented by a set of sequentially arranged vertex coordinates based on the distances of the robot's structural parameters relative to the structural center. Then, based on the robot's pose (i.e., the position of the structural center in the grid coordinate system), coordinate transformation is performed on each vertex coordinate to obtain the corresponding grid coordinates. Then, based on each grid coordinate, the grid points occupied by the robot in the grid coordinate system are determined. For example, the grid points occupied by the robot are [-A / 2~A / 2] and [-B / 2~B / 2], where A can be the robot's length and B can be the robot's width.

[0075] In some embodiments, to improve the reliability of subsequent obstacle avoidance, the range of grid points occupied by the robot in the grid coordinate system can be appropriately enlarged, such as by increasing the range of grid points occupied by the robot in the grid coordinate system by 10%. For example, the range of grid points occupied by the robot after enlargement is [-(A*110%) / 2~(A*110%) / 2], [-(B*110%) / 2~(B*110%) / 2].

[0076] In some embodiments, such as Figure 2 As shown, after determining the grid points occupied by the robot in the grid coordinate system, the grid points occupied by the robot can be rotated sequentially according to N determined rotation angles to obtain a first set of grid points including N subsets. A subset is the set of grid points occupied by the robot determined after rotating the grid point at one rotation angle.

[0077] For example, the rotation angles include 10, and the subsets of grid points are shown below:

[0078] For a rotation angle of 1, after rotating the grid points occupied by the robot, the subset 1 of grid points occupied by the robot is... ;

[0079] For rotation angle 2, after rotating the grid points occupied by the robot, the subset 2 of grid points occupied by the robot is: ;

[0080] ...

[0081] For a rotation angle of 10, after rotating the grid points occupied by the robot, the subset 10 of grid points occupied by the robot is: .

[0082] The corresponding set of first grid points occupied by the robot at 10 rotation angles is [(subset 1), (subset 2), (subset 3)...(subset 10)].

[0083] S103. Expand the obstacle according to the first grid point set to obtain the second grid point set of the obstacle.

[0084] In some embodiments, obstacles may refer to environmental targets that the robot needs to avoid during navigation, such as walls, door frames, furniture, equipment edges, stair sidewalls, railings, and static or dynamic obstacle objects detected in real time by sensors.

[0085] The second set of grid points is used to represent the extent that the obstacle occupies in the grid coordinate system after expansion.

[0086] In some embodiments, the controller can determine the grid points (also known as grid points) occupied by the obstacle in the grid coordinate system based on obstacle information in the historical grid map and obstacle information collected in real time. Then, it can expand the grid points occupied by the obstacle using N second subsets included in the first grid point set to obtain the second grid point set of the obstacle.

[0087] For example, for a first set of grid points including any second subset, the coordinates of each grid point of the obstacle are expanded using the grid point coordinates in the second subset to obtain a set of grid point coordinates corresponding to each grid point; multiple sets of grid point coordinates are merged and deduplicated to obtain a subset of grid points corresponding to the obstacle; and a second set of grid points is determined based on the subset of grid points corresponding to each second subset.

[0088] For example, for grid point 1 in the obstacle, whose coordinates are (x, y), the coordinates of the grid points in the second subset (denoted as subset 1) corresponding to the rotation angle 1 are... The coordinates obtained by dilating grid point 1 using this second subset are: .

[0089] For the other grid points of the obstacle, the same expansion method is used in succession using subset 1 to obtain the expanded coordinates of each grid point. Then, the expanded coordinates of each grid point are merged and deduplicated to obtain the subset of grid points of the obstacle after expansion by subset 1, that is, the subset of grid points of the obstacle after expansion at rotation angle 1, denoted as C1.

[0090] For each of the remaining rotation angles, the same method will yield a subset of grid points of the obstacle after it expands at that rotation angle, denoted as C2, C3, ..., Cn.

[0091] After obtaining the subset of grid points that expand at each rotation angle, these subsets can be aggregated to obtain a second set of grid points C (C1, C2, C3, ..., Cn). That is, the second set of grid points also includes N subsets. For ease of distinction, each subset included in the second set of grid points is referred to as the first subset.

[0092] Merging and deduplicating the expanded coordinates of each grid point can refer to performing a union operation on the expanded coordinates of each grid point and removing duplicate coordinates.

[0093] S104. Navigate and avoid obstacles for the robot based on its posture and the second set of grid points.

[0094] In some embodiments, navigation and obstacle avoidance for a robot can refer to determining the robot's passable space based on the robot's current posture and the area occupied by the expanded obstacles during the robot's movement, and generating a movement path, adjusting the direction of travel, and controlling the steering action accordingly.

[0095] For example, the controller can determine the starting node based on the current attitude and the target node (end point) based on the task to be executed, and then perform path planning using a planning algorithm on the grid map in combination with a second set of grid points.

[0096] The planning algorithm can be A* (A Star) algorithm, Dijkstra's algorithm, heuristic graph search algorithm or grid dynamic window search algorithm, and this application embodiment does not limit it.

[0097] The robot navigation and obstacle avoidance method provided in this application obtains the robot's current posture, including its position and orientation; based on the posture, it obtains a first set of grid points occupied by the robot in a grid coordinate system at N rotation angles; it expands the obstacle based on the first set of grid points to obtain a second set of grid points for the obstacle; and it navigates and avoids obstacles based on the posture and the second set of grid points. By incorporating the spatial occupancy of the irregularly shaped robot at multiple rotation angles into the obstacle expansion and navigation decision-making process, this method can correlate the expression of the obstacle risk area with the robot's actual shape and orientation changes, thus enabling the irregularly shaped robot to obtain collision judgment results that are more consistent with reality. Based on these results, when the robot moves in scenarios such as narrow corridors, door frames, and stairs, the probability of turning collisions can be reduced, thereby improving the safety, stability, and passability of the robot's path execution.

[0098] Based on the above embodiments, the following is combined with Figure 3 The robot navigation and obstacle avoidance method provided in the embodiments of this application will be further described.

[0099] Figure 3 A flowchart illustrating a robot navigation and obstacle avoidance method provided in this application embodiment. Figure 2 ,like Figure 3 As shown, it includes:

[0100] S301. Obtain the robot's current posture.

[0101] The specific implementation of step S301 in this embodiment can be found by referring to... Figure 1 The specific implementation of step S101 in the illustrated embodiment will not be repeated here.

[0102] S302. Based on the posture, obtain the set of the first grid points occupied by the robot in the grid coordinate system at N rotation angles.

[0103] In some embodiments, the N rotation angles can be determined based on a preset step size. For a detailed implementation of obtaining the first set of grid points occupied by the robot in the grid coordinate system at the N rotation angles, please refer to [reference needed]. Figure 1 The specific implementation of step S102 in the illustrated embodiment will not be repeated here.

[0104] In some embodiments, a smaller preset step size and a larger N result in a more accurate determination of the area occupied by the robot in the grid coordinate system, but this increases the computational load and may affect the timeliness of navigation. Conversely, a larger preset step size and a smaller N result in less computation, but this reduces the accuracy of determining the robot's area in the grid coordinate system, potentially affecting the safety of subsequent navigation. To balance computational load and navigation safety, the controller can also adjust the step size (i.e., the preset step size) between N rotation angles based on the following method.

[0105] In one possible implementation, the controller can acquire current environmental characteristics and dynamically adjust the step size between N rotation angles based on these characteristics. The environmental characteristics indicate the complexity of the current environment.

[0106] Among them, environmental features can include information such as the distribution of obstacles in the robot's current environment, the width of the passage, the connectivity of passable areas, and the local turning radius, which are used to reflect the complexity of the current environment.

[0107] In some embodiments, the environment can be sampled using lidar, depth cameras, and ultrasonic sensors mounted on the robot, and the sampling results can be processed using a preset algorithm or model (such as a robot learning model) to obtain the current environmental characteristics.

[0108] When the current environmental characteristics indicate a high level of complexity, it usually means narrow passages, dense obstacles, or limited turning space. In this case, the step size between N rotation angles can be reduced to generate a finer-grained robot-occupied area at multiple rotation angles, thereby improving the coverage accuracy of complex areas.

[0109] When the current environmental characteristics indicate that the complexity of the current environment is low, the step size between N rotation angles can be increased to reduce the number of angle samplings and redundant calculations, thereby improving the processing efficiency of subsequent grid expansion and navigation obstacle avoidance.

[0110] It should be understood that the specific values ​​for decreasing or increasing the step size between N rotation angles can be set according to actual needs, and this application embodiment does not limit this.

[0111] In this way, the robot can use denser angle sampling in complex environments and sparser angle sampling in simple environments, thus balancing traffic safety and real-time computation, and reducing the risk of misjudgment caused by fixed angle step size.

[0112] In another possible implementation, the controller can also pre-obtain subsets corresponding to two adjacent angles in the second grid point set; if the similarity between subsets is greater than the preset similarity, the step size between N rotation angles is dynamically increased; if the similarity between subsets is less than the preset similarity, the step size between N rotation angles is dynamically decreased.

[0113] For example, the controller can determine N rotation angles based on a preset step size and obtain a second set of grid points. Then, it can read the subsets corresponding to two consecutive angles from the second set of grid points and perform grid point intersection-union ratio, overlap ratio, or distance metric calculation on the two to obtain a similarity value.

[0114] When the similarity value is higher than the preset similarity, it indicates that the change in the expansion result of the obstacle at adjacent angles is small. The step size between N rotation angles can be increased to reduce repeated calculations. When the similarity value is lower than the preset similarity, it indicates that the difference in space occupation at adjacent angles is significant. The step size between N rotation angles can be decreased to improve the description accuracy of narrow passages, corner areas and irregular contour change areas.

[0115] This method adaptively assesses subset similarity and dynamically adjusts the step size between N rotation angles, making the generation of the second grid point set more closely resemble the actual changes after obstacle expansion. This reduces redundant angle calculations while maintaining obstacle avoidance accuracy. For regions with slow orientation changes and small subset differences, it improves computational efficiency; for regions with sensitive orientation changes and large subset differences, it enhances the reliability of path reachability judgment, thereby improving the robot's safety and real-time performance in complex environments.

[0116] S303. Expand the obstacle according to the first grid point set to obtain the second grid point set of the obstacle.

[0117] The specific implementation of step S303 in this embodiment can be found by referring to... Figure 1 The specific implementation of step S103 in the illustrated embodiment will not be repeated here.

[0118] S304. Based on the attitude and the second set of grid points, determine whether the robot's starting point and ending point are reachable.

[0119] In some embodiments, the starting point is used to represent the starting position of the robot when performing navigation and obstacle avoidance, and the ending point is used to represent the robot's arrival position.

[0120] The controller can determine whether the robot's starting point and ending point are reachable based on the dependency relationship between the posture and the second grid point, and the dependency relationship between the ending point position and the second grid point.

[0121] For example, based on the robot's orientation, a first target subset is determined in the second set of grid points; the difference between the angle and orientation corresponding to the first target subset is the smallest; if the robot's position does not belong to the first subset, the starting point is determined to be reachable; in the second set of grid points, if there is at least one subset that does not include the endpoint position, the endpoint is determined to be reachable.

[0122] For example, the controller can compare the robot's orientation with N preset rotation angles, selecting the first subset corresponding to the angle with the smallest difference as the first target subset, denoted as Cz. Then, the robot's current position (rx, ry) is compared with Cz. If (rx, ry) does not belong to Cz, it indicates that the robot's starting point is not blocked by obstacles and is reachable. If (rx, ry) belongs to Cz, it indicates that the robot's starting point is blocked by obstacles and is unreachable. When the starting point is unreachable, the controller can also output an alarm message to prompt the user to take action.

[0123] For the endpoint (gx, gy), the controller iterates through each subset Ci in the second set of grid points. If at least one subset does not contain the endpoint location, it means that there are no obstacle grids occupying the endpoint when the robot reaches it in the corresponding orientation of that subset, and the endpoint is determined to be reachable. If every subset contains the endpoint location, it means that the endpoint location is occupied by an obstacle, and the endpoint is unreachable. When the endpoint is unreachable, the controller can also output an alarm message to prompt the user to take action.

[0124] For example, if the second grid point set C includes subsets C1-C10, then the destination can be confirmed as reachable if there exists a Ci that does not include (gx, gy). If each subset of C1-C10 includes (gx, gy), then the destination can be confirmed as unreachable.

[0125] S305. When both the starting point and the ending point are reachable, determine the reachable nearby points during the robot's navigation and obstacle avoidance process based on the second grid point set.

[0126] In some embodiments, a neighboring point can refer to a candidate location point adjacent to the current position during the robot's path planning process. For example, when using the A* algorithm for path planning, the neighboring points can include the eight neighboring points around the current position.

[0127] Reachable proximity points can refer to the nearest points that the robot can eventually move towards.

[0128] In some embodiments, the controller can filter candidate neighboring points from the neighboring points based on the robot's posture and the second set of grid points, and then filter reachable neighboring points from the candidate neighboring points based on their orientation.

[0129] For example, a second target subset is determined from the second grid point set based on the orientation of the neighboring points; the difference between the angle corresponding to the second target subset and the orientation of the neighboring points is minimized; if the position of a neighboring point does not belong to the second target subset, then the neighboring point is regarded as a candidate neighboring point.

[0130] The orientation of a nearby point can refer to its orientation relative to the robot's current position. For example, such as... Figure 4 As shown, with the robot's current position as the origin, if a nearby point is located to the upper right of the robot's current position, then the orientation of the nearby point is 45°.

[0131] After determining the orientation of each neighboring point, for any neighboring point, first match its orientation with the corresponding angles of each subset in the second grid point set, and select the subset with the smallest angle difference as the second target subset (Cj). Then compare the position (lx, ly) of the neighboring point with Cj. If (lx, ly) does not belong to Cj, it means that the neighboring point is not covered by obstacles under its current orientation and can be regarded as a candidate neighboring point. If (lx, ly) belongs to Cj, it means that the neighboring point is covered by obstacles under its current orientation and is an unreachable neighboring point.

[0132] The above processing steps are performed for each neighboring point to select one or more candidate neighboring points from multiple neighboring points.

[0133] After selecting candidate neighboring points, for each candidate neighboring point, the controller rotates the robot's orientation by M angles with the orientation of the candidate neighboring point as the target, resulting in M ​​sets of third grid points; where each angle corresponds to a set of third grid points; if the robot's position does not belong to any set of third grid points, then the candidate neighboring point is taken as a reachable neighboring point.

[0134] The third set of grid points represents the range of grid points occupied at each angle during the process of rotating the robot's orientation from the current value to the candidate neighboring point target orientation.

[0135] For any candidate neighboring point, the controller takes the orientation of the candidate neighboring point as the target direction and rotates the robot's orientation M times (i.e., rotates by M angles) in the grid map with a preset step size to rotate the robot's orientation to the orientation of the candidate neighboring point, thus obtaining M third grid points combined.

[0136] For example, such as Figure 5As shown, the robot's orientation is 0°, the candidate neighbor's orientation is 45°, and the robot can rotate its orientation in steps of 5° to obtain 9 third grid points.

[0137] After obtaining M sets of third grid points, the robot's current position can be compared with each set of third grid points one by one. If the robot's position does not fall within the grid point range covered by any set of third grid points, it means that there is no position conflict during the robot's orientation adjustment process, and the candidate neighboring point is then taken as a reachable neighboring point.

[0138] The above process is performed for each candidate neighboring point to select one or more reachable neighboring points from the candidate neighboring points.

[0139] The above-mentioned introduction of orientation into the process of screening reachable proximity points, by matching the orientation of the proximity points with the angular relationship in the second set of grid points, makes the screening of proximity points closer to the actual posture changes of the robot. In addition, it can incorporate the space occupied by the robot during the turning process into the accessibility assessment, so that the accessibility judgment of candidate proximity points no longer depends solely on the static position relationship, but also considers the changes in the occupied area caused by the robot's posture changes. This improves the accuracy of proximity point judgment, reduces misjudgments caused by insufficient turning space, and enables the subsequent motion control of the robot to be executed based on more reliable reachable proximity points, thereby improving the robot's ability to pass through narrow or obstacle-dense environments and its obstacle avoidance effect.

[0140] S306. Control the robot's operation based on the reachable nearest point.

[0141] In some embodiments, if there is only one reachable neighbor point, the controller can use the reachable neighbor point as the moving target and control the robot to move to the reachable neighbor point. Then, the robot can use the point as its new starting point and repeat the steps of filtering reachable neighbor points and controlling the robot to move in S305 and S306 until the robot reaches the destination.

[0142] If there are multiple reachable neighboring points, the controller can select the target neighboring point from the multiple reachable neighboring points based on a heuristic path planning algorithm (such as based on cost evaluation), use the target neighboring point as the moving target, control the robot to move to the target neighboring point, and then use the point as the robot's new starting point, repeating the steps of selecting reachable neighboring points and controlling the robot to move in S305 and S306 until the robot runs to the destination.

[0143] The robot navigation method provided in this application involves obtaining the robot's current posture, determining the first set of grid points occupied by the robot in the grid coordinate system at N rotation angles, expanding the obstacle according to the first set of grid points to obtain a second set of grid points, and implementing navigation and obstacle avoidance based on the posture and the second set of grid points. This process incorporates the spatial occupancy differences of the irregularly shaped robot as its orientation changes into the path planning and obstacle avoidance judgment. It can more accurately reflect the robot's actual passage status in narrow passages, door frame transition areas, and densely furnished areas, thus taking into account path feasibility, obstacle avoidance safety, and real-time computation, thereby effectively improving the reliability of the robot's autonomous navigation and its adaptability to complex environments.

[0144] This application also provides a robot.

[0145] Figure 6 This is a schematic diagram of the structure of the robot 60 provided in the embodiments of this application, such as... Figure 6 As shown, the robot may include: a transceiver 601, a processor 602, and a memory 603.

[0146] The processor 602 executes computer execution instructions stored in the memory, causing the processor 602 to perform the scheme in the above embodiments. The processor 602 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.

[0147] The memory 603 is connected to the processor 602 via the system bus and completes communication between them. The memory 603 is used to store computer program instructions.

[0148] Transceiver 601 can perform the functions of receiving and sending data and instructions.

[0149] Optionally, robot 60 may also include a communication interface to communicate and interact with external or internal devices, such as client devices (e.g., mobile phones, tablets). In specific implementations, if the communication interface, memory 603, and processor 602 are implemented independently, they can be interconnected via a bus to complete communication with each other.

[0150] The system bus can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The system bus can be divided into address bus, data bus, control bus, etc. For ease of representation, only one thick line is used in the diagram, but this does not indicate that there is only one bus or one type of bus. Transceivers are used to enable communication between database access devices and other computers (e.g., clients, read-write libraries, and read-only libraries). Memory may include random access memory (RAM) and may also include non-volatile memory.

[0151] Optionally, in a specific implementation, if the communication interface, memory 603, and processor 602 are integrated on a single chip, then the communication interface, memory 603, and processor 602 can communicate through an internal interface.

[0152] This application also provides a chip for executing instructions, which is used to execute the technical solutions of the methods in the above embodiments.

[0153] This application also provides a computer-readable storage medium storing a computer program thereon. When the computer program is executed by a processor, it implements the technical solution of the above method embodiment. Its implementation principle and technical effect are similar, and will not be repeated here.

[0154] In one possible implementation, a computer-readable medium may include random access memory (RAM), read-only memory (ROM), compact discread-only memory (CD-ROM) or other optical disc storage, disk storage or other magnetic storage devices, or any other medium targeted to carry or to store the required program code in the form of instructions or data structures, and accessible by a computer. Furthermore, any connection is appropriately referred to as a computer-readable medium. For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, Digital Subscriber Line (DSL), or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. As used herein, disks and optical discs include optical discs, laser discs, optical discs, Digital Versatile Discs (DVDs), floppy disks, and Blu-ray discs, where disks typically reproduce data magnetically, while optical discs optically reproduce data using lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0155] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the technical solution of the above method embodiments. Its implementation principle and technical effects are similar, and will not be repeated here.

[0156] In the specific implementation of the aforementioned terminal device or server, it should be understood that the processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. A general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly manifested as execution by a hardware processor, or execution by a combination of hardware and software modules within the processor.

[0157] Those skilled in the art will understand that all or part of the steps in any of the above method embodiments can be implemented by hardware associated with program instructions. The aforementioned program can be stored in a computer-readable storage medium, and when the program is executed, all or part of the steps in the above method embodiments are performed.

[0158] If the technical solution of this application is implemented in software form and sold or used as a product, it can be stored in a computer-readable storage medium. Based on this understanding, all or part of the technical solution of this application can be embodied in the form of a software product, which is stored in a storage medium and includes a computer program or several instructions. This computer software product enables a computer device (which may be a personal computer, server, network device, or similar electronic device) to execute all or part of the steps of the methods in the embodiments of this application.

[0159] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are all optional embodiments, and the actions and modules involved are not necessarily essential to this application.

[0160] It should be further noted that although the steps in the flowchart are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowchart may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the sub-steps or stages of other steps.

[0161] It should be understood that the above-described device embodiments are merely illustrative, and the device of this application can also be implemented in other ways. For example, the division of units / modules in the above embodiments is only a logical functional division, and there may be other division methods in actual implementation. For example, multiple units, modules, or components may be combined, or integrated into another system, or some features may be ignored or not executed.

[0162] Furthermore, unless otherwise specified, the functional units / modules in the various embodiments of this application can be integrated into one unit / module, or each unit / module can exist physically separately, or two or more units / modules can be integrated together. The integrated units / modules described above can be implemented in hardware or as software program modules.

[0163] When integrated units / modules are implemented in hardware, the hardware can be digital circuits, analog circuits, etc. The physical implementation of the hardware structure includes, but is not limited to, transistors, memristors, etc. Unless otherwise specified, the processor can be any suitable hardware processor, such as a CPU, GPU, FPGA, DSP, and ASIC, etc. Unless otherwise specified, the storage unit can be any suitable magnetic or magneto-optical storage medium, such as Resistive Random Access Memory (RRAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Enhanced Dynamic Random Access Memory (EDRAM), High-Bandwidth Memory (HBM), Hybrid Memory Cube (HMC), etc.

[0164] If the integrated unit / module is implemented as a software program module and sold or used as an independent product, it can be stored in a computer-readable storage device (CMD). Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a memory and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned memory includes various media capable of storing program code, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard drive, magnetic disk, or optical disk.

[0165] In the above embodiments, the descriptions of each embodiment have their own emphasis. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments. The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as the combination of these technical features does not contradict each other, it should be considered within the scope of this specification.

[0166] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

Claims

1. A robot navigation and obstacle avoidance method, characterized in that, include: Obtain the robot's current pose; The posture includes the robot's position and orientation; Based on the posture, obtain the set of the first grid points occupied by the robot in the grid coordinate system at N rotation angles; N is an integer greater than 2; The obstacle is expanded based on the first set of grid points to obtain the second set of grid points for the obstacle; The robot navigates and avoids obstacles based on the stated posture and the second set of grid points.

2. The method according to claim 1, characterized in that, The navigation and obstacle avoidance of the robot based on the posture and the second set of grid points includes: Based on the posture and the second set of grid points, determine whether the robot's starting point and ending point are reachable; If it is determined that both the starting point and the ending point are reachable, then the nearest point in the robot's navigation and obstacle avoidance process is determined; The robot navigates and avoids obstacles based on the nearest points and the second set of grid points.

3. The method according to claim 2, characterized in that, The second set of grid points includes N first subsets corresponding to the N rotation angles. Determining whether the robot's starting and ending points are reachable based on the posture and the second set of grid points includes: Based on the robot's orientation, a first target subset is determined in the second set of grid points; the difference between the angle corresponding to the first target subset and the orientation is minimized. If the robot's location does not belong to the first subset, then the starting point is determined to be reachable; If at least one subset of the second set of grid points does not include the endpoint location, then the endpoint is determined to be reachable.

4. The method according to claim 2, characterized in that, The step of navigating and avoiding obstacles for the robot based on the nearest points and the second set of grid points includes: A second target subset is determined from the second set of grid points based on the orientation of the neighboring points; the difference between the angle corresponding to the second target subset and the orientation of the neighboring points is minimized. If the location of the nearest point does not belong to the second target subset, then the nearest point is regarded as a candidate nearest point; Based on the poses of the candidate nearest points and the robot's pose, reachable nearest points are determined; The robot is controlled based on the reachable proximity point.

5. The method according to claim 4, characterized in that, The step of determining reachable nearest points based on the poses of the candidate nearest points and the robot's pose includes: For each candidate neighboring point, with the orientation of the candidate neighboring point as the target, the robot's orientation is rotated by M angles to obtain M sets of third grid points; where each angle corresponds to one set of third grid points. If the robot's position does not belong to any of the third grid point sets, then the candidate neighboring point is taken as the reachable neighboring point.

6. The method according to claim 1, characterized in that, The first set of grid points includes N second subsets corresponding to the N rotation angles. The step of expanding the obstacle based on the first set of grid points to obtain the second set of grid points for the obstacle includes: For any second subset, the coordinates of each grid point of the obstacle are expanded using the grid point coordinates in the second subset to obtain the set of grid point coordinates corresponding to each grid point; The multiple sets of grid point coordinates are merged and deduplicated to obtain a subset of grid points corresponding to the obstacle. The second set of grid points is determined based on the grid point subsets corresponding to each of the second subsets.

7. The method according to any one of claims 1-6, characterized in that, The method further includes: Obtain the current environmental characteristics; these environmental characteristics are used to indicate the complexity of the current environment. The step size between the N rotation angles is dynamically adjusted based on the environmental characteristics.

8. The method according to any one of claims 1-6, characterized in that, The method further includes: Pre-obtain the first subsets corresponding to two adjacent angles in the second set of grid points; If the similarity between the first subsets is greater than the preset similarity, then the step size between the N rotation angles is dynamically increased; If the similarity between the subsets is less than the preset similarity, then the step size between the N rotation angles is dynamically reduced.

9. A robot, characterized in that, include: The processor, transceiver, and memory are provided; the processor is communicatively connected to both the transceiver and the memory. The memory stores computer-executed instructions; The transceiver communicates and interacts with external devices. The processor executes computer execution instructions stored in the memory to implement the method as described in any one of claims 1-8.

10. A computer-readable storage medium, characterized in that, It stores a computer program, which is executed by a processor to implement the method of any one of claims 1-8.

11. A computer program product, characterized in that, Includes a computer program that, when executed by a controller, implements the method of any one of claims 1-8.