IP Library Granted Patent US 7,587,260
Granted Patent B2
US 7,587,260 · App. 11/428,637 · Granted Sep 8, 2009

Autonomous navigation system and method

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 7,587,260
App. No.
11/428,637
Granted
Sep 8, 2009
Kind
B2
Abstract

A robot platform includes perceptors, locomotors, and a system controller, which executes instructions for autonomously navigating a robot. The instructions repeat, on each iteration through an event timing loop, the acts of defining an event horizon based on the robot's current velocity, detecting a range to obstacles around the robot, testing for an event horizon intrusion by determining if any range to the obstacles is within the event horizon, and adjusting rotational and translational velocity of the robot accordingly. If the event horizon intrusion occurs, rotational velocity is modified by a proportion of the current rotational velocity reduced by a proportion of the range to the nearest obstacle and translational velocity is modified by a proportion of the range to the nearest obstacle. If no event horizon intrusion occurs, translational velocity is set as a ratio of a speed factor relative to a maximum speed.

Claims (114)

1. A method for autonomously navigating a robot, comprising:

repeating on each iteration through an event timing loop, the acts of:

defining an event horizon comprising a distance from the robot that is proportional to a current velocity of the robot;

detecting a range to obstacles around the robot;

testing for an event horizon intrusion by determining if any range to the obstacles is within the event horizon;

adjusting a rotational velocity comprising:

modifying the rotational velocity if the event horizon intrusion occurs based on a proportion of a current rotational velocity reduced by a proportion of the range to a nearest obstacle within the event horizon; and

adjusting a translational velocity comprising:

modifying the translational velocity if the event horizon intrusion occurs based on a proportion of the range to the nearest obstacle within the event horizon; and

setting the translational velocity if the event horizon intrusion does not occur to a ratio of a predetermined speed factor relative to a maximum allowable speed.

2. The method of claim 1 , further comprising:

determining whether a detection behavior is in progress and if so, then:

if the event horizon intrusion occurs, refraining from setting the translational velocity; and

if the event horizon intrusion does not occur, setting the translational velocity to a safe speed proportional to a physical configuration of a detection apparatus used in the detection behavior.

3. The method of claim 1 , further comprising:

determining whether a predetermined velocity limit has been set and if so, then:

if the event horizon intrusion occurs, refraining from setting the translational velocity; and

if the event horizon intrusion does not occur, setting the translational velocity to a ratio of the predetermined speed factor relative to the predetermined velocity limit.

4. The method of claim 1 , further comprising sensing whether the robot is blocked in a front direction and if the robot is blocked then:

refraining from adjusting the rotational velocity;

refraining from adjusting the translational velocity;

setting the translational velocity to zero;

sensing whether the robot is blocked on a lateral side of the robot and if the robot is blocked on the lateral side, then:

setting a rotational direction opposite to the lateral side that is blocked; and

setting the rotational velocity by a fractional amount of the current rotational velocity; and

if the robot is not blocked on the lateral side, then:

determining a left-side range to a closest obstacle on a left side of the robot;

determining a right-side range to a closest obstacle on a right side of the robot;

setting the rotational direction to the right if the left-side range is less than the right-side range;

setting the rotational direction to the left if the right-side range is less than the left-side range; and

setting the rotational velocity to a fractional amount of a predetermined maximum rotational velocity.

5. The method of claim 1 , further comprising sensing whether obstacles are substantially near a front direction of the robot, but not directly in front of the robot and if so, then setting the rotational velocity to a fractional amount of the current rotational velocity.

6. The method of claim 1 , further comprising:

reducing the current rotational velocity of the robot in proportion to a loop period of the event timing loop if the event horizon intrusion occurs; and

reducing the current translational velocity of the robot in proportion to the loop period of the event timing loop if the event horizon intrusion occurs.

7. The method of claim 1 , wherein the maximum allowable speed and the predetermined speed factor are set by a source selected from the group consisting of a user in communication with the robot, a robot attribute, a robot behavior, a cognitive conduct, and combinations thereof.

