MotionCaptureJointCalibration provides functionality for kinematic calibration of robots, given measurements of the positions of motion capture markers attached to the robot's links and positions of the robot's joints in a number of poses. It does so by solving a nonlinear program (NLP) with (weighted) square error between measured and predicted marker locations as the objective to minimize.
MotionCaptureJointCalibration is a small Julia library built on top of JuMP and RigidBodyDynamics.jl. JuMP makes it possible to choose between various NLP solvers. Ipopt appears to perform fairly well for the problems formulated by this package.
Currently, MotionCaptureJointCalibration can only estimate constant offsets between measured and actual joint positions.
To install, simply run
This will install MotionCaptureJointCalibration and its required dependencies. RigidBodyTreeInspector.jl is an optional dependency and can be used to visualize the calibration results (
Pkg.add("RigidBodyTreeInspector")). You'll also need an NLP solver that interfaces with JuMP, e.g. Ipopt (
See the demo notebook for usage.
A variant of the NLP formulation used in this package is due to Michael Posa.
4 days ago