Model-Prime fields
A defined set of fields, referred to as Model-Prime fields, support special functionality within the Model-Prime platform.
The following Model-Prime fields are created for your organization during onboarding and are populated by the metadata ingestion process:
Robolog ID
- The unique identifier for a set of data recorded by a robot as defined by the Model-Prime platform.Log Name
- The file path of the robolog stored in your ingest store.Ingested At
- The time of ingest of the robolog into the Model-Prime platform.Trace ID
- The AWS Trace ID used to track ingestion of a robolog.Robolog URI
- The URI of the robolog storage resource.Robolog Type
- The type indicator for a robolog, which can be one of the following:ROS1Bag
,ROS2Bag
,ROS2BagMCAP
,JSON
,GENERATED
, orUNKNOWN
.
Other Model-Prime fields can be associated with an organization's custom fields when they are created. By creating this association, the Model-Prime platform is able to support special functionality using your organization's fields.
In addition to the Model-Prime fields associated during onboarding, the following additional Model-Prime fields are available:
Robot ID
- A unique identifier for a robot or hardware instance.Storage ID
- The storage identifier describing the robolog write configuration.Robolog Format Version
- The format version for a set of data recorded by a robot.Software Version
- The software version running on the robot recording the data.Hardware Version
- The hardware version of the robot recording the data.Location ID
- A location identifier where the robot recorded the data.Compression Format
- The compression format used when recording data.Start Time
- The start time of the log or channel in UTC.Duration
- The duration of the log in numeric format.Message Count
- The number of messages in the robolog.
Organization fields
Your organization can create any number of custom metadata fields. Fields can have the following types:
BOOLEAN
DECIMAL
INTEGER
ONTOLOGY
TEXT
TIMESTAMP
DURATION
Field definition
Fields parsed during ingest require a definition
attribute, a jq filter used to find the field value. This definition is valid for parsing attributes from both JSON and YAML files.
ROS 1 Example
The field definitions are used to parse the .yaml output of rosbag info -y
.
- Start Time:
.start
- Message Type:
.types[].type
- Channel Name:
.topics[].topic
ROS 2 Examples
The field definitions are used to parse metadata.yaml
.
- Start Time:
.rosbag2_bagfile_information.starting_time.nanoseconds_since_epoch
- Message Count:
.rosbag2_bagfile_information.message_count
- Channel Name:
.rosbag2_bagfile_information.topics_with_message_count[].topic_metadata.name
Input format
Some fields require an input_format
specifier to inform the Model-Prime platform of the expected format and/or unit of measurement for that field during ingest. For instance, logs may have timestamp data formatted in Unix Epoch time.
Example ROS 1 timestamp:
start: 1687464426.789989
Example ROS 2 timestamp:
starting_time:
nanoseconds_since_epoch: 1636583623701239167
Supported specifiers are listed below:
Type TIMESTAMP:
RFC3339
(example:2023-10-12T19:28:19.123456Z
)EPOCH_SECONDS
(used by ROS 1, example:1697138899.123456
)EPOCH_NANOSECONDS
(used by ROS 2, example:1697138899123456000
)
Type DURATION:
SECONDS
(example:123.456789
)NANOSECONDS
(example:123456789000
)
Note:
- For type TIMESTAMP, a value in RFC3339 format is unambiguous and therefore always accepted even if the
input_format
is notRFC3339
.- For type TIMESTAMP,
RFC3339
is considered the default format if no format specifier is indicated. In this case, only a value in- RFC3339 format is accepted.
- For type DURATION, there is no default format and an
input_format
specifier is required.- For all other data types, no
input_format
is required.
Value conversion
When a value is converted according to its input_format
specifier, the Model-Prime platform persists the original raw value alongside the
converted value. You can access both values from the Model-Prime API using the GET /robologs/{id}/values
endpoint.
value
is the value which has been converted as follows, regardless of input_format
:
- RFC3339 for type TIMESTAMP
- Nanoseconds (as an integer) for type DURATION.
raw_value
is the datum in its original format. It will only be present if different from value
.
These properties are also available in the Analytics Platform as the SQL columns field_value
and raw_value
, respectively.
Creating and updating metadata fields
You can create and update custom metadata fields for your organization in the Field Configuration
page in the web UI.
Alternatively, fields can be created using the POST /fields
endpoint and can be updated using the PUT /fields/{id}
endpoint.
More details on using the API are included in the API documentation via the above links.