IP Library Granted Patent US 12669830
Granted Patent B2
US 12669830 · App. 18/392,202 · Granted Jun 30, 2026

Obstacle avoidance method, electronic device, and storage medium

Inventors: Jiawei He (Shenzhen, CN); Huixiang Li (Shenzhen, CN)
Assignee: HAI ROBOTICS CO., LTD.
G05D1/622G05D1/642G05D1/65G05D1/667G05D2105/20G05D2107/70G05D2111/10
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 12669830
App. No.
18/392,202
Granted
Jun 30, 2026
Kind
B2
Abstract

This application provides an obstacle avoidance method and apparatus, an electronic device, and a storage medium. The obstacle avoidance method is applicable to a robot. The robot is configured to move along a track in a rack area, and the method includes: detecting whether a suspected obstacle exists in a traveling direction, where the suspected obstacle protrudes beyond an edge of a rack; determining a relative position relationship between the suspected obstacle and a target position that the robot is required to reach along a current traveling direction when the suspected obstacle exists in the traveling direction; determining that the suspected obstacle is an obstacle when the suspected obstacle is located between a current position of the robot and the target position; and replanning a traveling route to avoid the obstacle.

Claims (92)

1 . An obstacle avoidance method, executed by a robot, wherein the robot is configured to move along a track in a rack, the track on the rack comprises a vertical track, and the method comprises:

detecting whether a suspected obstacle exists in a traveling direction, wherein the suspected obstacle protrudes beyond an edge of a rack;

determining a relative position relationship between the suspected obstacle and a target position that the robot is required to reach along a current traveling direction when the suspected obstacle exists in the traveling direction;

determining that the suspected obstacle is an obstacle when the suspected obstacle is located between a current position of the robot and the target position; and

replanning a traveling route to avoid the obstacles

wherein the determining that the suspected obstacle is an obstacle comprises:

detecting whether the suspected obstacle is a container;

detecting a size of a space range that the container protrudes beyond the edge of the rack when the suspected obstacle is the container;

determining whether the container hinders the robot based on a space range occupied by the robot and the space range that the container protrudes beyond the edge of the rack; and

determining that the container is the obstacle when the container hinders the robot;

wherein when the current position of the robot is located on the vertical track, after the determining that the container is the obstacle, the method further comprises:

determining a storage location where the container is located;

travelling to the storage location where the container is located, and

moving the container back to the storage location to cause the container to not protrude beyond the edge of the rack.

2 . The method according to claim 1 , wherein the replanning a traveling route comprises:

replanning a traveling route from the current position to the target position;

adjusting the traveling direction of the robot; and

moving along the replanned traveling route from the current position to the target position.

3 . The method according to claim 1 , wherein the replanning a traveling route comprises:

replanning a traveling route from the current position to the target position;

adjusting a traveling speed of the robot; and

moving along the replanned traveling route from the current position to the target position with the adjusted traveling speed.

4 . The method according to claim 1 , wherein the replanning a traveling route comprises:

determining a new target position; and

replanning a traveling route from the current position to the new target position.

5 . The method according to claim 4 , wherein

when a current task of the robot is to reach the target position to place and/or retrieve goods, the determining a new target position comprises:

reporting position information of the obstacle to a management device, and requesting to replace the task;

receiving a new task sent by the management device; and

determining a new target position corresponding to the new task based on the new task.

6 . The method according to claim 4 , wherein

when a current task of the robot is to reach the target position to retrieve and/or place goods, the determining a new target position comprises:

detecting whether another robot exists in a target area, wherein a current task of the another robot is to reach a target position corresponding to the another robot to retrieve and/or place goods; and

when the another robot exists in the target area, the obstacle is not located between a current position of the another robot and the target position, and the obstacle is not located between the current position of the robot and the target position corresponding to the another robot, exchanging the current task of the robot and the current task of the another robot and determining the target position corresponding to the another robot as the new target position of the robot.

7 . The method according to claim 4 , wherein the rack area comprises a plurality of storage locations, and each of the storage locations is configured to store a determinate container; and

when a current task of the robot is to reach the target position to retrieve goods, the determining a new target position comprises:

detecting whether another robot exists in the target area, wherein a current task of the another robot is to reach the target position corresponding to the another robot to retrieve goods; and

when the another robot exists in the target area, the obstacle is not located between a current position of the another robot and the target position, and the obstacle is not located between the current position of the robot and the target position corresponding to the another robot, exchanging the current task of the robot and the current task of the another robot and determining the target position corresponding to the another robot as the new target position of the robot.

8 . The method according to any of claims 1 to 7 , wherein the detecting whether a suspected obstacle exists in a traveling direction comprises:

detecting, by using a sensor arranged on the robot, whether the suspected obstacle exists in the traveling direction, wherein

the sensor comprises at least one of a laser sensor and an optical sensor.

9 . The method according to any of claims 1 to 7 , wherein the detecting whether a suspected obstacle exists in a traveling direction comprises:

detecting, by using an image acquisition apparatus arranged on the robot, whether the suspected obstacle exists in the traveling direction, wherein

the image acquisition apparatus comprises at least one of a camera, a video camera, and a depth camera.

