Robot rotation control method, device, equipment, robot and storage medium

By calculating the angular difference between the obstacle and the robot, the problem of insufficient accuracy in rotational obstacle avoidance in existing technologies has been solved, achieving higher obstacle avoidance accuracy and safety.

CN116009521BActive Publication Date: 2026-04-28HAI ROBOTICS CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HAI ROBOTICS CO LTD
Filing Date
2021-10-22
Publication Date
2026-04-28

AI Technical Summary

Technical Problem

In existing technologies, when a robot rotates to avoid obstacles, it determines the obstacles to be avoided based on the Euclidean distance or chessboard distance between the obstacle and the robot. This method has poor accuracy and may cause the robot to collide with other obstacles, affecting operational safety.

Method used

By calculating the angular difference between the obstacle and the robot, the obstacles that need to be avoided are determined, and an obstacle avoidance method based on the angular difference is adopted to improve the accuracy of obstacle avoidance.

Benefits of technology

It improves the accuracy and safety of robot rotation obstacle avoidance, reduces the risk of collisions caused by misjudging obstacles, and enhances the safety of robot operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116009521B_ABST
    Figure CN116009521B_ABST
Patent Text Reader

Abstract

The robot rotation control method provided in the embodiments of the present disclosure comprises: obtaining each obstacle avoidance area of a robot; when the robot rotates in a rotation direction, obtaining a detection result of an external environment of the robot, and determining obstacles in each obstacle avoidance area according to the detection result; when there are at least two obstacles in each obstacle avoidance area, calculating an angle difference between each obstacle and the robot, wherein the angle difference is an angle required for the robot to rotate from a current pose in the rotation direction to collide with the obstacle; and determining an obstacle with the smallest angle difference with the robot as a target obstacle, so as to avoid the target obstacle, thereby achieving obstacle avoidance based on the angle difference, improving the accuracy of obstacle avoidance and the safety of robot operation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of obstacle avoidance control technology, and in particular to a robot rotation control method, device, equipment, robot, and storage medium. Background Technology

[0002] Robot-based warehousing systems employ intelligent operating systems that enable the automatic retrieval and storage of goods through system commands. They can operate 24 / 7, replacing manual management and operation, thus improving warehousing efficiency and gaining widespread application and popularity.

[0003] When robots move through a warehouse in a warehousing system, obstacle avoidance features, such as walking obstacle avoidance and rotation obstacle avoidance, need to be added to prevent collisions, such as collisions with shelves or other robots.

[0004] In existing technologies, rotational obstacle avoidance often determines the obstacles to be avoided based on the Euclidean distance or chessboard distance between the obstacle and the robot. However, in scenarios where the robot is rotating, the accuracy of determining the obstacles to be avoided using the above methods is poor. Summary of the Invention

[0005] This disclosure provides a robot rotation control method, apparatus, device, robot, and storage medium, which determines the obstacles to be avoided based on the angular difference between the obstacle and the robot, thereby improving the accuracy of obstacle avoidance.

[0006] In a first aspect, embodiments of this disclosure provide a robot rotation control method, the method comprising:

[0007] Obtain the robot's various obstacle avoidance zones; when the robot rotates along the rotation direction, acquire the detection results of the robot's external environment, and determine the obstacles in each obstacle avoidance zone based on the detection results; when there are at least two obstacles in each obstacle avoidance zone, calculate the angle difference between each obstacle and the robot, wherein the angle difference is the angle required for the robot to rotate from its current pose along the rotation direction to collide with the obstacle; determine the obstacle with the smallest angle difference from the robot as the target obstacle, and perform obstacle avoidance on the target obstacle.

[0008] Optionally, calculating the angular difference between each of the obstacles and the robot includes:

[0009] For each obstacle, a target point on the robot is determined based on the position of a preset point corresponding to the obstacle. The preset point corresponding to the obstacle is a point representing the obstacle determined based on the detection results of the obstacle. The target point is a point on the outer surface of the robot that would coincide with the preset point corresponding to the obstacle if the robot rotates in the rotation direction. The angular difference between the obstacle and the robot is determined based on the angle between the line connecting the robot's rotation center and the preset point corresponding to the obstacle, and the line connecting the robot's rotation center and the target point corresponding to the preset point corresponding to the obstacle.

[0010] Optionally, when there are multiple preset points corresponding to the obstacle, the angular difference between the obstacle and the robot is determined based on the angle between the line connecting the robot's rotation center and the preset point corresponding to the obstacle, and the line connecting the robot's rotation center and the target point corresponding to the preset point corresponding to the obstacle. This includes:

[0011] For each preset point corresponding to the obstacle, a first angle corresponding to the preset point is determined based on the angle between the line connecting the robot's rotation center and the preset point and the line connecting the robot's rotation center and the target point corresponding to the preset point; the minimum value among the first angles corresponding to each preset point is determined as the angle difference between the obstacle and the robot.

[0012] Optionally, determining the target point on the robot based on the position of a preset point corresponding to the obstacle includes:

[0013] A first circle is drawn with the rotation center of the robot as the center and the distance between the rotation center of the robot and the preset point of the obstacle as the radius. Each candidate point where the first circle intersects with the robot is obtained. The candidate points in the same obstacle avoidance area as the preset point of the obstacle are determined as the target points corresponding to the preset point of the obstacle.

[0014] Optionally, the shape of the robot's chassis projection on the horizontal plane is roughly rectangular, resulting in various obstacle avoidance zones for the robot, including:

[0015] The obstacle avoidance zones of the robot are determined based on the circumcircle of the rectangle corresponding to the robot's chassis.

[0016] Optionally, the various obstacle avoidance zones of the robot are obtained, including:

[0017] Based on the dimensions of the robot's chassis, the target rotation angle of the robot, and the angle the robot has rotated through, the obstacle avoidance zones of the robot are determined.

[0018] Optionally, the robot's chassis projection on the horizontal plane is rectangular in shape. The robot rotates in place along the rotation direction. Based on the dimensions of the robot's chassis, the target rotation angle, and the angle the robot has rotated through, the various obstacle avoidance zones of the robot are determined, including:

[0019] Based on the dimensions of the robot's chassis, a target area is determined, wherein the target area is the area remaining after removing the area containing the rectangle corresponding to the robot's chassis from the area corresponding to the rectangle of the robot's chassis. Based on the robot's rotation direction, the target rotation angle, and the angle the robot has rotated through, a safe area for the robot to rotate in place is determined. Based on the target area and the safe area, each obstacle avoidance area of ​​the robot is determined, wherein the obstacle avoidance area is the relative complement of the safe area in the target area.

[0020] Optionally, based on the robot's rotation direction, target rotation angle, and the angle the robot has rotated through, a safe zone is determined when the robot rotates in place, including:

[0021] Based on the robot's rotation direction and target rotation angle, a first region in the target region that the robot will not reach when rotating along the rotation direction to the target rotation angle is determined; based on the angle the robot has rotated along the rotation direction, a second region in the target region that the robot has already passed through and will not pass through again during its rotation along the rotation direction to the target rotation angle is determined; based on the first region and the second region, a safe region for the robot when rotating in place is determined.

[0022] Optionally, the target rotation angle of the robot is less than or equal to 90°.

[0023] Optionally, when the target rotation angle of the robot is greater than 90°, the robot's obstacle avoidance zones are obtained, including:

[0024] The target rotation angle of the robot is divided into multiple sub-target angles, and the robot is controlled to rotate sequentially along the rotation direction by the sub-target angles, wherein each sub-target angle is less than or equal to 90°; during the period when the robot rotates along the rotation direction by each sub-target angle, each obstacle avoidance area of ​​the robot is determined.

