LibMultiSense is the library that allows users to tie in our cameras with their own C++ programs. Below is an outline of the minimum requirements to connect to a camera and stream images.
Please start by ensuring that your system's MTU is set to at least 7200. We usually set ours to 9000. Please also directly connect the camera to the computer's ethernet port while troubleshooting, avoiding any network switches. If this does not fix your issue, please see below.
You can find an example program that displays images is contained in MultiSenseTypes.hh at line 210. The minimum requirements to get image data are to:
- create a multisense channel object (line 348-351)
- Add an isolated callback, which is a function that runs anytime one of the images is returned from the camera (line 269)
- documentation of function found here
- The first argument is the callback function
- The second argument is a bitmask that identifies which image sources will trigger that callback function. Image sources are listed at line 116
- raw left and raw right are the same as luma left and luma right. Luma left and right should be preferred
- jpeg left, rgb left, and chroma right are not supported by our S-series cameras.
- The third argument is a pointer to arbitrary user data, typically to the instance of the object where the callback is defined
- Finally, start the data streams, which it seems you have done. In order to get your expected images, at minimum you must at start the streams that your callback subscribed to. (line 281)
The destructor should remove the isolated callback, stop the data streams, and destroy the camera object before the program ends.
Please also note that the mono image data is stored in the luma images. The chroma data must be combined with the luma data in order to create RGB images. Our ROS driver shows an example of combining the chroma and luma channels to make an RGB image here.