Isaac ROS Hawk Setup
Leopard Imaging’s Hawk camera is a popular choice of stereo camera for use with the Isaac ROS ecosystem of packages. This document details important setup instructions for configuring the Hawk camera with Isaac ROS.
Note
For best results, you must update the camera’s firmware.
Note
Hawk stereo cameras through Argus are only supported on Jetson platforms
Jetson Platforms
Camera Configuration
The Hawk camera must be connected to your Jetson via a GMSL expansion board. For example, if working with AGX Orin, see the Leopard board. Contact your hardware vendor for assistance.
IMU Configuration
To achieve the target sensor update frequencies for the Hawk’s built-in IMU, you must set certain registers on the Jetson device appropriately:
Identify the GPIO pins used for connecting the accelerometer and gyroscope to your Jetson. The specific correspondence between physical pin and pin number can be found using the pinmux table for your specific Jetson device.
Identify the corresponding register address block for those GPIO pins, based on the corresponding pad controller. The technical reference manual for your specific Jetson device can be found at Jetson download site.
For example, on a Jetson AGX Orin-series device, GPIO pins 8 and 9 in the Always On Hypervisor (AO_HV) group are located under
PADCTL_A15
, with memory block starting at0x0c303000
.Within the technical reference manual, find the detailed explanation of the pad controller to GPIO offset addresses. Identify the specific offset address to index into the relevant pins.
Continuing the previous example, the two pins referenced above have offsets of
0x00
off of the0x0c303000
base address. Because the pins in this example are at indices 8 and 9, they have a further offset of8 * 8 = 64 = 0x40
and8 * 9 = 72 = 0x48
, respectively.Within the technical reference manual, find the detailed explanation of the GPIO registers. Identify the specific bit indices for setting the pullup/pulldown state to pullup. Write a pair of bytes to the previously-determined address, setting the appropriate bit while preserving the values of the other bits. This can be accomplished using
devmem2
or a similar tool.Finishing the example, if the current register settings for pin 8 are
0xC058
but the lower 4 bits must be set to0b0000
to set the pullup state, the correct command would be:sudo devmem2 0x0c303040 w 0xC050
Correspondingly, if the current register settings for pin 9 are
0xD054
, setting the lower 4 bits to0b0000
is accomplished with the following command:sudo devmem2 0x0c303048 w 0xD050