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

Planner selector #2249

Merged

Conversation

pabloinigoblasco
Copy link
Contributor

@pabloinigoblasco pabloinigoblasco commented Mar 16, 2021


Basic Info

PR of the planner selector to be integrated in navigation2 main branch. With this BTNode we use a subscriber to enable the ability of selecting the current planner for the navigation.

Info
Ticket(s) this addresses 147
Primary OS tested on (Ubuntu 20.04)
Robotic platform tested on (ROS Rolling and Gazebo simulation turtlebot waffle)

Description of contribution in a few bullet points

Deeper discussion in issue 147, but the main features are:

  • reading from topics to select the planner
  • support for default planner (as static input port)
  • support to setting the name of the topic to support multiple planner selectors.

Description of documentation updates required from your changes

Documentation is planned to be added after the first revision of the PR.


Future work that may be required in bullet points

  • rclcpp::spin_some vs callback_groups

For Maintainers:

  • Check that any new parameters added are updated in navigation.ros.org
  • Check that any significant change is added to the migration guide
  • Check that any new functions have Doxygen added
  • Check that any new features have test coverage
  • Check that any new plugins is added to the plugins page

@SteveMacenski
Copy link
Member

@pabloinigoblasco please copy-paste an un-modified PR template and fill it in. There's checklists and items there important for my own sanity when reviewing PRs to make sure things don't drop through the cracks and that you're prompted about things you may have forgotten to do.

Though I do understand this is just a WIP first go

Copy link
Member

@SteveMacenski SteveMacenski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM from a high level, just some details to work out

@pabloinigoblasco
Copy link
Contributor Author

pabloinigoblasco commented Mar 17, 2021

I updated the PR description to fit the default PR template.
Note: I am about to do a new commit that implements the review points.

@pabloinigoblasco
Copy link
Contributor Author

What about this new version?

Copy link
Member

@SteveMacenski SteveMacenski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall LGTM, just a question for Sarthak and a test. Also the readme table update to include this new Bt node + the website update to include it I mention in above comments with an example.

Copy link
Member

@SteveMacenski SteveMacenski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - just missing complete docs. Following up in comment about readme, but also still missing the navigation.ros.org updates I also described. But no more changes to code required. For the website docs:

@pabloinigoblasco
Copy link
Contributor Author

pabloinigoblasco commented Mar 22, 2021

LGTM - just missing complete docs. Following up in comment about readme, but also still missing the navigation.ros.org updates I also described. But no more changes to code required. For the website docs:

I am with these last tasks. However, I have a weird feeling with this PlanerSelector node about its "category":

  • Is it an Nav2 action plugin?
  • Means "ActionNode" for the nav2 stack to inherit from BTActionNode?
  • or at least to be an action client? If so, it looks like this PlannerSelector node is not an "Action".

This PlannerSelector is located inside plugins/action, is that correct?

For all these documentation tasks I would need to know its category.

@pabloinigoblasco
Copy link
Contributor Author

LGTM - just missing complete docs. Following up in comment about readme, but also still missing the navigation.ros.org updates I also described. But no more changes to code required. For the website docs:

I did a pull request to the documentation respository:
ros-navigation/docs.nav2.org#152

@SteveMacenski
Copy link
Member

Is it an Nav2 action plugin?

Yes, it belongs in the BT - Action subsection in the navigation plugins list, since its an action plugin (deriving from the action plugin type). It is a Behavior Tree Action node, it has nothing to do with ROS actions.

Copy link
Member

@SteveMacenski SteveMacenski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SteveMacenski
Copy link
Member

@pabloinigoblasco pull in main or rebase in order to get CI building, its unhappy about some rclcpp changes a couple of weeks ago

Copy link
Contributor

@naiveHobo naiveHobo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a small naming issue, otherwise LGTM!

@pabloinigoblasco
Copy link
Contributor Author

@pabloinigoblasco pull in main or rebase in order to get CI building, its unhappy about some rclcpp changes a couple of weeks ago

I have to analyze this thoroughly. I just merged the "main branch" and I am getting erros on nav2_utils and some rclcpp Exceptions and not sure why.

I am working on that.

@naiveHobo
Copy link
Contributor

You're probably on an older version of ros2 master build, you'll have to update your local source ros2 repositories and build ros2 master again to get the latest changes. https://docs.ros.org/en/foxy/Installation/Maintaining-a-Source-Checkout.html#update-your-repositories

@pabloinigoblasco
Copy link
Contributor Author

pabloinigoblasco commented Mar 23, 2021

You're probably on an older version of ros2 master build, you'll have to update your local source ros2 repositories and build ros2 master again to get the latest changes. https://docs.ros.org/en/foxy/Installation/Maintaining-a-Source-Checkout.html#update-your-repositories

Thanks I will have a look to the link you say.

I was working on rolling not directly on the ros2 main branch. So, according to what you say, that should be the problem.

@SteveMacenski
Copy link
Member

Sweet! This is good to go once CI passes + your documentation PR is completed (just 1 more missing thing so that the page is reachable)

@SteveMacenski SteveMacenski merged commit ae09b37 into ros-navigation:main Mar 23, 2021
@SteveMacenski
Copy link
Member

@pabloinigoblasco thanks for this! The controller / goal checker should be just exactly equal to this with different names / topics!

ruffsl pushed a commit to ruffsl/navigation2 that referenced this pull request Jul 2, 2021
* planner selector proposal

* PR review changes: ros-navigation#2249

* minor, inline function in cpp file

* Third PR for planner selector: default input_topic, additional test and main class doxygen brief

* some more documentation on planner_selector

* adding planner selector to nav_tree_nodes.xml

* method namming convention in planner_selector
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

Successfully merging this pull request may close these issues.

None yet

3 participants