# Pivoting a 3D line with gyroscope data

• Oct 21st 2013, 07:14 AM
Palliser
Pivoting a 3D line with gyroscope data
Hello. This is my first post here.
For one of my applications, I need help figuring out how to manipulate few equations that I have to graph and pivot a single 3D line (using an electronic sketchbook called Processing). Here the syntax of the line:

Quote:

line(x1, y1, z1, x2, y2, z2)

The above expression is a Processing function that allows me to graph a line. Where:

x1, y1 and z1 are float coordinates of the first point.
x2, y2 and z2 are float coordinates of the second point.

I am getting the xyz coordinate values from a real gyroscope that I can rotate freely.

For the purpouses of my application, the first point of the line is fixed to the origin.
For simplicity, let's make x2=x, y2=y, z2=z, thus, my line function is now:

Quote:

line(0, 0, 0, x, y, z)

What I really need is to graph my line in a manner that can pivot in all possible position.
Let's start mentioning the formula of the distance 'd' that I am using:

Quote:

d = sqrt(x*x + y*y + z*z)

I want to clarify something very important here regarding how I am reading the x, y and z coordinates from the gyroscope.
Each coordinate contains circular values between 0 to 360 degrees. In other words, if I pivot the gyro 360 laying on my table,
the z coordinate will change from 0 to 360. Similarly for the other two axis.

So far I can graph correctly the line but pivoting (or rotating) one axis at a time. I.e.

For the axis z:

For the axis y:

For the axis x:

So far so good. My problems start when I try to put them together:

I have tried the following:

Quote:

x = (x2+x1);
y = (y1+y2);
z = (z1+z2);

When I graph the above equations, the line looks like pivots correctly but a some positions the lenght starts to change or even becomes zero.

Again, what I just need is to find a way to generate x, y and z that permits the line pivots freely (with the distance fixed of course).
Thank you very much for any comment. Regards!
• Oct 22nd 2013, 01:16 AM
chiro
Re: Pivoting a 3D line with gyroscope data
Hey Palliser.

What you are describing is known as gimbal lock: take a look at this Wiki site:

Gimbal lock - Wikipedia, the free encyclopedia

To get around this you should do a rotation around an axis or use quaternions and quaternion interpolation (if you are dealing with multiple axes).