Simulation of Rigid Body Motion with Impulsive Friction Force

Simulation of Rigid Body Motion with
Impulsive Friction Force
Katsuaki Kawachi
Hiromasa Suzuki
Fumihiko Kimura
[email protected]
[email protected]
[email protected]
Department of Precision Machinery Engineering, The University of Tokyo
7-3-1 Hongo, Bunkyo-ku, Tokyo 113, Japan
Abstract
problem. This formulation enables to calculate collision impulse which works between rigid bodies colliding at multiple
points. In addition to this, the relation between collision impulse and relative normal velocity was also formulated as a
linear programming problem.
An algorithm for simulating simultaneous collision impulse
with friction working between rigid bodies is described.
Based on this algorithm a simulator for the motion of rigid
bodies with collision impulse, friction impulse, contact force,
and friction force is developed. The results of some simulations of parts feeding mechanisms are shown.
Baraff [4] also presented a simple and fast algorithm for
calculating contact force with friction by formulating the
relation between force and relative acceleration as a LCP
(linear complementarity problem). The algorithm is based
on Dantzig’s algorithm for solving LCPs, and extended for
systems with friction. The simulator based on this algorithm
has achieved real-time and interactive simulation of twodimensional mechanisms with contact force, friction force
and collision impulse, but no friction force at collision is
described in this work.
1 Introduction
The mechanisms generally have many constraints as links or
sliders, therefore the degree of freedom of the mechanisms
is small. In addition to this, the constraints are constant
even when the mechanisms work. In contrast, we also see
mechanical objects which move under fewer and changing
constraints. For instance, mechanical methods such as vibratory bowl feeders are used to feed assembly parts in a
machine assembly line. There the parts are loosely constrained to the feeding track, and their contact condition
frequently changes. Fast simulation of the colliding objects
with simplified rigid body dynamics can be useful for testing
such mechanisms early in the design cycle and is expected
to reduce product development time.
Some works have approached to simulate the motion of
rigid bodies with such changing contact constraints. In this
motion, rigid bodies frequently make collisions. Thus one
of the key issue is calculation of collision impulse between
rigid bodies.
Moore and Wilhelms [1] presented an analytical method
to calculate the contact force and collision impulse. This
method treats the collision at multiple point as a series of
collisions at a single point.
Hahn [2] also presented a method for calculating collision impulse with friction working at a single point. This
method models contact as small collisions.
Baraff [3] formulated the relation between contact force
and relative normal acceleration as a linear programming
Mirtich and Canny [5] presented an “Impulse based”
algorithm which can trace in detail the change of friction
force at a single colliding point by numerical integration
of both contact force and friction force, and Berkowitz and
Canny [6] presented a method for designing parts feeder by
the dynamic simulator based on this algorithm. The impulse
based method can simulate realistic friction in collision, but
it is not described how to extend this method to simultaneous
collision at multiple points.
This paper presents an extended formulation of Baraff
[3] [4] for simulating the impulsive friction force which acts
at the collision of bodies. We also give the results of the
simulation and compare the results by our algorithm with
those by “Impulse-based” algorithm presented by Mirtich
and Canny [5].
2
Collision Model
In this section we describe the kinematic assumptions in this
work and the modeling of collision impulse and velocity
based on that of Baraff [3].
182
2.1 Basic Assumptions
A
We simulate motion of bodies in two dimension with these
assumptions.
• Bodies are rigid and do not deform by contact or collision.
pN n
• The shape of an object is polygonal.
• Contact or collision occurs between a vertex and an
edge. Contact between edges are represented by a pair
of contacts between a vertex and an edge. Contact
force and impulse act on vertices.
P
rB
In order to simplify the change of position in simultaneous collision at multiple points we make the following
assumptions.
• Position of objects does not change from the start of
collision till the end of the collision.
B
From equations (2), (3), and (4) we obtain
0
vA
2.2 Frictionless System
n
rA × n
+
× rA )pN
mA
IA
= v A + cA p N ,
= vA + (
(5)
where cA is a constant vector. Similarly we can write
In a frictionless system the normal collision impulse pN n
acts between colliding bodies, where n is the unit vector
perpendicular to the colliding edge (Figure 1).
In order to describe the condition for non-penetrating
collision we use this notation:
0
vB
= vB + cB pN .
(6)
Baraff [3] utilizes the relative normal velocity of the
objects at P for the condition for non-penetrating collision. If
the relative normal velocity vN is smaller than zero, it means
that the objects are colliding. In the same way vN = 0 means
contacting, and vN > 0 means separating. vN is defined by
vA and vB as follows,
mass of object A, B
moment of inertia
linear velocity vector before collision
linear velocity vector after collision
angular velocity vector before collision
angular velocity vector after collision
collision point
center of gravity
vector from G{A,B} to P
vN = n · (vA − vB ).
(7)
0
The relative normal velocity vN
after collision is defined by
using equations (7), (5), and (6)
0
vN
0
0
= n · (vA
− vB
)
= n · (cA − cB )pN + vN
= c pN + vN ,
(8)
where c is a constant.
If we have n colliding points simultaneously, the equation (8) can be expanded as
rA and rB do not change in the collision period, because
no change of position of bodies in the period is assumed.
vA is the velocity of the colliding point P on the object
A before collision and written as
0
vN
i
(1)
=
n
X
Aij pNj + vNi
(9)
j=1
where vNi is the relative normal velocity before collision at
0
ith collision point, vN
is that after collision, pNi is the magi
nitude of normal collision impulse, and Aij is the constant
and
0
0
vA
= u0A + ωA
× rA ,
GB
0
where vA
is the velocity after collision. The changes of
linear and angular velocity are given by impulse momentum
theorem as
pN n
u0A = uA +
(3)
mA
rA × pN n
0
ωA
= ωA +
.
(4)
IA
• Friction is modeled by Coulomb’s law.
vA = uA + ωA × rA ,
n
rA
Figure 1: Collision impulse
• Collision is modeled by the coefficient of restitution.
m A , mB
IA , IB
uA , uB
u0A , u0B
ω A , ωB
0
0
ωA
, ωB
P
GA , GB
rA , rB
GA
(2)
183
v0 = Ap + v,
calculated by the position of colliding points. Equation (9)
for all collision points can be simply rewritten
0
v = Ap + v,
where tangent velocity variables vT0 i , vTi and tangent impulse
variables pTi are added to the vectors v0 , v, and p as
(10)
where
v0
0
0
= (vN
, . . . , vN
) T ∈ Rn
1
n
v
= (vN1 , . . . , vNn )T ∈ Rn
p =
(14)
v0
=
0
0
(vN
, vT0 1 , . . . , vN
, vT0 n )T ∈ R2n
1
n
v
=
(vN1 , vT1 , . . . , vNn , vTn )T ∈ R2n
(pN1 , pT1 , . . . , pNn , pTn )T ∈ R2n .
p =
A ∈ R2n×2n is constant and calculated from the position of
colliding points.
(pN1 , . . . , pNn )T ∈ Rn
A = (Aij ) ∈ Rn×n .
To calculate collision impulses p, Baraff [3] defined the
following conditions using the coefficient of restitution εi :
0
vN
≥ −εi vNi
i
(11)
pNi ≥ 0
(12)
0
pNi (vN
+ εi vNi ) = 0.
i
(13)
3.2
Friction Force in Collision Period
In no friction system the normal contact force fN (t)n acts in
the collision period [t0 , t1 ] between two rigid bodies. Consequently the normal impulse pN n at the collision point P
(Figure 2) is
Z t1
pN =
fN (t)dt.
(15)
t0
In this paper these conditions (11), (12), (13) are applied to
calculate normal collision impulses p.
Assume that the relative tangent velocity of two objects
at P keeps not zero. The magnitude of the friction force
(plotted with broken line in Figure 3) is µd fN (t) where µd is
the coefficient of dynamic friction at P. The tangent impulse
pT is defined by the product of µd and pN as following
equation (16).
Z t1
pT =
µd fN (t)dt = µd pN
(16)
3 Friction Impulse
If two objects are in contact and sliding, friction force will
work on sliding point of the objects. Similarly if the colliding
point between objects is sliding, both collision impulse and
impulsive friction force will work. In this section we describe
the definition of the impulsive friction force.
t0
If the relative tangent velocity of two objects at P keeps
zero in the collision period, the friction force fT (t) is static
and at most µs fN under Coulomb’s friction model. The
tangent impulse pT is limited by
Z t1
|pT | ≤
µs fN (t)dt = µs pN ,
(17)
3.1 Friction and Velocity
If friction force works in collision, the tangent collision impulse pT t will act, where t is the unit vector tangent to the
colliding edge (Figure 2).
In this case the relation between the normal and tangent
velocity and impulse variables is linear and can be written in
the same way as equation (9) as follows.
t0
where µs is the coefficient of static friction.
In these two cases it is assumed that the sign of the relative
tangent velocity does not change, but if the sign varies in the
A
Force
pN n
d Fm
n
pT t
Normal Force
Tangent Force
Fm
t
time
B
O
Figure 2: Normal impulse and tangent impulse at collision
t0
t1
Figure 3: Normal force and tangent force in collision period
184
collision period, the friction mode will change between static
friction and dynamic friction.
“Impulse based” algorithm [5] can calculate this changing friction mode by numerical integration of both contact
force and friction force, but it is difficult to apply this method
for simultaneous collision because of complex relations between multiple collision points.
In order to simplify the change of velocity in simultaneous collision at multiple points we make the following
assumptions.
Unnatural
Motion
Figure 4: Unnatural Motion caused by equation (22)
• Velocity of objects does not change in collision period.
• Velocity of objects changes discontinuously at the end
of the collision period
|pTi | ≤ µdi pNi ,
The relation between impulse and velocity is made linear by
these assumptions.
If the relative tangent velocity before collision vTi is zero,
static friction force will work in the collision period in order
to minimize vT0 i , relative tangent velocity after collision.
Static friction force fTi is limited by
vT0 i (|pTi | − µdi pNi ) = 0.
(18)
3.5
|pTi | ≤ µi pNi , vT0 i (|pTi | − µi pNi ) = 0
t0
|pTi | ≤ µsi pNi .
(25)
where µi is decided by the relative tangent velocity before
collision at point i as follows.
µdi (if vTi 6= 0)
µi =
(26)
µsi (if vTi = 0)
(20)
If the static friction force can not maintain vT0 i = 0, maximum static friction impulse will work and |pTi | = µsi pNi .
This condition is written
vT0 i (|pTi | − µsi pNi ) = 0.
Algorithm of Calculation
The conditions of force and impulse described in equations
(20), (21), (23) and (24) are
Hence tangent impulse pTi is limited by
(21)
Because solving equation (14) under the conditions (25)
(26) are mathematically identical with those of contact force
with static friction and relative acceleration presented by
Baraff [4], normal and tangent impulse can be calculated by
the Dantzig’s algorithm extended by Baraff.
The algorithm works as follows. First, all collision conditions but those for the first colliding point are ignored, and
pNi and pTi are set to zero for all i. The algorithm begins by
0
satisfying the conditions (11), (12), and (13) for pN1 and vN
.
1
Next, the algorithm satisfies the conditions (25) and (26) for
pT1 and vT0 1 while maintaining the conditions for pN1 and
0
vN
. This second operation for pT1 and vT0 1 may need to
1
0
modify pN1 and vN
retroactively. And then, the algorithm
1
0
satisfies the conditions for pN2 and vN
. By satisfying colli2
sion conditions of each colliding point in this way, collision
impact p can be all calculated.
The sign of pTi is opposite to that of vTi .
3.4 Dynamic Friction Impulse
If vTi is not zero, dynamic friction force will work in the
collision period, and tangent impulse pTi is written as
|pTi | = µdi pNi
(24)
The sign of pTi is opposite to that of vTi .
where µsi is the coefficient of static friction. By integrating
this condition we get
Z t1
Z t1
|pTi | =
|fTi (t)|dt ≤ µsi
fNi (t)dt
(19)
t0
(23)
that is, dynamic friction force stops working in the collision
period when the tangent velocity reaches zero. In other
words, if the dynamic friction force can not achieve vT0 i = 0,
dynamic friction force will keep working during the collision
period and |pTi | = µdi pNi . This condition is
3.3 Static Friction Impulse
|fTi (t)| ≤ µsi fNi (t)
Desirable
Motion
(22)
where µdi is the coefficient of dynamic friction. However,
if |vTi | is small enough, pTi calculated by this equation may
reverse the sign of vTi . For example, when we drop a ball
with some tangent velocity on a horizontal plane, it may be
observed that the ball seems to bounce off an invisible wall.
In order to prevent this unnatural phenomenon, we modify the equation (22) as follows
185
4 Results
Comparison of Parts Feeding Speed (0° ramp)
200
Based on this formulation we have developed a simulator for
the motion of rigid bodies with impulse, friction impulse,
contact force, and friction force. The simulator (Figure 6)
is developed on an SGI R4000 workstation. The results of
some simulation of parts feeding mechanisms are shown.
We also implement an “Impulse-based”[5] simulator and
compare the results of simulation by both methods.
Position (mm)
150
100
50
0
With Tangent Impulse
Without Tangent Impulse
-50
0
4.1 Bowl Feeder
0.2
0.4
0.6
Time (sec.)
0.8
1
Comparison of Parts Feeding Speed (3° ramp)
A vibratory bowl feeder [7] (Figure 5) transports parts upward on the slanted feeding track by vibrating the track.
If no friction impulse works, steady friction force will not
work until the collision becomes very small between parts
and feeding track.
Figure 7 shows the change in the position of an object on
the feeding track along time. The cycle of the vibration of
the track is 16Hz. The difference in those two graphs is in
the ramp angle, 0◦ and 3◦ respectively. The comparison of
parts feeding speed shows that the mechanism can not feed
parts in the 3◦ ramp, if the friction impulse does not work.
It can be said that the simulation of declined feeding track
needs friction impulse to feed parts upward.
100
Position (mm)
50
0
-50
-100
With Tangent Impulse
Without Tangent Impulse
-150
0
0.2
0.4
0.6
Time (sec.)
0.8
1
Figure 7: Feeding Speeds with/without Friction Impulse
Comparison of Parts Feeding Speed (0° ramp)
200
4.2 Comparison with Impulse Based Method
150
Position (mm)
The results of simulation of the vibratory bowl feeder (Figure
5) by our method and Impulse Based Method [5] are shown
in Figure 8. Though there are small difference between
the simulated motions of parts, almost no difference in the
steady feeding speed is found. This result can be considered
as evidence for the validity of our proposed algorithm.
100
50
0
Our Method
Impulse Based Method
-50
0
Bowl
0.2
0.4
0.6
Time (sec.)
0.8
1
Comparison of Parts Feeding Speed (3° ramp)
200
Electromagnet
150
Position (mm)
Lamellar
Spring
Figure 5: Bowl Feeder [7]
100
50
0
Our Method
Impulse Based Method
-50
0
0.2
0.4
0.6
Time (sec.)
0.8
1
Figure 8: Comparison of our Method and Impulse Based
Method [5]
vibration
Figure 6: Simulator
186
5 Application to Parts Orienter
The results of simulating another mechanism [8] are
shown in Figure 10. The mechanism uniforms the direction of parts by hooking their opening ends. The first and
second results (top and middle) shows that the mechanism
orient the direction of parts. The third result (bottom) is one
of the bad configurations of the mechanism, where the hook
is too short to turn parts upside down, and parts are caught
on the way to the feeding chute.
We also simulate parts orienting mechanisms by the simulator based on our method. A mechanism [8] (Figure 9)
uniforms the direction of parts with its center partition. The
result shows that the simulation can calculate that the mechanism orients parts in both directions.
(1)
(2)
(3)
(4)
(5)
(6)
6
(1)
(2)
(3)
(4)
(5)
We have described an extended formulation of Baraff [3] for
simulating the impulsive friction force between rigid bodies
colliding at multiple points. We implemented a simulation
system by integrating our formulation for impulsive friction
force with Baraff’s formulations for contact force, friction
force and collision impulse.
Further simulation of automated assembly and feeding
mechanisms, simulations with permanent constraints (like
links and sliders), and comparison with other methods are
planned.
(6)
Figure 9: Orientation of Cup Parts (1)
(1)
(2)
(3)
(4)
(5)
Conclusion
References
[1] Mathew Moore and Jane Wilhelms, “Collision detection
and response for computer animation,” in Computer
Graphics Proceedings, 1988, pp. 289–298.
(6)
[2] James K. Hahn, “Realistic animation of rigid bodies,”
in Computer Graphics Proceedings, 1988, pp. 299–308.
[3] David Baraff, “Analytical methods for dynamic simulation of non-penetrating rigid bodies,” in Computer
Graphics Proceedings, 1989, pp. 223–232.
(1)
(2)
(3)
(4)
(5)
(6)
[4] David Baraff, “Fast contact force computation for nonpenetrating rigid bodies,” in Computer Graphics Proceedings, 1994, pp. 23–34.
[5] Brian Mirtich and John Canny, “Impulse-based simulation of rigid bodies,” in Proceedings of Symposium on
Interactive 3D Graphics, 1995.
(1)
(2)
(3)
(4)
(5)
[6] Dina R. Berkowitz and John Canny, “Designing parts
feeders using dynamic simulation,” in Proceedings of
the IEEE International Conference on Robotics and Automation, 1996, pp. 1127–1132.
(6)
[7] Kenneth R. Treer, Automated Assembly, The Society of
Manufacturing Engineers, 1979.
[8] G. Boothroyd and A. H. Redford, Mechanized Assembly,
1969.
Figure 10: Orientation of Cup Parts (2)
187