[0025] Optionally, during the period when the robot rotates by each of the sub-target angles along the rotation direction, determining each of the robot's obstacle avoidance zones includes:

[0026] Based on the dimensions of the robot's chassis, the sub-target angle, and the angle the robot has rotated through, the respective obstacle avoidance zones of the robot are determined during the period when the robot rotates the sub-target angle along the rotation direction.

[0027] Optionally, the detection results of the robot's external environment are obtained, and obstacles in each obstacle avoidance area are determined based on the detection results, including:

[0028] The system acquires the detection results of the robot's external environment collected by sensors installed on the robot; based on the detection results, it determines the relative positional relationship between each obstacle and the robot; based on the relative positional relationship between each obstacle and the robot, it determines the obstacles within each obstacle avoidance area.

[0029] Secondly, embodiments of this disclosure also provide a robot rotation control device, the device comprising:

[0030] The obstacle avoidance area determination module is used to obtain various obstacle avoidance areas of the robot; the obstacle detection module is used to acquire the detection results of the robot's external environment when the robot rotates along the rotation direction, and determine the obstacles in each obstacle avoidance area based on the detection results; the angle calculation module is used to calculate the angle difference between each obstacle and the robot when there are at least two obstacles in each obstacle avoidance area, wherein the angle difference is the angle required for the robot to rotate from its current pose along the rotation direction to collide with the obstacle; the target obstacle determination module is used to determine the obstacle with the smallest angle difference from the robot as the target obstacle, so as to avoid the target obstacle.

[0031] Thirdly, embodiments of this disclosure also provide a robot rotation control device, including: a memory and at least one processor; the memory stores computer execution instructions; the at least one processor executes the computer execution instructions stored in the memory, causing the at least one processor to execute the robot rotation control method provided in any embodiment corresponding to the first aspect of this disclosure.

[0032] Fourthly, the present disclosure also provides a robot, including a robot body, a chassis, and a robot rotation control device provided in the embodiment corresponding to the third aspect of the present disclosure.

[0033] Fifthly, embodiments of this disclosure also provide a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, implement the robot rotation control method provided in any embodiment corresponding to the first aspect of this disclosure.

[0034] In a sixth aspect, embodiments of this disclosure also provide a computer program product, including a computer program that, when executed by a processor, implements the robot rotation control method provided in any embodiment corresponding to the first aspect of this disclosure.

[0035] The robot rotation control method, apparatus, device, robot, and storage medium provided in this disclosure are for robots operating in a warehousing system. After obtaining the robot's various obstacle avoidance zones, when the robot rotates along a set rotation direction, the external environment of the robot is detected, and the detection results are obtained. Based on the detection results, obstacles in each obstacle avoidance zone of the robot are determined. When there are at least two obstacles in each obstacle avoidance zone of the robot, the angle difference between the robot and each obstacle is calculated, and the obstacle with the smallest angle difference from the robot is determined as the target obstacle. The robot avoids the target obstacle to prevent collision with it. For rotating robots, obstacle avoidance is based on angle difference, which improves the accuracy of obstacle avoidance and the safety of robot operation compared to distance-based methods. Attached Figure Description

[0036] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.

[0037] Figure 1 This is an application scenario diagram of the robot rotation control method provided in the embodiments of this disclosure;

[0038] Figure 2 This is a flowchart of a robot rotation control method provided in one embodiment of the present disclosure;

[0039] Figure 3 For this disclosure Figure 2 A schematic diagram of the obstacle avoidance area of ​​the robot in the illustrated embodiment;

[0040] Figure 4 For this disclosure Figure 2 The flowchart of step S202 in the illustrated embodiment is shown.

[0041] Figure 5 A flowchart of a robot rotation control method provided in another embodiment of this disclosure;

[0042] Figure 6 For this disclosure Figure 5 A schematic diagram of the preset points and their corresponding target points in the illustrated embodiment;

[0043] Figure 7 A flowchart of a robot rotation control method provided in another embodiment of this disclosure;

[0044] Figure 8 For this disclosure Figure 7 The flowchart of step S702 in the illustrated embodiment is shown.

[0045] Figure 9 For this disclosure Figure 8 A schematic diagram of the robot's safety zone in the illustrated embodiment;

[0046] Figure 10 This is a schematic diagram of the structure of a robot rotation control device provided in one embodiment of the present disclosure;

[0047] Figure 11 This is a schematic diagram of the structure of a robot rotation control device provided in one embodiment of the present disclosure;

[0048] Figure 12 This is a schematic diagram of the structure of a robot provided in one embodiment of the present disclosure.

[0049] The accompanying drawings have illustrated specific embodiments of this disclosure, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concepts of this disclosure to those skilled in the art through reference to particular embodiments. Detailed Implementation

[0050] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this disclosure as detailed in the appended claims.

[0051] The technical solutions of this disclosure and how they solve the aforementioned 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 disclosure will now be described with reference to the accompanying drawings.

[0052] The application scenarios of the embodiments of this disclosure are explained below:

[0053] Figure 1 This is an application scenario diagram of the robot rotation control method provided in the embodiments of this disclosure, such as... Figure 1As shown, the robot rotation control method provided in this embodiment can be executed by a robot rotation control device or a robot. The robot rotation control device can be a chip, a main control unit, etc. To improve the processing efficiency of a warehousing system, in some warehousing systems, there may be situations where operators 110 and robots 120 are simultaneously present in the same area. Therefore, it is necessary to develop corresponding obstacle avoidance strategies for the robot 120 to prevent collisions with operators 110 or other objects. If there are multiple obstacles requiring avoidance within the obstacle avoidance area of ​​the robot 120, such as... Figure 1 For obstacles 131 and 132, one of the multiple obstacles needs to be selected as the obstacle avoidance target for robot 120, and an obstacle avoidance strategy is formulated based on the obstacle avoidance target.

[0054] In existing technologies, the closest obstacle to robot 120 is often determined from multiple obstacles by calculating the distance between the obstacle and robot 120, such as Euclidean distance or chessboard distance. Figure 1 Obstacle 131. However, for rotating robots, such as turning robots or robots rotating in place, the above-mentioned method of obstacle avoidance is less accurate. In some cases, when the robot 120 avoids obstacles based on distance-determined objects, it may still collide with other obstacles, such as obstacle 132, resulting in poor safety of robot operation and even causing some losses.

[0055] To improve the accuracy of obstacle avoidance and the safety of robot operation, this disclosure provides a robot rotation control method. The main idea of ​​this method is that when the robot rotates, if there are multiple obstacles in the robot's obstacle avoidance area, the obstacle with the smallest angle difference from the robot is selected as the target obstacle for obstacle avoidance. Compared with obstacle avoidance based on distance, this improves the accuracy of obstacle avoidance.

[0056] Figure 2 Here is a flowchart of a robot rotation control method provided in one embodiment of this disclosure, as follows: Figure 2 As shown, this robot rotation control method is applicable to robots performing operations in warehousing systems, such as robots that turn or rotate in place, and can be executed by a robot rotation control device. The robot rotation control method provided in this embodiment includes the following steps:

[0057] Step S201: Obtain the robot's various obstacle avoidance zones.

[0058] The obstacle avoidance zone is the area where the robot needs to avoid obstacles when walking or turning.

[0059] Specifically, various obstacle avoidance zones of the robot can be pre-set, and then the robot's operating devices can obtain the pre-set obstacle avoidance zones.

[0060] Specifically, before the robot rotates around a fixed center of rotation, its various obstacle avoidance zones can be obtained, allowing the robot to perform obstacle avoidance based on these zones.

