https://github.com/juliarobotics/motioncapturejointcalibration.jl
Kinematic calibration for robots using motion capture data
https://github.com/juliarobotics/motioncapturejointcalibration.jl
Last synced: 4 months ago
JSON representation
Kinematic calibration for robots using motion capture data
- Host: GitHub
- URL: https://github.com/juliarobotics/motioncapturejointcalibration.jl
- Owner: JuliaRobotics
- License: other
- Created: 2017-07-28T01:22:11.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-02-17T00:05:18.000Z (over 6 years ago)
- Last Synced: 2025-06-15T11:41:28.445Z (about 1 year ago)
- Language: Julia
- Size: 106 KB
- Stars: 19
- Watchers: 2
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# MotionCaptureJointCalibration
[](https://travis-ci.org/JuliaRobotics/MotionCaptureJointCalibration.jl) [](http://codecov.io/github/JuliaRobotics/MotionCaptureJointCalibration.jl?branch=master)
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](https://github.com/JuliaOpt/JuMP.jl) and [RigidBodyDynamics.jl](https://github.com/JuliaRobotics/RigidBodyDynamics.jl). JuMP makes it possible to choose between various NLP solvers. [Ipopt](https://github.com/JuliaOpt/Ipopt.jl) appears to perform fairly well for the problems formulated by this package.
## News
* October 18, 2017: [tagged version 0.0.1](https://github.com/JuliaRobotics/MotionCaptureJointCalibration.jl/releases/tag/v0.0.1).
* August 4, 2017: the package is under initial construction.
## Features
Features include:
* handling of occlusions
* handling of measurements of the body-fixed locations of only a subset of the markers attached to the robot (the unknown marker positions will be solved for, given rough bounds)
* handling of measurements of only a subset of a robot's joint positions (the unknown joint positions will be solved for, given rough bounds)
* proper handling of quaternion-parameterized floating joints (unit norm constraints for quaternions)
* visualization of calibration results using [RigidBodyTreeInspector](https://github.com/rdeits/RigidBodyTreeInspector.jl)
Currently, MotionCaptureJointCalibration can only estimate constant offsets between measured and actual joint positions.
## Installation
To install, simply run
```julia
Pkg.add("MotionCaptureJointCalibration")
```
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 (`Pkg.add("Ipopt")`).
## Usage
See [the demo notebook](https://github.com/JuliaRobotics/MotionCaptureJointCalibration.jl/blob/master/notebooks/Demo.ipynb) for usage.
## Acknowledgements
A variant of the NLP formulation used in this package is due to Michael Posa.