Robot collision detection method, device, equipment and program product

Through the overlapping of contour spaces of computer robots during movement, robot collisions are accurately predicted, which solves the problem of misjudgment of collisions in the existing technology and improves the robot scheduling efficiency.

CN119567252APending Publication Date: 2025-03-07HAI ROBOTICS CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411765826.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-29
Publication Date
2025-03-07

AI Technical Summary

Technical Problem

Existing robot collision detection methods misjudgment in three-dimensional space, resulting in insulated scheduling efficiency.

Method used

By whether there is overlap in the contour space of the computer robot during movement, it is predicted whether the robot will collide.

Benefits of technology

It improves robot scheduling efficiency and improves accuracy, avoiding unnecessary stops or route changes caused by misjudgment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119567252A_ABST
    Figure CN119567252A_ABST
Patent Text Reader

Abstract

The invention provides a robot collision detection method, device, equipment and program product. According to the method disclosed by the invention, the contour spaces of the first robot and the second robot in the movement process are calculated, and whether the first robot and the second robot collide in the movement process is predicted according to whether the contour spaces of the first robot and the second robot in the movement process are overlapped or not; whether the robot collides or not in the moving process can be more accurately detected, the method can be suitable for a warehousing system in which the robot can move up and down in the vertical direction, the accuracy of robot collision detection is improved, and therefore the robot dispatching efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of intelligent warehousing, and in particular to a method, device, equipment and program product for robot collision detection. Background Art

[0002] The efficient and flexible operation of smart warehousing is inseparable from the collaborative cooperation of robots. In a limited space, warehousing business has increasingly higher requirements for dense storage. How to ensure that intensively operating robots avoid collisions has become a dual test of the safety and efficiency of smart warehousing.

[0003] The current common robot collision detection method is to predict whether the robots will collide by calculating whether the projection surfaces of the robots on the ground overlap, so as to avoid spatial interference (i.e. collision) of the robots during the scheduling process.

[0004] As the requirements for dense storage in warehousing business increase, in order to achieve the goals of high-density storage and high box-moving efficiency at the same time, rails are set on the shelves so that robots can move on the rails and grab or place boxes. When two robots are located at different positions in the same vertical direction, for example, one is on the shelf track and the other is on the ground, although the projection surfaces of the two robots on the ground overlap, they do not actually collide. If the robot collision is predicted only based on the projection surface on the ground, it will be misjudged as a collision. Due to misjudgment, the robot may be mistakenly stopped or changed its route, resulting in inefficient robot scheduling. Summary of the invention

[0005] The present disclosure provides a method, device, equipment and program product for robot collision detection, which can correctly predict whether robots will collide in three-dimensional space and improve robot scheduling efficiency.

[0006] In a first aspect, the present disclosure provides a method for robot collision detection, comprising:

[0007] Calculating a contour space of the first robot and the second robot during the motion process, wherein the contour space is a three-dimensional space occupied by the robots during the motion process;

[0008] Whether a collision will occur between the first robot and the second robot during the movement is predicted according to whether there is overlap in the contour space of the first robot and the second robot during the movement.

[0009] In a second aspect, the present disclosure provides a robot collision detection device, comprising:

[0010] A contour space determination unit, used to calculate the contour space of the first robot and the second robot during the motion process, wherein the contour space is a three-dimensional space occupied by the robots during the motion process;

[0011] The collision detection unit is used to predict whether the first robot and the second robot will collide during the movement process according to whether there is overlap in the contour space of the first robot and the second robot during the movement process.

[0012] In a third aspect, the present disclosure provides a storage server, including: a memory, a processor, and a transceiver;

[0013] The memory stores computer-executable instructions; the processor executes the computer-executable instructions stored in the memory to implement the method as described in the first aspect above.

[0014] In a fourth aspect, the present disclosure provides a computer-readable storage medium, in which computer-executable instructions are stored. When the computer-executable instructions are executed by a processor, they are used to implement the method described in the first aspect above.

[0015] In a fifth aspect, the present disclosure provides a computer program product, including a computer program, which implements the method described in the first aspect when executed by a processor.

[0016] The present disclosure provides a method, apparatus, device and program product for robot collision detection. The method calculates the contour space of a first robot and a second robot during the motion process, and predicts whether the first robot and the second robot will collide during the motion process according to whether the contour space of the first robot and the second robot during the motion process overlaps. The method can more accurately detect whether the robots will collide during the motion process, and can be applicable to a warehousing system in which the robots can move up and down in a vertical direction. The method improves the accuracy of robot collision detection in three-dimensional space, thereby improving the robot scheduling efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0018] Figure 1 A schematic diagram of a projection of a robot on the ground provided by an embodiment of the present disclosure;

[0019] Figure 2 A schematic diagram of a robot provided by an embodiment of the present disclosure moving in a vertical direction;

[0020] Figure 3 A schematic diagram of a flow chart of a robot collision detection method provided by an embodiment of the present disclosure;

[0021] Figure 4A schematic diagram of a contour space of a first robot at a first starting point and an occupied area on a horizontal plane provided by an exemplary embodiment of the present disclosure;

[0022] Figure 5 The contour space and the occupied area on the horizontal plane of the motion process of the first robot moving from the first starting point along the positive direction of the x-axis to the first ending point provided by an exemplary embodiment of the present disclosure;

[0023] Figure 6 A schematic flow chart of a method for predicting whether a robot's contour space will collide during movement provided by an embodiment of the present disclosure;

[0024] Figure 7 A schematic diagram of a robot collision detection device provided by an embodiment of the present disclosure;

[0025] Figure 8 A schematic diagram of the structure of an electronic device provided in an embodiment of the present disclosure.

[0026] These drawings and textual descriptions are not intended to limit the scope of the present disclosure in any way, but rather to explain the concept of the present disclosure to those skilled in the art by referring to specific embodiments. DETAILED DESCRIPTION

[0027] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present disclosure. Instead, they are merely examples of devices and methods consistent with some aspects of the present disclosure as detailed in the appended claims.

[0028] First, the terms involved in the embodiments of the present disclosure are explained:

[0029] Collision detection: For equipment in the storage system, detect whether there will be collisions or spatial conflicts during movement.

[0030] Geometric Center: The center of the robot's outline.

[0031] Center of motion: The reference point of the robot's motion, representing the robot's position. For a robot moving on the ground, the robot's center of motion is usually on the ground, which is equivalent to the position reported by the robot body.

[0032] The efficient and flexible operation of smart warehousing is inseparable from the collaborative cooperation of robots. In a limited space, warehousing business has higher and higher requirements for dense storage. How to ensure that intensively operating robots avoid collisions has become a dual test of the safety and efficiency of smart warehousing. The current general robot collision detection method is to predict whether the robots will collide by calculating the robot's projection surface on the ground, so as to avoid spatial interference (i.e. collision) of the robots during the scheduling process. In general scenarios, robots perform handling tasks by moving on the ground. In this scenario, the three-dimensional contour space of any two robots is projected onto the ground. By judging whether the projection surfaces of the two robots on the ground overlap, it is possible to predict whether the two robots will collide. For example Figure 1 As shown in the figure, taking the position of robot 1 and robot 2 at a certain moment in the future as an example, the three-dimensional contour space of the two robots 1 and 2 is projected onto the ground respectively to obtain the projection surfaces of the two robots on the ground at that moment. The projection surfaces of robots 1 and 2 on the ground at that moment do not overlap, which means that robots 1 and 2 will not collide at that moment.

[0033] As the requirements for intensive storage in warehousing business increase, in order to achieve the goals of high-density storage and high box handling efficiency at the same time, rails are set on the shelves so that robots can move on the rails and grab or place boxes. Figure 2 As shown, robot 1 is located on the shelf rail and robot 2 is located on the ground. Although the projections of the two robots on the ground overlap, they do not actually collide. Due to misjudgment, the robot may be mistakenly stopped or changed its route, resulting in low robot scheduling efficiency.

[0034] In order to solve the above problems, the disclosed embodiment proposes a method for robot collision detection, which predicts whether the first robot and the second robot will collide during the movement by calculating the contour space of the first robot and the second robot during the movement process, and comparing whether the three-dimensional space occupied by the first robot and the second robot respectively during the movement process overlaps. It can more accurately detect whether the robots collide during the movement process, and can be applied to storage systems where robots can move up and down in the vertical direction, and improve the accuracy of robot collision detection in three-dimensional space, thereby improving the robot scheduling efficiency. Among them, the contour space is the three-dimensional space occupied by the robot during the movement process.

[0035] The method of this embodiment can be applied to detect whether any two robots in a storage system will collide during movement, and the application scenario is not specifically limited here.

