diff --git a/CMakeLists.txt b/CMakeLists.txt index d692db2400cc152bb0fa45e6308dd99560a57d97..6b43e5f80ad7a8060b5c60cd3cb4e484e10d640c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,8 @@ SET(PROJECT_NAME pinocchio) SET(PROJECT_DESCRIPTION "Rigid multi body dynamics algorithms") SET(PROJECT_URL "http://github.com/stac-of-tasks/pinocchio") +SET(DOXYGEN_USE_MATHJAX YES) + IF(APPLE) SET(CMAKE_MACOSX_RPATH 1) ENDIF(APPLE) diff --git a/doc/additionalDoc/crtp.hh b/doc/additionalDoc/crtp.hh index f783c0ebff3ad8d5e4e5a71266841da300ea43ef..92d12457897cfac3941a6eebfb3c802dd574cc83 100644 --- a/doc/additionalDoc/crtp.hh +++ b/doc/additionalDoc/crtp.hh @@ -1,6 +1,6 @@ // // Copyright (c) 2016 CNRS -// Author: Florent Lamiraux +// Author: Florent Lamiraux, Justin Carpentier // // This file is part of Pinocchio // Pinocchio is free software: you can redistribute it @@ -18,9 +18,10 @@ /** \page pinocchio_page_crtp Curiously recurring template pattern -Pinocchio library makes intensive use of the so called CRTP desing -pattern. This patterns is used for performance reasons in the -implementation of static polymorphism. +Like Eigen, Pinocchio library makes intensive use of the so called CRTP design +pattern. This pattern is used for performance reasons in the +implementation of static polymorphism, avoiding dynamic casts and calls to virtual methods. +All in all, CRTP plays a central role in the performance of Pinocchio. -\sa https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern +We refer to https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern for further explanations. */ diff --git a/doc/additionalDoc/package.hh b/doc/additionalDoc/package.hh index 57fac3677775c12125497e5ae117679131704962..13808caec16ddb36439b39d70d611a2af72e2cd9 100644 --- a/doc/additionalDoc/package.hh +++ b/doc/additionalDoc/package.hh @@ -1,6 +1,6 @@ // // Copyright (c) 2016 CNRS -// Author: Florent Lamiraux +// Author: Florent Lamiraux, Justin Carpentier // // This file is part of Pinocchio // Pinocchio is free software: you can redistribute it @@ -17,28 +17,40 @@ // <http://www.gnu.org/licenses/>. /** \mainpage -\section pinocchio_section_introduction Introduction -This package implements efficient forward kinematics algorithms for multi-body -kinematic chains. One of the main features is the separation between models (constant values representing an object) and data (used for intermediate computations). +This is the documentation of Pinocchio, the Eigen-like library for Rigid Body Dynamics computations. +This library implements highly efficient kinematic and dynamic algorithms for multi-body systems making Pinocchio a versatile framework for robotics applications. + +\section pinocchio_section_installation Installation + +Please refer to the GitHub page of the project for installation details: +https://github.com/stack-of-tasks/pinocchio -The main classes are +\section pinocchio_section_introduction Introduction + +One of the main features is the separation between models (constant values representing an object) and data (used for intermediate computations). +The two main classes are: \li se3::Model that represents a kinematic chain composed of joints that move links with mass and inertia, -\li se3::Data that stores intermediate data for kinematic computations. +\li se3::Data that stores intermediate data for kinematic and dynamic computations. + +\section pinocchio_section_spatial_algebra Spatial Algebra -\section pinocchio_section_kinematics Kinematics +The library provides some classes to represent spatial quantities at the root of kinematic and dynamic computations. This main classes are reported below: +\li se3::SE3Tpl represents a rigid placement, a mathematical representation of \f$ SE(3) \f$. +\li se3::MotionTpl represents a spatial motion (linear and angular velocities), e.g. a spatial velocity or acceleration associated to a frame or a body. The spatial motion is the mathematical representation of \f$ se(3) \f$. +\li se3::ForceTpl represents a spatial force, e.g. a spatial impulse or force associated to a body. The spatial force is the mathematical representation of \f$ se^{*}(3) \f$, the dual of \f$ se(3) \f$. +\li se3::InertiaTpl represents a spatial inertia characterizing a rigid body and expressed in a given frame. This inertia is composed of mass, the position of the center of mass regarding to the frame and a rotational inertia. -The library provides some classes to represent kinematic objects: -\li se3::SE3Tpl represents a rigid-body transformation. +\section pinocchio_section_algos Main Algorithms -\section pinocchio_section_collision_checking Collision Checking +\section pinocchio_section_collision_checking Collision checking and distance computation -Collision checking between bodies of the kinematic chain and external +Collision checking between two bodies of the kinematic chain and external obstacles is implemented using library hpp-fcl (a modified version of Flexible Collision Library). The computation of the position of objects in 3D space for a given configuration is performed by the following classes: -\li se3::GeometryModel that represents a kinematic chain moving objects, +\li se3::GeometryModel that represents the collision objects associated to a joint stored in a se3::Model, \li se3::GeometryData that stores intermediate data like the position of objects in a given configuration of the kinematic chain. **/