Hi,
Thank you for the precisions, i understand what you want to do now.
First you get this message error because you are applying the three
drivers to the same rotation (X rotation). The line "
MeasureOrganizer = {0}; " in the driver mean that you apply the
driver to the X component, 1 will refer to Y and 2 to Z. So right now
you are driving 3 times the X rotation but you are not driving the Y
and Z one, that’s why the message tells you that you are missing 2
constraints.
Then, as Y and Z rotations are zero, you don’t need a text file to
drive it, you can easily use an AnyKinEqSimpleDriver for those two
and keep the driver for X rotation like this:
// Kugelgelenk
AnyKinRotational P1Lin = {
AnyRefFrame &LabOrigin = Main.rat_model.Seg.spine_pelvis;
AnyRefFrame &P1 = Main.rat_model.Seg.femur;
Type=RotAxesAngles;
};
[…]
//Hueftgelenksdriver
AnyKinEqInterPolDriver P1DriverR1 = {
AnySphericalJoint &Jnt = Main.rat_model.Jnts.hip;
Type = PiecewiseLinear;
FileName = “drivers\hip_rot_x.txt”;
AnyKinMeasure &Lin = Main.rat_model.Drivers.P1Lin;
MeasureOrganizer = {0};
Reaction.Type = {Off};
AnyKinEqSimpleDriver P1DriverR23 = {
MeasureOrganizer = {1, 2};
AnyKinMeasureOrg &Lin = Main.rat_model.Drivers.P1Lin;
DriverPos = {0, 0};
DriverVel = {0, 0};
Reaction.Type = {Off, Off};
};
Best regards,
Sylvain, AnyBody Support
— In anyscript@yahoogroups.com, “dieterkassgim” <dieterkassgim@…>
wrote:
>
> I forgot to post what I have scripted:
>
> AnySphericalJoint hip = {
> Orientation.Type=RotAxesAngles;
> Orientation.Axis1 = y;
> Orientation.Axis2 = x;
> Orientation.Axis3 = z;
> AnyRefNode &spine = Main.rat_model.Seg.spine_pelvis.hip;
> AnyRefNode &femur = Main.rat_model.Seg.femur.hip;
> }; // hip joint
>
> […]
>
> // Kugelgelenk
> AnyKinRotational P1Lin = {
> AnyRefFrame &LabOrigin = Main.rat_model.Seg.spine_pelvis;
> AnyRefFrame &P1 = Main.rat_model.Seg.femur;
> Type=RotAxesAngles;
> };
>
> […]
>
> //Hueftgelenksdriver
> AnyKinEqInterPolDriver P1DriverR1 = {
> AnySphericalJoint &Jnt = Main.rat_model.Jnts.hip;
> Type = PiecewiseLinear;
> FileName = “drivers\hip_rot_x.txt”;
> AnyKinMeasure &Lin = Main.rat_model.Drivers.P1Lin;
> MeasureOrganizer = {0};
> Reaction.Type = {Off};
> };
> AnyKinEqInterPolDriver P1DriverR2 = {
> AnySphericalJoint &Jnt = Main.rat_model.Jnts.hip;
> Type = PiecewiseLinear;
> FileName = “drivers\hip_rot_y.txt”;
> AnyKinMeasure &Lin = Main.rat_model.Drivers.P1Lin;
> MeasureOrganizer = {0};
> Reaction.Type = {Off};
> };
> AnyKinEqInterPolDriver P1DriverR3 = {
> AnySphericalJoint &Jnt = Main.rat_model.Jnts.hip;
> Type = PiecewiseLinear;
> FileName = “drivers\hip_rot_z.txt”;
> AnyKinMeasure &Lin = Main.rat_model.Drivers.P1Lin;
> MeasureOrganizer = {0};
> Reaction.Type = {Off};
> };
>
> with the “hip_rot_x” and “hip_rot_z” data being 0 for each timestep.
> But when I start the “SetInitialCondition” operation I get the
> following error message:
> Model is kinematically indeterminate : Position analysis
failed :
> 54 independent constraints and 56 unknowns
>
> Regards,
>
> Dieter
>
>
> > — In anyscript@yahoogroups.com, “AnyBody Support” <support@>
> > wrote:
> > >
> > > Hi Dieter,
> > >
> > > The first thing i am thinking is that if you are working in a
2D
> > > model you should keep the RevoluteJoint, if you don’t use the 2
> > other
> > > rotations then it is not useful to add the SphericalJoint.
> > >
> > > There are several way to drive a SphericalJoint, it depend of
the
> > > data you have about the joint’s movement (angular velocity,
> linear
> > > displacement of a particular point …). For example if you have
a
> > text
> > > file for X and Z rotation like you have for Y rotation then you
> can
> > > make two more InterPolDriver similar to the one you have, each
> one
> > > driving one of the new rotation.
> > >
> > > It would be helpful if you give me more detail: are you still
> > working
> > > in 2D? What kind of data do you have about the motion?
> > >
> > > Best regards,
> > > Sylvain, AnyBody Support.
> > >
> > >
> > >
> > >
> > >
> > > — In anyscript@yahoogroups.com,
> “dieterkassgim” <dieterkassgim@>
> > > wrote:
> > > >
> > > > Hello,
> > > >
> > > > in a simple 2D-model I use an AnyRevoluteJoint as the hip
joint:
> > > >
> > > > AnyRevoluteJoint hip = {
> > > > Axis = y;
> > > > AnyRefNode &spine =
Main.rat_model.Seg.spine_pelvis.hip;
> > > > AnyRefNode &femur = Main.rat_model.Seg.femur.hip;
> > > > };
> > > >
> > > > …
> > > >
> > > > and drive it like this
> > > >
> > > > // Scharniergelenk
> > > > AnyKinLinear Hip = {
> > > > //Ref = -1;
> > > > AnyRefFrame &ref1 = Main.rat_model.Seg.spine_pelvis;
> > > > AnyRefFrame &ref2 = Main.rat_model.Seg.femur;
> > > > };
> > > >
> > > > …
> > > >
> > > > //Hueftgelenksdriver
> > > > AnyKinEqInterPolDriver HipDriver = {
> > > > AnyRevoluteJoint &Jnt = Main.rat_model.Jnts.hip;
> > > > Type = PiecewiseLinear;
> > > > FileName = “drivers\hip_rot.txt”;
> > > > AnyKinMeasure &Lin = Main.rat_model.Hip;
> > > > MeasureOrganizer = {0};
> > > > Reaction.Type = {Off};
> > > > };
> > > >
> > > > Now I want to replace the RevoluteJoint by a SphericalJoint.
> Like
> > > > this:
> > > >
> > > > AnySphericalJoint hip = {
> > > > AnyRefNode &spine =
Main.rat_model.Seg.spine_pelvis.hip;
> > > > AnyRefNode &femur = Main.rat_model.Seg.femur.hip;
> > > > };
> > > >
> > > > I know that the order of rotation is important for the
> kinematics
> > > but
> > > > I haven’t found a driven spherical joint example and I cannot
> get
> > > it
> > > > working. Can AnyBody help?
> > > >
> > > > Regards,
> > > >
> > > > Dieter
> > > >
> > >
> >
>