22
$\begingroup$

The question SpaceX's 4,425 satellite constellation - what's the method to the madness? received an excellent answer explaining the rationality behind the madness plan.

Elon Musk's tweet (spotted here) shows the figure below, indicating a semi-major axis of about (2.61+0.98)/2 = 1.795 AU. Mars' semi-major axis is about 1.524 AU. I don't see an obvious resonance.

Does the orbit still have any relationship to Mars? Or could this be a demonstration of maximum range? Why this orbit in particular?

Open new view for full size:

WARNING:

This plot in Musk's tweet is now known to be incorrect! See this answer for further clarification.


enter image description here

$\endgroup$
  • 3
    $\begingroup$ I think the reasoning was, this being an already extremely successful launch test, "let's just see how far we can go." There's no plan for circularization/orbit insertion, for example. $\endgroup$ – OnoSendai Feb 7 '18 at 4:22
  • 1
    $\begingroup$ @OnoSendai that could be, let's wait for the $\Delta v$ answers. I'm wondering if it's going to swing by Mars and say "hi" at a later date. $\endgroup$ – uhoh Feb 7 '18 at 4:25
  • 3
    $\begingroup$ @OnoSendai No plan and no tech to do that... $\endgroup$ – Antzi Feb 7 '18 at 6:13
  • 1
    $\begingroup$ That's an odd figure, showing the orbits of Mercury, Venus, Mars, and Ceres, but not the orbit of Earth. $\endgroup$ – gerrit Feb 7 '18 at 14:58
  • 1
    $\begingroup$ The reason for this orbit is because they burned fuel until they had none left. $\endgroup$ – Dragongeek Feb 7 '18 at 21:15
21
$\begingroup$

I think it's safe to say there's no particular plan here. Musk was never very specific as to what they would do with the roadster if it was successful (which Musk pegged at 50% at best). Reality is they needed to do the following today

  1. Launch the Falcon Heavy
  2. Separate the two boosters and return them
  3. Separate the core booster and return it (sadly the engine failed to ignite for deceleration and the core crashed into the ocean)
  4. Have the Roaster payload hang out in orbit for 6 hours for future geostationary work

    “The six-hour coast is needed for a lot of the big Air Force intel missions for direct injections to GEO,” Musk said. This six-hour period will be about twice as long as the longest coasts the Falcon 9 rocket has made.

  5. Burn the final time to enter heliocentric orbit (emphasis mine)

    After the launch and six-hour cruise, the Falcon Heavy’s upper stage will fire a third time to send the Tesla into a cycling orbit between Earth and Mars. This should take the Tesla out as far as the Martian orbit around the Sun, or even a bit further. Musk said the vehicle should get as far as 380 to 450 million km from Earth, depending on how the third burn goes.

So I don't think there was any definitive flight plan here. What you're seeing is the final orbit its settled into.

$\endgroup$
  • 1
    $\begingroup$ Well, phasing by the choice of the precise time of the third burn (plus a few other things) will determine the position where the orbit crosses that of Mars. I don't think it is yet "safe" to be so sure there was "no plan". Let's wait for some more orbital mechanical punditry. $\endgroup$ – uhoh Feb 7 '18 at 4:45
  • 2
    $\begingroup$ I believe it is very safe. Especially considering they did not know the final momentum with any good precision beforehand. $\endgroup$ – Vladimir F Feb 7 '18 at 12:46
  • 1
    $\begingroup$ Even Elon suggested they were just going to see how much boost they would get. No plan. Just a fun outcome. $\endgroup$ – Rory Alsop Feb 7 '18 at 14:25
  • $\begingroup$ Elon has suggested many things, including that selling flamethrowers was a good idea. He does not necessary transparently disclose all of his thinking, all of the time, up front. Let's wait and see. $\endgroup$ – uhoh Feb 7 '18 at 15:37
  • 1
    $\begingroup$ Have just asked: Could the Starman/Roadster spacecraft have targeted a well defined heliocentric orbit if it had wanted to? One could also ask if Musk has ever shown any propensity to showcase the technical capability of his companies' technologies. Ever? Once in a while? Constantly? $\endgroup$ – uhoh Feb 7 '18 at 15:50
13
$\begingroup$

Interestingly, it looks like Musk's tweeted orbit may in fact be wrong, according to JPL's Horizons database as well as this comment by someone who knows about these things.

In late 2020, the currently predicted orbit will pass only about 7 million km from Mars. I am not sure if that's close enough for the gravitational perturbation suggested in Max Fagin's video after 02:00, which mentions a possible use of a perturbation from a near approach to Mars using a slightly overshot trajectory, to prevent future intercepts with Earth's orbit, which may present a navigation hazard in cis-lunar space, thereby possibly making it easier for people to call it space junk.

However, it certainly looks like SpaceX did indeed have a plan! despite the other answer to the contrary.

I've plotted the projections of the orbits into the ecliptic below, please excuse any pareidolia. The one on the left only goes out to Mars and Roadster, the one on the right includes Jupiter and four asteroids as well. Below that are distances with respect to the Sun (small wiggle, yellow), Earth (medium wiggle, blue) and Mars (big wiggle, red). Also included at the bottom is the Python script to read the Horizons output.

Note 1: The projected orbit has a period of 558 days.

Note 2: Currently Horizons is using Solution #3 and they are likely to continue to be updated as more optical measurements are made. However, the data plotted is from the original solution (see the blurb below).

TRAJECTORY:
  This trajectory is based on JPL solution #3, a fit to 57 ground-based 
  optical astrometric measurements spanning 2018 Feb 8.2 to 8.8.

enter image description here

enter image description here

The blurb in the Horizons output says:

Revised: Feb 07, 2018          Tesla Roadster (spacecraft)             -143205

Tesla Roadster (Starman, 2018-017A)

Dummy payload from first launch of SpaceX Falcon Heavy launch vehicle 
consisting of a standard Tesla Roadster automobile and a spacesuit-wearing 
mannequin nicknamed Starman. 

Also includes a Hot Wheels toy model Roadster on the car's dash with a 
mini-Starman inside. A data storage device placed inside the car contains 
a copy of Isaac Asimov's "Foundation" novels. A plaque on the attachment 
fitting between the Falcon Heavy upper stage and the Tesla is etched with 
the names of more than 6,000 SpaceX employees.

After orbiting the Earth for 6 hours, a third-stage burn-to-depletion
was completed at approximately 02:30 UTC Feb 7, placing the dummy payload 
in a heliocentric orbit having a perihelion of 0.99 au and aphelion 
~1.7 au.

Payload mass: ~1250 Kg

This trajectory is a ballistic propagation derived from a post-injection 
state provided by SpaceX on 2018-Feb-7, and is based on internal GPS data. 

Prediction errors could increase significantly over time due to unmodeled
solar presure, thermal radiation, or outgassing accelerations that are not
characterized.

Launched: 2018-Feb-06 20:45 UTC by Falcon Heavy (FH) from Kennedy Space 
       Center, USA (launchpad 39A)

Here is the Python script that reads the Horizons output saved to disk, and then made the plot.

class Body(object):
    def __init__(self, name):
        self.name = name

class Asteroid(object):
    def __init__(self, name):
        self.name = name

class Spacecraft(object):
    def __init__(self, name):
        self.name = name

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

halfpi, pi, twopi = [f*np.pi for f in [0.5, 1.0, 2.0]]
degs, rads  = 180./pi, pi/180.

# DO MAJOR BODIES:

fnames = ('Roadster Sun horizons_results.txt',
          'Roadster Mercury horizons_results.txt',
          'Roadster Venus horizons_results.txt',
          'Roadster Earth Geocenter horizons_results.txt',
          'Roadster Moon horizons_results.txt',
          'Roadster Mars horizons_results.txt',
          'Roadster Jupiter horizons_results.txt')

names = ('Sun', 'Mercury', 'Venus', 'Earth', 'Moon',
         'Mars', 'Jupiter')

JDs, posns, vels, linez = [], [], [], []
for fname in fnames:
    with open(fname, 'r') as infile:

        lines = infile.read().splitlines()

    iSOE = [i for i, line in enumerate(lines) if "$$SOE" in line][0]
    iEOE = [i for i, line in enumerate(lines) if "$$EOE" in line][0]

    print iSOE, iEOE, lines[iSOE], lines[iEOE]

    lines = [line.split(',') for line in lines[iSOE+1:iEOE]]
    JD  = np.array([float(line[0]) for line in lines])
    pos = np.array([[float(item) for item in line[2:5]] for line in lines])
    vel = np.array([[float(item) for item in line[5:8]] for line in lines])

    pos, vel = [thing.T for thing in pos, vel]

    JDs.append(JD)
    posns.append(pos)
    vels.append(vel)
    linez.append(lines)

