Collision avoidance method and device for kinematic structure, and robot system

The method proactively determines collision-free poses for kinematic structures by adapting their state based on relative velocities, addressing the limitations of existing methods and ensuring efficient collision avoidance in dynamic environments.

JP2025541873APending Publication Date: 2025-12-23SONY GROUP CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025534933
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-12-22
Filing Date
2023-12-15
Publication Date
2025-12-23

AI Technical Summary

Technical Problem

Existing collision avoidance methods for kinematic structures, such as robots and computer-animated characters, are inadequate in dynamic environments and time-critical applications, as they either require high computational complexity or reactively maintain minimum distances, leading to unnatural motion and performance issues.

Method used

A method and apparatus that proactively determine a collision-free target pose for kinematic structures by resolving overlaps or intersections based on relative velocities, using a region of interest to adapt the structure's state and minimize potential collisions through constrained optimization of kinematic chain parameters.

Benefits of technology

Enables efficient collision avoidance in dynamic environments by actively steering kinematic structures to avoid collisions, reducing computational effort and ensuring smooth motion even in unpredictable conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025541873000001_ABST
    Figure 2025541873000001_ABST
Patent Text Reader

Abstract

A method for collision avoidance of a kinematic structure is provided. The method includes receiving input data indicating at least a current state of the kinematic structure and a current state of at least one obstacle. The method further includes determining a target pose of a collision-free target state of the kinematic structure relative to the at least one obstacle based on the current states. The target pose is thereby determined based on performing at least one target pose determination process. The target pose determination process includes: resolving overlaps or intersections between the kinematic structure and the at least one obstacle by adapting the state of the kinematic structure according to their current states in a region of interest estimated based on a relative velocity between the kinematic structure and the at least one obstacle as a region of potential collision; and determining a target pose based on the adapted state of the kinematic structure.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to collision avoidance for kinematic structures. In particular, examples of the present disclosure relate to methods and apparatuses, robotic systems, non-transitory machine-readable media, and programs for collision avoidance for kinematic structures. [Background technology]

[0002] Kinematic structures, such as robots and computer-animated characters, are often deployed in dynamic environments with both stationary and dynamic objects and / or may perform time-varying, unpredictable tasks. To ensure the free movement and / or safety of kinematic structures in such applications, collisions, i.e., unintended contact, must be avoided. Collision avoidance can be achieved by finding a trajectory for the kinematic structure that globally connects the starting and final configurations of the kinematic structure in a collision-free manner. However, due to the high computational complexity involved, practice has shown that this trajectory planning approach is not suitable for dynamic environments and / or time-critical applications. Another possible approach to collision avoidance is to manipulate the motion of the kinematic structure based on the local influence of objects and / or obstacles. This motion manipulation is solely based on constantly maintaining a minimum distance between the kinematic structure and other objects. As a result, the motion of the kinematic structure is only affected when other objects are already in close proximity to the kinematic structure. In other words, this collision avoidance approach reacts to the approach of opposing objects rather than proactively taking active collision avoidance measures. Compared to how humans and animals avoid collisions with other obstacles, such reactive behavior seems rather unnatural, which can affect, for example, the overall performance of the kinematic structure.

[0003] Therefore, there is a need to improve collision avoidance for kinematic structures. Summary of the Invention [Means for solving the problem]

[0004] This need is met by a method for collision avoidance of a kinematic structure, a device for collision avoidance of a kinematic structure, a robot system, a non-transitory machine-readable medium, and a program according to the independent claims. Advantageous embodiments are defined in the dependent claims.

[0005] According to a first aspect, the present disclosure provides a method for collision avoidance of a kinematic structure. The method includes receiving input data indicating at least a current state of the kinematic structure and a current state of at least one obstacle. The method further includes determining a target pose of a collision-free target state of the kinematic structure relative to the at least one obstacle based on the current state of the at least one obstacle. The target pose is thereby determined based on performing at least one target pose determination process. The target pose determination process includes: resolving overlaps or intersections between the kinematic structure and the at least one obstacle by adapting the state of the kinematic structure according to the current state of the kinematic structure in a region of interest estimated based on a relative velocity between the kinematic structure and the at least one obstacle, as a region of potential collision; and determining a target pose based on the adapted state of the kinematic structure.

[0006] According to a second aspect, the present disclosure provides an apparatus for collision avoidance of a kinematic structure. The apparatus includes an interface circuit configured to receive input data indicating at least a current state of the kinematic structure and a current state of at least one obstacle. The apparatus further includes a processing circuit configured to determine a target pose of a collision-free target state of the kinematic structure relative to the at least one obstacle based on the current states. The processing circuit further determines the target pose based on executing at least one target pose determination process. The target pose determination process includes: resolving overlaps or intersections between the kinematic structure and the at least one obstacle by adapting the state of the kinematic structure according to the current state in a region of interest estimated based on a relative velocity between the kinematic structure and the at least one obstacle as a region of potential collision; and determining a target pose based on the adapted state of the kinematic structure.

[0007] According to a third aspect, the present disclosure provides a robotic system including an apparatus according to the second aspect and a robotic device configured to operate based on a target pose.

[0008] According to a fourth aspect, the present disclosure provides a non-transitory machine-readable medium storing a program having program code for performing the method according to the first aspect, when the program can be run on a processor or programmable hardware.

[0009] According to a fifth aspect, the present disclosure provides a program having a program code for performing the method according to the first aspect when the program can be run on a processor or programmable hardware.

[0010] Some examples of apparatus and / or methods will now be described, by way of example only, with reference to the accompanying figures. [Brief explanation of the drawings]

[0011] [Figure 1]1 illustrates an exemplary apparatus for collision avoidance of a kinematic structure. [Figure 2] FIG. 1 illustrates an example of reactive collision avoidance according to the prior art. [Figure 3] FIG. 1 illustrates an example of active collision avoidance. [Figure 4] FIG. 1 illustrates an exemplary apparatus for collision avoidance of a kinematic structure. [Figure 5] FIG. 10 is a diagram illustrating an example of self-collision avoidance. [Figure 6] FIG. 10 is a diagram illustrating an example of obstacle collision avoidance. [Figure 7] FIG. 1 illustrates an example of active collision avoidance. [Figure 8] 1 illustrates a flowchart of an exemplary method for collision avoidance for a kinematic structure. DETAILED DESCRIPTION OF THE INVENTION

[0012] Some examples are described in more detail with reference to the accompanying drawings. However, other possible examples are not limited to the features of these embodiments described in detail. Other examples may include not only feature variations, but also feature equivalents and alternatives. Furthermore, the terms used herein to describe particular examples should not be construed as limiting further possible examples.

[0013] Throughout the description of the figures, the same or similar reference numbers refer to the same or similar elements and / or features, which may be implemented in the same or modified form while providing the same or similar function. Also, the thickness of lines, layers and / or regions in the figures may be exaggerated for clarity.

[0014] Where two elements A and B are combined using "or", this is understood to disclose all possible combinations, i.e. A only, B only and A and B, unless expressly defined otherwise in individual cases. As alternative expressions for the same combination, "at least one of A and B" or "A and / or B" can be used. This equally applies to combinations of more than two elements.

[0015] Where singular forms such as "a," "an," "the," etc. are used and the use of only a single element is not explicitly or implicitly defined as required, further examples may also use multiple elements to implement the same function. Where a function is described below as being implemented using multiple elements, further examples may implement the same function using a single element or a single processing entity. It will be further understood that when the terms "include," "including," "comprise," and / or "comprising" are used, they are intended to describe the presence of specified features, integers, steps, operations, processes, elements, components, and / or groups thereof, and do not exclude the presence or addition of one or more other features, integers, steps, operations, processes, elements, components, and / or groups thereof.

[0016] 1 illustrates an exemplary apparatus 100 for collision avoidance of a kinematic structure 200. In at least some embodiments, the apparatus 100 and the kinematic structure 200 together can form a system, or, if the kinematic structure 200 is a robotic device, a robotic system.

[0017] The kinematic structure 200 may be any type of controllable kinematic device or system that includes or is formed by a kinematic chain, such as a robotic device or system, an animated character used in computer animation or gaming, or the like. This makes the kinematic structure 200 applicable, for example, to industrial environments such as production and logistics, or computer animation or gaming environments. The kinematic chains of the kinematic structure 200 may be configurable, manipulable, and / or controllable to provide or realize the movement, pose, etc. of the kinematic structure 200. For example, the kinematic chains may include one or more of links, joints, actuators, manipulators, etc., which may be controlled individually or simultaneously. In some examples, the kinematic chains may form, at least in part, the skeleton, etc., of a computer animation or gaming character that can be configured, manipulated, and / or controlled. However, it should be noted that the kinematic structure 200 is not limited to the aforementioned examples. In general, the apparatus 100 is configured to determine a collision-free state for the kinematic structure 200, in particular its (target) pose, with respect to itself, i.e., for self- or joint collision avoidance, and / or with respect to the environment to which the kinematic structure 200 is applied, i.e., for obstacle collision avoidance. In at least some examples, the apparatus 100 may be configured to control the kinematic structure 200 according to the determined collision-free state. In the latter case, the apparatus 100 may be configured to generate corresponding control data or one or more control signals to be applied to the kinematic structure 200, such control data or control signals may include information regarding the target pose according to which the kinematic structure may be controlled.

[0018] The device 100 includes at least an interface circuit 110 and a processing circuit 120. The processing circuit 120 is operatively coupled to the interface circuit 110.

[0019] The interface circuit 110 is configured to receive input data 111 indicating at least a current state of the kinematic structure 200 and a current state of at least one obstacle. For example, the current state of the kinematic structure 200 may be indicated by any information describing the behavior of the kinematic structure, and may include one or more of: a shape of the kinematic structure 200, a size of the kinematic structure 200, link positions, link velocities, joint positions, joint velocities, a relative or absolute position of the kinematic structure 200, etc. The current state of the at least one obstacle may be indicated by any information describing the behavior of the at least one obstacle, and may include one or more of: a shape of the obstacle, a size of the obstacle, a velocity of the obstacle (e.g., a velocity vector), a relative or absolute position of the obstacle, etc. The input data 111 may be received from any suitable data source, such as a controller of which the device 100 may be a part, or which, together with the device 100, forms a system, such as a robotic system, a game system, a computer animation system, etc. Additionally, the input data 111 may be obtained, at least in part, from one or more sensors or the like configured to detect, observe, etc., the environment of the kinematic structure 200. It should be noted that the indication of the current state of the kinematic structure 200 and the at least one obstacle may be obtained and / or collected from a number of different data sources.

[0020] The processing circuit 120 is configured to receive and process input data 111 provided by the interface circuit 110. Accordingly, the processing circuit 120 may be configured to receive and process information regarding the current state of the kinematic structure 200 and the current state of at least one obstacle. For example, the processing circuit 120 may be a single dedicated processor, a single shared processor, or multiple individual processors, some or all of which may be shared, digital signal processor (DSP) hardware, an application specific integrated circuit (ASIC), a neuromorphic processor, or a field programmable gate array (FPGA). The processing circuit 120 may optionally be operably connected to, for example, read-only memory (ROM), random access memory (RAM), and / or non-volatile memory for storing software. Optionally, the processing circuit 120 may be operably connected to a network controller that communicates via a network to remotely control the kinematic structure 200. Further optionally, the apparatus 100 may include additional circuitry configured to interact with the interface circuit 110 and / or the processing circuit 120.

[0021] In particular, processing circuitry 120 is configured to determine a target pose for a collision-free goal state of kinematic structure 200 relative to at least one obstacle based on their current state as indicated by input data 111. Processing circuitry 120 is thereby configured to determine a target pose based on performing at least one target pose determination process. According to the example shown in FIG. 1 , a target pose of kinematic structure 200 may be provided as an output by processing circuitry 120, which is shown here as target pose data 121. Target pose data 121 may be used directly to control kinematic structure 200 or may be further processed, i.e., indirectly used, to control kinematic structure 200, as described further below.

[0022] At or during the target pose determination process, processing circuitry 120 is configured to resolve any overlap or intersection between kinematic structure 200 and at least one obstacle by adapting the state of kinematic structure 200 according to their current state in a region of interest (ROI) estimated based on the relative velocity between kinematic structure 200 and at least one obstacle as a potential collision area. Further, within the target pose determination process, processing circuitry 120 is configured to determine a target pose based on the adapted state of kinematic structure 200.

[0023] As used herein, an ROI may be understood as a region of potential collision of the kinematic structure 200 that is estimated and / or predicted in advance, for example, for the future, i.e., when a collision is not necessarily imminent, based on the relative velocities between the kinematic structure 200 and at least one obstacle and depending on their current state. That is, the ROI described herein considers a certain time in advance, e.g., one or more time units, time steps, calculation steps, or intervals, even before a collision is imminent, without necessarily actually constructing the ROI. Simply by way of example, the ROI may be considered as a kind of projection region into which at least relevant portions of the kinematic structure and / or at least one obstacle may be projected, although it should be noted that the projection into this ROI does not necessarily have to be actually performed. Thus, if there is no overlap or intersection within the ROI between the kinematic structure 200 and at least one obstacle, a collision can be actively avoided from the outset, i.e., a collision is actively avoided from occurring. In other words, instead of reactively trying to prevent a collision by maintaining the shortest distance to at least one obstacle, processing circuitry 120 is configured to actively steer kinematic structure 200 toward the target pose. However, if there is an overlap and / or intersection between kinematic structure 200 and at least one obstacle in the ROI, then that collision is bound to occur at some point in the future unless measures are taken, such as adapting the kinematic chain of kinematic structure 200. Note that the ROI is not necessarily an actual geometrically constructed region, but is merely illustrative.

[0024] For example, the ROI can be spaced from the kinematic structure 200 and / or at least one obstacle by a relative velocity vector indicating the relative velocity between the kinematic structure 200 and the at least one obstacle. To this end, the processing circuit 120 can be configured to determine the relative velocity between the kinematic structure 200 and the at least one obstacle by determining the relative velocity vector between the kinematic structure 200 and the at least one obstacle. Furthermore, as an example, the ROI can be estimated by projecting the kinematic structure and / or at least one obstacle by the relative velocity vector from a first position corresponding to a position according to the current state of the kinematic structure and at least one obstacle to a second position corresponding to the ROI. In addition, the ROI can extend in one or more dimensions, e.g., in at least two dimensions perpendicular to the relative velocity vector, compared to simply maintaining a minimum distance that can be represented by a closest distance vector between the kinematic structure 200 and the at least one obstacle, which would be a solely one-dimensional consideration.

[0025] As mentioned above, the at least one obstacle may be or consist of any other object present in the environment of the kinematic structure 200, and collision avoidance with respect to such other object may be referred to as obstacle collision avoidance. Alternatively or additionally, the kinematic structure 200 may be divided into multiple substructures, e.g., its individual links, joints, manipulators, etc., and the at least one obstacle may consist of one or more of those substructures, and collision avoidance of those substructures with each other may be referred to as self-collision or joint collision avoidance.

