Skip to content

Records Object#

CARET provides trace data to user. The common format is a table per metric as shown below.

callback_start_timestamp callback_end_timestamp
0 0.1
1 1.1
2 2.1
... ...

This table is referred to calculate latency, period, and etc. (See Records Service). The most primitive format is a table per event which picked up by a corresponding tracepoint. Merging multiple event tables makes a new table for metrics. In addition to simple table merging, CARET defines classes which has originally defined merging method for latency calculation.

This sections describes the main APIs provided by the record object.

  • merge
  • merge_sequential
  • merge_sequential_for_addr_track
  • to_dataframe

merge#

merge

This is an inner join and outer join of general tables. In particular, it is used to join initialization-related trace data that can be bound by address only.

See also

merge_sequential#

merge_sequential

This is a chronological merge. It is especially used to merge sequential processing by threads.

CARET mainly performs this merging and calculates latency.

See also

merge_sequential_for_addr_track#

merge_sequential_for_addr_track

This merge is used when binding is done based on addresses and copying occurs in the middle of the process.

See also

Warning

This merge is slow and causes inconsistencies when nodes not using caret-rclcpp are published. As much as possible, trace points should be designed so that merge_sequential is sufficient.

to_dataframe#

Function to convert to a pandas.DataFrame. This is especially useful for unique visualization and evaluation by developers.