File format definitions
mission.yaml file format definition
Version 0
One node each for the “standard nodes”
velocity
,orientation,
depth
,altitude
andusbl
, as well as one nodeorigin
and one nodeimage
The standard nodes have the fields
format
,filepath
,filename
,timezone
(optional, default: utc),timeoffset
(optional, default: 0) andheadingoffset
(optional, default: 0).The node
origin
has the fieldslatitude
,longitude
,coordinate_reference_system
anddate
. The only supported coordinate reference system is wgs84. The date has to be indicated in the format YYYY/MM/DD.The node
image
contains the fieldsformat
,filepath
,camera1
,camera2
,camera3
(optional),timezone
andtimeoffset
.No field indicating the file format version.
Partial example:
#YAML 1.0
origin:
latitude: 26.674083
longitude: 127.868054
coordinate_reference_system: wgs84
date: 2017/08/17
velocity:
format: phins
filepath: nav/phins/
filename: 20170817_phins.txt
timezone: utc
timeoffset: 0.0
headingoffset: -45.0
usbl:
format: gaps
filepath: nav/gaps/
timezone: utc
timeoffset: 0.0
image:
format: acfr_standard
filepath: image/r20170817_022018_UG115_sesoko/i20170817_022018/
camera1: LC
camera2: RC
timezone: utc
timeoffset: 0.0
Version 1
Changes since verison 0:
Node
version
indicating the file format version (1).headingoffset
in the standard nodes is no longer supported. This is now indicated in vehicle.yamlThe standard nodes have 3 additional fields:
origin
(optional, default determined depending on type of node),std_factor
(optional, default: 0) andstd_offset
(optional, default: 0).origin
has to be the name of a node in the vehicle.yaml file. The coordinates in that node in the vehicle indicate where the device is located on the vehicleAdditional standard node
tide
The ndoe
usbl
has an optional fieldid
(orlabel
)The node
image
now has the fieldsformat
,timezone
,timeoffset
as well as a nodecameras
containing the list of cameras (maximum 3 cameras currently supported by auv_nav). Each item in the list ofcameras
has the fieldsname
,origin
(optional, default: same as thename
),type
,bit_depth
(currently unused) andpath
.origin
(resp. iforigin
is not indicated thenname
) indicates where the camera is located on the vehicle, and the name stated must exist as a node in the vehicle.yaml file.
Partial example:
version: 1 # Node version has been added
origin:
latitude: 22.8778145
longitude: 153.38397866666668
coordinate_reference_system: wgs84
date: 2018/11/19
velocity:
format: autosub
filepath: nav/
filename: M155.mat
timezone: utc
timeoffset: 0.0
std_factor: 0.001 # Field std_factor has been added
std_offset: 0.2 # Field std_offset has been added
# Field headingoffset has been removed
usbl:
format: gaps
filepath: nav/gaps/
timezone: 0
timeoffset: .0
id: 4 # Field id has been added
std_factor: 0.01
std_offset: 2.0
image:
format: seaxerocks_3
cameras: # Cameras are defined now as a list
- name: fore
type: bayer_rggb
bit_depth: 12
path: image/SeaXerocksData20181119_073812_laserCal/Xviii/Cam51707923
- name: aft
type: bayer_rggb
bit_depth: 12
path: image/SeaXerocksData20181119_073812_laserCal/Xviii/Cam51707925
- name: laser
type: grayscale
bit_depth: 12
path: image/SeaXerocksData20181119_073812_laserCal/LM165
timezone: 10
timeoffset: 0.0
Version 2
Changes since verison 1:
The camera nodes do not have a type or bit_depth node anymore, but they have an (optional) field records_laser
, which is set to true
for the laser observing camera. The type of filter and the bit depth are now stored in camera.yaml.
version: 2
image:
format: seaxerocks_3 # acfr_standard or seaxerocks_3
cameras:
- name: Cam51707923 # fore
path: image/SeaXeroxData20171123_095119/Xviii/Cam51707923
- name: Cam51707925 # aft
path: image/SeaXeroxData20171123_095119/Xviii/Cam51707925
- name: LM165
path: image/SeaXeroxData20171123_095119/LM165
records_laser: true
timezone: jst
timeoffset: 0.0
Version 3
Changes since version 2: Support for an arbitrary number of payloads was added. They need to be indicated under the nonde “payloads” and need be named the same as they are in the vehicle.yaml file. The path, file format (currently “generic_csv” is the only supported format), the column where the timestamp is indicated (in the csv), timezone (hours from GMT) and timeoffset (seconds from master clock) need to be indicated. Example:
version: 3
payloads:
chelsea_pah_plus:
path: payloads/chelsea_pah_plus_format_fixed_time_corrected_20221006.csv
format: generic_csv
columns: [{'name': 'corrected_timestamp', 'content':'eeeeeeeeee.fffuuu'}]
timezone: 0
timeoffset: 0
franatech_mets:
path: payloads/franatech_mets_time_corrected_20221006.csv
format: generic_csv
columns: [{'name': 'corrected_timestamp'}]
timezone: 0
timeoffset: 0
auv_nav computes the nav solutions at the timestamps in the file at the given path, prepend it to the data in each row and write the result to disk again as csv.
vehicle.yaml file format definition
Currently only file format version 2 is supported. For examples check the subfolders of auv_nav/default_yaml/.
Version 0
One node each for the “standard nodes”
origin
,usbl
,ins
,dvl
,depth
,chemical
(optional).One node for each of the cameras, named
camera1
,camera2
,camera3
(optional).Each of the standard and camera nodes has a fields
x_offset
,y_offset
andz_offset
, which references each item described by a node with respect to the origin of the vehicle. The x-axis is aligned with the forward direction of the vehicle, the y-axis points to the right-hand side and the z-axis points downwards with respect to the vehicle.Nodes do not contain information about orientation.
No field indicating the file format version.
Partial example:
origin:
x_offset: 0
y_offset: 0
z_offset: 0
camera1: # Cameras named camera1, camera2, camera3
x_offset: -0.05
y_offset: -0.3
z_offset: 0.18
Version 1
Changes since version 0:
x, y and z-offsets have been renamed
surge_m
,sway_m
andheave_m
.Nodes contain Euler angles
roll_deg
,pitch_deg
andyaw_deg
for determining the orienation of each item. The rotations are carried out in the following order: Roll about x-axis, pitch about y-axis, yaw abour z-axis.
Partial example:
origin:
surge_m: 0 # fomer x_offset
sway_m: 0 # fomer y_offset
heave_m: 0 # fomer z_offset
roll_deg: 0
pitch_deg: 0
yaw_deg: 0
camera1: # Cameras named camera1, camera2, camera3
surge_m: 0.262875
sway_m: 0.
heave_m: 0.5
roll_deg: 0
pitch_deg: 0
yaw_deg: 0
Version 2
Changes since version 1:
Camera nodes are named after the
name
given in mission.yaml instead of camera1, camera2, camera3. The maximum number of cameras currently supported is 3.
Partial example:
origin:
surge_m: 0
sway_m: 0
heave_m: 0
roll_deg: 0
pitch_deg: 0
yaw_deg: 0
cam61003146: # Cameras name corresponding to camera label in mission.yaml
surge_m: 1.484
sway_m: 0
heave_m: 0.327
roll_deg: 0
pitch_deg: -90
yaw_deg: 0
Version 3
Changes since version 2: Node “chemical” is no longer used. Instead a node “payloads” is used, which can have an arbitrary number of payloads in subnodes. Example:
version: 3
payloads:
chelsea_pah_plus:
surge_m: 1.820
sway_m: 0.245
heave_m: -0.385
roll_deg: 0
pitch_deg: 0
yaw_deg: 0
franatech_mets:
surge_m: 1.820
sway_m: 0.245
heave_m: -0.385
roll_deg: 0
pitch_deg: 0
yaw_deg: 0
The mission.yaml needs to have matching payload nodes.