You are not logged in.

#1 2022-04-30 04:02:08

Registered: 2013-05-04
Posts: 57

Support in creating a PKGBUILD for EMTG: space mission design

From the NASA Website:

EMTG is a global trajectory optimization tool intended for interplanetary mission design. The technology automatically searches for the optimal sequence of planetary flybys and propulsive maneuvers for maximizing payload delivery at a destination. Designed for minimal user oversight, EMTG requires only start location, destination, allowable launch-date range, allowable flight time, and minimal spacecraft hardware information.

However, the website links to some project sites in sourceforge that are no longer active. I found a GitHub in

But indeed, my experience creating a PKGBUILD is zero. And the README from the GitHub ask to do many changes that I believe would require some wizardry or patching

This package contains all of the code that NASA GSFC is releasing for the Evolutionary Mission Trajectory Generator, version 9. No third-party code is included in this release. You will need to download the third-party components yourself. This information is detailed in documents that may be found in the docs/build_system folder.

In particular, you will need a license for SNOPT. This is not free. Many of you probably already have SNOPT, and the rest may have to purchase it. EMTGv9 is known to work with SNOPT 7.5 and 7.6. It probably also works with 7.7 but I can't verify this because I don't have a license for 7.7. Older versions *might* work.

For this SNOPT solver, there are evaluation versions available for free at

You will want to download SPICE ephemeris files for the bodies that you are visiting. I recommend downloading the full 3+ GB set from and placing it in your Universe/ephemeris_files folder

Note that regardless of whether you download all of the various SPICE ephemerides for the solar system, you will need to download de430.bsp from … /de430.bsp and place it in your Universe/ephemeris_files folder. I could not supply this file because it is too large for Github.

You must edit the EMTG-Config.cmake file as follows:

1) Change the CSPICE_DIR to wherever you have placed your CSPICE package. CSPICE_DIR should point to the root CSPICE directory.

2) Change the SNOPT_ROOT_DIR to be wherever you have placed the unzipped SNOPT folder.  From this directory, it will seek the traditional /lib and /interface folders (as appropriate to your SNOPT version, which should be auto detected).  Report any problems to the EMTG lead developers.
    Example: This is currently usually a directory called "snopt7"

3) Change the 'BOOST_ROOT' to the root of your boost installer.  This presupposes you have already built boost (run its bootstrapper)
        3a) Optionally, if during the run phase of CMAKE boost is not being found, uncomment the next two lines and specifically specify the BOOST_INCLUDEDIR and BOOST_LIBRARYDIR.  The default options are traditional variants that are sometimes chosen by boost installers, but yours may vary.

Once all the above is in place, open CMake, and point the source directory at the EMTG root directory.  Point the build directory to the directory of your choice (may be the same). Run configure, then Generate, as per the usual CMake Process. This will create either  makefile for Linux or a Visual Studio project for Windows, or an Xcode project for Mac.

EMTGv9 is provided "as is" in its imperfect but very capable state. The US Government, NASA, and the developers cannot guarantee that the results you produce with EMTG are correct. EMTG is intended for use as a trade study tool and an initial guess generator for a flight navigation tool. We recommend that you use it in those contexts and only those contexts.

Any help is appreciated


Last edited by phollox (2022-04-30 04:10:21)

I divide by zero, multiple times per day. Also, I don't believe in tipping
Arch + i3wm (still learning)


Board footer

Powered by FluxBB