The Hammerhead Development Kit (HDK) offers several communication options enabling integration into diverse applications. Here, we outline three primary methods of interaction: ROS2, ZeroMQ, and the ZeroMQ/ROS2 Bridge. ZeroMQ is more efficient for data transmission, and we suggest using the ZeroMQ/ROS2 Bridge if you wish to connect to ROS2, as it optimizes bandwidth and data transfer.

1. Interaction Via ZeroMQ

Please refer below for the detailed documentation:

https://docs.nodarsensor.net/zmq/index.html

2. Interaction Via ROS2

Please refer below for the detailed documentation:

https://docs.nodarsensor.net/ros2/index.html

3. Interaction Via the ZeroMQ/ROS2 Bridge

If you want to use ROS2, but are experiencing high network latency or low throughput, then you should consider using the ZeroMQ/ROS2 Bridge. This layer acts a middleman, enabling images and point clouds to be sent over the network using ZeroMQ, and then reconstructed for ROS2 on the local machine. This circumvents possible network issues introduced by the ROS2 middleware.

An example demonstrating how to interact with the HDK using this mechanism is provided here for your convenience:

https://github.com/nodarhub/hammerhead_zmq_to_ros2_bridge

Note that if you want to use the bridge, then the communicationlib field in masterconfig.ini should be set to zmq.