I'm building a standalone ROS 2 app for an oak-4s PoE camera using a custom ROS workspace. That workspace contains:
- packages that run on the camera
- custom message packages sued for communication between the camera and the 'host'
- host-side ROS packages that also depend on those same custom messages
The camera app is packaged as an OAK app, but the host has its own ROS packages that need to build against the same interfaces so both sides can communicate over the ROS network.
What is the recommended project layout for this kind of setup? Should the shared ROS workspace live inside of the OAK app directory, or should the workspace live outside the app with the app referencing only what is needed? If the workspace is outside the app directory, what is the intended way to include the required packages?
P.S. In this setup, the camera is doing the actual video processing and inference on-device, then publishing the resulting data to the host. I chose ROS for host-device communication instead of a direct DepthAI host-to-device connection because I expect to support multiple cameras, and ROS seemed like the simpler architecture for that. If that assumption is wrong and the recommended approach is to use the direct host-to-device path instead, I’d appreciate clarification.