[0061] Specifically, obstacle avoidance zones for the robot can be determined based on its dimensions. For example, the obstacle avoidance zones can be determined based on the dimensions of the robot's chassis.

[0062] For example, the circumcircle corresponding to the robot's chassis can be determined, and the various obstacle avoidance areas of the robot can be determined, such as determining the obstacle avoidance area as the relative complement of the rectangle corresponding to the robot's chassis in the circumcircle.

[0063] Furthermore, the intersection of the rectangle corresponding to the robot's chassis and the circumscribed circle is the first intersection point, and the area between two adjacent first intersection points in the circumscribed circle can be defined as the robot's obstacle avoidance area.

[0064] Furthermore, the robot's obstacle avoidance zones can be determined based on the dimensions of the robot's chassis and the target rotation angle of the robot.

[0065] The dimensions of the robot's chassis can include its length and width. The target rotation angle is the angle by which the robot needs to rotate along the set rotation direction, and can be any angle, such as 90°, 180°, 270°, etc.

[0066] Specifically, based on the dimensions of the robot's chassis, the circumcircle of the rectangle corresponding to the robot's chassis can be drawn; then, based on the robot's target rotation angle, the areas that the robot will pass through or reach during the rotation along the set rotation direction at the target rotation angle can be determined on the circumcircle, which are the robot's various obstacle avoidance zones.

[0067] Furthermore, the rectangle corresponding to the robot's chassis divides its circumcircle into four first regions, excluding the region where the rectangle corresponding to the robot's chassis is located. Based on the robot's rotation target angle, the obstacle avoidance area corresponding to each first robot is determined in each first region.

[0068] Specifically, for each first region, the first intersection point of the rectangle corresponding to the chassis of the first robot and its circumscribed circle is moved by the rotation target angle along the rotation direction of the robot to obtain the second point corresponding to the first intersection point. The second point is located on the circumscribed circle. The intersection of the first intersection point, the second point, and the fan-shaped area of ​​the circumscribed circle corresponding to the center of the circumscribed circle with the first region is the obstacle avoidance area corresponding to the first region.

[0069] For example, Figure 3 For this disclosure Figure 2 A schematic diagram of the obstacle avoidance area of ​​the robot in the embodiment shown, as follows: Figure 3 As shown, the robot's chassis can be described by a rectangle 310, and then the circumcircle 320 of this rectangle is drawn. The center of the circumcircle 320 is point O. The intersection points of the circumcircle 320 and the rectangle 310 are the vertices of the rectangle, namely points A, B, C, and D. The rectangle 310 divides the circumcircle 320 into four arc-shaped regions, namely regions 321 to 324, which can be used as the robot's obstacle avoidance areas. Alternatively, half of each of the four arc-shaped regions can be used as the obstacle avoidance areas. That is, starting from the position of each side of the rectangle (i.e., rectangle 310) corresponding to the robot's mobile chassis, half of the arc-shaped region containing that side is determined along the robot's rotation direction as the obstacle avoidance area. Figure 3 In the diagram, points MA to M4 are the midpoints of arcs AB, BC, CD, and DA, respectively, and points M5 to M8 are the midpoints of the four sides of rectangle 310, namely sides AB, BC, CD, and CA. Therefore, the four regions corresponding to points A, M1, and M5, points B, M2, and M6, points C, M3, and M7, and points D, M4, and M8 can be designated as obstacle avoidance areas.

[0070] Optionally, the various obstacle avoidance zones of the robot are obtained, including:

[0071] Based on the dimensions of the robot's chassis, the target rotation angle of the robot, and the angle the robot has rotated through, the obstacle avoidance zones of the robot are determined.

[0072] The angle rotated is the angle by which the robot has rotated from its current position along the set rotation direction, and this angle is less than or equal to the target rotation angle.

[0073] For example, Figure 3 For this disclosure Figure 2 A schematic diagram of the obstacle avoidance area of ​​the robot in the embodiment shown, as follows: Figure 3As shown, the robot's chassis can be described by a rectangle 310, and then the circumcircle 320 of this rectangle is drawn. The center of the circumcircle 320 is point O. The intersection points of the circumcircle 320 and the rectangle 310 are the vertices of the rectangle, namely points A, B, C, and D. The rectangle 310 divides the circumcircle 320 into four arc-shaped regions, namely regions 321 to 324. Taking the robot rotating 90° clockwise in place as an example, the chassis of the robot after rotating 90° clockwise is represented by a rectangle 330, with four vertices a, b, c, and d, corresponding to points A, B, C, and D respectively. The intersection of sector AOa and region 321... The union of the intersections of the set with rectangle 330 and region 321 is the obstacle avoidance area in region 321. The union of the intersections of sector BOb with region 322 and the intersections of rectangle 330 and region 322 is the obstacle avoidance area in region 322. The union of the intersections of sector COc with region 323 and the intersections of rectangle 330 and region 323 is the obstacle avoidance area in region 323. The union of the intersections of sector DOd with region 324 and the intersections of rectangle 330 and region 324 is the obstacle avoidance area in region 324. Furthermore, the degrees of the central angles AOa, BOb, COc, and DOd are all equal to the target rotation angle of the robot, which is 90°.

[0074] Specifically, the above method can be used to determine the robot's obstacle avoidance zones based on the robot's chassis dimensions and target rotation angle. Then, during the robot's rotation, based on the angle the robot has rotated through, safe zones that the robot has already passed through and will not pass through again are determined. These safe zones are then removed from each obstacle avoidance zone, thereby updating the robot's obstacle avoidance zones. This improves the accuracy of the obstacle avoidance zones and prevents the robot from avoiding unnecessary obstacles, thus affecting the robot's operational efficiency.

[0075] Step S202: When the robot rotates along the rotation direction, the detection results of the robot's external environment are obtained, and the obstacles in each obstacle avoidance area are determined based on the detection results.

[0076] The robot can rotate clockwise or counterclockwise. Obstacles can be any object other than the robot, such as other robots, operators, carts, shelves, etc.

[0077] Specifically, sensors mounted on the robot, such as radar, vision sensors, ultrasonic sensors, and infrared sensors, can be used to collect detection results of the robot's external environment. These detection results can then be used to identify obstacles within each obstacle avoidance zone.

[0078] Furthermore, based on the detection results of each sensor, the position of each obstacle can be determined, thereby identifying the obstacles located within each obstacle area.

[0079] In some embodiments, a sensor can be installed on each of the four sides of the robot (front, back, left, and right), and the detection range of the sensor can be set to the range of the corresponding arc-shaped region. This arc-shaped region is the area within the circumcircle of the robot's chassis on the side where the sensor is located, excluding the rectangle containing the robot's chassis. Figure 3 In regions 321 to 324, the arc-shaped area corresponding to the sensor is the obstacle avoidance area for that sensor. Therefore, when the sensor detects an obstacle, that obstacle is located within the obstacle avoidance area corresponding to that sensor.

[0080] Furthermore, during robot operation or work, the robot's sensors can collect detection results of the robot's external environment at certain intervals, and update the obstacles in each obstacle avoidance area of ​​the robot based on the detection results corresponding to each cycle.

[0081] Optional, Figure 4 For this disclosure Figure 2 The flowchart of step S202 in the illustrated embodiment is as follows: Figure 4 As shown, step S202 may include the following steps:

[0082] Step S2021: When the robot rotates along the rotation direction, the detection results of the robot's external environment collected by the sensors installed on the robot are obtained.

[0083] Step S2022: Based on the detection results, determine the relative positional relationship between each obstacle and the robot.

[0084] The relative positional relationship may include the distance between the obstacle and the robot, and may also include the relative angle between the obstacle and the robot.

[0085] For example, when the sensor is radar, the distance and relative angle between the obstacle and the robot are determined based on the echo signal of the received electromagnetic waves. When the sensor is a vision sensor, the relative positional relationship between each obstacle and the robot is determined based on the acquired image of the external environment and image recognition algorithms.

[0086] Furthermore, a coordinate system can be established with the robot's rotation center, which can be the center of the robot's chassis, as the origin. Based on the detection results, the position coordinates of each obstacle can be determined, and then the distance and relative angle between each obstacle and the robot can be determined based on the position coordinates of each obstacle.

[0087] Step S2023: Determine the obstacles in each obstacle avoidance area based on the relative positional relationship between each obstacle and the robot.

[0088] Specifically, the distance between each obstacle and the robot can be used to determine whether the obstacle is within the robot's obstacle avoidance zone; if so, the relative angle between the obstacle and the robot can be used to determine the obstacle avoidance zone.

[0089] Furthermore, if the distance between the obstacle and the robot is greater than the radius of the circumcircle of the rectangle corresponding to the robot's chassis, then the obstacle is determined to be outside the robot's obstacle avoidance zone.

[0090] Step S203: When there are at least two obstacles in each of the obstacle avoidance areas, calculate the angle difference between each obstacle and the robot.

[0091] Wherein, the angle difference is the angle of rotation required for the robot to rotate from its current pose along the rotation direction to collide with the obstacle.

[0092] Specifically, when multiple obstacles exist in various obstacle areas of the robot, it is necessary to identify or select one obstacle as the target obstacle and use it as a reference for obstacle avoidance. In this embodiment, in order to identify the target obstacle from multiple obstacles, it is necessary to calculate the angular difference between each obstacle and the robot, and then identify the target obstacle from among the obstacles based on the angular difference.

[0093] Furthermore, the angular difference between each obstacle and the robot can be determined based on the position coordinates of each obstacle.

[0094] Specifically, a point on the robot's outer surface corresponding to the obstacle can be determined based on the obstacle's position coordinates and set as the target point. If the robot continues to rotate from its current pose along the rotation direction, the target point will be the first point on the robot's outer surface that will collide with the obstacle. The angle required for the target point to rotate to collide with or coincide with the obstacle is the angle difference between the obstacle and the robot so far.

[0095] Furthermore, if there is only one obstacle in each of the robot's obstacle avoidance areas, that obstacle can be directly identified as the target obstacle. If it is determined that there are no obstacles in any of the robot's obstacle avoidance areas, the robot can continue to rotate in the set direction.

[0096] Step S204: Determine the obstacle with the smallest angular difference from the robot as the target obstacle, and avoid the target obstacle.

[0097] Specifically, after determining the angular differences between each obstacle within the robot's obstacle avoidance area and the robot, the smallest angular difference is identified from these differences, and the obstacle corresponding to this smallest angular difference is designated as the target obstacle. The robot is then controlled to perform obstacle avoidance based on this target obstacle.

[0098] Specifically, after identifying the target obstacle, the robot can be controlled to avoid the obstacle based on the angle difference corresponding to the target obstacle. For example, the robot can be controlled to rotate along the rotation direction by an angle smaller than the angle difference and then stop rotating until the obstacle moves out of the robot's obstacle avoidance area, thereby avoiding a collision between the robot and the obstacle.

[0099] The robot rotation control method provided in this disclosure is for robots operating in a warehousing system. After obtaining the robot's various obstacle avoidance zones, when the robot rotates along a set rotation direction, the external environment of the robot is detected, and the detection results are obtained. Based on the detection results, obstacles in each obstacle avoidance zone of the robot are determined. When there are at least two obstacles in each obstacle avoidance zone of the robot, the angle difference between the robot and each obstacle is calculated, and then the obstacle with the smallest angle difference with the robot is determined as the target obstacle. The robot avoids the target obstacle to prevent collision with the target obstacle. Moreover, for rotating robots, obstacle avoidance is based on angle difference, which improves the accuracy of obstacle avoidance and the safety of robot operation compared to distance-based methods.

[0100] Figure 5 This is a flowchart of a robot rotation control method provided in another embodiment of the present disclosure. This embodiment is... Figure 2 Based on the illustrated embodiment, further refinements are made to steps S201 and S203, such as... Figure 5 As shown, the robot rotation control method provided in this embodiment may include the following steps:

[0101] Step S501: Determine each obstacle avoidance area of ​​the robot based on the circumcircle of the rectangle corresponding to the robot's chassis.

[0102] Specifically, if the shape of the robot's chassis projection on the horizontal plane is a rectangle, then the obstacle avoidance area of ​​the robot can be determined based on the circumcircle of the rectangle corresponding to the robot's chassis.

[0103] Specifically, the regions defined by the rectangle corresponding to the robot's chassis and divided by that rectangle are the robot's obstacle avoidance zones. Figure 3 The various arc-shaped regions, namely regions 321 to 324.

[0104] Step S502: When the robot rotates along the rotation direction, the detection results of the robot's external environment are obtained, and the obstacles in each obstacle avoidance area are determined based on the detection results.

[0105] Step S503: When there are at least two obstacles in each of the obstacle avoidance areas, for each obstacle, determine the target point on the robot according to the position of the preset point corresponding to the obstacle.

[0106] Wherein, the preset point corresponding to the obstacle is a point representing the obstacle determined based on the detection result corresponding to the obstacle, and the target point is a point on the outer surface of the robot that, assuming the robot rotates along a set rotation direction, will coincide with the preset point corresponding to the obstacle. That is, the target point corresponding to the preset point is a point on the outer surface of the robot that, if the robot continues to rotate, will coincide with the preset point.

[0107] Specifically, obstacles can be detected using radar installed on the robot. The point cloud data corresponding to each obstacle can then be clustered to obtain preset points for each obstacle. One obstacle can correspond to one or more preset points. For each obstacle, based on the position of one or more preset points corresponding to that obstacle, a target point corresponding to each preset point is determined from the rectangle corresponding to the robot's outer surface or chassis. The preset point and its corresponding target point lie on a circle centered on the robot's rotation center.

[0108] Optionally, determining the target point on the robot based on the position of a preset point corresponding to the obstacle includes:

[0109] A first circle is drawn with the rotation center of the robot as the center and the distance between the rotation center of the robot and the preset point of the obstacle as the radius. Each candidate point where the first circle intersects with the robot is obtained. The candidate points in the same obstacle avoidance area as the preset point of the obstacle are determined as the target points corresponding to the preset point of the obstacle.

[0110] Specifically, in order to determine the target point of the preset point corresponding to the obstacle, it is necessary to draw the concentric circle of the circumcircle, and the concentric circle intersects with the rectangle corresponding to the robot's chassis at four candidate points. Then, the candidate point that is in the same obstacle avoidance area as the preset point is determined as the target point corresponding to the preset point.

[0111] For example, Figure 6 For this disclosure Figure 5 The schematic diagram of the preset points and their corresponding target points in the embodiment shown is as follows: Figure 6As shown, the rectangle 610 corresponding to the robot's chassis is compared with its circumcircle 620 at each vertex of the rectangle 610. The center of the circumcircle 620 is point O1. The robot rotates 90° counterclockwise in place. The robot's four obstacle avoidance areas are areas 631 to 634. There is an obstacle in the robot's obstacle avoidance area. This obstacle is clustered into a preset point B1. Then, with point O1 as the center and the distance between point O1 and preset point B1 as the radius, a concentric circle of the circumcircle 620 is drawn, namely circle 640. Circle 640 intersects the rectangle 610 at points I1 to I4. Among them, point I2 is in the same obstacle avoidance area as the preset point B1 of the obstacle. Therefore, point I2 is the target point corresponding to preset point B1.

