Hi,
Our team is having trouble getting the default camera.cpp setup working with color images on the depth-ai-ros package. From what we can see, it appears that when the cameras are instantiated with CameraWrapper class in stereo.cpp, CameraWrapper will then instantiate a Mono or ColorCamera node based on the sensors defined in sensor_helpers.cpp.
The Oak-D-SR we purchased should have two OV9782 sensors installed and available which corresponds to a .color
value set to true in the availableSensors
struct. However, when we print out all available sockets and sensors, it appears the OAK-D-SR says it has the OV9282 sensor. Printout from the camera.launch.py with DEBUG set to true below.
Our team then overrided this configuration and forced the device to be set up as a color camera instead of Mono with a custom pipeline. The device successfully streams a color image with out custom pipeline indicating that this is not actually an OV9282 sensor on the camera. Obviously we would prefer not having to hack the depth-ai-ros package to be used in this manner in production. Is this due to a misconfiguration when flashing the device firmware at the factory or is there an additional configuration/parameter we need to set to enable streaming of stereo color images from the OAK-D-SR.
[depth_node-8] [1844301001975D1200] [1.4] [1.437] [system] [warning] PRINT:LeonCss: BootloaderConfig.options1 checksum doesn't match. Is: 0x10304418 should be: 0xF8135BD0
[depth_node-8] GPIO boot mode 0x3, interface SPI_MASTER_EFF
[depth_node-8] Setting aons(0..4) back to boot from flash (offset = 0)
[depth_node-8] ====ENABLE WATCHDOG====1
[depth_node-8] initial keepalive, countdown: 10
[depth_node-8] PLL0: 700000 AUX_IO0: 24000 AUX_IO1: 24000 MCFG: 24000 MECFG: 24000
[depth_node-8] Board init ret 3
[depth_node-8] DepthAI Firmware - version: f033fd9c7eb0b3578d12f90302e87759c78cfb36
[depth_node-8] eeprom configuration version: 55AA0007
[depth_node-8] Reading VERSION 7 --- ->
[depth_node-8] eeprom configuration load from user area, status: 0
[depth_node-8] Reading VERSION 7 --- ->
[depth_node-8] Found a device/board entry matching the eeprom data - Board: OAK-D SR (R0M0E0) Device: OAK-D-SR
[depth_node-8] Board options: 00000008
[depth_node-8] --> brdInit ...
[depth_node-8] brdInitAuxDevices: Error: SC = 27: io_initialize expander_cam_gpios_1 [OK]
[depth_node-8]
[depth_node-8] spi_N25Q_init: Flash JEDEC ID: 01 20 18
[depth_node-8] CR1NV: 0x02
[depth_node-8] CR2NV: 0x08
[depth_node-8] QUAD mode already enabled
[depth_node-8] Initialized pin: 59, mode: 7, level: 1, pad: 0x00000010
[depth_node-8] Initialized pin: 60, mode: 7, level: 0, pad: 0x00000010
[depth_node-8] Initialized pin: 61, mode: 7, level: 0, pad: 0x00000050
[depth_node-8] inited hal ---
[depth_node-8] def: 53 46 45 34 10 06 08 34 10 53 14 45 46 08 06
[depth_node-8] val: 28 29 50 30 10 06 08 30 10 28 14 50 29 08 06
[depth_node-8] Opening bus for IR driver: 1
[depth_node-8] Failed to probe IR driver LM3644
[depth_node-8] Opening bus for IR driver: 2
[depth_node-8] Failed to probe IR driver LM3644
[depth_node-8] Opening bus for IR driver: 3
[depth_node-8] Failed to probe IR driver LM3644
[depth_node-8] Closing EEPROm!
[depth_node-8] MyriaX board configuration
[depth_node-8] pll0 frequency: 700000, ref0 frequency: 24000
[depth_node-8] Is booted from flash by bootloader: 0
[depth_node-8] Networking not available...
[depth_node-8] === Enumerating on socket: Cam_A / RGB / Center
[depth_node-8] skipped OV7251
[depth_node-8] skipped AR0234
[depth_node-8] skipped S5K33D
[depth_node-8] initial keepalive, countdown: 9
[depth_node-8] skipped IMX296
[depth_node-8] skipped OV5645
[depth_node-8] === Enumerating on socket: Cam_B / Left
[depth_node-8] >> Registered camera TG161B (ov9282) as /dev/Camera_1
[depth_node-8] camera socket: 1, name: left
[depth_node-8] config - w: 1280, h: 720, type: MONO
[depth_node-8] config - w: 1280, h: 720, type: COLOR
[depth_node-8] config - w: 1280, h: 800, type: MONO
[depth_node-8] config - w: 1280, h: 800, type: COLOR
[depth_node-8] Adding socket 1: cam 5. Sen name: OV9282
[depth_node-8] === Enumerating on socket: Cam_C / Right
[depth_node-8] >> Registered camera TG161B (ov9282) as /dev/Camera_2
[depth_node-8] camera socket: 2, name: right
[depth_node-8] config - w: 1280, h: 720, type: MONO
[depth_node-8] config - w: 1280, h: 720, type: COLOR
[depth_node-8] config - w: 1280, h: 800, type: MONO
[depth_node-8] config - w: 1280, h: 800, type: COLOR
[depth_node-8] Adding socket 2: cam 5. Sen name: OV9282
[depth_node-8] Found a device/board entry matching the eeprom data - Board: OAK-D SR (R0M0E0) Device: OAK-D-SR
[depth_node-8] Initializing XLink...
[depth_node-8] UsbPumpVscAppI_Event: 5 VSC2_EVENT_ATTACH
[depth_node-8] UsbPumpVscAppI_Event: 4 VSC2_EVENT_RESET
[depth_node-8] UsbPumpVscAppI_Event: 4 VSC2_EVENT_RESET
[depth_node-8] UsbPumpVscAppI_Event: 0 VSC2_EVENT_INTERFACE_UP
[depth_node-8] Done!
[depth_node-8] Usb connection speed: Super - USB 3.0
[depth_node-8] [1844301001975D1200] [1.4] [1.448] [system] [warning] PRINT:LeonCss: Temperature: Driver registered.
[depth_node-8] Temperature: Initialized driver.
[depth_node-8] Temperature: Sensor opened: CSS.
[depth_node-8] Temperature: Sensor opened: MSS.
[depth_node-8] Temperature: Sensor opened: UPA.
[depth_node-8] Temperature: Sensor opened: DSS.
[depth_node-8] [1844301001975D1200] [1.4] [1.450] [system] [info] Memory Usage - DDR: 0.12 / 337.18 MiB, CMX: 2.04 / 2.50 MiB, LeonOS Heap: 7.51 / 80.03 MiB, LeonRT Heap: 2.89 / 41.06 MiB
[depth_node-8] [1844301001975D1200] [1.4] [1.450] [system] [info] Temperatures - Average: 36.24C, CSS: 37.94C, MSS 35.59C, UPA: 35.35C, DSS: 36.06C
[depth_node-8] [1844301001975D1200] [1.4] [1.450] [system] [info] Cpu Usage - LeonOS 61.40%, LeonRT: 1.30%
[depth_node-8] [1844301001975D1200] [1.4] [1.459] [system] [warning] PRINT:LeonCss: I: [Timesync] [ 4852664] [XLin] startSync:130 Timesync | Callback not set