IP Library Granted Patent US 12,186,912
Granted Patent B2
US 12,186,912 · App. 17/582,407 · Granted Jan 7, 2025

Capability-aware pathfinding for autonomous mobile robots

Inventors: Tomislav Haus (Donja Stubica, HR); Matija Žigić (Ivanja Reka, HR); Josip Ćesić (Zagreb, HR)
Assignee: GIDEON BROTHERS D.O.O.
B25J9/1666B25J9/1664G05D1/0212
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,186,912
App. No.
17/582,407
Granted
Jan 7, 2025
Kind
B2
Abstract

An autonomous mobile robot uses a capability-aware pathfinding algorithm to traverse from a start pose to an end pose efficiently and effectively. The robot receives a start pose and an end pose, and determines a primary path from the start pose to the end pose based on a primary pathfinding algorithm. The robot may smooth the primary path using Bezier curves. The robot may identify a conflict point on the primary path where the robot cannot traverse, and may determine a secondary path from a first point before the conflict point to a second point after the conflict point. The secondary path may use a secondary pathfinding algorithm that uses motion primitives of the robot to generate the secondary path based on the motion capabilities of the robot. The robot may then traverse from the start pose to the end pose based on the primary path and the secondary path.

Claims (64)

1. A method comprising:

determining, for an autonomous mobile robot at a start pose, a primary path to an end pose of an environment, the primary path optimized based on obstacles within the environment, wherein determining the primary path comprises:

generating a primary path from the start pose to the end pose, wherein the primary path comprises a plurality of segments of the primary path; and

applying a smoothing algorithm to each segment of the plurality of segments of the primary path, wherein the smoothing algorithm determines Bezier curves for each segment of the plurality of segments along the primary path, wherein determining a Bezier curve for a segment of the primary path comprises:

generating an initial Bezier curve for the segment based on a set of control points along the segment;

determining whether the initial Bezier curve collides with an obstacle within the environment; and

responsive to determining that the initial Bezier curve collides with an obstacle within the environment:

adding an additional control point to the set of control points, wherein the additional control point is a point within an area around a midpoint of the segment that is furthest from obstacles within the environment;

generating a new Bezier curve based on the set of control points with the additional control point; and

determining whether the new Bezier curve collides with an obstacle within the environment;

determining, based motion capabilities of the autonomous mobile robot, whether the autonomous mobile robot is capable of traversing the primary path;

in response to determining that the autonomous mobile robot is not capable of traversing the primary path, identifying a portion of the primary path that the autonomous mobile robot is not capable of traversing;

determining a secondary path around the identified portion of the primary path by:

identifying a first point on the primary path before the identified portion of the primary path;

identifying a second point of the primary path after the identified portion of the primary path; and

determining a secondary path from the identified first point to the identified second point based on the obstacles, the motion capabilities, and contours of the primary path;

and

causing the autonomous mobile robot to travel from the start pose to the end pose along the secondary path and then the primary path, wherein causing the autonomous mobile robot to travel from the start pose to the end pose comprises:

causing the autonomous mobile robot to travel from the start pose to the first point along the primary path;

causing the autonomous mobile robot to travel from the first point to the second point along the secondary path; and

causing the autonomous mobile robot to travel from the second point to the end pose along the primary path.

2. The method of claim 1 , wherein:

determining whether the autonomous mobile robot is capable of traversing the primary path comprises determining whether the autonomous mobile robot is in a correct orientation at the start pose to enter the primary path; and

determining the secondary path from the first point to the second point comprises determining a path from the start pose to the second point.

3. The method of claim 1 , wherein:

determining whether the autonomous mobile robot is capable of traversing the primary path comprises determining whether the autonomous mobile robot can achieve an orientation of the end pose based on the primary path and the motion capabilities of the autonomous mobile robot; and

determining the secondary path from the first point to the second point comprises:

determining a path from the first point to the end pose.

4. The method of claim 1 , wherein the primary path is optimized based on costs associated with coordinates within the environment, wherein the cost for a coordinate is based on a nearest obstacle to the coordinate.

5. The method of claim 4 , wherein the cost for a coordinate is proportional with the distance to a nearest obstacle to the coordinate.

6. The method of claim 1 , wherein the primary path is determined by applying a primary pathfinding algorithm and the secondary path is determined by applying a secondary pathfinding algorithm, where the primary pathfinding algorithm is different from the secondary pathfinding algorithm.

7. The method of claim 6 , wherein the primary pathfinding algorithm is less computationally expensive than the secondary pathfinding algorithm.

8. The method of claim 6 , wherein the primary pathfinding algorithm comprises an A* search algorithm.

9. The method of claim 6 , wherein the secondary pathfinding algorithm comprises a search over a set of motion primitives associated with the robot.

