I'm using a Reach RS+ device connected via Wifi to a Raspberry Pi3.

The Pi reads from Reach the

*GPS*position and

*IMU*data (in the form of

*roll*,

*pitch*and

*yaw*- the IMU data processing is done on the Reach device using RTIMULib2).

The Reach device is mounted on a

*rod*as you can see on the manufacturer's website in the "Point Collection" section.

This all works OK but I'm having a difficult time calculating the final GPS position of the other end of the rod that the Reach device is mounted on.

To be able to make calculations in meters I'm converting longitude (

*X*) and latitude (

*Y*) to UTM while keeping altitude (

*Z*) unaltered.

When the rod is upright and facing north (in terms of orientation:

*roll=0*,

*pitch=0*,

*yaw=0*), X and Y stay the same while

Code: Select all

`Z1 = Z - ROD_LENGTH `

Basically I need the following formulas:

Code: Select all

```
X1 = X + ROD_LENGTH * func_X(roll, pitch, yaw)
Y1 = Y + ROD_LENGTH * func_Y(roll, pitch, yaw)
Z1 = Z + ROD_LENGTH * func_Z(roll, pitch, yaw)
```

I've also looked at rotation matrices, "point on a sphere", triangle equations but I can't find the right solution.

Can someone

*point*me in the right direction?