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.