The master configuration file (master_config.ini) is a simple text file used for configuring Hammerhead:
# NOTE: You must restart the app for changes to be reloaded
# [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
...
Note that if you want to change the configuration, then you must restart the Hammerhead application in order to get the changes to take effect. All of the options should have some comment to document their usage. A non-exhaustive list of the options that you can modify includes:
camera_source: Denotes the camera source. Can take the values 'lucid' or 'zmq://<ipv4>:<port>’.
cameraleftid, camerarightid: The ID’s of the cameras as printed on the labels on the camera bodies.
camera_gain: Camera gain in dB. A value of -1 will enable automatic gain. If the images seem either overexposed or dark, consider choosing a fixed value.
cameraexposureus: Camera exposure in microseconds. A value of -1 will enable automatic exposure. If the images seem either overexposed or dark, consider choosing a fixed value.
camera_mode: Camera resolution. Currently, full (2880x1860) and quarter (1440x930) resolutions are supported, represented by values 1 and 2, respectively. Operating at lower resolution yields a higher frame rate at the expense of lower ability to detect objects at long distances.
enable_external_ptp_grandmaster: A flag indicating whether external ptp master will be used. If selected, both cameras will synchronize the timestamps with the Orin.
communication_lib: A string indicating which communication library to use for interacting with Hammerhead. This value can be set to ros2, zmq, or left blank. If non-empty, the specified protocol will be used for controlling the cameras and publishing messages. A blank setting disables data communication.
publishimagetype : If you want to receive an image type using the communication library, then you would specify that here. At writing, you can choose from:
publishpointcloud_type: If you want to receive point clouds using the chosen communication library, then you would specify that here. At writing, you can choose from:
Note that full point clouds require significant network bandwidth and processing resources. If you do not need them, then disable this option. If your application seems laggy, then you should consider trying subsampled point clouds.
enable_grid_detect: Activates object detection and tracking, in bird’s eye view (BEV) i.e. in the X-Z plane or forward-lateral direction. The output is 2D bounding boxes in the BEV plane and are shown in the pointcloud. Note that the height depicted in the pointcloud is fixed, and can be tuned in the viewer. Enabling this flag will enable obstacle data publishing.
bar_pitch: While we recommend setting up the system parallel to the ground, shown in Figure 1 (version A), there can be situations when the cameras are pointing towards the ground, see Figure 1 (version B). The bar_pitch parameter accounts for this pitch angle. The units are in degrees.
obstacle_x_min, obstacle_x_max, obstacle_y_min, obstacle_y_max, obstacle_z_min, obstacle_z_max: This **limits the point cloud points positions to the specified volume for the obstacle tracker and BEV windows. The units are in meters.
NOTE - The last three parameters would work only if you opted for the Grid Detect module.
Figure 1. bar_pitch
parameter describes the tilt of the stereo camera with respect to the ground.
After modifying the configuration parameters according to your requirements, save the file and close the text editor. The updated parameters will take effect the next time the application is launched.