10 . The method according to claim 1 , wherein the determining whether the container hinders the robot based on a space range occupied by the robot and the space range that the container protrudes beyond the edge of the rack comprises:

constructing a three-dimensional structure diagram based on the space range occupied by the robot;

fitting the space range of the container protruding beyond the edge of the rack into the three-dimensional structure diagram; and

determining whether an overlap will exist between a three-dimensional structure of the robot and a three-dimensional structure of the container after the robot moves to a plane where the container is located; and

the determining that the container is an obstacle when the container hinders the robot comprises:

determining that the container is the obstacle when an overlap exists between the three-dimensional structure of the robot and the three-dimensional structure of the container.

11 . The method according to claim 1 , wherein before the detecting a size of a space range that the container protrudes beyond the edge of the rack, the method further comprises:

reducing a traveling speed of the robot.

12 . The method according to claim 1 , wherein

when the current traveling direction is upward along the vertical track, and a task of the robot is to perform an operation of retrieving goods, the moving the container back to the storage location comprises:

determining a storage location where the container is located; and

taking the container out after reaching the storage location where the container is located; and

placing the container back to the storage location.

13 . The method according to claim 1 , wherein when the task of the robot is to perform an operation of placing goods, after the determining that the container is the obstacle the method further comprises:

determining a storage location where the container is located; and

synchronizing information of the storage location to a server and/or another robot, so that the another robot avoids the container or adjust a state of the container.

14 . The method according to any of claims 1 to 7 , wherein the determining that the suspected obstacle is an obstacle comprises:

detecting whether the suspected obstacle is another robot;

when the suspected obstacle is the another robot, determining a movement state of the another robot and a target position that the another robot is required to reach along the current traveling direction of the another robot;

determining whether the another robot hinders the robot based on a movement state of the robot and the target position that the robot is required to reach along the current traveling direction, and the movement state of the another robot and the target position that the another robot is required to reach along the current traveling direction of the another robot; and

determining that the another robot is the obstacle when the another robot hinders the robot.

15 . The method according to claim 14 , wherein the determining whether the another robot hinders the robot based on a movement state of the robot and the target position that the robot is required to reach along the current traveling direction, and the movement state of the another robot and the target position that the another robot is required to reach along the current traveling direction of the another robot comprises:

determining, based on a traveling speed of the robot, position information corresponding to each moment in first route information of a traveling route of which a target position that the robot is required to reach along the current traveling direction;

determining, based on a traveling speed of the another robot, position information corresponding to each moment in second route information of a traveling route of which a target position that the another robot is required to reach along the current traveling direction of the another robot; and

determining whether a distance value for positions corresponding to a same moment in the first route information and the second route information is within a preset range; and

the determining that the another robot is the obstacle when the another robot hinders the robot comprises:

determining that the another robot is the obstacle when the distance value for positions corresponding to the same moment in the first route information and the second route is within the preset range.

16 . An electronic device, comprising:

a memory, configured to store program instructions; and a processor, configured to invoke and execute the program instructions in the memory, and perform the method of:

detecting whether a suspected obstacle exists in a traveling direction, wherein the suspected obstacle protrudes beyond an edge of a rack;

determining a relative position relationship between the suspected obstacle and a target position that the robot is required to reach along a current traveling direction when the suspected obstacle exists in the traveling direction;

determining that the suspected obstacle is an obstacle when the suspected obstacle is located between a current position of the robot and the target position; and

replanning a traveling route to avoid the obstacle

wherein the robot is configured to move along a track in a rack, the track on the rack comprises a vertical track and/or a horizontal track, when the current position of the robot is located on the vertical track, the current traveling direction is upward along the vertical track, and a task of the robot is to perform an operation of retrieving goods, after the determining that the suspected obstacle is an obstacle, the method further comprises:

determining that the obstacle is a container at least a part of which protrudes beyond the edge of the rack;

determining a storage location where the container is located; and

taking the container out after reaching the storage location where the container is located, and placing the container back to the storage location properly, such that the at least a part of the container does not protrude beyond the edge of the rack.

17 . A non-transitory computer-readable storage medium, storing a computer program, wherein when executed by a processor, the computer program is configured to:

control a robot to detect whether a suspected obstacle exists in a traveling direction, wherein the suspected obstacle protrudes beyond an edge of a rack, the robot is configured to move along a track in a rack, the track on the rack comprises a vertical track;

control the robot to determine a relative position relationship between the suspected obstacle and a target position that the robot is required to reach along a current traveling direction when the suspected obstacle exists in the traveling direction; and

control the robot to determine that the suspected obstacle is an obstacle when the suspected obstacle is located between a current position of the robot and the target position;

wherein when the current position of the robot is located on the vertical track, and the suspected obstacle is a container, the computer program is further configured to:

control the robot to move to a storage location where the container is located;

control the robot to adjust the position of the container in the storage location to cause the container to not protrude beyond the edge of the rack.

18 . The non-transitory computer-readable storage medium according to claim 17 , wherein when the task of the robot is to perform an operation of placing goods, after the determining that the suspected obstacle is an obstacle, the method further comprises:

determining that the obstacle is a container;

determining a storage location where the container is located; and

synchronizing information of the storage location to a server and/or another robot, so that the another robot avoids the container or adjust a state of the container.