HEBI C++ API  3.15.0
hebi::robot_model Namespace Reference

Classes

class  ActuatorMetadata
 Actuator specific view of an element in a RobotModel instance. More...
 
class  BracketMetadata
 Bracket specific view of an element in a RobotModel instance. More...
 
class  CustomObjective
 Allows you to add a custom objective function. More...
 
class  EndEffectorPositionObjective
 
class  EndEffectorSO3Objective
 
class  EndEffectorTipAxisObjective
 
struct  IKResult
 
class  JointLimitConstraint
 
class  JointMetadata
 Joint specific view of an element in a RobotModel instance. More...
 
class  LinkMetadata
 Link specific view of an element in a RobotModel instance. More...
 
class  MetadataBase
 Base class for all metadata. Do not instantiate directly. More...
 
class  Objective
 
class  RigidBodyMetadata
 Rigid Body specific view of an element in a RobotModel instance. More...
 
class  RobotModel
 Represents a chain or tree of robot elements (rigid bodies and joints). More...
 

Typedefs

using Matrix4dVector = std::vector< Matrix4d, Eigen::aligned_allocator< Eigen::Matrix4d > >
 
using MatrixXdVector = std::vector< MatrixXd, Eigen::aligned_allocator< Eigen::MatrixXd > >
 

Enumerations

enum  ElementType {
  ElementType::Other = HebiRobotModelElementTypeOther, ElementType::Actuator = HebiRobotModelElementTypeActuator, ElementType::Bracket = HebiRobotModelElementTypeBracket, ElementType::Joint = HebiRobotModelElementTypeJoint,
  ElementType::Link = HebiRobotModelElementTypeLink, ElementType::RigidBody = HebiRobotModelElementTypeRigidBody, ElementType::EndEffector = HebiRobotModelElementTypeEndEffector
}
 
enum  FrameType {
  FrameType::CenterOfMass = HebiFrameTypeCenterOfMass, FrameType::Output = HebiFrameTypeOutput, FrameType::EndEffector = HebiFrameTypeEndEffector, FrameType::Input = HebiFrameTypeInput,
  FrameType::Mesh = HebiFrameTypeMesh, FrameType::Payload = HebiFrameTypePayload
}
 
enum  JointType {
  JointType::RotationX = HebiJointTypeRotationX, JointType::RotationY = HebiJointTypeRotationY, JointType::RotationZ = HebiJointTypeRotationZ, JointType::TranslationX = HebiJointTypeTranslationX,
  JointType::TranslationY = HebiJointTypeTranslationY, JointType::TranslationZ = HebiJointTypeTranslationZ
}
 
enum  ActuatorType {
  ActuatorType::X5_1 = HebiActuatorTypeX5_1, ActuatorType::X5_4 = HebiActuatorTypeX5_4, ActuatorType::X5_9 = HebiActuatorTypeX5_9, ActuatorType::X8_3 = HebiActuatorTypeX8_3,
  ActuatorType::X8_9 = HebiActuatorTypeX8_9, ActuatorType::X8_16 = HebiActuatorTypeX8_16, ActuatorType::R8_3 = HebiActuatorTypeR8_3, ActuatorType::R8_9 = HebiActuatorTypeR8_9,
  ActuatorType::R8_16 = HebiActuatorTypeR8_16, ActuatorType::T5_1 = HebiActuatorTypeT5_1, ActuatorType::T5_4 = HebiActuatorTypeT5_4, ActuatorType::T5_9 = HebiActuatorTypeT5_9,
  ActuatorType::T8_3 = HebiActuatorTypeT8_3, ActuatorType::T8_9 = HebiActuatorTypeT8_9, ActuatorType::T8_16 = HebiActuatorTypeT8_16, ActuatorType::R25_8 = HebiActuatorTypeR25_8,
  ActuatorType::R25_20 = HebiActuatorTypeR25_20, ActuatorType::R25_40 = HebiActuatorTypeR25_40, ActuatorType::T25_8 = HebiActuatorTypeT25_8, ActuatorType::T25_20 = HebiActuatorTypeT25_20,
  ActuatorType::T25_40 = HebiActuatorTypeT25_40
}
 
enum  LinkType { LinkType::X5 = HebiLinkTypeX5, LinkType::X8 = HebiLinkTypeR8, LinkType::R25 = HebiLinkTypeR25, LinkType::R25_R8 = HebiLinkTypeR25_R8 }
 
enum  LinkInputType { LinkInputType::RightAngle = HebiLinkInputTypeRightAngle, LinkInputType::Inline = HebiLinkInputTypeInline }
 
enum  LinkOutputType { LinkOutputType::RightAngle = HebiLinkOutputTypeRightAngle, LinkOutputType::Inline = HebiLinkOutputTypeInline }
 
