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] Camera serial numbers for the left and right camera
# Serial numbers can be found on the camera body
camera_left_id = 231001324
camera_right_id = 231001327
...
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:
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.
show_gui: A flag indicating whether to stream the data to the GUI. Disabling this frees up some processing resources and can increase the frame rate slightly.
save_output: A flag indicating whether the output should be saved. If save_output is 1, the recording starts from the first frame. The following data will be saved in a time-stamped folder at location /home/nodar/nvme/hammerhead/images/(timestamp)
:
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:
publishimageip: The IP address of the subscriber to connect to for images. If left blank, then the publisher on the HDK binds. Generally, you should leave this blank unless you are trying to send images and point clouds to different network interfaces on the receiver machine.
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.
publishpointcloud_ip: The IP address of the subscriber to connect to for point clouds. If left blank, then the publisher on the HDK binds. Generally, you should leave this blank unless you are trying to send images and point clouds to different network interfaces on the receiver machine.
image_crop: The top fraction of the images (and hence point clouds) to crop (e.g. 1/2, 1/3, etc.) Note that cropping images generally leads to reduced network traffic.
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 7-top, there can be situations when the cameras are pointing towards the ground, as shown in Figure 7-bottom. This pitch angle is accounted for in the bar_pitch parameter. 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.