Stereo Sensor Coordinate Configuration File
Download Sample stereo_sensor_coordinate.ini
The stereo sensor coordinate configuration file (stereo_sensor_coordinate.ini) defines how the stereo sensor is oriented in the world frame.
A default version of this file ships encrypted with the executable in
.debpackages. The recommended way to generate one is to run the Ground Calibration routine (see Initial Calibration). The result is written to the directory passed via-c /path/to/config/, or to~/.config/nodar/configif-cis not specified.
# Defines how the stereo sensor is oriented in the world frame.
# Using zero rotation would still work for most parts of the Hammerhead pipeline.
meters_above_ground = 0
# The world axes are defined as
# - z-axis: parallel to the ground
# - y-axis: pointing into the ground, to the center of Earth.
# - x-axis: Usually to the right. It follows the right-hand rule.
# We specify the stereo sensor orientation by specifying the orientation of the left camera.
# The left camera axes are defined as OpenCV image axes with z-axis pointing into the monitor screen.
# Please provide a rotation that rotates the left camera axes to the world axes. For example, if the bar
# is tilted toward the ground, away from the horizon, then euler_x_deg should be positive.
euler_x_deg = 0
euler_y_deg = 0
euler_z_deg = 0
# The order of applying the angles. Currently supported values are "xyz" and "zyx".
order = xyz
# The IP of the source providing stereo sensor coordinates.
# If empty, then we do not listen for a source to provide the coordinates
source_ip =
# The sensor coordinates are always initialized with the aforementioned parameters.
# However, if there is a source publishing coordinate updates,
# then you also need to choose how to handle these values.
# Specifically, you need to choose one of the following blocking modes:
#
# never: Start with the initial params. Never block main to wait for updates, but if a change is received, use it.
# Don't use this if you are not confident in the choice of initial params above.
# first: Same as `never`, but wait for an initial set of params to start the main thread.
# You can/should use this if you are not confident in the choice of initial params above,
# and if you don't expect frequent coordinate updates
# always: Before getting the next frame, make sure that we have received a parameter update.
# If we haven't received an update, then block until we get one.
# Use this if you expect frequent updates. Note this if updates come slowly, then you are effectively
# throttling hammerhead main
source_blocking = first
Mounting Height
meters_above_ground: Height of the stereo sensor above the ground in meters.
World Coordinate System
The world axes are defined as:
- z-axis: parallel to the ground, pointing forward
- y-axis: pointing into the ground, toward the center of the Earth
- x-axis: to the right, following the right-hand rule
The left camera axes follow the OpenCV image convention.
Euler Angles
The rotation rotates the left camera axes to the world axes.
euler_x_deg: Rotation around the x-axis in degrees. If the bar is tilted toward the ground (away from the horizon), this value should be positive.
euler_y_deg: Rotation around the y-axis in degrees.
euler_z_deg: Rotation around the z-axis in degrees.
order: The order of applying the Euler angles. Supported values are xyz and zyx.
External Coordinate Source
source_ip: IP address of a source providing stereo sensor coordinate updates. Leave empty to disable.
source_blocking: Controls how coordinate updates from the external source are handled:
never: Start with the initial parameters. Never block to wait for updates, but use them if received. Only use this if you are confident in the initial parameters.first: Wait for an initial set of parameters before starting, then never block again. Use this if you are not confident in the initial parameters and don't expect frequent updates.always: Block before each frame until a coordinate update is received. Use this if you expect frequent updates. Note that slow updates will throttle Hammerhead.