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

Switch nav2_mppi_controller to modern CMake idioms. #4590

Conversation

clalancette
Copy link
Contributor


Basic Info

Info Please fill out this column
Ticket(s) this addresses Follow up to #4357
Primary OS tested on Ubuntu 24.04
Robotic platform tested on N/A
Does this PR contain AI generated software? No

Description of contribution in a few bullet points

Change nav2_mppi_controller to use modern CMake idioms:

  1. Use target_compile_options where useful.
  2. Change from ament_target_dependences() to target_link_libraries()
  3. Move the header files down one subdirectory, which is best practice since Humble.
  4. Export the CMake target so that downstream libraries can use it.
  5. Clean up the set of dependencies.

Description of documentation updates required from your changes

None needed.


Future work that may be required in bullet points

This is part of a larger series of PRs to switch Navigation2 to modern CMake idioms. There will be follow-up PRs converting more of the packages.

For Maintainers:

  • Check that any new parameters added are updated in docs.nav2.org
  • Check that any significant change is added to the migration guide
  • Check that any new features OR changes to existing behaviors are reflected in the tuning 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
  • If BT Node, Additionally: add to BT's XML index of nodes for groot, BT package's readme table, and BT library lists

@SteveMacenski SteveMacenski merged commit d64ff6b into ros-navigation:main Aug 2, 2024
9 of 10 checks passed
@SteveMacenski
Copy link
Member

Do you have a list you're working off of? Might be nice to track status in the ticket so we know what's done / coming

I really appreciate your work here. What are the compiling times down to now? MPPI and the behavior tree packages were two of the longest packages

@clalancette clalancette deleted the clalancette/main-nav2-mppi-controller branch August 2, 2024 18:50
@clalancette
Copy link
Contributor Author

Do you have a list you're working off of? Might be nice to track status in the ticket so we know what's done / coming

We are pretty far along. I'll put a comment in the other ticket, but the packages that are left are:

  • nav2_navfn_planner
  • nav2_planner
  • nav2_regulated_pure_pursuit_controller
  • nav2_rotation_shim_controller
  • nav2_rviz_plugins
  • nav2_system_tests
  • nav2_smoother
  • opennav_docking
  • nav2_waypoint_follower
  • nav2_smac_planner
  • nav2_graceful_controller
  • dwb_plugins
  • dwb_critics
  • dwb_core
  • costmap_queue

I really appreciate your work here. What are the compiling times down to now?

Right now, we are saving about 30 seconds from before my work. I expect to get a bit more than that, particular when we reach nav2_system_tests, but we'll see as we get there.

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.

2 participants