{
  "title": "foxglove.FrameTransform",
  "description": "A transform between two reference frames in 3D space. The transform defines the position and orientation of a child frame within a parent frame. Translation moves the origin of the child frame relative to the parent origin. The rotation changes the orientation of the child frame around its origin.\n\nExamples:\n\n- With translation (x=1, y=0, z=0) and identity rotation (x=0, y=0, z=0, w=1), a point at (x=0, y=0, z=0) in the child frame maps to (x=1, y=0, z=0) in the parent frame.\n\n- With translation (x=1, y=2, z=0) and a 90-degree rotation around the z-axis (x=0, y=0, z=0.707, w=0.707), a point at (x=1, y=0, z=0) in the child frame maps to (x=-1, y=3, z=0) in the parent frame.",
  "$comment": "Generated by https://github.com/foxglove/foxglove-sdk",
  "type": "object",
  "properties": {
    "timestamp": {
      "type": "object",
      "title": "time",
      "properties": {
        "sec": {
          "type": "integer",
          "minimum": 0
        },
        "nsec": {
          "type": "integer",
          "minimum": 0,
          "maximum": 999999999
        }
      },
      "description": "Timestamp of transform"
    },
    "parent_frame_id": {
      "type": "string",
      "description": "Name of the parent frame"
    },
    "child_frame_id": {
      "type": "string",
      "description": "Name of the child frame"
    },
    "translation": {
      "title": "foxglove.Vector3",
      "description": "Translation component of the transform, representing the position of the child frame's origin in the parent frame.",
      "type": "object",
      "properties": {
        "x": {
          "type": "number",
          "description": "x component"
        },
        "y": {
          "type": "number",
          "description": "y component"
        },
        "z": {
          "type": "number",
          "description": "z component"
        }
      },
      "required": [
        "x",
        "y",
        "z"
      ]
    },
    "rotation": {
      "title": "foxglove.Quaternion",
      "description": "Rotation component of the transform, representing the orientation of the child frame in the parent frame",
      "type": "object",
      "properties": {
        "x": {
          "type": "number",
          "description": "x value"
        },
        "y": {
          "type": "number",
          "description": "y value"
        },
        "z": {
          "type": "number",
          "description": "z value"
        },
        "w": {
          "type": "number",
          "description": "w value"
        }
      },
      "required": [
        "x",
        "y",
        "z",
        "w"
      ]
    }
  },
  "required": [
    "timestamp",
    "parent_frame_id",
    "child_frame_id",
    "translation",
    "rotation"
  ]
}
