I have been looking at various options to obtain synchronized images from three or more cameras.
The options available for the TX2 are just simply out of my price range.
I accept that of course I will have some sort of delay since I am using a non-professional solution for this. So I am trying to come up with the best way to minimize this delay. Hopefully below 10ms.
Side note: I am also exploring getting a freelance engineer to design an FGPA and getting it printed.
For the time being I have several STM32 Blue-pill MCU's. My target camera is the ArduCAM Mini 5MP Plus.
This module uses SPI to interface an MCU with the image buffers, in single and burst reads.
Note: in the application note linked above they diagram a multi-camera setup, and an external hardware trigger.
My initial thoughts are as follows:
- Connect each camera module to a separate BluePill
- Synchronize the BluePills' clocks
- Have each BluePill burst read from the camera using SPI1 then place the buffer onto the SPI2 bus in slave mode
- this is where I get lost I need to somehow "stitch" the frames together either using a different MCU or the TX2 itself.
The reason for doing this is pretty clear. A well synchronized camera array starts at $600!
My use case for the cameras is a PoC of an autonomous go-kart for learning purposes. I currently have the following already working:
- 2D object detection and localization using YOLOv3 and pytorch
- 2D to 3D object localization from disparity maps generated by ConvNets using pytorch
- All my tests have been with benchmark datasets and images downloaded from google image searches
I think the next logical step is to put some cameras on the go-kart and start taking sample images to see how this'll all work in the real world.
Bonus question how is the hardware trigger actually used?