All Projects → kjyv → FloBaRoID

kjyv / FloBaRoID

Licence: LGPL-3.0 License
Framework for dynamical system identification of floating-base rigid body tree structures

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
javascript
184084 projects - #8 most used programming language
CMake
9771 projects
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to FloBaRoID

kinpy
Simple kinematics calculation toolkit for robotics
Stars: ✭ 48 (-9.43%)
Mutual labels:  robotics, urdf
MeshCatMechanisms.jl
3D Visualization of mechanisms and URDFs using MeshCat.jl and RigidBodyDynamics.jl
Stars: ✭ 36 (-32.08%)
Mutual labels:  robotics, urdf
HRVO
The Hybrid Reciprocal Velocity Obstacle (C++)
Stars: ✭ 90 (+69.81%)
Mutual labels:  robotics
pyPESTO
python Parameter EStimation TOolbox
Stars: ✭ 93 (+75.47%)
Mutual labels:  parameter-estimation
R30X-Fingerprint-Sensor-Library
Arduino library for R30X series optical fingerprint scanners.
Stars: ✭ 13 (-75.47%)
Mutual labels:  identification
ple
Probabilistic line extraction from 2-D range scan
Stars: ✭ 47 (-11.32%)
Mutual labels:  robotics
smart grasping sandbox
A public sandbox for Shadow's Smart Grasping System
Stars: ✭ 69 (+30.19%)
Mutual labels:  robotics
interbotix ros manipulators
ROS Packages for Interbotix Arms
Stars: ✭ 32 (-39.62%)
Mutual labels:  robotics
LibDS
Library for controling FRC robots
Stars: ✭ 29 (-45.28%)
Mutual labels:  robotics
piper
No description or website provided.
Stars: ✭ 50 (-5.66%)
Mutual labels:  robotics
MarsRoverHardware
PCB designs for the University of Waterloo Robotics Team
Stars: ✭ 61 (+15.09%)
Mutual labels:  robotics
unit-converter
Convert standard units from one to another with this easy to use, lightweight package
Stars: ✭ 104 (+96.23%)
Mutual labels:  measurements
ign-math
General purpose math library for robot applications.
Stars: ✭ 35 (-33.96%)
Mutual labels:  robotics
OPVO
Sample code of BMVC 2017 paper: "Visual Odometry with Drift-Free Rotation Estimation Using Indoor Scene Regularities"
Stars: ✭ 40 (-24.53%)
Mutual labels:  robotics
aerial autonomy
Easily extendable package for interacting with and defining state machines for autonomous aerial systems
Stars: ✭ 22 (-58.49%)
Mutual labels:  robotics
Python-Adaptive-Signal-Processing-Handbook
Python adaptive signal processing tutorials
Stars: ✭ 80 (+50.94%)
Mutual labels:  identification
RulerView
simple ruler library for android, with Calibration and Dimension measurement 📏 .
Stars: ✭ 21 (-60.38%)
Mutual labels:  measurements
quaternion-conventions
An overview of different quaternion implementations and their chosen order: x-y-z-w or w-x-y-z?
Stars: ✭ 24 (-54.72%)
Mutual labels:  robotics
awesome-industry4.0
Curated list of Industry 4.0 research, popular events, open-source software projects and learning resources that are worth looking into!
Stars: ✭ 57 (+7.55%)
Mutual labels:  robotics
awesome-multimodal-ml
Reading list for research topics in multimodal machine learning
Stars: ✭ 3,125 (+5796.23%)
Mutual labels:  robotics

FloBaRoID Build Status

(FLOating BAse RObot dynamical IDentification)

FloBaRoID is a python toolkit for parameter identification of floating-base rigid body tree-structures such as humanoid robots. It aims to provide a complete solution for obtaining physical consistent identified dynamics parameters.

Overview diagram Visualization of Kuka LWR4+

Tools:

  • trajectory.py: generate optimized trajectories
  • excite.py: send trajectory to control the robot movement and record the resulting measurements
  • identify.py: identify dynamical parameters (mass, COM and rotational inertia) starting from an URDF description and from torque and force measurements
  • visualize.py: show 3D robot model of URDF, trajectory motion

Features:

  • find optimized excitation trajectories with non-linear global optimization (as parameters of fourier-series for periodic soft trajectories)
  • data preprocessing
    • derive velocity and acceleration values from position readings
    • data is zero-phase low-pass filtered from supplied measurements
    • it is possible to only select a combination of data blocks to yield a better condition number (Venture, 2009)
  • validation with other measurement files
  • excitation of robots, using ROS/MoveIt! or Yarp
  • implemented estimation methods:
    • ordinary least squares, OLS
    • weighted least squares (Zak, 1994)
    • estimation of parameter error using previously known CAD values (Gautier, 2013)
    • essential standard parameters (Pham, Gautier, 2013), estimating only those that are most certain for the measurement data and leaving the others unchanged
    • identification problem formulation with constraints as linear convex SDP problem to get optimal physical consistent standard parameters (Sousa, 2014)
    • non-linear optimization within consistent parameter space (Traversaro, 2016)
  • visualization of trajectories
  • plotting of measured and estimated joint state and torques (interactive, HTML, PDF or Tikz)
  • output of the identified parameters directly into URDF

requirements for identification module:

  • python 2.7 or >= 3.3
  • python modules
    • numpy (> 1.8), scipy, sympy (== 1.0), pyyaml, trimesh, cvxopt, pylmi-sdp, matplotlib (>= 1.4), colorama, palettable, humanize, tqdm
    • iDynTree, e.g. from iDynTree superbuild (with enabled python binding)
    • when using Python 2.7: future
    • when using Python < 3.5: typing
  • dsdp5 (command line executable)

optional:

  • pyglet, pyOpenGL (for visualizer)
  • symengine.py (to speedup SDP)
  • mpld3, jinja2 (for html plots)
  • matplotlib2tikz (for tikz plots)
  • rbdl (alternative for inverse dynamics)

requirements for excitation module:

  • for ros, python modules: ros, moveit_msg, moveit_commander
  • for yarp: c compiler, installed robotology-superbuild, python modules: yarp
  • for other robots, new modules might have to be written

requirements for optimization module:

You can do pip install -r requirements.txt for most of them but you will need to check for the correct versions of each library. You might have to install some library dependencies if you get compile errors. If you're using on Ubuntu and also have ros installed, it is recommended to install with pip within a virtualenv.

Also see the Tutorial.

Known limitations:

  • trajectory optimization is limited to fixed-base robots (full simulation, balance criterion etc. not implemented)
  • YARP excitation module is not very generic (ROS should be)
  • using position control over YARP is not realtime safe and can expose timing issues (especially with python to C bridge)
  • Since preparing SDP matrices uses sympy expressions, most of the time for solving the identification problem is spent in symbolic manipulations rather than the actual convex optimization solver. Possibly the time demands can be reduced.

SDP optimization code is based on or uses parts from cdsousa/wam7_dyn_ident

Usage is licensed under the LGPL 3.0, see License.md. Please quote the following publication if you're using this software for any project: S. Bethge, J. Malzahn, N. Tsagarakis, D. Caldwell: "FloBaRoID — A Software Package for the Identification of Robot Dynamics Parameters", 26th International Conference on Robotics in Alpe-Adria-Danube Region (RAAD), 2017

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].