Acceleration of direct and indirect movements
Patent Information
- Application Number
- CN202280040392.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-04-30
- Filing Date
- 2022-03-30
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2042-03-30
AI Technical Summary
一方面,这样的计算通常是非常苛刻的,尤其如果问题的解析解是不可能的
Smart Images

Figure CN117425548B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to apparatus and methods for controlling parallel, series and mixed motions. Background Technology
[0002] A common problem in controlling robots is calculating their direct and indirect motions. On the one hand, such calculations are often very demanding, especially if an analytical solution to the problem is impossible. On the other hand, many applications require calculations to be performed quickly and with high accuracy. Summary of the Invention
[0003] Therefore, the purpose of this invention is to improve robot control through more efficient calculation of direct and indirect motion.
[0004] The concept behind this invention is to estimate the direct / indirect motion of a motion system based on local support points.
[0005] According to a first aspect of the present invention, a method for controlling a motion system is provided. The method includes the step of determining the spatial cell containing a target pose of the motion system from a plurality of pre-specified spatial cells in the workspace of the motion system. The method further includes the step of estimating a configuration vector of motion associated with the target pose based on indirect motion. The estimation is performed based on interpolation of the indirect motion, wherein the interpolation of the pose in the determined spatial cell is based on predetermined configuration vectors, each predetermined configuration vector being associated with a boundary point of the determined spatial cell according to the indirect motion. Furthermore, the method includes the steps of determining a target configuration vector using the estimated configuration vectors and actuating the motion having the target configuration vector.
[0006] According to a second aspect of the invention, a control device for controlling a motion system is provided. The control device is configured to: determine, from a plurality of pre-designated spatial units in the workspace of the motion system, the spatial unit containing a target pose of the motion system. The control device is further configured to estimate a configuration vector of the motion system associated with the target pose based on indirect motion. The estimation is performed based on interpolation of the indirect motion, wherein the interpolation of the pose in the determined spatial unit is based on predetermined configuration vectors, each predetermined configuration vector being associated with a boundary point of the determined spatial unit according to the indirect motion. Furthermore, the control device is configured to: determine a target configuration vector using the estimated configuration vectors; and actuate a motion having the target configuration vector.
[0007] For example, when determining the target configuration vector, an iterative method can be used to compute the target configuration vector, wherein the starting vector of the iterative method is selected based on the estimated configuration vector. Alternatively, when determining the target configuration vector, the estimated configuration vector can also be used as the target configuration vector.
[0008] Multiple pre-designated spatial units can represent the division of the workspace into sections. This division can be based, for example, dividing the workspace into spatial units of the same size, and / or subdividing the workspace coordinates into corresponding intervals. Furthermore, the pre-designated spatial units can typically have different sizes, and the workspace can be divided into hierarchical sections.
[0009] Typically, the boundary points associated with the predetermined configuration vector may include or be corner points of pre-specified spatial units.
[0010] Typically, one or more of the pre-specified spatial units may be hyperrectangles, and the interpolation used for the pose in one or more of the pre-specified spatial units that are hyperrectangles may include or be multilinear interpolation. Alternatively or additionally, one or more of the pre-specified spatial units may be simplexes, and the interpolation used for the pose in one or more of the pre-specified spatial units may include or be centroid interpolation.
[0011] Interpolation for the pose in one of the pre-specified spatial units can be based on a sum of spatial unit interpolation and correction interpolation. Here, correction interpolation can be a corresponding centroid interpolation in each of a plurality of d-similarity dividing the pre-specified spatial unit, wherein at least one corner point of one of the d-similarity is located inside the pre-specified spatial unit, and d is the dimension of the pre-specified spatial unit. For each d-similarity, a corresponding centroid interpolation function is provided, i) assigning a function value to each of the corner points of the d-similarity located within the pre-specified spatial unit, the function value corresponding to the difference between: the configuration vector associated with the corner point according to indirect motion; and the configuration vector associated with the corner point according to the spatial unit interpolation; and ii) assigning 0 as a function value to the corner points of the d-similarity located on the surface of one of the pre-specified spatial units.
[0012] Interpolation for the pose in each of the plurality of pre-specified spatial units can be based on a sum of correction interpolation and spatial unit interpolation associated with the pre-specified spatial unit. The correction interpolation here can be a corresponding centroid interpolation in each of a plurality of d-similarity bodies that divide the union of the plurality of pre-specified spatial units, wherein at least one corner point of one of the d-similarity bodies is located within the union, and d is the dimension of the pre-specified spatial unit. For each d-similarity body, a corresponding centroid interpolation function is provided, i) assigning a function value to each of the corner points of the d-similarity body located within the union, the function value corresponding to the difference between: the configuration vector associated with the corner point based on indirect motion; and the configuration vector associated with the corner point based on the spatial unit interpolation associated with the pre-specified spatial unit where the corner point is located, and ii) assigning 0 as a function value to the corner points of the d-similarity bodies located on the surfaces of the plurality of pre-specified spatial units.
[0013] In some embodiments of the first aspect, the method includes the steps of providing a plurality of the pre-specified spatial units and the predetermined configuration vector, including: obtaining the pre-specified spatial units by performing or reading in a portion of the workspace; and obtaining the predetermined configuration vector by calculating indirect motion or reading in.
[0014] Therefore, in some embodiments of the second aspect, the control device is configured and / or can be controlled to provide a plurality of the pre-specified spatial units and the predetermined configuration vector, the provision including: obtaining the pre-specified spatial units by performing or reading in the partitioning of a portion of the workspace; and obtaining the predetermined configuration vector by calculating indirect motion or reading in.
[0015] In some embodiments of the first aspect, the method includes the step of adjusting a plurality of pre-designated spatial units and a predetermined configuration vector, comprising: adding a plurality of new spatial units to the plurality of pre-designated spatial units formed by dividing a pre-designated spatial unit; removing the one pre-designated spatial unit from the plurality of pre-designated spatial units; and providing the predetermined configuration vectors, each predetermined configuration vector being associated with a point that is a non-corner point of the one pre-designated spatial unit: if the point is a non-boundary point of the one pre-designated spatial unit, by calculating an indirect motion or by reading in; and if the point is a boundary point of the one pre-designated spatial unit, by interpolation estimation based on the indirect motion.
[0016] Therefore, in some embodiments of the second aspect, the control device is configured and / or capable of controlling the adjustment of a plurality of the pre-designated spatial units and the predetermined configuration vectors, the adjustment comprising: adding a plurality of new spatial units to the plurality of the pre-designated spatial units by dividing a pre-designated spatial unit; removing the pre-designated spatial unit from the plurality of the pre-designated spatial units; and providing the predetermined configuration vectors, each predetermined configuration vector being associated with a point that is a non-corner point of the pre-designated spatial unit: if the point is a non-boundary point of the pre-designated spatial unit, by calculating an indirect motion or by reading in; and if the point is a boundary point of the pre-designated spatial unit, by interpolation estimation based on the indirect motion.
[0017] According to a third aspect of the invention, a method for controlling a motion system is provided. The method includes the steps of determining a current configuration vector of the motion system, and determining the spatial cell containing the determined configuration vector from a plurality of pre-specified spatial cells in the configuration space of the motion system. The method further includes the step of estimating a current pose of the motion system associated with the determined configuration vector based on direct motion. The estimation is performed based on interpolation of direct motion, wherein the interpolation of the configuration vector in the determined spatial cell is based on a predetermined pose of the motion system, each predetermined pose being associated with a boundary point of the determined spatial cell based on direct motion. The method further includes the steps of determining a current pose using the estimated pose and outputting the determined current pose.
[0018] According to a fourth aspect of the present invention, a control device for controlling a motion system is provided. The control device is configured to determine a current configuration vector of the motion system. The control device is further configured to determine, from a plurality of pre-specified spatial cells in the configuration space of the motion system, the spatial cell in which the determined configuration vector resides. Furthermore, the control device is configured to estimate the current pose of the motion system associated with the configuration vector determined based on direct motion. The estimation is performed based on interpolation of the direct motion, wherein the interpolation of the configuration vector in the determined spatial cell is based on a predetermined pose of motion, each motion being associated with a boundary point of the determined spatial cell according to the direct motion. Furthermore, the control device is configured to determine the current pose using the estimated pose and output the determined current pose.
[0019] When the current pose is determined, for example, it can be computed using an iterative method, where the starting vector for the iterative method is chosen based on the estimated pose. Alternatively, the current pose can be determined to be an estimated pose, as an alternative to computation using an iterative method.
[0020] Multiple pre-specified spatial units can represent the division of a configuration space. For example, the division of a configuration space can be based on dividing it into spatial units of the same size, and / or subdividing the configuration space coordinates into corresponding intervals. Furthermore, the pre-specified spatial units can typically have different sizes, and the configuration space can be divided hierarchically.
[0021] Typically, boundary points associated with a predetermined pose may include or be corner points of pre-specified spatial units.
[0022] Typically, one or more of the pre-specified spatial units may be hyperrectangles, and the interpolation used for the configuration vectors in the one or more of the pre-specified spatial units that are hyperrectangles may include or be multilinear interpolation. Alternatively or additionally, one or more of the pre-specified spatial units may be simplexes, and the interpolation used for the configuration vectors in the one or more of the pre-specified spatial units may include or be centroid interpolation.
[0023] Interpolation for the configuration vector in one of the pre-specified spatial units can be based on a sum of spatial unit interpolation and correction interpolation. Correction interpolation can be a corresponding centroid interpolation in each of a plurality of d-similarity dividing the pre-specified spatial units, wherein at least one corner point of one of the d-similarity is located inside the pre-specified spatial unit, and d is the dimension of the pre-specified spatial unit. For each d-similarity, a corresponding centroid interpolation function is provided, i) assigning a function value to each of the corner points of the d-similarity located within the pre-specified spatial unit, the function value corresponding to the difference between: the pose associated with the corner point according to indirect motion; and the pose associated with the corner point according to the spatial unit interpolation; and ii) assigning 0 as a function value to the corner points of the d-similarity located on the surface of the pre-specified spatial unit.
[0024] The interpolation of the configuration vector of each of the plurality of pre-specified spatial units can be based on the sum of a correction interpolation and a spatial unit interpolation associated with the pre-specified spatial unit. Here, the correction interpolation can be the corresponding centroid interpolation in each of the plurality of d-similarity bodies that divide the union of the plurality of pre-specified spatial units, wherein at least one corner point of one of the d-similarity bodies is located within the union, and d is the dimension of the pre-specified spatial unit. For each similarity body, a corresponding centroid interpolation function is provided, i) assigning a function value to each of the corner points of the d-similarity body located within the union, the function value corresponding to the difference between: the pose associated with the corner point based on direct motion, and the pose associated with the corner point based on the spatial unit interpolation associated with the pre-specified spatial unit where the corner point is located, and ii) assigning 0 as a function value to the corner points of the d-similarity bodies located on the surfaces of the plurality of pre-specified spatial units.
[0025] In some embodiments of the third aspect, the method includes the steps of providing a plurality of the pre-specified spatial units and the predetermined pose, including: obtaining the pre-specified spatial units by performing or reading in a portion of the configuration space; and obtaining the predetermined pose by calculating or reading in a direct motion.
[0026] Therefore, in some embodiments of the fourth aspect, the control device is configured and / or capable of controlling the steps of providing a plurality of the pre-specified spatial units and the predetermined pose, including: obtaining the pre-specified spatial units by performing or reading in the partitioning of a portion of the configuration space; and obtaining the predetermined pose by calculating or reading in direct motion.
[0027] In some embodiments of the first aspect, the method includes the step of adjusting a plurality of pre-designated spatial units and the predetermined poses, comprising: adding a plurality of new spatial units to the plurality of pre-designated spatial units formed by dividing a pre-designated spatial unit; removing the pre-designated spatial unit from the plurality of pre-designated spatial units; and providing the predetermined poses, each predetermined pose being associated with a point that is a non-corner point of the pre-designated spatial unit: if the point is a non-boundary point of the pre-designated spatial unit, by calculating a direct motion or reading in; and if the point is a boundary point of the pre-designated spatial unit, by interpolation estimation based on the direct motion.
[0028] Therefore, in some embodiments of the fourth aspect, the control device is configured to adjust a plurality of the pre-designated spatial units and the predetermined pose, the adjustment comprising: adding a plurality of new spatial units to the plurality of the pre-designated spatial units by dividing a pre-designated spatial unit; removing the pre-designated spatial unit from the plurality of the pre-designated spatial units; and providing these predetermined configuration vectors, each predetermined configuration vector being associated with a point that is a non-corner point of the pre-designated spatial unit: if the point is a non-boundary point of the pre-designated spatial unit, by calculating an indirect motion or by reading in; and if the point is a boundary point of the pre-designated spatial unit, by interpolation estimation based on the indirect motion. Attached Figure Description Further details, advantages, and features of the invention will emerge from the following description and drawings, in which reference is made explicitly to all details not described herein, wherein: Figure 1 A schematic diagram illustrating the series motion is shown.
[0029] Figure 2 A schematic diagram illustrating parallel motion is shown.
[0030] Figure 3 A schematic diagram illustrating the relationship between configuration space, workspace, direct motion, and indirect motion is shown.
[0031] Figure 4 The function values of the bilinear interpolation of the example function are shown.
[0032] Figure 5 The barycentric interpolation function value of the example function is shown.
[0033] Figure 6 This demonstrates adding a function to the bilinear interpolation of the example function.
[0034] Figure 7 The trilinear interpolation of the example function is shown.
[0035] Figure 8 This shows a function value that is added to a support point that deviates significantly from the function value of an existing support point located nearby.
[0036] Figure 9 Showing from Figure 8 Zoomed-in details.
[0037] Figure 10 Different subdivisions of the leg offset intervals of the hexapod robot are shown.
[0038] Figure 11 Two exemplary complementary support point grids are shown.
[0039] Figure 12 Two exemplary complementary support point grids are shown.
[0040] Figure 13 This diagram illustrates how the space for configuring a tripod is divided into non-intersecting cuboids.
[0041] Figure 14 An example of determining new support points after dividing a cuboid is shown.
[0042] Figure 15 The new support points are shown after the division in the one-dimensional case.
[0043] Figure 16 A flowchart illustrating the demonstration steps for controlling the robot is shown.
[0044] Figure 17 A flowchart illustrating the demonstration steps for controlling the robot.
[0045] Figure 18 A block diagram of a demonstration device for controlling a robot is shown. Detailed Implementation
[0046] The present invention relates to a method for controlling a motion system (e.g., a robot), and a control device for controlling a motion system configured to perform such a method.
[0047] sports In robotics, a fundamental distinction is made between the main categories of series and parallel motion. Series motion consists of a series of links (such as linear axes and / or rotational axes) forming an open kinematic chain, while parallel motion consists of multiple closed kinematic chains. This will be explained in more detail below. Furthermore, there exists so-called hybrid motion, which represents a combination of the previously mentioned parallel and series motions.
[0048] This invention can be applied equally to all movements for more efficient calculations. This can be used to accelerate calculations and / or increase their accuracy. Additionally or alternatively, it may be possible to reduce the computational requirements of the control unit that controls the robot, for example, by using the increased computational efficiency.
[0049] Series motion Sequential motion refers to the classic structure of an open kinematic chain, in which the axes of motion are arranged one after another in sequence. A kinematic chain is understood as a series of several entities (links of a chain) connected to each other by joints for movable movement. The links of the chain can be rigid bodies or, for example, length-adjustable elements. In robotics, they are also called arm / leg components.
[0050] Joints connect two links and can have different degrees of freedom. The arrangement and type of joints and links affect the trajectory that can be described by the individual links. Kinematic chains play an important role in planning and calculating the possible movements of industrial and other robots.
[0051] A classic example of serial motion is the SCARA robot (short for "Selective Compliance Assembly Robot Arm"), where the determined pose is typically achieved using two different configuration vectors.
[0052] Figure 1 An exemplary series of movements with several links and joints is schematically shown. As illustrated, these links can move linearly in more than one direction, can perform rotational movements in a plane, have an articulated structure, and / or have adjustable lengths.
[0053] For sequential motion, the calculation of direct motion is usually fast and easy because it can be derived step-by-step, link-by-link, joint-by-joint, to the end effector. On the other hand, indirect motion in sequential motion is usually neither analyzable nor clear, and for this reason, its calculation is usually more complex and iterative.
[0054] Parallel motion Parallel motion refers to motion consisting of multiple closed kinematic chains. In practice, parallel linkages connecting two planes that need to move relative to each other are often used for parallel-extending axes of motion. Therefore, each actuator is directly connected to the (end-effector) actuator (e.g., a tool holder). This means that the actuators do not carry the mass of all subsequent links and actuators as in serial motion. Because all actuators move simultaneously, i.e., in parallel with each other, the load is distributed (more) evenly among all the guiding elements. The resulting low self-weight allows for high-speed and high-acceleration limiting dynamics combined with high mechanical accuracy. Another difference from serial mechanics is that in parallel motion, the actuators (especially motors and gears) remain stationary. This optimizes not only the dynamics and performance of such robots but also their energy balance. Therefore, parallel motion is frequently used when simple motion sequences with high repeatability and speed are required. Classic examples of parallel motion are hexapod and delta robots.
[0055] Figure 2 A demonstrative parallel motion with 6 linkages (i.e., variable-length legs) and 12 passive joints is schematically shown. Therefore, the motion shown is that of a Stewart platform, also referred to in this document as a hexapod robot.
[0056] For parallel motion, the situation is usually the opposite of that for serial motion: indirect motion can typically be calculated quickly and easily, especially because the positions of the joints of different kinematic chains can be calculated separately. On the other hand, the calculation of direct motion in parallel motion is often complex and usually iterative because the links of several or all kinematic chains must be considered simultaneously.
[0057] However, for parallel motion, calculating the reverse motion can be complex. For example, in a hexapod with double-hinge joints, the positions of the double-hinge joints (U-joints or universal joints whose axes do not intersect at a single point) cannot be determined arbitrarily and are therefore typically determined iteratively for each leg individually. If the direct motion of such a robot is calculated, the results result in nested iterations. In other words, each iterative step used to calculate the direct motion includes six iterations to calculate the indirect motion.
[0058] Workspace (posture parameters) Generally, pose is understood as a combination of an object's position and orientation. Therefore, a pose can be specified, for example, by three Cartesian coordinates and three azimuth angles in what is called a world coordinate system or fundamental coordinate system. The world coordinate system is immutable in space and independent of the robot's motion. Thus, pose is given in world coordinates. Therefore, the description of pose is spatially dependent, i.e., describing position and orientation in "real" space. However, pose can also be specified using other coordinates or parameters (undoubtedly). In the following text, the term pose parameter generally refers to these coordinates or parameters used to specify a pose. Here, pose corresponds to definite values for each of the pose parameters corresponding to the pose. These values can be combined to form a vector of pose parameters that explicitly characterize the pose. Conversely, pose is defined or specified by specifying a vector of pose parameters, i.e., by specifying a value for each pose parameter. Pose parameters can also be, in particular, "normal" world coordinates (e.g., three spatial coordinates for specifying position and three angles for specifying orientation).
[0059] The term "posture" here refers to the posture of the end effector of the corresponding motion. For example, an end effector is the last link in a kinetic chain. Typically, it is a part or component used to perform an actual processing task. In other words, the actuator causes the robot (i.e., motion) to actually interact with its environment. An end effector can be, in particular, a tool, tool rack, jig, or platform to be moved (e.g., in the case of a hexapod).
[0060] The pose space or workspace currently refers to the space of theoretically conceivable poses, that is, the set of possible positions of a rigid body in space. Thus, a pose corresponds to a point in the pose space. The pose space can be identified by a special Euclidean group SE(3), which consists of all rotations and translations in Euclidean space. Each element from SE(3) corresponds (precisely) to a pose (and vice versa). More specifically, an element is identified by the pose produced by applying an element from SE(3) to a given reference pose. There are many parameterizations of either the workspace or SE(3). One possible parameterization is to specify displacement plus gimbal angle. The displacement can be specified, for example, by the distance to a reference point in Cartesian coordinates. The gimbal angle represents the orientation. In addition to the gimbal angle, actual Euler angles can also be used.
[0061] It should be further noted that robots typically cannot actually achieve any random pose in pose space. On the one hand, the poses that can actually be presented are limited by the geometry of the motion, especially the length of the links. Furthermore, the robot does not necessarily have six degrees of freedom in its joints. In this case, the space of poses that can actually be presented is usually not six-dimensional, and the pose can be specified by fewer than six parameters. For example, one can imagine that the robot's motion degrees of freedom (the position of the actuators) are restricted to a single plane.
[0062] The time path of the postures a robot takes during movement is called its trajectory.
[0063] Configuration space (joint coordinates) Configuration space refers to the space in which various machine parts (joints, arms, etc.) can be configured. Therefore, it is a dimension with independent degrees of freedom of motion. These degrees of freedom can be joint angles and / or, for example, the length of adjustable elements (arms / legs). The individual joint coordinates (angles, lengths) can be combined to form configuration vectors, i.e., vectors in the configuration space. This corresponds to representing the configuration space as a Cartesian product of the individual value ranges (angle ranges and / or length ranges) corresponding to the joint coordinates.
[0064] For example, for the Stewart platform (also known as a hexapod robot), the configuration space is given by the lengths of the six variable legs, and the configuration vector specifies the corresponding length of each of the six legs. Configuration space of a hexapod robot. Therefore, it can be understood as the Cartesian product of individual intervals corresponding to the possible lengths of the leg.
[0065]
[0066] in, and Let represent the minimum and maximum possible (allowed or used) lengths of the i-th leg, respectively.
[0067] direct motion like Figure 3 As shown, direct motion, forward motion, or forward transformation involves determining the pose (position and orientation) of an end effector based on given joint angles and / or the given length of adjustable links of the robot. It is the logical counterpart of indirect motion. Therefore, direct motion allows the calculation of pose based on given leg lengths and / or leg angles, i.e., based on a given configuration vector, and corresponds to mapping the configuration space to the workspace.
[0068] When motion needs to follow a trajectory and continuous control is involved, the posture may not be known with 100% accuracy without reading the leg length via subsequent direct motion. Therefore, direct motion can be used for control purposes while the motion system is in motion. Here, the leg length is read, and the actual current position is calculated based on it. The calculated posture can then be output (at high frequency) through the interface.
[0069] Direct motion can also be used to subsequently calculate and control trajectories based on leg lengths recorded during travel / movement (e.g., in a robot's controller). There are also posture control methods that directly control posture rather than leg length, requiring subsequent rapid calculation of the posture from the leg length.
[0070] Finally, it should be mentioned that calculating direct motion can be useful when a motion system (e.g., a hexapod robot) stops while moving (e.g., due to a power failure) but the legs have absolute encoders. Using direct motion to determine the current posture allows the robot to resume operation and continue to be controlled seamlessly.
[0071] Indirect movement Indirect motion, reverse motion, or backward transformation converts the actuator's position and orientation, given by world coordinates or posture parameters, into the coordinates of each joint, such as... Figure 3 As shown, this is therefore the logical counterpart of direct motion, and corresponds to mapping the workspace to the configuration space. Therefore, indirect motion allows the calculation of joint angles and / or lengths of links from a given pose. It should be noted here that indirect motion does not need to be explicit. In other words, a given pose can be achieved through different configuration vectors. This is often the case with SCARA robots, for example. Several datasets, including pre-specified spatial cells and support points, are then stored for mapping the workspace to the configuration space. In other words, several estimation functions can then be stored, wherein one estimation function is selected for estimating the pose, for example, based on the last known pose.
[0072] In cases where a specific pose (target pose) needs to be presented, and therefore a joint configuration corresponding to the target pose is required, the calculation of indirect motion is often necessary. The motion can then be actuated using the identified configuration vectors to present the target pose. This actuation may include calculating a path in the configuration space based on the current configuration vector and a configuration vector corresponding to the target pose, serving as the starting or ending point of the path. Thus, the motion can traverse a trajectory, with the endpoint corresponding to the target pose.
[0073] Estimation function According to the present invention, direct motion or indirect motion is replicated respectively through estimation functions. Therefore, the estimation function for direct motion maps the configuration space to the workspace, and the estimation function for estimating indirect motion maps the workspace to the configuration space. It should also be noted that the present invention can also be used for accelerated computation of mapping configuration space to configuration space and mapping workspace to workspace. The following description of the estimation functions primarily addresses the two cases of estimation functions for estimating direct and indirect motion. However, it should be noted that all statements given herein apply in a similar manner to estimation functions for direct and indirect motion, as well as other mappings from configuration space or workspace to configuration space or workspace.
[0074] Figure 16 An exemplary method for controlling a motion system according to an exemplary embodiment is illustrated. The method includes step S1600, wherein a spatial cell containing a target pose of the motion is determined (S1600). A spatial cell is determined / selected from a plurality of pre-specified spatial cells in the workspace of the motion (S1600). The method further includes step S1620, wherein a configuration vector of the motion system associated with the target pose is estimated based on indirect motion (S1620). This estimation step is performed based on interpolation of the indirect motion (S1620). For determining the pose in the spatial cell, the interpolation here is based on predetermined configuration vectors, each of which is associated with a boundary point of the determined spatial cell according to the indirect motion (this can also be applied to poses in spatial cells other than the pre-specified spatial cells). The method further includes step S1640: determining a target configuration vector (S1640) using the configuration vector estimated in S1620, and step S1660 actuating motion (S1660) having the target configuration vector.
[0075] Accordingly, according to another exemplary embodiment, a control device 1800 for controlling a motion system is provided. For example... Figure 18As shown, the control device 1800 is configured to determine the spatial cell containing the target pose of the motion from a plurality of pre-specified spatial cells in the workspace of motion. The control device 1800 is also configured to estimate a configuration vector of motion associated with the target pose based on indirect motion. This estimation is performed based on interpolation of the indirect motion. For determining the pose in the spatial cell, the interpolation here is based on predetermined configuration vectors, each of which is associated with a boundary point of the determined spatial cell according to the indirect motion. The control device 1800 is further configured to determine a target configuration vector using the estimated configuration vectors, and to actuate the motion having the target configuration vector.
[0076] according to Figure 17 Another exemplary embodiment shown provides a method for controlling a motion system. The method includes step S1700, determining a current configuration vector of the motion. The method further includes step S1720, determining one or more spatial cells containing the configuration vector determined in S1720 from a plurality of pre-specified spatial cells of the motion's configuration space. The method further includes step S1740, estimating the current pose of the motion, the current pose being associated with a determined configuration vector based on the direct motion of the motion system. This estimation S1740 is performed based on interpolation of the direct motion. For determining the configuration vector in the spatial cell, the interpolation here is based on a predetermined pose of the motion, each pose being associated with a boundary point of the determined spatial cell based on the direct motion. The method further includes: step S1760, determining a current pose S1760 using the estimated pose S1740; and step S1780, outputting the determined current pose S1760 (e.g., outputting to a screen or interface).
[0077] Accordingly, according to another exemplary embodiment, a control device 1800 for controlling a motion system is provided. This control device 1800 in… Figure 18 The diagram shows a configuration to determine the current configuration vector of the motion. The control device 1800 is also configured to determine (e.g., select) the spatial cell containing the determined configuration vector from a plurality of pre-specified spatial cells of the motion's configuration space. The control device 1800 is further configured to estimate the current pose of the motion, which is associated with the determined configuration vector based on the direct motion of the motion system. This estimation is performed based on interpolation of the direct motion. For determining the configuration vector in the spatial cell, the interpolation here is based on a predetermined pose of the motion, each pose being associated with a boundary point of the determined spatial cell based on the direct motion. The control device 1800 is further configured to use the estimated pose to determine the current pose and output the determined current pose (e.g., output to a screen or interface).
[0078] The control device 1800 can be implemented in any random hardware. For example, it can run as software on a programmable processor 1810. Alternatively, a dedicated hardware unit can represent the control device 1800. A mixture of dedicated hardware and programmable hardware can exist. In an advantageous embodiment, the control device 1800 is distributed, and its functions can be executed separately on several processors 1810, 1820, or hardware units. In particular, functions controlling series or parallel movements can be performed by a local control device, and interpolation calculations and / or space-to-space unit partitioning can be performed in an external device, such as a computer. Other configurations are possible.
[0079] Because the estimation function according to the invention is based on interpolation, the estimation function itself is also referred to as interpolation. As will be explained later, the estimation function / interpolation according to the invention is piecewise, meaning it consists of individual partial functions, which are also referred to as partial interpolations.
[0080] By using the estimation function / interpolation according to the invention, the computation of direct or indirect motion can be greatly accelerated because the estimation function itself requires only a small amount of computational work. Specifying a higher accuracy for the estimation function (in practice) does not result in increased computation time, but only increased memory requirements. Therefore, estimation functions with very high accuracy levels can be implemented and used, for example, for direct pose control (pose state control), fast pose lookup, etc. In particular, because the estimation function is piecewise, the increase in memory as accuracy increases can be controlled, since accuracy only increases as needed. Due to the ability to achieve high accuracy levels, in some applications, the estimation function can further replace precisely performed backward or forward transformations or additional numerical or iterative computations of backward or forward transformations. Therefore, the numerous supporting points make the presented estimation function particularly interesting and open up further possible applications. This is facilitated by increasing the availability of large memory regions, which correspondingly further increases the power of the presented function.
[0081] For tracking applications (e.g., target tracking in astronomy), where attitude deviations need to be corrected, it is preferable to use an estimation function instead of conventional attitude calculations. If matrix multiplication (the Jacobian matrix) is used locally to replace the conventional correction of attitude deviations in tracking applications, a generally sufficiently accurate approximation of the Jacobian matrix can be determined based on the estimation function of the inverse motion. Furthermore, in scanning applications, typically only relative attitude deviations matter, or the attitude deviation is fed back by measurements. Regularized motion can often be replaced by the estimation function or the matrix determined therefrom.
[0082] For example, since the configuration vector determined by conventional iterative methods is also a numerically approximate configuration vector, i.e., not the exact (seeking) configuration vector, it should be noted that the term "estimated configuration vector" always refers to the configuration vector estimated using the interpolation according to the invention, unless it is clear from the context that this is not the case. Similarly, the term "estimated pose" always refers to the pose estimated using the interpolation according to the invention, unless it is clear from the context that this is not the case.
[0083] Pre-specified spatial units The estimation function according to the invention is piecewise. This means that the estimation function consists of many partial functions. These partial functions are typically distinct and are used only for a portion of the domain of the estimation function. The domain of the estimation function is thus subdivided into partial regions. These partial regions are currently referred to as pre-specified spatial cells. Each pre-specified spatial cell is therefore associated with a partial function used to interpolate / estimate direct / indirect motion for a configuration vector / pose located within (or on) that pre-specified spatial cell. These partial functions are also currently referred to as partial interpolation. For a pose / configuration vector located within a given pre-specified spatial cell, the estimation function thus corresponds to the partial interpolation associated with that given pre-specified spatial cell.
[0084] If this is an estimation function used to estimate indirect motion, then the pre-specified spatial units typically represent a partition of the workspace or the entire workspace. However, if this is an estimation function used to estimate direct motion, then the pre-specified spatial units typically represent a partition of the configuration space or the entire configuration space. Therefore, pre-specified spatial units (i.e., combinations thereof) can respectively form only a part of the workspace or the configuration space. In other words, the domain of the estimation function can (but does not need to) be either the entire workspace or the configuration space.
[0085] It should be noted that the division now refers to the determination of pre-designated spatial units so that they do not overlap with each other, or only with their surfaces (boundaries). Since any two pre-designated spatial units have at most a common boundary point, i.e., since all common points—if they exist—lie on the boundaries of the two pre-designated spatial units, the pre-designated spatial units are now also referred to as disjoint for simplification.
[0086] The pre-specified spatial cell can have the same size as the domain of the estimation function, i.e., the same size as the workspace (for the estimation function of indirect motion) or the configuration space (for the estimation function of direct motion). The pre-specified spatial cells (especially one, several, or all) can, in particular, be polyhedra, hyperrectangles, or cuboids with the same size as the domain. Except for the poses located at the boundary points of the pre-specified spatial cell, each pose of the workspace partitioned by the pre-specified spatial cell, or each pose of a portion of the workspace, is thus located (in the case of the estimation function of indirect motion) within exactly one pre-specified spatial cell. Similarly (in the case of the estimation function of direct motion), except for the configuration vectors located at the boundary points of the pre-specified spatial cell, each configuration vector of the configuration space partitioned by the pre-specified spatial cell, or each configuration vector of a portion of the configuration space, is located within exactly one pre-specified spatial cell. In particular, each pose or each configuration vector (including those located at the boundary points) can be associated with a pre-specified spatial cell used to compute indirect or direct motion.
[0087] For example, if an estimation function is used to estimate indirect motion, the spatial cell containing the pose (target pose) can first be determined, along with the configuration vector associated with that pose (step S1600). Here, the spatial cell is selected from pre-specified spatial cells in the workspace. For example, if the target pose is located within a pre-specified spatial cell, the pre-specified spatial cell containing the target pose can be determined / selected. If the target pose is located on the boundary of several pre-specified spatial cells, any random spatial cell within the pre-specified spatial cells on that boundary can be determined / selected. Since the estimation function is continuous, it is irrelevant which pre-specified spatial cell is selected for estimating the pose.
[0088] However, if the estimation function is used to estimate direct motion, then the spatial cell containing the given configuration vector is first determined to estimate the pose associated with the configuration vector (step S1720). Here, this pre-specified spatial cell is selected from pre-specified spatial cells in the configuration space. If the given configuration vector lies within a pre-specified spatial cell, for example, the pre-specified spatial cell containing the given configuration vector can be determined / selected; if the given configuration vector lies on the boundary of several pre-specified spatial cells, any random spatial cell within the pre-specified spatial cells on its boundary can be determined / selected. Since the estimation function is continuous, it is irrelevant which pre-specified spatial cell is selected for estimating the configuration vector.
[0089] It is important to note that the domain of the estimated function can be extended later, for example, through extrapolation. If the domain of the configuration space is separate from a point, then multilinear interpolation will work, for example, based on "multilinear extrapolation." Therefore, it is also possible to evaluate leg length combinations that do not belong to any pre-specified spatial unit / cuboid. This also means that the estimated function can be continuously and "perceptibly" continued in the near region outside the domain of direct or indirect motion.
[0090] In some embodiments, pre-specified spatial cells have different sizes and represent hierarchical partitioning. Hierarchical partitioning can begin by uniformly dividing the domain into spatial cells of the same size and shape (e.g., d-dimensional hyperrectangles). If one of these spatial cells does not meet a certain criterion, it is subdivided into multiple spatial cells (e.g., a d-dimensional hyperrectangle can be divided into 2^d congruent d-dimensional hyperrectangles by halving its edges), and if the criterion is not met, it is further subdivided. This is repeated recursively until each spatial cell meets a defined criterion. For example, this criterion could be a measure of the accuracy of the estimated function. Possible criteria are, for example, i) the difference between the estimated function and the function to be interpolated at the center of the spatial cell is less than or equal to a certain value, and / or ii) the maximum difference between two function values at support points is less than or equal to a certain value. Different criteria can be chosen for different regions of the domain, or the criteria can be the same everywhere. Hierarchical partitioning allows the size of the pre-specified spatial cells to adapt to the local behavior of the function to be interpolated and / or local increases in the accuracy of the estimated function. In other words, the density of pre-specified spatial cells or the accuracy of the estimation function can only be increased in relevant places (i.e., precisely), so the increase in required memory space is limited.
[0091] Typically, partitioning can also be based on dividing into spatial cells of the same size. In particular, pre-specified spatial cells can be identical to each other, having the same volume. This allows for the rapid determination of pre-specified spatial cells belonging to a given configuration vector (an estimation function of direct motion) or target pose (an estimation function of indirect motion) (see below).
[0092] Typically, the partitioning of the estimation function for indirect motion can be based on subdividing the workspace coordinates (world coordinates / pose parameters) into corresponding intervals. In other words, for each of up to six pose parameters, the range of values for that pose parameter can be divided into intervals. Similarly, the partitioning of the estimation function for direct motion can be based on subdividing the configuration space coordinates (joint coordinates) into corresponding intervals. In other words, for each joint coordinate, the range of values for that joint coordinate can be subdivided into intervals. All intervals for either world coordinates or joint coordinates can each have the same length.
[0093] For example, if the configuration space of a six-legged robot (Already treated as an example above) If it is subdivided into multiple intervals, then this clearly looks like this. The range of values for each leg (e.g., the range of values for the i-th leg) ) is subdivided into intervals ,in It's true. The number of intervals into which the range of values corresponding to the i-th leg is divided. Therefore, each pre-specified spatial unit is given as follows:
[0094] in, For all All of this is true. The configuration space is therefore divided into pre-specified space units according to the following:
[0095] Using subdivisions into intervals makes it easier to determine a pre-specified spatial cell (e.g., for boundary points, since it is sufficient to find one of the pre-specified spatial cells) or the pre-specified spatial cell (e.g., for non-boundary points) that belongs to a given configuration vector or target pose.
[0096] For example, pre-specified spatial units can be locally stored in the robot's memory. This memory can be part of the robot's (local) control apparatus, i.e., part of the robot's controller. Providing pre-specified spatial units can include obtaining them by performing an operation or reading from a partition within a portion of the workspace.
[0097] Support points - each pre-configured vector or pose The currently provided estimation functions use or are based on support points. In other words, the estimation function for indirect motion is based on a predetermined configuration vector, while the estimation function for direct motion is based on a predetermined pose.
[0098] In the estimation function used for indirect motion, the support points correspond to a predetermined configuration vector and its association with the pose. This association between the predetermined configuration vector and the pose should be consistent with the indirect motion, since the support points should actually be used to replicate the indirect motion.
[0099] In the estimation function used for direct motion, the support points correspond to a predetermined pose and the association between that predetermined pose vector and the configuration vector. This association between the predetermined pose and the configuration vector should be consistent with the direct motion, since the support points should actually be used to replicate the direct motion.
[0100] Each pre-specified spatial cell is associated with a number of support points, which are also referred to as the support points of that pre-specified spatial cell. Each support point can in turn be associated with a number of pre-specified spatial cells. Therefore, some interpolation used in a pre-specified spatial cell is based on the support points precisely associated with that pre-specified spatial cell. In other words, the partial interpolation associated with a pre-specified spatial cell is either precisely based on the support points associated with that pre-specified spatial cell or a predetermined configuration vector / pose. Thus, the estimation function uses only a few support points to calculate a single specific function value, thereby allowing for easy and fast computation.
[0101] Typically, the support points of a pre-specified spatial element can be located on the boundary of that pre-specified spatial element. This means that a predetermined configuration value or predetermined pose is associated with the boundary points of the pre-specified spatial element. Thus, a portion of the interpolation for a pre-specified spatial element can be precisely based on the support points located on the boundary of that pre-specified spatial element. This implies that the association between the support points and the spatial element is implicit.
[0102] In the case of an estimation function for indirect motion, the interpolation for the pose located in a pre-specified spatial cell can therefore be based on a predetermined configuration vector associated with the boundary point of that pre-specified spatial cell. Similarly, in the case of an estimation function for direct motion, the interpolation for the configuration vector located in a pre-specified spatial cell can be based on a predetermined pose associated with the boundary point of that pre-specified spatial cell.
[0103] If the pre-specified spatial element is a polyhedron, rectangle, or cuboid—that is, an "angled" structure—then the support point can correspond to the corner point of the pre-specified spatial element. In other words, the boundary point associated with the predetermined configuration vector or predetermined pose can be the corner point of the pre-specified spatial element. This allows only the predetermined configuration vector for the support point to be explicitly stored, since the corner point is already given by the pre-specified spatial element and the association can be implicitly given.
[0104] Support points can be determined before using the estimation function (i.e., a predetermined configuration vector or a predetermined pose) and stored / provided together with or separately from pre-specified spatial cells.
[0105] Since this determination does not need to occur during the actual operation of the robot, it is not time-critical and can be performed at any level of accuracy using numerical calculations of direct / indirect motions. In this case, the estimation function, for example, replicates the direct / indirect motions theoretically given by the known arrangement and characteristics of the joints and links (i.e., through the robot's structural design). Therefore, providing a predetermined configuration vector can include obtaining it by calculating indirect motions, i.e., determining the predetermined configuration vector. Similarly, providing a predetermined pose can include obtaining it by calculating direct motions, i.e., determining the predetermined pose.
[0106] However, it is also possible to base the support points on experimental measurements, such as as part of robot calibration, i.e., external measurements of the corresponding pose and joint coordinates. This enables higher accuracy because actual robots often do not precisely correspond to a theoretically pre-specified structural design; two robots with theoretically identical structures will differ slightly. In this case, the estimation function replicates the direct / indirect motion as the actual motion present at the time of measurement (within the measurement accuracy range). Therefore, providing a predetermined configuration vector can include obtaining the predetermined configuration vector by reading it in. Similarly, providing a predetermined pose can include obtaining the predetermined pose by reading it in. The read-in configuration vector / pose can be based on measurement data and / or external calculations based on indirect / direct motion. It is also feasible to combine the provision and reading in through local calculations, i.e., obtaining a predetermined configuration vector / pose by calculation and obtaining the configuration vector / pose by reading in particular the measured predetermined configuration vector / pose.
[0107] Calculating or uploading mesh values (or support points) can be done as part of the robot configuration. Mesh value calculation and pre-specified interval division can also be done on the controller during runtime, i.e., on the robot's control unit. Similarly, support point adjustments are further explained below, particularly the definition of the new cuboid and the calculation / uploading of new support point function values, which can be done during configuration or runtime. Furthermore, support point function values can be changed or readjusted during runtime for localized pose adjustments.
[0108] It's also important to note that because interpolation is piecewise, the number of support points naturally affects the accuracy of the estimation function, but not its computational complexity. Since no measurement is required when determining the support points, a large number of support points can be implemented. In other words, the estimation function can reproduce direct or indirect motion at any level of accuracy.
[0109] Hyperrectangular and multilinear interpolation Typically, for example, one, several, or even all of the pre-specified spatial units can be hyperrectangles. The partial interpolation used for the hyperrectangle can be multilinear interpolation based on a pre-defined configuration vector / pose associated with the corner points of the hyperrectangle.
[0110] For clarity, the term cuboid will be frequently used in the following text, which actually refers to a three-dimensional hyperrectangle. In practice, for example, when dividing the configuration space of a tripod, pre-designated spatial units of cuboids may appear. However, it should be noted that the following statements about cuboids (summarized in the same way) also apply to cases where the pre-designated spatial units are hyperrectangles with more or fewer than three dimensions.
[0111] For example, the configuration space can be covered by adjacent cuboids. In this case, the term "piecewise" refers to "cuboid-shaped," with individual interpolation performed in each cuboid. As described further below, these partial interpolations can be selected such that adjacent cuboids have the same function values on their contact boundary surfaces, making the combined interpolations continuous. Applying piecewise multilinear interpolation to cuboids is well-suited for the task of estimating functions because the configuration space can be labeled as a Cartesian product of intervals. Due to this uniform grid structure, the "corresponding cuboids" to which interpolation is performed can be quickly found. This rapid discovery makes it easier to handle and implement the variations and generalizations presented below.
[0112] For example, partial interpolation associated with a hyperrectangle can be performed using multilinear interpolation. More specifically, the interpolation corresponding to the configuration vector or pose located in a pre-specified spatial cell (which is a hyperrectangle) can be accomplished using multilinear interpolation, for example, as described by Rick Wagner, “Multi-Linear Interpolation,” BeachCities Robotics, online document available at: http: / / rjwagner49.com / Mathematics / Interpolation.pdf, 2004.
[0113] In the case of an estimation function used for indirect motion, the interpolation for the pose in the hyperrectangle can therefore include or be multilinear interpolation. In particular, the interpolation for the pose in the hyperrectangle can include or be (dedicated) multilinear interpolation for one, several, or each joint coordinate used. Similarly, in the case of an estimation function used for direct motion, the interpolation for the configuration vector in the hyperrectangle can include or be multilinear interpolation. In particular, the interpolation for the configuration vector in the hyperrectangle can include or be (dedicated) multilinear interpolation for one, several, or each pose parameter.
[0114] This estimation function uses multilinear interpolation to estimate the configuration vector or pose separately, which can be implemented particularly quickly and has almost arbitrarily random accuracy. In particular, different functions can be applied to each hyperrectangle without affecting the functions of other hyperrectangles. It is also continuous if multilinear interpolation is performed piecewise on non-intersecting hyperrectangles or cuboids, especially on the contact surfaces of the hyperrectangles or cuboids. If switching between two hyperrectangles / cubes is caused by only a single change in leg length, then the two interpolations in the affected cuboid / hyperrectangle transmit the same interpolation value. Since the two cuboids lie on the same outer surface, their function values are identical. The same applies if the lengths of several legs simultaneously cross the boundaries of the cuboid.
[0115] Therefore, the estimation function used for indirect motion is a (separate or dedicated) multilinear interpolation for each joint coordinate used. Thus, there is a separate multilinear interpolation for each component of the configuration vector. Each of these separate multilinear interpolations corresponds to a function whose domain lies in the workspace, and whose range of values corresponds to the interpolated joint coordinates (in particular, the range of values is typically one-dimensional). Therefore, the estimated individual components of the configuration vector correspond to the joint coordinates estimated by the corresponding multilinear interpolation.
[0116] Similarly, the estimation function for direct motion is a (separate or dedicated) multilinear interpolation for each pose parameter. There is a separate multilinear interpolation for each component of the pose parameter vector. Each of these separate multilinear interpolations corresponds to a function whose domain lies in the configuration space, and whose range of values corresponds to the interpolated pose parameter (in particular, the range of values is typically one-dimensional). Specifically, the estimation function for the direct motion of the proposed hexapod robot comprises six different multilinear interpolations, where each multilinear interpolation is responsible for a different one of the six pose parameters, i.e., interpolating a different one of the six pose parameters. Therefore, the estimated pose is the pose corresponding to the estimated vector of pose parameters. Thus, the estimated pose corresponds to the pose parameters estimated by the corresponding multilinear interpolation.
[0117] Simplex and centroid interpolation However, the present invention is not limited to dividing into multiple hyperrectangles or intervals. Typically, one, several, or even all of the pre-specified spatial units can be simplexes. In particular, similar piecewise interpolation is possible when the configuration or workspace is divided into simplexes. Centroid interpolation can be performed within these simplexes. For example, the division into simplexes can be accomplished through multidimensional Delaunay triangulation.
[0118] For example, partial interpolation associated with a simplex can be performed based on barycentric interpolation. More specifically, barycentric interpolation can be used to interpolate configuration vectors or poses located in pre-specified spatial units (which are simplexes).
[0119] In the case of an estimation function used for indirect motion, interpolation for pose in a simplex can therefore include or be centroid interpolation. In particular, interpolation for pose in a simplex can include or be (dedicated) multilinear interpolation for one, several, or each joint coordinate used.
[0120] Similarly, in the case of estimation functions used for direct motion, interpolation for the configuration vector in a singlet may include or may be centroid interpolation. In particular, interpolation for the configuration vector in a singlet may include or may be (dedicated) centroid interpolation for one, several, or each pose parameter.
[0121] It should also be noted that this invention is not limited to any particular method for interpolating / estimating function values for points located in the current spatial cell. Therefore, any stochastic interpolation method can be used, which allows estimation of function values for direct / indirect motion within a pre-specified spatial cell based on support points. As an alternative to multilinear interpolation and centroid interpolation shown below, quadratic or cubic interpolation can be used in particular. Different interpolation methods can be similarly used in different pre-specified spatial cells. Furthermore, interpolation methods in spatial cells can be combined. Examples of a combination of multilinear and centroid interpolation are presented below to further illustrate this combination.
[0122] Determine the target configuration vector or the current pose respectively. This invention particularly relates to a method for determining a configuration vector for achieving a given pose. This given pose is also currently referred to as a target pose. The target pose can be, in particular, the pose that a robot / actuator is to take. However, it is also possible that the target pose is simply the pose for which an associated configuration vector is to be determined. According to the invention, an estimation function can first be used to estimate the configuration vector associated with the target pose based on indirect motion, as described above. The estimated configuration vector can then be used to determine the target configuration vector.
[0123] Similarly, the present invention relates in particular to a method for determining a pose corresponding to a given configuration vector, which is also referred to as the current pose, since determining the current pose based on measurements of the joint coordinates currently being implemented by the robot is a typical application example. Step S1700 of determining the current configuration vector may include, for example, such a measurement of the current joint coordinates. However, the present invention is not limited to calculating the direct motion of the joint coordinates currently being implemented by the robot. The current configuration vector can simply be a given configuration vector for which an associated pose is to be determined. According to the present invention, as described above, the pose associated with the given configuration vector based on the direct motion can first be estimated using an estimation function. The estimated pose can then be used to determine the current pose.
[0124] There are different ways to determine the target configuration vector or the current pose using either the estimated configuration vector or the pose, respectively. Two of these methods will be described in detail below.
[0125] Starting point for iterative methods Typically, the calculation of direct or indirect motion can be performed numerically and / or iteratively. As part of such iteration, the calculation of corresponding other motions is usually performed multiple times. More precisely, the corresponding indirect motion can be calculated in each iterative step used to calculate the direct motion. Similarly, the corresponding direct motion is calculated in each iterative step used to calculate the indirect motion.
[0126] For example, iterative pose calculation can begin with an initial pose or a preliminary pose (e.g., the last known pose or a zero pose (e.g., "(0, 0, 0, 0, 0, 0)" for a hexapod)). In repeated iterative steps, an approximate pose is calculated whose associated joint coordinates (the leg lengths of the hexapod) increasingly match pre-specified joint coordinates. Iterative steps from one approximate pose to the next are completed by adding correction vectors, for example, which can be calculated using the Newton-Raphson method; thus, the correction vector, based on the pose at the position of the final iteration, originates from the partial derivatives of the leg lengths. To obtain the correction vectors for the iterative steps used to calculate direct motion, the partial derivatives of indirect motion (i.e., the Jacobian matrix) are therefore required. Similarly, in the iterations calculating indirect motion, the Jacobian matrix of direct motion is required. At the start of an iteration, there is still a relatively large distance between the initial pose and the searched pose. Therefore, the pose correction vector is particularly prone to errors in direction and length at the beginning. This is offset by shortening the calculated correction vector using various scaling factors (from 0.01 to 1), and then determining which of the shortened correction vectors provides the best result. Small scaling prevents pose deterioration.
[0127] Iterative methods for determining configuration vectors based on pre-specified poses can appear similar. In particular, approximate configuration vectors can be computed in repeated iterative steps, with their associated poses corresponding to the pre-specified poses increasingly better.
[0128] If an estimation function is used to estimate the direct motion, an iterative method can be used to compute the target configuration vector. The starting vector for the iterative method can be chosen based on the estimated configuration vector. In particular, the iterative method can begin with the estimated configuration vector as the starting vector or starting point.
[0129] Therefore, when the estimation function is used for indirect motion, the current pose can be calculated using an iterative method. The starting pose for the iterative method can be selected based on the estimated pose. In particular, the iterative method can start from the estimated pose as the initial pose.
[0130] Therefore, subsequent iterations of the direct / indirect motion computation are very close to the initial configuration vector corresponding to the target pose. This speeds up numerical computation because, for example, pre-specified convergence criteria are met more quickly. This use of the configuration vector estimation is relatively easy to implement. In particular, there is no need to adjust the existing computation function itself, as the estimation function is simply placed upstream of the existing iterative computation process.
[0131] Using an estimation function (i.e., using the pose or configuration vector estimated according to the invention as the starting point for iteration) also enables simplification and / or acceleration in many existing computation functions (e.g., existing iterative computation routines for direct motion). This allows for further increases in the speed of computing direct or indirect motion.
[0132] When using the estimation function according to the invention, the iteration begins very close to the true pose. This makes the convergence of the computational routine more reliable, and the calculated partial derivatives lead to the target more quickly. Therefore, the handling of scaling factors can be greatly relaxed. Consequently, the complex testing and convergence speed decay that slows down numerical methods (such as Newton's method) can be largely eliminated. These relaxations alone already result in a further significant acceleration of computation.
[0133] Replacement of numerical computation However, the present invention is not limited to the above-described use of the estimated configuration vector or the estimated pose as the starting point for the iterative configuration vector or pose, respectively.
[0134] According to the present invention, the estimation method according to the invention can completely replace iterative methods or other numerical calculations. In other words, an estimation function can be used instead of direct or indirect motion to calculate the pose or configuration vector. In particular, when the estimation function is used for indirect motion, the target configuration vector can be determined to be the estimated configuration vector. Therefore, when using a direct motion estimation function, the current pose can be determined to be the estimated pose.
[0135] In other words, traditional (iterative / numerical) calculations of direct / indirect motion based on motion models can be completely omitted in some applications, especially in highly dynamic hexapods (such as "vibrators" or moving hexapods) or "flight simulators".
[0136] Delaunay triangulation and barycentric interpolation 1. On a pre-specified spatial unit / cubic prism Typically, partial interpolation (i.e., interpolation over one of the pre-specified spatial cells) can consist of several interpolations; that is, it is based on or is the sum of several interpolations. This principle can be used in particular to locally improve the accuracy of the estimated function by defining a correction interpolation. In the pre-specified spatial cell, this correction interpolation is defined (stored) for that spatial cell, and the function value of the correction interpolation is then added to the corresponding function value of the previous partial interpolation. This previous partial interpolation is now also called spatial cell interpolation because it is a multilinear interpolation of the (entire) pre-specified spatial cell.
[0137] In particular, the interpolation (estimation function) for the pose / configuration vectors of one, several, or all pre-specified spatial elements can therefore be based on the sum of spatial element interpolation and correction interpolation. In other words, one, several, or all partial interpolations can be based on the sum of two interpolations, currently referred to as spatial element interpolation or correction interpolation.
[0138] As will be explained below, different types of interpolation can be combined.
[0139] If the correction interpolation is based on subdividing a pre-specified spatial cell into further sub-cells, and performing corresponding dedicated partial correction interpolation within these sub-cells, then a high level of accuracy can be achieved using correction interpolation. Correction interpolation can specifically utilize additional support points, currently referred to as correction support points. These correction support points are support points used in addition to those used in spatial cell interpolation. This allows any number of additional support points to be defined within the pre-specified spatial cell, on which the function to be estimated (e.g., direct / indirect motion) is replicated.
[0140] The pre-specified spatial unit for which the correction interpolation is defined can be divided into several d simplifications. "d" currently represents the dimension of the pre-specified spatial unit (e.g., the dimension of the workspace or configuration space). Therefore, a d simplification is a d-dimensional simplification.
[0141] When selecting the domain of a correction interpolation with pre-specified spatial cells, it can be immediately determined whether the correction interpolation should occur at a point. In any case, it is necessary to immediately determine which pre-specified spatial cell a point lies in, so that only the spatial content to be corrected must be marked.
[0142] For example, a d-simulacra can be determined through triangulation of corner points and correction support points, particularly Delaunay triangulation. A corner point of a d-simulacra located on the surface of a pre-specified spatial cell corresponds to a corner point of that pre-specified spatial cell. A corner point of a d-simulacra located within a pre-specified spatial cell corresponds to a correction support point. In other words, in reality, for each d-simulacra corner point located on the surface of a pre-specified spatial cell, it (the d-simulacra corner point) is a corner point of the pre-specified spatial cell; for each d-simulacra corner point not located on the surface of a pre-specified spatial cell, it is a correction support point. To improve the accuracy of the estimated function, at least one correction support point should be used. In this case, at least one corner point of one of the d-simulacra is located inside a pre-specified spatial cell.
[0143] The correction interpolation can be the corresponding barycentric interpolation for each d-simulacra. More precisely, for each d-simulacra, the correction interpolation used for that d-simulacra can be the corresponding barycentric interpolation based on pre-specified function values at the (d+1) corners of the corresponding d-simulacra. Therefore, the correction interpolation consists of several correction interpolations corresponding to the d-simulacra, and is thus piecewise relative to the d-simulacra.
[0144] The centroid interpolation function for the d-simulacra interpolates the difference as a function value and assigns it as a function value to each corner point of the d-simulacra located within a pre-specified spatial cell (i.e., not on the surface). This difference corresponds to the difference between the configuration vector associated with the corner point based on indirect motion and the configuration vector (or pose) associated with the corner point based on spatial cell interpolation. In other words, the correction interpolation used to correct the support point function value uses the corresponding difference between the estimated function's value after the correction interpolation is added at that point (i.e., in the future) and the estimated function's value before the correction interpolation is added at that point. Furthermore, the centroid interpolation function for the d-simulacra interpolates the difference and assigns 0 as a function value to those corner points of the d-simulacra located on the surface of the pre-specified spatial cell. It should be noted that d-simulacras can exist that only have corner points located inside the surface.
[0145] Since the barycentric interpolation of a d-simulacra interpolates the function that assigns the difference to the corner point of the d-simulacra within a pre-specified spatial cell, the barycentric interpolation also assumes the difference at that corner point. Furthermore, the barycentric interpolation at all boundary points of the pre-specified spatial cell assumes 0 (more precisely, a zero vector of appropriate dimension) as the function value.
[0146] Therefore, the difference between the corner points of an internal d-simulacra is given by subtracting the value of the spatial unit interpolation assigned to the d-simulacra at the estimated value that the function should take at that corner point. Thus, the difference is typically different for the corner points of two different d-simulacra. The value that the estimated function should take at the corner point can be based on measurements of direct / indirect motion or precise (potentially time-consuming) numerical calculations, and is therefore based on the pose / configuration vector associated with the direct / indirect motion and the corner point.
[0147] For example, if Delaunay triangulation is used in a cuboid, a function can first be defined that assigns the function value 0 to all boundary points of the cuboid. Furthermore, this function assigns the function value bc to a new support point within the cuboid, for which the estimated function should take the function value b, where c is the function value obtained through multilinear interpolation on the cuboid. Then, barycentric interpolation is used to interpolate the function just described. The function value within the cuboid is now produced by adding the function value of the piecewise multilinear interpolation to the function value of the Delaunay triangulation. Thus, the multilinear interpolation of the cuboid is superimposed by the sum of the function values of the Delaunay triangulation. It is assumed that the spatial element interpolation is multilinear interpolation. However, this is not necessarily the case, as random spatial element interpolation is continuously superimposed with barycentric interpolation, as just described. This will be discussed below. Figures 4 to 7 This is shown clearly again.
[0148] exist Figure 4 and Figure 5 In the example, the domain of the function is shown as a rectangle 400 with corner points E1, E2, E3, and E4. Therefore, the domain of the function corresponds to the base region of the cuboid shown. Figure 4 In this study, multilinear (more precisely, bilinear interpolation) is used to interpolate the first exemplary function. The function values of the first exemplary function at the corner points of rectangle 400 are used as support points for the interpolation.
[0149] However, in Figure 5 In this study, two centroid interpolations are used to interpolate the second exemplary function. More specifically, centroid interpolation is performed on triangles with corner points E1, E2, and E4, and on triangles with corner points E2, E3, and E4. The centroid interpolation uses the function values of the second exemplary function at the corner points of the corresponding triangles as support points.
[0150] like Figure 4 As can be seen, the function values generated by bilinear interpolation lie on the curved surface 45°. The height of this surface corresponds to the interpolation value at the corresponding point. Similarly, Figure 5 The diagram shows the function values generated by these two barycentric interpolations. For example, in... Figure 5 As can be seen, when rectangle 400 is divided into two triangles, the function values generated by the barycentric interpolation on rectangle 400 lie on the surfaces A and B of the two planar triangles. For example... Figure 4 and Figure 5 As demonstrated, the centroid interpolation within the triangulated rectangle generally delivers different function values compared to the multilinear interpolation on the undivided rectangle. This is especially true when the centroid interpolation and multilinear interpolation have the same function values at these support points, i.e., when the first and second demonstration functions are identical.
[0151] In the two-dimensional case illustrated in the example, this does not yet cause any issues regarding continuity when connecting adjacent rectangles. When tiling the space with rectangles, it can be seen that the function values at edges L1, L2, L3, and L4 are the same, regardless of whether multilinear interpolation or barycentric interpolation is used on the triangles generated by triangulation. Because multilinear interpolation is used, the function values are affected to the same extent as barycentric interpolation. In other words, in the two-dimensional case, the changed function values only appear inside the rectangles, not at the boundaries (edges L1, L2, L3, and L4), thus maintaining continuity between the rectangle boundaries.
[0152] On the other hand, if the domain is, for example, three-dimensional, and you want to use barycentric interpolation to evaluate the triangulation within a cuboid, but use multilinear interpolation in adjacent cuboids, this can lead to continuity problems. In other words, if the domain (i.e., the pre-specified spatial units) is two-dimensional or higher, and if multilinear interpolation is used for one of the two pre-specified spatial units while barycentric interpolation is used for the other, the estimated function is typically discontinuous at the interface between the two pre-specified spatial units.
[0153] Figure 6 This demonstrates how to add functions to rectangles without disrupting the continuous transition between different rectangles. Figure 4 A new function (correction interpolation) has been added to the function, which performs centroid interpolation on four triangles. New internal support points (correction support points) assign the function value W5 to the function's independent variable E5, represented by a thick vertical line. Importantly, the corner points of the added function all have a value of 0. This is achieved by setting the support points corresponding to the corner points to 0 for correction interpolation. Therefore, correction interpolation consists of the following: centroid interpolation on triangles E1E2E5 based on support points (E1, 0), (E2, 0), and (E5, W5); centroid interpolation on triangles E2E3E5 based on support points (E2, 0), (E3, 0), and (E5, W5); centroid interpolation on triangles E3E4E5 based on support points (E3, 0), (E4, 0), and (E5, W5); and centroid interpolation on triangles E4E1E5 based on support points (E4, 0), (E1, 0), and (E5, W5). The function value of this centroid interpolation corresponds to the area of triangles E1E2W5, E2E3W5, E3E4W5, and E4E1W5. As a result, the function values of the estimated function on the boundary of the rectangle remain unaffected by the addition of the correction interpolation, since the function values of the correction interpolation on the boundary are all 0. Generally, vectors associated with values other than the zero vector must lie within the convex hull of those locations associated with the zero vector.
[0154] exist Figure 7In this context, the base region of the above function—a rectangle (currently with corner points M6, M7, M8, and M9)—is supplemented into a cuboid with corner points B1, B2, B3, B4, M6, M7, M8, and M9. Therefore, the volume element for multilinear interpolation is now a cuboid. This specifically results in the entire rectangle having… Figure 7 The corner points M6, M7, M8, and M9 become the outer surface, not just the four lines of its "circumference," such as... Figure 5 , 6 The rectangles E1E2E3E4, defined by 7, form the outer surface. To ensure the estimated function remains continuous, the function values of any function added to this entire surface must be zero. This is achieved by setting the function values of the correction interpolation at corner points M6, M7, M8, and M9 to zero vectors. Triangles M1 (corner points M6, M7, and M8) and M2 (corner points M8, M9, and M6) form the “upper” outer surface, created through triangulation, on which the function values are everywhere zero.
[0155] Based on the new corrected support point M5 located within the cuboid, the cuboid can be divided into simplexes. An example is shown of one of these simplexes with three visible triangular sides M2, M3, M4 and corner points M5, M6, M8, and M9. M2 is therefore the surface of the triplex drawn there, forming part of the outer surface of the cuboid. The other triangular faces of the cuboid, along with the shown triplex, are not drawn.
[0156] 2. On the combined spatial unit / cubic prism Correction interpolation can also typically be defined based on a union of multiple pre-specified spatial cells. This union of multiple pre-specified spatial cells serves the same function as a single pre-specified spatial cell as described in the previous section.
[0157] It is advantageous to make the union connected and / or convex (i.e., representing a convex set). In particular, it is advantageous for the union space unit to be a cuboid or hyperrectangle. On the one hand, this allows the obtained union to be divided into non-intersecting sub-cuboids in a simple manner. On the other hand, it makes it easy to determine whether a point lies in the combined space unit by simply querying the intervals of the individual components of a point. In particular, if the domain of the correction interpolation is chosen, for example, based on Delaunay triangulation as equal to one or more new cuboids and / or equal to one or more pre-specified (cuboid-shaped) space units, then it makes it easier to find the region in which the correction function is to be added, as this is sufficient to label all affected cuboids.
[0158] Then, the interpolation (estimation function) for the pose in each of the multiple pre-specified spatial elements is a sum of the correction interpolation and the spatial element interpolation associated with the pre-specified spatial element. As with the correction interpolation already defined on a single pre-specified spatial element, correction interpolation can also be performed based on Delaunay triangulation or centroid interpolation, respectively.
[0159] A particular advantage of correction interpolation defined on a union of multiple pre-specified spatial units is that (e.g., correction) function values can be associated with random points not located on the boundaries of the union. In other words, all points located within the union, i.e., even if they are located on the boundaries of pre-specified spatial units or as support points of spatial unit interpolation, can be made correction support points.
[0160] The size of the union can be chosen to determine whether the correction of the Delaunay triangulation should work only locally or over a larger area. This form of triangulation provides the possibility of learning a function, i.e., if the function value of the triangulation function represents a pose correction that becomes known, for example, through scan processing.
[0161] Even through correction interpolation based on a union of several pre-specified spatial units, the simplex can be partitioned. Multiple pre-specified spatial units, i.e., their unions, are partitioned into multiple d simplexes (where d also represents the dimension of the pre-specified spatial unit). For example, d simplexes can be determined / obtained through triangulation, especially Delaunay triangulation. This Delaunay triangulation can be based on (new) correction support points and corner points of the union. In other words, a d simplex of Delaunay triangulation can correspond to a set of points consisting of or at least containing correction support points and corner points of the union. Specifically, i) corner points of d simplexes located on the surface of the union (d simplex corner points) can correspond to corner points of the union; and ii) corner points of d simplexes located inside the union correspond to correction support points. In other words, it can be that i) each d simplex corner point located on the surface of the union is a corner point of the union; and ii) each d simplex corner point not located on the surface of the union is a correction support point. Typically, some, several, or all of the correction support points can be corner points of one of the pre-designated spatial units forming the assembly. However, this is not always the case: that is, it is also possible that no correction support point coincides with a corner point of one of the pre-designated spatial units.
[0162] To improve the accuracy of the estimated function, at least one corrected support point should be used. In other words, at least one corner point of one of the d-simulacra should be located inside a plurality of pre-specified spatial units (i.e., a union). In particular, the corner point (i.e., the corrected support point) of one of the d-simulacra located inside the union can also be located on the boundary of one of the pre-specified spatial units forming the union.
[0163] As described in the previous section, the corrective interpolation can also be a corresponding centroid interpolation in each d-simplicity. Furthermore, in a manner similar to the previous section, the corresponding centroid interpolation interpolates a function that assigns the difference as a function value to each of these corner points located within the union of the d-simplicity. This difference corresponds to the difference between the configuration vector / pose associated with the corner point according to indirect / direct motion and the configuration vector / pose associated with the corner point according to spatial element interpolation, which is associated with a pre-specified spatial element where the corner point resides. Additionally, as mentioned above, the corresponding interpolation function assigns 0 as a function value to these corner points of the d-simplicity located on the surfaces of multiple pre-specified spatial elements. The details are similar to those already described above for corrective interpolation, which is defined on a single pre-specified spatial element and therefore should not be repeated here.
[0164] For each pose / configuration vector in the union, the estimation function is therefore based on (or is) the sum of the following: i) spatial cell interpolation associated with the pre-specified spatial cell in which the pose / configuration vector resides, and ii) centroid interpolation based on the corner point of the pose / configuration vector in that / one simplex body.
[0165] Simply defining / constructing the corrected interpolation forms a larger spatial unit, but does not touch the original partial interpolation in the pre-specified spatial unit forming the union. Instead, the corrected interpolation is added to the original partial interpolation, resulting in a new partial interpolation. Therefore, this new partial interpolation is piecewise relative to the simplex upon which the corrected interpolation is defined.
[0166] As described above, the combined spatial units can advantageously be used as preparation for adding support points and subsequent Delaunay triangulation. This advantageously allows for the definition of corrective support points on the surface of the pre-designated spatial units forming the union without compromising continuity. Furthermore, combination is also advantageous when all new function values (corrective support points) lie within the pre-designated spatial units, i.e., when no corrective support points lie on the surface of one of the pre-designated spatial units forming the union. See now... Figure 8 and Figure 9 To explain this, Figure 9 express Figure 8 Zoomed-in details.
[0167] like Figure 8 and Figure 9 As shown, the new function value should be set near the corner of the rectangle. This new function value can be achieved again, for example, through Delaunay triangulation and centroid interpolation. This function value is based on measurements, which explains why the function value near the corner differs significantly from its surroundings. Due to its proximity to the corner, a large gradient / slope appears—also plotted here—which interferes with motion actuation and robot control. This can be compensated for by forming a larger rectangle together with the other three rectangles adjacent to the corner. If triangulation is now performed only within the newly formed rectangle, this gradient no longer occurs. The resulting function is added to the function value of the original cuboid division. The combination of basic volumes is not the goal in itself, but rather a preparation for adding more points / supports.
[0168] It should also be noted that the method for controlling the currently presented robot may include the step of adjusting the estimation function. Such a step may include defining or adding one (or more) correction interpolations to pre-specified spatial cells or a combination of pre-specified spatial cells, as described above. Similarly, the control device of the currently presented robot may be configured to perform such addition of one (or more) correction interpolations. Such correction interpolations, in particular the function values for the division of simplex bodies and correction of support points, may be read in and / or calculated locally (the devices are accordingly configured to perform this).
[0169] Adjusting the pre-specified spatial unit - the division of the pre-specified spatial unit If the configuration space has already been divided into non-intersecting cuboids (e.g., based on support points / interval divisions and / or factory settings) (hereafter referred to as given or original cuboids / rectangles / pre-specified spatial units for emphasis), it is further possible to adapt this division to specific requirements by forming new cuboids. More specifically, the number of pre-specified spatial units can be adjusted. This step of adjusting the pre-specified spatial units can be part of the proposed method for controlling the robot. Similarly, the currently proposed control device can be configured to enable such adjustments to the pre-specified spatial units.
[0170] Furthermore, it should be noted that since the estimation function is performed piecewise over the number of pre-specified spatial cells that are adjusted, adjusting the number of pre-specified spatial cells usually also represents (i.e. requires) a change in the estimation function.
[0171] When a given cuboid is partitioned, it is divided into several new cuboids. One of these new cuboids is generated by partitioning the original cuboid. The function value may also have been associated with the corners (support points) of the given cuboid before the new cuboids are created. More generally, the support points and therefore the estimated function may have already been given. As explained below, the formation of new cuboids is typically accompanied by corresponding adjustments to either the given support points or the given estimated function.
[0172] The creation of the new cuboid allows for any local accuracy of the estimated function without memory requirements "exploding." Furthermore, the new cuboid can be defined at runtime, and the function values at new support points can be defined during the robot / hexapod's operation. This is useful if the hexapod operates only or primarily within a restricted portion of its workspace, or within several restricted portions of its workspace.
[0173] As already mentioned, a new cuboid can be formed by dividing a given cuboid into several non-intersecting new cuboids. More generally, pre-specified spatial units can be divided into several non-intersecting spatial units.
[0174] Therefore, adjusting a pre-specified spatial cell can include removing one of the pre-specified spatial cells and adding multiple (i.e., two or more) new (pre-specified) spatial cells to multiple pre-specified spatial cells. These new pre-specified spatial cells can be formed by partitioning one of the pre-specified spatial cells. Thus, they represent disjoint partitions of that one pre-specified spatial cell (always disjoint except at boundary points), and their union results in that one pre-specified spatial cell.
[0175] Then, the predefined configuration vectors or poses can be adjusted separately. Such adjustments typically involve adding new support points corresponding to new corner points, where the term "new corner point" refers to the corner point of a new predefined spatial unit, which is not the corner point of a spatial unit (that was just removed).
[0176] Predetermined configuration vectors or poses associated with new corner points not located on the boundaries of the removed spatial units can be obtained by calculating indirect or direct motion or by reading in data. In particular, they can be conveniently stored. Furthermore, they can be arbitrarily selected without compromising the continuity with other spatial units.
[0177] The predetermined configuration vector or predetermined pose associated with the new corner point (which is the boundary point of a pre-designated spatial cell that was just removed) can be determined by estimation based on the (previous) interpolation of the indirect motion. In other words, such a predetermined configuration vector or such a predetermined pose can be determined because partial interpolation and support points of a pre-designated spatial cell (just removed) are used. This is used to maintain continuity in the transition to adjacent pre-designated spatial cells, as will now be explained in more detail. The division of the original spatial cell and the definition of the function values of the new support points mean that a dedicated partial function (multilinear interpolation) is now used for each new pre-designated spatial cell—no longer a single partial function used for the entire region of the original spatial cell.
[0178] As already mentioned, the function value of the new support point on the outside of the original cuboid is not determined by the exact function value of the direct motion, but by interpolation at the boundary of one of the adjacent cuboids.
[0179] Figure 14 The example illustrates the two-dimensional case. Therefore, the original cuboid is a rectangle, more precisely, a rectangle drawn with corner points of 1400, 1420, 1440, and 1460, using lines... Figure 14 The expected intersection pattern is used. This rectangle is the original rectangle for the configuration space. Therefore, the original interpolation is based on the support points (1400, 1405), (1420, 1425), (1400, 1445), and (1460, 1465), where the second value within parentheses represents the function value assigned to the first value within the parentheses for the corresponding support point. Figure 14In this diagram, these function values are represented by height relative to the area of the rectangle. As shown, the rectangle is now divided into four non-intersecting rectangles: rectangles with corner points 1400, 1410, 1480, and 1470; rectangles with corner points 1410, 1420, 1430, and 1480; rectangles with corner points 1430, 1440, 1450, and 1480; and rectangles with corner points 1450, 1460, 1470, and 1480. To perform multilinear interpolation on each new rectangle based on its corresponding corner points, five function values must be defined at the newly created corners 1410, 1430, 1450, 1470, and 1480. Since point 1480 is inside the original rectangle (in other words, because it is not adjacent to any neighboring rectangle), the function value 1485 for the intermediate node 1480 can be arbitrarily chosen without affecting the continuous connection with adjacent rectangles. The four function values at the nodes on the outer surface (more precisely, the outer straight line) of the original rectangle, namely the function values 1415, 1435, 1455, and 1475 for the new support points at points 1410, 1430, 1450, and 1470, can be obtained, as drawn, through multilinear interpolation based on the existing support points (in fact, even just linear interpolation in the two-dimensional case), which ensures continuous connection with adjacent rectangles.
[0180] Figure 15 This again demonstrates that if the function values for new support points located on the boundary are calculated from the original interpolation, the function values at the boundary remain unchanged. Here, the function values correspond to the positions (y-values) of the points. The original interpolation is based on the large points 1500, 1520, 1530, 1560, and 1570, represented by lines connecting these points. Therefore, the function values of the piecewise linear interpolation based on these points will now correspond to the function values before the addition of the smaller points 1505, 1515, 1525, 1535, 1545, 1555, and 1565. It can be seen that the connecting lines also correspond to the piecewise linear interpolation based on the old and new support points. Therefore, if support points (whose function values are calculated based on the original function) are added in the traversal, the function appearing in the traversal form does not change. This also applies to new support points on the surface of a pre-specified spatial unit: if the function values of these new support points are consistent with the original multilinear interpolation, the function values of the new piecewise multilinear interpolation on that surface remain unchanged. This means that the newly formed corner points (support points) on the outside of the new cuboid are not related to the precise function values calculated by direct / indirect motion, but are related to the interpolated values of the estimated function before the new cuboid was formed.
[0181] In these new cuboids, cuboid multilinear interpolation with support points at the corners can be redefined. To maintain the continuity of the estimated function, as already stated, it should be noted that the points on the outer surface of the new cuboid are associated with the values generated by the cuboid multilinear interpolation prior to the formation of the new cuboid.
[0182] Complementary support points Further improvements can be achieved by using nested cuboid meshes.
[0183] This will now be illustrated using an example of a six-legged robot.
[0184] Figure 10 Line 1010 illustrates the six support points that arise when only linear interpolation is performed without extrapolation, assuming the same maximum leg offset *a* for all six legs to be divided into five equally sized intervals. Line 1010 (along with lines 1020 and 1030) correspondingly illustrates the subdivision of the leg or joint coordinates. In other words, assuming all legs have the same range of motion, the subdivision is the same for all legs. This is assumed for simplicity, but it is not mandatory. Within these intervals, each parameter of the pose is interpolated individually, i.e., each pose parameter.
[0185] Line 1020 shows the leg travel divided into six intervals. In region b, an interval located between two support points (e.g., region 1024) is included, and corresponding linear interpolation is performed within this interval. Linear extrapolation is performed in the outer intervals 1021 and 1026, which are of length a / 10. Variant 1020 saves memory space because it only requires five support points, but sacrifices accuracy.
[0186] In Line 1030, interval 'a' is also divided into 6 intervals, but support points are placed at the boundaries of interval 'a' to allow interpolation to be performed within the two outer intervals, but a total of 7 support points need to be stored. Variations in Line 1030 are arbitrary examples of many possible subdivisions. Accuracy increases at the ends of the intervals. Non-uniform subdivision can provide regions with higher interpolation accuracy. Each leg has a different subdivision, allowing for flexible allocation of regions.
[0187] For a hexapod robot, the memory requirement of the function serving as the support points (space complexity) is of order n^6. This means that if the interval length is halved, the memory requirement increases by a factor of 64, and if the interval length is reduced to a quarter, the memory requirement increases by a factor of 4000. The 11 support points per leg are generally still manageable, but further increases quickly reach their limit, as explained.
[0188] Another alternative approach is to improve the accuracy of the estimation function by simply doubling the memory space and the (shorter) estimation time. This is achieved using complementary support points. The trick here is to divide the configuration space into non-intersecting cuboids in two complementary ways, for example, according to a scheme of partitioning pairs in lines 1010 and 1020. Multilinear interpolation is then performed on both grids / partitions separately; for example, the arithmetic mean of the two calculated poses can be used as the result.
[0189] exist Figure 11 The example of parallel motion with two degrees of freedom is shown in the diagram, illustrating two such partitions in a cuboid. Figure 11 The grid 1110 on the left is based on dividing each degree of freedom into three equal-sized intervals, with support points at the boundaries (similar to...). Figure 10 The line 1010 is divided into five intervals in one dimension, resulting in 16 support points and 9 pre-specified spatial cells. Grid 1110 allows interpolation throughout the entire configuration space. Figure 11 The grid 1120 on the right divides the maximum leg offset into four corresponding intervals, with no support points on the boundaries (similar to...). Figure 10 The line 1020 is divided into six intervals in one dimension, resulting in 9 support points and 4 pre-specified spatial cells. If estimation is performed using the estimation function based on grid 1120, extrapolation is performed in the shaded region 1121 and interpolation is performed in the four pre-specified spatial cells.
[0190] The other two partitions that can be used in parallel are as follows: Figure 12 As shown. The grid on the left is grid 1110, which is already... Figure 11 It was presented in the middle. Figure 12 The second grid on the right, 1230, is based on dividing each degree of freedom into four equally sized intervals, with support points at the boundaries (similar to...). Figure 10 The line 1030 is divided into six one-dimensional intervals, resulting in 25 support points and 16 pre-specified spatial units. Since support points exist at the interval boundaries, extrapolation is unnecessary, and interpolation can be performed across the entire domain. Specifically, by using... Figure 12 The grid shown, which uses the average of the interpolated values based on grid 1110 and the interpolated values based on grid 1130, can further improve the accuracy of function estimation on a simple grid.
[0191] exist Figure 13 The diagram shows a tripod divided into non-intersecting cuboids, still without reference to the concept of complementary support points. The tripod's configuration space can typically be described as a Cartesian product of three intervals, represented here in cuboid form. It's important to note that, of course, the direction of movement at the upper hinge point or the direction vector of the legs are independent of the edges of the cuboids perpendicular to each other. The leg intervals are each divided into two intervals. The entire configuration space is represented by an outer cube. The cube is transparent, so one of the eight sub-cubes is visible. This is represented by the thicker edge at the front right; only the "visible" boundary of this cuboid is drawn as thick.
[0192] Applying a complementary mesh nested cube will approximately double the required memory space. The sixth root of 2 is approximately 1.1. Doubling the mesh corresponds to approximately or exactly doubling the memory requirement, which means the number of support points increases by about 10%, for example, from about 11 to about 12.
[0193] In other words, when using complementary support points, two (different) estimation functions are used for the same function to be replicated (e.g., direct / indirect motion). These two estimation functions are mostly based on different support points, such as... Figure 11 As shown, this is based on a predetermined configuration vector / pose related to other points in the domain. For example, all support points not on the domain boundary may be different in location. The corresponding function value is calculated using each of the two estimation functions. This results in a weighted average (e.g., an arithmetic mean) of the two estimation functions or the two function values. This average then corresponds to the estimated configuration vector or estimated pose.
[0194] In summary, this invention relates to motion control systems, improving them by more efficiently calculating direct and / or indirect motion. The invention is based on the concept of estimating the direct / indirect motion of a motion system based on local support points. Specifically, interpolation is used in the estimation of indirect motion; for a given pose within a spatial cell, the interpolation is based on predetermined configuration vectors, each associated with a boundary point of the determined spatial cell according to the indirect motion. When estimating direct motion, interpolation is used; for a given configuration vector within a spatial cell, the interpolation is based on a predetermined pose of the motion, each pose associated with a boundary point of the determined spatial cell according to the direct motion.
Claims
1. A method for controlling a motion system, the method comprising the following steps: (S1600) Determine (the spatial cell in which the target posture of the motion system is located from multiple pre-specified spatial cells in the workspace of the motion system; Based on the configuration vector of the motion system associated with the target pose according to the indirect motion estimation (S1620), where: --The estimation (S1620) is performed based on the interpolation of the indirect motion, and --The interpolation used to determine the pose in the spatial cell (S1600) is based on a predetermined configuration vector, each of which is associated with a boundary point of the spatial cell determined (S1600) according to the indirect motion. The target configuration vector is determined (S1640) using the estimated configuration vector (S1620); and Actuation (S1660) has the motion of the target configuration vector, wherein -- One or more of the pre-specified spatial cells are hyperrectangular, and the interpolation used for the pose in one or more of the pre-specified spatial cells includes or is multilinear interpolation; and / or -- One or more of the pre-specified spatial units are simplexes, and the interpolation for the pose in one or more of the pre-specified spatial units includes or is centroid interpolation.
2. The method according to claim 1, wherein When determining the target configuration vector (S1640), the target configuration vector is calculated using an iterative method (S1640), wherein the starting vector of the iterative method is selected based on the estimated configuration vector (S1620).
3. The method according to claim 1, wherein When determining the target configuration vector (S1640), the target configuration vector is determined to be the estimated configuration vector (S1620).
4. The method according to any one of claims 1 to 3, wherein The multiple pre-specified spatial units represent the division of the workspace into portions.
5. The method according to claim 4, wherein The division of the workspace is based on: -- Divided into spatial units of the same size, and / or --Subdivide the workspace coordinates into corresponding intervals.
6. The method according to claim 4, wherein: The pre-designated spatial units have different sizes, and the workspace is divided into layers.
7. The method according to claim 1, wherein The boundary points associated with the predetermined configuration vector include or are corner points of pre-specified spatial units.
8. The method of claim 1, wherein... The interpolation for the pose in one of the pre-specified spatial elements is a sum based on spatial element interpolation and correction interpolation, wherein --The correction interpolation for each of the multiple d-simulacra within a pre-specified spatial unit is the corresponding barycentric interpolation. --At least one corner point of one of the d-simulacra is located inside the pre-specified spatial unit, and --d is the dimension of the pre-specified spatial unit; and For each of the d simplexes, the corresponding centroid interpolation function is: --Assign a function value to each of the corner points of the d-simula located within the pre-specified spatial unit, the function value corresponding to the difference between the following two: o Based on the configuration vector associated with the indirect motion and the corner point, and o Based on the configuration vector associated with the corner point by the spatial cell interpolation; and --Assign 0 as a function value to these corner points of the d simplex located on the surface of one of the pre-specified spatial units.
9. The method of claim 1, wherein... The interpolation for the pose in each of the plurality of pre-specified spatial cells is based on the sum of the correction interpolation associated with the pre-specified spatial cell and the spatial cell interpolation, wherein --The correction interpolation for each of the multiple d-simulacra within the union of the multiple pre-specified spatial units is the corresponding barycentric interpolation. --At least one corner point of one of the d-simulacra is located within the union, and --d represents the dimension of the pre-specified spatial unit; and For each of the d simplexes, the corresponding barycentric interpolation function is: --Assigning function values for each of these corner points of the d-simulacra located within the union, the function values corresponding to the difference between the following two: o Based on the configuration vector associated with the indirect motion and the corner point, and o Based on the spatial cell interpolation associated with the pre-specified spatial cell where the corner point is located, and the configuration vector associated with the corner point; and --Assign 0 as a function value to these corner points of the d-simulacra located on the surface of the complex.
10. The method of claim 1, further comprising: Provide multiple pre-specified spatial units and the predetermined configuration vector, including: --The pre-specified space unit is obtained by performing or reading in the partitioning of the workspace; and --The predetermined configuration vector is obtained by calculating indirect motion or reading in.
11. The method of claim 1, further comprising: Adjusting multiple pre-specified spatial units and the predetermined configuration vector includes: --Add multiple new spatial units to the multiple pre-specified spatial units by dividing a pre-specified spatial unit; --Remove one of the pre-designated spatial units from the plurality of pre-designated spatial units; and --These predefined configuration vectors are provided in the following manner, each predefined configuration vector being associated with a point that is a non-corner point of the pre-specified spatial unit: o If the point is a non-boundary point of the pre-specified spatial unit, the indirect motion is calculated or read in; and o If the point is a boundary point of a pre-specified spatial unit, it is estimated by interpolation based on the indirect motion.
12. A method for controlling a motion system, the method comprising the following steps: Determine (S1700) the current configuration vector of the motion system; From multiple pre-specified spatial units in the configuration space of the motion system, determine (S1720) the spatial unit where the configuration vector is located (S1700); The current pose of the motion system is associated with the configuration vector determined by direct motion estimation (S1740) and ascertainment (S1700), wherein --The estimation (S1740) is performed based on interpolation of direct motion, and --The interpolation used to determine the configuration vector in the spatial cell (S1720) is based on the predetermined pose of the motion system, each predetermined pose being associated with the boundary point of the spatial cell determined (S1720) according to the direct motion; The current pose is determined (S1760) using the estimated pose (S1740); as well as Output (S1780) the current pose determined (S1760), where -- One or more of the pre-specified spatial cells are hyperrectangles, and the interpolation used for the configuration vectors in one or more of the pre-specified spatial cells includes or is multilinear interpolation; and / or -- One or more of the pre-specified spatial units are simplexes, and the interpolation for the configuration vectors in one or more of the pre-specified spatial units includes or is centroid interpolation.
13. A control device (1800) for controlling a motion system, wherein the control device is configured to: (S1600) Determine (the spatial cell in which the target posture of the motion system is located from multiple pre-specified spatial cells in the workspace of the motion system; Based on the configuration vector of the motion system associated with the target pose according to the indirect motion estimation (S1620), where: --The estimation is performed based on the interpolation of the indirect motion, and --The interpolation used to determine the pose in the spatial cell (S1600) is based on a predetermined configuration vector, each of which is associated with a boundary point of the spatial cell (S1600) according to the indirect motion; The target configuration vector is determined (S1640) using the estimated configuration vector (S1620); as well as Actuation (S1660) is a motion system having the target configuration vector, wherein -- One or more of the pre-specified spatial cells are hyperrectangular, and the interpolation used for the pose in one or more of the pre-specified spatial cells includes or is multilinear interpolation; and / or -- One or more of the pre-specified spatial units are simplexes, and the interpolation for the pose in one or more of the pre-specified spatial units includes or is centroid interpolation.
14. A control device (1800) for controlling a motion system, wherein the control device is configured to: Determine (S1700) the current configuration vector of the motion system; From multiple pre-specified spatial units in the configuration space of the motion system, determine (S1720) the spatial unit where the configuration vector is located (S1700); The current pose of the motion system is associated with the configuration vector determined by direct motion estimation (S1740) and ascertainment (S1700), wherein --The estimation (S1740) is performed based on interpolation of direct motion, and --The interpolation used to determine the configuration vector in the spatial cell (S1720) is based on the predetermined pose of the motion system, each predetermined pose being associated with the boundary point of the spatial cell determined (S1720) according to the direct motion; The current pose is determined (S1760) using the estimated pose (S1740); and Output (S1780) the current pose determined (S1760), where -- One or more of the pre-specified spatial cells are hyperrectangles, and the interpolation used for the configuration vectors in one or more of the pre-specified spatial cells includes or is multilinear interpolation; and / or -- One or more of the pre-specified spatial units are simplexes, and the interpolation for the configuration vectors in one or more of the pre-specified spatial units includes or is centroid interpolation.
Citation Information
Patent Citations
Method for automatic generation of control or regulation for robot, involves determining approximate function of reverse kinematics in neighborhood of primary start location
DE102012022190A1