bodies = []
for pos, vel, name in zip(posns, vels, names):
    body = Body(name)
    body.pos = pos
    body.vel = vel
    bodies.append(body)

Sun, Mercury, Venus, Earth, Moon, Mars, Jupiter = bodies

# DO Asteroids :

fnames = ('Roadster Ceres horizons_results.txt',
          'Roadster Pallas horizons_results.txt',
          'Roadster Vesta horizons_results.txt',
          'Roadster Juno horizons_results.txt')

names  = ('Ceres', 'Pallas', 'Vesta', 'Juno')

JDs, posns, vels, linez = [], [], [], []
for fname in fnames:
    with open(fname, 'r') as infile:

        lines = infile.read().splitlines()

    iSOE = [i for i, line in enumerate(lines) if "$$SOE" in line][0]
    iEOE = [i for i, line in enumerate(lines) if "$$EOE" in line][0]

    print iSOE, iEOE, lines[iSOE], lines[iEOE]

    lines = [line.split(',') for line in lines[iSOE+1:iEOE]]
    JD  = np.array([float(line[0]) for line in lines])
    pos = np.array([[float(item) for item in line[2:5]] for line in lines])
    vel = np.array([[float(item) for item in line[5:8]] for line in lines])

    pos, vel = [thing.T for thing in pos, vel]

    JDs.append(JD)
    posns.append(pos)
    vels.append(vel)
    linez.append(lines)

asteroids = []
for pos, vel, name in zip(posns, vels, names):
    asteroid = Asteroid(name)
    asteroid.pos = pos
    asteroid.vel = vel
    asteroids.append(asteroid)

fname = ('Roadster Spacecraft horizons_results.txt')
with open(fname, 'r') as infile:
    lines = infile.read().splitlines()
iSOE = [i for i, line in enumerate(lines) if "$$SOE" in line][0]
iEOE = [i for i, line in enumerate(lines) if "$$EOE" in line][0]
print iSOE, iEOE, lines[iSOE], lines[iEOE]
lines = [line.split(',') for line in lines[iSOE+1:iEOE]]

pos = np.array([[float(item) for item in line[2:5]] for line in lines])
vel = np.array([[float(item) for item in line[5:8]] for line in lines])
pos, vel = [thing.T for thing in pos, vel]

Roadster = Spacecraft('Roadster')
Roadster.pos = pos
Roadster.vel = vel

Roadster.rsun   = np.sqrt(((Sun.pos   - Roadster.pos)**2).sum(axis=0))
Roadster.rearth = np.sqrt(((Earth.pos - Roadster.pos)**2).sum(axis=0))
Roadster.rmars  = np.sqrt(((Mars.pos  - Roadster.pos)**2).sum(axis=0))

# Estimate Period:
x, y, z = Roadster.pos
theta   = np.arctan2(y, x)
dtheta  = theta[1:] - theta[:-1]
wraps   = np.where(dtheta<-1)[0]
print "approximate period in days", wraps[1:] - wraps[:-1]


if True:
    fig = plt.figure()
    ax1  = fig.add_subplot(2, 2, 1)
    for body in bodies:
        if body.name != 'Jupiter':
            x, y, z = body.pos
            ax1.plot(x, y)
            ax1.plot(x[:1], y[:1], 'ok')
    x, y, z = Roadster.pos
    ax1.plot(x, y, '-k')
    ax1.plot(x[:1], y[:1], 'ok')
    ax1.set_xlim(-3E+08, 3E+08)
    ax1.set_ylim(-3E+08, 3E+08)

    ax2  = fig.add_subplot(2, 2, 2)
    for body in bodies:
        if body.name not in ("Mercury", "Venus"):
            x, y, z = body.pos
            ax2.plot(x, y)
            ax2.plot(x[:1], y[:1], 'ok')
    for asteroid in asteroids:
        x, y, z = asteroid.pos
        ax2.plot(x, y, '-k', linewidth=0.5)
        ax2.plot(x[:1], y[:1], 'ok')
    x, y, z = Roadster.pos
    ax2.plot(x, y, '-k')
    ax2.plot(x[:1], y[:1], 'ok')
    ax2.set_xlim(-8E+08, 8E+08)
    ax2.set_ylim(-8E+08, 8E+08)

    ax3  = fig.add_subplot(2, 1, 2)
    years = 2018 + 37/365.25 + (JD-JD[0])/365.25
    ax3.plot(years, Roadster.rsun,   '-y', linewidth=1.0)
    ax3.plot(years, Roadster.rearth, '-b', linewidth=1.5)
    ax3.plot(years, Roadster.rmars,  '-r', linewidth=2.0)
    plt.show()
