Ardumatic is a small forward and inverse kinematics library suitable for use inside Ardupilot.
It uses the FABRIK algorithm to get quickly generate inverse kinematic solutions.
Ardumatic includes comprehensive testing for both standalone functionality and ArduPilot integration:
# Run Lua unit tests
bustedTest the kinematic solver within ArduPilot's Software-in-the-Loop simulator:
# Run SITL integration tests
ARDUPILOT_PATH=/path/to/ardupilot ./tools/run_sitl_tests.shFor detailed SITL testing information, see SITL_TESTING.md.
# Run unit tests
busted
# Run SITL integration tests
ARDUPILOT_PATH=/path/to/ardupilot ./tools/run_sitl_tests.sh- Lua 5.1+ (ArduPilot compatible)
- Busted (for unit testing)
- Python 3.6+ (for SITL testing)
- ArduPilot source code (for SITL testing)
# Install dependencies
luarocks install --deps-only
# Run unit tests
busted
# Run SITL integration tests (requires ArduPilot)
ARDUPILOT_PATH=/path/to/ardupilot ./tools/run_sitl_tests.sh
# Lint code
luacheck src/Implement FABRIK solver- Enable joint constraints when solving
- Add keep-out zones and colission avoidance
- Implement gait generator for n-legged robots
This package couldn't exist without all the great people whose code I was able to read to get my head around what I was trying to do.
- @jmsjr and @alansley for caliko.
- @TheComet for ik
- @EgoMoose for FABRIK (inverse kinematics) and the related Roblox code
- All the amazing folks behind the ArduPilot project.
This repository is mirrored on Github from it's primary location on my Forgejo instance. Feel free to raise issues and open PRs on Github.
This software is licensed under the terms of the
HL3-FULL, see the LICENSE.md file included with
this package for the terms.
This license actively proscribes this software being used by and for some industries, countries and activities. If your usage of this software doesn't comply with the terms of this license, then contact me with the details of your use-case to organise the purchase of a license - the cost of which may include a donation to a suitable charity or NGO.