This invention relates to robotic manipulators and methods for multi-contact interactions or collisions with objects.
Modern tools for developing control programs for robotic manipulators include digital models of the workspace and dynamic simulations, either non-interactive or interactive, with a haptic/VR/human-machine interface. A common requirement of simulators used in such applications is to model collision and contact interactions between the robot and objects in the workspace.
In modeling such interactions, the simulator’s task is to compute a smooth motion of the bodies in contact without inter-penetration. Furthermore, contact forces must be computed at each contact interface between the robot and its workspace, which can be presented to the control program or a haptics interface through virtual sensors. Applications for simulation of robotic manipulators in contact-driven tasks require stable and smooth estimates of contact forces.
Current methods of modeling multi-contact interactions between multiple rigid objects use polygon meshes. Two polygonal meshes in contact can generate a large list of contact points, leading to jitter and computational inefficiency in determining the contact forces. Since objects in motion produce a different set of contact points at each time step, a jitter in the contact forces also results in jittery simulated motion of the objects and the robot.
The present invention addresses these limitations of polygon-mesh modeling and provides technology to generate smooth contact forces in computer simulations, robotics and haptic/VR environments.
In one example, the present invention is a method for determining contact dynamics at an interface of a robot having one or more body links interacting with one or more objects. This method distinguishes the steps of fitting geometric shape primitives combined through composition operations (e.g. a union, an intersection, or a difference) for each of the one or more body links and each of the one or more objects the one or more body links are interacting with. A distance is then determined between each of the fitted geometric shape primitives. Contact surfaces are then determined for each pair of the fitted geometric shape primitives where the distance is zero or below a threshold. A common contact frame is determined whose original lies at a center of pressure, where the center of pressure is computed at each of the determined contact surfaces. Provided those determinations, the contact force vector and a contact moment vector are then determined at each of the common contact frames.
In one example, the step of computing the common contact frame further includes the step of determining geometric characteristics of each contact surface. Geometric characteristics are a surface normal, a curvature, or principle axes of curvature.
In yet another example, the step of determining a contact force vector and a contact moment vector further includes the step of computing projected dynamics of the one or body links in terms of a relative linear and angular motion between the pairs at each common contact frame.
In still another example, the method includes using constraints in determining a contact force and a torque for each common contact frame. The constraints incorporate friction equations and non-penetration equations.
Compared to conventional simulators that use polygonal meshes, embodiments of this invention provide a fast and stable method for estimating the contact forces at multiple contact patches for multi-contact interactions between a robot and objects in its environment. Additionally, the estimated contact forces are physically consistent, and provide a useful to substitute to measured forces using sensors. Embodiments of this invention programmed as computer-implemented method(s) into a simulation software can produce smooth motion of the robot and objects in its environment without artifacts such as inter-penetration between bodies and unexpected oscillations.
Embodiments of the invention can be used for commercial simulation or analysis software catering to several applications. The method can be used for multi-body simulation where it can predict the motion and contact forces arising in machines. The method can be used in computer games to compute the dynamics of objects and characters that the players are interacting with. The method can be used for several applications in the field of robotics - to evaluate the design of a robot in virtual deployments, to develop offline motion plans, to develop reactive controllers or to design motion trajectories in real-time. The method can be used in interactive VR environments to generate virtual force feedback on a haptic device.
In each of the above applications, the embodiments of this invention improve the computational speed and stability. Benchmarks against a conventional method of computing contact forces showed that the method provides significant improvement in computational speed. The difference in time taken to compute contact forces between the conventional method and the present method sharply increases as the complexity of the object shapes is increased. Additionally, an embodiment of the method in a simulation software was shown to produce smooth motion of objects in contact, closer to physically correct motion, as compared to a conventional simulator using polygonal meshes. Unphysical oscillations in the motion of the objects was reduced by up to 80%.
Simulation of mechanical and electromechanical systems such as robots requires modeling of the system kinematics, dynamics and contact interactions. It also requires propagation of an initial state of the system over time such that the rates of state change are physically consistent. Simulating multi-contact interactions further requires methods to model the geometry of the objects in the simulated environment, to determine the distance between geometric shapes of the objects, to determine the interaction forces between objects in contact and to determine a contact-consistent motion of such objects.
In addressing the problems in the art, this invention introduces the following methods:
In Method 1, the geometric shape of a complex object is represented in simulation as a composition of primitive shapes that are parametrizable or analytical in nature. Union, intersection or difference operations (also referred to as composition operations) can be used to combine shape primitives into complex object shapes. Such a decomposition can be pre-computed either ground-up from CAD models of simulated objects, or using automated fitting techniques. During time simulation, the distance between each pair of objects is queried at each step, either following an optimization of broad phase separation of object pairs or without such a broad phase. The distance between object pairs is computed through a distance computation between the groups of primitives that compose the two object shapes. When two objects are determined to be in contact due to zero distance between their shape surfaces, the contact patch is computed as a set of points, line segments and surface patches bounded by primitive surfaces.
In Method 2, the contact force/moment required at each contact patch between object pairs is determined. The Common Contact Frame (CC-Frame) is a specified body-fixed coordinate frame located in the convex hull of the contact patch that is shared by both bodies in contact at that patch. In particular, the CC-Frame origin is located at the center of pressure of the contact patch in the method. During time simulation, the CC-Frame at each contact patch is not known a priori, although that information might be available from previous time steps of the simulation and can be used as an initial approximation. A computer-implemented algorithm simultaneously computes the location of the CC-Frame as well as the contact forces/moments required to enforce non-interpenetration between the rigid bodies and simulate surface friction. Spatial rotational and translation constraints are enforced using the CC-Frame method in a unified, global fashion across each contact patch. The computed contact forces and moments can be used during numerical integration of the system state to generate physically consistent trajectories of the rigid objects that can be presented with or without graphical display.
Use of shape primitives to model the geometry of objects as a composition of primitive shapes with certain properties that yields a description of a contact patch geometry when two objects are in contact.
In the method, the overall object shape is approximated using a composition operation on the analytical representations of its component parts.
Let Si,j(x, y, z) = 0 represent the jth shape primitive which is part of the ith object shape in the simulated environment. Each shape primitive Si,j represents the surface of a closed, convex set.
Each object shape Si is represented as a composition of shape primitives, where one of three composition operations is used in joining two shapes (e.g. in
Each composition yields a shape part Si,j1j2... jk and the whole shape is a composition of its shape parts. Shape parts cannot be empty sets.
At each time step in the simulation, the objects that are in contact and the shape of the contact patch are determined. To determine which objects are in contact, the minimum distance between a pair of objects is computed. Since this is a computationally expensive process, a shape covering is pre-computed using a bounding volume hierarchy (BVH) of spheres. Each BVH is composed as a tree of spheres where a sphere at a parent node completely envelops each sphere in its subtree, each leaf sphere envelopes the whole or a portion of a shape primitive for the shape being covered, and the parent node sphere of the whole tree completely envelops the object shape.
Let Bi1 and Bi2 represent the BVHs of two object shapes. Then, shapes Si1 and Si2 are intersecting only if the BVHs Bi,1 and Bi,2 are intersecting at one or more leaf nodes. Testing for the intersection between BVH Bi,1 and Bi,2 is defined as a coarse intersection test. If the coarse intersection test is positive, a list of the potentially intersecting shape parts for each of the two shapes is returned. If the coarse intersection test between two shapes is positive, the pairwise distance between the shape parts are computed to determine if the distance between the two object shapes is below a predefined threshold for contact, ∈C.
Use of a Common Contact Frame to determine contact forces and the center of pressure between each pair of objects in contact either at a point, along a line or across a closed planar surface, and to resolve a multi-contact interaction in a system of rigid bodies with or without articulation constraints.
After computing the contact patches, the ith contact patch Gi where i = 1,2,... dc is obtained for dc simultaneous contacts between the bodies. The contact patches (e.g. in
At each contact patch, in order to avoid inter-penetration, a repulsive contact force must be applied on both bodies in contact. State-of-the-art solvers solve for the contact force at each contact point on the contact patch between the bodies. This leads to a large computational problem to determine a feasible set of contact forces that obey the laws of physics, including friction, momentum and non-adhesion. The individual forces are then aggregated and applied to each rigid body to determine the resulting motion of the articulated body. The computer-implemented method of this invention directly computes the aggregated force and moment instead on each rigid body, thus achieving better computational run time.
In the method, the contact constraints between two rigid bodies are described at a single Cartesian frame specified at the contact patch shared between the bodies. The frame origin is specified by a spatial position vector with respect to an inertial frame in the simulation world. The frame directions are specified as follows: ‘z’ axis points in the direction of the normal non-penetrative force, ‘x’ and ‘y’ axes point in two orthogonal directions perpendicular to the ‘z’ axis. Typically, the ‘z’ axis aligns with the common normal to the two body surfaces at the frame origin and the ‘x’ and ‘y’ axes align with the tangent plane. This frame is called as the Common Contact Frame (CC-frame) as it is shared between the two bodies, and used to describe the instantaneous relative motion and internal contact forces between the two bodies (see
The CC-frame origin is designed to coincide with the center of pressure between the two surfaces at the contact patch. This choice makes the CC-frame as well as the contact forces/moment unique, given a particular contact patch geometry, body inertial properties and applied forces on the two bodies. The center of pressure (COP) is defined as the point pcop on the contact patch where the following relation holds for the applied contact forces/moments while satisfying the other contact constraints:
where Mx and My are the x- and y-components of the contact moment respectively. The above equation will hence forth be referred to as the COP constraints.
For the computed contact forces at the CC-frame to be valid, the following constraints must also hold:
where Fz is the z-component of the contact force and az is the z-component of the relative translational acceleration of the two bodies. This equation is referred to as the non-penetration constraint.
where µt is the translational coefficient of Coulomb friction. νx and νy indicate the relative translational velocity between the bodies at the CC-frame origin and
is the translational slip speed. δst represents a very small positive number below which the bodies are assumed have no relative translational motion. The above two equations constitute the translational friction constraints.
where µr is the rotational coefficient of friction that is related to µt in the CC-frame method through a length relationship that is dependent on the contact patch geometry. ωz and αz are the relative angular velocity and acceleration respectively between the two bodies measured at the CC-frame origin. sr = |ωz| is the rotational slip speed. δsr represents a very small positive number below which the bodies are assumed have no relative rotational motion. The above two equations constitute the rotational friction constraints.
Lastly, the kinematic constraints associated with the relative tilting rotation of the two bodies is considered. If the contact patch spans a surface of non-zero area and the CC-frame origin lies in the interior of the patch, the following constraint on the relative angular acceleration applies:
When the contact patch is a line segment, and the CC-frame origin lies in the interior of the segment, the following constraint applies:
where e is the unit norm direction vector along the edge.
If the contact patch is a line segment, and the CC-frame origin lies on one of the two boundary points, the following constraint applies instead:
where the indicator variable t = 1 if e points away from the segment at the CC-frame origin, else t = -1.
If the contact patch is a single point, there are no constraints on α.
In case the contact patch constitutes a surface of non-zero area, and the CC-frame origin lies on a straight boundary edge, the following constraints applies:
where b is the unit direction tangent vector at the CC-frame origin such that z × b points to the interior of the contact patch.
In case the contact patch constitutes a surface of non-zero area and the CC-frame origin lies on a curved edge, the following constraint applies:
Finally, in case the contact patch constitutes a surface of non-zero area and the CC-frame origin lies at a vertex of a surface contact patch shared by two edges with tangent direction vectors b1 and b2 respectively at the shared vertex,
Equations 5a-f together constitute the rotational motion constraints.
Put together, equations 1 to 5f are referred to as the contact constraints at the CC-frame.
Although the above constraints are in the mixed form including contact forces/moments and relative translational/angular acceleration at the CC-frame, they can be re-expressed in terms of contact forces/moments alone. To do so, the Contact Space Resolution Method [1] is used which allows determination of the relationship between the contact forces/moments at the CC-frame and the resulting relative accelerations.
where ϑ = [v1, ω1, ..., νdc′ ωdc] is the stacked vector of relative translational and rotational velocity at all the contact patches and FC = [F1, M1, ..., Fdc′ Mdc] is the stacked vector of contact forces and moments at the contact patches. Matrix ΛC is the contact-space inertia matrix, and vectors µC and pc represent the Coriolis/centrifugal/gyroscopic and gravity forces respectively projected in the contact space. JC is the Jacobian relating the generalized coordinates velocity to the relative translational/angular velocities between the bodies in contact and Γ is the generalized coordinate forces applied by external non-contact sources such as joint torque controllers. The above relationship is called the contact space dynamics constraint and allows the relative accelerations in the contact constraints to be re-expressed in terms of the contact forces/moments.
To resolve the contact, the location of the CC-frame origin as well as the force/moment along its x-, y- and z- axes are determined at each contact patch for a total of 8 unknown parameters per contact patch.
When more than two objects are present in a contact island, the process algorithm of
If some of the contact constraints are redundant between two contact patches, the method checks for independent contact constraints in each of the axis directions associated with the CC-Frame before imposing the constraint at step (i) above. This process can be computationally sped up with a redundancy direction hint that is provided to the process algorithm.
Noted is that embodiments of the method of this invention exclude cases where each contact surface is a single point.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2021/053568 | 10/5/2021 | WO |
Number | Date | Country | |
---|---|---|---|
63088741 | Oct 2020 | US |