Execution and Control

Pinocchio

Pinocchio is a fast rigid-body dynamics library used for robot kinematics, inverse dynamics, Jacobians, and model-based control computations.

Tool Introduction

Core parameters, trigger timing, and visual before/after demo references.

Short Explanation

Use Pinocchio when execution code needs fast kinematics, inverse dynamics, or model-based control terms.

InputRobot model, joint state, target pose, velocities or accelerations
OutputKinematic quantities, dynamics terms, torques, Jacobians
Trigger TimingTriggered on demand after the required input files and configuration are prepared.
RuntimeC++ / Python bindings
BeforeRobot model, joint state, target pose, velocities or accelerations

Prepare the scene, image, video, sensor stream, prompt, or configuration expected by the original project.

AfterKinematic quantities, dynamics terms, torques, Jacobians

Read the produced visualization, prediction, map, trajectory, mask, grasp pose, or other documented artifact.

Parameters And Output

Readable controls and the meaning of each returned artifact.

Parameter Explanation

robot_modelpath

URDF or model description loaded into Pinocchio.

qtext

Robot joint configuration.

v_or_atext

Joint velocity or acceleration vector depending on the requested algorithm.

Output Explanation

kinematics

Frame placements, Jacobians, and related kinematic quantities.

dynamics

Mass matrix, Coriolis, gravity, or inverse-dynamics torque terms.

How To Use

Official resources, deployment steps, academic context, citation, and source-reported benchmark numbers.

Deployment Notes

  1. Install Pinocchio from conda, robotpkg, source, or the official package route for the target platform.
  2. Load the robot model and create data structures once per control process.
  3. Call the required kinematics or dynamics routines inside the planner or controller.

Relative Path Example

import pinocchio as pin
model = pin.buildModelFromUrdf('robot.urdf')
data = model.createData()
pin.forwardKinematics(model, data, q)

Expected Result Shape

{
  "tool": "pinocchio",
  "status": "ok",
  "results": [
    {
      "label": "Rigid-body dynamics and kinematics",
      "score": 0.87,
      "output": "Kinematic quantities, dynamics terms, torques, Jacobians"
    }
  ],
  "timing": {
    "runtime": "Microsecond-level rigid-body dynamics derivative computation in the cited benchmark; exact timing depends on model size, compiler, and hardware.",
    "device": "documented in source benchmark when available"
  },
  "artifacts": {
    "visualization": "tools/pinocchio/runs/visualization.png",
    "raw_predictions": "tools/pinocchio/runs/predictions.json"
  }
}
Paper figure

Academic Info

Paper identity and contribution summary.

TitlePinocchio: Fast Forward and Inverse Dynamics for Poly-Articulated Systems
AuthorsAdd authors
VenueAdd venue
ContributionProvides efficient algorithms and bindings for model-based robot control, planning, and dynamics computations.

Citation

@misc{pinocchioYEAR,
  title={Pinocchio: Fast Forward and Inverse Dynamics for Poly-Articulated Systems},
  author={Author},
  year={YEAR},
  note={Add venue or arXiv identifier},
  url={https://github.com/stack-of-tasks/pinocchio}
}

Benchmark

Only compact, source-reported numbers are shown here.

DatasetMetricValueRuntimeSource
7-DoF arm to 36-DoF humanoid rigid-body derivative benchmarksAnalytical derivative computation cost3 microseconds to 17 microsecondsPinocchio C++ implementationRSS 2018 Analytical Derivatives paper

Artifacts

Official Pinocchio documentation, performance figure, RSS 2018 paper, and C++ benchmark context.

Demo Images

Visual references from the original tool. Click any image to inspect the original size.