8. The method of claim 1 , wherein a loop period is adjusted based on a current work load of a system controller on the robot.

9. A computer readable medium having computer instructions thereon, which when executed on a system controller provide a method for autonomously navigating a robot, the computer instructions comprising instructions for:

repeating on each iteration through an event timing loop, the acts of:

defining an event horizon comprising a distance from the robot that is proportional to a current velocity of the robot;

detecting a range to obstacles around the robot;

testing for an event horizon intrusion by determining if any range to the obstacles is within the event horizon;

adjusting a rotational velocity comprising:

modifying the rotational velocity if the event horizon intrusion occurs based on a proportion of a current rotational velocity reduced by a proportion of the range to a nearest obstacle within the event horizon; and

adjusting a translational velocity comprising:

modifying the translational velocity if the event horizon intrusion occurs based on a proportion of the range to the nearest obstacle within the event horizon; and

setting the translational velocity if the event horizon intrusion does not occur to a ratio of a predetermined speed factor relative to a maximum allowable speed.

10. The computer readable medium of claim 9 , further comprising instructions for:

determining whether a detection behavior is in progress and if so, then:

if the event horizon intrusion occurs, refraining from setting the translational velocity; and

if the event horizon intrusion does not occur, setting the translational velocity to a safe speed proportional to a physical configuration of a detection apparatus used in the detection behavior.

11. The computer readable medium of claim 9 , further comprising instructions for:

determining whether a predetermined velocity limit has been set and if so, then:

if the event horizon intrusion occurs, refraining from setting the translational velocity; and

if the event horizon intrusion does not occur, setting the translational velocity to a ratio of the predetermined speed factor relative to the predetermined velocity limit.

12. The computer readable medium of claim 9 , further comprising instructions for sensing whether the robot is blocked in a front direction and if the robot is blocked then:

refraining from adjusting the rotational velocity;

refraining from adjusting the translational velocity;

setting the translational velocity to zero;

sensing whether the robot is blocked on a lateral side of the robot and if the robot is blocked on the lateral side, then:

setting a rotational direction opposite to the lateral side that is blocked; and

setting the rotational velocity by a fractional amount of the current rotational velocity; and

if the robot is not blocked on the lateral side, then:

determining a left-side range to a closest obstacle on a left side of the robot;

determining a right-side range to a closest obstacle on a right side of the robot;

setting the rotational direction to the right if the left-side range is less than the right-side range;

setting the rotational direction to the left if the right-side range is less than the left-side range; and

setting the rotational velocity to a fractional amount of a predetermined maximum rotational velocity.

13. The computer readable medium of claim 9 , further comprising instructions for sensing whether obstacles are substantially near a front direction of the robot, but not directly in front of the robot and if so, then setting the rotational velocity to a fractional amount of the current rotational velocity.

14. The method of claim 9 , further comprising instructions for:

reducing the current rotational velocity of the robot in proportion to a loop period of the event timing loop if the event horizon intrusion occurs; and

reducing the current translational velocity of the robot in proportion to the loop period of an event timing loop if the event horizon intrusion occurs.

15. The computer readable medium of claim 9 , wherein the maximum allowable speed and the predetermined speed factor are set by a source selected from the group consisting of a user in communication with the robot, a robot attribute, a robot behavior, a cognitive conduct, and combinations thereof.

16. The computer readable medium of claim 9 , wherein a loop period is adjusted based on a current work load of a system controller on the robot.

17. A robot platform, comprising:

at least one perceptor configured for perceiving environmental variables of interest;

at least one locomotor configured for providing mobility to the robot platform;

a system controller configured for executing computer instructions configured for autonomously navigating a robot, the computer instructions comprising instructions for:

repeating on each iteration through an event timing loop, the acts of:

defining an event horizon comprising a distance from the robot that is proportional to a current velocity of the robot;

