Structure and Synthesis of Robot Motion Introduction · 05/02/2009 Structure and Synthesis of Robot...
Transcript of Structure and Synthesis of Robot Motion Introduction · 05/02/2009 Structure and Synthesis of Robot...
Structure and Synthesis of Robot Motion
Dynamics: Constraints, Continua, etc.
Subramanian RamamoorthySchool of Informatics
5 February, 2009
Recap
• Last time, we discussed two major approaches to describing rigid body motion– Newton Euler: Compute forces/torques and describe motion in terms
of their balance
– Lagrangian: Define an energy functional and describe motion in variational terms
• I mentioned the idea of constraints to motion
This lecture builds on previous one, by providing a few more advanced topics.
05/02/2009 Structure and Synthesis of Robot Motion 2
Constraints
They are everywhere in robotics!
05/02/2009 Structure and Synthesis of Robot Motion 3
Understanding Constraints – Bead on Wire
How does this bead move along the loop due to applied forces?
• Along the circle, it can slide freely
• However, it should never come off by pulling
A simple proposal: Attach the bead to the loop via a spring
• What happens if spring is too soft?
Bead slowly wobbles in a “goopy” way
• What happens if spring is too hard?
Bead vibrates in an undesirably hard way
05/02/2009 Structure and Synthesis of Robot Motion 4
Another Way to Deal with Constraint
• The position of bead may be described parametrically:
q = r[cos , sin ]
• This 1-DOF constraint must always be met
05/02/2009 Structure and Synthesis of Robot Motion 5
q
Warning: A lot of careis required to setup such problems – seeCh 12 of Choset et al.
Constraints Often Yield DAEs
• DAE: Differential Algebraic Equations
• General structure:
• The idea is that the ODE for x(t) depends on additional algebraic variables z(t) and the solution must satisfy the additional algebraic constraint!
• This makes is hard for traditional ODE solvers – Jacobians can be singular
• The solution is related to what we saw with the bead-on-loop example but the details are a bit more involved
– In practice, make use of pre-existing solvers!
05/02/2009 Structure and Synthesis of Robot Motion 6
),,(0
),,(
tzxg
tzxfx
Modelling Other Effects: Dissipation
• So far, we haven’t talked about effects like friction or energy dissipation
• A simplistic way to bring them into equations of motion is to just “add terms” for them – we’d like to be more principled
• How to bring dissipation into the Lagrangian model?
05/02/2009 Structure and Synthesis of Robot Motion 7
Modelling Dissipative Forces
05/02/2009 Structure and Synthesis of Robot Motion 8
Dissipation - Example
• Imagine a block sliding down a wedge
• How to model the friction?
05/02/2009 Structure and Synthesis of Robot Motion 9
Next Step: Towards Continuous Objects
Most of our attention has been on systems consisting of (relatively few) links of rigid bodies
• How do these methods scale towards `realistic’ objects that are flexible and deformable?
• How do these methods apply to large ensembles (e.g., team of distributed robots or avatars)?
- These are some of the frontier problems in robotics and other areas involving computational motion
- These are also vast areas of study on their own, so we’ll focus on two things: deformation and flows
05/02/2009 Structure and Synthesis of Robot Motion 10
Recap: Linear Transformations
• A rotation matrix is a specific example of a more general class of linear transformations:
• Can achieve many types of ‘distortions’:
– Using diagonal elements, describe axis-wise scaling
– A negated diagonal element leads to mirroring
– Off-diagonal elements lead to shearing
05/02/2009 Structure and Synthesis of Robot Motion 11
An Extension
• In general, we could use tensors to describe transformations
• A benefit of using such notation is that we can also naturally talk about higher derivatives
05/02/2009 Structure and Synthesis of Robot Motion 12
What is a Tensor, Really?
• It measures distortion of space in terms of distortion of coordinate frames
• If you measure angles between old and new coordinate frames as the underlying quantity (object) is being transformed then you can describe the process well
05/02/2009 Structure and Synthesis of Robot Motion 13
Using Tensors to Describe Deformations
05/02/2009 Structure and Synthesis of Robot Motion 14
Describing Fluid Flows
• Similar ideas can be used to describe fluids
• Consider this volume within a fluid
• The motion of the fluid is defined by
conditions on balance of forces
The pressure balance may be described
(in equilibrium) as:
05/02/2009 Structure and Synthesis of Robot Motion 15
A Bit More Realistic
• The equation in previous slide only make sense in a very static setting (may not be of most interest)
• In fact, there are viscous forces that drag a fluid and then there may be resulting acceleration
• Rewritten somewhat differently (a version of Navier-Stokes),
05/02/2009 Structure and Synthesis of Robot Motion 16
What does Navier-Stokes have to do with Robotics?!
Sometimes such fluid models are very useful ways to describe the motion of crowds and ensembles
05/02/2009 Structure and Synthesis of Robot Motion 17
[Treuille et al., ACM SIGGRAPH 2006][Pimenta et al., ICRA 2008]
Another Application: Sometimes we wish to Manipulate Flexible Objects
05/02/2009 Structure and Synthesis of Robot Motion 18
In Practice…
• People in animation often treat many of these things as just very large spring-mass (rigid body) systems
• In robotics, especially if you were designing control strategies to enforce movements then you may find more compact, but conceptually more involved, models useful!
05/02/2009 Structure and Synthesis of Robot Motion 19
[Selle et al., ACM SIGGRAPH 2008]
In Practice… Finite Elements
• Often, problems involving deformation and flows are handled using methods such as finite elements
• Here is the basic idea
• Consider a process that can be described in terms of differential equations
(Note that we’ve left the form of dynamics open – some combination of position, velocity, acceleration terms)
• Discretize the domain:
05/02/2009 Structure and Synthesis of Robot Motion 20
Finite Elements, contd.
• Define an interpolation scheme within each element
• Based on this, define a large matrix system to describe motion
05/02/2009 Structure and Synthesis of Robot Motion 21
In Practice… Particle Systems
• Particle system is an array of particles.
• Decouple system from solver:
– Translate into a generic position and acceleration vector
1. Set current state (positions and velocities)
2. Get current state (positions and velocities)
3. Compute accelerations f(X, t)
• Integration uses only these methods to simulate evolution of a particle system
05/02/2009 22Structure and Synthesis of Robot Motion
In practice… Particle Systems
AnimateParticles(n, y0, t0, tf)
{
y = y0t = t0DrawParticles(n, y)
while(t != tf) {
f = ComputeForces(y, t)
dydt = AssembleDerivative(y, f)
//there may be multiple force fields
{y, t } = ODESolverStep(6n, y, dy/dt)
DrawParticles(n, y)
}
}
05/02/2009 23Structure and Synthesis of Robot Motion
Particle Animation [Reeves et al. 1983]Start Trek, The Wrath of Kahn
05/02/2009 24Structure and Synthesis of Robot Motion
Summary
• We discussed a few special topics involving dynamics
• We talked about modelling constraints and including them in equations of motion
• Then we discussed (in outline form) models of deformations and flows
• Such models are useful in a variety of areas ranging from distributed robotics to complex manipulation problems
• Everything in this lecture is literally just a sampler – read further if you see yourself needing these topics!
05/02/2009 Structure and Synthesis of Robot Motion 25