[0026] As used herein, a pose, such as a target pose described herein, can be understood to represent, for example, a position and orientation of the kinematic chain 200 in three dimensions or space. The target pose can be configured to follow or address a task to be performed by the kinematic structure 200. For example, the task to be performed can include any type of movement in an environment or space, interaction with or manipulation of another object, such as a tool, production material, another computer-animated character, etc., where neither the pose nor the task is limited herein, and / or any other kinematic operation.

[0027] As used herein, a collision-free state of the kinematic structure 200 may refer to any state or configuration of the kinematic structure 200 in which a minimum distance between elements in the kinematic chain relative to each other is maintained to avoid unintended contact, also referred to as self-collision avoidance and / or joint collision avoidance, and / or between the kinematic structure 200 or elements of its kinematic chain and one or more obstacles, i.e., other static or dynamic objects in the environment, also referred to as obstacle collision avoidance. Similarly, a target pose may be understood as any pose that maintains a minimum distance to at least one obstacle. Furthermore, to resolve overlaps and / or intersections between the kinematic structure 200 and at least one obstacle within the ROI, the processing circuit 120 may be configured to adapt the state of the kinematic structure 200 accordingly. For example, the processing circuit 120 may be configured to adapt the state of the kinematic structure 200 by adapting one or more kinematic chain parameters of the kinematic structure 200. The one or more kinematic chain parameters may be associated with one or more of the aforementioned links, joints, actuators, manipulators, etc. of the kinematic structure 200 and may be adapted to resolve overlap and / or intersection with at least one obstacle within the ROI. The one or more kinematic chain parameters may refer to any parameters related to collision avoidance measures, particularly control of the kinematic chain, that can be determined and set for motion. For example, in the case of a robotic device, the one or more kinematic chain parameters may refer to one or more joints, actuators, manipulators, etc., and / or their velocities, accelerations, etc. Also, in the case of a robotic device, the kinematic chain may include one or more links, joints, etc., that can be operated via one or more actuators.

[0028] It should be noted that the target pose determination process described herein, which may include the above-described process of resolving any overlap or intersection between the kinematic structure 200 and at least one obstacle in the estimated ROI, may be performed by the processing circuitry 120 during runtime of the kinematic structure 200 by running respective simulations. Alternatively, the target pose determination process may be performed multiple times on different kinematic structure information data and obstacle information data to obtain a training data set for training a machine learning model for determining the target pose of the kinematic structure, and the processing circuitry 120 may be configured to determine the target pose of the kinematic structure 200 by the trained machine learning model during runtime of the kinematic structure 200.

[0029] It should also be noted that the determination of the target pose is not limited to just one obstacle: thus, for self-collision avoidance, target poses can be determined for multiple obstacles and / or multiple elements of the kinematic structure 200 in a single sequence of determinations or for multiple determinations performed simultaneously and / or in parallel.

[0030] The principles of collision avoidance described herein are further illustrated with reference to both FIGS. 2 and 3 , which illustrate examples of a kinematic structure 200 and an exemplary other object, i.e., an exemplary obstacle 300. In these examples, the kinematic structure 200 is formed as a robotic device including a base (not shown), a first link 210, a second link 220, a third link 230, and an end effector 240, i.e., the last or most distal link from the base of the kinematic structure 200. The kinematic structure 200, i.e., the robotic device, includes a number of joints 250 connecting adjacent links 210, 220, 230, and 240 to each other. While the kinematic structure 200 according to FIGS. 2 and 3 is a six-axis robotic device, it should be noted that the kinematic structure 200 described herein is not limited thereto, and the proposed collision avoidance can also be applied to robotic devices having other configurations. Furthermore, as described herein, the proposed collision avoidance can also be applied to computer animations or games, and the kinematic structure 200 can be a character in a computer animation or game, or the like.

[0031] It should be noted that FIGS. 2 and 3 illustrate the kinematic structure 200 as a collision representation, which can optionally be utilized as a simplified representation, model, etc., of the kinematic structure 200 to minimize computational effort for collision avoidance. To this end, the collision representation of the kinematic structure 200 may include, for example, multiple objects whose distances can be calculated with little computational effort. Optionally, information regarding the gradient of the closest distances from, to, and / or between objects may be determined. For example, the objects may be provided by one or more models of links and / or primitive shapes, e.g., 3D models such as mesh files, that enable efficient distance calculations. By way of example, FIGS. 2 and 3 illustrate a collision representation of four objects, each of whose links 210, 220, 230, and 240 forms one object. However, utilizing a collision representation is not required, and FIGS. 2 and 3 merely serve to illustrate the proposed collision avoidance.

[0032] 2 and 3 illustrate the obstacle 300 as a primitive part in the shape of a cube. However, the shape, size, etc. of the obstacle 300 are not limited thereto and may be a different shape, size, etc. Therefore, the obstacle 300 as illustrated in FIGS. 2 and 3 is for illustrative purposes only.

[0033] 2 illustrates an example of a kinematic structure 200 formed as a robotic device that can be controlled to perform any suitable task. As noted above, the principles of collision avoidance described herein may also be referred to as active collision avoidance, as distinguished from reactive collision avoidance, in which only one-dimensional distance between the kinematic structure and an obstacle is maintained. To better understand this distinction between the active collision avoidance described herein and prior art reactive collision avoidance, FIG. 2 illustrates an example of such prior art reactive collision avoidance that would be improved upon, supplemented, or replaced by the (active) collision avoidance described herein.

[0034] 2, a closest distance vector d can be defined between the kinematic structure 200 and the obstacle 300. The principle of reactive collision avoidance is to determine this closest distance vector d, for example, by detecting the presence of an obstacle with a distance sensor or the like (not shown), and to maintain the corresponding distance at a certain value, at least a value greater than zero, for example, by controlling the motion of the kinematic structure 200 accordingly. Thus, the closest distance vector d can be one single vector connecting the closest points between the kinematic structure 200 and the obstacle 300. That is, however, in reactive collision avoidance, the kinematic structure 200 is only controlled to react when the immediate presence of the obstacle 300 is detected.

[0035] Figure 3 shows an example of the active collision avoidance described herein. Unlike the example according to Figure 2, here the aforementioned ROI is shown and indicated by reference numeral 126. Note again that ROI 126 is for illustrative purposes only and need not actually be constructed by processing circuitry 120, which is shown in Figure 3 using dashed lines.

[0036] As described above, the ROI 126 is estimated (e.g., predicted, modeled, etc.) based on the relative velocity between the kinematic structure 200 and the obstacle 300 according to their current state as a potential collision area. For example, the ROI 126 can be estimated by projecting the kinematic structure 200 and / or the obstacle 300 from a first position corresponding to the position according to the current state of the kinematic structure 200 and the obstacle 300 to a second position corresponding to the region of interest by a relative velocity vector indicating the relative velocity between the kinematic structure 300 and the obstacle 300. In the example shown in FIG. 3 , the respective first positions are indicated by solid lines, and the respective second positions, which may also be referred to as virtual or imaginary positions according to the above-mentioned projection, are indicated by dashed lines. The projection itself is indicated by a dashed arrow extending from the kinematic structure 200 or the obstacle 300 to the ROI 126. It should be noted again that the projection need not be performed actually or geometrically and may serve only for illustrative purposes.

[0037] 3 , the ROI 126 is exemplarily illustrated as a plane perpendicular to the relative velocity (vector) between the kinematic structure 200 and the obstacle 300. As an example, the ROI 126 may be spaced apart from the kinematic structure 200 and / or the obstacle 300 by the relative velocity vector. A cross section of the kinematic structure 200 is projected onto this plane, which here includes, for example, cross sections of the links 210, 220, 230, 240 and the obstacle 300. Therefore, for better explanation, the ROI 126 is understood as an imaginary plane including an orthogonal projection of the kinematic structure 200 and the obstacle 300. By considering the relative velocity (vector) between the kinematic structure 200 and the obstacle 300, the ROI 126 includes, or can be understood to include, a time-based prediction of where the kinematic structure 200 and the obstacle 300 will be located at a future time based on their current state and if no countermeasures are taken.

[0038] 3, the cross sections projected onto the ROI 126 at least partially overlap or intersect with each other. In this example, each overlap or intersection between the projected cross sections of the kinematic structure 200, i.e., between the cross sections of the links 210, 220, 230, and 240, can be understood as a potential self-collision. Similarly, in this example, each overlap or intersection between the projected cross sections of the kinematic structure 200 and the obstacle 300 can be understood as a potential obstacle collision.

[0039] The principle of (active) collision avoidance described herein is based on the processing circuit 120 being configured to resolve any of the above-mentioned overlaps and intersections within the ROI 126. To this end, as described above, the processing circuit 120 is configured to resolve any overlaps or intersections of the kinematic structure 200 itself and / or between the kinematic structure 200 and the obstacle 300 by adapting the state of the kinematic structure 200 within the ROI 126, thereby obtaining a target pose that is output as the above-mentioned target pose data 121 (see FIG. 1 ). Resolving overlaps or intersections between the kinematic structure 200 and the obstacle 300 may include adapting the state of the kinematic structure 200 to minimize the distances between its links 210, 220, 230, 240 and / or between the kinematic structure 200 and / or the obstacle 300. In other words, the projected cross sections within the ROI 126 can be shifted so that the distances between all cross sections (shown here by dashed lines) are minimized. For example, processing circuitry 120 may be configured to adapt the positions of each link 210, 220, 230, 240 within ROI 126, e.g., to no longer overlap or intersect with each other and / or obstacle 300. The sum of these adaptations of the state of kinematic structure 200 may form a desired pose that is output as desired pose data 121 described above.

[0040] FIG. 4 shows another exemplary apparatus for collision avoidance of kinematic structures, on the basis of which the determination and in particular the use of the above-mentioned target pose will be further described.

[0041] As shown in FIG. 4, in at least some embodiments, the processing circuitry 120 may include a first functional block, module, or subcircuit 122 configured to perform the above-described target pose determination process and output the target pose of the kinematic structure 200 as the above-described target pose data 121.

[0042] Additionally, processing circuit 120 may include a second functional block, module, or subcircuit 123 configured to receive desired pose data 121 from first functional block, module, or subcircuit 122. Second functional block, module, or subcircuit 123 may be configured to additionally receive time data 124 indicating an update interval used to control kinematic structure 200. As used herein, the update interval may be received from any type of timer configured to indicate system time. The update interval may also be referred to as a calculation interval, time step, system frequency, etc. For example, the update interval may be a calculation interval, frequency, etc. at which kinematic structure 200 and / or a system to which kinematic structure 200 is applied, such as a robotic system, computer animation, or game environment, is updated (e.g., manipulated, controlled, etc.). That is, processing circuit 120 is configured to receive and process desired pose data 121 and time data 124.

[0043] Further, the second functional block, module or subcircuit 123 may be configured to perform a constrained optimization process on the inverse kinematics of the target pose, i.e., the target pose data 121, according to the time data 124 to obtain one or more kinematic chain parameters associated with a collision-free target state of the kinematic structure for each update interval, and to generate control data 125 for controlling the kinematic structure 200 based on the one or more kinematic chain parameters.

[0044] As used herein, inverse kinematics may be understood as a computational process of determining, calculating, etc., one or more variable kinematic chain parameters configured to place one or more elements of a kinematic chain, such as links, joints, manipulators, or the skeleton of an animation or game character, in a predetermined position and orientation, i.e., pose, relative to the start of the kinematic chain. In the case of a robotic device, the start of the kinematic chain may be the base of the robotic device.

[0045] An optimization process, as used herein, may be understood as a computational process that determines, e.g., finds, a preferred, e.g., best, or generally optimized, solution from a set of feasible alternatives for a collision-free state of the kinematic structure 200. For example, the problem underlying the optimization process may be formulated according to the following mathematical equation:

[0046]

number

[0047] Therefore, the problem is formulated as a convex optimization utilizing exclusively convex cost functions and constraints, resulting in fast computation. In at least some examples, the optimization process for inverse kinematics utilizes quadratic programming, utilizing quadratic and linear cost functions. However, it should be noted that the present disclosure is not limited to the above examples. Any other suitable method for formulating the problem may be utilized as well. In general, processing circuit 120, and in particular its second functional block, module, or subcircuit 123, is configured to determine kinematic chain parameters and / or states of kinematic structure 200 that do not violate one or more constraints for or associated with a collision-free state, in order to obtain optimized kinematic chain parameters by performing an optimization process.

[0048] This allows the inverse kinematics to be solved at the level of joint angular velocities due to the convex relationship between the joint angular velocities and the spatial velocities at any point on the kinematic structure 200 according to the following equation:

[0049]

number

[0050] However, it should be noted that the present disclosure is not limited to the above examples, and any other suitable method for solving the inverse kinematics may be utilized as well.

[0051] For example, the optimization process may include defining and / or solving multiple objectives for or related to at least one or more of self-collision avoidance and / or joint collision avoidance and / or obstacle collision avoidance to obtain optimized one or more kinematic chain parameters for a collision-free state. For example, the optimization process may utilize multiple, i.e., one or more, cost functions and / or constraints to define and / or solve multiple objectives. As an example, the number of objectives of the optimization problem underlying the optimization process performed by processing circuit 120 may be formulated according to the following mathematical equation:

[0052]

number

[0053] where each objective is an independent matrix P i and / or independent vector q i T and / or an independent matrix may be generated. i and q i T The indexes have the following meanings: t: Tracking (last link or terminal effector) sc: self-collision avoidance and / or joint collision avoidance, OC: Obstacle collision avoidance, acc: acceleration and / or motion smoothness, j: joint limit. These indices or abbreviations for tracking t, self and / or joint collision avoidance sc, obstacle collision avoidance oc, acceleration or motion smoothness acc, joint limits j are used throughout this disclosure where appropriate.

[0054] Note that for simple collision avoidance, the expressions or equations indicated by the indices sc and / or oc are sufficient, and the further expressions or equations indicated by the indices t, acc and / or j are optional. i and vector q i T The individual outputs of may be combined. For example, the final P matrix and q matrix for the global optimization problem according to Eq. T The individual constraint matrices G may be added together to create a vector. i and vector h i may also be combined, e.g., added or stacked. Constraining the optimization process may involve utilizing one or more constraints, e.g., a constraint separating the collision-free allowed space of the kinematic structure 200 from the non-collision-free prohibited space of the kinematic structure 200. This allows P i and q i T , denoted by the above indices sc, i.e., self-collision avoidance, and oc, i.e., obstacle-collision avoidance. Furthermore, one or more constraints may relate to one or more hardware limitations of the kinematic structure 200, such as joint limits, joint angle limits, joint velocity limits, joint acceleration limits, acceleration limits, jerk limits, etc. This is because P i and q i T In at least some examples, one or more constraints may relate to the smoothness of motion desired for operating the kinematic structure 200, e.g., taking into account acceleration limits, jerk limits, etc. This isi and q i T Generally speaking, one or more constraints may set boundaries such that the complete state space is available for determining the optimized kinematic chain parameter(s) through inverse kinematics.

[0055] Further, processing circuitry 120 is configured to generate the above-mentioned control data 125 for controlling kinematic structure 200 based on the determined one or more kinematic chain parameters. To this end, apparatus 100 may include a data interface to kinematic structure 200 and / or an associated robotic system, computer animation environment or engine, game environment or engine, etc. Control data 125 may be configured to control the motion of kinematic structure 200 under collision avoidance, for example, by controlling corresponding actuators, joints, links, etc. of kinematic structure 200 or an animation or game engine.

[0056] By coupling the optimization-based inverse kinematics to the update interval Δt indicated by the time data 124 and performing its full calculation at each update interval, the kinematic structure 200 can be controlled under collision avoidance even for dynamic tasks and / or in unstructured and unpredictable environments, such as one or more dynamic environments. Performing the constrained optimization process requires only a small computational effort. Furthermore, by performing the constrained optimization process on the inverse kinematics of a desired pose, the kinematic structure 200 can be controlled to operate at feasibility constraints based on the resulting one or more kinematic chain parameters.

[0057] 5 illustrates an exemplary kinematic structure 200 formed as a robotic device that can be at least partially controlled by the apparatus 100 described herein. In FIG. 5, arrows indicate three link pair combinations scl, sc2, and sc3, based on which an example of self-collision avoidance, which may include joint collision avoidance, for the kinematic structure 200 is described below.

[0058] In general, processing circuitry 120 is configured to penalize the proximity of elements, e.g., links, relative to one another in the kinematic chain of kinematic structure 200 in the optimization process to find one or more optimized kinematic chain parameters. In other words, processing circuitry 120 may be configured to determine one or more kinematic chain parameters for a self-collision-free state, which may be constituted by a collision-free state to be determined for kinematic structure 200 in the optimization process.

[0059] As used herein, the matrix P i and vector q i T The index sc in is related to self-collision avoidance. Self-collisions can occur between links 210, 220, 230, 240, resulting in a large number of link-pair combinations. Accordingly, processing circuitry 120 may be configured to avoid self-collisions between two consecutive links 210, 220, 230, 240 by determining and / or setting respective joint limit constraints in the optimization process. For further link-pair combinations scl, sc2, and sc3, the optimization problem may include constraints according to the following mathematical formula:

[0060]

number

[0061] where d is the current distance and d safety denotes the safety distance, and k scdenotes the self-collision feasibility scalar, Δt denotes the update interval as provided by the time data 124, and "q" denotes the joint velocity. This self-collision avoidance constraint limits how much the minimum distance between any two links, e.g., links 210, 220, 230, and 240, is allowed to change within the update interval Δt. The minimum distance between each link pair can be defined by the points P1 and P2 that are closest to each other for each link pair. The distance traveled within the update interval Δt by applying any joint velocity at the start of the update interval Δt is described by the right-hand side of Inequality 4. The safety distance d safety By defining the distance as d, we can limit this distance to the distance itself, and obtain the safe distance d safety Based on this, processing circuit 120 is configured to establish self-collision avoidance. The feasibility of the aforementioned self-collision constraint is determined by the distance d being less than the safe distance d safety A feasibility scalar k that defines how quickly we are willing to reach sc ≧1, thereby indicating how much joint acceleration is applied to comply with this boundary. However, it should be noted that the present disclosure is not limited to the above example. Other suitable methods for self-collision may also be utilized. It should be noted that the number of further link pair combinations scl, sc2, and sc3, which may also be referred to as the number of collision pairs, may be determined, for example, by the following formula: where n P denotes the number of collision pairs, and n L denotes the number of links in the kinematic structure 200.

[0062]

number

[0063] Referring again to FIG. 4, by comparing Equation 4 with the optimization problem according to Equation 1, the following equation is obtained for self-collision avoidance:

[0064]

number

[0065] This constraint can provide a feasible self-collision avoidance. However, any cost function can be utilized to minimize the bouncing maneuver of the kinematic structure 200 according to the following equation:

number

[0066] where w sc denotes the weight of the self-collision avoidance cost function. Equation 6 is based on the logarithm of the distance, which makes use of the time derivative of the logarithm to create a dependency on the joint angular velocity.

[0067] Furthermore, in at least some examples, cost function Equation 6 may be incorporated into the optimization process according to the following equation, in which the gradient of the distance with respect to the joint angle may be determined:

[0068]

number

[0069] However, in at least some embodiments, a more efficient method for determining the slope may be utilized according to the following equation:

[0070]

number

[0071] where P1 denotes the first closest point, P2 denotes the second closest point, and J P1 denotes the Jacobian of P1, and J p2denotes the Jacobian of P2. Note that it is not necessary to subtract all Jacobians. Rather, we can consider only joint i that can cause relative motion between P1 and P2, i.e., the joint between P1 and P2 in the kinematic chain, distinguishing between revolute joint j and prismatic joint j, according to the following formula:

[0072]

number

[0073] Optionally, by utilizing Equation 9, the determination of the distance gradient can be reduced to just one cross product for the revolute joint between P1 and P2. For prismatic joints, the calculation of the cross product between the joints can even be omitted since the distance gradient can be derived directly from the forward kinematics. Processing circuitry 120 may also be configured to perform the calculation between the joints.

[0074] feasibility scalar k sc can be determined in several ways, for example, the feasibility scalar k sc and / or the feasibility scalar k sc The constant minimum value of can be determined according to the following formula:

[0075]

number

[0076] Alternatively or additionally to Equation 10, the feasibility scalar k sc The value of may be determined without determining the geometric relationship of Equation 10. For example, the feasibility scalar k sc The value of can be determined according to the following formula:

[0077]

number

[0078] Equation 11 considers the highest rate at which the shortest distance can be reduced. The feasibility scalar k sc If is determined according to Equation 11, then the joint velocities q can be determined to avoid self-collisions whose implementation is practically feasible for the kinematic structure 200.

[0079] The feasibility scalar k determined according to Equation 11 sc It should be noted that, since k is a constant, at least in certain circumstances or scenarios, the motion of the kinematic structure 200 may be evaluated for the worst case scenario and therefore be overly conservative. Thus, in at least some instances, the feasibility scalar k sc can be determined, e.g., calculated, online by utilizing the actual joint velocities "superscript q" instead of the global worst-case scenario "maximum superscript q" and / or "minimum superscript q". For example, the feasibility scalar k sc An alternative method for determining σ may utilize the following formula:

[0080]

number

[0081] feasibility scalar k sc Another alternative method of determining σ can be done empirically in a simulation.

[0082] 6 illustrates an exemplary kinematic structure 200 formed as a robotic device that can be at least partially controlled by the apparatus 100. In FIG. 6, arrows indicate three link-obstacle combinations oc1, oc2, and oc3 with respect to an exemplary obstacle 300 present in the environment of the kinematic structure 200, based on which an example of obstacle collision avoidance for the kinematic structure 200 will be described below. Each of the link-obstacle combinations oc1, oc2, and oc3 is associated with a collision path between the respective link 220, 230, and 240 and the obstacle 300. It should be noted that obstacle collision avoidance can be performed with respect to one or more stationary and / or dynamic obstacles 300. It should be further noted that the processing circuit 120 can be configured to determine one or more kinematic chain parameters for obstacle collision avoidance states, which can be constituted by the collision avoidance state to be determined for the kinematic structure 200 in the optimization process. In at least some examples, the collision-free state of the kinematic structure 200 to be determined may comprise self-collision avoidance and / or joint collision avoidance and / or obstacle collision avoidance.

[0083] In general, the processing circuitry 120 is configured to penalize the proximity of the kinematic chains of the kinematic structure 200 in the optimization process to obtain an optimized kinematic chain parameter or parameters. For example, this can be expressed by the following mathematical formula:

[0084]

number

[0085] where w oc denotes the weights of the obstacle collision avoidance cost function. Note that Equations 13 and 14 for obstacle collision avoidance correspond, at least in large part, to Equations 6 and 7 above for self-collision avoidance, and will not be repeated here. Similar to the above for self-collision avoidance, the optimization problem for obstacle collision avoidance may include one or more constraints according to the following mathematical formula:

[0086]

number

[0087] where d0 denotes the current distance to the obstacle 300, and k oc denotes the obstacle collision feasibility scalar. These one or more constraints correspond, at least to a large extent, to the self-collision constraints according to Equations 4 and 5 above. Therefore, reference is made to the above description of self-collision, and the description will not be repeated here.

[0088] It should be noted that obstacle collision avoidance differs from self-collision avoidance in that, for example, the position P and velocity v of the obstacle, i.e., obstacle 300, cannot be influenced by the kinematic structure 200 itself, e.g., its joint angles, etc. Furthermore, it should be noted that when avoiding a collision with an obstacle, e.g., obstacle 300 in FIG. 6 , constraint Equation 15, and optionally cost function Equation 13, are added to the optimization problem in the optimization process for many and all link-obstacle pairs ocl, oc2, oc3 between the kinematic structure 200 and the obstacle 300, excluding the static base links. Only collisions influenced by the joint angles of the kinematic structure 200 may be avoided by the motion of the kinematic structure 200. However, this does not necessarily apply to the static base links of the kinematic structure 200, as they do not need to be considered. Therefore, the number of collision pairs n P For example, the formula n P =n L -1, where n L indicates the number of links.

[0089] Furthermore, according to the above explanation, the gradient of the distance with respect to the joint angle has only one Jacobian term, namely, with respect to the closest point of the kinematic structure 200, which can be expressed according to the following mathematical formula:

[0090]

number

[0091] where P r denotes the closest point on the kinematic structure 200, and P o indicates the closest point on the obstacle, and J Pr HA P r Denote the Jacobian of v Po is the P on the obstacle, e.g., the obstacle 300 in FIG. o It should be noted that information data regarding an obstacle, e.g., obstacle 300, may be received by processing circuit 120 via interface circuit 110 from any suitable data source, such as one or more sensors configured to indicate the current state of kinematic structure 200 and / or the current state of obstacle 300. Based on such information, processing circuit 120 determines P o , v Po etc. Furthermore, it is noted that the above example may enable collision avoidance with respect to both static and dynamic, e.g., moving, obstacles present in the environment of the kinematic structure 200.

[0092] Feasibility scalar k for obstacle collision avoidance oc To determine the feasibility scalar for self-collision avoidance, k sc See above for determining the feasibility scalar k of obstacle collision avoidance oc. oc can be determined in a similar or identical manner, and the description thereof will not be repeated here.

[0093] FIG. 7 illustrates an example of the above-described target pose determination process executed by processing circuitry 120 in sub-figures 7A-7D. In particular, sub-figures 7A-7D illustrate the above-described ROI 126, which is estimated based on the relative velocity between kinematic structure 200 and obstacle 300 and onto which both are projected as described above. This example may be applied regardless of whether self-collision avoidance or obstacle-collision avoidance is performed on kinematic structure 200; in the case of self-collision avoidance, at least one obstacle 300 may be formed by or comprise a combination of link pairs scl, sc2, and sc3, as illustrated in FIG. 5, for example. Note that the present disclosure is not limited to this example, and the target pose determination process may be implemented in different manners.

[0094] As described above, the target pose determination process, which may include resolving any overlap or intersection between the kinematic structure 200 and at least one obstacle in the estimated ROI 126 (see, for example, FIG. 3 ), may be performed by the processing circuitry 120 during runtime of the kinematic structure 200 by running respective simulations. Alternatively, the target pose determination process may be performed multiple times for different kinematic structure information data and obstacle information data to obtain training data sets for training a machine learning model for determining a target pose of the kinematic structure, and the processing circuitry 120 may be configured to determine the target pose of the kinematic structure 200 by the trained machine learning model during runtime of the kinematic structure 200.

[0095] 7 , resolving overlap or intersection between the kinematic structure 200 and at least one obstacle (here, for example, obstacle 300 in the case of obstacle collision avoidance) may include determining a (virtual) collision-free initial state of the kinematic structure 200 with respect to the obstacle 300 by (virtually) removing the at least one obstacle from the ROI 126 and (virtually) reintroducing the obstacle 300 into the ROI 126 iteratively, adapting the initial state of the kinematic structure 200 by performing collision avoidance with respect to the at least one obstacle during the reintroduction, and obtaining a target pose, i.e., the target pose data 121. It should be noted that in the simulation, the above-mentioned kinematic constraints, such as joint velocities and acceleration jerk, may be ignored during the target pose determination process, which allows for the at least one obstacle to be fully introduced in one or more fewer iterations.

[0096] 7A, the (virtual) projection of the kinematic structure 200 and the obstacle 300 onto the ROI 126 indicates that a collision is imminent, since in this estimation there is an overlap or intersection between the kinematic structure 200 and the obstacle 300. As described above, in the target pose determination process, the processing circuit 120 will resolve these overlaps and intersections.

[0097] 7B , as described above, the obstacle 300 is (virtually) removed from the ROI 126, thereby determining an initial collision-free state of the kinematic structure 200 relative to the obstacle 300. It is understood that if the collision-free state is maintained, no collision will occur. For example, (virtually) removing the obstacle 300 from the ROI 126 may be performed by pushing the virtual obstacle from its current position outward from the ROI 126, at least in some instances to infinity, e.g., across the path of future relative motion, e.g., perpendicular to the ROI 126. For example, if the kinematic structure 200 is stationary and the obstacle 300 moves linearly, this may correspond to a linear push of the obstacle 300 from its current position, i.e., its position according to its projection onto the ROI 126, e.g., to infinity. If the kinematic structure 200 is stationary and the obstacle 300 undergoes a time-varying motion with a predictable future path, the obstacle 300 may be extruded across this nonlinear path. As an example, extrusion may resemble the volume swept by the obstacle along its future path.

[0098] Next, as shown in FIG. 7C , at least one obstacle, i.e., obstacle 300, may be reintroduced into ROI 126, and processing circuit 120 may adapt the state of kinematic structure 200 to avoid collision with reintroduced obstacle 300 during the reintroduction of the obstacle 300. For example, processing circuit 120 may be configured to adapt the kinematic chain of kinematic structure 200 to avoid collision during the reintroduction of at least one obstacle, i.e., obstacle 300, into ROI 126. The adapted state of kinematic structure 200 is shown schematically in FIG. 7C by dashed lines representing adapted links 220 and 230. It should be noted that, although two links 220 and 230 of kinematic structure 200 are adapted or manipulated to avoid collision with reintroduced obstacle 300, the number of adaptations is not limited herein. Accordingly, processing circuitry 120 may be configured to adapt elements of the kinematic chain of kinematic structure 200 that are appropriate and / or feasible to avoid collision with obstacle 300. It is further noted that the reintroduction of at least one obstacle, e.g., obstacle 300, may be performed gradually, and processing circuitry 120 may be configured to resolve any overlaps or intersections for each step of the reintroduction.

[0099] It should be noted that while FIG. 7C illustrates the reintroduction of at least one obstacle, i.e., obstacle 300, from above in FIG. 7C, this direction may be different and may be any direction relative to FIG. 7C.

[0100] As shown in FIG. 7D , at the end of reintroduction into ROI 126, at least one obstacle, i.e., obstacle 300, may be in its estimated position. However, due to the collision avoidance performed during reintroduction (see FIG. 7C ), i.e., to adapt the state of kinematic structure 200 accordingly, all overlaps and intersections between kinematic structure 200 and at least one obstacle, i.e., obstacle 300, are eliminated. That is, at least one obstacle, i.e., obstacle 300, is in its estimated position within ROI 126 as illustrated in FIG. 7A , but the state of kinematic structure 200 has been adapted compared to the illustration in FIG. 7A . Therefore, if this adapted state of kinematic structure 200 is used as the target pose, it is possible to avoid collision of kinematic structure 200 with at least one obstacle, e.g., obstacle 300, for the future when ROI 126 is estimated. However, the estimation does this by active collision avoidance rather than reactive avoidance when the obstacle is already in the vicinity of kinematic structure 200. Therefore, a target pose corresponding to or resulting from the fitted state of the kinematic structure 200 as shown in FIG. 7D can be used and provided as the target pose data 121 described above.

