RobotSettings

Contains information on the robots geometry, spatial position relative to cameras and its communication interface.

One physical robot may be described by multiple robot objects. For example, multiple robot objects can be created to represent different grippers.

Member Variables

id

std::string, default: \{""\} JSON Type: string +Requirement: Must be unique and not empty. Identifier for the recording object.

poseInterpreter

std::shared_ptr< hdv::PoseInterpreter >, default: \{new hdv::QuaternionInterpreter\{hdv::TRANSLATION_UNIT::MILLIMETER, hdv::QUATERNION_TYPE::WXYZ\}\} JSON Type: (optional) poseInterpreter object This object defines how poses can be interfaced with the robot. The required fields of this object depend on the rotation type:* Quaternions: "type" - must be "QUATERNION" "quaternionType" "translationUnit" "labels" + * Axis Angle (Rodrigues Rotation): "type" - must be "RODRIGUES" "translationUnit" "labels" + * Euler Angles "type" - must be "EULER" "eulerType" "translationUnit" "rotationUnit" "labels" The individual fields must have the following values:* "translationUnit": must be one of ["MILLIMETER", "CENTIMETER", "METER"] + * "rotationUnit": must be one of ["RAD", "DEG"] + * "quaternionType": must be one of ["XYZW", "WXYZ"] + * "eulerType": must be one of the following: Proper Euler Angles (intrinsic): ["INT_ZXZ", "INT_ZYZ", "INT_YZY", "INT_YXY", "INT_XYX", "INT_XZX"] Kardan Euler Angles (intrinsic): ["INT_ZYX", "INT_ZXY", "INT_YZX", "INT_YXZ", "INT_XYZ", "INT_XZY"] Proper Euler Angles (extrinsic): ["EXT_ZXZ", "EXT_ZYZ", "EXT_YZY", "EXT_YXY", "EXT_XYX", "EXT_XZX"] Kardan Euler Angles (extrinsic): ["EXT_XYZ", "EXT_YXZ", "EXT_XZY", "EXT_ZXY", "EXT_ZYX", "EXT_YZX"] + * "labels": array of strings that matches the dimension of the pose (6 elements for Euler Angles and Axis Angle formulation, 7 elements for the Quaternion format). The format always follows [tx, ty, tz, r1, r2, r3, (r4)], i.e. first the translation components, then the rotation components. The rotation components order is defined by the rotation type.

worldUp

Eigen::Vector3f, default: \{Eigen::Vector3f::UnitZ()\} JSON Type: (optional) array +Requirement: Must have three elements. Direction of "up" in the robot base coordinate system. Used to compute the topmost objects.

urdfPath

std::filesystem::path, default: \{""\} JSON Type: string +Requirement: Must be a path to a regular file. File path to the urdf file associated with this robot.

baseFrame

std::string, default: \{""\} JSON Type: string +Requirement: Must be not empty. Name of the urdf base frame (i.e. base link in the urdf file).

moveFrame

std::string, default: \{""\} JSON Type: (optional) string +Requirement: Must be not empty. Name of the urdf move frame (i.e. move link in the urdf file).

tcpFrame

std::string, default: \{""\} JSON Type: (optional) string +Requirement: Must not empty. Name of the urdf tcp frame (i.e. tcp link in the urdf file).

gripTransform

EigenTf, default: \{Eigen::Matrix4f::Identity()\} JSON Type: (optional) array of array +Requirement: Must be a valid 4x4 transformation matrix. Transformation matrix that is applied to each computed grip position from the right (i.e. tcp frame to grip frame transform).

enableGripPointCorrection

bool, default: {false}

gripPointCorrection

GripPointCorrection, default: \{\}

cameraToRobot

std::unordered_map< std::string, EigenTf > JSON Type: (optional) dictionary +Requirement: Each value must be a valid 4x4 transformation matrix. Contains cameraId / hand-eye-transform pairs.

objectFilter

std::vector< std::string >, default: \{\} JSON Type: (optional) array of strings Contains names of all objects that should be grippable by the robot. Considers all objects if left empty or missing.

waypoints

std::vector< std::shared_ptr< WaypointSettingsBase > > JSON Type: (optional) array of WaypointSettingsBase objects Contains definitions of all waypoints associated with the robot.