Model Descriptors#

The rb::y1_model classes provide compile-time constants for the supported RB-Y1 model families. Use these descriptors as the template parameter for rb::Robot<T> and for any data structure that depends on model-specific DOF or joint ordering.

Header

Header

#include <rby1-sdk/model.h>

Declaration

Namespace

rb::y1_model

Kind

class family

Primary role

Expose compile-time robot constants such as DOF and subsystem index groups.

Public Types

Type

DOF

Main constants

Description

A

24

body, arms, head, and mobility index groups

Full mobile manipulator model descriptor.

M

20

body, arms, and head index groups

Non-mobility model descriptor.

UB

14

upper-body index groups

Upper-body-only model descriptor.

Detailed Reference

class A#

Represents the model description of Robot A.

This class represents the model description of Robot A, which serves as the base model.

Public Types

using DynRobotStateType = rb::dyn::State<kRobotDOF>#

Type definition for the dynamic robot state.

using DynRobotType = rb::dyn::Robot<kRobotDOF>#

Type definition for the dynamic robot.

Public Static Attributes

static std::array<unsigned int, 20> kBodyIdx = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}#

Indices for the main body components.

These indices cover all joints excluding the mobility and head components.

static double kControlPeriod = 0.002#

Control update period in seconds.

static std::array<unsigned int, 2> kHeadIdx = {22, 23}#

Indices for the head components.

static std::array<unsigned int, 7> kLeftArmIdx = {15, 16, 17, 18, 19, 20, 21}#

Indices for the left arm components.

static std::array<unsigned int, 2> kMobilityIdx = {0, 1}#

Indices for the mobility components (e.g., wheels).

These indices represent the parts of the robot responsible for mobility.

static std::string_view kModelName = "A"#

The model name.

static std::array<unsigned int, 7> kRightArmIdx = {8, 9, 10, 11, 12, 13, 14}#

Indices for the right arm components.

static size_t kRobotDOF = 24#

Total degrees of freedom for the robot.

static std::array<std::string_view, kRobotDOF> kRobotJointNames = {"right_wheel", "left_wheel", "torso_0", "torso_1", "torso_2", "torso_3", "torso_4", "torso_5", "right_arm_0", "right_arm_1", "right_arm_2", "right_arm_3", "right_arm_4", "right_arm_5", "right_arm_6", "left_arm_0", "left_arm_1", "left_arm_2", "left_arm_3", "left_arm_4", "left_arm_5", "left_arm_6", "head_0", "head_1"}#

Names of the robot joints.

This array contains the names of all joints in the robot, arranged in the order of their indices.

static std::array<unsigned int, 6> kTorsoIdx = {2, 3, 4, 5, 6, 7}#

Indices for the torso components.

static std::array<unsigned int, 20> kVelocityEstimationRequiredIdx = kBodyIdx#

Indices for joints requiring velocity estimation.

These indices include joints where velocity estimation is essential.

class M#

Represents the model description of Robot M.

This class represents the model description of Robot M, which is derived from the base model A. The M model includes mecanum wheel mobile base instead differential type mobile base.

Public Types

using DynRobotStateType = rb::dyn::State<kRobotDOF>#
using DynRobotType = rb::dyn::Robot<kRobotDOF>#

Public Static Attributes

static std::array<unsigned int, 20> kBodyIdx = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}#
static double kControlPeriod = 0.002#
static std::array<unsigned int, 2> kHeadIdx = {24, 25}#
static std::array<unsigned int, 7> kLeftArmIdx = {17, 18, 19, 20, 21, 22, 23}#
static std::array<unsigned int, 4> kMobilityIdx = {0, 1, 2, 3}#
static std::string_view kModelName = "M"#
static std::array<unsigned int, 7> kRightArmIdx = {10, 11, 12, 13, 14, 15, 16}#
static size_t kRobotDOF = 26#
static std::array<std::string_view, kRobotDOF> kRobotJointNames = {"wheel_fr", "wheel_fl", "wheel_rr", "wheel_rl", "torso_0", "torso_1", "torso_2", "torso_3", "torso_4", "torso_5", "right_arm_0", "right_arm_1", "right_arm_2", "right_arm_3", "right_arm_4", "right_arm_5", "right_arm_6", "left_arm_0", "left_arm_1", "left_arm_2", "left_arm_3", "left_arm_4", "left_arm_5", "left_arm_6", "head_0", "head_1"}#
static std::array<unsigned int, 6> kTorsoIdx = {4, 5, 6, 7, 8, 9}#
static std::array<unsigned int, 20> kVelocityEstimationRequiredIdx = kBodyIdx#
class UB#

Represents the model description of Robot UB.

Standard Upper Body

Public Types

using DynRobotStateType = rb::dyn::State<kRobotDOF>#
using DynRobotType = rb::dyn::Robot<kRobotDOF>#

Public Static Attributes

static std::array<unsigned int, 16> kBodyIdx = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}#
static double kControlPeriod = 0.002#
static std::array<unsigned int, 2> kHeadIdx = {16, 17}#
static std::array<unsigned int, 7> kLeftArmIdx = {9, 10, 11, 12, 13, 14, 15}#
static std::array<unsigned int, 0> kMobilityIdx = {}#
static std::string_view kModelName = "UB"#
static std::array<unsigned int, 7> kRightArmIdx = {2, 3, 4, 5, 6, 7, 8}#
static size_t kRobotDOF = 18#
static std::array<std::string_view, kRobotDOF> kRobotJointNames = {"torso_hp", "torso_5", "right_arm_0", "right_arm_1", "right_arm_2", "right_arm_3", "right_arm_4", "right_arm_5", "right_arm_6", "left_arm_0", "left_arm_1", "left_arm_2", "left_arm_3", "left_arm_4", "left_arm_5", "left_arm_6", "head_0", "head_1"}#
static std::array<unsigned int, 2> kTorsoIdx = {0, 1}#
static std::array<unsigned int, 16> kVelocityEstimationRequiredIdx = kBodyIdx#

Related Types

Examples

  • get_robot_state.cpp and demo_motion.cpp both depend on one of these descriptors at compile time.