Skip to content
Draft
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Add docker images ([#2776](https://github.com/stack-of-tasks/pinocchio/pull/2776))
- ROS: added jrl_cmakemodules dependency ([#2789](https://github.com/stack-of-tasks/pinocchio/pull/2789))

### Added
- Add Ellipsoid Joint to the joint collection, get ready for biomechanics. ([#....])(todo)

## [3.8.0] - 2025-09-17

### Added
Expand Down
6 changes: 6 additions & 0 deletions bindings/python/parsers/graph/expose-edges.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,12 @@ namespace pinocchio
.def_readonly("nq", &JointSphericalZYX::nq, "Number of configuration variables.")
.def_readonly("nv", &JointSphericalZYX::nv, "Number of tangent variables.");

bp::class_<JointEllipsoid>(
"JointEllipsoid", "Represents an ellipsoidal joint.",
bp::init<>(bp::args("self"), "Default constructor."))
.def_readonly("nq", &JointEllipsoid::nq, "Number of configuration variables.")
.def_readonly("nv", &JointEllipsoid::nv, "Number of tangent variables.");

bp::class_<JointTranslation>(
"JointTranslation", "Represents a translation joint.",
bp::init<>(bp::args("self"), "Default constructor."))
Expand Down
3 changes: 3 additions & 0 deletions include/pinocchio/bindings/python/context/generic.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ namespace pinocchio
typedef JointModelSphericalZYXTpl<Scalar> JointModelSphericalZYX;
typedef JointDataSphericalZYXTpl<Scalar> JointDataSphericalZYX;

typedef JointModelEllipsoidTpl<Scalar, Options> JointModelEllipsoid;
typedef JointDataEllipsoidTpl<Scalar, Options> JointDataEllipsoid;

typedef JointDataPrismaticTpl<Scalar, Options, 0> JointDataPX;
typedef JointModelPrismaticTpl<Scalar, Options, 0> JointModelPX;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,28 @@ namespace pinocchio
.def_readwrite("pitch", &context::JointModelHZ::m_pitch, "Pitch h of the JointModelHZ.");
}

// specialization for JointModelHelical
template<>
bp::class_<context::JointModelEllipsoid> &
expose_joint_model<context::JointModelEllipsoid>(bp::class_<context::JointModelEllipsoid> & cl)
{
return cl
.def(bp::init<context::Scalar, context::Scalar, context::Scalar>(
bp::args("self", "radius_a", "radius_b", "radius_c"),
"Init JointModelEllipsoid with radii a, b and c"))
.def(
bp::init<>(bp::args("self"), "Init JointModelEllipsoid with default radii equal to 0.01"))
.def_readwrite(
"radius_a", &context::JointModelEllipsoid::radius_a,
"Radius a of the JointModelEllipsoid along X axis.")
.def_readwrite(
"radius_b", &context::JointModelEllipsoid::radius_b,
"Radius b of the JointModelEllipsoid along Y axis.")
.def_readwrite(
"radius_c", &context::JointModelEllipsoid::radius_c,
"Radius c of the JointModelEllipsoid along Z axis.");
}

// specialization for JointModelUniversal
template<>
bp::class_<context::JointModelUniversal> &
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ namespace pinocchio
{
typedef
typename traits<JointMotionSubspaceTpl<Dim, Scalar, Options, MaxDim>>::DenseBase DenseBase;
typedef Eigen::Matrix<Scalar, Dim, Dim, Options, MaxDim, MaxDim> ReturnType;
typedef Eigen::Matrix<Scalar, Dim, 1, Options, MaxDim, 1> ReturnType;
};

template<int Dim, typename Scalar, int Options, int MaxDim, typename ForceSet>
Expand Down
8 changes: 8 additions & 0 deletions include/pinocchio/multibody/joint/fwd.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,14 @@ namespace pinocchio
struct JointDataSphericalZYXTpl;
typedef JointDataSphericalZYXTpl<context::Scalar> JointDataSphericalZYX;

template<typename Scalar, int Options = context::Options>
struct JointModelEllipsoidTpl;
typedef JointModelEllipsoidTpl<context::Scalar> JointModelEllipsoid;

template<typename Scalar, int Options = context::Options>
struct JointDataEllipsoidTpl;
typedef JointDataEllipsoidTpl<context::Scalar> JointDataEllipsoid;

template<typename Scalar, int Options, int axis>
struct JointModelPrismaticTpl;
template<typename Scalar, int Options, int axis>
Expand Down
8 changes: 8 additions & 0 deletions include/pinocchio/multibody/joint/joint-collection.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ namespace pinocchio
// Joint Spherical ZYX
typedef JointModelSphericalZYXTpl<Scalar, Options> JointModelSphericalZYX;

// Joint Ellipsoid
typedef JointModelEllipsoidTpl<Scalar, Options> JointModelEllipsoid;

// Joint Translation
typedef JointModelTranslationTpl<Scalar, Options> JointModelTranslation;

Expand Down Expand Up @@ -92,6 +95,7 @@ namespace pinocchio
JointModelRevoluteUnaligned,
JointModelSpherical,
JointModelSphericalZYX,
JointModelEllipsoid,
JointModelPX,
JointModelPY,
JointModelPZ,
Expand Down Expand Up @@ -141,6 +145,9 @@ namespace pinocchio
// Joint Spherical ZYX
typedef JointDataSphericalZYXTpl<Scalar, Options> JointDataSphericalZYX;

// Joint Ellipsoid
typedef JointDataEllipsoidTpl<Scalar, Options> JointDataEllipsoid;

// Joint Translation
typedef JointDataTranslationTpl<Scalar, Options> JointDataTranslation;

Expand Down Expand Up @@ -179,6 +186,7 @@ namespace pinocchio
JointDataRevoluteUnaligned,
JointDataSpherical,
JointDataSphericalZYX,
JointDataEllipsoid,
JointDataPX,
JointDataPY,
JointDataPZ,
Expand Down
Loading
Loading