dyn::Joint#

rb::dyn::Joint represents one joint in the rigid-body model tree. It provides factories for fixed, prismatic, and revolute joints and exposes the limit metadata that model-based code often needs.

Header

Header

#include <rby1-sdk/dynamics/joint.h>

Declaration

Namespace

rb::dyn

Kind

class

Primary role

Represent one joint and its connectivity, motion subspace, and limits.

Public Member Functions

Method group

Purpose

Notes

Make(...), MakeFixedJoint(...), MakePrismaticJoint(...), MakeRevoluteJoint(...)

Construct new joint objects.

Static factories for the main joint families.

ConnectLinks(...) and Disconnect()

Attach or detach parent and child links.

Use while building or editing a model.

GetParentLink(), GetChildLink(), GetName(), IsFixed()

Inspect identity and connectivity.

Useful during model traversal.

GetLimit*() and SetLimit*()

Read or write joint, velocity, acceleration, and torque limits.

Important for controllers and safety checks.

Detailed Reference

class Joint : public std::enable_shared_from_this<Joint>#

Public Functions

void ConnectLinks(const std::shared_ptr<Link> &parent_link, const std::shared_ptr<Link> &child_link, const math::SE3::MatrixType &T_pj = math::SE3::Identity(), const math::SE3::MatrixType &T_jc = math::SE3::Identity())#
void Disconnect()#
std::shared_ptr<Link> GetChildLink()#
std::shared_ptr<const Link> GetChildLink() const#
double GetLimitQddotLower() const#
double GetLimitQddotUpper() const#
double GetLimitQdotLower() const#
double GetLimitQdotUpper() const#
double GetLimitQLower() const#
double GetLimitQUpper() const#
double GetLimitTorque() const#
std::string GetName() const#
std::weak_ptr<Link> GetParentLink()#
std::weak_ptr<const Link> GetParentLink() const#
bool IsFixed() const#
void SetLimitQ(double lower, double upper)#
void SetLimitQddot(double lower, double upper)#
void SetLimitQddotLower(double val)#
void SetLimitQddotUpper(double val)#
void SetLimitQdot(double lower, double upper)#
void SetLimitQdotLower(double val)#
void SetLimitQdotUpper(double val)#
void SetLimitQLower(double val)#
void SetLimitQUpper(double val)#
void SetLimitTorque(double value)#

Public Static Functions

static std::shared_ptr<Joint> Make(std::string name, math::se3v::MatrixType S)#
static std::shared_ptr<Joint> MakeFixedJoint(std::string name)#
static std::shared_ptr<Joint> MakePrismaticJoint(std::string name, const math::SE3::MatrixType &T = math::SE3::Identity(), const Eigen::Vector3d &axis = {0, 0, 1})#
static std::shared_ptr<Joint> MakeRevoluteJoint(std::string name, const math::SE3::MatrixType &T = math::SE3::Identity(), const Eigen::Vector3d &axis = {0, 0, 1})#

Friends

friend class Robot

Related Types

Examples

  • dynamics/load_urdf.cpp and dynamics/simple_robot.cpp are the most relevant entry points.