Giter VIP home page Giter VIP logo

gear's Introduction

gear

Geometric Engine for Articulated Rigid-body simulation

GEAR is a C++ library for kinematics and dynamics of articulated rigid body systems. It uses efficient algorithms based on Lie group and screw theory to solve the following problems:

  • Forward dynamics for calculating the resulting joint accelerations when the known joint torques or forces are applied to the mechanical system.
  • Inverse dynamics for calculating the joint torques that are necessary to make the system follow prescribed joint accelerations at the current state (position and velocity).
  • Hybrid dynamics for calculating the torques for prescribed joints, and the accelerations for unprescribed joints where 'prescribed' means joint acceleration is prescribed and 'unprescribed' (or 'torque-specified') means joint torque is known or given. A joint can be either 'prescribed' or 'unprescribed'. Hybrid dynamics is a generalization of the forward and inverse dynamics, i.e., they can be regarded as the extreme cases of hybrid dynamics when all of the joints are 'unprescribed' and when all of the joints are 'prescribed' respectively.
  • Analytical derivatives of the forward/inverse/hybrid dynamics with respect to an arbitrary system parameter.

GEAR uses a joint coordinate system to describe the degree of freedom of an articulated rigid body system. Thus, the joint constraints are inherently considered in the algorithms without having to consider them separately. Closed joint loops are automatically detected and handled as constraints. Additional constraints can also be added to the system.

How to compile

CMake and a C++ compiler are necessary to build GEAR.

  • On Linux, do make in the terminal to compile the library under gear/build_release.
  • On Windows, execute runcmake_win.bat to create a Visual Studio solution file under gear/build.
  • On Mac, execute runcmake_xcode to create an XCode project file under gear/build_xcode. Alternatively, you can do make in the terminal to compile using gcc.

How to use

See gear/examples for how to create your own simulation project.

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.