[0036] Exemplarily, the solution disclosed in the present invention can be used to predict whether any two robots will collide during the movement of the searched alternative paths during the path search process. Figure 2 In the warehouse scenario shown, for any two robots A and B, a first path is searched for robot A, and a second path is searched for robot B. In order to predict whether the two robots will collide during the movement along the alternative paths, the contour space of the movement process of robot A along the first path and the contour space of the movement process of robot B along the second path can be calculated respectively; the contour space of robot A and the contour space of robot B are compared to see whether there is overlap; if there is overlap, it is determined that robot A and robot B will collide; if there is no overlap, it is determined that robot A and robot B will not collide. If it is determined that robot A and robot B will collide, a new path can be searched for robot A and / or robot B to avoid collision between robot A and robot B.

[0037] In addition, in practical applications, the solution of this embodiment can also be combined with the time information of the robots occupying the alternative path. When it is predicted that the contour space of robot A overlaps with the contour space of robot B, if the occupation time of robots A and B on the same path does not overlap, it is determined that robots A and B will not collide. If the contour space of robot A overlaps with the contour space of robot B, and the occupation time of robots A and B on the same path overlaps, it is determined that robots A and B will collide. For example, in an example scenario, based on Figure 2The warehouse scene shown in the figure includes a plurality of waypoints pre-set on the ground in the warehouse system. The waypoints refer to the points where the robot needs to stay or pass in the warehouse system. The waypoints are set on the routes that the robot can pass. When reserving / searching the next waypoint for the current robot, the warehouse system calculates the contour space and occupation period of the movement process of the current robot passing through the next waypoint. According to the contour space and occupation period of the movement process of other robots that have reserved the next waypoint through the next waypoint, by comparing the contour space and occupation period of the current robot and other robots passing through the next waypoint, it is determined whether the contour space of the current robot passing through the next waypoint overlaps with the contour space of other robots passing through the next waypoint, and whether the occupation period of the current robot and other robots for the next waypoint overlaps, so as to predict whether the current robot will collide with other robots when passing through the next waypoint. If the contour space of the current robot passing through the next waypoint overlaps with the contour space of other robots passing through the next waypoint, and the occupation period of the current robot and other robots for the next waypoint overlaps, then it can be determined that the current robot will collide with other robots when passing through the next waypoint, and the warehouse system can search for other waypoints for the current robot. Otherwise, if the contour space of the current robot passing the next waypoint does not overlap with the contour space of other robots passing the next waypoint, or the occupation time periods of the current robot and other robots for the next waypoint do not overlap, then it can be determined that the current robot will not collide with other robots when passing the next waypoint, and the next waypoint of the current robot can be reserved / determined.

[0038] The following specific embodiments are used to describe in detail the technical solution of the present invention and how the technical solution of the present invention solves the above-mentioned technical problems. The following 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 the present invention will be described below in conjunction with the accompanying drawings.

[0039] Figure 3 The flowchart of a robot collision detection method provided by the embodiment of the present disclosure is shown in FIG. The execution subject of the method is a warehouse server, which can be a scheduling server in a warehouse system. Figure 3 As shown, the method comprises the following steps:

[0040] S301, calculating the contour space of the first robot and the second robot during the movement process, where the contour space is the three-dimensional space occupied by the robots during the movement process.

[0041] The first robot and the second robot refer to any two robots in the warehousing system.

[0042] The three-dimensional space occupied by the robot during movement refers to the range of the three-dimensional space occupied by the outline of the robot during movement. The three-dimensional space can be represented by a three-dimensional coordinate system. The three-dimensional coordinate system includes an x-axis, a y-axis, and a z-axis, wherein any two axes among the x-axis, the y-axis, and the z-axis are perpendicular to each other, and each axis has a positive direction and a negative direction, and the point where the three axes intersect is the origin of the coordinate system. The plane determined by the x-axis and the y-axis is the horizontal plane (i.e., the ground), and the z-axis represents the vertical direction. The position of any point in the three-dimensional space can be represented by the coordinates of the point in the three-dimensional coordinate system.

[0043] The motion process of the robot can be described / determined by the starting point, the end point and the motion path. The motion process of the robot can be stationary at a certain point, or rotational motion at a certain point. The motion process of the robot can also be a linear motion from any starting point to any end point on the horizontal plane (i.e. the ground), such as motion along the x-axis or y-axis, and motion along an oblique line (i.e. a straight line on the horizontal plane that is not parallel to the x-axis and y-axis). The motion process of the robot can also be motion in the vertical direction. In addition, the motion process of the robot can also be a combination of multiple motion processes in the aforementioned rotational motion and various types of linear motion. In some scenarios, the robot being stationary at any point is regarded as a special motion process, and the contour space of the robot being stationary at any point can be calculated as the contour space of the motion process. Based on the contour space of the robot being stationary at a certain point, it can be predicted whether other robots will collide with the stationary robot during the motion process.

[0044] In practical applications, the solution of this embodiment can be used to predict whether a robot will collide during its movement along any path. The path segment to be detected for collision may include only one path point, may include any two path points and the route segment between the two path points, or may include a plurality of path points, and may specifically be the path corresponding to the aforementioned various types of movement processes.

[0045] In this embodiment, the starting point and the ending point refer to the starting point and the ending point of the path segment that needs to be collided, and can be understood as the starting point and the ending point of the collision detection.

[0046] Exemplarily, the starting point and the end point of the collision detection of the robot can be any point that the robot can reach in the storage system, for example, it can be a point on the ground or a point on the shelf rail. There can be 0 or at least one intermediate path point between the starting point and the end point of the collision detection. Taking the example of including an intermediate path point between the starting point and the end point of the collision detection, the robot rotates at the starting point to adjust its front to face the intermediate path point, and moves from the starting point to the intermediate path point in a straight line; then rotates at the intermediate path point to adjust its angle so that the robot faces the end point, and moves from the intermediate path point to the end point in a straight line. For example, when the starting point and the intermediate path point are parallel to the x-axis, the movement of the robot from the starting point to the intermediate path point is a linear motion along the x-axis; when the line connecting the intermediate path point and the terminal is parallel to the z-axis, the movement of the robot from the intermediate path point to the end point is a movement along the vertical direction (i.e., the x-axis).

[0047] In the case where the robot's motion process includes the aforementioned rotational motion and various motion processes (called sub-motion processes) in various linear motions, the contour space of the robot in each sub-motion process can be calculated separately, and the contour space of the robot in each sub-motion process can be merged to obtain the contour space of the robot in the complete motion process that needs collision detection. In this step, when calculating the contour space of the first robot and the second robot in the motion process, the first contour space of the motion process of the first robot and the second contour space of the motion process of the second robot are calculated respectively according to the path information of the first robot and the second robot.

[0048] In this embodiment, when calculating the contour space of any robot during the motion process, the occupied area of ​​the robot's outer contour in the horizontal plane and the occupied range in the vertical direction during the motion process can be calculated to determine the three-dimensional space occupied by the robot during the motion process and obtain the contour space of the robot during the motion process.

[0049] Exemplarily, when calculating the contour space of any robot during the motion process, the cuboid representing the robot's contour can be determined based on the length, width, and height of the robot, and the occupied area of ​​the projection surface of the cuboid on the horizontal plane during the motion process and the occupied range in the vertical direction are calculated to obtain the contour space of the robot during the motion process.

[0050] Optionally, when calculating the contour space of the robot during the motion process, a cuboid representing the contour of the robot can be determined based on the length, width, and height of the robot, and the motion path of the robot can be discretized into multiple discrete points, so that the three-dimensional space occupied by the cuboid at any two adjacent discrete points overlaps. The three-dimensional space occupied by the cuboid at each discrete point is calculated, and the three-dimensional space occupied by the cuboid at all discrete points is merged to obtain the complete contour space of the robot during the motion process.

[0051] S302: predict whether the first robot and the second robot will collide during the movement process according to whether there is overlap in the contour space of the first robot and the second robot during the movement process.

[0052] In this embodiment, the motion process of the first robot and the second robot refers to the possible motion process of the first robot and the second robot in the future, rather than the actual motion process at the moment. For example, when searching for a path for the robot, the motion process of the robot can be the motion process corresponding to the currently searched path, and it is predicted whether the robot will collide when moving along the currently searched path. If a collision is predicted, a new path is searched for the robot to ensure that the robot will not collide when moving along the path searched for it in the future.

[0053] After obtaining the contour spaces of the first robot and the second robot during the motion process, by determining whether the contour spaces of the first robot and the second robot during the motion process overlap, it is possible to predict whether the first robot and the second robot will collide during the motion process.

[0054] If the contour spaces of the first robot and the second robot do not overlap during the movement process, it means that there is no conflict between the three-dimensional spaces occupied by the first robot and the second robot during the movement process, and it is determined that the first robot and the second robot will not collide during the movement process.

[0055] If the contour spaces of the first robot and the second robot overlap during the movement process, it means that there is a conflict between the three-dimensional spaces occupied by the first robot and the second robot during the movement process, and it is determined that the first robot and the second robot will collide during the movement process.

[0056] In practical applications, if it is predicted that the first robot and the second robot will collide during movement, a new path can be searched for the first robot and / or the second robot, and then it can be detected whether the first robot and the second robot will collide during movement along the new path, until a path is found where the first robot and the second robot will not collide.

[0057] It should be noted that the solution of this embodiment predicts whether there is a conflict between robots in three-dimensional space based on the contour space of different robots in the motion process, that is, whether the robots will collide in three-dimensional space. In practical applications, when predicting whether the robots will collide, the time information of the motion process can be combined to predict whether the robots will collide in space based on the contour space of the motion process, and whether the robots are likely to collide in time based on the time information. The core of this embodiment is how to predict whether the robots will collide in space.

[0058] The method provided in the embodiment of the present application calculates the contour space of the first robot and the second robot during the movement process, and determines whether the three-dimensional space occupied by the first robot and the second robot during the movement process conflicts according to whether the contour space of the first robot and the second robot during the movement process overlaps, thereby predicting whether the first robot and the second robot will collide during the movement. Whether the robots will collide during the movement can be detected more accurately, and can be applicable to warehousing systems in which robots can move up and down in a vertical direction, thereby improving the accuracy of robot collision detection and thus improving robot scheduling efficiency.

[0059] In one implementation, in the aforementioned step S301, the contour space of the first robot and the second robot during the motion process is calculated, which can be specifically implemented by the following steps:

[0060] S3011. Determine a first path of the first robot and a second path of the second robot.

[0061] The first path refers to a path segment for collision detection of the first robot, including a first starting point and a first ending point. The second path refers to a path segment for collision detection of the second robot, including a second starting point and a second ending point. The solution of this embodiment is intended to predict whether the first robot moving along the first path will collide with the second robot moving along the second path.

[0062] The first path of the first robot and the second path of the second robot may be any two different path segments. Specifically, the first path may include only one path point, may include any two path points and a route segment between the two path points, or may be a path segment including multiple path points, and the same is true for the second path.

[0063] S3012: Take the first robot and the second robot as target robots respectively, and calculate the target contour space of the target robot's target motion process along the corresponding path.

[0064] The target contour space of the target robot during the target motion process refers to the three-dimensional space occupied by the target robot during the target motion process.

[0065] In this embodiment, the target contour space includes: a first contour space of a motion process of the first robot along the first path, and a second contour space of a motion process of the second robot along the second path.

[0066] In this step, the contour space of the first motion process of the first robot along the first path is calculated, recorded as the first contour space; and the contour space of the second motion process of the second robot along the second path is calculated, recorded as the second contour space.

[0067] In one implementation, the target contour space of the target robot's target motion process along the corresponding path is calculated, which can be specifically implemented in the following manner:

[0068] According to the size information and corresponding path of the target robot, the occupied area of ​​the target robot in the horizontal plane during the target movement process is calculated, and according to the size information and corresponding path of the target robot, the occupied range of the target robot in the vertical direction during the target movement process is calculated; according to the occupied area of ​​the target robot in the horizontal plane during the target movement process, and the occupied range of the target robot in the vertical direction during the target movement process, the target contour space of the target robot in the target movement process is determined.

[0069] The size information of the target robot may include length, width and height, and different target robots may have different size information, that is, different lengths, widths and heights. According to the length, width and height of the target robot, a cuboid representing the outline of the target robot may be determined.

[0070] The target motion process refers to the motion process of the target robot moving from the target starting point along the corresponding path to the target end point of the collision detection. Among them, the target starting point and the target end point refer to the starting point and the end point of the corresponding path. The target motion process can be a rotational motion at a certain point; the target motion process can also be a linear motion from the target starting point to the target end point on the horizontal plane, such as motion along the x-axis or y-axis, motion along an oblique line; the target motion process can also be motion in the vertical direction. In addition, the target motion process can also be a combination of multiple motion processes (sub-motion processes) in the aforementioned rotational motion and various types of linear motion.

[0071] The occupied area of ​​the target robot in the horizontal plane during the target movement process refers to the projection area of ​​the cuboid representing the robot's outline determined according to the length, width, and height of the target robot in the horizontal plane (xy plane) during the target movement process. Therefore, according to the length, width, and corresponding path of the target robot, the projection area of ​​the target robot in the horizontal plane during the target movement process can be calculated, and the occupied area of ​​the target robot in the horizontal plane during the target movement process can be determined.

[0072] The vertical range occupied by the target robot during the target movement refers to the vertical z-axis coordinate range of the cuboid representing the robot's outer wheels determined according to the length, width, and height of the target robot during the target movement. Therefore, according to the height of the target robot and the corresponding path, the vertical z-axis coordinate range of the target robot during the target movement can be calculated, and the vertical range occupied by the target robot during the target movement can be determined.

[0073] For the case where the target motion process of the target robot is any of the aforementioned rotational motion and various types of linear motion (i.e., excluding sub-motion processes), the occupied area of ​​the target robot's outer contour in the horizontal plane and the occupied range in the vertical direction during the target motion process are calculated. The occupied area of ​​the target robot's outer contour in the horizontal plane and the occupied range in the vertical direction determine the three-dimensional space occupied by the target robot during the target motion process, that is, determine the target contour space of the target robot during the target motion process.

[0074] For the case where the target motion process of the target robot includes the aforementioned rotational motion and multiple motion processes (called sub-motion processes) in various linear motions, when calculating the target contour space of the target robot in the target motion process, the contour space of each sub-motion process of the target robot in the target motion process is calculated separately, and then the contour spaces of the sub-motion processes of the target robot in the target motion process are merged to obtain the complete contour space of the target robot in the target motion process, that is, the target contour space of the target motion process of the target robot along the corresponding path.

[0075] When calculating the contour space of the target robot in any sub-motion process, the occupied area of ​​the target robot's outer contour in the horizontal plane and the occupied range in the vertical direction in the sub-motion process are calculated. The occupied area of ​​the target robot's outer contour in the horizontal plane and the occupied range in the vertical direction determine the three-dimensional space occupied by the target robot in the sub-motion process, that is, determine the contour space of the target robot in the sub-motion process.

[0076] In an embodiment of the present application, for any target robot, the projection area of ​​the target robot in the horizontal plane during the target motion along the corresponding path is calculated based on the length, width, height and corresponding path of the target robot, as the occupied area of ​​the target robot in the horizontal plane during the target motion, and the z-axis coordinate range of the target robot in the vertical direction during the target motion along the corresponding path is calculated as the occupied range of the target robot in the vertical direction during the target motion, thereby determining the three-dimensional space occupied by the target robot during the target motion, that is, determining the contour space of the target robot during the target motion.

[0077] In one implementation, the occupied area of ​​the target robot on the horizontal plane during the target movement is calculated according to the size information and the corresponding path of the target robot, which can be implemented in the following manner:

[0078] If it is determined according to the corresponding path of the target robot that the target motion process is a motion along the x-axis or y-axis on the horizontal plane, then the axis-aligned bounding box (AABB) of the projection of the target robot on the horizontal plane during the target motion process is calculated according to the size information and the corresponding path of the target robot to obtain the occupied area of ​​the target robot on the horizontal plane during the target motion process.

[0079] The movement of the target robot along the x-axis on the horizontal plane refers to the linear movement of the target robot along the x-axis direction or the opposite direction of the x-axis. The movement of the target robot along the y-axis on the horizontal plane refers to the linear movement of the target robot along the y-axis direction or the opposite direction of the y-axis.

[0080] In practical applications, a cuboid representing the outline of the target robot can be determined based on the length, width, and height of the target robot. When the target robot moves along the x-axis or y-axis on the horizontal plane, the projection surface of the cuboid of the target robot's outline on the horizontal plane is a rectangle, and the two perpendicular sides of the rectangle are parallel to (or coincide with) the x-axis and the y-axis, respectively, indicating that the projection surface is axis-aligned relative to the x-axis and the y-axis. Therefore, the AABB of the projection of the target robot on the horizontal plane during the target movement can be calculated. During the movement of the target robot along the x-axis or the y-axis on the horizontal plane, the AABB of the projection on the horizontal plane determines the occupied area of ​​the target robot on the horizontal plane during the target movement.

[0081] The calculation of the AABB of the projection of the target robot on the horizontal plane during the movement may be implemented by using any existing algorithm for calculating the AABB, which will not be described in detail here.

[0082] In one implementation, the occupied area of ​​the target robot on the horizontal plane during the target movement is calculated according to the size information and the corresponding path of the target robot, which can be implemented in the following manner:

