spacex-iss-docking-sim-autopilot icon indicating copy to clipboard operation
spacex-iss-docking-sim-autopilot copied to clipboard

Fully automated SpaceX ISS Dragon docking simulator system.

:toc:

= ISS Sim Automatic Docking System

image:https://github.com/DaniruKun/spacex-iss-docking-sim-autopilot/workflows/Clojure%20CI/badge.svg?branch=master["Github CI", link="https://github.com/DaniruKun/spacex-iss-docking-sim-autopilot"]

Video demo:

https://www.youtube.com/watch?v=YNYwYZznuMs

This app performs fully automatic docking of the Crew Dragon in the link:https://iss-sim.spacex.com[SpaceX ISS docking simulator].

Want to read more about it? Check the article on link:https://medium.com/@thedanpetrov/creating-a-spacex-crew-dragon-simulator-autopilot-in-clojure-1ac095d9209b[Medium].

== Running

You can grab a release from link:https://github.com/DaniruKun/spacex-iss-docking-sim-autopilot/releases[Releases], or check the build section. You will need Java installed to run the .jar

You can run the built uberjar with

java -jar iss-sim-auto-docking-standalone.jar

Or you can just double click the .jar

You can also run the project with Leiningen:

lein run

== Installation

=== Chrome

Make sure you have the LATEST Chrome version.

=== Webdriver

Make sure you have the latest WebDriver (or one compatible with your Chrome version).

You can install the latest version on macOS with

brew install chromedriver

=== Java 8

Make sure you have at least Java 8 installed on your machine, and that it is the active version.

=== Leiningen

This project uses Leiningen.

== Build

You can build an uberjar with

lein uberjar

== Quick guide

=== Namespaces

link:src/iss_sim_auto_docking/core.clj[core]

Simulator setup and initializations happen, together with main control flow.

link:src/iss_sim_auto_docking/dragon.clj[dragon]

Control logic and drivers related to Dragon are implemented.

link:src/iss_sim_auto_docking/telemetry.clj[telemetry]

Functions related to fetching telemetry and updating telemetry data.

link:src/iss_sim_auto_docking/calc.clj[calc]

Helper calculations.

== Support

image::https://www.ko-fi.com/img/githubbutton_sm.svg["Ko-Fi", link="https://ko-fi.com/I3I61NHVO"]

Or you can just check out my website: link:https://danpetrov.xyz[]

== Bugs

The very final approach speed control is a bit WIP, other than that everything else is fully automatic.

== Contributing

Play around with it! Try setting different parameters in the source files. See how it impacts the performance of the autopilot.

== License

Copyright © 2020 Daniils Petrovs

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.

This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.