# Seeker (spacecraft)

Seeker is a NASA CubeSat intended to demonstrate ultra-low cost in-space inspection capability. Taken from design to delivery from late 2017 to early 2019, Seeker was launched on board the Cygnus NG-11 mission. Seeker deployed and operated around Cygnus on September 16, 2019.
The Seeker free-flyer is a 3U CubeSat, approximately 30cm by 10cm by 10cm and weighing 4kg. It uses a cold-gas propulsion system with additively manufactured components, GPS, laser rangefinder, neural networks to drive a vision-based navigation system, Wi-Fi communication, and commercial off-the-shelf (COTS) parts wherever possible. The spacecraft is paired with a communications relay, called Kenobi, that provides an interface to the Cygnus vehicle. The spacecraft is design to be as automated as possible, requiring minimal input from the ground in order to complete its mock inspection mission.

## Avionics

Seeker's flight software (FSW) is run on a CHREC Space Processor. An Intel Joule is used for the computationally-intensive vision-based navigation algorithms. Seeker's propulsion system is controlled by a custom, FPGA-based board and power is provided to the system from GomSpace NanoPower BP4 batteries.

## Propulsion

The Seeker vehicle contained a small 6 – Degree of Freedom, cold gas nitrogen based cubesat propulsion system. The propulsion system is approximately 1.25U in size and contains 12 0.1 N thrusters. The system contained a small titanium pressure vessel and was capable of providing approximately 5 m/s DV.
In an effort to minimize mass, optimize packing, and substantial reductions in iteration time between designs, a significant effort was undertaken to utilize additive manufacturing (AM) technology as part of the Seeker propulsion system. The certified AM thrusters were the first known additively manufactured (AM) pressurized plastic components which are designed to meet or exceed NASA standards and are certified for pressurized ground and flight use around operators.

## Guidance, navigation, and control system
### Automated Flight Manager

Seeker's Automated Flight Manager (AFM) is a FSW application that allows the vehicle to function highly independently of human input. The AFM is a state machine that ensures the vehicle's systems are in the appropriate configuration for each phase of the mission.

### Navigation

Seeker's navigation system consists of two core FSW applications and six applications that provide appropriately processed sensor information. The system leverages Project Morpheus architecture and code components. The core of the navigation system is a propagator that integrates the vehicle state at 50 Hz and a multiplicative extended kalman filter that updates the state at 5Hz.

### Guidance

Seeker's guidance FSW application ran at 5Hz and allowed for waypoint seeking, position and attitude holds, target tracking, and limited Seeker's kinetic energy by limiting the vehicle's overall velocity.

### Control

Seeker's control FSW application ran at 5Hz and calculated translational commands with a proportional-integral function and rotational commands with a phase plane function. The application then combined these inputs into a single command that accounted for thruster limitations.

### Sensors

Seeker's sensor suite consisted of a STIM-300 IMU, a DLEM-SR laser rangefinder, a camera feeding the vision-based navigation system, GPS, and nanoSSOC-D60 Sun sensors.

### Vision-based Navigation System

The UT Austin Texas Spacecraft Laboratory developed an algorithm that processed images taken by the Seeker camera into bearing measurements by identifying the Cygnus with a convolutional neural network and then using a traditional computer vision approach to centroid it. This approach was found to be more robust than purely traditional alternatives in ground testing.
* Neural network bounding Cygnus against a dark background
* Neural network bounding Cygnus with Earth in the background

### Mission Results

Seeker deployed from Cygnus on September 19, 2019 and gathered the below images (stitched together into a gif).