[0101] In at least some examples, reintroducing at least one obstacle, e.g., obstacle 300, into ROI 126 may include reintroducing at least one obstacle, e.g., obstacle 300, into ROI 126 from different directions and combining respective adaptations of the state of kinematic structure 200 for each direction. For example, with reference to FIG. 7 , at least one obstacle, e.g., obstacle 300, may be reintroduced from above, from the left, from the right, from below, from the background of the seat, from the front of the seat, etc. The adapted structures and / or target poses for each reintroduction from those directions may then be compared with each other. For example, the one with the most satisfactory characteristics, e.g., the greatest compliance with the current and / or desired state of kinematic structure 200, may be used as the target pose. Alternatively, instead of trying multiple different directions for reintroducing at least one obstacle, the direction may be rule-based using appropriate logic, which may be based, for example, on the size of the obstacle and its position relative to kinematic structure 200. For example, this direction selection can be performed using a suitable classifier such as a neural network trained on artificial training data generated from simulations of different obstacles, obstacle positions, and poses of the kinematic structure.

[0102] To further emphasize the above-mentioned collision avoidance, FIG. 8 illustrates a flow chart of a method 400 for collision avoidance of a kinematic structure. The method includes receiving 410 pose data indicating a desired pose of the kinematic structure and time data indicating an update interval used to control the kinematic structure. Furthermore, the method includes determining 420 a target pose of a collision-free target state of the kinematic structure relative to at least one obstacle based on their current states. Thus, the target pose is determined based on performing at least one target pose determination process, which includes: resolving overlaps or intersections between the kinematic structure and the at least one obstacle by adapting the state of the kinematic structure in a region of interest estimated based on the relative velocity between the kinematic structure and the at least one obstacle according to their current states, as a region of potential collision; and determining the target pose based on the adapted state of the kinematic structure.

[0103] The method 400 may enable effective self-collision avoidance and / or obstacle collision avoidance. By considering the region of interest, i.e., the region of potential collision, in future time, eliminating any overlaps and / or intersections in that region is avoided well in advance before an imminent collision occurs, thus enabling active collision avoidance. That is, the kinematic structure does not need to quickly turn in response to a detected nearby object, but rather the proximity of that object is (actively) avoided from the start. This also allows for improved kinematic structure motion. Furthermore, the method requires only a small amount of computation.

[0104] Details and aspects of method 400 are described in relation to the proposed technology or one or more examples described above (e.g., FIGS. 1-7). Method 400 may include one or more additional optional features corresponding to one or more aspects of the proposed technology or one or more examples described above.

[0105] The following examples relate to further embodiments. (1) A method for collision avoidance of a kinematic structure, comprising: receiving input data indicative of at least a current state of the kinematic structure and a current state of at least one obstacle; determining a collision-free goal state target pose of the kinematic structure relative to the at least one obstacle based on their current state; The target pose is Resolving overlaps or intersections between the kinematic structure and the at least one obstacle by adapting the state of the kinematic structure according to their current states in a region of interest estimated based on the relative velocity between the kinematic structure and the at least one obstacle as a potential collision region; The method is determined based on performing at least one target pose determination process, including determining the target pose based on the fitted state of the kinematic structure. (2) The method according to (1), wherein adapting the state of the kinematic structure includes adapting one or more kinematic chain parameters of the kinematic structure. (3) The method described in (1) or (2), wherein the region of interest is separated from the kinematic structure and / or the at least one obstacle by a relative velocity vector indicating the relative velocity between the kinematic structure and the at least one obstacle. (4) A method according to any one of (1) to (3), wherein the region of interest is estimated by projecting the kinematic structure and / or the at least one obstacle from a first position corresponding to a position according to the current state of the kinematic structure and the at least one obstacle to a second position corresponding to the region of interest using a relative velocity vector indicating the relative velocity between the kinematic structure and the at least one obstacle. (5) A method according to any one of (1) to (4), wherein the kinematic structure includes or is formed from a kinematic chain, and the at least one obstacle is an element of the kinematic chain. (6) The method according to any one of (1) to (5), wherein the at least one obstacle includes an obstacle separate from the kinematic structure. (7) A method according to any one of (1) to (6), wherein resolving overlap or intersection between the kinematic structure and the at least one obstacle includes adapting the state of the kinematic structure to maintain a minimum distance between the kinematic structure and the at least one obstacle. (8) resolving overlaps or intersections between the kinematic structure and the at least one obstacle includes: determining an initial collision-free state of the kinematic structure with respect to the at least one obstacle by removing the at least one obstacle from the region of interest; A method according to any one of (1) to (7), comprising adapting an initial state of the kinematic structure by repeatedly reintroducing the at least one obstacle into the region of interest and performing collision avoidance with respect to the at least one obstacle during reintroduction to obtain the target pose for the region of interest. (9) The method of (8), wherein at the end of reintroduction into the region of interest, the at least one obstacle is at an estimated position for the at least one obstacle. (10) The method of (8) or (9), wherein reintroducing the at least one obstacle into the region of interest includes reintroducing the at least one obstacle into the region of interest from different directions and combining respective adaptations of the state of the kinematic structure for each direction. (11) The method according to any one of (1) to (10), further comprising generating control data for controlling the kinematic structure based on the target pose. (12) A method according to any one of (1) to (11), further comprising performing inverse kinematics on the target pose and generating control data for controlling the kinematic structure based on the inverse kinematics. (13) Performing the inverse kinematics receiving pose data indicative of the target pose of the kinematic structure and time data indicative of an update interval to be used to control the kinematic structure; performing a constrained optimization process on the inverse kinematics of the target pose according to the time data to obtain, for each update interval, one or more kinematic chain parameters associated with a collision-free target state of the kinematic structure; The method of (12), comprising generating control data for controlling the kinematic structure based on the one or more kinematic chain parameters. (14) The method of (13), wherein the optimization process utilizes multiple cost functions and / or constraints to solve multiple objectives. (15) The method of (13) or (14), wherein the optimization process includes penalizing the proximity of the kinematic structure to the at least one obstacle to obtain optimized one or more kinematic chain parameters. (16) A method according to any one of (13) to (15), wherein the optimization process includes imposing a penalty on one or more kinetic chain parameters and / or states of the kinetic chain structure that violate one or more constraints related to hardware limitations of the kinetic chain structure in order to obtain optimized one or more kinetic chain parameters. (17) A method according to any one of (1) to (16), wherein the process of determining the target pose is performed during runtime of the kinematic structure. (18) A method according to any one of (1) to (17), wherein the target pose determination process is performed multiple times on different kinematic structure information data and obstacle information data to obtain a training data set for training a machine learning model for determining the target pose of the kinematic structure, and the method further includes determining the target pose of the kinematic structure by the trained machine learning model during runtime of the kinematic structure. (19) A device for collision avoidance of a kinematic structure, comprising: an interface circuit configured to receive input data indicative of at least a current state of the kinematic structure and a current state of at least one obstacle; a processing circuit configured to determine a collision-free goal state target pose of the kinematic structure relative to the at least one obstacle based on their current state; The processing circuitry Resolving overlaps or intersections between the kinematic structure and the at least one obstacle by adapting a state of the kinematic structure according to their current states in a region of interest estimated based on a relative velocity between the kinematic structure and the at least one obstacle as a potential collision region; An apparatus configured to determine the target pose based on performing at least one target pose determination process, the target pose including determining the target pose based on the fitted state of the kinematic structure. (20) The device according to (19), and a robot device configured to operate based on the target pose. (21) A non-transitory machine-readable medium storing a program having a program code for performing the method according to any one of (1) to (18) when the program is executed on a processor or programmable hardware. (22) A program having a program code for performing the method according to any one of (1) to (18) above when the program is executed on a processor or programmable hardware.

