@tkruse I would disagree, and add that ROS 1 is not suitable for most production software and safety-critical environments. This fact is not a secret among the community.
Here’s an incomplete list of the primary limitations I believe exist in ROS 1 WRT a production software product:
- Custom middleware that does not provide QoS settings, and lacks native shared memory communication
- Lack of real-time development principles, such as avoiding dynamic memory allocation at steady time, and avoiding indefinitely blocking calls
- Nodes are unmanaged; there isn’t a state machine / managed lifecycle
- Security exists, but mostly for Python which has it’s own challenges WRT production software
- Test coverage is good for an open source project, but the coverage is insufficient for safety-critical systems
- Documentation has room *for improvement, though I’ll agree the active community partly mitigates this
ROS 2 has a massive opportunity to become a critical component in production software, while also maintaining its high value in education, R&D, and hobby projects that we’ve seen with ROS 1.
So the question should not just be has any team migrated a full system from ROS1 to ROS2, but does any team even have a plan to do so?
Yes; companies that are creating software that run on production robots, or in safety-critical systems.
There are multiple automotive companies that have implemented autonomous vehicle algorithms as ROS 1 R&D projects, and it’s my opinion that they now have a need to port those implementations to a framework that is capable of operating in (or can be modified to operate in) safety-critical systems.
Edit: add a quote at the beginning; finish my thought on documentation