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

Move the monolithic move_base action out of mbf_abstract_nav #16

Closed
corot opened this issue Nov 28, 2017 · 7 comments
Closed

Move the monolithic move_base action out of mbf_abstract_nav #16

corot opened this issue Nov 28, 2017 · 7 comments

Comments

@corot
Copy link
Collaborator

corot commented Nov 28, 2017

It's obviously anything but "abstract". Most simple change is to put it on mbf_costmap_2d_nav, but as @reinzor suggested, putting it in a separated node that calls the other actions would extend this feature to whatever navigation system we use, not only costmap-based navigation.

@reinzor
Copy link
Contributor

reinzor commented Nov 28, 2017

If this state machine code is going to be moved, I would suggest moving it to another node to keep the mbf_costmap_2d_nav server clean:

This way, the MoveBase action can be deprecated: https://github.com/magazino/move_base_flex/blob/advanced_naming/mbf_msgs/action/MoveBase.action

@corot
Copy link
Collaborator Author

corot commented Nov 28, 2017

mmm.... 🤔 I don't want to deprecate mbf_msgs/MoveBase action! The first idea behind MBF is to allow external executives to manage navigation, but we also want to overcome the limitations of current move_base, by providing a much more detailed MoveBase action.

A different thing is the move_base_msgs/MoveBase action provided by the move_base_legacy_relay.py scripts, that it's there to allow us to claim that MBF is fully backward-compatible with current move_base, and yes, is deprecated (though not clearly stated... will fix that in the wiki)

@reinzor
Copy link
Contributor

reinzor commented Nov 28, 2017

Ok. If I understand this correctly: you want to provide one action to move the base right? Why not make a separate node then (or even package) that exposes this functionality and calls the other actions of the server? This way, this node can be used for all servers and you make a clear separation between the server and the statemachine logic.

Basically this is transferring the statemachine logic (that is now in the astract server), to a separate node. In order to be backwards compatible and provide a richer move interface. This can then also be used as an example for others to implement there own statemachine.

@corot
Copy link
Collaborator Author

corot commented Nov 28, 2017

Very good idea!
Indeed, we must remake this action server to also implement #1 and #18. We are thinking now what to do exactly, probably a separated node as you propose.

@corot corot changed the title Shouldn't the monolithic move_base action implemented on mbf_costmap_2d_nav? Move the monolithic move_base action out of mbf_abstract_nav Nov 28, 2017
@corot
Copy link
Collaborator Author

corot commented Dec 22, 2017

🤔
I'm rethinking this a bit... why move_base action cannot be on the abstract server? Once renamed to something with less connotations as Navigate.action, or MoveTo.action, it makes perfect sense to provide this action server as part of any navigation framework, implemented by just calling the other actions.

@spuetz
Copy link
Member

spuetz commented Jul 3, 2018

I've divided the actions into separated classes with in the new structure I implemented for the mbf_abstract_nav, which goes along with the plugin concurrency issue #36. So #36 will solve this issue too, more or less.

@corot
Copy link
Collaborator Author

corot commented Aug 24, 2018

Right, this actions get implemented as a MoveBaseAction object, same way as Controller/Planner/RecoveryAction are. Not sure if it's the cleanest option... but makes sense to me, and so I'll let it as it is by now. @reinzor suggestion of a external node makes sense too, though, so I'll keep the idea in mind

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

No branches or pull requests

3 participants