I teach an undergraduate robotics course using ROS. I need to buy equipment for next fall and this is forcing a decision on whether to move from ROS to ROS2. In the past, all of the student work has been completed in Python, since our students either have some experience with it or can pick it up more quickly than C++.
My question is whether the Python libraries for ROS2 are actually ready to use. Are there any examples of a moderately complex ROS2 project coded primarily in Python? I’m guessing no, since it looks like Python tf2 support only appeared in Eloquent, and even now it seems quite incomplete/undocumented.
Any pointers to projects, or insight on the prospects for ROS2 Python would be appreciated.
I would definetly go for ROS2. I’m currently working on a mobile robotic project and are using ROS2, it works great. I have asked the same question when in contact with people who knows more about this than me, and they all replied that I should go for ROS2.
As I see it ROS1, is coming to the end but I must emphasize that I am not near to be an expert in these questions. Good luck
Thanks for the feedback! To clarify… Is your project Python-based?
Yes all my packages are written in python3 and based on the examples in:
1 Like
We’ve been bleeding with the python side of the architecture since ROS ardent and happy to say that in eloquent, my earlier hacks are gone and most of the limitations overcome. Dashing was almost there, but some issues were still getting in the way (e.g. unbuffered stdout printing was a pain point, actions still had some rough edges and tf2 support was absent).
The PyTrees 2.0 framework has a great deal of python code and exemplar mock robots that make use of topics, services, actions, dynamic parameters, launchers and tf2. Good examples of all of that can be found in the py_trees_ros_tutorials (w/ docs). This has all occurred in parallel with the development of an actual mobile robot at TRI which really has come together with eloquent.
1 Like