[0083] If it is determined according to the corresponding path of the target robot that the target motion process is a motion along an oblique line on a horizontal plane, then the oriented bounding box of the projection of the target robot on the horizontal plane during the target motion process is calculated according to the size information and the corresponding path of the target robot to obtain the occupied area of ​​the target robot on the horizontal plane during the target motion process.

[0084] The movement of the target robot along an oblique line on a horizontal plane refers to the movement of the target robot along a straight line on the horizontal plane in a direction that is not parallel to the x-axis and the y-axis.

[0085] When the target robot moves along an oblique line on the horizontal plane, the front of the cuboid representing the outline of the target robot faces the oblique line direction. When the cuboid moves along an oblique line on the horizontal plane, the projection surface of the cuboid representing the outline of the target robot on the horizontal plane is a rectangle. The two mutually perpendicular sides of the rectangle are not parallel to the x-axis and the y-axis, indicating that the projection surface is not axis-aligned with respect to the x-axis and the y-axis. Therefore, the oriented bounding box (OBB) of the projection of the target robot on the horizontal plane during the target movement can be calculated. The OBB of the projection of the target robot on the horizontal plane during the movement along an oblique line on the horizontal plane determines the occupied area of ​​the target robot on the horizontal plane during the target movement.

[0086] The calculation of the OBB of the projection of the target robot on the horizontal plane during the movement may be implemented by using any existing algorithm for calculating the OBB, which will not be described in detail here.

[0087] In one implementation, the occupied area of ​​the target robot on the horizontal plane during the target movement is calculated according to the size information and the corresponding path of the target robot, which can be implemented in the following manner:

[0088] If it is determined according to the corresponding path of the target robot that the target motion process is a motion in the vertical direction, then according to the size information and corresponding path of the target robot and the angle of the target robot during the target motion process, the outer bounding box of the projection of the target robot on the horizontal plane during the target motion process is calculated to obtain the occupied area of ​​the target robot on the horizontal plane during the target motion process.

[0089] The vertical movement of the target robot refers to the linear movement of the target robot along the positive direction or negative direction of the z-axis.

[0090] The angle of the robot during the target motion process refers to the chassis angle of the robot. According to the chassis angle of the robot, it can be determined whether the direction of the robot head is the x-axis direction or the y-axis direction. In this embodiment, the robot head facing the x-axis direction includes two situations: the robot head facing the positive direction of the x-axis, or the robot head facing the negative direction of the x-axis. Similarly, the robot head facing the y-axis direction includes two situations: the robot head facing the positive direction of the y-axis, or the robot head facing the negative direction of the y-axis.

[0091] For example, according to the chassis angle of the target robot, if the chassis angle of the target robot is 0 degrees, it is determined that the front of the target robot is facing the positive direction of the x-axis; if the chassis angle of the target robot is 180 degrees, it is determined that the front of the target robot is facing the negative direction of the x-axis. If the chassis angle of the target robot is 90 degrees, it is determined that the front of the target robot is facing the positive direction of the y-axis; if the chassis angle of the target robot is 270 degrees, it is determined that the front of the target robot is facing the negative direction of the y-axis.

[0092] Specifically, if the front of the target robot is determined to be facing the x-axis direction or the y-axis direction according to the angle of the target robot during the target motion, the axis-aligned bounding box of the projection of the target robot on the horizontal plane during the target motion is calculated according to the size information and the corresponding path of the target robot.

[0093] If it is determined that the front of the target robot is neither facing the x-axis direction nor the y-axis direction according to the angle of the target robot during the target motion, then the oriented bounding box of the projection of the target robot on the horizontal plane during the target motion is calculated according to the size information and the corresponding path of the target robot.

[0094] In practical applications, a cuboid representing the outline of the target robot can be determined based on the length, width, and height of the target robot. When the target robot moves along the positive or negative direction of the z-axis, if the front of the target robot faces the x-axis or y-axis, the projection of the cuboid of the target robot's outline on the horizontal plane is a rectangle, and the two perpendicular sides of the rectangle are parallel to the x-axis and the y-axis, respectively, indicating that the projection plane is axis-aligned with respect to the x-axis and the y-axis. Therefore, the AABB of the projection of the target robot on the horizontal plane during the target movement in the vertical direction can be calculated. In this scenario, the AABB of the projection of the target robot on the horizontal plane during the vertical movement determines the area occupied by the target robot on the horizontal plane during the target movement.

[0095] If the front of the target robot is not facing the x-axis or the y-axis, the projection of the cuboid of the target robot's outline on the horizontal plane is a rectangle, and the two perpendicular sides of the rectangle are not parallel to or coincide with the x-axis or the y-axis, indicating that the projection plane is not axis-aligned with respect to the x-axis and the y-axis. Therefore, the OBB of the projection of the target robot on the horizontal plane during the target motion can be calculated. In this scenario, the OBB of the projection of the target robot on the horizontal plane during the vertical motion determines the occupied area of ​​the target robot on the horizontal plane during the target motion.

[0096] In one implementation, the occupied area of ​​the target robot on the horizontal plane during the target movement is calculated according to the size information and the corresponding path of the target robot, which can be implemented in the following manner:

[0097] If it is determined according to the corresponding path of the target robot that the target motion process is a rotational motion on the target starting point, then according to the size information and the corresponding path of the target robot, a circle with the target starting point as the center and the rotation radius of the target robot as the radius is determined on the horizontal plane, and the area within the circle is used as the occupied area of ​​the target robot on the horizontal plane during the target motion process, wherein the target starting point is the starting point of the corresponding path of the target robot.

[0098] Among them, the rotational movement of the target robot at the target starting point refers to the rotational movement of the target robot on the horizontal plane with the target starting point as the rotation center. In practical applications, the point where the target robot is located on the horizontal plane is the projection point of the target robot's center of motion on the horizontal plane. In some scenarios, the target robot's center of motion is on the ground, and the target robot's center of motion is the point where the target robot is located on the horizontal plane. The rotation radius of the target robot can be determined based on the size information of the target robot and the safety range required in the actual rotation. For example, when the target robot rotates, it is necessary to ensure that its outer side does not collide with the surrounding environment.

[0099] Assuming that the rotation radius of the target robot is r, no matter how big the rotation angle is and whether the direction is clockwise or counterclockwise, the area occupied by the target robot in the horizontal plane during the rotation movement at the target starting point can be regarded as a circle with the target starting point as the center and a radius of r.

[0100] In one implementation, calculating the occupied range of the target robot in the vertical direction during the target movement process according to the size information and the corresponding path of the target robot includes:

[0101] According to the height of the target robot and the z-axis coordinates of the target starting point and the target ending point of the corresponding path of the target robot, the occupied range of the target robot on the z-axis during the target movement is calculated, and the occupied range of the target robot in the vertical direction during the target movement is obtained.

[0102] In this embodiment, the position of the target robot in the three-dimensional space is represented by the position of the motion center of the target robot in the three-dimensional space. The z-axis coordinates of the target robot at the target starting point and the target end point of the corresponding path are the z-axis coordinates of the motion center of the target robot at the target starting point and the target end point of the corresponding path.

[0103] In one implementation, taking the first robot as an example, the contour space of the motion process of the first robot moving from the first starting point along the positive direction of the x-axis to the first end point can be determined by the following method:

[0104] Assuming that the coordinates of the first starting point are (x0, y0, z0), the coordinates of the first ending point are (x1, y1, z1), the length, width, and height of the first robot are l, w, and h respectively, and the offset of its geometric center relative to the center of motion is Δl, Δw, and Δh respectively, then the coordinates of the geometric center of the first robot at the first starting point can be calculated as (x0+Δl, y0+Δw, z0+Δh), and the coordinates of the geometric center of the first robot at the first ending point can be calculated as (x1+Δl, y1+Δw, z1+Δh).

[0105] According to the coordinates of the geometric centers of the first starting point and the first ending point of the first robot, the lower left corner coordinates of the projection of the contour space of the first robot’s movement process along the x-axis on the horizontal plane can be calculated: (x0+Δl-l / 2, y0+Δw-w / 2, z0+Δh-h / 2), and the upper right corner coordinates: (x1+Δl+l / 2, y1+Δw+w / 2, z1+Δh+h / 2).

[0106] For example, taking the target robot as the first robot, assuming that the length l, width w, and height h of the first robot are 1.6m, 1m, and 1.2m respectively, the offset of its geometric center relative to the motion center is (Δl, Δw, Δh) = (0, 0, 0.6), the coordinates of the first starting point of the first robot's motion are (0, 0, 0), and the coordinates of the first end point are (5, 0, 0), where the unit of each coordinate value is m. The motion process of the first robot is: the first robot moves 5m from the first starting point along the positive direction of the x-axis to the first end point.

