Mechanical arm collision detection method and device and mechanical arm

CN122231905BActive Publication Date: 2026-09-29上海云骥智行智能科技有限公司
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202610686830.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-05-19
Publication Date
2026-09-29
Estimated Expiration
2046-05-19

AI Technical Summary

Technical Problem

[0003]然而,静态几何模型对复杂曲面的贴合度有限,易造成检测边界保守而影响作业空间;基于点云数据的实时检测虽可提高几何表达精度,但数据处理负载较高

Benefits of technology

[0018]本申请实施例的机械臂碰撞检测方法,通过在机械臂的本体处生成第一虚拟几何体集合,可对机械臂的本体进行虚拟几何体离散化建模。通过对于第一虚拟几何体集合中的第i个第一虚拟几何体,根据第i个第一虚拟几何体的速度、所在位置处的几何尺寸,可综合确定第i个第一虚拟几何体的尺寸,即,机械臂的本体的速度因素与几何尺寸因素共同引入碰撞检测边界的确定过程,使不同连杆位置、不同关节区域以及不同运动状态下的机械臂的本体均采用与实际风险程度相适应的第一虚拟几何体的尺寸参与碰撞判断,从而在复杂曲面场景中兼顾碰撞检测精度、碰撞检测效率和作业灵活性。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122231905B_ABST
    Figure CN122231905B_ABST
Patent Text Reader

Abstract

The application provides a mechanical arm collision detection method and device and a mechanical arm, and relates to the field of mechanical arm control. The method comprises: generating a first virtual geometric body set at the body of the mechanical arm; the body of the mechanical arm comprises a connecting rod of the mechanical arm and a joint connected by any number of connecting rods; for an i-th first virtual geometric body in the first virtual geometric body set, determining the size of the i-th first virtual geometric body according to the speed of the i-th first virtual geometric body and the geometric size at the position thereof; the size of the i-th first virtual geometric body is positively correlated with the speed of the i-th first virtual geometric body and the geometric size at the position thereof; performing collision detection according to the size of the i-th first virtual geometric body; i∈[1, n], n represents the number of first virtual geometric bodies in the first virtual geometric body set, and n is an integer greater than or equal to 1. The method can improve the collision detection accuracy and efficiency of the mechanical arm.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of robotic arm control, and in particular to a method, apparatus and robotic arm for detecting collisions in a robotic arm. Background Technology

[0002] Collision avoidance detection for robotic arms in complex curved environments typically employs static geometric modeling of the robotic arm and the object to be operated, or real-time distance detection based on point cloud data of the object to be operated, to ensure the movement safety of the robotic arm during operation.

[0003] However, static geometric models have limited fit to complex surfaces, which can lead to conservative detection boundaries and affect the working space; while real-time detection based on point cloud data can improve the accuracy of geometric representation, it has a high data processing load.

[0004] Therefore, how to balance the accuracy and efficiency of collision detection in complex curved surface scenarios has become a technical problem that needs to be solved. Summary of the Invention

[0005] This application provides a method, apparatus, and robotic arm for collision detection, which improves the accuracy and efficiency of collision detection in robotic arms.

[0006] In a first aspect, embodiments of this application provide a collision detection method for a robotic arm, the method comprising: generating a first set of virtual geometric bodies at the body of the robotic arm; the body of the robotic arm includes links of the robotic arm and joints connecting any number of links; for the i-th first virtual geometric body in the first set of virtual geometric bodies, determining the size of the i-th first virtual geometric body based on the velocity and geometric dimensions at its location; the size of the i-th first virtual geometric body is positively correlated with both the velocity and geometric dimensions at its location; performing collision detection based on the size of the i-th first virtual geometric body; i∈[1,n], where n represents the number of first virtual geometric bodies in the first set of virtual geometric bodies, and n is an integer greater than or equal to 1.

[0007] In one possible embodiment, after determining the size of the i-th first virtual geometry, the method further includes: performing a nearest neighbor search on the center point of the i-th first virtual geometry based on a branch tree index to obtain the first target point cloud data that is closest to the i-th first virtual geometry, wherein the branch tree index is constructed based on the point cloud data of the object to be manipulated by the robotic arm; and performing collision detection based on the size of the i-th first virtual geometry includes: determining that a first collision event has occurred in the robotic arm if the distance between the i-th first virtual geometry and the first target point cloud data is less than the size of the i-th first virtual geometry.

[0008] In one possible embodiment, the method further includes: generating a second set of virtual geometries at the end of the robotic arm; performing a nearest neighbor search on the center point of the j-th second virtual geometry in the second set of virtual geometries based on a branch tree index to obtain the second target point cloud data closest to the j-th second virtual geometry; determining that a second collision event has occurred if the operation currently performed by the robotic arm is a non-contact operation and the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry; determining that no second collision event has occurred if the operation currently performed by the robotic arm is a contact operation and the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry; j∈[1,m], where m represents the number of second virtual geometries in the second set of virtual geometries, and m is an integer greater than or equal to 1.

[0009] In one possible embodiment, the method further includes: if a first collision event is determined to occur in the robotic arm, controlling the robotic arm to stop the currently performed operation; if a second collision event is determined to occur in the robotic arm, controlling the robotic arm to reduce the speed of the currently performed operation or replan the path of the currently performed operation.

[0010] In one possible embodiment, the method further includes: fitting a normal vector of the second target point cloud data based on neighborhood point cloud data of the second target point cloud data, and determining a virtual repulsion force based on the normal vector and the distance between the j-th second virtual geometry and the second target point cloud data; the virtual repulsion force is negatively correlated with the distance between the j-th second virtual geometry and the second target point cloud data, and the virtual repulsion force is used to control the end effector of the robotic arm to contact the object to be operated.

[0011] In one possible embodiment, the size of the i-th first virtual geometry is also positively correlated with the communication delay and the distance coefficient, where the distance coefficient represents the degree to which the speed of the first virtual geometry affects the size of the first virtual geometry.

[0012] In one possible embodiment, the dimensions of the i-th first virtual geometry and / or the j-th second virtual geometry are transmitted through a rotational attitude field; the rotational attitude field is a field in a quadruple representing the rotational attitude of the robotic arm, and the quadruple represents the pose of the robotic arm.

[0013] In one possible embodiment, there are multiple robotic arms, and the first and second sets of virtual geometry of any one robotic arm serve as obstacles for the motion constraints of the other robotic arms.

[0014] Secondly, embodiments of this application provide a robotic arm collision detection device, the device comprising: a generation module, used to generate a first set of virtual geometries at the body of the robotic arm; the body of the robotic arm includes links of the robotic arm and joints connecting any number of links; a size determination module, used to determine the size of the i-th first virtual geometries in the first set of virtual geometries based on the speed and geometric dimensions at the location of the i-th first virtual geometries; the size of the i-th first virtual geometries is positively correlated with both the speed and geometric dimensions at the location of the i-th first virtual geometries; and a collision detection module, used to perform collision detection based on the size of the i-th first virtual geometries; i∈[1,n], n represents the number of first virtual geometries in the first set of virtual geometries, and n is an integer greater than or equal to 1.

[0015] Thirdly, embodiments of this application provide a robotic arm, comprising: a body including a link and joints connected to any plurality of links; a processor and a memory communicatively connected to the processor, wherein the memory stores computer-executable instructions; the processor executes the computer-executable instructions stored in the memory to implement the method of any one of the first aspects.

[0016] Fourthly, this application provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the method as described in any of the first aspects.

[0017] Fifthly, this application provides a computer program product, including a computer program that, when executed by a processor, implements the method of any one of the first aspects.

[0018] The robotic arm collision detection method of this application generates a first set of virtual geometric bodies on the robotic arm body, which can perform virtual geometric discretization modeling on the robotic arm body. For the i-th virtual geometric body in the first set of virtual geometric bodies, the size of the i-th virtual geometric body can be comprehensively determined based on its velocity and geometric dimensions at its location. That is, the velocity factor and geometric dimension factor of the robotic arm body are jointly introduced into the collision detection boundary determination process, so that the robotic arm body at different link positions, different joint regions, and different motion states all use the size of the first virtual geometric body adapted to the actual risk level to participate in collision judgment, thereby balancing collision detection accuracy, collision detection efficiency, and operational flexibility in complex curved surface scenes.

[0019] Specifically, this embodiment can expand the size of the first virtual geometry corresponding to the robot arm's body when the body moves at high speed, reflecting the potential collision space caused by the robot arm's inertia and braking distance in advance, thus reducing the risk of missed collision detection. Furthermore, this embodiment can also reduce the size of the first geometry corresponding to the robot arm's body when the body operates at low speed, thereby reducing the collision detection boundary, decreasing false collision detection alarms, and freeing up usable working space. Moreover, this embodiment can also perform differentiated modeling based on the actual structural dimensions of the links and joints, avoiding insufficient protection for large parts of the body or excessive restriction for small parts due to a uniform threshold. Attached Figure Description

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

[0021] Figure 1 This is a schematic diagram of a robotic arm according to an embodiment of this application;

[0022] Figure 2 This is a flowchart of the robotic arm collision detection method according to an embodiment of this application;

[0023] Figure 3 This is a flowchart of a robotic arm collision detection method according to another embodiment of this application;

[0024] Figure 4 This is a flowchart of a robotic arm collision detection method according to another embodiment of this application;

[0025] Figure 5 This is a flowchart of a robotic arm collision detection method according to another embodiment of this application;

[0026] Figure 6 This is a schematic diagram of the structure of the robotic arm collision detection device according to an embodiment of this application.

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

[0028] 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 numbers 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 application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.

[0029] Figure 1 This is a schematic diagram of a robotic arm according to an embodiment of this application.

[0030] The robotic arm consists of a body. The body includes links and joints. Figure 1 In the example, the robotic arm also includes a robotic arm base 4, links including links 11 to 13, and joints including joints 21 to 24. Joint 21 is used to connect the robotic arm base 4 and links 11.

[0031] like Figure 1 As shown, in one possible embodiment, the robotic arm further includes an end effector 3, which can be a tool for manipulating the object to be manipulated. Figure 1 In the example, the robotic arm is used to perform cleaning operations on the object to be operated on (i.e., the vehicle). In this case, the end effector may include cleaning tools such as cleaning brush heads, spray nozzles, etc.

[0032] In one possible embodiment, the robotic arm also includes sensors. Specifically, these may include sensors that scan the object to be manipulated to obtain point cloud data of the object.

[0033] In this embodiment of the application, the robotic arm further includes a processor and a memory, wherein the memory stores code, and the processor runs the code stored in the memory to perform the method of any embodiment of the application.

[0034] The processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. A general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this invention can be directly manifested as execution by a hardware processor, or execution by a combination of hardware and software modules within the processor.

[0035] The memory may include high-speed RAM, and may also include non-volatile storage (NVM), such as at least one disk storage.

[0036] In one possible embodiment, there are multiple robotic arms. These multiple robotic arms constitute a multi-robotic arm system. In this system, the first and second virtual geometries of each robotic arm are injected as dynamic obstacles into the detection threads of other robotic arms. Specifically, the spatial occupancy information of each robotic arm is updated in real time through a shared memory area to ensure that other robotic arms treat them as obstacles during path planning. The branch tree index below implements parallel collision detection through a partitioned indexing mechanism, and the avoidance strategy can also be dynamically adjusted according to job priority (e.g., the master robotic arm takes precedence over slave robotic arms).

[0037] The following examples use vehicles as the objects operated on by robotic arms. Robotic arm collision detection can be applied to vehicle cleaning, painting, parts assembly, precision inspection, and other situations requiring the robotic arm to operate close to the vehicle surface. In these scenarios, the robotic arm typically consists of multiple links and joints connected in series. Its end effector includes cleaning brushes, spray nozzles, detection probes, or gripping tools, and the robotic arm can move along a predetermined path. Meanwhile, the robotic arm's operating environment often contains complex curved surfaces, such as vehicle body panels, rearview mirrors, wheel arches, door handles, spoiler structures, irregularly shaped shell edges, or the surfaces of industrial parts with holes and grooves. These areas not only have large curvature variations but also complex relationships between local protrusions, depressions, and occlusions. To ensure the continuity of robotic arm operations and vehicle safety, the robotic arm typically needs to possess capabilities such as environmental perception, robotic arm pose acquisition, motion state detection, and collision detection and handling.

[0038] The collision avoidance detection of robotic arms in related technologies mainly relies on static geometric modeling of the robotic arm and the object to be operated, or real-time distance detection based on point cloud data of the object to be operated.

[0039] When using static geometric modeling, a 3D model of the robotic arm and the working environment, including the object to be operated, is typically pre-built. Simplified geometry, such as bounding boxes, is used to approximate the links, joints, object to be operated, and obstacles of the robotic arm. Then, during the robotic arm's movement, the distance or intersection relationships between these geometric shapes are calculated to determine if there is a collision risk. The advantage of this approach is its simplicity. However, when the object to be operated has a complex curved surface, the simplified geometry of the robotic arm cannot accurately conform to the actual contour of the object, especially at locations such as rearview mirrors, wheel hub edges, curved surface transitions, and narrow slits. Often, a safety margin needs to be artificially increased, leading to a collision risk assessment before the robotic arm has actually approached the object, thus compressing the actual usable working space of the robotic arm and reducing its surface-fitting capabilities.

[0040] Another approach involves acquiring point cloud data of the object to be manipulated using visual sensors, laser scanning devices, or depth sensing equipment, and then combining this with distance calculations for real-time collision detection. While this method more closely approximates the real-world geometry in its representation of the environment, the large volume of point cloud data, high update frequency, and the need for continuous distance calculations during real-time processing place a heavy computational burden on the robotic arm, especially prone to response lag under high-frequency control.

[0041] Furthermore, the relevant technologies primarily rely on the instantaneous distance between the robotic arm and the object at the current moment for collision detection, failing to adequately consider the robotic arm's speed and actual inertia. When the robotic arm is operating at high speed, even if the current distance has not exceeded the limit, a collision may occur at a later time due to control cycles, execution delays, or deceleration distances. Moreover, these technologies often employ a uniform threshold for collision detection, logically treating the robotic arm's links, joints, and end effector equally. This makes it difficult to adapt to scenarios where the robotic arm needs to be close enough to the object to allow for idle operation while simultaneously avoiding collisions between the links, joints, and the robotic arm itself. The result is that, on the one hand, the robotic arm is prone to overly conservative collision detection false alarms, affecting normal surface-fitting operations; on the other hand, it may misjudge collisions in high-speed or confined environments, making it difficult to balance collision detection accuracy, robotic arm efficiency, and flexibility.

[0042] Therefore, how to balance the accuracy and efficiency of collision detection in complex curved surface scenarios has become an urgent technical problem to be solved.

[0043] To address the aforementioned issues, this application proposes a method, apparatus, and robotic arm for collision detection. Specifically, a first set of virtual geometric shapes is generated at the robotic arm body, including the links and joints connecting any number of links, allowing the spatial occupancy of the robotic arm body to be expressed and tracked in the form of virtual geometric shapes. Then, for the i-th virtual geometric shape in the first set, its size is determined by combining its velocity and the geometric dimensions at its location, ensuring that this size is positively correlated with both the velocity and the geometric dimensions at its location. This allows the collision detection boundary of the robotic arm to be adjusted accordingly when the motion state changes or structural dimensions differ. Subsequently, collision detection is performed based on the size of the i-th virtual geometric shape, enabling the robotic arm body at different locations and in different motion states to participate in collision assessment in a manner more consistent with actual risk levels.

[0044] Therefore, by dynamically determining the dimensions of the virtual geometry at the positions of links and joints and performing collision detection based on this, the collision detection accuracy of the robotic arm in complex curved surface scenarios can be improved. Furthermore, this method eliminates the need for distance calculations based on every data point in the complete point cloud data of the robotic arm, resulting in higher real-time collision detection and a lower computational load, thus improving collision detection efficiency. This lays the foundation for more stable and safer robotic arm operation control in the future.

[0045] Figure 2 This is a flowchart of a robotic arm collision detection method according to an embodiment of this application. The robotic arm collision detection method according to an embodiment of this application can be derived from... Figure 1 The execution of the robotic arm, or more specifically, the execution of the robotic arm's processor.

[0046] like Figure 2 As shown, the robotic arm collision detection method of this application embodiment includes steps S201 to S203. S201: Generate a first set of virtual geometry at the body of the robotic arm.

[0047] The main body of the robotic arm includes the links and the joints where any number of links connect. Specifically, for example... Figure 1 As shown, the main body of the robotic arm refers to the main structural area of ​​the robotic arm, excluding the functional area where the end effector contacts the object to be manipulated. This area consists of multiple rigid links and rotary or locating joints connecting the links. The links correspond to the locations of the various segments of the robotic arm, while the joints correspond to the positions where two or more links connect, rotate, swing, or undergo combined movements.

[0048] The first set of virtual geometry refers to a group of geometric proxies constructed to characterize the actual occupancy of the robotic arm in three-dimensional space. This set of geometric proxies can be spheres, capsules, local bounding boxes, voxel units, etc. In this embodiment, each first virtual geometry in the first set of virtual geometry is a sphere, which is convenient for distance calculation and spatial search, for illustration.

[0049] In one possible embodiment, generating the first set of virtual geometries may include: receiving the structural parameters and current pose parameters of the robotic arm; for links, based on a preset kinematic model of the robotic arm, discretizing each link along its length into multiple sampling positions, and placing a corresponding first virtual geometry at the center of each sampling position; for joints, establishing a first virtual geometry covering the joint shape and its motion sweep range at the center of the joint rotation axis, the center of the joint shell contour, or the center of the joint rotation envelope region. Thus, multiple first virtual geometries together constitute a discrete representation of the spatial occupancy of the robotic arm body, so that collision detection no longer directly relies on the complete and complex mesh model of the body, thereby reducing the real-time computational burden.

[0050] The structural parameters include the length of each link, cross-sectional dimensions, joint mounting offset, joint limit angles, and the assembly relationship of the links and joints in the robot arm coordinate system. The current pose parameters include the coordinates of the links obtained from the forward kinematics calculation of the joint rotation angles.

[0051] For example, the generation of the first set of virtual geometry can be completed offline based on the 3D model of the robotic arm during the initialization phase of the robotic arm, or it can be automatically generated according to the model parameters of the robotic arm after it is powered on.

[0052] Specifically, in one possible embodiment, the robotic arm can first import its CAD (Computer-Aided Design) model or URDF (Unified Robot Description Format) description file, extract the outer contour dimensions of each link and joint, and then use a bounding sphere fitting algorithm to obtain the basic sphere radius at the link and joint. Multiple spheres are then evenly distributed along the axial direction of the link according to coverage requirements, ensuring appropriate overlap between any adjacent spheres to avoid collision detection blind spots. For links with significant cross-sectional changes, a non-uniform distribution method can be used, placing larger spheres in coarse areas and smaller spheres in slender areas. It should be noted that if the robotic arm body also includes joint housings, reducer covers, or exposed flanges and other locally protruding parts, the robotic arm can generate a separate first virtual geometry to compensate for the aforementioned complex shapes.

[0053] In this embodiment, by generating a first set of virtual geometries at the robotic arm body, the spatial positioning of the robotic arm's main body can be transformed into a discrete geometric structure that is easy to calculate, providing a basis for subsequent calculation of the dimensions of the first virtual geometries. Because the actual robotic arm body has a complex shape, directly using high-precision meshes (such as meshes) and point cloud data for point-by-point collision detection incurs significant computational overhead, which is not conducive to high-frequency real-time control of the robotic arm. However, by using discrete virtual geometries, collision detection can be performed quickly on each of the first virtual geometries while ensuring the integrity of the robotic arm's main body coverage, improving the robotic arm's collision detection response capability. This solves the problem that static geometric models in complex curved surface scenes struggle to balance collision detection accuracy and efficiency.

[0054] S202. For the i-th first virtual geometry in the first set of virtual geometry, determine the size of the i-th first virtual geometry based on its velocity and the geometric dimensions at its location.

[0055] The size of the i-th first virtual geometry is positively correlated with the velocity of the i-th first virtual geometry and the geometric size at its location.

[0056] i∈[1,n], where n represents the number of first virtual geometries in the first set of virtual geometries, and n is an integer greater than or equal to 1. That is, the i-th first virtual geometry represents any geometric unit to be processed in the first set of virtual geometries.

[0057] The velocity of the i-th virtual geometric object refers to the speed at which the i-th virtual geometric object moves with the robotic arm. The velocity of the i-th virtual geometric object can be calculated from the linear velocity of the center point of the i-th virtual geometric object and the projected velocity of the angular velocity of the link it is located on, or it can be represented by a composite velocity that takes into account the combined effects of linear velocity and angular velocity.

[0058] The geometric dimension at the location of the i-th first virtual geometry refers to the actual dimension of the robot body corresponding to the i-th first virtual geometry, which can be characterized by parameters such as the diameter, radius, and side length of the local cross-section of the corresponding body.

[0059] In one possible embodiment, the robotic arm acquires real-time data such as angles, angular velocities, and angular accelerations of each joint via encoders, servo drive feedback, or motion control buses. Then, it calculates the linear velocity vector of the center point of the i-th virtual geometry based on forward kinematics and the Jacobian matrix. If a virtual geometry is located near a joint, its velocity can be calculated by combining the tangential velocity caused by the joint's rotation with the coupled motion of the upstream joint. If a virtual geometry is located in the middle of a link, its velocity can be calculated based on the rigid body motion relationship of the corresponding link. The robotic arm also reads the geometric dimensions at the location of the virtual geometry; the geometric dimensions at the location of the i-th virtual geometry can be understood as the actual size of the i-th virtual geometry. Subsequently, the robotic arm determines the size of the i-th virtual geometry based on its velocity and the geometric dimensions at its location; the size of the i-th virtual geometry can be understood as its dynamic size.

[0060] In one possible embodiment, the size of the i-th first virtual geometry can be obtained by superimposing the product of the velocity and its coefficient of the i-th first virtual geometry and the geometric dimension of its location. The coefficient of the velocity of the i-th first virtual geometry is used to represent the degree of influence of the velocity of the first virtual geometry on its size. The size of the i-th first virtual geometry is positively correlated with both its velocity and the geometric dimension of its location.

