Jetson Nano Optical Flow Navigation

Job ID: 39808599

Budget: $250 – $750 USD

I am building a small aerial platform that needs to remain rock-steady without GPS. The hardware is fixed: a Jetson Nano running Ubuntu and one downward-facing camera. I now need an optical-flow based position-hold module that plugs into my existing ROS 2 flight stack.

Here is what I expect from you:

• A real-time optical-flow algorithm written in Python or C++—whichever gives the best frame rate on the Nano. Parts can be mixed; for example, a C++ core wrapped with minimal Python bindings is perfectly fine.

• Integration with the Jetson’s CUDA-accelerated OpenCV so that the solution comfortably runs at ≥30 FPS on 640×480 input while leaving enough headroom for other flight-control threads.

• A ROS 2 node that publishes velocity and position drifts in the body frame, plus a simple service call that tells the FCU to engage or disengage the hold mode.

• A short on-board calibration routine for focal length and height that can be triggered through a parameter or launch file.

• Clear instructions: dependencies, flashing steps, launch commands and a brief explanation of the algorithmic choices so I can maintain or extend the code later.

Acceptance will be based on tethered flight tests: when I hover the quad indoors at 1–3 m altitude, the position error should stay within ±15 cm for at least 60 seconds with moderate lighting changes.

If you have already implemented Farnebäck, Lucas-Kanade, or a custom GPU kernel on Jetson devices, I’d love to see a short video or repo link.