True Origin Orientation Conversion

Hi,

I am trying to use “True Origin” with Cesium Geo Reference actor but am having trouble with orientation.

I have a number of actors being fed position and orientation through an external interface. This interface uses ECEF coordinate system.

When using a lat/lon/alt origin the orientation is correct, when translated to NORTH EAST DOWN reference.

However, when I use “True Origin” this orientation is not correct, and the orientation received before translating to NED is not correct either. I have tried ENU.

I am hoping you can point me in the right direction for using ECEF with “True Origin” in this way.

Thanks,
Garratt

Hi Garratt,

Do you have a minimal example we could use to reproduce these incorrect orientations? It’s hard to tell what is the problem when an external interface is involved. Is there some reason you aren’t able to use the Cesium Globe Anchor component?

Screenshots of the expected vs. actual behavior would also help.

Hi Janine,

Thanks for the response

I have attached two screenshots, one is the ECEF orientation values in the external system. The other is the rotation set in Unreal and what the actor looks like.

The Unreal rotation is just the ECEF radian values converted to Degrees.

Is that the right way to do it? I am also not 100% certain that the external system is giving the correct values, but it works when using a projection

Thanks,
Garratt


Screenshot 2023-05-22 165531

When you’re using True Origin with a georeferenced tileset, the Unreal origin is located at the center of the Earth. The Unreal axes are not the same as ECEF because ECEF is right-handed and Unreal is left-handed. The Unreal axes are as follows:

  1. +X points toward the intersection of the equator and +90 degrees longitude.
  2. +Y points toward the intersection of the equator and prime meridian
  3. +Z points up through the North pole

Also, the Unreal coordinate system uses centimeters instead of meters.

Hopefully that helps you to construct the proper orientation.

Kevin