detecting a range to obstacles around the robot;

testing for an event horizon intrusion by determining if any range to the obstacles is within the event horizon;

adjusting a rotational velocity comprising:

modifying the rotational velocity if the event horizon intrusion occurs based on a proportion of a current rotational velocity reduced by a proportion of the range to a nearest obstacle within the event horizon; and

adjusting a translational velocity comprising:

modifying the translational velocity if the event horizon intrusion occurs based on a proportion of the range to the nearest obstacle within the event horizon; and

setting the translational velocity if the event horizon intrusion does not occur to a ratio of a predetermined speed factor relative to a maximum allowable speed.

18. The robot platform of claim 17 , further comprising instructions for:

determining whether a detection behavior is in progress and if so, then:

if the event horizon intrusion occurs, refraining from setting the translational velocity; and

if the event horizon intrusion does not occur, setting the translational velocity to a safe speed proportional to a physical configuration of a detection apparatus used in the detection behavior.

19. The robot platform of claim 17 , further comprising instructions for:

determining whether a predetermined velocity limit has been set and if so, then:

refraining from setting the translational velocity if the event horizon intrusion occurs; and

setting the translational velocity to a ratio of the predetermined speed factor relative to the predetermined velocity limit if the event horizon intrusion does not occur.

20. The robot platform of claim 17 , further comprising instructions for sensing whether the robot is blocked in a front direction and if the robot is blocked then:

refraining from adjusting the rotational velocity;

refraining from adjusting the translational velocity;

setting the translational velocity to zero;

sensing whether the robot is blocked on a lateral side of the robot and if the robot is blocked on the lateral side, then:

setting a rotational direction opposite to the lateral side that is blocked; and

setting the rotational velocity by a fractional amount of the current rotational velocity; and

if the robot is not blocked on the lateral side, then:

determining a left-side range to a closest obstacle on a left side of the robot;

determining a right-side range to a closest obstacle on a right side of the robot;

setting the rotational direction to the right if the left-side range is less than the right-side range;

setting the rotational direction to the left if the right-side range is less than the left-side range; and

setting the rotational velocity to a fractional amount of a predetermined maximum rotational velocity.

21. The robot platform of claim 17 , further comprising instructions for sensing whether obstacles are substantially near a front direction of the robot, but not directly in front of the robot and if so, then setting the rotational velocity to a fractional amount of the current rotational velocity.

22. The robot platform of claim 17 , further comprising instructions for:

reducing the current rotational velocity of the robot in proportion to a loop period of the event timing loop if the event horizon intrusion occurs; and

reducing the current translational velocity of the robot in proportion to the loop period of the event timing loop if the event horizon intrusion occurs.

23. The robot platform of claim 17 , wherein the maximum allowable speed and the predetermined speed factor are set by a source selected from the group consisting of a user in communication with the robot, a robot attribute, a robot behavior, a cognitive conduct, and combinations thereof.

24. The robot platform of claim 17 , wherein the loop period is adjusted based on a current work load of the system controller.

Assignments (4)
TO CORRECT AN ERROR MADE IN A PREVIOUSLY RECORDED DOCUMENT THAT ERRONEOUSLY AFFECTS THE IDENTIFIED PATENTS Recorded Apr 16, 2020
From: BATTELLE ENERGY ALLIANCE, LLC
To: BATTELLE ENERGY ALLIANCE, LLC
Reel/Frame 052535/0070 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2018
From: TDC ACQUISITION HOLDINGS, INC.
To: HUMATICS CORPORATION
Reel/Frame 045318/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2006
From: BATTELLE ENERGY ALLIANCE, LLC
To: ENERGY, UNITED STATES DEPARTMENT OF
Reel/Frame 018494/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2006
From: BRUEMMER, DAVID J.; FEW, DOUGLAS A.
To: BATTELLE ENERGY ALLIANCE, LLC
Reel/Frame 017876/0620 →