voxl-camera-server can only run two cameras at a time
I've adapted voxl-cam-server to ROS2 and directly pass data into ROS messages instead the pipe architectures.
I am using the exact same API and function calls that you do in
To construct the perCameraInfo fields I use the
camera_defaults.cpp. I have gotten the program to work seamlessly with two cameras at once. i.e, stereo/hires, hires/tracking, tracking/stereo. However, when running all three I receive this error for the last camera initialized in the hal3 message callback, the first two work as expected.
voxl-camera-server ERROR: Error sending request 0, ErrorCode: -1 voxl-camera-server FATAL: Recieved Fatal error from camera: stereo Camera server will be stopped voxl-camera-server ERROR: Error sending request 1, ErrorCode: -1 voxl-camera-server FATAL: Recieved Fatal error from camera: stereo Camera server will be stopped voxl-camera-server ERROR: Error sending request 2, ErrorCode: -1
I am hoping someone could divulge some information about this specific error code, and what I can do in the configuration to change it. It seems like the camera module reports the camera ID's to be 0 (hires), 1 (tracking), 2 (stereo).
Of course, if you are interested in ROS2 code, I can share that too.
The main thing that I could think might be causing this in software is the start order of the cameras, they need to be started in the order of tracking->hires->stereo. Can you run the standard
voxl-camera-serversuccessfully? If not it may be a hardware issue.
I've tried tracking->hires->stereo, that does not work. How would it be hardware if each of the cameras can run fine on their own and any combination of the two work at the same time?