[0112] When obstacles are clustered into multiple preset points, the target points corresponding to each preset point can be determined based on the above method. That is, for each preset point of the obstacle, a first circle is drawn with the robot's rotation center as the radii and the distance between the robot's rotation center and the preset point as the radius. The candidate points where the first circle intersects with the rectangle corresponding to the robot's chassis are obtained. The candidate points located in the same obstacle avoidance area as the preset point are determined as the target points corresponding to the preset points, thereby obtaining the target points corresponding to each preset point of the obstacle.

[0113] Step S504: Determine the angular difference between the obstacle and the robot based on the angle between the line connecting the robot's rotation center and the preset point corresponding to the obstacle, and the line connecting the robot's rotation center and the target point corresponding to the preset point corresponding to the obstacle.

[0114] Specifically, after determining the target point corresponding to the preset point of the obstacle, the preset point is connected to the robot's rotation center to obtain a first line; and the target point corresponding to the preset point is connected to the robot's rotation center to obtain a second line. The angle between the first line and the second line is the angular difference between the obstacle and the robot. Figure 6 The angle formed by the midpoint I2, point O1, and point B1.

[0115] Optionally, when there are multiple preset points corresponding to the obstacle, the angular difference between the obstacle and the robot is determined based on the angle between the line connecting the robot's rotation center and the preset point corresponding to the obstacle, and the line connecting the robot's rotation center and the target point corresponding to the preset point corresponding to the obstacle. This includes:

[0116] For each preset point corresponding to the obstacle, a first angle corresponding to the preset point is determined based on the angle between the line connecting the robot's rotation center and the preset point and the line connecting the robot's rotation center and the target point corresponding to the preset point; the minimum value among the first angles corresponding to each preset point is determined as the angle difference between the obstacle and the robot.

[0117] When an obstacle corresponds to multiple preset points, the angle difference (or first angle) corresponding to each preset point can be determined first, and then the angle difference with the smallest angle difference among the preset points can be determined as the angle difference between the obstacle and the robot.

[0118] Step S505: Determine the obstacle with the smallest angular difference from the robot as the target obstacle, and perform obstacle avoidance on the target obstacle.

[0119] Specifically, from all the obstacles in the robot's obstacle avoidance area, the obstacle with the smallest angular difference from the robot is identified as the target obstacle. Then, based on the location of the target obstacle, the robot's obstacle avoidance strategy is determined to prevent the robot from colliding with the target obstacle when rotating in the rotation direction.

[0120] In this embodiment, for a robot rotating in place, obstacle avoidance zones are determined based on the circumcircle of the rectangle corresponding to the robot's chassis. This significantly reduces the range of the obstacle avoidance zone, preventing obstacles outside the zone from triggering the robot's obstacle avoidance strategy and improving obstacle avoidance accuracy. Furthermore, based on the determined obstacle avoidance zones and the collected detection results of the robot's external environment, obstacles within each obstacle avoidance zone are identified. The angular difference between each obstacle and the robot is determined based on the center of the circumcircle, the preset point corresponding to each obstacle, and its corresponding target point. The obstacle with the smallest angular difference is selected as the target obstacle, and the robot is controlled to avoid this target obstacle, thus preventing collisions during rotation. Determining the target obstacle based on angular difference, compared to distance, improves the accuracy of target obstacle determination, thereby enhancing the effectiveness of robot obstacle avoidance and the safety of robot operation.

[0121] Figure 7 This is a flowchart of a robot rotation control method according to another embodiment of this disclosure. In this embodiment, the robot's chassis has a rectangular projection in the horizontal direction, and the robot rotates in place along a set rotation direction. In-place rotation means that the rotation center remains unchanged, and this rotation center does not undergo displacement or the displacement is negligible. The robot rotation control method provided in this embodiment is... Figure 2 Based on the illustrated embodiment, step S201 is further refined, as follows: Figure 7As shown, the robot rotation control method provided in this embodiment may include the following steps:

[0122] Step S701: Determine the target area based on the dimensions of the robot's chassis.

[0123] The target region is the area remaining after removing the area containing the rectangle corresponding to the robot's chassis from the area corresponding to the rectangle corresponding to the robot's chassis. In other words, the target region is the union of the rectangles corresponding to the robot's chassis, which is the circumcircle.

[0124] Specifically, based on the dimensions of the robot's chassis, the rectangle corresponding to the chassis can be determined, and then the circumcircle of the rectangle can be drawn. The target area is the area remaining in the circumcircle excluding the rectangle.

[0125] Step S702: Determine the safe zone for the robot when it rotates in place based on the robot's rotation direction, target rotation angle, and the angle the robot has rotated through.

[0126] The safe zone is the area where the robot does not need to avoid obstacles while rotating along a predetermined direction and at a target angle. When the robot rotates in place, its center of rotation remains unchanged, and the displacement of the center is negligible or negligible. That is, the center of rotation can fluctuate within a preset range, which is negligible relative to the robot's dimensions. Ideally, when the robot rotates in place, it remains within the circumcircle of the rectangle corresponding to its chassis.

[0127] Specifically, the area the robot will not reach during its rotation along the target angle can be determined based on its rotation direction and the target rotation angle. During the robot's stationary rotation, the area it will not revisit can be determined based on the angle it has rotated through. Therefore, the robot's safe zone consists of both the previously unreachable area and the area it will not revisit. The robot's safe zone is dynamic and changes with the angle it has rotated through.

[0128] Optionally, the target rotation angle of the robot is less than or equal to 90°.

[0129] Furthermore, if the total angle required for the robot to rotate is greater than 90°, it can be divided into multiple target rotation angles, each of which is less than or equal to 90°. The sum of all target rotation angles is the total angle required for the robot to rotate.

[0130] Specifically, when there are multiple rotation target angles, after the robot has finished rotating along the previous rotation target angle, the robot's safe area is reset, that is, the robot's safe area is cleared. Then, when the robot rotates in place along the set rotation direction based on the next rotation target angle, the safe area when the robot rotates in place along the set rotation direction based on the next rotation target angle, the rotation direction, and the angle that the robot has rotated through in the next rotation target angle is determined.

[0131] Optional, Figure 8 For this disclosure Figure 7 The flowchart of step S702 in the illustrated embodiment is as follows: Figure 8 As shown, step S702 may include the following steps:

[0132] Step S7021: Based on the robot's rotation direction and rotation target angle, determine a first region in the target region that the robot will not reach when rotating along the rotation direction and rotating at the rotation target angle.

[0133] Specifically, since the target rotation angle is less than or equal to 90°, when the robot rotates along the set rotation direction, there must be a region within the robot's target area that the robot will not reach during that rotation, i.e., the first region mentioned above. Based on the robot's rotation direction and target rotation angle, a third region that the robot will reach when rotating in place can be determined within this target area. The difference between this target region and the third region is the first region mentioned above.

[0134] Step S7022: Based on the angle the robot has rotated along the rotation direction, determine the second region in the target region that the robot has passed through during the process of rotating along the rotation direction to the target rotation angle and will not pass through again.

[0135] Specifically, after the robot rotates a certain angle along the set rotation direction, there will be a region in the target area that the robot has already passed through, which is called the third region. If the robot continues to rotate along the set rotation direction in the third region, there will be a fourth region that the robot will pass through again. The second region is the difference between the third region and the fourth region. The second region is the region that the robot has only passed through once. This second region will change with the angle that the robot has rotated through.