10. A non-transitory, computer-readable medium comprising one or more instructions that, when executed by one or more processors, cause the one or more processors to perform operations, the instructions comprising instructions to:

determine, for an autonomous mobile robot at a start pose, a primary path to an end pose of an environment, the primary path optimized based on obstacles within the environment, wherein determining the primary path comprises:

generating a primary path from the start pose to the end pose, wherein the primary path comprises a plurality of segments of the primary path; and

applying a smoothing algorithm to each segment of the plurality of segments of the primary path, wherein the smoothing algorithm determines Bezier curves for each segment of the plurality of segments along the primary path, wherein determining a Bezier curve for a segment of the primary path comprises:

generating an initial Bezier curve for the segment based on a set of control points along the segment;

determining whether the initial Bezier curve collides with an obstacle within the environment; and

responsive to determining that the initial Bezier curve collides with an obstacle within the environment:

adding an additional control point to the set of control points, wherein the additional control point is a point within an area around a midpoint of the segment that is furthest from obstacles within the environment;

generating a new Bezier curve based on the set of control points with the additional control point; and

determining whether the new Bezier curve collides with an obstacle within the environment;

determine, based motion capabilities of the autonomous mobile robot, whether the autonomous mobile robot is capable of traversing the primary path;

in response to determining that the autonomous mobile robot is not capable of traversing the primary path, identify a portion of the primary path that the autonomous mobile robot is not capable of traversing;

determine a secondary path around the identified portion of the primary path by:

identifying a first point on the primary path before the identified portion of the primary path;

identifying a second point of the primary path after the identified portion of the primary path; and

determining a secondary path from the identified first point to the identified second point based on the obstacles, the motion capabilities, and contours of the primary path;

and

cause the autonomous mobile robot to travel from the start pose to the end pose along the secondary path and then the primary path, wherein causing the autonomous mobile robot to travel from the start pose to the end pose comprises:

causing the autonomous mobile robot to travel from the start pose to the first point along the primary path;

causing the autonomous mobile robot to travel from the first point to the second point along the secondary path; and

causing the autonomous mobile robot to travel from the second point to the end pose along the primary path.

11. The computer-readable medium of claim 10 , wherein:

the instructions for determining whether the autonomous mobile robot is capable of traversing the primary path comprise instructions that cause the one or more processors to: determine whether the autonomous mobile robot is in a correct orientation at the start pose to enter the primary path; and

the instructions for determining the secondary path from the first point to the second point comprises comprise instructions that cause the one or more processors to:

determine a path from the start pose to the second point.

12. The computer-readable medium of claim 10 , wherein:

the instructions for determining whether the autonomous mobile robot is capable of traversing the primary path comprise instructions that cause the one or more processors to: determine whether the autonomous mobile robot can achieve an orientation of the end pose based on the primary path and the motion capabilities of the autonomous mobile robot; and

the instructions for determining the secondary path from the first point to the second point comprise instructions that cause the one or more processors to: determine a path from the first point to the end pose.

13. The computer-readable medium of claim 10 , wherein the primary path is determined by applying a primary pathfinding algorithm and the secondary path is determined by applying a secondary pathfinding algorithm, where the primary pathfinding algorithm is different from the secondary pathfinding algorithm.

14. The computer-readable medium of claim 13 , wherein the primary pathfinding algorithm is less computationally expensive than the secondary pathfinding algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2022
From: HAUS, TOMISLAV; ZIGIC, MATIJA; CESIC, JOSIP
To: GIDEON BROTHERS D.O.O.
Reel/Frame 058747/0734 →
Continuity (2)
Provisional Application 63270373 · Oct 21, 2021
Related Publication 20230129346A1 · Apr 27, 2023
References Cited (10)
US 11506505B2 · Pheiffer · 2022 [cited by examiner]
US 20180359907A1 · Kelley · 2018 [cited by examiner]
US 20200073396A1 · Shimizu · 2020 [cited by examiner]
US 20210132615A1 · Passot · 2021 [cited by examiner]
US 20220073101A1 · Wang · 2022 [cited by examiner]
US 20220342421A1 · Kearns · 2022 [cited by examiner]
US 20230012987A1 · Wang · 2023 [cited by examiner]
US 20230273031A1 · Cai · 2023 [cited by examiner]
J. P. Rastelli, R. Lattarulo and F. Nashashibi, “Dynamic trajectory generation using continuous-curvature algorithms for door to door assistance vehicles,”, 2014 IEEE Intelligent Vehicles Symposium Proceedings (Jun. 8-1… [cited by examiner]
I. Noreen, “Collision free smooth path for mobile robots in cluttered environment using an economical clamped cubic b-spline”, Symmetry, vol. 12, No. 9 (Sep. 22, 2020), pp. 1567 (Year: 2020). [cited by examiner]