[0107] The coordinates of the motion center of the first robot at the first starting point are the coordinates of the first starting point (0,0,0). Adding the coordinates of the motion center to the offset of the geometric center relative to the motion center, the coordinates of the geometric center of the first robot at the first starting point can be calculated to be (0,0,0.6). Similarly, the coordinates of the geometric center of the first robot at the first ending point can be calculated to be (5,0,0.6).

[0108] The contour space of the first robot at the first starting point is as follows Figure 4 As shown in the left figure. The area occupied by the contour space of the first robot at the first starting point (0,0,0) on the horizontal plane is as follows Figure 4As shown on the right, the coordinates of the geometric center of the occupied area of ​​the first robot in the horizontal plane in the contour space of the first starting point are (0,0), the length of the first robot is l = 1.6m, and the width is w = 1.0m. Calculation shows that the occupied area interval on the x-axis is [-l / 2,l / 2,] = [-0.8,0.8], and the occupied area interval on the y-axis is [-w / 2,w / 2,] = [-0.5,0.5], the coordinates of the lower left corner are (-0.8,-0.5), and the coordinates of the upper right corner are (0.8,0.5).

[0109] The first contour space of the motion process of the first robot moving from the first starting point to the first end point along the positive direction of the x-axis is as follows: Figure 5 As shown in the figure on the left, it can be determined as follows:

[0110] According to the coordinates of the first starting point (x0, y0, z0) = (0, 0, 0), the coordinates of the first ending point (x1, y1, z1) = (5, 0, 0), the length, width and height of the first robot: l = 1.6m, w = 1.0m, h = 1.2m, and the offset of its geometric center relative to the motion center (Δl, Δw, Δh) = (0, 0, 0.6), it can be calculated that the coordinates of the geometric center of the first robot at the first starting point are: (x0 + Δl, y0 + Δw, z0 + Δh) = (-0.8, -0.5, 0), and the coordinates of the geometric center of the first robot at the first ending point are: (x1 + Δl, y1 + Δw, z1 + Δh) = (5.8, 0.5, 1.2).

[0111] According to the coordinates of the geometric centers of the first starting point and the first ending point of the first robot, the coordinates of the lower left corner of the first contour space of the first robot can be calculated: (x0+Δl-l / 2, y0+Δw-w / 2, z0+Δh-h / 2)=(-0.8,-0.5,0), and the coordinates of the upper right corner: (x1+Δl+l / 2, y1+Δw+w / 2, z1+Δh+h / 2)=(5.8,0.5,1.2).

[0112] According to the coordinates of the lower left corner vertex and the upper right corner vertex of the first contour space of the first robot, it can be determined that the coordinates of the lower left corner vertex of the occupied area of ​​the first robot in the horizontal plane during the movement are (-0.8, -0.5), and the coordinates of the upper right corner vertex are (5.8, 0.5), such as Figure 5 The rectangular area shown on the right side of the figure occupies the interval [-0.8, 5.8] on the x-axis and the interval [-0.5, 0.5] on the y-axis.

[0113] According to the coordinates of the lower left vertex and the upper right vertex of the first contour space of the first robot, it can also be determined that the occupied range of the first robot in the vertical direction during the movement is [0, 1.2].

[0114] For example, taking the target robot as the second robot, assuming that the length l, width w, and height h of the second robot are 1.6m, 1m, and 1.2m respectively, the offset of its geometric center relative to the center of motion is (Δl, Δw, Δh) = (0, 0, 0.6), the coordinates of the second starting point of the second robot are (3, 1, 5), and the coordinates of the second end point are (3, 1, 1), where the unit of each coordinate value is m. The motion process of the second robot is: the second robot moves 4m from the second starting point along the negative direction of the z-axis to the second end point, and the front of the target robot faces the x-axis direction.

[0115] The coordinates of the motion center of the second robot at the second starting point are the coordinates of the second starting point (3,1,5). Add the coordinates of the motion center to the offset of the geometric center relative to the motion center, and the coordinates of the geometric center of the second robot at the second starting point can be calculated to be (3,1,5.6). Similarly, the coordinates of the geometric center of the second robot at the second end point can be calculated to be (3,1,1.6).

[0116] The coordinates of the geometric center of the projection of the contour space of the second robot at the second starting point on the horizontal plane are (3,1). The length of the second robot is l = 1.6m, and the width is w = 1.0m. Calculation shows that the occupied area on the x-axis is [3-l / 2, 3+l / 2,] = [2.2, 3.8], and the occupied area on the y-axis is [1-w / 2, 1+w / 2,] = [0.5, 1.5]. The coordinates of the lower left corner are (2.2, 0.5), and the coordinates of the upper right corner are (3.8, 1.5).

[0117] The second contour space of the motion process of the second robot moving from the second starting point along the negative direction of the z-axis to the second end point can be determined as follows:

[0118] According to the coordinates of the second starting point (x0, y0, z0) = (3, 1, 5), the coordinates of the second ending point (x1, y1, z1) = (3, 1, 1), the length, width and height of the second robot: l = 1.6m, w = 1.0m, h = 1.2m, and the offset of its geometric center relative to the motion center (Δl, Δw, Δh) = (0, 0, 0.6), it can be calculated that the coordinates of the geometric center of the second robot at the second starting point are: (x0 + Δl, y0 + Δw, z0 + Δh) = (3, 1, 5.6), and the coordinates of the geometric center of the second robot at the second ending point are: (x1 + Δl, y1 + Δw, z1 + Δh) = (3, 1, 1.6).

[0119] According to the coordinates of the geometric center of the second starting point and the second ending point of the second robot, the lower left corner coordinates of the second contour space of the second robot can be calculated: (x1+Δl+l / 2, y1+Δw+w / 2, z1+Δh+h / 2)=(2.2,0.5,1), and the upper right corner coordinates: (x0+Δl-l / 2, y0+Δw-w / 2, z0+Δh-h / 2)=(3.8,1.5,6.2).

[0120] According to the coordinates of the lower left vertex and the upper right vertex of the second contour space of the second robot, it can be determined that the coordinates of the lower left vertex of the occupied area of ​​the second robot in the horizontal plane during this movement are (2.2, 0.5) and the coordinates of the upper right vertex are (3.8, 1.5).

[0121] According to the coordinates of the lower left vertex and the upper right vertex of the second contour space of the second robot, it can also be determined that the vertical occupied range of the second robot during the movement is [1,6.2].

[0122] According to the coordinates of the lower left corner vertex and the upper right corner vertex of the contour space of the movement process of the second robot moving from the second starting point along the negative direction of the z-axis to the second end point, it can be determined that the coordinates of the lower left corner vertex of the projection surface of the second robot on the horizontal plane during the movement are (2.2, 0.5) and the coordinates of the upper right corner vertex are (3.8, 1.5), thereby determining the occupied area of ​​the second robot on the horizontal plane during the movement. According to the coordinates of the lower left corner vertex and the upper right corner vertex of the contour space of the movement process of the second robot along the x-axis, it can also be determined that the occupied range of the second robot in the vertical direction during the movement is [1, 6.2].

[0123] In an embodiment of the present application, for scenarios where the target motion process is various different motion processes, the occupied area of ​​the target robot in the horizontal plane and the occupied range in the vertical direction during the target motion process are calculated respectively according to the size information and the corresponding path of the target robot. The target contour space of the target robot in the target motion process can be accurately determined, and the accuracy of the contour space calculation is improved, thereby improving the accuracy of the robot's collision detection.

[0124] Figure 6 A schematic diagram of a robot collision detection process provided by an embodiment of the present disclosure. Figure 6 As shown, based on any of the above embodiments, whether the first robot and the second robot will collide during the movement process is predicted according to whether there is overlap in the contour space of the first robot and the second robot during the movement process, which can be specifically implemented by the following steps:

[0125] S601: Determine whether there is an overlap in the vertical occupied range between the first contour space of the motion process of the first robot and the second contour space of the motion process of the second robot.

[0126] The occupied range of the contour space in the vertical direction refers to the occupied range of the contour space on the z-axis.

[0127] In this step, by judging whether the occupied ranges of the first outline space and the second outline space on the z-axis meet the non-overlapping condition, it is judged whether there is overlap in the occupied ranges of the two outline spaces in the vertical direction. If the occupied ranges of the first outline space and the second outline space on the z-axis meet the non-overlapping condition, it is determined that there is no overlap in the occupied ranges of the two outline spaces in the vertical direction. If the occupied ranges of the first outline space and the second outline space on the z-axis do not meet the non-overlapping condition, it is determined that there is overlap in the occupied ranges of the two outline spaces in the vertical direction.

