Skip to content
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

Groot2 publisher connection requires tree instance and compile breakpoints #21

Open
panagelak opened this issue Jun 21, 2023 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@panagelak
Copy link

panagelak commented Jun 21, 2023

Is your feature request related to a problem? Please describe.

Hi we recently acquired the pro version and it is awesome!

but we were a little frustrated with live monitoring and the dependency of the publisher with a tree instance,
our use case utilizes an action server approach that sends different trees to the robot for execution,
causing groot2 to loose connection each time a new goal/tree is received and the publisher reset.

Furthermore the only time that you can connect now is after the tree instantiation, usually right after is the time to also run the tree unless you block it, so it is a race to connect and place your breakpoints.

Describe the solution you'd like

// now this is the only constructor
BT::Groot2Publisher publisher(tree, 5555);
// option to construct without tree
BT::Groot2Publisher publisher(5555);
publiser.setNewTree(tree);
publiser.clearTree();

About the breakpoints can you only place them at runtime in Groot2?

I think it would be a nice feature to be able to add them also in the XML (so the BT::Tree Leaf/Control Nodes must know them)
and have the option to run the tree with breakpoints or not.
I don't think that Groot2 monitoring should/could edit the xml breakpoints only add new ones at runtime.
Also in second there might not be a good way to do that with subehaviors unless you place them in the subehavior definitions and in the instances pass a parameter to use or not the breakpoints.

Additional context

PS : About the offline log replay ( is super useful ) , but Groot2 could not open .btlog files used by the BT::FileLogger2 only .db3 files from BT::SqliteLogger i manage to replay, is support for this coming soon?

Thanks a lot ,
Panagiotis Angelakis

@facontidavide
Copy link
Contributor

I understand your point of view, but changing tree frequently at runtime is not the recommended way to use BT.CPP.

Said that it is for sure possible to do better. I will consider an improvement of the Groot2 publisher.

About the breakpoints can you only place them at runtime in Groot2?
I think it would be a nice feature to be able to add them also in the XML

In am not sure about this. The idea is that your executor should be agnostic and don't know beforehand about Groot.

About compatibility with .btlog, latest version 0.9.0 should have that. If you have problems, let me have a sample file and I will try to fix the issue

@facontidavide facontidavide self-assigned this Jun 21, 2023
@facontidavide facontidavide added the enhancement New feature or request label Jun 21, 2023
@panagelak
Copy link
Author

yes no problem with 0.9.0 : )

about the breakpoints i agree but can be made hidden/optional to the user, perhaps if it is needed by many people an exception can be made.

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

No branches or pull requests

2 participants