Robot collision detection method and apparatus, and device and program product
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- HAI ROBOTICS CO LTD
- Filing Date
- 2025-10-20
- Publication Date
- 2026-06-04
Smart Images

Figure CN2025128809_04062026_PF_FP_ABST
Abstract
Description
Methods, apparatus, equipment and procedures for robot collision detection
[0001] This application claims priority to Chinese Patent Application No. 202411765826.7, filed on November 29, 2024, entitled “Method, Apparatus, Device and Procedure for Robot Collision Detection”, the entire contents of which are incorporated herein by reference. Technical Field
[0002] This disclosure relates to the field of intelligent warehousing, and in particular to a method, apparatus, equipment, and program product for robot collision detection. Background Technology
[0003] The efficient and flexible operation of smart warehousing relies on the collaborative cooperation of robots. In a limited space, warehousing operations have increasingly higher requirements for dense storage. How to ensure that densely operating robots avoid collisions has become a dual test of safety and efficiency for smart warehousing.
[0004] The current common robot collision detection method predicts whether a collision will occur by calculating whether the robot's projection surface on the ground overlaps, thereby avoiding spatial interference (i.e., collision) during robot scheduling.
[0005] As warehousing operations increasingly demand dense storage, guide rails are installed on shelves to simultaneously achieve high-density storage and high handling efficiency, enabling robots to move along these rails and grasp or place boxes. When two robots are located at different positions in the same vertical direction—for example, one on a shelf track and the other on the ground—although their projected surfaces on the ground overlap, they do not actually collide. Predicting collisions solely based on their ground projections would lead to misjudgments. These misjudgments could cause robots to be incorrectly stopped or have their routes altered, resulting in inefficient robot scheduling. Summary of the Invention
[0006] This disclosure provides a method, apparatus, device, and program product for robot collision detection, which enables accurate prediction of whether a robot will collide in three-dimensional space, thereby improving robot scheduling efficiency.
[0007] In a first aspect, this disclosure provides a method for robot collision detection, comprising:
[0008] Calculate the contour space of the first robot and the second robot during the motion process, wherein the contour space is the three-dimensional space occupied by the robot during the motion process;
[0009] Based on whether the contour space of the first robot and the second robot overlaps during the movement, predict whether the first robot and the second robot will collide during the movement.
[0010] In one possible implementation, calculating 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; taking the first robot and the second robot as target robots respectively, calculating the target contour space of the target robot's target motion process along the corresponding path; wherein the target contour space includes: the first contour space of the first robot's motion process along the first path, and the second contour space of the second robot's motion process along the second path.
[0011] In one possible implementation, calculating the target contour space of the target robot's motion along the corresponding path includes: calculating the area occupied by the target robot in the horizontal plane during the target motion based on the target robot's size information and the corresponding path; and calculating the vertical area occupied by the target robot during the target motion based on the target robot's size information and the corresponding path; and determining the target contour space of the target robot during the target motion based on the horizontal area occupied and the vertical area occupied.
[0012] In one possible implementation, calculating the area occupied by the target robot on the horizontal plane during the target motion, based on the target robot's size information and corresponding path, includes: if, based on the target robot's corresponding path, it is determined that the target motion is a movement along the x-axis or y-axis on the horizontal plane, then, based on the target robot's size information and corresponding path, calculating the axis-aligned bounding box of the target robot's projection on the horizontal plane during the target motion, to obtain the area occupied by the target robot on the horizontal plane during the target motion.
[0013] In one possible implementation, calculating the area occupied by the target robot on the horizontal plane during the target movement based on the target robot's size information and corresponding path includes: if, based on the target robot's corresponding path, it is determined that the target movement is a movement along an oblique line on the horizontal plane, then, based on the target robot's size information and corresponding path, calculating the oriented bounding box of the target robot's projection on the horizontal plane during the target movement, to obtain the area occupied by the target robot on the horizontal plane during the target movement.
[0014] In one possible implementation, calculating the area occupied by the target robot in the horizontal plane during the target movement based on the target robot's size information and corresponding path includes: if the target movement is determined to be a vertical movement based on the target robot's corresponding path, then calculating the bounding box of the target robot's projection on the horizontal plane during the target movement based on the target robot's size information, the corresponding path, and the angle of the target robot during the target movement, thereby obtaining the area occupied by the target robot in the horizontal plane during the target movement.
[0015] In one possible implementation, calculating the bounding box of the target robot's projection on the horizontal plane during the target movement, based on the target robot's size information, the corresponding path, and the target robot's angles during the target movement, includes: if the target robot's front end is determined to be facing the x-axis or y-axis direction based on the target robot's angles during the target movement, then calculating the axis-aligned bounding box of the target robot's projection on the horizontal plane during the target movement, based on the target robot's size information and the corresponding path; if the target robot's front end is determined to be not facing the x-axis or y-axis direction based on the target robot's angles during the target movement, then calculating the oriented bounding box of the target robot's projection on the horizontal plane during the target movement, based on the target robot's size information.
[0016] In one possible implementation, calculating the area occupied by the target robot on the horizontal plane during the target movement based on the target robot's size information and corresponding path includes: if, based on the target robot's corresponding path, it is determined that the target movement is a rotational movement at the starting point of the corresponding path, then, based on the target robot's size information and the corresponding path, a circle is determined on the horizontal plane with the starting point as the center and the target robot's rotation radius as the radius, and the area within the circle is taken as the area occupied by the target robot on the horizontal plane during the target movement.
[0017] In one possible implementation, calculating the vertical occupancy range of the target robot during the target movement based on the size information of the target robot and the corresponding path includes: calculating the occupancy range of the target robot on the z-axis during the target movement based on the height of the target robot and the z-axis coordinates of the start and end points of the corresponding path, thereby obtaining the vertical occupancy range of the target robot during the target movement.
[0018] In one possible implementation, predicting whether the first robot and the second robot will collide during movement based on whether their contour spaces overlap during movement includes: determining whether the vertically occupied areas of the first contour space of the first robot and the second contour space of the second robot during movement overlap; if the vertically occupied areas of the first contour space and the second contour space do not overlap, then determining that the first robot and the second robot will not collide during movement.
[0019] In one possible implementation, the method further includes: if the first contour space and the second contour space overlap in the vertical direction, then determine whether the first contour space and the second contour space overlap in the horizontal plane; if the first contour space and the second contour space overlap in the horizontal plane, then determine that the first robot and the second robot will collide during the movement; if the first contour space and the second contour space do not overlap in the horizontal plane, then determine that the first robot and the second robot will not collide during the movement.
[0020] Secondly, this disclosure provides a device for robot collision detection, comprising:
[0021] The contour space determination unit is used to calculate the contour space of the first robot and the second robot during the motion process, wherein the contour space is the three-dimensional space occupied by the robot during the motion process;
[0022] The collision detection unit is used to predict whether the first robot and the second robot will collide during their movement, based on whether there is overlap in the contour space of the first robot and the second robot during their movement.
[0023] Thirdly, this disclosure provides a warehouse server, including: a memory, a processor, and a transceiver;
[0024] The memory stores computer-executable instructions; the processor executes the computer-executable instructions stored in the memory to implement the method described in the first aspect above.
[0025] Fourthly, this disclosure provides a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, are used to implement the method described in the first aspect above.
[0026] Fifthly, this disclosure provides a computer program product, including a computer program that, when executed by a processor, implements the method described in the first aspect above.
[0027] This 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 their movement and predicts whether a collision will occur between the first robot and the second robot during their movement based on whether their contour spaces overlap. This method can more accurately detect whether a collision occurs during robot movement and is applicable to warehousing systems where robots can move vertically up and down. It improves the accuracy of robot collision detection in three-dimensional space, thereby improving robot scheduling efficiency. Attached Figure Description
[0028] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.
[0029] Figure 1 is a schematic diagram of the robot's projection on the ground according to an embodiment of this disclosure;
[0030] Figure 2 is a schematic diagram of the robot moving vertically according to an embodiment of this disclosure;
[0031] Figure 3 is a flowchart illustrating a robot collision detection method provided in an embodiment of this disclosure;
[0032] Figure 4 is a schematic diagram of the outline space of the first robot at the first starting point and the occupied area in the horizontal plane provided by an exemplary embodiment of the present disclosure;
[0033] Figure 5 shows the contour space and the occupied area in the horizontal plane of the first robot moving from a first starting point to a first ending point along the positive direction of the x-axis, according to an exemplary embodiment of this disclosure.
[0034] Figure 6 is a flowchart illustrating a method for predicting whether a robot's contour space will collide during motion, according to an embodiment of this disclosure.
[0035] Figure 7 is a schematic diagram of a robot collision detection device provided in an embodiment of this disclosure;
[0036] Figure 8 is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure.
[0037] These accompanying drawings and textual descriptions are not intended to limit the scope of the present disclosure in any way, but rather to illustrate the concepts of the disclosure to those skilled in the art by reference to specific embodiments. Detailed Implementation
[0038] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this disclosure as detailed in the appended claims.
[0039] First, the terms used in the embodiments of this disclosure will be explained:
[0040] Collision detection: For equipment in a warehouse system, detect whether collisions or spatial conflicts will occur during its movement.
[0041] Geometric center: The center of the robot's outline.
[0042] Center of motion: The reference point for robot movement, representing the robot's position. For robots moving on the ground, the center of motion is usually on the ground, equivalent to the position reported by the robot itself.
[0043] The efficient and flexible operation of intelligent warehousing relies heavily on the collaborative work of robots. Within limited spaces, warehousing operations increasingly demand dense storage, making it crucial to ensure that these densely operating robots avoid collisions—a dual challenge for both safety and efficiency in intelligent warehousing. Currently, the common robot collision detection method predicts whether a collision will occur by calculating the robot's projection surface on the ground, thus preventing spatial interference (i.e., collisions) during robot scheduling. In typical scenarios, robots perform transport tasks by moving on the ground. In this scenario, by projecting the three-dimensional contours of any two robots onto the ground and determining whether their projection surfaces overlap, a collision can be predicted. As shown in Figure 1, taking the positions of robots 1 and 2 at a future moment as an example, the three-dimensional contours of robots 1 and 2 are projected onto the ground to obtain their projection surfaces at that moment. If the projection surfaces of robots 1 and 2 do not overlap at that moment, it can be determined that robots 1 and 2 will not collide.
[0044] As warehousing operations increasingly demand dense storage, guide rails are installed on shelves to simultaneously achieve high-density storage and high handling efficiency. This allows robots to move along the rails and grasp or place boxes. For example, as shown in Figure 2, robot 1 is located on the shelf guide 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 robots may be incorrectly stopped or have their routes altered, leading to low robot scheduling efficiency.
[0045] To address the aforementioned issues, this disclosure proposes a robot collision detection method. By calculating the contour spaces of a first robot and a second robot during their movement and comparing whether the three-dimensional spaces occupied by the first and second robots overlap, the method predicts whether a collision will occur between them. This method can more accurately detect robot collisions during movement and is applicable to warehousing systems where robots can move vertically up and down. It improves the accuracy of robot collision detection in three-dimensional space, thereby enhancing robot scheduling efficiency. Here, the contour space refers to the three-dimensional space occupied by the robot during its movement.
[0046] The method in this embodiment can be applied to detect whether any two robots in a warehousing system will collide during movement. No specific limitations are made on the application scenario here.
[0047] For example, the solution disclosed herein can be used to predict whether any two robots will collide during path search. For instance, based on the warehouse scenario shown in Figure 2, for any two robots A and B, a first path is searched for robot A, and a second path is searched for robot B. To predict whether the two robots will collide during their movement along the candidate paths, the contour space of robot A's movement along the first path and the contour space of robot B's movement along the second path can be calculated respectively; the contour spaces of robot A and robot B are compared to see if they overlap; if they overlap, it is determined that robot A and robot B will collide; if they do not 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 the collision.
[0048] Furthermore, in practical applications, the solution in this embodiment can also combine the time information of the robot's occupation of alternative paths. If the contour spaces of robot A and robot B overlap, and the occupation time of the same path segment by robot A and robot B does not overlap, then it is determined that robot A and robot B will not collide. If the contour spaces of robot A and robot B overlap, and the occupation time of the same path segment by robot A and robot B overlaps, then it is determined that robot A and robot B will collide. For example, in an example scenario, based on the warehouse scenario shown in Figure 2, the warehouse system includes multiple path points pre-set on the ground. Path points refer to points where robots need to stop or pass through in the warehouse system, and these path points are set on routes that robots can traverse. When reserving / searching for the next path point for the current robot, the warehouse system calculates the contour space and occupation time of the current robot's movement through the next path point. Based on the contour space and time period of other robots that have already booked the next path point, the system compares the contour space and time period of the current robot's movement through the next path point with those of other robots to determine whether the current robot's contour space overlaps with the contour space of the next path point and whether the current robot's time period overlaps with that of other robots. This helps predict whether the current robot will collide with other robots when passing through the next path point. If the contour space of the current robot's movement through the next path point overlaps with the contour space of other robots' movement through the next path point, and the current robot's time period overlaps with that of other robots, then it can be determined that the current robot will collide with other robots when passing through the next path point, and the storage system can search for other path points for the current robot. Otherwise, if the contour space of the current robot's movement through the next path point does not overlap with the contour space of other robots' movement through the next path point, or if the current robot's time period does not overlap with that of other robots, then it can be determined that the current robot will not collide with other robots when passing through the next path point, and the current robot's next path point can be booked / confirmed.
[0049] The technical solutions of this disclosure and how they solve the aforementioned technical problems will be described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of this disclosure will now be described with reference to the accompanying drawings.
[0050] Figure 3 is a flowchart illustrating a robot collision detection method according to an embodiment of this disclosure. The method is executed by a warehouse server, specifically a scheduling server within a warehouse system. As shown in Figure 3, the method includes the following steps:
[0051] S301. Calculate the contour space of the first robot and the second robot during the motion process. The contour space is the three-dimensional space occupied by the robot during the motion process.
[0052] The first robot and the second robot refer to any two robots in the warehousing system.
[0053] The three-dimensional space occupied by a robot during movement refers to the range of three-dimensional space occupied by the robot's outline during motion. Three-dimensional space can be represented using a three-dimensional coordinate system. A three-dimensional coordinate system includes an x-axis, a y-axis, and a z-axis. Any two of the x, y, and z axes are perpendicular to each other, and each axis has a positive and a negative direction. The point where the three axes intersect is the origin of the coordinate system. The plane defined by the x and y axes is the horizontal plane (i.e., the ground), and the z-axis represents the vertical direction. The position of any point in three-dimensional space can be represented using its coordinates in the three-dimensional coordinate system.
[0054] A robot's motion can be described / determined by its starting point, ending point, and motion path. A robot's motion can be stationary at a point, or rotational motion at a point. It can also be linear motion on a horizontal plane (i.e., the ground) from any starting point to any ending point, such as motion along the x-axis or y-axis, or along an oblique line (i.e., a straight line on a horizontal plane not parallel to the x-axis or y-axis). Furthermore, a robot's motion can be vertical. Additionally, a robot's motion can be a combination of various motion processes, including rotational and linear motions. In some scenarios, a robot stationary at any point is considered a special motion process. The contour space of the robot stationary at that point can be calculated as the contour space of this motion process. Based on the contour space of the robot stationary at a point, it is possible to predict whether other robots will collide with the stationary robot during their movement.
[0055] In practical applications, the solution in this embodiment can be used to predict whether a collision will occur during the robot's movement along any path segment. The path segment requiring collision detection may contain only one path point, may include any two path points and the route segment between the two path points, or may be a path segment containing multiple path points. Specifically, it can be the path corresponding to the aforementioned various types of movement processes.
[0056] 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 collision detected, which can be understood as the starting point and the ending point of collision detection.
[0057] For example, the starting and ending points for collision detection of the robot can be any point reachable by the robot in the warehousing system, such as a point on the ground or a point on a shelf guide rail. There can be zero or at least one intermediate path point between the starting and ending points of collision detection. Taking an intermediate path point between the starting and ending points as an example, 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 it rotates at the intermediate path point to adjust its angle so that the robot faces the ending point and moves from the intermediate path point to the ending point in a straight line. For example, when the starting point and the intermediate path point are parallel to the x-axis, the robot's movement from the starting point to the intermediate path point is a straight line movement along the x-axis; when the line connecting the intermediate path point and the ending point is parallel to the z-axis, the robot's movement from the intermediate path point to the ending point is a vertical movement (i.e., the x-axis).
[0058] When a robot's motion process includes multiple motion processes (referred to as sub-motion processes) such as the aforementioned rotational motion and various linear motions, the contour space of the robot in each sub-motion process can be calculated separately. These contour spaces are then merged to obtain the contour space of the robot in the complete motion process requiring 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 first robot's motion process and the second contour space of the second robot's motion process are calculated based on the path information of the first and second robots, respectively.
[0059] In this embodiment, when calculating the contour space of any robot during its motion, the robot's outline can be calculated to determine the area occupied by the robot in the horizontal plane and the range occupied in the vertical direction during its motion, thereby determining the three-dimensional space occupied by the robot during its motion and obtaining the contour space of the robot during that motion.
[0060] For example, when calculating the contour space of any robot during its motion, a cuboid representing the robot's contour can be determined based on the robot's length, width, and height. The area occupied by the projection of this cuboid on the horizontal plane and its vertical occupancy during the motion can be calculated to obtain the contour space of the robot during its motion.
[0061] Optionally, when calculating the contour space of the robot during its motion, a cuboid representing the robot's outline can be determined based on the robot's length, width, and height. The robot's motion path is discretized into multiple discrete points, such 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 spaces occupied by the cuboid at all discrete points are merged to obtain the complete contour space of the robot during its motion.
[0062] S302. Based on whether the contour space of the first robot and the second robot overlaps during the motion, predict whether the first robot and the second robot will collide during the motion.
[0063] In this embodiment, the motion process of the first robot and the second robot refers to their possible future motion processes, rather than their current actual motion processes. For example, when searching for a path for the robot, the robot's motion process can be the motion process corresponding to the currently searched path, predicting whether a collision will occur while the robot is moving along the currently searched path. If a collision is predicted, a new path is searched for the robot to ensure that no collision occurs while the robot is moving along the searched path in the future.
[0064] After obtaining the contour space of the first robot and the second robot during the motion process, it is possible to predict whether the first robot and the second robot will collide during the motion process by determining whether the contour space of the first robot and the second robot overlaps.
[0065] If the contour space of the first robot and the second robot does not overlap during the movement, it means that there is no conflict in the three-dimensional space occupied by the first robot and the second robot during the movement, and it is determined that the first robot and the second robot will not collide during the movement.
[0066] If the contour space of the first robot and the second robot overlaps during the movement, it indicates that there is a conflict in the three-dimensional space occupied by the first robot and the second robot during the movement, and it is determined that the first robot and the second robot will collide during the movement.
[0067] In practical applications, if it is predicted that the first robot and the second robot will collide during their movement, a new path can be searched for the first robot and / or the second robot. Then, it can be detected whether the first robot and the second robot will collide during their movement along the new path, until a path in which the first robot and the second robot will not collide is found.
[0068] It should be noted that the solution in this embodiment predicts whether there will be a conflict between the robots in three-dimensional space based on the contour space of different robots during their movement; that is, it considers whether the robots will collide in three-dimensional space. In practical applications, when predicting whether a robot will collide, the temporal information of the movement process can be combined. The contour space of the movement process can be used to predict whether a collision will occur in space, and the temporal information can be used to predict the possibility of a collision in time. The core of this embodiment lies in how to predict whether a robot will collide in space.
[0069] The method provided in this application calculates the contour space of the first robot and the second robot during their movement, and determines whether the three-dimensional space occupied by the first robot and the second robot during their movement conflicts based on whether their contour spaces overlap. This predicts whether the first robot and the second robot will collide during their movement, and can more accurately detect whether the robots collide during their movement. It is applicable to warehousing systems where robots can move vertically up and down, improving the accuracy of robot collision detection and thus improving robot scheduling efficiency.
[0070] In one implementation, the aforementioned step S301, calculating the contour space of the first robot and the second robot during the motion process, can be achieved through the following steps:
[0071] S3011. Determine the first path of the first robot and the second path of the second robot.
[0072] The first path refers to the path segment for collision detection of the first robot, including a first starting point and a first ending point. The second path refers to the path segment for collision detection of the second robot, including a second starting point and a second ending point. The solution in this embodiment aims to predict whether the first robot moving along the first path will collide with the second robot moving along the second path.
[0073] The first path of the first robot and the second path of the second robot can be any two different path segments. Specifically, the first path can contain only one waypoint, can include any two waypoints and the route segment between the two waypoints, or can be a path segment containing multiple waypoints, and the same applies to the second path.
[0074] S3012. Taking the first robot and the second robot as target robots respectively, calculate the target contour space of the target robot's target motion process along the corresponding path.
[0075] Among them, 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.
[0076] In this embodiment, the target contour space includes: a first contour space of the first robot moving along a first path, and a second contour space of the second robot moving along a second path.
[0077] In this step, the contour space of the first robot's first motion process along the first path is calculated and denoted as the first contour space; and the contour space of the second robot's second motion process along the second path is calculated and denoted as the second contour space.
[0078] In one implementation, the target contour space of the target robot's motion process along the corresponding path is calculated, which can be achieved in the following way:
[0079] Based on the target robot's size information and corresponding path, calculate the area occupied by the target robot in the horizontal plane during its target movement, and calculate the area occupied by the target robot in the vertical direction during its target movement. Based on the area occupied by the target robot in the horizontal plane and the area occupied by the target robot in the vertical direction during its target movement, determine the target contour space of the target robot during its target movement.
[0080] The target robot's dimensions can include length, width, and height. Different target robots can have different dimensions, i.e., different lengths, widths, and heights. Based on the target robot's length, width, and height, a cuboid representing the target robot's outline can be determined.
[0081] The target motion process refers to the motion of the target robot from the target starting point along the corresponding path to the target termination point detected by collision detection. The target starting point and target termination point refer to the starting and ending points of the corresponding path. The target motion process can be rotational motion at a point; it can also be linear motion on a horizontal plane from the target starting point to the target termination point, such as motion along the x-axis or y-axis, or along an oblique line; it can also be vertical motion. Furthermore, the target motion process can be a combination of multiple motion processes (sub-motion processes) from the aforementioned rotational and various linear motions.
[0082] The area occupied by the target robot on the horizontal plane during its movement refers to the projection area of the cuboid representing the robot's outline, determined by its length, width, and height, onto the horizontal plane (xy plane) during its movement. Therefore, based on the target robot's length, width, and corresponding path, the projection area of the target robot on the horizontal plane during its movement can be calculated, thus determining the area occupied by the target robot on the horizontal plane during its movement.
[0083] The vertical range occupied by the target robot during its movement refers to the range of the z-axis coordinates of the cuboid representing the robot's outer wheels, determined by the robot's length, width, and height, during its movement. Therefore, based on the target robot's height and the corresponding path, the range of the target robot's z-axis coordinates during its movement can be calculated, thus determining the vertical range occupied by the target robot during its movement.
[0084] For the target robot's motion process, which is any of the aforementioned rotational motion and various linear motions (i.e., without sub-motion processes), the area occupied by the target robot's outline in the horizontal plane and the vertical plane during the target motion process are calculated. The area occupied by the target robot's outline in the horizontal plane and the vertical plane determine the three-dimensional space occupied by the target robot during the target motion process, that is, the target outline space of the target robot during the target motion process.
[0085] When the target motion process of the target robot includes multiple motion processes (referred to as sub-motion processes) among the aforementioned rotational motion and various linear motions, the contour space of each sub-motion process of the target robot in the target motion process is calculated separately when calculating the target contour space of the target robot in the target motion process. Then, the contour spaces of each sub-motion process 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 robot in the target motion process along the corresponding path.
[0086] When calculating the contour space of the target robot during any sub-motion process, the calculation includes the area occupied by the target robot's outline in the horizontal plane and the vertical plane during that sub-motion process. The area occupied by the target robot's outline in the horizontal plane and the vertical plane determine the three-dimensional space occupied by the target robot during that sub-motion process, that is, the contour space of the target robot during that sub-motion process.
[0087] In this embodiment of the application, for any target robot, based on the length, width, height and corresponding path of the target robot, the projection area of the target robot on the horizontal plane during the target movement along the corresponding path is calculated as the area occupied by the target robot on the horizontal plane during the target movement. The range of the z-axis coordinates of the target robot in the vertical direction during the target movement along the corresponding path is calculated as the range occupied by the target robot in the vertical direction during the target movement. Thus, the three-dimensional space occupied by the target robot during the target movement is determined, that is, the contour space of the target robot during the target movement is determined.
[0088] In one implementation, the area occupied by the target robot on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path. This can be achieved in the following way:
[0089] If the target robot's movement is determined to be along the x-axis or y-axis on the horizontal plane based on its corresponding path, then the axis-aligned bounding box (AABB) of the target robot's projection on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path, thus obtaining the area occupied by the target robot on the horizontal plane during its movement.
[0090] Specifically, the motion of the target robot along the x-axis on the horizontal plane refers to the linear motion of the target robot along the x-axis or in the opposite direction. The motion of the target robot along the y-axis on the horizontal plane refers to the linear motion of the target robot along the y-axis or in the opposite direction.
[0091] In practical applications, a cuboid representing the target robot's outline can be determined based on its length, width, and height. When the target robot moves along the x-axis or y-axis on a horizontal plane, the projection of this cuboid onto the horizontal plane is a rectangle. The two perpendicular sides of this rectangle are parallel to (or coincide with) the x-axis and y-axis, respectively, indicating that the projection plane is axially aligned with respect to the x-axis and y-axis. Therefore, the AABB (Aspect-Adjustable Dimensions) of the target robot's projection onto the horizontal plane during its movement can be calculated. The AABB of the target robot's projection onto the horizontal plane during its movement along the x-axis or y-axis determines the area occupied by the target robot on the horizontal plane during its movement.
[0092] The calculation of the AABB of the target robot's projection on the horizontal plane during its movement can be achieved using any existing algorithm for calculating AABB, which will not be elaborated here.
[0093] In one implementation, the area occupied by the target robot on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path. This can be achieved in the following way:
[0094] If the target robot's movement is determined to be along a diagonal line on a horizontal plane based on its corresponding path, then the oriented bounding box of the target robot's projection on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path, thus obtaining the area occupied by the target robot on the horizontal plane during its movement.
[0095] The motion of the target robot along an oblique line on the horizontal plane refers to the linear motion of the target robot on the horizontal plane along a direction that is not parallel to either the x-axis or the y-axis.
[0096] When the target robot moves along a diagonal line on a horizontal plane, the front face of the cuboid representing the robot's outline faces the diagonal line. The projection of this cuboid onto the horizontal plane is a rectangle. The two perpendicular sides of this rectangle are not parallel to the x-axis or y-axis, indicating that the projection is not axially aligned with these axes. Therefore, the Oriented Bounding Box (OBB) of the target robot's projection onto the horizontal plane during its movement can be calculated. The OBB of the target robot's projection onto the horizontal plane during its diagonal movement determines the area occupied by the target robot on the horizontal plane during its movement.
[0097] The calculation of the OBB (On-Board Boundary) of the target robot's projection on the horizontal plane during its movement can be achieved using any existing algorithm for calculating OBB, which will not be elaborated here.
[0098] In one implementation, the area occupied by the target robot on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path. This can be achieved in the following way:
[0099] If the target robot's movement is determined to be vertical based on its corresponding path, then the bounding box of the target robot's projection on the horizontal plane during its movement is calculated based on the target robot's size information, the corresponding path, and the angle of the target robot during its movement. This yields the area occupied by the target robot on the horizontal plane during its movement.
[0100] The vertical motion of the target robot refers to its linear motion along the positive or negative z-axis.
[0101] The angle of the robot during its movement towards the target refers to the angle of its chassis. Based on this chassis angle, it can be determined whether the robot's front is facing the x-axis or the y-axis. In this embodiment, the robot's front facing the x-axis includes two possibilities: the robot's front is facing the positive x-axis or the robot's front is facing the negative x-axis. Similarly, the robot's front facing the y-axis includes two possibilities: the robot's front is facing the positive y-axis or the robot's front is facing the negative y-axis.
[0102] For example, based on the chassis angle of the target robot, if the chassis angle of the target robot is 0 degrees, then the front of the target robot is determined to be facing the positive x-axis direction; if the chassis angle of the target robot is 180 degrees, then the front of the target robot is determined to be facing the negative x-axis direction. If the chassis angle of the target robot is 90 degrees, then the front of the target robot is determined to be facing the positive y-axis direction; if the chassis angle of the target robot is 270 degrees, then the front of the target robot is determined to be facing the negative y-axis direction.
[0103] Specifically, if the direction of the target robot's front is determined to be the x-axis or y-axis direction based on the angle of the target robot during its movement, then the axis-aligned bounding box of the target robot's projection on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path.
[0104] If, based on the angle of the target robot during its movement, it is determined that the front of the target robot is neither facing the x-axis nor the y-axis, then, based on the size information of the target robot and the corresponding path, the oriented bounding box of the target robot's projection on the horizontal plane during its movement is calculated.
[0105] In practical applications, a cuboid representing the target robot's outline can be determined based on its length, width, and height. During the target robot's movement along the positive or negative z-axis, if its front faces the x-axis or y-axis, the projection of this cuboid onto the horizontal plane is a rectangle. The two perpendicular sides of this rectangle are parallel to the x-axis and y-axis, respectively, indicating that the projection plane is axially aligned with these axes. Therefore, the angle of attack (AABB) of the target robot's projection onto the horizontal plane during its vertical movement can be calculated. In this scenario, the AABB of the target robot's projection onto the horizontal plane during its vertical movement determines the area occupied by the target robot on the horizontal plane during its movement.
[0106] If the target robot's front end faces neither the x-axis nor the y-axis, then the projection of the robot's rectangular outline onto the horizontal plane is a rectangle. The two perpendicular sides of this rectangle are neither parallel to nor coincide with the x-axis or y-axis, indicating that the projection plane is not axially aligned with the x-axis and y-axis. Therefore, the OBB (On-Board Border) of the target robot's projection onto the horizontal plane during its movement can be calculated. In this scenario, the OBB of the target robot's projection onto the horizontal plane during its vertical movement determines the area occupied by the target robot on the horizontal plane during its movement.
[0107] In one implementation, the area occupied by the target robot on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path. This can be achieved in the following way:
[0108] If the target motion process is determined to be a rotational motion at the target starting point based on the target robot's corresponding path, then a circle is defined on the horizontal plane with the target starting point as the center and the target robot's rotation radius as the radius, based on the target robot's size information and corresponding path. The area within the circle is taken as the area occupied by the target robot on the horizontal plane during the target motion process, where the target starting point is the starting point of the target robot's corresponding path.
[0109] The rotational motion of the target robot at its starting point refers to the rotational motion of the target robot on a horizontal plane with its starting point as the center of rotation. In practical applications, the point on the horizontal plane where the target robot is located is the projection of the target robot's center of motion onto the horizontal plane. In some scenarios, the target robot's center of motion is on the ground, in which case the target robot's center of motion is its point on the horizontal plane. The rotation radius of the target robot can be determined based on the target robot's dimensions and the required safety range during 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.
[0110] Assuming the target robot's rotation radius is r, regardless of the rotation angle or whether the direction is clockwise or counterclockwise, the area occupied by the target robot on the horizontal plane during its rotational motion at the target starting point can be regarded as a circle with the target starting point as the center and a radius of r.
[0111] In one implementation, based on the target robot's size information and corresponding path, the vertical area occupied by the target robot during its movement is calculated, including:
[0112] Based on the height of the target robot and the z-axis coordinates of the target robot's starting and ending points along its path, the range occupied by the target robot on the z-axis during its movement is calculated, thus obtaining the range occupied by the target robot in the vertical direction during its movement.
[0113] In this embodiment, the position of the target robot in three-dimensional space is represented by the position of the target robot's center of motion in three-dimensional space. The z-axis coordinates of the target robot at the target start point and target end point of the corresponding path are also the z-axis coordinates of the target robot's center of motion at the target start point and target end point of the corresponding path.
[0114] In one implementation, taking a first robot as an example, the contour space of the first robot's motion from a first starting point to a first ending point along the positive x-axis can be determined as follows:
[0115] Assuming the coordinates of the first starting point are (x0, y0, z0) and the coordinates of the first ending point are (x1, y1, z1), and the length, width, and height of the first robot are l, w, and h respectively, and the offsets of its geometric center relative to the motion center are Δ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).
[0116] Based on the coordinates of the geometric centers of the first robot at the first starting point and the first ending point, the coordinates of the lower left corner of the projection of the contour space of the first robot along the x-axis onto the horizontal plane can be calculated as: (x0+Δl-l / 2, y0+Δw-w / 2, z0+Δh-h / 2), and the coordinates of the upper right corner as: (x1+Δl+l / 2, y1+Δw+w / 2, z1+Δh+h / 2).
[0117] For example, taking the target robot as the first robot, assume that the length l, width w, and height h of the first robot are 1.6m, 1m, and 1.2m respectively, and the offset of its geometric center relative to the center of motion 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 ending point are (5, 0, 0), where the unit of each coordinate value is meters. The motion process of the first robot is as follows: the first robot moves 5m along the positive x-axis from the first starting point to the first ending point.
[0118] The coordinates of the robot's center of motion at the first starting point are the coordinates of the first starting point (0,0,0). By adding the offset of the geometric center relative to the center of motion, the coordinates of the geometric center of the first robot at the first starting point can be calculated as (0,0,0.6). Similarly, the coordinates of the geometric center of the first robot at the first ending point can be calculated as (5,0,0.6).
[0119] The contour space of the first robot at the first starting point is shown in the left side of Figure 4. The area occupied by the first robot in the horizontal plane at the first starting point (0,0,0) is shown in the right side of Figure 4. The geometric center of the area occupied by the first robot in the horizontal plane at the first starting point is (0,0). The length of the first robot is l = 1.6m and the width is w = 1.0m. The calculated range of this occupied area on the x-axis is [-l / 2,l / 2,] = [-0.8,0.8], and the range 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).
[0120] The first contour space of the first robot's motion from the first starting point to the first ending point along the positive x-axis is shown in the left side of Figure 5, and can be determined in the following way:
[0121] Based on 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), 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) = (-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).
[0122] Based on the coordinates of the geometric centers of the first robot at the first starting point and the first ending point, the coordinates of the lower left corner of the first contour space of the first robot can be calculated as: (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 are: (x1+Δl+l / 2,y1+Δw+w / 2,z1+Δh+h / 2)=(5.8,0.5,1.2).
[0123] Based on the coordinates of the lower left and upper right vertices of the first contour space of the first robot, it can be determined that the coordinates of the lower left vertices of the area occupied by the first robot in the horizontal plane during this movement are (-0.8, -0.5) and the coordinates of the upper right vertices are (5.8, 0.5). As shown on the right side of Figure 5, the rectangular area occupies the interval [-0.8, 5.8] on the x-axis and the interval [-0.5, 0.5] on the y-axis.
[0124] Based on the coordinates of the lower left and upper right corners of the first contour space of the first robot, it can also be determined that the vertical range occupied by the first robot during this movement is [0, 1, 2].
[0125] For example, taking the target robot as the second robot, assume that the length l, width w, and height h of the second robot are 1.6m, 1m, and 1.2m respectively, and the offset of its geometric center relative to the motion center is (Δl, Δw, Δh) = (0, 0, 0.6). The coordinates of the second starting point of the second robot's movement are (3, 1, 5), and the coordinates of the second ending point are (3, 1, 1), where the unit of each coordinate value is meters. The movement process of the second robot is as follows: the second robot moves 4m from the second starting point along the negative z-axis to the second ending point, and the front of the target robot faces the x-axis direction.
[0126] The coordinates of the second robot's center of motion at the second starting point are the coordinates of the second starting point (3,1,5). By adding the offset of the geometric center relative to the center of motion, the coordinates of the second robot's geometric center at the second starting point can be calculated as (3,1,5,6). Similarly, the coordinates of the second robot's geometric center at the second ending point can be calculated as (3,1,1,6).
[0127] The geometric center of the projection of the second robot's contour space onto the horizontal plane at the second starting point is (3,1). The length of the second robot is l = 1.6m and the width is w = 1.0m. The calculated area occupied by this robot is [3-l / 2,3+l / 2,] = [2.2,3.8] on the x-axis and [1-w / 2,1+w / 2,] = [0.5,1.5] on the y-axis. 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).
[0128] The second contour space of the second robot's motion process from the second starting point to the second ending point along the negative z-axis can be determined in the following way:
[0129] Based on 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 are l = 1.6m, w = 1.0m, and h = 1.2m, and the offset of its geometric center relative to the center of motion (Δl, Δw, Δh) = (0, 0, 0.6), the coordinates of the geometric center of the second robot at the second starting point are calculated as (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 calculated as (x1 + Δl, y1 + Δw, z1 + Δh) = (3, 1, 1.6).
[0130] Based on the coordinates of the geometric centers of the second robot at the second starting point and the second ending point, the coordinates of the lower left corner of the second contour space of the second robot can be calculated as: (x1+Δl+l / 2,y1+Δw+w / 2,z1+Δh+h / 2)=(2.2,0.5,1), and the coordinates of the upper right corner as: (x0+Δl-l / 2,y0+Δw-w / 2,z0+Δh-h / 2)=(3.8,1.5,6.2).
[0131] Based on the coordinates of the lower left and upper right vertices of the second contour space of the second robot, it can be determined that the coordinates of the lower left vertices of the area occupied by the second robot on the horizontal plane during this movement are (2.2, 0.5) and the coordinates of the upper right vertices are (3.8, 1.5).
[0132] Based on the coordinates of the lower left and upper right vertices of the second contour space of the second robot, it can also be determined that the vertical range occupied by the second robot during this movement is [1, 6, 2].
[0133] Based on the coordinates of the lower left and upper right vertices of the contour space during the second robot's movement from the second starting point to the second ending point along the negative z-axis, the coordinates of the lower left vertices of the projection plane of the second robot on the horizontal plane during this movement can be determined as (2.2, 0.5), and the coordinates of the upper right vertices are (3.8, 1.5), thus determining the area occupied by the second robot on the horizontal plane during this movement. Based on the coordinates of the lower left and upper right vertices of the contour space during the second robot's movement along the x-axis, the vertical area occupied by the second robot during this movement can also be determined as [1, 6.2].
[0134] In this embodiment of the application, for scenarios where the target motion process is of various different motion processes, the area occupied by the target robot in the horizontal plane and the range occupied in the vertical direction during the target motion process are calculated according to the size information of the target robot and the corresponding path. This can accurately determine the target contour space of the target robot during the target motion process, improve the accuracy of contour space calculation, and thus improve the accuracy of collision detection of the robot.
[0135] Figure 6 is a schematic flowchart of a robot collision detection method provided in an embodiment of this disclosure. As shown in Figure 6, based on any of the foregoing embodiments, the method predicts whether a collision will occur between the first robot and the second robot during their movement, depending on whether their contour spaces overlap. This can be achieved through the following steps:
[0136] S601: Determine whether the vertical occupancy of the first contour space of the first robot's motion process overlaps with that of the second contour space of the second robot's motion process.
[0137] The vertical extent of the contour space refers to the extent of the contour space along the z-axis.
[0138] In this step, the vertical overlap of the first and second contour spaces is determined by whether their respective z-axis occupancy satisfies the non-overlap condition. If the z-axis occupancy of the first and second contour spaces satisfies the non-overlap condition, then the vertical overlap of the two contour spaces is determined. If the z-axis occupancy of the first and second contour spaces does not satisfy the non-overlap condition, then the vertical overlap of the two contour spaces is determined.
[0139] The non-overlapping conditions include: the minimum value of the vertically occupied area of the first contour space is greater than the maximum value of the vertically occupied area of the second contour space; or, the maximum value of the vertically occupied area of the first contour space is less than the minimum value of the vertically occupied area of the second contour space.
[0140] In addition, the step of determining whether the vertical occupancy of any two contour spaces overlaps can also be achieved using any algorithm that compares whether two intervals overlap, which will not be elaborated here.
[0141] In this step, if the judgment result is that the first contour space and the second contour space do not overlap in the vertical direction, then step S602 is executed to determine that the first robot and the second robot will not collide during the movement.
[0142] If the judgment result is that the vertical occupancy range of the first contour space and the second contour space overlaps, then continue to execute S603 to determine whether the horizontal occupancy area of the first contour space and the second contour space overlaps.
[0143] S602: If the vertical occupancy of the first contour space and the second contour space does not overlap, then it is determined that the first robot and the second robot will not collide during the movement.
[0144] If the vertical areas occupied by the first contour space and the second contour space do not overlap, then regardless of whether the horizontal areas occupied by the first contour space and the second contour space overlap, the contour spaces of the first robot and the second robot do not overlap in three-dimensional space. Therefore, it can be determined that the first robot and the second robot will not collide during their movement.
[0145] S603: If the vertical occupancy of the first contour space and the second contour space overlaps, then determine whether the horizontal occupancy of the first contour space and the second contour space overlaps.
[0146] The area occupied by the contour space on the horizontal plane refers to the area occupied by the projection of the contour space onto the horizontal plane.
[0147] For a robot's motion process to be any of the aforementioned rotational motion and various linear motions (i.e., without sub-motion processes), the shape of the region occupied by the robot in the contour space on the horizontal plane during the motion process is a convex structure. Specifically, for a two-dimensional closed geometry, if the line connecting any two points inside the closed geometry is contained within the closed geometry, then the closed geometry is a convex structure.
[0148] For a robot's motion process, which includes multiple motion processes such as rotational motion and various linear motions (i.e., multiple sub-motion processes), the shape of the robot's contour space on the horizontal plane during the motion process may be a convex or concave structure. Specifically, for a two-dimensional closed geometry, if the interior angle of the closed geometry is greater than 180 degrees, then this closed geometry is a concave structure.
[0149] In this step, it is determined whether the shapes of the areas occupied by the first contour space and the second contour space on the horizontal plane overlap. This can be achieved in the following way:
[0150] In an example scenario, the shapes of the areas occupied by the first contour space and the second contour space on the horizontal plane are both convex structures. The area occupied by the first contour space on the horizontal plane is referred to as the first convex structure, and the area occupied by the second contour space on the horizontal plane is referred to as the second convex structure. This step determines whether the shapes of the areas occupied by the first contour space and the second contour space on the horizontal plane overlap. This can be achieved using any method for determining whether the first convex structure and the second convex structure overlap.
[0151] In one alternative implementation, it can be determined whether two convex structures overlap by checking whether any boundary point of one convex structure appears within the other convex structure.
[0152] For example, for convex structures with vertices, such as polygons, it can be determined whether any vertex of any convex structure (such as the first convex structure) appears in another convex structure (such as the second convex structure). If no vertex of the first convex structure is within the second convex structure, then it is determined that the first convex structure and the second convex structure do not overlap.
[0153] For example, if both the first contour space and the second contour space occupying the horizontal plane (the first convex structure) are rectangular, a Cartesian coordinate system can be constructed using the length and width of the first convex structure as the x-axis and y-axis, respectively. The vertices of the second convex structure are represented using coordinates in this Cartesian coordinate system. It is then determined whether the coordinates of each vertex of the second convex structure are within the rectangular region of the first convex structure. If any vertex of the second convex structure is within the rectangular region of the first convex structure, then the first and second convex structures overlap.
[0154] For example, both the first contour space's occupied area in the horizontal plane (first convex structure) and the second contour space's occupied area in the horizontal plane (second convex structure) are circular. If the distance between the centers of the two circles is less than or equal to the sum of their radii, then the two circles are determined to overlap, meaning 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 their radii, then the two circles are determined not to overlap, meaning the occupied areas of the two contour spaces in the horizontal plane do not overlap.
[0155] For example, the first contour space occupies a rectangular area (first convex structure) on the horizontal plane, and the second contour space occupies a circular area (second convex structure) on the horizontal plane. First, it is determined whether the center of the circle is inside the rectangle. If the center is inside the rectangle, it is determined that the circle and the rectangle overlap. If the center is not inside the rectangle, it is further determined whether the shortest distance from the center to the rectangle is greater than the radius of the circle. If the shortest distance from the center to the rectangle is less than or equal to the radius of the circle, it is determined that the circle and the rectangle overlap, meaning that the occupied areas of the two contour spaces on the horizontal plane overlap. If the shortest distance from the center to the rectangle is greater than the radius of the circle, it is determined that the circle and the rectangle do not overlap, meaning that the occupied areas of the two contour spaces on the horizontal plane do not overlap.
[0156] Optionally, to determine whether any point within the first convex structure is within the second convex structure, a ray can be drawn from a point in the first convex structure. The direction of the ray can be arbitrarily chosen, but it must be ensured that the ray does not coincide with an edge of the second convex structure. The number of intersections between the ray and the second convex structure is then calculated. If the number of intersections is odd, the point is within the region of the second convex structure. If the number of intersections is even, the point is not within the region of the second convex structure. Alternatively, determining whether any point within the first convex structure is within the second convex structure can also be achieved using any method for determining whether a point appears within a convex structure; no specific limitation is made here.
[0157] In another alternative implementation, the overlap between the first and second convex structures can be determined by calculating their projections onto the x-axis and y-axis. If the projections onto the x-axis and y-axis overlap, then the first and second convex structures are considered to overlap. If neither their projections onto the x-axis nor their projections onto the y-axis overlap, then the first and second convex structures are considered to be overlapping.
[0158] In an example scenario, the shapes of the areas occupied by the first contour space and the second contour space on the horizontal plane are both concave structures. The area occupied by the first contour space on the horizontal plane is called the first concave structure, and the area occupied by the second contour space on the horizontal plane is called the second concave structure. The first and second concave structures can each be divided into multiple convex structures. If none of the multiple convex structures obtained from the division of the first concave structure overlaps with any of the multiple convex structures obtained from the division of the second concave structure, then the first and second concave structures overlap.
[0159] In an example scenario, the first contour space occupies a concave area on the horizontal plane, while the second contour space occupies a convex area on the horizontal plane. The concave structure of the first contour space on the horizontal plane can be divided into multiple convex structures. If none of the resulting convex structures overlap with the convex structure of the second contour space on the horizontal plane, then the areas occupied by the first and second contour spaces on the horizontal plane do not overlap. If any one of the resulting convex structures overlaps with the convex structure of the second contour space on the horizontal plane, then the areas occupied by the first and second contour spaces on the horizontal plane overlap.
[0160] In this step, if the shapes of the areas occupied by the first contour space and the second contour space on the horizontal plane overlap, then step S604 is executed to determine that the areas occupied by the first contour space and the second contour space on the horizontal plane overlap. If the shapes of the areas occupied by the first contour space and the second contour space on the horizontal plane do not overlap, then step S605 is executed to determine that the areas occupied by the first contour space and the second contour space on the horizontal plane do not overlap.
[0161] S604: If the areas occupied by 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.
[0162] If the first contour space and the second contour space overlap in their horizontal areas, it means that the first contour space and the second contour space overlap in both their vertical and horizontal areas, thus determining that the first robot and the second robot will collide during their movement.
[0163] S605: If the areas occupied by the first contour space and the second contour space on the horizontal plane do not overlap, then it is determined that the first robot and the second robot will not collide during the movement.
[0164] If the first contour space and the second contour space do not overlap in the horizontal area, it means that although the first contour space and the second contour space overlap in the vertical direction, they do not overlap in the horizontal area. Therefore, it can be determined that the first robot and the second robot will not collide during the movement.
[0165] For example, referring to the example in step S3012 above, during the movement of the first robot from the first starting point (0,0,0) along the positive x-axis to the first ending point (5,0,0), its vertical occupied area is [0,1.2]. During the movement of the second robot from the second starting point (3,1,5) along the negative z-axis to the second ending point (3,1,1), its vertical occupied area is [1,6.2]. It can be seen that the maximum value of the vertical occupied area of the first contour space, 1.2, is greater than the minimum value of the vertical occupied area of the second contour space, 1. Therefore, it can be determined that the vertical occupied areas of the first and second contour spaces overlap.
[0166] Since the vertical areas occupied by the first and second contour spaces overlap, we further determine whether their horizontal areas overlap. The coordinates of the lower left vertex of the first contour space's horizontal area are (-0.8, -0.5), and the coordinates of the upper right vertex are (5.8, 0.5). The coordinates of the lower left vertex of the projection of the second contour space onto the horizontal plane are (2.2, 0.5), and the coordinates of the upper right vertex are (3.8, 1.5). Calculations show that the lower left vertex of the second contour space's horizontal area lies on the boundary of the first contour space's horizontal area; therefore, the horizontal areas occupied by the second and first contour spaces overlap.
[0167] Since the first contour space and the second contour space overlap in both the vertical and horizontal areas, it can be determined that the first robot and the second robot in the aforementioned example will collide during their movement.
[0168] In one optional embodiment, when predicting whether two robots will collide, it can be simultaneously determined whether the vertically occupied areas of the two robots' contour spaces overlap, and whether the horizontally occupied areas of the two robots' contour spaces overlap. Based on the determination results, if both the vertically and horizontally occupied areas of the two robots' contour spaces overlap, then it is determined that the two robots will collide. If the vertically occupied areas of the two robots' contour spaces overlap, but the horizontally occupied areas do not overlap; or the vertically occupied areas do not overlap, but the horizontally occupied areas do overlap; or neither the vertically nor the horizontally occupied areas overlap, then it is determined that the two robots will not collide.
[0169] In this embodiment, by first determining whether the vertical occupancy of the first contour space during the movement of the first robot and the second contour space during the movement of the second robot overlaps, and if the vertical occupancy of the first contour space and the second contour space overlaps, it is determined whether the horizontal occupancy of the first contour space and the second contour space overlaps, so as to predict whether the first robot and the second robot will collide in the future movement process, which can improve the efficiency of robot collision detection.
[0170] Figure 7 is a schematic diagram of a robot collision detection device provided in an embodiment of this disclosure. The robot collision detection device 700 includes: a contour space determination unit 701 and a collision detection unit 702.
[0171] 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. The contour space is the three-dimensional space occupied by the robot during the motion process.
[0172] The collision detection unit 702 is used to predict whether the first robot and the second robot will collide during the motion process based on whether there is overlap in the contour space of the first robot and the second robot during the motion process.
[0173] In one implementation, the contour space determination unit 701 is specifically used for:
[0174] Determine the first path of the first robot and the second path of the second robot; 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.
[0175] The target contour space includes: the first contour space of the first robot moving along the first path, and the second contour space of the second robot moving along the second path.
[0176] In one implementation, the contour space determination unit 701 is specifically used for:
[0177] Based on the target robot's dimensions and corresponding path, calculate the area occupied by the target robot in the horizontal plane during its movement, and also calculate the area occupied by the target robot in the vertical direction during its movement.
[0178] The target contour space of the target robot during its target movement is determined based on the occupied area in the horizontal plane and the occupied range in the vertical direction.
[0179] In one implementation, the contour space determination unit 701 is specifically used for:
[0180] If the target robot's movement is determined to be along the x-axis or y-axis on the horizontal plane based on its corresponding path, then the axis-aligned bounding box of the target robot's projection on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path, thus obtaining the area occupied by the target robot on the horizontal plane during its movement.
[0181] In one implementation, the contour space determination unit 701 is specifically used for:
[0182] If the target robot's movement is determined to be along a diagonal line on a horizontal plane based on its corresponding path, then the oriented bounding box of the target robot's projection on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path, thus obtaining the area occupied by the target robot on the horizontal plane during its movement.
[0183] In one implementation, the contour space determination unit 701 is specifically used for:
[0184] If the target robot's movement is determined to be vertical based on its corresponding path, then the bounding box of the target robot's projection on the horizontal plane during its movement is calculated based on the target robot's size information, the corresponding path, and the angle of the target robot during its movement. This yields the area occupied by the target robot on the horizontal plane during its movement.
[0185] In one implementation, the contour space determination unit 701 is specifically used for:
[0186] If the direction of the target robot's front end is determined to be either the x-axis or y-axis based on the angle of the target robot during its movement, then the axis-aligned bounding box of the target robot's projection on the horizontal plane during its movement is calculated based on the target robot's size information and corresponding path.
[0187] If, based on the angles of the target robot during its movement, it is determined that the front of the target robot does not face the x-axis or y-axis, then, based on the size information of the target robot, the oriented bounding box of the target robot's projection on the horizontal plane during its movement is calculated.
[0188] In one implementation, the contour space determination unit 701 is specifically used for:
[0189] If, based on the target robot's corresponding path, it is determined that the target motion process is a rotational motion at the starting point of the corresponding path, then, based on the target robot's size information and the corresponding path, a circle is defined on the horizontal plane with the starting point as the center and the target robot's rotation radius as the radius. The area within the circle is taken as the area occupied by the target robot on the horizontal plane during the target motion process.
[0190] In one implementation, the contour space determination unit 701 is specifically used for:
[0191] Based on the height of the target robot and the z-axis coordinates of the starting and ending points of the corresponding path, the area occupied by the target robot on the z-axis during the target's movement is calculated, thus obtaining the area occupied by the target robot in the vertical direction during the target's movement.
[0192] In one implementation, the collision detection unit 702 is specifically used for:
[0193] Determine whether there is any overlap in the vertical area occupied by the first contour space of the first robot during its movement and the second contour space of the second robot during its movement.
[0194] If the vertical occupancy of the first contour space and the second contour space does not overlap, then it is determined that the first robot and the second robot will not collide during movement.
[0195] The collision detection unit 702 is specifically used for:
[0196] If the vertical areas occupied by the first contour space and the second contour space overlap, then it is determined whether the horizontal areas occupied by the first contour space and the second contour space overlap.
[0197] If the areas occupied by 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 their movement.
[0198] If the areas occupied by the first contour space and the second contour space on the horizontal plane do not overlap, then it is determined that the first robot and the second robot will not collide during movement.
[0199] The apparatus provided in this disclosure can be specifically used to execute the method provided in any of the above embodiments. The specific implementation principles and technical effects are described in the foregoing embodiments and will not be repeated here.
[0200] This embodiment calculates the contour space of the first and second robots during their movement and compares whether there is overlap in the three-dimensional space occupied by the first and second robots during their movement to predict whether a collision will occur between them. This allows for more accurate detection of robot collisions during movement and is applicable to warehousing systems where robots can move vertically up and down, improving the accuracy of robot collision detection and thus increasing robot scheduling efficiency. The contour space refers to the three-dimensional space occupied by the robot during its movement.
[0201] Figure 8 is a schematic diagram of the structure of a warehouse server provided in an embodiment of this disclosure. As shown in Figure 8, the warehouse server 800 includes a memory 801 and a processor 802. The memory 801 stores a computer program, and the processor 802 executes the computer program to implement the method of any of the above embodiments. A communication link exists between the memory 801 and the processor 802. For example, the memory 801 and the processor 802 can communicate via a communication bus 803.
[0202] Optionally, the processor mentioned above can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps in the method embodiments disclosed in this disclosure can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules within the processor.
[0203] This application also provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, implement the methods in any of the above method embodiments.
[0204] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the methods in any of the above method embodiments.
[0205] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0206] The order of the embodiments described above is merely for descriptive purposes and does not represent the superiority or inferiority of the embodiments. Furthermore, some processes described in the above embodiments and accompanying drawings include multiple operations appearing in a specific order; however, it should be clearly understood that these operations may not be executed in the order they appear herein or may be executed in parallel. The sequence numbers are merely used to distinguish different operations, and the sequence numbers themselves do not represent any execution order. Additionally, these processes may include more or fewer operations, and these operations may be executed sequentially or in parallel. It should be noted that the descriptions such as "first," "second," etc., in this document are used to distinguish different messages, devices, modules, etc., and do not represent a sequential order, nor do they limit "first" and "second" to different types. "Multiple" means two or more, unless otherwise explicitly specified.
[0207] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This disclosure is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the following claims.
[0208] It should be understood that this disclosure is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this disclosure is limited only by the appended claims.
[0209] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this disclosure, and are not intended to limit them. Although this disclosure has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this disclosure.
Claims
1. A method for robot collision detection, characterized in that, include: Calculate the contour space of the first robot and the second robot during the motion process, wherein the contour space is the three-dimensional space occupied by the robot during the motion process; Based on whether the contour space of the first robot and the second robot overlaps during the movement, predict whether the first robot and the second robot will collide during the movement.
2. The method according to claim 1, characterized in that, The calculation of the contour space of the first robot and the second robot during the motion process includes: Determine the first path of the first robot and the second path of the second robot; Taking the first robot and the second robot as target robots respectively, calculate the target contour space of the target robot's target motion process along the corresponding path; The target contour space includes: a first contour space of the first robot moving along the first path, and a second contour space of the second robot moving along the second path.
3. The method according to claim 2, characterized in that, The calculation of the target contour space of the target robot's motion along the corresponding path includes: Based on the size information of the target robot and the corresponding path, calculate the area occupied by the target robot in the horizontal plane during the target movement, and based on the size information of the target robot and the corresponding path, calculate the area occupied by the target robot in the vertical direction during the target movement. The target contour space of the target robot during the target movement process is determined based on 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 area occupied by the target robot on the horizontal plane during the target's movement, based on the target robot's size information and corresponding path, includes: If, based on the corresponding path of the target robot, it is determined that the target motion process is a movement along the x-axis or y-axis on the horizontal plane, then, based on the size information of the target robot and the corresponding path, the axis-aligned bounding box of the target robot's projection on the horizontal plane during the target motion process is calculated to obtain the area occupied by 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 area occupied by the target robot on the horizontal plane during the target's movement, based on the target robot's size information and corresponding path, includes: If, based on the corresponding path of the target robot, it is determined that the target motion process is a movement along an oblique line on a horizontal plane, then, based on the size information of the target robot and the corresponding path, the oriented bounding box of the target robot's projection on the horizontal plane during the target motion process is calculated, thereby obtaining the area occupied by the target robot on the horizontal plane during the target motion process.
6. The method according to claim 3, characterized in that, The step of calculating the area occupied by the target robot on the horizontal plane during the target's movement, based on the target robot's size information and corresponding path, includes: If the target motion process is determined to be vertical based on the corresponding path of the target robot, then the bounding box of the target robot's projection on the horizontal plane during the target motion process is calculated based on the target robot's size information, the corresponding path, and the angle of the target robot during the target motion process, thus obtaining the area occupied by the target robot on the horizontal plane during the target motion process.
7. The method according to claim 6, characterized in that, The step of calculating the bounding box of the target robot's projection on the horizontal plane during the target's movement, based on the target robot's size information, the corresponding path, and the target robot's angles during the target's movement, includes: If the target robot's front is determined to be facing the x-axis or y-axis direction based on the angle of the target robot during the target's movement, then the axis-aligned bounding box of the target robot's projection on the horizontal plane during the target's movement is calculated based on the target robot's size information and the corresponding path. If, based on the angle of the target robot during the target's movement, it is determined that the front of the target robot is not facing the x-axis or y-axis, then, based on the size information of the target robot, the directional bounding box of the target robot's projection on the horizontal plane during the target's movement is calculated.
8. The method according to claim 3, characterized in that, The step of calculating the area occupied by the target robot on the horizontal plane during the target's movement, based on the target robot's size information and corresponding path, includes: If, based on the corresponding path of the target robot, it is determined 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 is determined on the horizontal plane with the starting point as the center and the rotation radius of the target robot as the radius. The area within the circle is taken as the area occupied by the target robot on the horizontal plane during the target motion process.
9. The method according to claim 3, characterized in that, The step of calculating the vertical occupancy range of the target robot during its movement, based on the target robot's size information and the corresponding path, includes: Based on the height of the target robot and the z-axis coordinates of the starting and ending points of the corresponding path, the area occupied by the target robot on the z-axis during the target movement is calculated, thus obtaining the vertical area occupied by the target robot during the target movement.
10. The method according to any one of claims 1-9, characterized in that, The step of predicting whether the first robot and the second robot will collide during movement based on whether their contour spaces overlap during movement includes: Determine whether the vertical occupancy of the first contour space of the first robot during the motion process overlaps with that of the second contour space of the second robot during the motion process; If the first contour space and the second contour space do not overlap in the vertical direction, then 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 first contour space and the second contour space overlap in the vertical direction, then determine whether the first contour space and the second contour space overlap in the horizontal plane. If the first contour space and the second contour space overlap in the area occupied by the horizontal plane, it is determined that the first robot and the second robot will collide during the movement. If the first contour space and the second contour space do not overlap in the area occupied by the two contour spaces on the horizontal plane, then it is determined that the first robot and the second robot will not collide during the movement.
12. A device for robot collision detection, characterized in that, include: The contour space determination unit is used to calculate the contour space of the first robot and the second robot during the motion process, wherein the contour space is the three-dimensional space occupied by the robot during the motion process; The collision detection unit is used to predict whether the first robot and the second robot will collide during their movement, based on whether there is overlap in the contour space of the first robot and the second robot during their movement.
13. A warehouse server, characterized in that, include: Memory, processor, and transceiver; The memory stores computer-executed instructions; The processor executes computer execution instructions stored in the memory to implement the method as described in any one of claims 1-11.
14. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by a processor, are used to implement the method as described in any one of claims 1-11.
15. A computer program product, characterized in that, Includes a computer program that, when executed by a processor, implements the method as described in any one of claims 1-11.