[0128] Among them, the non-overlapping conditions include: the minimum value of the occupied range of the first outline space in the vertical direction is greater than the maximum value of the occupied range of the second outline space in the vertical direction; or, the maximum value of the occupied range of the first outline space in the vertical direction is less than the minimum value of the occupied range of the second outline space in the vertical direction.

[0129] In addition, in this step, whether the occupied ranges of any two contour spaces in the vertical direction overlap can be determined, which can also be implemented by using any algorithm for comparing whether two intervals overlap, which will not be described in detail here.

[0130] In this step, if the result of the judgment is that the occupied ranges of the first contour space and the second contour space in the vertical direction do not overlap, step S602 is executed to determine that the first robot and the second robot will not collide during the movement.

[0131] If the result of the determination is that the occupied areas of the first contour space and the second contour space overlap in the vertical direction, then step S603 is continued to be executed to determine whether the occupied areas of the first contour space and the second contour space overlap in the horizontal plane.

[0132] S602: If there is no overlap between the occupied ranges of the first outline space and the second outline space in the vertical direction, it is determined that the first robot and the second robot will not collide during the movement.

[0133] When there is no overlap in the vertical occupied ranges of the first contour space and the second contour space, no matter whether there is overlap in the horizontal occupied areas of the first contour space and the second contour space, there is no overlap in the contour spaces of the first robot and the second robot in the three-dimensional space. Therefore, it can be determined that the first robot and the second robot will not collide during movement.

[0134] S603: If the occupied ranges of the first outline space and the second outline space in the vertical direction overlap, determine whether the occupied areas of the first outline space and the second outline space in the horizontal plane overlap.

[0135] The occupied area of ​​the contour space on the horizontal plane refers to the occupied area of ​​the projection surface of the contour space on the horizontal plane.

[0136] When the robot's motion process is any of the aforementioned rotational motion and various linear motion processes (i.e., does not include sub-motion processes), the shape of the area occupied by the robot's contour space in the horizontal plane during the motion process is a convex structure. Among them, for a two-dimensional closed geometric shape, if the connecting line between any two points in the interior of the closed geometric shape is contained in the closed geometric shape, then the closed geometric shape is a convex structure.

[0137] For the robot's motion process including the aforementioned rotational motion and various types of linear motion, that is, including multiple sub-motion processes, the shape of the area occupied by the robot's contour space in the horizontal plane during the motion process may be a convex structure or a concave structure. Among them, for a two-dimensional closed geometric shape, if the internal angle of the closed geometric shape is greater than 180 degrees, then the closed geometric shape is a concave structure.

[0138] In this step, it is determined whether there is overlap in the shapes of the occupied areas of the first contour space and the second contour space on the horizontal plane, which can be specifically implemented in the following manner:

[0139] In an example scenario, the shapes of the occupied areas of the first contour space and the second contour space in the horizontal plane are both convex structures. The occupied area of ​​the first contour space in the horizontal plane is called the first convex structure, and the occupied area of ​​the second contour space in the horizontal plane is called the second convex structure. In this step, it is determined whether the shapes of the occupied areas of the first contour space and the second contour space in the horizontal plane overlap, which can be implemented by any method of determining whether the first convex structure overlaps the second convex structure.

[0140] In an optional implementation, it can be determined whether two convex structures overlap by determining whether any boundary point of one of the convex structures appears in the other convex structure.

[0141] For example, for a convex structure with vertices such as a polygon, it can be determined whether any vertex of any convex structure (such as a first convex structure) appears in another convex structure (such as a second convex structure). If any vertex of the first convex structure is not in the second convex structure, it is determined that the first convex structure does not overlap with the second convex structure.

[0142] For example, if the occupied area of ​​the first contour space in the horizontal plane (the first convex structure) and the occupied area of ​​the second contour space in the horizontal plane (the second convex structure) are both rectangular, then the length and width of the rectangle of the first convex structure can be used as the x-axis and y-axis directions respectively to construct a plane rectangular coordinate system, and the vertices of the second convex structure are represented by the coordinates in the plane rectangular coordinate system. It is determined whether each vertex coordinate of the second convex structure is within the rectangular area of ​​the first convex structure. If any vertex coordinate of the second convex structure is within the rectangular area of ​​the first convex structure, the first convex structure and the second convex structure overlap.

[0143] Exemplarily, the occupied area of ​​the first contour space in the horizontal plane (the first convex structure) and the occupied area of ​​the second contour space in the horizontal plane (the second convex structure) are both circular. If the distance between the centers of the two circles is less than or equal to the sum of the radii of the two circles, it is determined that the two circles overlap, that is, the occupied areas of the two contour spaces in the horizontal plane overlap. If the distance between the centers of the two circles is greater than the sum of the radii of the two circles, it is determined that the two circles do not overlap, that is, the occupied areas of the two contour spaces in the horizontal plane do not overlap.

[0144] Exemplarily, the area occupied by the first contour space in the horizontal plane (the first convex structure) is a rectangle, and the area occupied by the second contour space in the horizontal plane (the second convex structure) is a circle. First, determine whether the center of the circle is within the rectangle. If the center of the circle is within the rectangle, determine that the circle and the rectangle overlap. If the center of the circle is not within the rectangle, continue to determine whether the shortest distance from the center of the circle to the rectangle is greater than the radius of the circle. If the shortest distance from the center of the circle to the rectangle is less than or equal to the radius of the circle, determine that the circle and the rectangle overlap, that is, the occupied areas of the two contour spaces overlap in the horizontal plane. If the shortest distance from the center of the circle to the rectangle is greater than the radius of the circle, determine that the circle and the rectangle do not overlap, that is, the occupied areas of the two contour spaces do not overlap in the horizontal plane.

[0145] Optionally, in determining whether any point in the first convex structure is in the second convex structure, a ray can be drawn from a certain point in the first convex structure. The direction of the ray can be arbitrarily selected, but it is necessary to ensure that the ray does not overlap with the edge of the second convex structure, and calculate the number of intersections between the ray and the second convex structure. If the number of intersections is an odd number, the point is in the area of ​​the second convex structure. If the number of intersections is an even number, the point is not in the area of ​​the second convex structure. In addition, determining whether any point in the first convex structure is in the second convex structure can also be achieved by any method of determining whether a point appears in a convex structure, which is not specifically limited here.

[0146] In another optional implementation, the projections of the first convex structure and the second convex structure on the x-axis and the y-axis can be calculated, and whether the first convex structure and the second convex structure overlap can be determined based on whether the projections of the first convex structure and the second convex structure on the x-axis and the y-axis overlap. If the projections of the first convex structure and the second convex structure on the x-axis overlap, and the projections on the y-axis also overlap, it is determined that the first convex structure and the second convex structure overlap. If the projections of the first convex structure and the second convex structure on the x-axis do not overlap, or the projections of the first convex structure and the second convex structure on the y-axis do not overlap, it is determined that the first convex structure and the second convex structure do not overlap.

[0147] In an example scenario, the shapes of the occupied areas of the first contour space and the second contour space in the horizontal plane are both concave structures. The occupied area of ​​the first contour space in the horizontal plane is called the first concave structure, and the occupied area of ​​the second contour space in the horizontal plane is called the second concave structure. The first concave structure and the second concave structure can be divided into multiple convex structures respectively. If the multiple convex structures obtained by dividing the first concave structure and the multiple convex structures obtained by dividing the second concave structure do not overlap, then the first concave structure and the second concave structure do not overlap. If any convex structure obtained by dividing the first concave structure and any convex structure obtained by dividing the second concave structure overlap, then the first concave structure and the second concave structure overlap.

[0148] In an example scenario, the shape of the area occupied by the first contour space in the horizontal plane is a concave structure, and the shape of the area occupied by the second contour space in the horizontal plane is a convex structure. The concave structure of the first contour space in the horizontal plane can be segmented into multiple convex structures. If the multiple convex structures obtained by segmentation do not overlap with the convex structure of the area occupied by the second contour space in the horizontal plane, then the area occupied by the first contour space in the horizontal plane and the area occupied by the second contour space in the horizontal plane do not overlap. If any convex structure obtained by segmentation overlaps with the convex structure of the area occupied by the second contour space in the horizontal plane, then the area occupied by the first contour space in the horizontal plane and the area occupied by the second contour space in the horizontal plane overlap.

[0149] In this step, if the shapes of the occupied areas of the first contour space and the second contour space on the horizontal plane overlap, step S604 is executed to determine that the occupied areas of the first contour space and the second contour space on the horizontal plane overlap. If the shapes of the occupied areas of the first contour space and the second contour space on the horizontal plane do not overlap, step S605 is executed to determine that the occupied areas of the first contour space and the second contour space on the horizontal plane do not overlap.

[0150] S604: If the occupied areas of the first contour space and the second contour space on the horizontal plane overlap, it is determined that the first robot and the second robot will collide during the movement.

[0151] If the occupied areas of the first contour space and the second contour space in the horizontal plane overlap, it means that the occupied ranges of the first contour space and the second contour space in the vertical direction and in the horizontal plane overlap, and it is determined that the first robot and the second robot will collide during movement.

[0152] S605: If there is no overlap between the occupied areas of the first contour space and the second contour space in the horizontal plane, it is determined that the first robot and the second robot will not collide during the movement.

[0153] If there is no overlap in the occupied areas of the first contour space and the second contour space in the horizontal plane, it means that although the occupied ranges of the first contour space and the second contour space overlap in the vertical direction, there is no overlap in the occupied areas of the horizontal plane. It can be determined that the first robot and the second robot will not collide during movement.

[0154] For example, referring to the example in the aforementioned step S3012, during the movement of the first robot from the first starting point (0,0,0) along the positive direction of the x-axis to the first end point (5,0,0), the occupied range in the vertical direction is [0,1.2], and during the movement of the second robot from the second starting point (3,1,5) along the negative direction of the z-axis to the second end point (3,1,1), the occupied range in the vertical direction is [1,6.2]. It can be seen that the maximum value 1.2 of the occupied range of the first contour space in the vertical direction is greater than the minimum value 1 of the occupied range of the second contour space in the vertical direction. Therefore, it can be determined that the occupied ranges of the first contour space and the second contour space in the vertical direction overlap.

[0155] Since the occupied ranges of the first contour space and the second contour space in the vertical direction overlap, continue to determine whether the occupied areas of the first contour space and the second contour space in the horizontal plane overlap. The coordinates of the lower left corner vertex of the occupied area of ​​the first contour space on the horizontal plane are (-0.8, -0.5), and the coordinates of the upper right corner vertex are (5.8, 0.5). The coordinates of the lower left corner vertex of the projection of the second contour space on the horizontal plane are (2.2, 0.5), and the coordinates of the upper right corner are (3.8, 1.5). Through calculation, it can be seen that the lower left corner vertex of the occupied area of ​​the second contour space on the horizontal plane is on the boundary of the occupied area of ​​the first contour space on the horizontal plane, so the occupied areas of the second contour space and the first contour space on the horizontal plane overlap.

[0156] Since the occupied range of the first outline space and the occupied area of ​​the second outline space in the vertical direction and in the horizontal plane overlap, it can be determined that the first robot and the second robot in the above example will collide during the movement.

[0157] In an optional embodiment, when predicting whether two robots will collide, it can be determined whether there is overlap in the occupied ranges of the two robots' contour spaces in the vertical direction, and whether there is overlap in the occupied areas of the two robots' contour spaces in the horizontal plane. According to the judgment result, if there is overlap in both the occupied ranges of the two robots' contour spaces in the vertical direction and the occupied areas in the horizontal plane, it is determined that the two robots will collide. If there is overlap in the occupied ranges of the two robots' contour spaces in the vertical direction, but not in the occupied areas in the horizontal plane; or there is no overlap in the occupied ranges in the vertical direction, but there is overlap in the occupied areas in the horizontal plane; or there is no overlap in both the occupied ranges in the vertical direction and the occupied areas in the horizontal plane, it is determined that the two robots will not collide.

[0158] In an embodiment of the present application, by first determining whether there is overlap in the vertical occupied range of the first contour space of the movement process of the first robot and the second contour space of the movement process of the second robot, and if there is overlap in the vertical occupied range of the first contour space and the second contour space, determining whether there is overlap in the horizontal occupied area of ​​the first contour space and the second contour space, it is possible to predict whether the first robot and the second robot will collide in the future movement process, thereby improving the efficiency of robot collision detection.

[0159] Figure 7 A schematic diagram of a robot collision detection device provided by an embodiment of the present disclosure. The robot collision detection device 700 includes: a contour space determination unit 701 and a collision detection unit 702.

[0160] The contour space determination unit 701 is used to calculate the contour space of the first robot and the second robot during the motion process, and the contour space is the three-dimensional space occupied by the robots during the motion process.

[0161] The collision detection unit 702 is used to predict whether the first robot and the second robot will collide during the movement process according to whether there is overlap in the contour space of the first robot and the second robot during the movement process.

[0162] In one implementation, the contour space determining unit 701 is specifically configured to:

[0163] A first path of the first robot and a second path of the second robot are determined; the first robot and the second robot are respectively used as target robots, and a target contour space of a target motion process of the target robot along the corresponding path is calculated.

[0164] The target contour space includes: a first contour space of a motion process of the first robot along a first path, and a second contour space of a motion process of the second robot along a second path.

[0165] In one implementation, the contour space determining unit 701 is specifically configured to:

[0166] According to the size information and the corresponding path of the target robot, the occupied area of ​​the target robot in the horizontal plane during the target movement is calculated, and according to the size information and the corresponding path of the target robot, the occupied range of the target robot in the vertical direction during the target movement is calculated.

[0167] According to the occupied area in the horizontal plane and the occupied range in the vertical direction, the target contour space of the target robot in the target motion process is determined.

[0168] In one implementation, the contour space determining unit 701 is specifically configured to:

[0169] If it is determined according to the corresponding path of the target robot that the target motion process is a motion along the x-axis or y-axis on the horizontal plane, then according to the size information and the corresponding path of the target robot, the axis-aligned bounding box of the projection of the target robot on the horizontal plane during the target motion process is calculated to obtain the occupied area of ​​the target robot on the horizontal plane during the target motion process.

[0170] In one implementation, the contour space determining unit 701 is specifically configured to:

[0171] If it is determined according to the corresponding path of the target robot that the target motion process is a motion along an oblique line on a horizontal plane, then the oriented bounding box of the projection of the target robot on the horizontal plane during the target motion process is calculated according to the size information and the corresponding path of the target robot to obtain the occupied area of ​​the target robot on the horizontal plane during the target motion process.

[0172] In one implementation, the contour space determining unit 701 is specifically configured to:

[0173] If it is determined according to the corresponding path of the target robot that the target motion process is a motion in the vertical direction, then according to the size information and corresponding path of the target robot and the angle of the target robot during the target motion process, the outer bounding box of the projection of the target robot on the horizontal plane during the target motion process is calculated to obtain the occupied area of ​​the target robot on the horizontal plane during the target motion process.

[0174] In one implementation, the contour space determining unit 701 is specifically configured to:

[0175] If the target robot's front is determined to be facing the x-axis direction or the y-axis direction according to the angle of the target robot during the target motion, the axis-aligned bounding box of the projection of the target robot on the horizontal plane during the target motion is calculated according to the size information and the corresponding path of the target robot.

[0176] If it is determined that the front of the target robot is not facing the x-axis direction and the y-axis direction according to the angle of the target robot during the target motion, the oriented bounding box of the projection of the target robot on the horizontal plane during the target motion is calculated according to the size information of the target robot.

[0177] In one implementation, the contour space determining unit 701 is specifically configured to:

[0178] If it is determined based on the corresponding path of the target robot that the target motion process is a rotational motion at the starting point of the corresponding path, then based on the size information of the target robot and the corresponding path, a circle with the starting point as the center and the rotation radius of the target robot as the radius is determined on the horizontal plane, and the area within the circle is used as the occupied area of ​​the target robot on the horizontal plane during the target motion process.

[0179] In one implementation, the contour space determining unit 701 is specifically configured to:

[0180] According to the height of the target robot and the z-axis coordinates of the starting point and the end point of the corresponding path, the occupied range of the target robot on the z-axis during the target movement is calculated, and the occupied range of the target robot in the vertical direction during the target movement is obtained.

[0181] In one implementation, the collision detection unit 702 is specifically configured to:

[0182] It is determined whether there is overlap between the occupied ranges in the vertical direction of the first contour space of the first robot during the movement process and the second contour space of the second robot during the movement process.

[0183] If the occupied ranges of the first outline space and the second outline space in the vertical direction do not overlap, it is determined that the first robot and the second robot will not collide during the movement.

[0184] The collision detection unit 702 is specifically used for:

[0185] If the occupied ranges of the first outline space and the second outline space in the vertical direction overlap, it is determined whether the occupied areas of the first outline space and the second outline space in the horizontal plane overlap.

[0186] If the occupied areas of the first contour space and the second contour space on the horizontal plane overlap, it is determined that the first robot and the second robot will collide during the movement.

[0187] If the occupied areas of the first contour space and the second contour space in the horizontal plane do not overlap, it is determined that the first robot and the second robot will not collide during the movement.

[0188] The device provided in the embodiments of the present disclosure can be specifically used to execute the method provided in any of the above embodiments. The specific implementation principles and technical effects are referred to in the above embodiments and will not be repeated here.

