Cruithne

astrosammy

Dash!
Addon Developer
Donator
Joined
Apr 27, 2008
Messages
2,124
Reaction score
0
Points
36
Location
ICAO ID: EDFB
3753 Cruithne

Horseshoe_orbit_of_Cruithne_from_the_perspective_of_Earth.gif

I've made a config file for Orbiter for it.
Copy it to "Orbiter/Config".

In "Orbiter/Config/Sol.cfg" add a line "Planet9 = Cruithne". If you have more than 8 Planets in your Orbiter set the number higher.

If you want to see it:​
  • make a copy of "Orbiter/Textures/Deimos.dds" and name that "Cruithne.dds"​
  • make a copy of "Orbiter/Textures/DeimosM.bmp" and name that "CruithneM.bmp"​
  • make a copy of "Orbiter/Meshes/Deimos.msh" and name that "Cruithne.msh"​

Try it out and say me if it works like it should.
 

Attachments

Brilliant. I've always wanted to pay a visit to Cruithne after first reading about it in a Stephan Baxter novel
 
How is the motion accuracy?
 
If nobody is doing it already, I'd like to have a look at the dll making. I'm an experienced programmer, I have a decent math and physics background, and I already made a vessel dll once. However, I have no experience with Orbiter's planetary body API. Are there any problems I'm likely to encounter, or is this something I can easily do next weekend?

From a math point of view, I guess this thing seems to be a kind of orbiting around one of the Lagrange points, although its orbit is a bit unstable in the long term. There is no exact analytical solution for a three-body system, but does Orbiter have functions for accurate simulation of such a system? Would it be possible to simulate it as a sun-orbiting body, with significant disturbances from earth (and maybe Jupiter), or would complete numerical integration of all gravity forces be the way to go? Sure I can re-implement something like RK4 integration, but I hope Orbiter's API can help me a bit... And I guess a numerical approach is so generic, that it should already be there in Orbiter (it must be used for vessels), so I hope it can simply be used out-of-the-box.

Anyway, I guess I have Wikipedia's predictions to check whether the thing works correctly. OTOH, would you rather trust math or Wikipedia? :)
 
You might as well try for numerical integration of all the gravitational forces. Seems to me that would be the most stable and robust method for determining motion and whatnot. I have to imagine this is how Orbiter handles vessel motion, at least from what I gather...
 
It looks like its orbit would be influenced by the other planets as it follows the Earth.
 
I did some more research on Wikipedia and other sources:
http://en.wikipedia.org/wiki/Lagrangian_point
http://en.wikipedia.org/wiki/3753_Cruithne
http://en.wikipedia.org/wiki/Horseshoe_orbit
http://www.astro.uwo.ca/~wiegert/3753/3753.html

This seems to be a really interesting and complicated orbit. Its long-term (think centuries) behavior is like a horseshoe orbit, but it is modulated at a 1-year period because of its eccentricity and large angle with earth's orbit, which gives the kidney-bean shape (which actually has a 3D shape stretching outside earth's orbit).

Edit:
You really should check out this video.
 
(I'm replying to myself, but I really do have new information here: )

If you were expecting a cruithne.dll from me, I have to disappoint you. Last weekend I didn't find an easy way to increase the accuracy with a .dll.

It turns out that Orbiter does have an option for numerical simulation instead of a simple 2-body model: this should be possible by setting the elliptic orbit setting in the config file to FALSE. However, when I tried that, the orbit was completely incorrect (Cruithne way beyond solar escape velocity leaving the solar system).

The elliptic orbit approximation isn't completely inaccurate. It's accurate enough to show the kidney-bean-shaped orbit, when visualized in a rotating frame of reference. But it isn't nearly as exotic as the complete behavior of Cruithne.

The horseshoe-movement has a period of around 390 years, which means less than 1 degree per year. So, for a short time range around 2008, the elliptical orbit should qualitatively match its true orbit (though not accurate enough for actual mission planning, which Orbiter isn't meant to do anyway).

For simulating the horseshoe motion, I thought of pre-calculating the orbital state vectors of Cruithne at intervals of one year, during an entire 390-year cycle. Then, for each point inbetween, the .dll can do an analytical 2-body simulation twice (once for the previous sample and once for the next sample), and interpolate.

The problems I encountered are the following:

  • Pre-calculating the 390 samples at an accuracy that makes sense is difficult. It suggests doing a numerical simulation over this time period (with a lot of points per year), using accurate long-term positions of Earth and the other planets. Should I make a standalone program, or do it in Orbiter? Orbiter has accurate VSOP87 planetary positions, but even with max time acceleration 390 years is A LOT OF time, and I don't know how to log the position.
  • I can't find any utilities in the Orbiter API for doing analytical 2-body orbiter state vector calculation (say, we have the state vector at t1, and we want to have it at t2, given the 2-body approximation). I know it's doable, but it's a lot of work, and I don't know why every add-on that needs it should re-implement it.
 
Last edited:
Back
Top