Since it was first announced back in June of last year, Extremis has been hard at work determining how best to fly past every planet in the Kerbol system with three missions. When it became apparent that our initial 2018 launch date was looking very likely to slip into 2019 the decision was made to just toss the original routes and start anew, but with a much, much more detailed exploration of what was possible within a given time frame. Program directors decided to break the process of planning the three missions down into three phases. initially Phase One was expected to be completed sometime around October but the calculations turned out to be more complex and required additional time. The first milestone was finally achieved late last month when Phase One wrapped. So what was it all about?

**Phase One – Trajectory Calculation**

There are 9 other planets in the Kerbol system, and if we want to cover them all in 3 missions then we have to visit 3-4 planets per mission, at least. Let’s play it safe and say each mission should try to pass 4 planets so we have a little bit of overlap in case things go wrong out in deep space (a safe assumption). Well, the combination of routes to pass by 4 planets is 3,024 possible permutations, and the astrodynamics team wanted to run trajectory plots for 3 consecutive years, which would mean a total of 9,072 calculations, each of which could run for an average of about 25 minutes, which comes out to a little over 5 months – unfortunately the team can’t hog all the KSA computational resources all day every day, they have to share with other projects (the Genesis program also requires a ton of processing power to simulate their aircraft designs and C7 uses our mainframe like everyone else). So realistically we were looking at closer to a year to complete all the initial calculations.

To help whittle things down, the team broke the Kerbol system down into three regions: Inner (Moho, Eve), Outer (Duna, Dres, Jool) and Far Outer (Jool, Sarnus, Urlum, Neidon, Plock). They then decided on three routes that would be taken: Inner->Outer->Far Outer, Outer->Inner->Far Outer, Outer->Far Outer. Only one planet would be visited in the Inner and Outer regions, but up to two would be visited in the Far Outer. This lowered the number of trajectory combinations down to just 106 even after some possibilities like going straight from Kerbin to Sarnus and beyond were thrown in for good measure, for a total of 318 routes that needed to be calculated. Much better! You can see the full list here.

Of course now that they had way less work on their hands, the astrodynamics team got to thinking, as they do, about exactly *how* they would plot the trajectories for each route. Originally they were planning on a set of very wide constraints but with only 106 combinations it gave more time to play around with the constraints, which in the end meant that now they were planning on calculating each of the 106 trajectories three different ways for three separate years, for a new total of 954 – which is still way better than 9,072 so okay.

**Determining the Constraints**

The purpose of the constraints for the trajectory calculations was to keep them from having too much to work with and give them a better chance of finding an optimal solution. This was done in the form of how much time was allotted to travel from planet to planet, which was determined based on the least amount of Δv that would be required to get there. We are less concerned with time than we are with being able to make it to our destinations with a rather limited supply of fuel (it didn’t help at all that Extremis planners still have no idea how limited due to the Ascension program still being in its infancy).

To this end we used the KSP Trajectory Optimization Tool and its porkchop plotting feature to determine our constraints. By setting the options to optimize our departure burn only, we had it search out through the period from the start of a launch window to find the best travel time from one planet to the next, using a length of time in some cases that was well longer than a year. We then ran all 42 planet to planet travel lengths again but this time used the Number of Synodic Periods to Plot option to constrain the plotter to a single year’s time – so in the case of Kerbin to Moho, which has a Synodic Period of 33.7772 days we told the plotter to go around 10.80610589 times to cover only a year’s worth of days. This usually gave us tighter travel times and higher Δv requirements. Again, this was done each for the 2019, 2020 and 2021 launch windows.

The last constraint to determine was how close we wanted our probes to fly past the sun. We have no idea what the thermal region around the sun is like and the final decision to fly up to half of Moho’s orbital distance is still keeping some of the team awake at night – it’s likely Phase Two will increase this distance to just 1/3 closer than Moho.

**Plotting the Trajectories**

Now that we knew how long we wanted to allow for travel between the planets, it was time to plug our numbers into the Multi-Flyby Maneuver Sequencer and sit back to let it crunch. We left our initial orbit at the default circular equatorial because we can adjust the departure as needed to better suit the final trajectory during Phase Three. We allowed the MFMS to run 50 iterations per planetary combination (which added up to the average 25min calculation time mentioned earlier) to give it a chance to play with many of the various possibilities along the route.

Here is where the three various constraint runs came into play. First for loose constraints, we ran all 109 combinations using the transfer times for the most efficient use of Δv. The number of days were cut in half for the lower travel time bounds and doubled for the upper travel time bounds. The second tight constraint run through was with the same transfer times but with 0 for the lower travel time bounds and the actual number of days for the upper bounds. Third was the window constraints that used the transfer times found only within that year, split and doubled the same as the loose constraints run for the lower and upper bounds.

Not all of these runs returned feasible results, which was expected. If a trajectory such as Kerbin->Eve->Duna->Jool was not found feasible, then the three runs for Kerbin->Eve->Duna->Jool->Urlum/Neidon/Plock would not be computed. In the end the total number of trajectories computed was 800 out of 954. Of those 800 there were 584 feasible trajectories found. These will be the focus of Phase Two.

**Phase Two – Trajectory Selection & Re-computation**

Over the next month the Extremis team will take a good look at the final options available for flyby combinations to determine which mission will flyby which planets, mainly taking into account the amount of Δv that will be required. Since they won’t know until later this year how much fuel a probe lofted by Ascension will be able to carry with it, a rather large range of Δv values will need to be taken into account. While less important, mission time will also be a factor. We have one route from Kerbin->Jool->Sarnus->Plock that would only need 2.121km/s of Δv but it would also take 20 years to get there! Ultimately the team will be closely reviewing trajectories that use less than 5km/s of Δv and take less than 10 years to reach their final planet.

Once the final relatively few routes have been chosen, they’ll be put through the MFMS again but this time will undergo 500 iterations, in addition to using the mission length constraint so it gives up if the travel time exceeds 10 years.

Phase Three will pick the final routes for each mission and detailed planning will begin. The first mission should be completely planned out by Q4 of this year.

## 2 comments

## Heather

June 18, 2019 at 22:02 (UTC -5) Link to this comment

Does anyone know of a mod similar to the ‘ Orbital Utility Vehicle ‘ that is compatible with 1.3.1?

## dkerman

June 22, 2019 at 15:03 (UTC -5) Link to this comment

better off asking in the thread. It’s been recently revived to be compatible with the latest KSP version so even if that doesn’t help it work on 1.3.1 there may be bits and parts that can be used to make it work if you’re willing to put in the effort: https://forum.kerbalspaceprogram.com/index.php?/topic/133162-112-orbital-utility-vehicle-v124/