[0136] Specifically, the initial pose of the robot rotation can be represented by a first rectangle, and the circumcircle of the first rectangle is drawn. Based on the angle the robot has rotated along the rotation direction, a second rectangle corresponding to the current pose of the robot is drawn. At the same time, based on the robot's rotation direction and the target rotation angle, a third rectangle corresponding to the final pose of the robot when it rotates along the rotation direction to the target rotation angle is drawn. Then, based on the circumcircle, the first rectangle, the second rectangle, and the third rectangle, the aforementioned first region and second region can be determined.

[0137] Step S7023: Determine the safe zone for the robot to rotate in place based on the first zone and the second zone.

[0138] Specifically, the union of the first and second regions can be determined as the safe zone when the robot rotates in place along the set rotation direction to the target rotation angle.

[0139] For example, Figure 9 For this disclosure Figure 8 A schematic diagram of the robot's safety area in the illustrated embodiment is shown below. Figure 9 As shown, the robot needs to rotate 180° clockwise in place. Therefore, the robot's rotation is divided into two target rotation angles of 90° each. This means controlling the robot to rotate two 90° clockwise rotations sequentially. For each 90° clockwise rotation, the robot's chassis position before rotation is as follows: Figure 9 In rectangle 910 (i.e., the first rectangle mentioned above, with vertices A1, B1, C1, and D1), after the robot rotates 45° clockwise, the position of the robot's chassis is as follows: Figure 9 As shown in rectangle 920 (i.e., the second rectangle mentioned above, with vertices A2, B2, C2, and D2), after the robot rotates 90° clockwise, the position of the robot's chassis is as follows. Figure 9 As shown in rectangle 930 (i.e., the third rectangle mentioned above, with vertices A3, B3, C3, and D3), since the target rotation angle is 90°, the first region mentioned above is... Figure 9 Regions 941 and 942 are areas the robot will not traverse during a 90° clockwise rotation from its current position. When the robot rotates 45° clockwise, the second region mentioned above is... Figure 9Regions 951 (composed of points A1, A2, c1, and c2) and 952 (composed of points C1, C2, c3, and c4) are described by shaded areas. Here, c1 is the intersection of side D2A2 of rectangle 920 and side D3A3 of rectangle 930; c2 is the intersection of side D1A1 of rectangle 910 and side D3A3 of rectangle 930; c3 is the intersection of side B2C2 of rectangle 930 and side B3C3 of rectangle 930; and c4 is the intersection of side B1C1 of rectangle 910 and side B3C3 of rectangle 930. The safe area can be defined based on the intersections of the two opposite first sides of the rectangle containing the robot's chassis before rotation with the two first sides of the target rotation angle, and the intersections of the two opposite first sides of the rectangle containing the robot's chassis after rotation with the target rotation angle. The first sides are the aforementioned sides D1A1 and B1C1. When the robot rotates 90° clockwise and then rotates to the next target rotation angle, the robot's safe zone is reset to redetermine the robot's safe zone corresponding to the next target rotation angle.

[0140] Step S703: Determine each obstacle avoidance zone of the robot based on the target area and the safe area.

[0141] The obstacle avoidance area is the relative complement of the safe area in the target area, that is, the union of each obstacle avoidance area and the safe area is the target area.

[0142] Specifically, after determining the robot's safe zone, the remaining area of ​​the target area excluding the safe zone is determined as the robot's various obstacle avoidance zones.

[0143] Step S704: When the robot rotates along the rotation direction, the detection results of the robot's external environment are obtained, and the obstacles in each obstacle avoidance area are determined based on the detection results.

[0144] Step S705: When there are at least two obstacles in each of the obstacle avoidance areas, calculate the angle difference between each obstacle and the robot.

[0145] Wherein, the angle difference is the angle of rotation required for the robot to rotate from its current pose along the rotation direction to collide with the obstacle.

[0146] Step S706: Determine the obstacle with the smallest angular difference from the robot as the target obstacle, and perform obstacle avoidance on the target obstacle.

[0147] In this embodiment, when determining the obstacle avoidance area of ​​the robot, the safe area when the robot rotates in place along the rotation direction along the current rotation target angle is removed from the target area corresponding to the circumcircle. This further reduces the obstacle avoidance area of ​​the robot, improves the accuracy of obstacle avoidance, and effectively avoids the situation where the robot's work efficiency is reduced by avoiding unnecessary obstacles.

[0148] Optionally, when the target rotation angle of the robot is greater than 90°, the robot's obstacle avoidance zones are obtained, including:

[0149] The target rotation angle of the robot is divided into multiple sub-target angles, and the robot is controlled to rotate sequentially along the rotation direction by the sub-target angles, wherein each sub-target angle is less than or equal to 90°; during the period when the robot rotates along the rotation direction by each sub-target angle, each obstacle avoidance area of ​​the robot is determined.

[0150] Specifically, when the target rotation angle of the robot exceeds 90°, the target rotation angle needs to be broken down to obtain multiple sub-target angles, each less than or equal to 90°.

[0151] For example, if the target rotation angle is 160°, it can be split into two sub-target angles of 90° and 70°, or into two sub-target angles of 80°.

[0152] Furthermore, the multiple sub-target angles may include N 90° sub-target angles and one sub-target angle an less than or equal to 90°, and the rotation target angle AN satisfies AN = N * 90° + an.

[0153] After obtaining multiple sub-target angles, the robot can be controlled to rotate sequentially along a set rotation direction based on each sub-target angle. The sub-target angle is used to replace the rotation target angle in the above embodiment for robot rotation control. For each sub-target angle, during the robot's rotation along the set rotation direction, it is necessary to determine the robot's respective obstacle avoidance areas corresponding to that sub-target angle.

[0154] Optionally, during the period when the robot rotates by each of the sub-target angles along the rotation direction, determining each of the robot's obstacle avoidance zones includes:

[0155] Based on the dimensions of the robot's chassis, the sub-target angle, and the angle the robot has rotated through, the respective obstacle avoidance zones of the robot are determined during the period when the robot rotates the sub-target angle along the rotation direction.

[0156] Specifically, the method for determining the obstacle avoidance area based on the sub-target angle is similar to the method for determining the robot's obstacle avoidance area based on the rotation target angle in the above embodiment. Only the rotation target angle is replaced with the sub-target angle, which will not be described in detail here.

[0157] Figure 10 This is a schematic diagram of the structure of a robot rotation control device provided in one embodiment of the present disclosure, as shown below. Figure 10 The device includes: an obstacle avoidance area determination module 1010, an obstacle detection module 1020, an angle calculation module 1030, and a target obstacle determination module 1040.

[0158] The system includes: an obstacle avoidance area determination module 1010 for obtaining various obstacle avoidance areas of the robot; an obstacle detection module 1020 for acquiring detection results of the robot's external environment when the robot rotates along the rotation direction, and determining obstacles in each obstacle avoidance area based on the detection results; an angle calculation module 1030 for calculating the angle difference between each obstacle and the robot when there are at least two obstacles in each obstacle avoidance area, wherein the angle difference is the angle required for the robot to rotate from its current pose along the rotation direction to collide with the obstacle; and a target obstacle determination module 1040 for determining the obstacle with the smallest angle difference from the robot as the target obstacle, so as to avoid the target obstacle.

[0159] Optional, the angle calculation module 1030 includes:

[0160] The target point determination unit is used to determine a target point on the robot for each obstacle when there are at least two obstacles in each obstacle avoidance area, based on the position of a preset point corresponding to the obstacle. The preset point corresponding to the obstacle is a point representing the obstacle determined based on the detection result of the obstacle, and the target point is a point on the outer surface of the robot that would coincide with the preset point corresponding to the obstacle if the robot rotates in the rotation direction. The angle difference determination unit is used to determine the angle difference between the obstacle and the robot based on the angle between the line connecting the robot's rotation center and the preset point corresponding to the obstacle, and the line connecting the robot's rotation center and the target point corresponding to the preset point corresponding to the obstacle.

[0161] Optional, angle difference determination unit, specifically used for:

[0162] When there are multiple preset points corresponding to the obstacle, for each preset point corresponding to the obstacle, a first angle corresponding to the preset point is determined based on the angle between the line connecting the robot's rotation center and the preset point and the line connecting the robot's rotation center and the target point corresponding to the preset point; the minimum value among the first angles corresponding to each preset point is determined as the angle difference between the obstacle and the robot.

[0163] Optional, target point determination unit, specifically used for:

[0164] A first circle is drawn with the rotation center of the robot as the center and the distance between the rotation center of the robot and the preset point of the obstacle as the radius. Each candidate point where the first circle intersects with the robot is obtained. The candidate points in the same obstacle avoidance area as the preset point of the obstacle are determined as the target points corresponding to the preset point of the obstacle.

[0165] Optionally, the shape of the robot's chassis projection on the horizontal plane is roughly rectangular, and the obstacle avoidance area determination module 1010 is specifically used for:

[0166] The obstacle avoidance zones of the robot are determined based on the circumcircle of the rectangle corresponding to the robot's chassis.

[0167] Optional, the obstacle avoidance area determination module 1010 is specifically used for:

[0168] Based on the dimensions of the robot's chassis, the target rotation angle of the robot, and the angle the robot has rotated through, the obstacle avoidance zones of the robot are determined.

[0169] Optionally, the shape of the robot's chassis projection on the horizontal plane is roughly rectangular, and the robot rotates in place along the rotation direction. The obstacle avoidance area determination module 1010 includes:

[0170] The target area determination unit is used to determine a target area based on the size information of the robot's chassis, wherein the target area is the area remaining after removing the area containing the rectangle corresponding to the robot's chassis from the area corresponding to the rectangle of the robot's chassis; the safe area determination unit is used to determine the safe area of ​​the robot when it rotates in place based on the robot's rotation direction, the target rotation angle, and the angle the robot has rotated through; the obstacle avoidance area determination unit is used to determine each of the robot's obstacle avoidance areas based on the target area and the safe area, wherein the obstacle avoidance area is the relative complement of the safe area in the target area.

[0171] Optional, a safety area determination unit, specifically used for:

[0172] Based on the robot's rotation direction and target rotation angle, a first region in the target region that the robot will not reach when rotating along the rotation direction to the target rotation angle is determined; based on the angle the robot has rotated along the rotation direction, a second region in the target region that the robot has already passed through and will not pass through again during its rotation along the rotation direction to the target rotation angle is determined; based on the first region and the second region, a safe region for the robot when rotating in place is determined.

[0173] Optionally, the target rotation angle of the robot is less than or equal to 90°.

[0174] Optionally, when the target rotation angle of the robot is greater than 90°, the obstacle avoidance area determination module 1010 includes:

[0175] An angle splitting unit is used to divide the target rotation angle of the robot into multiple sub-target angles, so as to control the robot to rotate the sub-target angles sequentially along the rotation direction, wherein each sub-target angle is less than or equal to 90°; a sub-obstacle avoidance area determination unit is used to determine each of the obstacle avoidance areas of the robot during the period when the robot rotates each sub-target angle along the rotation direction.

[0176] Optional, the sub-obstacle avoidance area determination unit is specifically used for:

[0177] Based on the dimensions of the robot's chassis, the sub-target angle, and the angle the robot has rotated through, the respective obstacle avoidance zones of the robot are determined during the period when the robot rotates the sub-target angle along the rotation direction.

[0178] Optional, obstacle detection module 1020, specifically used for:

[0179] The system acquires the detection results of the robot's external environment collected by sensors installed on the robot; based on the detection results, it determines the relative positional relationship between each obstacle and the robot; based on the relative positional relationship between each obstacle and the robot, it determines the obstacles within each obstacle avoidance area.

[0180] The robot rotation control device provided in this disclosure can execute the robot rotation control method provided in any embodiment of this disclosure, and has the corresponding functional modules and beneficial effects of the execution method.

[0181] Figure 11 This is a schematic diagram of the structure of a robot rotation control device provided in one embodiment of the present disclosure, as shown below. Figure 11 As shown, the robot rotation control device includes: a memory 1110, a processor 1120, and a computer program.

[0182] The computer program is stored in memory 1110 and configured to be executed by processor 1120 to implement the present disclosure. Figure 4 , Figure 5 , Figure 7 and Figure 8 The robot rotation control method provided in any of the corresponding embodiments.

[0183] The memory 1110 and the processor 1120 are connected via a bus 1130.

[0184] For relevant instructions, please refer to the corresponding text. Figure 2 , Figure 4 , Figure 5 , Figure 7 and Figure 8 The relevant descriptions and effects corresponding to the steps will be understood, and will not be elaborated on here.

[0185] Figure 12 This is a schematic diagram of the structure of a robot provided in one embodiment of the present disclosure, as shown below. Figure 12 As shown, the robot includes: robot body 1210, chassis 1220 and robot rotation control device 1230.

[0186] Among them, the robot rotation control device 1230 is disclosed in this publication. Figure 11 The illustrated embodiment provides a robot rotation control device 1230. The robot rotation control device 1230 can be mounted on the chassis 1220 or on the robot body 1210. Figure 12 Take the chassis 1220 as an example.

[0187] This disclosure also provides a warehousing system including a robot and storage racks. The robot is part of this disclosure. Figure 12 The robot provided in the illustrated embodiment.

[0188] In some embodiments, the storage system further includes one or more of a conveyor line, an operating platform, a hoist, and an unloading machine.

[0189] One embodiment of this disclosure provides a computer-readable storage medium having a computer program stored thereon, the computer program being executed by a processor to implement the present disclosure. Figure 4 , Figure 5 , Figure 7 and Figure 8 The robot rotation control method provided in any of the corresponding embodiments.

[0190] The computer-readable storage medium can be ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, and optical data storage device, etc.

[0191] This disclosure also provides a program product comprising an executable computer program stored in a readable storage medium. At least one processor of a robot rotation control device or a robot can read the computer program from the readable storage medium, and the at least one processor executes the computer program to cause the robot rotation control device to implement the robot rotation control methods provided in the various embodiments described above.

[0192] In the several embodiments provided in this disclosure, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative; for instance, the division of modules is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple modules may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be indirect coupling or communication connection through some interfaces, devices, or modules, and may be electrical, mechanical, or other forms.

[0193] The modules described as separate components may or may not be physically separate. The components shown as modules may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.

[0194] Furthermore, the functional modules in the various embodiments of this disclosure can be integrated into one processing unit, or each module can exist physically separately, or two or more modules can be integrated into one unit. The aforementioned modular unit can be implemented in hardware or in a combination of hardware and software functional units.

[0195] The integrated modules implemented as software functional modules described above can be stored in a computer-readable storage medium. These software functional modules, stored in a storage medium, include several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute some steps of the methods described in the various embodiments of this disclosure.

[0196] It should be understood that the aforementioned 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 this disclosure can be directly manifested as execution by a hardware processor, or execution by a combination of hardware and software modules within the processor.