[0061] In another possible embodiment, the size of the i-th first virtual geometry can also be determined using a piecewise monotonic function or a lookup table mapping method. For example, when the speed is within a first threshold range, a smaller slope is used to calculate the size of the i-th first virtual geometry to avoid being overly conservative and preventing the robotic arm from approaching the surface of the object to be manipulated. When the speed is within a second threshold range, a larger slope or a squared-term growth method is used to calculate the size of the i-th first virtual geometry to increase the size of the first virtual geometry used for collision detection, thereby increasing the safety boundary and covering the potential collision risks caused by the robotic arm's inertia, control lag, and braking distance. The first threshold range is smaller than the second threshold range.

[0062] Related technologies often use a uniform threshold for collision detection across the entire robotic arm, failing to distinguish between large joints and slender links, and also failing to reflect the increasing trend of collision risk under high-speed motion. In this embodiment, by introducing the velocity and geometric dimensions of the i-th virtual geometry at its location, the size of the i-th virtual geometry is comprehensively determined. This allows the collision detection boundary (i.e., the size of the i-th virtual geometry) to adaptively adjust according to the differences in the body parts and changes in motion state, achieving a collision risk expression of "enlarging when fast, shrinking when slow, enlarging large structures, and shrinking small structures." This not only covers areas where the robotic arm may collide in advance during high-speed movement, but also avoids overly conservative collision detection caused by uniformly enlarging the size of all robotic arms in confined environments, improving the usable working space of the robotic arm near complex curved surfaces of the object to be manipulated.

[0063] S203. Perform collision detection based on the size of the i-th first virtual geometry.

[0064] Collision detection refers to using the dimensions of the i-th virtual geometry as the basis for collision detection to determine whether there is a risk of contact, intersection, or proximity to the working environment of the robotic arm that is less than a safety threshold.

[0065] For example, collision detection can be performed sequentially for each i-th first virtual geometry, or it can be performed in parallel.

[0066] In one possible embodiment, the robotic arm can simultaneously acquire the geometric data of the object to be manipulated and the pose data of the robotic arm itself during the collision detection cycle. The geometric data of the object to be manipulated can be derived from a pre-established 3D model or point cloud data, etc. The robotic arm can construct the geometric data of the object to be manipulated into a spatial index structure, such as a branching tree, a KD (k-dimensional) tree, a voxel grid, or a hierarchical bounding volume tree, in order to quickly query obstacles near the i-th first virtual geometry.

[0067] Specifically, taking a sphere as the first virtual geometric object as an example, the robotic arm can denote the center point of the i-th virtual geometric object as C_i and the size of the i-th virtual geometric object as R_i. The robotic arm performs a neighborhood search within the spatial index structure corresponding to the geometric data of the object to be manipulated, with C_i as the center and R_i as the search radius, to obtain all data points within that radius. If there exists any data point whose minimum distance D_i from C_i is less than or equal to R_i, then it can be determined that the i-th virtual geometric object has collided.

[0068] In one possible implementation, collision detection is not performed statically all at once, but rather cyclically in sync with the robotic arm's control cycle. For example, the robotic arm updates the state of each joint, the center point, velocity, and size of each first virtual geometry every 5 to 20 milliseconds, and performs collision detection again accordingly.

[0069] The robotic arm collision detection method of this application generates a first set of virtual geometric bodies on the robotic arm body, which can perform virtual geometric discretization modeling on the robotic arm body. For the i-th virtual geometric body in the first set of virtual geometric bodies, the size of the i-th virtual geometric body can be comprehensively determined based on its velocity and geometric dimensions at its location. That is, the velocity factor and geometric dimension factor of the robotic arm body are jointly introduced into the collision detection boundary determination process, so that the robotic arm body at different link positions, different joint regions, and different motion states all use the size of the first virtual geometric body adapted to the actual risk level to participate in collision judgment, thereby balancing collision detection accuracy, collision detection efficiency, and operational flexibility in complex curved surface scenes.

[0070] Specifically, this embodiment can expand the size of the first virtual geometry corresponding to the robot arm's body when the body moves at high speed, reflecting the potential collision space caused by the robot arm's inertia and braking distance in advance, thus reducing the risk of missed collision detection. Furthermore, this embodiment can also reduce the size of the first geometry corresponding to the robot arm's body when the body operates at low speed, thereby reducing the collision detection boundary, decreasing false collision detection alarms, and freeing up usable working space. Moreover, this embodiment can also perform differentiated modeling based on the actual structural dimensions of the links and joints, avoiding insufficient protection for large parts of the body or excessive restriction for small parts due to a uniform threshold.

[0071] It should be understood that as long as the first virtual geometry of the robotic arm body can be generated, the size of the first virtual geometry can be dynamically determined based on the speed and the geometric dimensions at its location, and collision detection can be performed based on the size of the first virtual geometry, the technical objectives of the embodiments of this application can be achieved.

[0072] Figure 3This is a flowchart illustrating a robotic arm collision detection method according to another embodiment of this application. Figure 3 As shown, in one possible embodiment, after step S202, the robotic arm collision detection method further includes step S204.

[0073] S204. Based on the branch tree index, perform a nearest neighbor search on the center point of the i-th first virtual geometry to obtain the first target point cloud data that is closest to the i-th first virtual geometry.

[0074] The branch tree index is constructed based on the point cloud data of the object to be manipulated by the robotic arm. The branch tree index can be constructed using an octree index or a KD-tree index. Taking the point cloud of the object to be manipulated as input, the point cloud is spatially partitioned and a hierarchical relationship between nodes is established to obtain the branch tree index. The branch tree index facilitates the rapid location of query points for collision detection, thus enabling rapid collision detection. Specifically, the branch tree index (such as an octree or KD-tree) constructs a hierarchical node structure by recursively partitioning the point cloud data of the object to be manipulated according to spatial dimensions. When the center point of the first virtual geometry of the robotic arm is used as the query point, the branch tree index quickly locates the first target point cloud data by filtering layer by layer, avoiding a global traversal search of the point cloud data of the object to be manipulated. This reduces the query complexity of the point cloud data.

[0075] For example, taking a vehicle as the object to be manipulated, the vehicle's point cloud data can be divided into multiple local regions (such as the hood, doors, and roof), with each region independently constructed with an octree index. The robotic arm performs octree queries only on the local regions related to its current movement path, rather than a global search. For instance, when the robotic arm moves to the door region, it only queries the local octree index corresponding to the door, avoiding redundant calculations on irrelevant regions such as the hood and roof. Furthermore, when the vehicle's point cloud data changes dynamically (e.g., when rearview mirrors fold), only the indexes of the affected local regions are updated, avoiding global reconstruction.

[0076] The coordinates of the center point of the i-th virtual geometry are bound to the current pose of the corresponding body of the robotic arm, which is used to represent the reference position of the i-th virtual geometry in space. During nearest neighbor search, the robotic arm uses the center point of the i-th virtual geometry as the query point, filters layer by layer in the branch tree index, and uses the data point with the closest distance between the center point of the i-th virtual geometry and the data point in the branch tree index as the first target point cloud data.

[0077] like Figure 3 As shown, step S203 includes: step S2031.

[0078] S2031. If the distance between the i-th first virtual geometry and the first target point cloud data is less than the size of the i-th first virtual geometry, it is determined that the robotic arm has experienced a first collision event.

[0079] In one possible embodiment, the first target point cloud data may represent the single point cloud point (i.e., the closest point) that is closest to the center point of the i-th first virtual geometry. The distance between the i-th first virtual geometry and the first target point cloud data is used to compare with the size of the i-th first virtual geometry to determine whether there is interference, i.e., whether a collision occurs, between the body of the robotic arm and the object to be operated. In this embodiment, the situation where a collision occurs between the body of the robotic arm and the object to be operated is referred to as a first collision event.

[0080] In this embodiment, the complexity of collision detection based on the point cloud data of the object to be manipulated is kept low by using a branch tree index. This ensures that the nearest neighbor calculation from the center point of the i-th virtual geometry to the first target point cloud data meets real-time requirements. Furthermore, by associating the distance threshold for collision detection with the size of the first virtual geometry, the collision detection is aligned with the spatial occupancy of the robotic arm, thereby improving the accuracy and safety of collision detection in complex curved surface scenarios. This reduces the computational load of collision detection in large-scale point cloud data scenarios, improving the real-time performance and efficiency of collision detection.

[0081] Figure 4 This is a flowchart illustrating a robotic arm collision detection method according to another embodiment of this application. Figure 4 As shown, in one possible embodiment, the robotic arm collision detection method further includes steps S205 to S208. Step S205 can be performed before or after any one of steps S201 to S203. Steps S206 to S208 are performed sequentially after step S205.

[0082] S205. Generate a second set of virtual geometry at the end of the robotic arm.

[0083] The second set of virtual geometry is used to characterize the spatial occupancy state of the end of the robotic arm. The method of generating the second set of virtual geometry at the end of the robotic arm is similar to the method of generating the first set of virtual geometry at the body of the robotic arm in the above embodiment, and will not be described again here.

[0084] S206. Based on the branch tree index, perform a nearest neighbor search on the center point of the j-th second virtual geometry in the second virtual geometry set to obtain the second target point cloud data that is closest to the j-th second virtual geometry.

[0085] The nearest neighbor search for the center point of the j-th second virtual geometry in the second virtual geometry set based on the branch tree index is similar to the nearest neighbor search for the center point of the i-th first virtual geometry to obtain the nearest first target point cloud data, and will not be repeated here.

[0086] S207. If the operation currently being performed by the robotic arm is a non-contact operation and the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry, then it is determined that a second collision event has occurred with the robotic arm.

[0087] Unlike the first collision event, which indicates that the body of the robotic arm collides with the object to be operated, the second collision event indicates that the end effector of the robotic arm collides with the object to be operated.

[0088] S208. If the operation currently performed by the robotic arm is a contact operation and the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry, it is determined that the robotic arm has not experienced a second collision event.

[0089] j∈[1, m], where m represents the number of second virtual geometries in the set of second virtual geometries, and m is an integer greater than or equal to 1.

[0090] For example, non-contact operations include spraying, rinsing, or remote inspection. Contact operations include brushing, polishing, or wiping.

[0091] In this embodiment, based on the robot arm's operational intent, the robot arm's body and end effector are distinguished. This is to adapt to the fact that during normal operation, the robot arm's body must remain in a state of not contacting or colliding with the object to be operated. Meanwhile, the robot arm's end effector can accurately distinguish whether the end effector is contacting or colliding with the object to be operated and whether this is abnormal, based on whether the currently performed operation is a contact operation. This improves the accuracy and operational adaptability of the robot arm's collision detection and reduces the false alarm rate and false negative rate of collision detection in complex curved surface scenarios.

[0092] In one possible embodiment, the robotic arm can also acquire encoder data from its joints in real time, and obtain the position of the center point of each virtual geometry (unless otherwise specified, virtual geometry refers to the first and second virtual geometries) in the world coordinate system through forward kinematics calculation. Next, the robotic arm can uniformly map the point cloud data of the object to be manipulated to the robotic arm coordinate system based on a calibration matrix to eliminate coordinate system differences. The world coordinate system and the robotic arm coordinate system have been pre-registered and aligned, and their coordinate references are consistent, so they can be considered as the same coordinate system.

[0093] Combination Figure 3and Figure 4 As shown, in one possible embodiment, the robotic arm collision detection method further includes: Figure 3 Step S209 and Figure 4 Step S210 is executed after step S2031. Step S209 is executed after step S2031, and step S210 is executed after step S207.

[0094] S209. If it is determined that the robotic arm has experienced a first collision event, control the robotic arm to stop the currently executed operation.

[0095] Stopping the current operation performed by the robotic arm means that the robotic arm outputs a stop command to the actuators of each joint and link, so that the robotic arm body enters a safe holding state in order to prevent the collision between the robotic arm body and the object being operated from escalating further.

[0096] S210. If a second collision event is determined to occur to the robotic arm, control the robotic arm to reduce the speed of the currently executed operation or replan the path of the currently executed operation.

[0097] Reducing the speed of the current operation performed by the robotic arm refers to attenuating the speed or acceleration of joints, links, and end effectors according to preset parameters, so that the robotic arm can reduce relative motion impact while maintaining the continuity of the operation. Replanning the path of the current operation performed by the robotic arm means that after acquiring the current pose, point cloud data of the object to be operated, and the distribution of other obstacles, the robotic arm generates and executes an obstacle avoidance trajectory to bypass the object to be operated and other obstacles to continue the operation.

[0098] In this embodiment, the robotic arm can employ different safety control logics based on the type of collision event. When a first collision event is detected, emergency stop control is prioritized. When a second collision event is detected, deceleration control or path replanning control is selected based on the continuity of the operation. By linking the collision detection results with the motion control strategy, high-collision-risk movements of the robotic arm can be promptly blocked in complex curved surface operation scenarios, while lower-level collision risks are handled flexibly, thereby reducing the probability of damage to the robotic arm's body, end effector, and the object being operated. This approach also reduces unnecessary accidental stops and interruptions, enabling the robotic arm to maintain high operational efficiency and path adaptability while ensuring safety.

[0099] like Figure 4 As shown, in one possible embodiment, the robotic arm collision detection method further includes step S211. (As...) Figure 4 As shown, step S211 can be performed after step S206.

[0100] S211. Fit the normal vector of the second target point cloud data based on the neighboring point cloud data of the second target point cloud data, and determine the virtual repulsion force based on the normal vector and the distance between the j-th second virtual geometry and the second target point cloud data.

[0101] The virtual repulsive force is negatively correlated with the distance between the j-th second virtual geometry and the second target point cloud data. The virtual repulsive force is used to control the end effector of the robotic arm to contact the object to be operated.

[0102] The second target point cloud data is the surface point cloud of the object to be manipulated closest to the robotic arm's end effector. The neighborhood point cloud data is a set of adjacent points selected within a preset neighborhood range around the second target point cloud data. The neighborhood range can be determined by a fixed radius or a search radius based on the number of nearest neighbors. Normal vector fitting can be achieved using least squares plane fitting, principal component analysis, or local surface fitting methods, so that the normal vector represents the local orientation of the surface where the second target point cloud data is located.

[0103] The j-th second virtual geometry can be set in the contact area corresponding to the end effector of the robotic arm. The closest distance between its center point and the second target point cloud data is used to characterize the proximity of the end effector to the surface of the object to be manipulated. The direction of the virtual repulsive force is usually along the normal vector, pointing away from the surface of the object to be manipulated. Its magnitude can be calculated by a distance mapping function; the smaller the distance, the greater the repulsive force, and the greater the distance, the smaller the repulsive force. The mapping relationship can be achieved by a linear function, an exponential decay function, or a piecewise function. This virtual repulsive force can be converted into a control quantity of the end effector of the robotic arm and superimposed on the position control, speed control, or impedance control loop of the end effector to adjust the attitude and contact pressure of the end effector in contact with the surface of the object to be manipulated.