enum  BracketType {
  BracketType::X5LightLeft = HebiBracketTypeX5LightLeft, BracketType::X5LightRight = HebiBracketTypeX5LightRight, BracketType::X5HeavyLeftInside = HebiBracketTypeX5HeavyLeftInside, BracketType::X5HeavyLeftOutside = HebiBracketTypeX5HeavyLeftOutside,
  BracketType::X5HeavyRightInside = HebiBracketTypeX5HeavyRightInside, BracketType::X5HeavyRightOutside = HebiBracketTypeX5HeavyRightOutside, BracketType::R8LightLeft = HebiBracketTypeR8LightLeft, BracketType::R8LightRight = HebiBracketTypeR8LightRight,
  BracketType::R8HeavyLeftInside = HebiBracketTypeR8HeavyLeftInside, BracketType::R8HeavyLeftOutside = HebiBracketTypeR8HeavyLeftOutside, BracketType::R8HeavyRightInside = HebiBracketTypeR8HeavyRightInside, BracketType::R8HeavyRightOutside = HebiBracketTypeR8HeavyRightOutside,
  BracketType::R25LightLeft = HebiBracketTypeR25LightLeft, BracketType::R25LightRight = HebiBracketTypeR25LightRight, BracketType::R25HeavyLeftInside = HebiBracketTypeR25HeavyLeftInside, BracketType::R25HeavyLeftOutside = HebiBracketTypeR25HeavyLeftOutside,
  BracketType::R25HeavyRightInside = HebiBracketTypeR25HeavyRightInside, BracketType::R25HeavyRightOutside = HebiBracketTypeR25HeavyRightOutside
}
 
enum  EndEffectorType { EndEffectorType::Custom = HebiEndEffectorTypeCustom, EndEffectorType::X5Parallel = HebiEndEffectorTypeX5Parallel, EndEffectorType::R8Parallel = HebiEndEffectorTypeR8Parallel }
 

Functions

static bool validateHRDF (HebiRobotModelPtr model)
 
template<size_t T>
void custom_objective_callback_wrapper (void *user_data, size_t num_positions, const double *positions, double *errors)
 C-style callback wrapper to call into CustomObjective class; this should only be used by the CustomObjective class itself. More...
 

Typedef Documentation

◆ Matrix4dVector

using hebi::robot_model::Matrix4dVector = typedef std::vector<Matrix4d, Eigen::aligned_allocator<Eigen::Matrix4d> >

◆ MatrixXdVector

using hebi::robot_model::MatrixXdVector = typedef std::vector<MatrixXd, Eigen::aligned_allocator<Eigen::MatrixXd> >

Enumeration Type Documentation

◆ ElementType

Enumerator
Other 
Actuator 
Bracket 
Joint 
Link 
RigidBody 
EndEffector 

◆ FrameType

Enumerator
CenterOfMass 
Output 
EndEffector 
Input 
Mesh 
Payload 

◆ JointType

Enumerator
RotationX 
RotationY 
RotationZ 
TranslationX 
TranslationY 
TranslationZ 

◆ ActuatorType

Enumerator
X5_1 
X5_4 
X5_9 
X8_3 
X8_9 
X8_16 
R8_3 
R8_9 
R8_16 
T5_1 
T5_4 
T5_9 
T8_3 
T8_9 
T8_16 
R25_8 
R25_20 
R25_40 
T25_8 
T25_20 
T25_40 

◆ LinkType

Enumerator
X5 
X8 
R25 
R25_R8 

◆ LinkInputType

Enumerator
RightAngle 
Inline 

◆ LinkOutputType

Enumerator
RightAngle 
Inline 

◆ BracketType

Enumerator
X5LightLeft 
X5LightRight 
X5HeavyLeftInside 
X5HeavyLeftOutside 
X5HeavyRightInside 
X5HeavyRightOutside 
R8LightLeft 
R8LightRight 
R8HeavyLeftInside 
R8HeavyLeftOutside 
R8HeavyRightInside 
R8HeavyRightOutside 
R25LightLeft 
R25LightRight 
R25HeavyLeftInside 
R25HeavyLeftOutside 
R25HeavyRightInside 
R25HeavyRightOutside 

◆ EndEffectorType

Enumerator
Custom 
X5Parallel 
R8Parallel 

Function Documentation

◆ validateHRDF()

static bool hebi::robot_model::validateHRDF ( HebiRobotModelPtr  model)
static

◆ custom_objective_callback_wrapper()

template<size_t T>
void hebi::robot_model::custom_objective_callback_wrapper ( void *  user_data,
size_t  num_positions,
const double *  positions,
double *  errors 
)
inline

C-style callback wrapper to call into CustomObjective class; this should only be used by the CustomObjective class itself.

INTERNAL This is forward declared here so it can be used in the CustomObjective class below.

INTERNAL