trajectory oppoints × signal → tableimport fullseye as fs; fs.ledger.traj_tau_dot(points, t_s, target=(0.0, 0.0, 0.0), normal=None) (実装を直接呼ぶなら import flyvision; flyvision.traj_tau_dot(points, t_s, target=(0.0, 0.0, 0.0), normal=None)、台帳から引くなら opsflyvision.get("traj_tau_dot"))Distance, approach speed, tau and tau-dot along a measured 3-D trajectory.
The quantity a looming detector is supposed to deliver, computed from the
true path so that an eye’s estimate can be scored against it. With
d(t) the distance to target (a point, or — with normal — the signed
distance to the plane through target), the approach speed is v = -dd/dt,
the time-to-contact tau = d/v and its rate tau-dot = d tau/dt.
Lee’s (1976) sign convention: tau-dot = -1 at constant speed,
tau-dot = -0.5 under the constant deceleration that stops exactly at the
target (the braking law), and a value between them means the agent is
braking enough to stop short.
points: (N, 3) positions, metres, N >= 3.
t_s: (N,) strictly increasing sample times, seconds.
target: the point approached (3,), metres.
normal: None for the Euclidean distance to target, or a (3,) plane
normal: the distance is then (p - target) . normal / |normal|.
Returns a dict {"t_s", "distance_m", "speed_m_s", "tau_s", "tau_dot",
"closest_m", "t_closest_s", "n"}. Samples where the agent is not
approaching (v <= 0) carry NaN in tau_s and tau_dot — a
documented non-finite: a receding agent has no time-to-contact.
Ground truth (pinned in the tests): for d = v0 t toward the target at
constant speed tau-dot == -1, and for d = v0 t - a t^2 / 2 with
v0^2 = 2 a d0 (stops exactly at the target) tau-dot == -0.5 — both to
1e-9 on a uniform grid, where central differences are exact for a quadratic.
Raises ValueError: points not (N, 3) with N >= 3 (an empty
points is refused), a t_s that is not (N,) strictly increasing,
non-finite entries, a malformed target / normal, and a zero normal.
py -3.11 examples/poc_zebra_stripes_fly_eye.pytable を入力に取れる)fly_t4t5_field · fly_flow_from_directions · fly_matched_filter · fly_egomotion_from_flow · fly_eye_merge · fly_view_plane_texture · fly_hex_resample · fly_expansion_readout
trajectory)—
Provenance: flyvision.py — FLYVISION operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.