[ODE] RE: attn: Erin Catto, concerning: fixed path constraint
Erin Catto
erincatto at sbcglobal.net
Thu Jul 21 22:34:14 MST 2005
Okay, this is clearer.
You have just two rotation axes:
1. The first axis is the vertical axis.
2. The second axis is along the axis of the upper arm.
For this constraint you can use a universal joint. No ball joint or planar
joint is needed.
Erin
-----Original Message-----
From: jnilson_99 at yahoo.com [mailto:jnilson_99 at yahoo.com]
Sent: Thursday, July 21, 2005 9:03 PM
To: Erin Catto; 'ode'
Subject: RE: [ODE] RE: attn: Erin Catto, concerning: fixed path constraint
"Perhaps you could explain the specific thing you are
trying to model."
i'm trying to model various motions in sports, like
swinging, throwing, etc. all must use the ball/socket
joint because that's the joint humans are using to
accomplish this task.
take throwing a baseball for example, the upper arm
moves along a plane roughly parallel to the ground
while rotating the lower arm from back to front. this
motion requires a ball/socket joint because all three
axis are being used. i could use a hinge to restrict
the upper arm to follow a plane, but then i couldn't
twist the lower arm.
i could use Russ's CMAC/Fox controller but for various
reasons i don't want to do that. the biggest reason
being i want to allow the user to change the motion of
the shoulder in realtime without requiring thousands
of training steps. using mathematical constraints like
requiring motion only along a plane i would be able to
change the motion of the shoulder and arm immediately.
john
--- Erin Catto <erincatto at sbcglobal.net> wrote:
> I guess I don't understand what you're after.
> Perhaps you could explain the
> specific thing you are trying to model.
>
> Erin
>
> -----Original Message-----
> From: jnilson_99 at yahoo.com
> [mailto:jnilson_99 at yahoo.com]
> Sent: Wednesday, July 20, 2005 1:32 AM
> To: Erin Catto; 'ode'
> Subject: Re: [ODE] RE: attn: Erin Catto, concerning:
> fixed path constraint
>
> "You cannot base a planar joint off a ball joint
> because a ball joint has 3 position constraints
> while
> a planar joint has only 2. "
>
> maybe i'm incorrect in using the word "planar".
> after
> a few google searches, it seems planar joints are in
> fact a real joint type. by planar i simply mean
> confining either a universal or ball/socket to
> follow
> a plane through the joint anchor. this would be
> something like defining a spline and making an arm
> follow the spline's path.
>
> i'm also a little confused on constraints. yes a
> ball
> and socket has 3 constraints per se. but it also has
> "limit" constraints which confine the joint to
> certain
> angle ranges of motion,i.e. hi/lo stops.
>
> is it possible to add my planar constraint like an
> additional limit constraint? i could go through the
> laborious process of updating the hi/lo stops every
> time step to the exact angle made by the plane and
> the
> ball/socket joint arm. i'd rather find a more
> elegant
> solution though.
>
> thanks,
>
> john
>
>
>
>
>
> john
>
> --- Erin Catto <erincatto at sbcglobal.net> wrote:
>
> > You cannot base a planar joint off a ball joint
> > because a ball joint has 3
> > position constraints while a planar joint has only
> > 2. I would implement a
> > completely new joint type and use the code for
> other
> > joint types as a guide.
> > The planar joint needs to use the position errors
> I
> > wrote along with their
> > Jacobian rows.
> >
> > Erin
> >
> > -----Original Message-----
> > From: jnilson_99 at yahoo.com
> > [mailto:jnilson_99 at yahoo.com]
> > Sent: Monday, July 18, 2005 1:36 AM
> > To: Erin Catto; 'ode'
> > Subject: attn: Erin Catto, concerning: fixed path
> > constraint
> >
> > Erin,
> >
> > I've given this a lot of thought as I'd like to
> > create
> > an additional "planar" constraint for any joint.
> > Take
> > a ball and socket joint for example. You mention
> "It
> > is best to formulate constraints like other joints
> > and
> > let ODE's solver compute the appropriate forces to
> > make the body movements honor the constraints."
> >
> > By this I take it that you mean ADD a constraint
> to
> > the existing constraint matrix. For a ball and
> > socket
> > joint, the solver calls "ballGetInfo2" which in
> turn
> > calls "setBall". "setBall" merely populates the
> > joint's "Info2" structure consisting of the
> Jacobian
> > matrix rows,cfm (constrain force mixing), and lo
> and
> > hi limits.
> >
> > If I wanted to add a PLANAR constraint to this
> > joint,
> > would I have to add an addition member to the
> > "Info2"
> > structure? That is somehow add "information" to
> the
> > "Info2" structure that would add an additional row
> > to
> > the existing Jacobian Matrix, the additional row
> > being
> > the equation limiting the joint to a certain
> > "Plane"?
> >
> >
> > Thanks,
> >
> >
> > John
> > --- Erin Catto <erincatto at sbcglobal.net> wrote:
> >
> > > It is best to formulate constraints like other
> > > joints and let ODE's solver
> > > compute the appropriate forces to make the body
> > > movements honor the
> > > constraints.
> > >
> > > A planar joint can be formed using three
> > constraint
> > > equations:
> > >
> > > - one to prevent motion along the plane normal
> > > - two to prevent rotation perpendicular to the
> > > normal
> > >
> > > dot(p2 - p1, n1) = 0
> > > dot(tx2, n1) = 0
> > > dot(ty2, n1) = 0
> > >
> > > where
> > >
> > > p1 = x1 + r1
> > > p2 = x2 + r2
> > >
> > > and
> > >
> > > x1, x2: body positions
> > > r1, r2: body anchor points
> > > n1: plane normal bound to body 1
> > > tx2, ty2: in plane basis vectors bound to body2
> > >
> > > Now you just need to differentiate the
> constraint
> > > equations to get the
> > > velocity Jacobians. These can be used to create
> a
> > > new joint in ODE.
> > >
> > > Erin
> > >
> > >
> > > _______________________________________________
> > > ODE mailing list
> > > ODE at q12.org
> > > http://q12.org/mailman/listinfo/ode
> > >
> >
> >
> >
> > _______________________________________________
> > ODE mailing list
> > ODE at q12.org
> > http://q12.org/mailman/listinfo/ode
> >
>
>
>
>
More information about the ODE
mailing list