GithubHelp home page GithubHelp logo

jim147 / kindr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from anybotics/kindr

0.0 0.0 0.0 4.48 MB

Kinematics and Dynamics for Robotics

License: BSD 3-Clause "New" or "Revised" License

C++ 92.01% Python 0.11% MATLAB 5.39% M 0.09% CMake 2.40%

kindr's Introduction

Kindr - Kinematics and Dynamics for Robotics

Authors: Christian Gehring, C. Dario Bellicoso, Michael Bloesch, Remo Diethelm, Peter Fankhauser, Paul Furgale, Michael Neunert, Hannes Sommer
Maintainer: Remo Diethelm, [email protected]
Affiliation: ANYbotics

This projected was initially developed at ETH Zurich (Autonomous Systems Lab & Robotic Systems Lab).

This work is conducted as part of ANYmal Research, a community to advance legged robotics.

The source code is released under a BSD 3-Clause license.

Documentation

Online

Impatient individuals can directly download the cheat sheet.

See also section 'Building the documentation' below.

Changelog

Kindr 1.0.0

  • Simplified header include #include <kindr/Core> is provided.
  • Kindr is now strongly dependent on Eigen.
  • All sub namespaces have been removed. (e.g. kindr::rotations::eigen_impl -> kindr::)
  • The implementations of rotations and time derivatives have been simplified (Passive, Hamiltonian).
    • Active typedefs (e.g. RotationQuaternionAD) have been removed and simpler ones (e.g. RotationQuaternionD) have been introduced.
    • Note that the functionality of some operators changed! Please check the cheat sheet to understand what is implemented.
    • Some hints on what needs to be changed from kindr 0.0.1:
      • rotation.setFromVectors(v1, v2) -> rotation.setFromVectors(v2, v1)
      • C_BI.boxPlus(dt * B_w_IB) -> C_BI.boxPlus(dt * C_IB * B_w_IB)
      • C_BI.boxMinus(dt * B_w_IB) -> -C_BI.boxMinus(dt * B_w_IB)
      • Euler angles probably have to be negated.
  • Conversion methods between ROS and kindr have been moved to the package kindr_ros.
  • Concatenation of Homogeneous Transformation is now implemented.
  • Short typedefs are provided for Homogeneous Transformation: HomTransformQuatD, HomTransformMatrixD.
  • Jacobian of exponential map is implemented.
  • Unit tests based on gtest are provided to test the convention of other software packages.
    • Gazebo (gazebo::math::Quaternion) uses the same convention as kindr.
    • ROS TF (tf::Quaternion and tf::Matrix3x3) uses the same convention as kindr.
    • RBDL's RigidBodyDynamics::Math::SpatialTransform uses the same convention as kindr, whereas RBDL's RigidBodyDynamics::Math::Quaternion concatenates differently and its conversion to a rotation matrix is inverted.

Requirements

  • Eigen 3.2.0 (Older versions might also work)
  • GCC 4.7 is required at the minimum.
  • CMake 2.8.3 is required at the minimum.

Building

Building with cmake

Install the library with CMake:

mkdir build
cd build
cmake .. -DUSE_CMAKE=true
sudo make install

Note that USE_CMAKE defaults to true if catkin is not installed.

Uninstall the library with:

cd build
sudo make uninstall

Kindr can be included in your cmake project. Add the following to your CmakeLists.txt:

find_package(kindr)
include_directories(${kindr_INCLUDE_DIRS})

Building with catkin

Build kindr with catkin:

cd ~/catkin_ws/src
git clone [email protected]:anybotics/kindr.git
catkin_make_isolated -C ~/catkin_ws

or with catkin command line tools:

cd ~/catkin_ws/src
git clone [email protected]:anybotics/kindr.git
catkin build -w ~/catkin_ws kindr

Kindr can be included in your catkin project with: Add the following to your CMakeLists.txt:

find_package(catkin COMPONENTS kindr)
include_directories(${catkin_INCLUDE_DIRS})

And to your package.xml:

<package>
  <build_depend>kindr</build_depend>
</package>

Building the documentation

Build the documentation with Doxygen:

mkdir build
cd build
cmake ..
make kindr_doc

The doxygen documentation can be found here:

build/doc/html/index.html

Building unit tests with gtest

GTests are only built if the folder gtest exists in the root folder.

Download and use GTest:

wget https://github.com/google/googletest/archive/release-1.7.0.zip
unzip release-1.7.0.zip
ln -s googletest-release-1.7.0 gtest
mkdir build
cd build
cmake .. -DUSE_CMAKE=true -DBUILD_TEST=true
make

Note that USE_CMAKE defaults to true if catkin is not installed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.