[0104] In one possible embodiment, to ensure the continuity of the robotic arm's operation, the virtual repulsive force can also be modified in combination with the current speed of the end effector, surface curvature and friction state, so that the end effector maintains compliant avoidance along the surface normal when contacting the object to be operated, and maintains stable contact within the space.

[0105] In one possible embodiment, based on the calculation of a virtual repulsive force, the robotic arm can superimpose this virtual repulsive force with the force feedback controlled by impedance to form a composite control signal. Specifically, when the robotic arm detects that its end effector is approaching the object to be manipulated, it reduces the stiffness parameter to allow the end effector to "conform" to the surface of the object; when the robotic arm moves at high speed, it increases the damping parameter to suppress inertial impacts. Through this composite control signal, the robotic arm can maintain operational continuity while responding quickly to sudden collisions.

[0106] In this embodiment, by fitting the normal vector of the second target point cloud data based on the neighboring point cloud data of the second target point cloud data, and determining the virtual repulsion force based on the normal vector and the distance between the j-th second virtual geometry and the second target point cloud data, a directional virtual repulsion force can be constructed based on the local geometric features of the surface of the object to be operated, serving as a repulsion control quantity. This allows the end effector of the robotic arm to maintain close proximity to the surface of the object when contacting it, while automatically generating compliant avoidance when too close. This reduces the risk of rigid collision between the end effector of the robotic arm and the object to be operated, and improves contact stability and operational safety in complex curved surface scenarios. Furthermore, since the virtual repulsion force is negatively correlated with the distance between the j-th second virtual geometry and the second target point cloud data, the robotic arm can form a continuous and smooth control transition near the surface of the object to be operated, avoiding abrupt retraction at the end effector, thus helping to maintain contact quality and improve end effector tracking accuracy.

[0107] In one possible embodiment, the size of the i-th first virtual geometry is also positively correlated with the communication delay and the distance coefficient, where the distance coefficient represents the degree to which the speed of the first virtual geometry affects the size of the first virtual geometry.

[0108] Communication delay is used to characterize the time lag of a robotic arm, and it can be estimated by timestamp difference, time delay, or control cycle deviation. The value of the distance coefficient can be determined by factors such as the load state of the robotic arm and the type of tool at the end effector. The dimensions of the first virtual geometry can be obtained by superimposing speed compensation and delay compensation on its basic geometric dimensions. The greater the speed and the higher the communication delay, the greater the compensation, thereby moving the detection boundary forward to cover the risks caused by information lag and inertial motion.

[0109] In one possible embodiment, the robotic arm can calculate a velocity-related term based on the current pose data of the host body and its current speed, then estimate a communication delay-related term based on the communication link status, and finally weight the velocity-related term according to a distance coefficient to generate the size of the first virtual geometry. This size can be used to update the sphere radius of the first virtual geometry, so that the size of the first virtual geometry automatically expands when moving at high speeds and maintains a small footprint when running at low speeds, thereby reducing false collision detections and improving space utilization for operations close to the surface of the object to be operated.

[0110] In this embodiment, since the size of the i-th virtual geometry is positively correlated with communication latency and distance coefficient, the robotic arm can incorporate future displacements of the robotic arm caused by communication network jitter, transmission lag, and speed into the collision detection range in advance. This makes the size of the first virtual geometry, as the boundary for collision detection, more consistent with the actual movement of the robotic arm. This approach can effectively reduce the probability of missed collision detection in complex curved surface scenarios at high speeds, while avoiding the overly conservative problem caused by using fixed sizes, thereby improving the real-time performance, robustness, and operational safety of the robotic arm's collision detection.

[0111] In one possible embodiment, the dimensions of the i-th first virtual geometry and / or the j-th second virtual geometry are transmitted via a rotational attitude field. The rotational attitude field is a field in a quadruple representing the robot arm's rotational attitude, where the quadruple represents the robot arm's pose.

[0112] In this embodiment, the quadruple can represent the robot arm pose in quaternion form. The rotational attitude field among the four components carries rotational information, and the dimensions of the i-th first virtual geometry and / or the j-th second virtual geometry are reused or encoded within this field. The rotational attitude field can carry the dimensions of the i-th first virtual geometry and / or the j-th second virtual geometry through numerical mapping, offset encoding, or normalized encoding. This allows the unit modules performing collision detection and nearest neighbor search based on a branch tree index to quickly recover the dimensions of the corresponding virtual geometry based on the rotational attitude field. The quadruple can also be transmitted using other protocol frames, all of which can utilize the rotational attitude field to transmit the dimensions of the i-th first virtual geometry and / or the j-th second virtual geometry, reducing the amount of external fields used and lowering communication overhead.

[0113] In this embodiment, by establishing a correspondence between the size of the first virtual geometry and / or the size of the second virtual geometry and the rotational posture field of the robotic arm, and by using a quadruple field representing the rotational pose to complete the transmission, the unit modules used to perform collision detection and nearest neighbor search based on the branch tree index can obtain the size of the virtual geometry synchronously with the position of the robotic arm. This avoids the delay or asynchrony problems caused by independently transmitting the pose and the size of the virtual geometry, thereby accurately performing collision detection, nearest neighbor search, etc.

[0114] In this embodiment, the dimensions of the i-th first virtual geometry and / or the j-th second virtual geometry are transmitted through the rotation attitude field in the quadruple. This can compress the transmission link of the virtual geometry dimensions, reduce its communication load, improve the real-time performance and stability of collision detection in complex curved surface scenes, and reduce the errors and delays introduced by data splitting and transmission.

[0115] In one possible embodiment, there are multiple robotic arms, and the first and second virtual geometry sets of any one robotic arm serve as obstacles for the motion constraints of the other robotic arms.

[0116] It should be noted that each of the multiple robotic arms can execute the collision detection method of the embodiments of this application.

[0117] In one possible embodiment, the first and second sets of virtual geometry can be updated in real time based on the link lengths, joint rotation ranges, end effector dimensions, and current posture of the robotic arm. For any given robotic arm, the first virtual geometry corresponding to its body and the second virtual geometry corresponding to its end effector serve as obstacles for other robotic arms, restricting them from approaching its work area. When planning its work path, the robotic arm writes the center points, dimensions, and postures of the virtual geometries from other robotic arms into its obstacle table, and uses this information to perform nearest distance estimation, collision risk assessment, speed correction, and path planning.

[0118] In one possible embodiment, for areas where multiple robotic arms are working in overlapping areas, the robotic arms can also be configured with avoidance weights based on their work priorities. The virtual geometry of the robotic arm working on high-priority tasks forms a more stringent constraint boundary for the robotic arm working on low-priority tasks.

[0119] In one possible embodiment, the virtual geometry and dimensions of multiple robotic arms can be stored and updated in a shared memory area of ​​the robotic arms, so that each robotic arm can read the position and size information of the virtual geometry of other robotic arms in real time during operation, so as to use the remaining robotic arms as obstacles for motion constraints.

[0120] In this embodiment, when the body or end effector of any robotic arm enters the obstacle influence range of another robotic arm, the robotic arm can trigger a motion constraint mechanism to limit its speed, acceleration, joint angular velocity, or path. If necessary, the operational path can be replanned or entry into the conflict area can be postponed. Thus, multiple robotic arms can achieve avoidance and coordinated protection based on their respective virtual geometry sets, avoiding safety risks caused by body interference, end effector collisions, and overlapping operational areas. In this way, multiple robotic arms can maintain high operational continuity in complex curved surface scenes or narrow environments, while improving the real-time performance of collision detection and the stability of multi-robotic arm collaboration.

