ardupilot_skill

This skill helps you operate ArduPilot drones via pymavlink to automate takeoff, landing, and precise movements.
  • Python

2.5k

GitHub Stars

2

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill openclaw/skills --skill ardupilot

  • _meta.json287 B
  • SKILL.md5.3 KB

Overview

This skill connects to ArduPilot flight controllers using pymavlink to control vehicle actions like arming, guided takeoff, guided movement, and landing. It encapsulates common patterns and safety checks required for reliable autonomous control. The skill focuses on command sequencing, continuous command sending for critical transitions, and closed-loop monitoring of telemetry.

How this skill works

It opens a MAVLink connection (example: tcp:localhost:5762), waits for a heartbeat, and reads system status and telemetry messages. For takeoff it ensures the flight controller is in standby, then immediately sends ARM, switches to GUIDED, and issues TAKEOFF without delays. For landing and position control it repeatedly sends LAND or set_position_target_local_ned messages while monitoring GLOBAL_POSITION_INT or LOCAL_POSITION_NED telemetry.

When to use it

  • Automating safe guided takeoff and landing sequences for ArduPilot vehicles.
  • Issuing relative position moves in the LOCAL_NED frame (e.g., move north 2 m).
  • Building scripts that require continuous command sending during critical state changes.
  • Monitoring telemetry (altitude, GPS fix, battery) before and during missions.
  • Connecting to ground stations or simulators over TCP/serial with pymavlink.

Best practices

  • Always wait until system_status == 3 (standby) before attempting takeoff.
  • Send ARM, set GUIDED mode, and TAKEOFF immediately in sequence without waiting between them.
  • Continuously send LAND commands and monitor altitude until safely on ground.
  • Perform closed-loop checks: read GLOBAL_POSITION_INT and GPS_RAW_INT to verify altitude and GPS fix.
  • Ensure GPS fix_type >= 3 and battery voltage is adequate before autonomous operations.

Example use cases

  • Scripted autonomous takeoff to 5–8 m with telemetry-based confirmation of altitude.
  • Controlled descent and landing loop that keeps issuing LAND until altitude < 0.3 m.
  • Relative waypoint moves using LOCAL_POSITION_NED to shift position by meters in N/E/U axes.
  • Health checks before missions: heartbeat, system_status, GPS satellites, and battery voltage.
  • Integration with simulators or test benches via tcp:localhost:5762 for development and testing.

FAQ

The flight controller can re-lock if there is a delay between ARM and mode/takeoff commands; sending them consecutively prevents re-arming requirements.

What is the recommended altitude threshold to consider takeoff successful?

Use around 90% of the requested altitude (for example, consider 4.5 m reached when target is 5 m) and verify via GLOBAL_POSITION_INT relative_alt.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational