Hi @RoyAzriel ,
Running voxl-inspect-cam -a puts significant stress on VOXL2 as all possible camera streams are generated and sent out to the voxl-inspect-cam application. With a small number of camera or low resolutions this can work fine, but in C29 config, this is not a sustainable test. There are quite a few very large images (4056x3040) per hires camera that are being sent uncompressed, causing a lot of cpu stress.
A better test would be to first run voxl-list-pipes to see which camera pipes are available and then run voxl-inspect-cam with arguments explicitly listing the camera streams to inspect -- ideally choosing one stream per camera.
example : voxl-inspect-cam tracking_front tracking_down hires_front_misp_color etc.
So to answer your question regarding "I wonder how it works well when you ship out C29 from the factory" -- we do not use voxl-inspect-cam -a for testing for the exact reason i described. Single stream per camera verification (can be simultaneous for all cameras) is sufficient to test the camera pipeline.
When voxl-inspect-cam was originally developed, we did not have as many cameras connected and the test worked fine, but started hitting system limits as the number of connected cameras (and their resolution) increased. In reality, you would never have to ship such large images across processes -- there is a better mechanism for sharing large buffers between processes (ION buffer) which avoids sending huge amounts of data over the linux pipes. ION buffer sharing is supported on voxl2 but that is outside of the context of this discussion, i believe 🙂
The rotation of the PMD sensor is done in software (camera server config, look for the rotation param) and it is done to match the actual rotation of the sensor in the camera mount. You can disable rotation in the camera server config.
Alex