Ivo Georgiev
Created March 31, 2022

Computer vision for CubeSats

Multi-camera computer vision solution for CubeSat-standard nano-satellites for situational awareness, swarm operations and auto-inspection.

37
Computer vision for CubeSats

Things used in this project

Hardware components

Mobile platform (desktop)
The applications of interest for this project require that the Kria is mobile. This requires both a power solution and a data link solution. The testbed for these solutions is a rotating jewelry display platform with various options as direction, speed, and back-and-forth. This mimics the rotational motion of a CubeSat tethered to a high-altitude balloon.
×1
18650 battery
The rotating platform itself is mobile, capable of being powered by a single 18650 battery. This allows some of the more interesting experiments with 360-degree computer vision.
×1
18650 battery charger
×1
DC-to-DC voltage regulator
The mobile power solution consists of a DC-to-DC voltage regulator to provide 12V to the Kria KV260 carrier, a NiMH battery pack, the necessary wiring and connectors on both sides.
×1
NiMH battery pack
7-battery pack with output voltage of 8.4V, converted to 12V by the regulator with 86% efficiency. A multi-chemistry battery charger is used to recharge the battery pack.
×2
Camera Module V2
Raspberry Pi Camera Module V2
×1
Camera tripod stand
The Kria is placed on the rotating platform along with the power solution and the camera is fixed on a light tripod stand. This gives us the basic rotating-camera setup for the Kria KV260.
×1
Long-range WiFi module
The mobile communication solution is based on the popular ESP8266 WiFi module capable of establishing a WiFi hot spot. This is used to show the video from the computer vision experiments. The Adafruit Huzzah is powered by 3.3V.
×1
Absolute orientation module
This is a 9- or 10-DOF inertial motion unit module. It is mounted as close as possible to the camera. It serves two purposes: (1) via sensor fusion, to show the absolute orientation of the camera so graphical indicators can be overlaid on top of the video stream from the mobile camera (this looks a lot like a floating boat compass which shows proper N-S-E-W despite the rocking of the boat), and (2) as a training signal for view-stabilization for computer-vision applications.
×1
RPLIDAR 3
360-degree LIDAR up to 25m. Used for sensor-fusion experiments with a rotating camera. The rotational speeds of the LIDAR and the platform are different which complicates the sensor fusion.
×1
Compute Module 4
Raspberry Pi Compute Module 4
Used as the OBC of the CubeSat. It is the main component on the CDH board.
×1
Microchip CAN controllers & transceivers
The hardware stack (4-5 PCBs) use the Controller Area Network protocol for inter-board command and communication.
×1
NXP Drone
The mobile Kria graduates from the desktop rotating platform to true 3-DOF motion on a drone.
×1

Software apps and online services

SmartCamera with a rotating KV260
This is the computer-vision Hello-World for the project. We simply run the provided SmartCamera on our rotating mobile platform. It is fast enough to detect faces even at the top speed of the rotating platform.
Optical-flow gyroscope
Preparation for view stabilization. Dynamically inferring the rotational speed of the camera and generating a "de-spin" signal.
View stabilization for moving camera
The camera (and the Kria KV260) rotate, and the 360-degree surroundings are stitched dynamically into a long-frame video stream. The directions of the world are overlaid over the stream so as to coincide with the image taken from the center of the platform in those directions. On top of this, a stable view in a specific world direction can be shown as if the camera is not moving and pointing in that direction.
Stellarium
Open-source realistic real-time night sky.
Celestial orientation with rotating camera
Recognize and overlay the orientation and attitude (of the camera) at night using the night sky. Trained with Stellarium. Inference on rotating platform outside at a place w/o or w/ little light polution.
KiCad
KiCad
CubeSat PCBs including custom carrier for Kria are designed in KiCAD 6.
SolidWorks
SolidWorks is used for design of mechanical components and modeling PCBs in the CubeSat shell.

Hand tools and fabrication machines

Aluminum workshop
As shown on the Cover Image, our CubeSat outer shell is custom made out of 1mm Al sheet.
3D Printer (generic)
3D Printer (generic)
Shelves for the PCBs are 3D printed.

Story

Read more

Schematics

CDH CM4 GPIO

The C&DH board uses the Compute Module 4 as OBC.

Sensor board

Payload board. IMU and various environmental sensors.

EPS

Master schematic of the EPS board.

Code

Ballonsat bus

First iteration of the ColoradoCUBE project with a custom nano-satellite bus (EPS, CDH, SENSE, COMMS).

CubeSat vision

Computer vision and Kria development for CubeSat vision solutions.

Flight executive in Python

Second iteration of a simple CubeSat flight executive in Python

Credits

Ivo Georgiev

Ivo Georgiev

7 projects • 5 followers

Comments