Messages - calibrations#

This package contains messages that are used to represent calibration data for sensors and actuators.

CameraExtrinsic#

This message holds a collection of homographies that describe the transformation of pixels from the camera frame to other reference frames. For example, the transformation from the camera frame to the ground plane frame, used to project detected colored segments onto the ground in front of the robot, is stored as the pair ("/ROBOT_NAME/base_footprint", Homography(...)).

pydantic model duckietown_messages.calibrations.camera_extrinsic.CameraExtrinsicCalibration#

Show JSON schema
{
   "title": "CameraExtrinsicCalibration",
   "type": "object",
   "properties": {
      "header": {
         "title": "Header",
         "description": "Auto-generated header",
         "allOf": [
            {
               "$ref": "#/definitions/Header"
            }
         ]
      },
      "homographies": {
         "title": "Homographies",
         "description": "Collection of known homography matrices for different target reference frames",
         "type": "object",
         "additionalProperties": {
            "$ref": "#/definitions/Homography"
         }
      }
   },
   "required": [
      "homographies"
   ],
   "definitions": {
      "Header": {
         "title": "Header",
         "type": "object",
         "properties": {
            "version": {
               "title": "Version",
               "description": "Version of the message this header is attached to",
               "default": "1.0",
               "pattern": "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$",
               "example": "0.1.3",
               "type": "string"
            },
            "frame": {
               "title": "Frame",
               "description": "Reference frame this data is captured in",
               "type": "string"
            },
            "txt": {
               "title": "Txt",
               "description": "Auxiliary data attached to the message",
               "type": "object"
            }
         }
      },
      "Homography": {
         "title": "Homography",
         "type": "object",
         "properties": {
            "header": {
               "title": "Header",
               "description": "Auto-generated header",
               "allOf": [
                  {
                     "$ref": "#/definitions/Header"
                  }
               ]
            },
            "data": {
               "title": "Data",
               "description": "Homography matrix (flattened)",
               "type": "array",
               "items": {
                  "type": "number"
               }
            }
         },
         "required": [
            "data"
         ]
      }
   }
}

Fields
field header: duckietown_messages.standard.header.Header [Optional]#

Auto-generated header

field homographies: Dict[str, duckietown_messages.geometry_2d.homography.Homography] [Required]#

Collection of known homography matrices for different target reference frames

classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) Model#

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

copy(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, update: Optional[DictStrAny] = None, deep: bool = False) Model#

Duplicate a model, optionally choose which fields to include, exclude and change.

Parameters
  • include – fields to include in new model

  • exclude – fields to exclude from new model, as with values this takes precedence over include

  • update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

  • deep – set to True to make a deep copy of the model

Returns

new model instance