[0189] This embodiment predicts whether the first robot and the second robot will collide during the movement by calculating the contour space of the first robot and the second robot during the movement process, and comparing whether the three-dimensional space occupied by the first robot and the second robot respectively during the movement process overlaps. This can more accurately detect whether the robots collide during the movement process, and can be applied to a storage system where the robots can move up and down in a vertical direction, thereby improving the accuracy of robot collision detection and thus improving the robot scheduling efficiency. Among them, the contour space is the three-dimensional space occupied by the robot during the movement process.

[0190] Figure 8 A schematic diagram of the structure of a storage server provided in an embodiment of the present disclosure. Figure 8 As shown, the storage server 800 includes: a memory 801 and a processor 802. The memory 801 is used to store a computer program, and the processor 802 implements the method of any of the above embodiments when executing the computer program. There is a communication link between the memory 801 and the processor 802. Exemplarily, the memory 801 and the processor 802 can communicate via a communication bus 803.

[0191] Optionally, the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), etc. A general-purpose processor may be a microprocessor or the processor may be any conventional processor, etc. The steps in the method embodiments disclosed in the present disclosure may be directly implemented as being executed by a hardware processor, or may be implemented by a combination of hardware and software modules in the processor.

[0192] An embodiment of the present application further provides a computer-readable storage medium, in which computer-executable instructions are stored. When the computer-executable instructions are executed by a processor, a method in any of the above method embodiments is implemented.

[0193] An embodiment of the present application also provides a computer program product, including a computer program, which implements the method in any of the above method embodiments when the computer program is executed by a processor.

[0194] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.

[0195] The order of the above-mentioned embodiments of the present disclosure is only for description and does not represent the advantages and disadvantages of the embodiments. In addition, in some of the processes described in the above-mentioned embodiments and the accompanying drawings, multiple operations that appear in a specific order are included, but it should be clearly understood that these operations may not be executed or executed in parallel in the order in which they appear in this article, and are only used to distinguish between different operations. The sequence number itself does not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed in sequence or in parallel. It should be noted that the descriptions of "first", "second", etc. in this article are used to distinguish different messages, devices, modules, etc., do not represent the order of precedence, and do not limit "first" and "second" to different types. The meaning of "multiple" is two or more, unless otherwise clearly and specifically defined.

[0196] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. The present disclosure is intended to cover any variations, uses or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The description and examples are to be considered exemplary only, and the true scope and spirit of the present disclosure are indicated by the following claims.

[0197] It should be understood that the present disclosure is not limited to the exact structures that have been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

[0198] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present disclosure, rather than to limit them. Although the present disclosure has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein by equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present disclosure.

Claims

1. A method for robot collision detection, characterized in that: include: Calculating a contour space of the first robot and the second robot during the motion process, wherein the contour space is a three-dimensional space occupied by the robots during the motion process; Whether a collision will occur between the first robot and the second robot during the movement is predicted according to whether there is overlap in the contour space of the first robot and the second robot during the movement.

2. The method according to claim 1, characterized in that The calculating of the contour space of the first robot and the second robot during the motion process includes: determining a first path of the first robot, and a second path of the second robot; The first robot and the second robot are respectively used as target robots, and a target contour space of a target motion process of the target robots along a corresponding path is calculated; The target contour space includes: a first contour space of a motion process of the first robot along the first path, and a second contour space of a motion process of the second robot along the second path.

3. The method according to claim 2, characterized in that The step of calculating the target contour space of the target robot's motion process along the corresponding path includes: Calculating the occupied area of ​​the target robot in the horizontal plane during the target movement according to the size information and the corresponding path of the target robot, and calculating the occupied range of the target robot in the vertical direction during the target movement according to the size information and the corresponding path of the target robot; The target contour space of the target robot in the target motion process is determined according to the occupied area in the horizontal plane and the occupied range in the vertical direction.

4. The method according to claim 3, characterized in that The step of calculating the occupied area of ​​the target robot on the horizontal plane during the target movement according to the size information and the corresponding path of the target robot comprises: If it is determined according to the corresponding path of the target robot that the target motion process is a motion along the x-axis or y-axis on the horizontal plane, then according to the size information of the target robot and the corresponding path, the axis-aligned bounding box of the projection of the target robot on the horizontal plane during the target motion process is calculated to obtain the occupied area of ​​the target robot on the horizontal plane during the target motion process.

5. The method according to claim 3, characterized in that: The step of calculating the occupied area of ​​the target robot on the horizontal plane during the target movement according to the size information and the corresponding path of the target robot comprises: If it is determined according to the corresponding path of the target robot that the target movement process is a movement along an oblique line on a horizontal plane, then according to the size information of the target robot and the corresponding path, the oriented bounding box of the projection of the target robot on the horizontal plane during the target movement process is calculated to obtain the occupied area of ​​the target robot on the horizontal plane during the target movement process.

6. The method according to claim 3, characterized in that The step of calculating the occupied area of ​​the target robot on the horizontal plane during the target movement according to the size information and the corresponding path of the target robot comprises: If it is determined according to the corresponding path of the target robot that the target movement process is a movement in the vertical direction, then according to the size information and the corresponding path of the target robot and the angle of the target robot during the target movement process, the outer bounding box of the projection of the target robot on the horizontal plane during the target movement process is calculated to obtain the occupied area of ​​the target robot on the horizontal plane during the target movement process.

7. The method according to claim 6, characterized in that The step of calculating an outer bounding box of a projection of the target robot on a horizontal plane during the target movement according to the size information and the corresponding path of the target robot and the angle of the target robot during the target movement comprises: If it is determined that the front of the target robot is facing the x-axis direction or the y-axis direction according to the angle of the target robot during the target motion, then according to the size information of the target robot and the corresponding path, an axis-aligned bounding box of the projection of the target robot on the horizontal plane during the target motion is calculated; If it is determined that the front of the target robot is not facing the x-axis direction and the y-axis direction based on the angle of the target robot during the target movement, then the oriented bounding box of the projection of the target robot on the horizontal plane during the target movement is calculated based on the size information of the target robot.

8. The method according to claim 3, characterized in that The step of calculating the occupied area of ​​the target robot on the horizontal plane during the target movement according to the size information and the corresponding path of the target robot comprises: If it is determined according to the corresponding path of the target robot that the target motion process is a rotational motion at the starting point of the corresponding path, then according to the size information of the target robot and the corresponding path, a circle with the starting point as the center and the rotation radius of the target robot as the radius is determined on the horizontal plane, and the area within the circle is used as the occupied area of ​​the target robot on the horizontal plane during the target motion process.

9. The method according to claim 3, characterized in that: The calculating, according to the size information and the corresponding path of the target robot, the occupied range of the target robot in the vertical direction during the target movement process includes: According to the height of the target robot and the z-axis coordinates of the starting point and the ending point of the corresponding path, the occupied range of the target robot on the z-axis during the target movement is calculated to obtain the occupied range of the target robot in the vertical direction during the target movement.

10. The method according to any one of claims 1 to 9, characterized in that The predicting whether the first robot and the second robot will collide during the movement process according to whether there is overlap in the contour space of the first robot and the second robot during the movement process includes: Determine whether there is overlap between the occupied ranges in the vertical direction of the first contour space of the first robot in the movement process and the second contour space of the second robot in the movement process; If the occupied ranges of the first outline space and the second outline space in the vertical direction do not overlap, it is determined that the first robot and the second robot will not collide during the movement.

11. The method according to claim 10, characterized in that Also includes: If the occupied ranges of the first outline space and the second outline space in the vertical direction overlap, determining whether the occupied areas of the first outline space and the second outline space in the horizontal plane overlap; If the first contour space and the second contour space overlap in the occupied area of ​​the horizontal plane, determining that the first robot and the second robot will collide during the movement; If there is no overlap between the occupied areas of the first contour space and the second contour space in the horizontal plane, it is determined that the first robot and the second robot will not collide during the movement.

12. A robot collision detection device, characterized in that: include: A contour space determination unit, used to calculate the contour space of the first robot and the second robot during the motion process, wherein the contour space is a three-dimensional space occupied by the robots during the motion process; The collision detection unit is used to predict whether the first robot and the second robot will collide during the movement process according to whether there is overlap in the contour space of the first robot and the second robot during the movement process.

13. A storage server, characterized in that: include: memory, processors, and transceivers; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory to implement the method according to any one of claims 1 to 11.

14. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions, which are used to implement the method according to any one of claims 1 to 11 when executed by a processor.

15. A computer program product, characterized in that The method comprises a computer program, which implements the method according to any one of claims 1 to 11 when being executed by a processor.

Citation Information

Cited By

  • Robot collision detection method and apparatus, and device and program product

    WO2026113732A1