I’d like to understand the common deployment patterns for commercial ROS 2 software.
My background is in mobile/on-device AI. In the mobile ecosystem, binary distribution has fairly clear boundaries: an SDK vendor might provide an AAR for Android or an XCFramework for iOS, while keeping the underlying implementation proprietary.
As we move into robotics, the boundaries seem less standardized.
For example, consider an optimized AI inference runtime targeting Jetson or another Linux-based robotics platform. The core runtime is proprietary, but customers need to integrate it into an existing ROS 2 system.
One possible architecture is:
Proprietary inference runtime
|
+-- C/C++ API
|
+-- ROS 2 adapter
|
+-- node
+-- launch files
+-- configuration
The actual distribution could then happen through Debian packages, containers, prebuilt binaries, or potentially ROS packages themselves.
I’m curious how companies shipping production robotics systems approach this in practice.
Do you generally treat ROS 2 as the distribution boundary itself, or as an integration layer on top of independently packaged software?
And has the ROS ecosystem developed any common best practices around binary-only commercial components, versioning, dependency management, and deployment?
I’m particularly interested in experiences from people who have shipped ROS 2 software to customer robots rather than only deploying software internally.