dict(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny#

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

classmethod from_orm(obj: Any) Model#
classmethod from_rawdata(rd: dtps_http.structures.RawData) duckietown_messages.base.BaseMessage#
json(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, models_as_dict: bool = True, **dumps_kwargs: Any) unicode#

Generate a JSON representation of the model, include and exclude arguments as per dict().

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

classmethod parse_file(path: Union[str, pathlib.Path], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) Model#
classmethod parse_obj(obj: Any) Model#
classmethod parse_raw(b: Union[str, bytes], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) Model#
classmethod schema(by_alias: bool = True, ref_template: unicode = '#/definitions/{model}') DictStrAny#
classmethod schema_json(*, by_alias: bool = True, ref_template: unicode = '#/definitions/{model}', **dumps_kwargs: Any) unicode#
to_rawdata() dtps_http.structures.RawData#
classmethod update_forward_refs(**localns: Any) None#

Try to update ForwardRefs on fields based on this Model, globalns and localns.

classmethod validate(value: Any) Model#

CameraIntrinsic#

This message holds the intrinsic calibration parameters of a camera. These parameters are used to project 3D points onto the image plane and to undistort images.

pydantic model duckietown_messages.calibrations.camera_intrinsic.CameraIntrinsicCalibration#

Show JSON schema
{
   "title": "CameraIntrinsicCalibration",
   "type": "object",
   "properties": {
      "header": {
         "title": "Header",
         "description": "Auto-generated header",
         "allOf": [
            {
               "$ref": "#/definitions/Header"
            }
         ]
      },
      "K": {
         "title": "K",
         "description": "Intrinsic camera matrix (flattened)",
         "type": "array",
         "items": {}
      },
      "D": {
         "title": "D",
         "description": "Distortion coefficients",
         "type": "array",
         "items": {}
      },
      "P": {
         "title": "P",
         "description": "Projection matrix (flattened)",
         "type": "array",
         "items": {}
      },
      "R": {
         "title": "R",
         "description": "Rectification matrix (flattened)",
         "type": "array",
         "items": {}
      }
   },
   "required": [
      "K",
      "D",
      "P"
   ],
   "definitions": {
      "Header": {
         "title": "Header",
         "type": "object",
         "properties": {
            "version": {
               "title": "Version",
               "description": "Version of the message this header is attached to",
               "default": "1.0",
               "pattern": "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$",
               "example": "0.1.3",
               "type": "string"
            },
            "frame": {
               "title": "Frame",
               "description": "Reference frame this data is captured in",
               "type": "string"
            },
            "txt": {
               "title": "Txt",
               "description": "Auxiliary data attached to the message",
               "type": "object"
            }
         }
      }
   }
}

Fields
field header: duckietown_messages.standard.header.Header [Optional]#

Auto-generated header

field K: list [Required]#

Intrinsic camera matrix (flattened)

field D: list [Required]#

Distortion coefficients

field P: list [Required]#

Projection matrix (flattened)

field R: Optional[list] = None#

Rectification matrix (flattened)

classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) Model#

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

copy(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, update: Optional[DictStrAny] = None, deep: bool = False) Model#

Duplicate a model, optionally choose which fields to include, exclude and change.

Parameters
  • include – fields to include in new model

  • exclude – fields to exclude from new model, as with values this takes precedence over include

  • update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

  • deep – set to True to make a deep copy of the model

Returns

new model instance

dict(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny#

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

classmethod from_orm(obj: Any) Model#
classmethod from_rawdata(rd: dtps_http.structures.RawData) duckietown_messages.base.BaseMessage#
json(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, models_as_dict: bool = True, **dumps_kwargs: Any) unicode#

Generate a JSON representation of the model, include and exclude arguments as per dict().

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

classmethod parse_file(path: Union[str, pathlib.Path], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) Model#
classmethod parse_obj(obj: Any) Model#
classmethod parse_raw(b: Union[str, bytes], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) Model#
classmethod schema(by_alias: bool = True, ref_template: unicode = '#/definitions/{model}') DictStrAny#
classmethod schema_json(*, by_alias: bool = True, ref_template: unicode = '#/definitions/{model}', **dumps_kwargs: Any) unicode#
to_rawdata() dtps_http.structures.RawData#
classmethod update_forward_refs(**localns: Any) None#

Try to update ForwardRefs on fields based on this Model, globalns and localns.

classmethod validate(value: Any) Model#

DCMotor#

This message holds the calibration profile for a DC motor. A correction factor is applied to the PWM signal to account for the non-linear relationship between the PWM signal and the motor’s angular velocity. The calibration profile is stored as a list of (PWM, correction) pairs for various samples of PWM values. The correction factor is a multiplier that is applied to the PWM signal to obtain the corrected PWM signal.

pydantic model duckietown_messages.calibrations.dc_motor.DCMotorCalibration#

Show JSON schema
{
   "title": "DCMotorCalibration",
   "type": "object",
   "properties": {
      "header": {
         "title": "Header",
         "description": "Auto-generated header",
         "allOf": [
            {
               "$ref": "#/definitions/Header"
            }
         ]
      },
      "gain": {
         "title": "Gain",
         "description": "Gain of the motor as a list of pairs (commanded PWM, correction factor). Always apply the correction factor of the closest commanded PWM value.",
         "type": "array",
         "items": {
            "$ref": "#/definitions/Pair_float__float_"
         }
      }
   },
   "required": [
      "gain"
   ],
   "definitions": {
      "Header": {
         "title": "Header",
         "type": "object",
         "properties": {
            "version": {
               "title": "Version",
               "description": "Version of the message this header is attached to",
               "default": "1.0",
               "pattern": "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$",
               "example": "0.1.3",
               "type": "string"
            },
            "frame": {
               "title": "Frame",
               "description": "Reference frame this data is captured in",
               "type": "string"
            },
            "txt": {
               "title": "Txt",
               "description": "Auxiliary data attached to the message",
               "type": "object"
            }
         }
      },
      "Pair_float__float_": {
         "title": "Pair[float, float]",
         "description": "Abstract base class for generic types.\n\nA generic type is typically declared by inheriting from\nthis class parameterized with one or more type variables.\nFor example, a generic mapping type might be defined as::\n\n  class Mapping(Generic[KT, VT]):\n      def __getitem__(self, key: KT) -> VT:\n          ...\n      # Etc.\n\nThis class can then be used as follows::\n\n  def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:\n      try:\n          return mapping[key]\n      except KeyError:\n          return default",
         "type": "object",
         "properties": {
            "header": {
               "title": "Header",
               "description": "Auto-generated header",
               "allOf": [
                  {
                     "$ref": "#/definitions/Header"
                  }
               ]
            },
            "first": {
               "title": "First",
               "description": "First element of the pair",
               "type": "number"
            },
            "second": {
               "title": "Second",
               "description": "Second element of the pair",
               "type": "number"
            }
         },
         "required": [
            "first",
            "second"
         ]
      }
   }
}

Fields
field header: duckietown_messages.standard.header.Header [Optional]#

Auto-generated header

field gain: List[duckietown_messages.calibrations.dc_motor.Pair[float, float]] [Required]#

Gain of the motor as a list of pairs (commanded PWM, correction factor). Always apply the correction factor of the closest commanded PWM value.

classmethod construct(_fields_set: Optional[SetStr] = None, **values: Any) Model#

Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if Config.extra = ‘allow’ was set since it adds all passed values

copy(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, update: Optional[DictStrAny] = None, deep: bool = False) Model#

Duplicate a model, optionally choose which fields to include, exclude and change.

Parameters
  • include – fields to include in new model

  • exclude – fields to exclude from new model, as with values this takes precedence over include

  • update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data

  • deep – set to True to make a deep copy of the model

Returns

new model instance

dict(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False) DictStrAny#

Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.

classmethod from_orm(obj: Any) Model#
classmethod from_rawdata(rd: dtps_http.structures.RawData) duckietown_messages.base.BaseMessage#
json(*, include: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, exclude: Optional[Union[AbstractSetIntStr, MappingIntStrAny]] = None, by_alias: bool = False, skip_defaults: Optional[bool] = None, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False, encoder: Optional[Callable[[Any], Any]] = None, models_as_dict: bool = True, **dumps_kwargs: Any) unicode#

Generate a JSON representation of the model, include and exclude arguments as per dict().

encoder is an optional function to supply as default to json.dumps(), other arguments as per json.dumps().

classmethod parse_file(path: Union[str, pathlib.Path], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) Model#
classmethod parse_obj(obj: Any) Model#
classmethod parse_raw(b: Union[str, bytes], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) Model#
classmethod schema(by_alias: bool = True, ref_template: unicode = '#/definitions/{model}') DictStrAny#
classmethod schema_json(*, by_alias: bool = True, ref_template: unicode = '#/definitions/{model}', **dumps_kwargs: Any) unicode#
to_rawdata() dtps_http.structures.RawData#
classmethod update_forward_refs(**localns: Any) None#

Try to update ForwardRefs on fields based on this Model, globalns and localns.

classmethod validate(value: Any) Model#