Downloads · 30 days
17
39% of all-time downloads
techsd66/functiongemma-270m-drone-router-navlink-v2
functiongemma-270m-drone-router-navlink-v2 is a robotics model from techsd66. Use it for the robotics task on the model card, and read the license before you ship it in a product. It is set up for mlx-lm.
This repository contains the reproduced round-2 LoRA adapter checkpoint for NAVLINK in:
Downloads · 30 days
17
39% of all-time downloads
All-time downloads
44
Public
Repo size
515 MB
Likes
0
Public
Click a slice to open those files.
.gguf292 MB · 66%
From the Hugging Face model README
This repository contains the reproduced round-2 LoRA adapter checkpoint for NAVLINK in:
llama-farm/functiongemma-270m-drone-router-navlink-v2llama-farm/drone-router-dataset-navlink-v2This upload is the reproduced round-2 checkpoint rebuilt from the restored 4,307-example dataset after the original adapter weights were overwritten.
The model is a compact command router for PX4/MAVLink drone control. It expects a normalized two-line textual interface:
[STATE] <telemetry + vision context>
[CMD] <operator / vision / safety trigger>
It returns:
drone_tool(param="value")
Short operator-facing feedback.
For heartbeat-only notifications, the model may emit a single line only:
drone_notify(message="heartbeat")
You are a drone command router. Given [STATE] telemetry and a [CMD] trigger, output exactly one tool call on line 1, and a short operator confirmation on line 2.
Safety rules (override everything):
- battery < 15%: drone_flight(action="land")
- battery < 25%: drone_flight(action="rth")
- gps lost: drone_flight(action="stop")
Routing hints:
- Target not visible + "find X": drone_scan(lock_on_class="X")
- Target visible + "follow/track": drone_track(action="start")
- Multiple waypoints: drone_mission, single GPS point: drone_goto
- Compound commands: first step only
Heartbeats: drone_notify(message="heartbeat") — no line 2.
[STATE] + [CMD] interface[STATE] phase=AIRBORNE alt=15.2m bat=72% hdg=270° spd=3.1m/s pos=32.851,-97.125 | vision=SCANNING target=person wp=2/5
[CMD] <trigger text>
[STATE] phase=AIRBORNE alt=15.0m bat=68% hdg=270° spd=0.0m/s pos=32.852,-97.124 | vision=SCANNING target=person wp=0/0 | det=person conf=0.87 bearing=45° range=15m at=32.853,-97.121
[CMD] person detected at bearing 45°, confidence 87%
phase — uppercase flight phase such as GROUNDED, AIRBORNE, RTLalt — altitude above ground, formatted like 15.2mbat — battery percentage, formatted like 72%hdg — heading in degrees, formatted like 270°spd — horizontal speed, formatted like 3.1m/spos — GPS position as lat,lonvision — one of IDLE, SCANNING, TRACKING, LOSTtarget — none, person, vehicle, animal, or any when appropriatewp — waypoint progress as N/M (or 0/0 if not in a waypoint mission)det — detected classconf — confidence score, typically 2 decimals (example: 0.87)bearing — relative bearing in degrees (example: 45°)range — estimated range in meters (example: 15m)at — estimated target GPS as lat,lonVision events should be normalized into the exact same [STATE] + [CMD] interface.
Examples:
[CMD] person detected at bearing 45°, confidence 87%
[CMD] possible vehicle, low confidence 38%
[CMD] lost tracking on person
[CMD] search complete, 2 targets found
[CMD] search complete, no targets
All upstream inputs should be reduced into the same plain-text trigger format before inference:
[CMD][CMD] go to 32.853, -97.121 and scan[STATE] and the event sentence in [CMD][CMD] battery low at 22% or [CMD] gps signal lostThe model performs best when all surfaces—map, UI, chat, and vision—are normalized into the same textual contract instead of using separate APIs.
Line 1 must be exactly one executable tool call.
Line 2 should be a short operator-facing confirmation.
drone_tool(param="value")
Short operator-facing confirmation.
drone_notify(message="heartbeat")
The model is trained with strict safety overrides:
battery < 15% → drone_flight(action="land")battery < 25% → drone_flight(action="rth")gps lost → drone_flight(action="stop")These rules take precedence over normal mission continuation, tracking, or convenience behavior.
The router targets 9 tools:
drone_flight(action)drone_move(direction, distance_m)drone_yaw(degrees|heading)drone_goto(lat, lon, alt_m, speed_mps, on_arrival)drone_look(action)drone_scan(lock_on_class)drone_track(action, target_class)drone_mission(action, target, pattern, waypoints)drone_notify(message)The main remaining weakness in this reproduced checkpoint is exact waypoint copying for multi-waypoint mission prompts. The model can still normalize or hallucinate waypoint lists when asked to patrol/search explicit coordinates in free text.
Operational guidance:
drone_goto(...) routingadapter_config.jsonadapters.safetensorseval_results.json with the verified reproduced scorecardaccuracy = 0.950
correct = 475
total = 500
safety_violations = 0
Note: The reproduced run scored 475/500 (95.0%) vs. the original 476/500 (95.2%). The 1-sample difference is within normal training variance. The same failure patterns persist: waypoint exact-copying in multi-point missions and occasional repetition in notify messages. See eval_results.json for the full per-tool breakdown and failure details.