This repository contains a Basilisk simulation that demonstrates a full touch-and-go (TAG) manoeuvre about the comet 320P/McNaught. The key piece of the implementation is the custom module
TouchAndGoWaypoint found in src/algorithm.py.
At every simulation step the waypoint module:
- Converts current simulation time to seconds.
- Advances a finite-state machine through the four TAG phases.
- Computes the synchronous angular rate
omega = 2 * pi / orbitPeriod. - Sets the desired radius according to phase (constant or linearly interpolated).
- Maps
(radius, angle)into Cartesian coordinates in the chosen orbit plane (xy,yzorxz). - Adds the proper tangential and radial velocity components.
- Publishes position/velocity set-points to
smallBodyWaypointFeedback.
The result is a smooth trajectory that a downstream Lyapunov controller can track with minimal effort.
While not altering any Basilisk internals, the generator simply refreshes the
reference message that smallBodyWaypointFeedback already consumes, letting us
reuse its proven control logic with almost no extra complexity.
Satellite approaching and matching the velocity of the comet.
Satellite performing a TAG manoeuvre.
Edit the parameters at the bottom of algorithm.py, for example:
touchAndGoWaypoint.initialRadius = 2500.0 # [m]
touchAndGoWaypoint.finalAltitude = 500.0 # [m]
...- Python 3.9+ (tested on Windows 11)
- Basilisk (install via the official docs)
numpy,matplotlib

