osrf / ovc

the Open Vision Computer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A question about IMU in OVC5

aliamini87 opened this issue · comments

Hi
What would be the recommended method to attach an IMU to this board? Before this version, your designs usually includes some IMU integration. But in OVC5 it's unclear.
Another question:
Is the OVC5 in early stages or near to finish?
Thanks.

Hello!

OVC5 was more designed for camera usage and indeed lacks the usual "integrated IMU" feature that OVC1-3 had. We have a few I2C connectors that can be used to integrate external peripherals, the embedded linux comes preconfigured with I2C drivers for them.
The connectors follow the QWIIC pinout so you can buy any peripherals that follow it and attach it (i.e. this).
OVC5 is pretty much completed and was fabricated and tested.

So in OVC5 i2c port is attached to embedded linux part and not directly to the FPGA.
So if I need a good synchronization between imu and cameras your recommendation will be OVC3?
It was wonderful if OVC5 has some serial interface for some sensors directly to the FPGA.

Yea I think for out of the box hardware synchronization I'd recommend OVC3. The extra I2C ports are actually implemented in FPGA and the embedded Linux has drivers to use them but they could theoretically be used straight in FPGA, still with no hardware trigger pin the only synchronization could be a software one.
Theoretically it should be quite straightforward to change the layout of OVC5 and just add a cheap IMU the same way OVC3 has one, even reusing the exact same if you want to reuse different parts of the code, I'd say the main deciding factor is whether you want something that just works out of the box in a predefined configuration for stereo global shutter (OVC3) or something fully customizable that is a bit more bulky but can have arbitrary sets of imagers (OVC5).

Thanks a lot for the detailed answer.
Actually I prefer the customizability of the OVC5 but synchronization between camera and imu is another key factor for me. In addition, I want to add some third party IMUs to this system and synchronize them with cameras. In this scenario, which platform do you suggest? If OVC5 is your answer, what level of experience is necessary to modify the OVC5 for this purpose?
Thanks a lot in advance?

If you want OVC5 you can go two ways:

  • Customize the carrier board to have an integrated IMU, this requires a bit of hardware design but shouldn't be too hard, but it still doesn't address the core issue of external synchronized IMUs.
  • Create your own module and customize the FPGA design would be my recommended approach. You could create a small PCB that has the same FFC connector as the 6 camera connectors (based on the Picam V2 pinout) and have your own custom pinout for IMUs or extension boards, I would recommend keeping 3.3V power and ground on the same pins but everything else can be pretty much your own, then you need to work at the BSP level to change the pins from "camera pins" to "I2C, SPI, UART, or whatever your IMU needs". Then you will lose one camera but you have to do much less hardware design.

I'd say you would need basic experience in PCB design to design a small module that can be connected to the OVC5 that mounts your IMU (you can take the PI cam v2 schematic as an inspiration) and a bit more advanced experience in Zynq systems and the Xilinx workflow to customize the BSP, adding the needed interface (i.e. SPI / UART for the IMUs that we integrated in OVC3) and writing the driver.

Thanks a lot. I'll try to examine this.