[0106] Aspects and features described in connection with a particular one of the foregoing embodiments may be combined with one or more further embodiments to replace the same or similar features of the further embodiments or to introduce additional features into the further embodiments.

[0107] The embodiments may also be or relate to a (computer) program comprising program code for performing one or more of the above-described methods when the program is run on a computer, processor, or other programmable hardware component. Accordingly, the steps, operations, or processes of different ones of the above-described methods may also be performed by a programmed computer, processor, or other programmable hardware component. The embodiments may also cover a machine, a processor, or a program storage device, such as a computer-readable digital data storage medium, that encodes and / or includes machine-executable, processor-executable, or computer-executable programs and instructions. The program storage device may be or include, for example, a digital storage device, a magnetic storage medium, such as a magnetic disk or magnetic tape, a hard disk drive, or an optically readable digital data storage medium. Other examples may include a computer, a processor, a control unit, a (field) programmable logic array ((F)PLA), (F)PGA), a graphics processor unit (GPU), an ASIC, an integrated circuit (IC), or a system-on-chip (SoC) system programmed to perform the above-described method steps.

[0108] Furthermore, it is understood that the disclosure of several steps, processes, operations, or functions disclosed in this specification or claims should not be construed to imply that these operations are necessarily order dependent unless explicitly stated in individual cases or unless required for technical reasons. Thus, the foregoing description does not limit the execution of several steps or functions to a particular order. Furthermore, in further embodiments, a step, function, process, or operation may be included in and / or divided into several sub-steps, functions, processes, or operations.

[0109] When aspects are described in the context of an apparatus or system, these aspects should also be understood as descriptions of the corresponding method. For example, a block, device, or functional aspect of a device or system may correspond to a feature, such as a method step, of a corresponding method. Thus, aspects described in the context of a method should also be understood as descriptions of the corresponding block, corresponding element, characteristic or functional feature of the corresponding device or corresponding system.

[0110] The following claims are incorporated into the detailed description, with each claim standing on its own as a separate example. It should be noted that, although a dependent claim in the claims implies a specific combination with one or more other claims, other examples may include combining a dependent claim with the features of other dependent or independent claims. Such combinations are expressly suggested herein unless it is stated that a specific combination is not intended in a particular case. Furthermore, features of a claim are intended to be included in other independent claims, even if that claim is not directly defined as dependent on those other independent claims.

Claims

1. 1. A method for collision avoidance of a kinematic structure, comprising: receiving input data indicative of at least a current state of the kinematic structure and a current state of at least one obstacle; determining a collision-free goal state target pose of the kinematic structure relative to the at least one obstacle based on their current state; The target pose is Resolving overlaps or intersections between the kinematic structure and the at least one obstacle by adapting the state of the kinematic structure according to their current state in a region of interest estimated based on the relative velocity between the kinematic structure and the at least one obstacle as a potential collision region; The method is determined based on performing at least one target pose determination process, including determining the target pose based on the fitted state of the kinematic structure.

2. The method of claim 1 , wherein adapting the state of the kinematic structure comprises adapting one or more kinematic chain parameters of the kinematic structure.

3. The method of claim 1 , wherein the region of interest is spaced from the kinematic structure and / or the at least one obstacle by a relative velocity vector indicating a relative velocity between the kinematic structure and the at least one obstacle.

4. 2. The method of claim 1, wherein the region of interest is estimated by projecting the kinematic structure and / or the at least one obstacle from a first position corresponding to a position according to a current state of the kinematic structure and the at least one obstacle to a second position corresponding to the region of interest by a relative velocity vector indicating a relative velocity between the kinematic structure and the at least one obstacle.

5. The method of claim 1 , wherein the kinematic structure includes or is formed from a kinematic chain, and the at least one obstacle is an element of the kinematic chain.

6. The method of claim 1 , wherein the at least one obstacle comprises an obstacle separate from the kinematic structure.

7. 2. The method of claim 1, wherein resolving overlap or intersection between the kinematic structure and the at least one obstacle comprises adapting a state of the kinematic structure to maintain a minimum distance between the kinematic structure and the at least one obstacle.

8. Resolving overlaps or intersections between the kinematic structure and the at least one obstacle includes: determining an initial collision-free state of the kinematic structure with respect to the at least one obstacle by removing the at least one obstacle from the region of interest; 2. The method of claim 1, comprising adapting an initial state of the kinematic structure by iteratively reintroducing the at least one obstacle into the region of interest and performing collision avoidance with respect to the at least one obstacle during reintroduction to obtain the target pose for the region of interest.

9. The method of claim 8 , wherein at the end of reintroduction into the region of interest, the at least one obstacle is at an estimated position for the at least one obstacle.

10. 9. The method of claim 8, wherein reintroducing the at least one obstacle into the region of interest comprises reintroducing the at least one obstacle into the region of interest from different directions and combining respective adaptations of the kinematic structure states for each direction.

11. The method of claim 1 , further comprising generating control data for controlling the kinematic structure based on the target pose.

12. The method of claim 1 , further comprising: performing inverse kinematics on the target pose; and generating control data for controlling the kinematic structure based on the inverse kinematics.

13. performing the inverse kinematics receiving pose data indicative of the target pose of the kinematic structure and time data indicative of an update interval to be used to control the kinematic structure; performing a constrained optimization process on the inverse kinematics of the target pose according to the time data to obtain, for each update interval, one or more kinematic chain parameters associated with a collision-free target state of the kinematic structure; The method of claim 12 , comprising generating control data for controlling the kinematic structure based on the one or more kinematic chain parameters.

14. The method of claim 13 , wherein the optimization process utilizes multiple cost functions and / or constraints to solve multiple objectives.

15. The method of claim 13 , wherein the optimization process includes penalizing the proximity of the kinematic structure to the at least one obstacle to obtain optimized one or more kinematic chain parameters.

16. The method of claim 13, wherein the optimization process includes penalizing such kinematic chain parameters and / or states of the kinematic chain structure that violate one or more constraints related to hardware limitations of the kinematic chain structure in order to obtain optimized one or more kinematic chain parameters.

17. The method of claim 1 , wherein the process of determining the desired pose is performed during runtime of the kinematic structure.

18. 2. The method of claim 1, wherein the target pose determination process is performed multiple times on different kinematic structure information data and obstacle information data to obtain a training data set for training a machine learning model for determining the target pose of the kinematic structure, and the method further includes determining the target pose of the kinematic structure by the trained machine learning model during runtime of the kinematic structure.

19. 1. A device for collision avoidance of a kinematic structure, comprising: an interface circuit configured to receive input data indicative of at least a current state of the kinematic structure and a current state of at least one obstacle; a processing circuit configured to determine a collision-free goal state target pose of the kinematic structure relative to the at least one obstacle based on their current state; The processing circuitry Resolving overlaps or intersections between the kinematic structure and the at least one obstacle by adapting a state of the kinematic structure according to their current states in a region of interest estimated based on a relative velocity between the kinematic structure and the at least one obstacle as a potential collision region; An apparatus configured to determine the target pose based on performing at least one target pose determination process, the process including determining the target pose based on a fitted state of the kinematic structure.

20. 20. The apparatus of claim 19; a robot device configured to operate based on the target pose.