puck optable × scalar × scalar × signal → tableimport fullseye as fs; fs.ledger.puck_pinhole_camera(table: 'dict', height: 'float', fovy_deg: 'float', shape) -> 'dict' (実装を直接呼ぶなら import puck; puck.puck_pinhole_camera(table: 'dict', height: 'float', fovy_deg: 'float', shape) -> 'dict'、台帳から引くなら opsdrive.get("puck_pinhole_camera"))真上の針穴カメラ(位置 (0, 0, h)、−z を見る、up = +y、MuJoCo のカメラ規約)をホモグラフィに: col = W/2 + f x/h、
row = H/2 − f y/h、f = (H/2)/tan(fovy/2)。パック上面の高さ(≈ 0.02 m)は無視(視差 h に対して 1 % 強、残差は門で測る)。
shape = (H, W)。返り値は :func:puck_camera と同じ形。
空の入力(table が空の dict)は ValueError。
py -3.11 examples/gallery_drive_ballistics.pypy -3.11 examples/poc_air_hockey_intercept.pytable を入力に取れる)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
puck)puck_table · puck_wall_bounce · puck_slide_predict · puck_state_at · puck_crossing_point · puck_mirror_path · puck_stop_distance · puck_camera
Provenance: puck.py — DRIVE operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.