FLO is a method for videography using a camera system that automatically moves to follow the subject.
FLO is described in the following publication:
Vo-Doan TT, Titov VV, Harrap MJM, Lochner S, Straw AD. High Resolution Outdoor Videography of Insects Using Fast Lock-On Tracking. Science Robotics 9(95), eadm7689 (2024) Free-access link DOI: 10.1126/scirobotics.adm7689.
This repository contains the source code for the primary FLO executable, called
flo
. flo
is written in the Rust language. flo
receives image coordinates
from Strand Cam imops
and controls motors. This is the main, high-level FLO
program.
- https://github.com/strawlab/flo-data-analysis data analysis for FLO data
- https://github.com/strawlab/flo-hardware build instructions and manual for the FLO BYO-camera insect tracking/filming setup.
- https://github.com/strawlab/red-button-trigger-timestamp hardware to record times of external trigger events.
Other variants trade rpipico-pantilt
and the PWM servo motors for other types
of motors, such as Trinamic stepper motors or SimpleBGC gimbal motors. Strand
Camera is available here.
+-------------+
| | HTTP
| FLO UI +<----------------------+
| (browser)| |
+-------------+ |
v
+-----------------------+ +-------------+ +-----------------+
| | UDP | | USB | |
| Strand Camera `imops` +----->| flo +<--->| rpipico-pantilt |
| (PC)| | (PC)| | (RP Pico)|
+-----------------------+ +-------------+ +-------+---------+
^ |
| |
| |
| v
+----+---+ +--------+
| | | PWM |
| camera |<-------------------------------------+ servo |
| | | motors |
+--------+ +--------+
(Ascii art made with http://asciiflow.com/ )
crates
Rust crates (libraries) used byflo
and other softwarefirmware/beamdriver
Firmware for IR LED sourcefirmware/flo-tilta-dongle
Firmware for USB dongle to control Tilta motors.firmware/rpipico-pantilt
Firmware for RPi Pico to control PWM servo motors.src
Rust source code forflo