[0197] The memory may include high-speed RAM, and may also include non-volatile storage (NVM), such as at least one disk storage device, and may also be a USB flash drive, external hard drive, read-only memory, disk or optical disc, etc.

[0198] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.

[0199] The aforementioned storage medium can be implemented from any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk. The storage medium can be any available medium accessible to general-purpose or special-purpose computers.

[0200] An exemplary storage medium is coupled to a processor, enabling the processor to read information from and write information to the storage medium. Alternatively, the storage medium can be an integral part of the processor. Both the processor and the storage medium can reside in an Application Specific Integrated Circuit (ASIC). Alternatively, the processor and storage medium can exist as discrete components in an electronic device or host device.

[0201] Those skilled in the art will understand that all or part of the steps of the above-described method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When executed, the program performs the steps of the above-described method embodiments; and the aforementioned storage medium includes various media capable of storing program code, such as ROM, RAM, magnetic disks, or optical disks.

[0202] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this disclosure, and are not intended to limit them. Although this disclosure 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 disclosure.

Claims

1. A robot rotation control method, characterized in that, The method includes: Based on the dimensions of the robot's chassis, a target area is determined. The target area is the area remaining after removing the area containing the rectangle corresponding to the robot's chassis from the area corresponding to the rectangle of the robot's chassis. The shape of the robot's chassis projection on the horizontal plane is rectangular. The robot rotates in place along the rotation direction. The safe zone for the robot when it rotates in place is determined based on the robot's rotation direction, the target rotation angle, and the angle the robot has rotated through. Based on the target area and the safe area, each obstacle avoidance area of ​​the robot is determined, wherein the obstacle avoidance area is the relative complement of the safe area in the target area; When the robot rotates along the rotation direction, the detection results of the robot's external environment are obtained, and the obstacles in each obstacle avoidance area are determined based on the detection results; When there are at least two obstacles in each of the obstacle avoidance areas, the angle difference between each obstacle and the robot is calculated, wherein the angle difference is the angle of rotation required for the robot to rotate from its current pose along the rotation direction to collide with the obstacle; The obstacle with the smallest angular difference from the robot is identified as the target obstacle, and obstacle avoidance is performed on the target obstacle.

2. The method according to claim 1, characterized in that, Calculating the angular difference between each obstacle and the robot includes: For each obstacle, a target point on the robot is determined based on the position of a preset point corresponding to the obstacle. The preset point corresponding to the obstacle is a point representing the obstacle determined based on the detection result corresponding to the obstacle. The target point is a point on the outer surface of the robot that would coincide with the preset point corresponding to the obstacle if the robot rotates along the rotation direction. The angular difference between the obstacle and the robot is determined by the angle between the line connecting the robot's rotation center and the preset point corresponding to the obstacle, and the line connecting the robot's rotation center and the target point corresponding to the preset point corresponding to the obstacle.

3. The method according to claim 2, characterized in that, When there are multiple preset points corresponding to the obstacle, the angular difference between the obstacle and the robot is determined based on the angle between the line connecting the robot's rotation center and the preset point corresponding to the obstacle, and the line connecting the robot's rotation center and the target point corresponding to the preset point corresponding to the obstacle. This includes: For each preset point corresponding to the obstacle, a first angle corresponding to the preset point is determined based on the angle between the line connecting the robot's rotation center and the preset point and the line connecting the robot's rotation center and the target point corresponding to the preset point. The minimum value among the first angles corresponding to each preset point is determined as the angular difference between the obstacle and the robot.

4. The method according to claim 2, characterized in that, Determining the target point on the robot based on the location of the preset point corresponding to the obstacle includes: A first circle is drawn with the rotation center of the robot as the center and the distance between the rotation center of the robot and the preset point of the obstacle as the radius, and each candidate point where the first circle intersects with the robot is obtained. A candidate point located in the same obstacle avoidance area as the preset point of the obstacle is determined, which is the target point corresponding to the preset point of the obstacle.

5. The method according to claim 1, characterized in that, Based on the robot's rotation direction, target rotation angle, and the angle the robot has rotated through, the safe zone for the robot to rotate in place is determined, including: Based on the robot's rotation direction and target rotation angle, a first region within the target region is determined that the robot will not reach when rotating along the rotation direction to the target rotation angle; Based on the angle through which the robot rotates along the rotation direction, a second region in the target region is determined that the robot has already passed through during its rotation along the rotation direction to the target rotation angle and will not pass through it again. Based on the first region and the second region, a safe zone is determined when the robot rotates in place.

6. The method according to any one of claims 1-5, characterized in that, The target rotation angle of the robot is less than or equal to 90°.

7. The method according to claim 1, characterized in that, When the target rotation angle of the robot is greater than 90°, the robot's obstacle avoidance zones are obtained, including: The target rotation angle of the robot is divided into multiple sub-target angles, so as to control the robot to rotate sequentially along the rotation direction by the sub-target angles, wherein each sub-target angle is less than or equal to 90°; During the period when the robot rotates by each of the sub-target angles along the rotation direction, the respective obstacle avoidance zones of the robot are determined.

8. The method according to claim 7, characterized in that, During the period when the robot rotates by each of the sub-target angles along the rotation direction, the respective obstacle avoidance zones of the robot are determined, including: Based on the dimensions of the robot's chassis, the sub-target angle, and the angle the robot has rotated through, the respective obstacle avoidance zones of the robot are determined during the period when the robot rotates the sub-target angle along the rotation direction.

9. The method according to any one of claims 1-4, characterized in that, The robot acquires detection results of its external environment and determines obstacles within each obstacle avoidance area based on these results, including: The detection results of the robot's external environment collected by the sensors installed on the robot are obtained. Based on the detection results, the relative positional relationship between each obstacle and the robot is determined; The obstacles in each obstacle avoidance area are determined based on their relative positions to the robot.

10. A robot rotation control device, characterized in that, The device includes: The obstacle avoidance area determination module is used to determine a target area based on the dimensions of the robot's chassis. The target area is the region remaining after removing the area containing the rectangle corresponding to the robot's chassis from the region corresponding to the rectangle's circumcircle. The robot's chassis projection on the horizontal plane is rectangular in shape, and the robot rotates in place along its rotation direction. Based on the robot's rotation direction, target rotation angle, and the angle the robot has rotated through, a safe area is determined for the robot while rotating in place. Based on the target area and the safe area, various obstacle avoidance areas of the robot are determined, where each obstacle avoidance area is the relative complement of the safe area within the target area. An obstacle detection module is used to acquire the detection results of the robot's external environment when the robot rotates along the rotation direction, and to determine the obstacles in each obstacle avoidance area based on the detection results; An angle calculation module is used to calculate the angle difference between each obstacle and the robot when there are at least two obstacles in each obstacle avoidance area, wherein the angle difference is the angle required for the robot to rotate from its current pose along the rotation direction to collide with the obstacle; The target obstacle determination module is used to determine the obstacle with the smallest angular difference from the robot as the target obstacle, so as to avoid the target obstacle.

11. A robot rotation control device, characterized in that, include: Memory and at least one processor; The memory stores computer-executed instructions; The at least one processor executes computer execution instructions stored in the memory, causing the at least one processor to perform the robot rotation control method as described in any one of claims 1-9.

12. A robot, characterized in that, It includes the robot body, the chassis, and the robot rotation control device as described in claim 11.

13. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by the processor, implement the robot rotation control method as described in any one of claims 1-9.

14. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the robot rotation control method as described in any one of claims 1-9.

Citation Information

Patent Citations

  • Robot autonomous obstacle avoidance moving control method based on distance vectors

    CN104460666A