Discussion on ROS to ROS2 transition plan

@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:

  1. Custom middleware that does not provide QoS settings, and lacks native shared memory communication
  2. Lack of real-time development principles, such as avoiding dynamic memory allocation at steady time, and avoiding indefinitely blocking calls
  3. Nodes are unmanaged; there isn’t a state machine / managed lifecycle
  4. Security exists, but mostly for Python which has it’s own challenges WRT production software
  5. Test coverage is good for an open source project, but the coverage is insufficient for safety-critical systems
  6. 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

1 Like