[0121] Figure 5 This is a flowchart illustrating a robotic arm collision detection method according to another embodiment of this application. Figure 5 As shown, in one possible embodiment, the robotic arm collision detection method includes steps S301 to S313.

[0122] S301, Initialization.

[0123] Initialization may include at least one of the following: the robotic arm performing a self-test, loading parameters for the robotic arm collision detection method of the embodiments of this application, and resetting the robotic arm.

[0124] S302. Scan the object to be operated on to obtain the point cloud data of the object.

[0125] S303. Construct a branch tree index based on the point cloud data of the object to be operated on.

[0126] S304. Generate a first set of virtual geometry at the body of the robotic arm and a second set of virtual geometry at the end of the robotic arm.

[0127] S305, Multi-coordinate system registration.

[0128] Multi-coordinate system registration involves the robotic arm acquiring encoder data from its joints in real time and using forward kinematics calculations to determine the position of the center point of each virtual geometry in the world coordinate system. Next, the robotic arm can map the point cloud data of the object to be manipulated to its own coordinate system based on a calibration matrix, thus eliminating coordinate system differences.

[0129] S306. For the i-th first virtual geometry in the first set of virtual geometry, determine the size of the i-th first virtual geometry based on its velocity and the geometric dimensions at its location.

[0130] S307. The dimensions of the i-th first virtual geometry and / or the j-th second virtual geometry are transmitted through the rotation attitude field.

[0131] Through the detailed description of the above embodiments, the size of the first virtual geometry is a dynamic size, while the size of the second virtual geometry can be the geometric size at its location, that is, the real, fixed geometric size of the end.

[0132] For the i-th first virtual geometry, execute step S308; for the j-th second virtual geometry, execute step S309.

[0133] S308. Detect whether the distance between the i-th first virtual geometry and the first target point cloud data is less than the size of the i-th first virtual geometry.

[0134] If the distance between the i-th first virtual geometry and the first target point cloud data is less than the size of the i-th first virtual geometry, a first collision event is determined to have occurred in the robotic arm, and step S310 is executed. If the distance between the i-th first virtual geometry and the first target point cloud data is greater than or equal to the size of the i-th first virtual geometry, a first collision event is determined to have occurred in the robotic arm, and the robotic arm is controlled to continue executing the currently executed operation.

[0135] S309. Detect whether the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry.

[0136] If the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry, proceed to step S311. If the distance between the j-th second virtual geometry and the second target point cloud data is greater than or equal to the size of the j-th second virtual geometry, determine that no second collision event has occurred with the robotic arm and control the robotic arm to continue executing the currently performed operation.

[0137] S310, Control the robotic arm to stop the currently executed operation.

[0138] S311. Detect whether the operation currently being performed by the robotic arm is a contact operation.

[0139] If the operation currently being performed by the robotic arm is a non-contact operation, proceed to step S312. If the operation currently being performed by the robotic arm is a contact operation, determine that no second collision event has occurred and control the robotic arm to continue performing the currently performed operation.

[0140] S312, Control the robotic arm to reduce the speed of the currently performed operation or replan the path of the currently performed operation.

[0141] S313. When there are multiple robotic arms, the first and second virtual geometry sets of any one robotic arm are used as obstacles for the other robotic arms to perform motion constraints and the process returns to step S305.

[0142] The steps described above have been explained in detail and will not be repeated here.

[0143] Figure 6 This is a schematic diagram of the structure of the robotic arm collision detection device according to an embodiment of this application. Figure 6 As shown, the robotic arm collision detection device provided in this application embodiment includes: a generation module 410, a size determination module 420, and a collision detection module 430.

[0144] The generation module 410 is used to generate a first set of virtual geometry at the body of the robotic arm; the body of the robotic arm includes the links of the robotic arm and the joints where any number of links are connected.

[0145] The size determination module 420 is used to determine the size of the i-th first virtual geometry in the first set of virtual geometries based on the speed and geometric dimensions at the location of the i-th first virtual geometry; the size of the i-th first virtual geometry is positively correlated with both the speed and geometric dimensions at the location of the i-th first virtual geometry.

[0146] The collision detection module 430 is used to perform collision detection based on the size of the i-th first virtual geometry; i∈[1,n], where n represents the number of first virtual geometries in the set of first virtual geometries, and n is an integer greater than or equal to 1.

[0147] In one possible embodiment, the device further includes: a search module, configured to perform a nearest neighbor search on the center point of the i-th first virtual geometry based on a branch tree index to obtain the first target point cloud data closest to the i-th first virtual geometry, wherein the branch tree index is constructed based on the point cloud data of the object to be manipulated by the robotic arm. The collision detection module is specifically configured to: determine that a first collision event has occurred in the robotic arm if the distance between the i-th first virtual geometry and the first target point cloud data is less than the size of the i-th first virtual geometry.

[0148] In one possible embodiment, the generation module is further configured to generate a second set of virtual geometries at the end of the robotic arm; the search module is further configured to: perform a nearest neighbor search on the center point of the j-th second virtual geometry in the second set of virtual geometries based on the branch tree index, so as to obtain the second target point cloud data that is closest to the j-th second virtual geometry; the device further includes a determination module, configured to determine that a second collision event has occurred when the robotic arm is currently performing a non-contact operation and the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry; the determination module is further configured to determine that no second collision event has occurred when the robotic arm is currently performing a contact operation and the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry; j∈[1,m], m represents the number of second virtual geometries in the second set of virtual geometries, and m is an integer greater than or equal to 1.

[0149] In one possible embodiment, the device further includes: a control module, configured to control the robotic arm to stop the currently performed operation when a first collision event is determined; the control module is also configured to control the robotic arm to reduce the speed of the currently performed operation or replan the path of the currently performed operation when a second collision event is determined.

[0150] In one possible embodiment, the device further includes: a fitting module for fitting a normal vector of the second target point cloud data based on neighborhood point cloud data of the second target point cloud data, and for determining a virtual repulsion force based on the normal vector and the distance between the j-th second virtual geometry and the second target point cloud data; the virtual repulsion force is negatively correlated with the distance between the j-th second virtual geometry and the second target point cloud data, and the virtual repulsion force is used to control the end effector of the robotic arm to contact the object to be operated.

[0151] In one possible embodiment, the size of the i-th first virtual geometry is also positively correlated with the communication delay and the distance coefficient, where the distance coefficient represents the degree to which the speed of the first virtual geometry affects the size of the first virtual geometry.

[0152] In one possible embodiment, the dimensions of the i-th first virtual geometry and / or the j-th second virtual geometry are transmitted through a rotational attitude field; the rotational attitude field is a field in a quadruple representing the rotational attitude of the robotic arm, and the quadruple represents the pose of the robotic arm.

[0153] In one possible embodiment, there are multiple robotic arms, and the first and second sets of virtual geometry of any one robotic arm serve as obstacles for the motion constraints of the other robotic arms.

[0154] This application provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the methods described in the above-described method embodiments.

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

[0156] An exemplary readable storage medium is coupled to a processor, enabling the processor to read information from and write information to the readable storage medium. Of course, the readable storage medium can also be a component of the processor. The processor and the readable storage medium can reside in an Application Specific Integrated Circuit (ASIC). Alternatively, the processor and the readable storage medium can exist as discrete components in the device.

[0157] This application provides a computer program product, including a computer program that, when executed by a processor, implements the methods provided in any of the embodiments described above.

[0158] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are all optional embodiments, and the actions and modules involved are not necessarily essential to this application.

[0159] It should be further noted that although the steps in the flowchart are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowchart may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the sub-steps or stages of other steps.

[0160] It should be understood that the above-described device embodiments are merely illustrative, and the device of this application can also be implemented in other ways. For example, the division of units / modules in the above embodiments is only a logical functional division, and there may be other division methods in actual implementation. For example, multiple units, modules, or components may be combined, or integrated into another system, or some features may be ignored or not executed.

[0161] Furthermore, unless otherwise specified, the functional units / modules in the various embodiments of this application can be integrated into one unit / module, or each unit / module can exist physically separately, or two or more units / modules can be integrated together. The integrated units / modules described above can be implemented in hardware or as software program modules.

[0162] When integrated units / modules are implemented in hardware, the hardware can be digital circuits, analog circuits, etc. The physical implementation of the hardware structure includes, but is not limited to, transistors, memristors, etc. Unless otherwise specified, the processor can be any suitable hardware processor, such as a CPU, GPU, FPGA, DSP, and ASIC, etc. Unless otherwise specified, the storage unit can be any suitable magnetic or magneto-optical storage medium, such as Resistive Random Access Memory (RRAM), Dynamic Random Access Memory (DRAM), Static Random Access Memory (SRAM), Enhanced Dynamic Random Access Memory (EDRAM), High-Bandwidth Memory (HBM), Hybrid Memory Cube (HMC), etc.

[0163] If the integrated unit / module is implemented as a software program module and sold or used as an independent financial product, it can be stored in a computer-readable storage device (CMD). Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software financial product. This computer software financial product is stored in a memory and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned memory includes various media capable of storing program code, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard drive, magnetic disk, or optical disk.

[0164] In the above embodiments, the descriptions of each embodiment have their own emphasis. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments. The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as the combination of these technical features does not contradict each other, it should be considered within the scope of this specification.

[0165] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application 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 application are indicated by the following claims.

[0166] It should be understood that this application is not limited to the precise structure 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 application is limited only by the appended claims.

Claims

1. A collision detection method for a robotic arm, characterized in that, The method includes: A first set of virtual geometry is generated at the body of the robotic arm; the body of the robotic arm includes the links of the robotic arm and the joints where any number of links are connected. For the i-th virtual geometry in the first set of virtual geometry, the size of the i-th virtual geometry is determined based on its velocity and the geometric dimensions at its location; the size of the i-th virtual geometry is positively correlated with both its velocity and the geometric dimensions at its location; i∈[1,n], where n represents the number of virtual geometry in the first set of virtual geometry, and n is an integer greater than or equal to 1; A branch tree index corresponding to a local region related to the current motion path of the robotic arm is determined. Based on the branch tree index, a nearest neighbor search is performed on the center point of the i-th first virtual geometry to obtain the first target point cloud data that is closest to the i-th first virtual geometry. The branch tree index is constructed based on the point cloud data of the object to be operated by the robotic arm. The point cloud data of the object to be operated by the robotic arm is divided into multiple local regions, and each local region corresponds one-to-one with a branch tree index. If the distance between the i-th first virtual geometry and the first target point cloud data is less than the size of the i-th first virtual geometry, then the robotic arm is determined to have experienced a first collision event. If the first collision event is determined to have occurred to the robotic arm, control the robotic arm to stop the currently performed operation; The method further includes: A second set of virtual geometry is generated at the end of the robotic arm; Based on the branch tree index, a nearest neighbor search is performed on the center point of the j-th second virtual geometry in the second virtual geometry set to obtain the second target point cloud data that is closest to the j-th second virtual geometry; If the operation currently being performed by the robotic arm is a non-contact operation and the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry, then it is determined that the robotic arm has experienced a second collision event. If the second collision event is determined to occur in the robotic arm, the robotic arm is controlled to reduce the speed of the currently performed operation or to replan the path of the currently performed operation; If the operation currently performed by the robotic arm is a contact operation and the distance between the j-th second virtual geometry and the second target point cloud data is less than the size of the j-th second virtual geometry, it is determined that the robotic arm has not experienced the second collision event; j∈[1,m], m represents the number of second virtual geometries in the set of second virtual geometries, and m is an integer greater than or equal to 1; The dimensions of the i-th first virtual geometry and / or the j-th second virtual geometry are transmitted via a rotational attitude field; the rotational attitude field is a field in a quadruple representing the rotational attitude of the robotic arm, and the quadruple represents the pose of the robotic arm; the method further includes: The normal vector of the second target point cloud data is fitted based on the neighboring point cloud data of the second target point cloud data, and a virtual repulsion force is determined based on the normal vector and the distance between the j-th second virtual geometry and the second target point cloud data; the virtual repulsion force is negatively correlated with the distance between the j-th second virtual geometry and the second target point cloud data, and the virtual repulsion force is used to control the end of the robotic arm to contact the object to be operated; The virtual repulsive force is modified by combining the current speed, surface curvature, and friction state of the end effector of the robotic arm, and / or the virtual repulsive force is superimposed with the force feedback of impedance control to form a composite control signal.

2. The method according to claim 1, characterized in that, The size of the i-th first virtual geometry is also positively correlated with communication delay and distance coefficient, where the distance coefficient represents the degree of influence of the speed of the first virtual geometry on the size of the first virtual geometry.

3. The method according to claim 1, characterized in that, The number of robotic arms is multiple, and the first and second virtual geometry sets of any one robotic arm serve as obstacles for the motion constraints of other robotic arms.

4. A robotic arm collision detection device, used to implement the robotic arm collision detection method as described in any one of claims 1-3, characterized in that, The device includes: A generation module is used to generate a first set of virtual geometry at the body of the robotic arm; the body of the robotic arm includes the links of the robotic arm and the joints where any number of links are connected. The size determination module is used to determine the size of the i-th first virtual geometry in the first set of virtual geometries based on the velocity and geometric dimensions at its location; the size of the i-th first virtual geometry is positively correlated with both the velocity and geometric dimensions at its location; i∈[1,n], where n represents the number of first virtual geometries in the first set of virtual geometries, and n is an integer greater than or equal to 1; The search module is used to determine the branch tree index corresponding to the local region related to the current motion path of the robotic arm, and to perform a nearest neighbor search on the center point of the i-th first virtual geometry based on the branch tree index to obtain the first target point cloud data that is closest to the i-th first virtual geometry. The branch tree index is constructed based on the point cloud data of the object to be operated by the robotic arm. The point cloud data of the object to be operated by the robotic arm is divided into multiple local regions, and each local region corresponds one-to-one with the branch tree index. The collision detection module is used to determine that the robotic arm has experienced a first collision event when the distance between the i-th first virtual geometry and the first target point cloud data is less than the size of the i-th first virtual geometry.

5. A robotic arm, characterized in that, include: The body includes a link and a joint connecting any number of links; A processor and a memory communicatively connected to the processor, wherein the memory stores computer-executable instructions; the processor executes the computer-executable instructions stored in the memory to implement the method as described in any one of claims 1 to 3.

Citation Information

Patent Citations

  • Collision detection method and system, computer equipment and storage medium

    CN114494602A

  • Collision detection method and device for claying mechanical arm

    CN120663311A

  • Robot collision prediction method, device, equipment, medium and program product

    CN121132628A

  • Collision early warning method and device in robot teleoperation

    CN121979184A