Skip to content

strawlab/flo

Repository files navigation

Fast Lock On - FLO

DOI

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.

flo video rollup

What is in this repository

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.

Other FLO-related repositories

Overview of multiple pieces when using PWM servo motors

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/ )

Overview of top-level directories

  • crates Rust crates (libraries) used by flo and other software
  • firmware/beamdriver Firmware for IR LED source
  • firmware/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 for flo