Master Configuration File
The master configuration file (master_config.ini) is a simple text file used for configuring Hammerhead:
# NOTE: You must restart the app for these changes to be reloaded
# -------------------------------------------------------------------------
# Camera Source
# -------------------------------------------------------------------------
# [string] Specify camera source
# This can be either 'lucid' or 'zmq://<ipv4>:<port>'
# If empty we assume that you are using 'lucid'
# An example of a valid zmq camera source is 'zmq://127.0.0.1:5000'
camera_source = lucid
# [string] Specify width and height for zmq camera source
# This is only used if camera_source is set to zmq://<ipv4>:<port>
# This is not used if camera_source is set to lucid
zmq_camera_source_width = 2880
zmq_camera_source_height = 1860
# -------------------------------------------------------------------------
# Camera Settings
# -------------------------------------------------------------------------
# [string] Camera serial numbers specifying left and right camera
# Camera serial numbers can be found on the label attached to camera body
camera_left_id = 231001324
camera_right_id = 231001327
# [float] Camera gain in dB. A value of -1 denotes automatic
camera_gain = -1
# [float] Camera exposure in microsecs. A value of -1 denotes automatic
camera_exposure_us = -1
# [int] Camera Mode.
# The only currently supported options are
# camera_mode = 1 (full resolution)
# resolution : 2880 x 1860
# camera_mode = 2 (half resolution)
# resolution : 1440 x 930
camera_mode = 1
# -------------------------------------------------------------------------
# Stereo Matching
# -------------------------------------------------------------------------
# [int] Stereo matching subsampling strides
# This can be 1, 2, or 4
stereo_matching_row_stride = 1
stereo_matching_col_stride = 1
# -------------------------------------------------------------------------
# Synchronization
# -------------------------------------------------------------------------
# [bool] A flag indicating whether external ptp master will be used.
enable_external_ptp_grandmaster = 1
# -------------------------------------------------------------------------
# Communication
# -------------------------------------------------------------------------
# [string] Communication library used for interacting with Hammerhead.
# This can be empty or one of the following case-sensitive values:
# ros2, zmq
communication_lib = zmq
# [bool] A flag indicating whether to stop hammerhead after each frame is sent and wait for a scheduler reply to continue.
wait_for_scheduler = 0
# [uint_32] If wait_for_scheduler is enabled, this field denotes the number of milliseconds to wait before continuing.
# 0 denotes "wait indefinitely".
# 1000 denotes "wait 1 second". If no scheduler reply is received in that time, then continue as if a reply was received
wait_for_scheduler_timeout_ms = 1000
# [int]
# If you need it, you can publish an image type using the communication lib.
# This must be one of the following:
# 0: none
# 1: left raw image
# 2: right raw image
# 3: left rectified image
# 4: right rectified image
# 5: color blended depth image
# 6: raw topbot image (left is top-half of image, right is bottom-half)
# 7: rectified topbot image (left is top-half of image, right is bottom-half)
# If not needed, you should specify nothing to minimize system overhead
publish_image_type = 0
# [int] If you need it, you can publish point clouds. Due to bandwidth constraints,
# you may want to subsample this point cloud. You can choose one of the following options:
# 0 : Do not publish point cloud
# 1 : Publish the full point cloud (xyz with no rgb information)
# 2 : Publish the point cloud subsampled on 3x7 tiles.
# 3 : Publish the point cloud subsampled on 5x15 tiles.
# 4 : Publish the full point cloud with rgb information
# 5 : Publish the point cloud soup (from which you can reconstruct the point cloud. This minimizes network traffic)
# If not needed, you should specify 0 to minimize system overhead
publish_point_cloud_type = 0
# -------------------------------------------------------------------------
# Navigation
# -------------------------------------------------------------------------
# [string] Navigation publisher source.
# Specify the IP address of the navigation publisher (e.g., 127.0.0.1).
# Leave empty to disable navigation data.
navigation_publisher =
# -------------------------------------------------------------------------
# Camera Orientation
# -------------------------------------------------------------------------
# [float] Camera's pitch in degrees
bar_pitch = 0.0;
# -------------------------------------------------------------------------
# Grid Detect
# -------------------------------------------------------------------------
# [bool] A flag indicating whether GridDetect will be enabled.
# Enabling this flag will enable obstacle data publishing.
enable_grid_detect = 0
# [float] limits the point cloud points positions to the specified volume
obstacle_x_min = -15
obstacle_x_max = 15
obstacle_y_min = -3
obstacle_y_max = 3
obstacle_z_min = 0
obstacle_z_max = 100
# -------------------------------------------------------------------------
# Box Filter
# -------------------------------------------------------------------------
# [bool] If enabled, the box filter with trapezoidal shape will be applied to the point cloud
enable_box_filter = 0
# [float] r_max will only be used if enable_box_filter is set to 1 and may make the other {x,y,z}_max parameters obsolete (if chosen smaller than e.g. z_max)
r_max = 1000.0
# Min z of the pointcloud, z_min is determined by the camera FOV, yaw, the baseline and the mounting height of the camera (and pitch if the camera is not mounted horizontally)
# Limit z-range further with these parameters
# [float] Min z of the pointcloud in [m]
z_min = 5.0
# [float] Max z of the pointcloud in [m]
z_max = 500.0
# x-range is determined by the camera FOV and the yaw, you can limit it further with these parameters. Increase for wide angle cameras.
# [float] Min x of the pointcloud in [m] (negative x is to the left of the camera)
x_min = -100.0
# [float] Max x of the pointcloud in [m]
x_max = 100.0
# y-limits for the trapezoidal filter. The right side top and bottom y-coordinates of the trapezoidal filter are determined by the following equations:
# y_top_right = y_top - tan(slope_top_deg * PI/180) * z
# y_bottom_right = y_bottom - tan(slope_bottom_deg * PI/180) * z
# Note that the y-axis points towards the ground
# Bottom starting point of the box filter [m], should be >=y_top
y_bottom = 10.0
# Top starting point of the box filter [m], should be <=y_bottom
y_top = -10.0
# Box filter angles measured from the z-axis
# 90 degree means straight up, 0 deg means parallel to the z-axis, -90 degree means straight down
# Slope of the box filter starting from y_bottom in degrees, should be >=-90 and <=90
slope_bottom_deg = -0.0
# Slope of the box filter starting from y_top in degrees, should be >=-90 and <=90
slope_top_deg = 0.0
# -------------------------------------------------------------------------
# Quality Assurance
# -------------------------------------------------------------------------
# [bool] If enabled, quality assurance monitoring will be performed
enable_quality_assurance = 1
# [bool] If enabled, system monitoring will be performed
enable_system_monitor = 1
# [bool] If enabled, Hammerhead monitoring will be performed
enable_hammerhead_monitor = 1
# [bool] If enabled, image monitoring (exposure, blur) will be performed
enable_image_monitor = 0
# [bool] If enabled, quality assurance findings will be published
publish_qa_findings = 0
For more details on specific concepts, see: