Skip to content

Interested in ROS2 wrapper code? #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
mjeronimo opened this issue Nov 13, 2019 · 4 comments
Open

Interested in ROS2 wrapper code? #1

mjeronimo opened this issue Nov 13, 2019 · 4 comments

Comments

@mjeronimo
Copy link

mjeronimo commented Nov 13, 2019

Davide, I am currently working on splitting out ROS2 BT-related code from the Navigation2 project into a separate repository. I noticed your BehaviorTree.ROS project and wondered if perhaps we should collaborate on this. I have wrappers for ROS2 services and actions as well as a few additional general purpose nodes. Several sample programs are included as well. If you're interested, please take a look and let me know what you think: https://github.com/mjeronimo/ros2_behavior_tree. I'm looking for a place to host this code as well as it won't be under navigation. Also, I plan to use the repo to facilitate BT-based integration of navigation, grasping, and other capabilities.

@facontidavide
Copy link
Collaborator

Yes, I would love to collaborate. I will have a look

@mjeronimo
Copy link
Author

Great. There are just placeholders for docs so far. I wanted to get your input first before investing the time on elaborating the docs. I'm currently working on unit tests for the nodes. The sample programs are complete.

@peterpolidoro
Copy link

Thank you both for such awesome libraries! I am excited to use BehaviorTree.cpp with ROS 2 similar to Navigation 2 project. For years I have been trying to figure out a way to for scientists with little programming experience to be able to modify and run their experimental rigs built and programmed by engineers. I think your BehaviorTree XML files and GUI to modify them could be perfect for that.

I have been looking through the code on both and I am still trying to understand the proper way to combine BehaviorTree.cpp with ROS 2. Is there any more documentation or examples you can link to give a high level description of how BehaviorTree ports should get mapped to ROS 2 topics and services? Is the BehaviorTree interface the same as the RobMoSys interface? Perhaps I need to understand an even more general issue of how to best convert between a RobMoSys interface and a ROS interface. I want to know how best to write my ROS code so that it always works properly with your BehaviorTrees and maybe any RobMoSys models in general.

Once I understand more I am happy to help add to your documentation and examples or whatever would be useful for you. Thanks!

@mjeronimo
Copy link
Author

@peterpolidoro That's great. I think Behavior Trees are an excellent way to achieve the separation you're looking for. I have split out the ROS2-specific Behavior Tree code from the Navigation2 repository here into this repo: https://github.com/mjeronimo/ros2_behavior_tree (the result has no navigation-related code). So far, I have provided several examples of how to use ROS2 Behavior Trees. Please have a look and let me know what you think. The library still needs some documentation, which I can do in the coming weeks. There are template classes for easily integration ROS2 service and action clients. We could continue to add ROS2-specific features to the library to integrate more functionality. For example, I intend to use the BT functionality for system bring-up and shutdown as well (lifecycle management).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants