A Modular, High-Performance Inverse Kinematics Library for ArduPilot
ArduKinematics is a lightweight Lua-based framework designed to provide standardized manipulator control for the ArduPilot ecosystem. By abstracting complex trigonometric and iterative solvers, it enables N-DOF serial manipulators (humanoid limbs, rover arms) to be commanded via simple Cartesian
- Heuristic Solver Engine: Implementation of the FABRIK (Forward And Backward Reaching Inverse Kinematics) algorithm, optimized for low-latency execution on flight controller hardware.
- Coordinate Frame Standardization: Built on Denavit-Hartenberg (DH) Parameters, allowing the library to be reconfigured for any arm geometry via a simple config table.
- pi.FO (Field Operator) Reference: A 5-DOF high-fidelity simulation model used as the "Golden Standard" for library validation.
- "Fusion-to-Flight" Pipeline: A documented workflow for converting Fusion 360 CAD designs into Gazebo Harmonic-ready SDF models.
- Stability Aware: Built-in hooks for EKF3 tilt-compensation to protect the vehicle's Center of Gravity (CoG) during arm extension.
- Fusion Demo
- ArduPilot SITL (Ubuntu 22.04 / WSL2 recommended)
- Gazebo Harmonic
- ArduPilot-Gazebo Plugin
Add the resource path to your ~/.bashrc:
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:~/ArduKinematics/simulation/modelsTerminal 1 (Gazebo):
gz sim -v4 -r pifo_test.worldTerminal 2 (ArduPilot):
sim_vehicle.py -v Rover -f gazebo-pifo --model gazebo-pifo -I0- Mathematical Foundation (DH-Parameters & Primer)
- Current Phase: URDF/SDF Model Finalization (Gazebo Harmonic)
- Core FABRIK Solver Implementation (Lua)
- MAVLink Telemetry Integration (
NAMED_VALUE_FLOAT)