Tracking points on a rigid body when rot, and trans for c.g. are known
Tracking points on a rigid body when rot, and trans for c.g. are known
(OP)
Hello all,
I've created a 3D simulation of a system I'm working on. I can easily output the main bodies rotation (all three axis) and translation (x,y,z). Getting my program to keep track of points on the body is a pain. I'm thinking that I can just write a matlab program that uses the points (relative to the C.G) and the translation, rotation files to come up with the displacements of the points on the body.
I was thinking that:
DeltaX = deltaCGx-(z*roty-Y*rotz)
DeltaY = deltaCGy-(x*rotz-z*rotx)
DeltaZ = deltaCGz-(y*rotx-x*roty)
where Delta X is my point of interest x displacement
deltaCGx is the CG x displacement (read from file)
x, y, z = coordinates of points of interest
rotx = rotation about x axis.
Any one have any thoughts? Any other ideas on how to do this? Thanks
I've created a 3D simulation of a system I'm working on. I can easily output the main bodies rotation (all three axis) and translation (x,y,z). Getting my program to keep track of points on the body is a pain. I'm thinking that I can just write a matlab program that uses the points (relative to the C.G) and the translation, rotation files to come up with the displacements of the points on the body.
I was thinking that:
DeltaX = deltaCGx-(z*roty-Y*rotz)
DeltaY = deltaCGy-(x*rotz-z*rotx)
DeltaZ = deltaCGz-(y*rotx-x*roty)
where Delta X is my point of interest x displacement
deltaCGx is the CG x displacement (read from file)
x, y, z = coordinates of points of interest
rotx = rotation about x axis.
Any one have any thoughts? Any other ideas on how to do this? Thanks





RE: Tracking points on a rigid body when rot, and trans for c.g. are known
1) not sure about your signs (+ve roty*+veZ = +vedeltax, no?); and
2) shouldn't there be a cosine/sine term in there, ie deltaX = Z*cos(rotY)
RE: Tracking points on a rigid body when rot, and trans for c.g. are known
I'll take a look at my signs again, thought that I had them right, right hand rule and all.
As for second part I'm basically thinking that say I rotate about the y axis .1 rads, now find the translation this causes in the x direction. The X displacement (opposite leg) can be found by taking the z coord (adjacent leg, z distance from c.g.) and multiplying it by the tan of the angle of the rotation (roty) Since I'm looking at very small rotations I didn't include the tan function (tan .06 = .0600721).
what do you think? If there's a simpler solution that takes advantage of matlabs capabilities I'd really like to hear about it
RE: Tracking points on a rigid body when rot, and trans for c.g. are known
First, you need to determine whether you're using a right-handed coordinate system, or not. Either way, you need to be absolutely consistent. You need to determine the rotation sequence, be it yaw, pitch, roll, or whatever. Either way, you need to be absolutely consistent.
You need to at least do the full rotation matrices, and pick either the correct sequence, and stick with it, or, you need to use quaternions.
You should avoid using the approximations, because despite what you say or think now, you'll do something in the future that's going cause all the approximations to blow up the matrices, and you'll have to fix it after the fact.
TTFN
FAQ731-376: Eng-Tips.com Forum Policies
RE: Tracking points on a rigid body when rot, and trans for c.g. are known
RE: Tracking points on a rigid body when rot, and trans for c.g. are known
RE: Tracking points on a rigid body when rot, and trans for c.g. are known
Cheers
Greg Locock
SIG:Please see FAQ731-376: Eng-Tips.com Forum Policies for tips on how to make the best use of Eng-Tips.