$\endgroup$
  • 2
    $\begingroup$ Thank you for sharing the Python code. If anyone has JavaScript to share for speed & position calculations - or this graphs (HTML5 canvas?) - please let me know. I encourage a MIT (StackExchange sharing) or even Public Domain license so all can mod/use as desired. Thank you. $\endgroup$ – RoundSparrow hilltx Feb 8 '18 at 19:04
  • $\begingroup$ @RoundSparrowhilltx thanks for your suggestions. This script just reads the text files and plots them for convenience. The actual calculations are done by NASA. Search this site for more information on Spice for excample. $\endgroup$ – uhoh Feb 8 '18 at 20:53
  • 1
    $\begingroup$ Seven million kilometers isn't close enough for a meaningful gravity slingshot. A good slingshot comes as close to the surface as you think you can get away with; the effectiveness falls off rapidly with distance (inverse square, I think). For example, 2007 VN84 considered a potentially-impacting 20-meter asteroid before it was recognized as the Rosetta spacecraft doing a gravity slingshot around Earth. $\endgroup$ – Mark Feb 10 '18 at 0:22
  • $\begingroup$ @Mark That's certainly right for a "slingshot". But a "gravitational perturbation" would be something much smaller than a slingshot, just enough to modify the orbit slightly to decrease the chances of a dangerously close approach to Earth in the future (see this question). But like I said above, "I am not sure if that's close enough..." $\endgroup$ – uhoh Feb 10 '18 at 0:33
4
$\begingroup$

Scott Manly has explained this here at 2:15 - 3:18 :

Apparently SpaceX intended to put the roadster into an orbit around the sun that would frequently bring it near to Mars, a preliminary step toward a direct approach. As you can see in the diagram above, the red car will pass by the red planet fairly closely, at least in terms of previous relative distances between cars and astronomical bodies.

But according to Musk, SpaceX hasn’t made an official statement yet , the vehicle “exceeded Mars orbit”; apparently there was more oomph in the second stage of the Falcon Heavy than expected, and now the Roadster will also get a fly-by of the asteroid belt. Astronomers and amateur space object trackers are trying to get more details from the company about the precise position of the unusual spacecraft. According to Wikipedia under the title : Falcon Heavy Demonstration Mission

During the transfer burn to solar orbit, the second stage overshot the orbit of Mars. It is predicted that the Roadster will stay in an orbit with a perihelion at Earth orbit and an aphelion near the orbit of the dwarf planet Ceres in the Asteroid Belt.

And then there is Max Fagins trajectory Video on youtube which explains how SpaceX probably thought this through . Mars ETA = October 2018

Just Google : Falcon Heavy and the Tesla Roadster Orbits, A Prediction - YouTube

$\endgroup$
0
$\begingroup$

In order to get to Mars, it would have been necessary to calculate everything, down to the smallest detail, to a very high degree of precision. That takes time and must be done in advance. Therefore, the whole flight plan only works if takeoff happens in a precisely defined moment. Hence the countdown.

In this case it was only a test launch. They happened to have a nice afternoon and launch permit, so they did it...

$\endgroup$
  • 3
    $\begingroup$ Why do you think it wasn't done in advance? These days this kind of calculation takes seconds on a laptop, once you have all the data, so you can actually calculate thousands or millions of solutions, and choose the one you like best at the last second. See for example this answer and comment $\endgroup$ – uhoh Feb 7 '18 at 16:17
  • $\begingroup$ The kind of stuff done in one of those space sims just doesn´t cut the mustard. There are many mayor and lesser factors they don´t account for. Some of them cannot be calculated in advance and must be corrected later. Now if you must have a conspiracy, there´s no better camo for a covert mission than a cherry red roadster! $\endgroup$ – Max Hofbauer Feb 7 '18 at 16:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.