This might make some people cringe, but let’s face it – you have a lot of ROS1 code and you aren’t switching to ROS2 yet because you have to rewrite a LOT of nodes.
So I wrote a legacy interface that behaves like
rospy but speaks ROS2 behind the curtain. This is very different from a ROS1/ROS2 bridge in that you don’t need to run a ROS1 master at all.
The idea is to be able to take any ROS1 node, replace
import rospy2 as rospy
and BAM it should work on ROS2.
This is far from complete but here’s an initial effort with a test node.
Feedback and contributions welcome!
Before continuing with this, I’m also trying to gauge interest as to:
(0) How many people would actually use something like this, if it was more fully-fledged?
(1) What ROS1 features do you absolutely need that this doesn’t yet support?
(2) Is there strong interest in a C++ version of this? Minding of course that it might be much harder to build a C++ equivalent considering that I’ve hugely abused Python’s lack of strong typing to make this work.