-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[behavior_tree] Add generate_nav2_tree_nodes_xml #4073
[behavior_tree] Add generate_nav2_tree_nodes_xml #4073
Conversation
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
44a059a
to
a6bcb34
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI says there are linting errors: https://app.circleci.com/pipelines/github/ros-planning/navigation2/10851/workflows/b171820c-fed3-4296-b3c9-4eb591fb4b0d/jobs/34087/tests
nav2_system_tests/src/behavior_tree/test_behavior_tree_node.cpp
Outdated
Show resolved
Hide resolved
@@ -0,0 +1,47 @@ | |||
// Copyright (c) 2024 Davide Faconti |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume this is automatically executed on build? The quick look at configure_file
doesn't make me think i does, but I assume it does or else this workflow would add extra steps
I think this filename is misleading, its not generating the XML but just storing the index of default Nav2-included BT nodes. How about generate_nav2_node_list.cpp
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this filename is misleading, its not generating the XML
it is literally creating an XML with std::ofstream
... but I can change the name, of course.
I assume this is automatically executed on build?
No, it is not. The developer modifying a BT Node should run it and overwrite the previous XML with the new one.
But right now it is even worse, because we are asking to write the XML by hand and there is no guaranty of consistency (as a demonstration, right now it is WRONG in the main branch)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this workflow would add extra steps
That step ("double check if nav2_tree_node.xml is still valid") is there, but people just forget to do it.
This approach lowers the effort.
Maybe I can find a way to run it automatically, I don't know...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it is not. The developer modifying a BT Node should run it and overwrite the previous XML with the new one.
Oh, then this should be removed. You cannot expect the CI system or users to run some script just to get their systems working or unit tests compiling. This doesn't work for CI nor a reasonable developer workflow.
If this was autogenerated, then I love it! But it has to be executed somewhere.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, there is a misunderstanding from my side and maybe I answered something wrong
CI, user code and unit test will work just fine!!!
The file that is autogenerated is plugin_list.hpp
. That is everything you need.
What I am talking about is the file nav2_tree_node.xml , that only Groot2 requires.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh ok. So this does generate the index that the plugins_list
needs for the BT test + BT navigator. Cool then this works.
Now you got confused by this utility's name 😉 Rename suggestion to generate_nav2_node_list.cpp
FTW
To put in perspective, I think you might want to have a look at the autogenerated file |
But is this not the one groot wants? If not, then I don't really care how similar they are (just a purely pragmatist's standpoint) |
yes, it is the file needed by Groot. This will always be correct, unlike the one that people edit by hand |
Got it. Perhaps in a follow up PR, there is a way to have the source file update when compiled as well or as a CI job? Not required, but would round it off. I was thinking also potentially having a "No" is fine too. Just making the test / BT Navigator list update automatically is still an improvement |
It is a good idea and should be quite easy to implement. I will see if I can add it to this PR |
Any update :-) |
You tell me :) The idea of adding verification to CI is nice, but with your permission, I prefer to keep it for a future PR. What do you think is missing, to merge this one? |
I was waiting on this. Yes, it can be a follow up PR.
Yes, but also update the BT Navigator's default BT plugins to use this like you do for the unit test. Will this all work when we distribute as binaries? I haven't used |
yes, it will, the string with the list of plugins is compiled into the code. Cmake will generate a header file and this header file is used when compiling the binary. |
Please point to me where. I believe you, I just need to maintain this so I need to understand what's going on. I don't see where its compiled as part of these changes. Where does that string |
Let me explain 😄 So, CMAKE is aware of the list of plugins... because it is the one responsible for compiling them! Also, conveniently, we have a list of plugins names in the variable https://github.com/ros-planning/navigation2/blob/main/nav2_behavior_tree/CMakeLists.txt#L219 We want to avoid repeating ourselves, by copying this string from CMake to C++ at compilation. A potential solution could be to pass it as a definition with target_compile_definitions. Another solution is the one presented here. In this case, we want to autogenerate a header file, containing an harcoded string that should be exactly the same as Our template file contain this code: namespace nav2::details
{
const char* BT_PLUGIN_LIST = "@plugin_libs@";
}
This is the code generated by CMake: Now, we can include this file as a regular header file! Every time a new plugin is added to CMakeLists.txt (and the variable This is more maintanable than the code in Since all this happens before compilation (header generation) and later at compilation time, there is no problem with distributing only the binaries. I hope I helped you understand. |
Thank you, sorry to make you spell it out - I was thinking you were fully setting up these library paths, not leveraging what we already have setup in Nav2. I scoured your changes so many times looking for something subtle I missed I assumed something must be going on in the BT.CPP side that required your knowledge 😆 This is sensible for defaults, but a real pain in the butt for users that need to add in their own BT.CPP nodes. So I suggest the following action:
You have some linting issues: https://app.circleci.com/pipelines/github/ros-planning/navigation2/10851/workflows/b171820c-fed3-4296-b3c9-4eb591fb4b0d/jobs/34087/tests. Fix linting + add that widget into the BT Navigator and we can merge! If you also pull in |
Correct. This is not mutually exclusive with user's plugins, as you said. I can change the name of the variable to a more verbose BT_BUILTIN_PLUGIN_LIST |
Sure, a new name would work, but please do the additional changes so that this is a complete solution. |
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Check the latest commit. I believe this is what you suggested |
This pull request is in conflict. Could you fix it @facontidavide? |
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
A ton of tests are failing: https://app.circleci.com/pipelines/github/ros-planning/navigation2/11003/workflows/a78174e2-dd8f-4547-b3b9-dc7f1b9843aa/jobs/34506/tests I suspect it has to do with TODO STEVE
|
damn! let me investigate |
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #4073 +/- ##
==========================================
- Coverage 90.30% 90.22% -0.09%
==========================================
Files 431 432 +1
Lines 19394 19406 +12
==========================================
- Hits 17514 17509 -5
- Misses 1880 1897 +17 ☔ View full report in Codecov by Sentry. |
I updated the docs, that fix and we can merge |
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
* Add generate_nav2_tree_nodes_xml Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * behavior_tree: removed list of plugins from yaml Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * check result of get_parameter(plugin_lib_names) Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix previous commit (uncrustify) Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * revert change Signed-off-by: Davide Faconti <davide.faconti@gmail.com> --------- Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
* Add generate_nav2_tree_nodes_xml Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * behavior_tree: removed list of plugins from yaml Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * check result of get_parameter(plugin_lib_names) Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix previous commit (uncrustify) Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * revert change Signed-off-by: Davide Faconti <davide.faconti@gmail.com> --------- Signed-off-by: Davide Faconti <davide.faconti@gmail.com> Signed-off-by: stevedan <stevedan.o.omodolor@gmail.com>
Signed-off-by: stevedan <stevedan.o.omodolor@gmail.com> New MPPI Cost Critic (Contrib: Brice Renaudeau) (ros-navigation#4090) * Share code Signed-off-by: Brice <brice.renaudeau@gmail.com> * Update inflation_cost_critic.hpp - copyright - ifndef Signed-off-by: Brice <brice.renaudeau@gmail.com> * fix lint cpp - extra space Signed-off-by: Brice <brice.renaudeau@gmail.com> * Fix Smac Planner confined collision checker (ros-navigation#4055) * Update collision_checker.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Fix tests Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update test_a_star.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Brice <brice.renaudeau@gmail.com> * Prevent analytic expansions from shortcutting Smac Planner feasible paths (ros-navigation#3962) * a potential solution to smac shortcutting * costmap reoslution * some fixes * completed prototype * some fixes for collision detection and performance * completing shortcutting fix * updating tests * adding readme --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Brice <brice.renaudeau@gmail.com> * change pointer free order in amcl to avoid use-after-free bug mentioned in ros-navigation#4068 (ros-navigation#4070) Signed-off-by: GoesM <GoesM@buaa.edu.cn> Co-authored-by: GoesM <GoesM@buaa.edu.cn> Signed-off-by: Brice <brice.renaudeau@gmail.com> * [Smac Planner] Massive Improvement of Behavior for SE2 Footprint Checking (ie non-circular robots) In Confined Settings (ros-navigation#4067) * prototype to test SE2 footprint H improvements * some fixes * fixed * invert logic * Working final prototype to be tested * complete unit test conversions * Update inflation_layer.hpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Brice <brice.renaudeau@gmail.com> * Adding new Smac paper to readme Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Brice <brice.renaudeau@gmail.com> * Update README.md Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Brice <brice.renaudeau@gmail.com> * [behavior_tree] don't repeat yourself in "blackboard->set" (ros-navigation#4074) * don't repeat yourself: templates in tests Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * misse change Signed-off-by: Davide Faconti <davide.faconti@gmail.com> --------- Signed-off-by: Davide Faconti <davide.faconti@gmail.com> Signed-off-by: Brice <brice.renaudeau@gmail.com> * Allow path end pose deviation revive (ros-navigation#4065) * Support stitching paths in compute path to poses * Update nav2_planner/src/planner_server.cpp Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> * Rename parameter to allow_path_through_poses_goal_deviation * Fix description * restore nav2_params * missing whitespace * lint fix * removed parameter Signed-off-by: gg <josho.wallace@gmail.com> * Update planner_server.hpp * Update planner_server.cpp --------- Signed-off-by: gg <josho.wallace@gmail.com> Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co> Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Brice <brice.renaudeau@gmail.com> * Updated code to use getInflationLayer() method (ros-navigation#4076) * updated code to use getInflationLayer method Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com> * Fix linting Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com> --------- Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com> Signed-off-by: Brice <brice.renaudeau@gmail.com> * 1594 twist stamped publisher (ros-navigation#4077) * Add TwistStamped to controller_server via TwistPublisher util * Add a new util class for publishing either Twist or TwistStamped * Add a new parameter for selecting to stamp the twist data * Consume TwistPublisher in nav2_controller Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Fix small issues * Unused variable * Incorrect doxygen Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Remove stored node and assert Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Add tests for node * Facing timeout even though it does the same thing as velocity smoother test Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Add missing spin call to solve timeout Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Fix copyright (me instead of intel) Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Add full test coverage with subscriber Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Remove unused rclcpp fixture * Can't use it due to needing to join the pub thread after rclcpp shuts down Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Use TwistStamped in nav2_behaviors Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Use TwistStamped in collision monitor node Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Add TwistStamped readme updates to velocity smoother Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Add TwistSubscriber implementation Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Fix syntax errors Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Use TwistSubscriber in test_velocity_smoother Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Use TwistSubscriber in assisted_teleop Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Use TwistSubscriber in collision monitor node Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Use TwistSubscriber in velocity smoother Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Remove unused code Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * add timestamp and frame_id to TwistStamped message * Add missing utility include Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Document TwistPublisher and TwistSubscriber usage Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Use pass-by-reference * Instead of std::move(std::unique_ptr<TwistStamped>) Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Finish twist subscriber tests Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Add other constructor and docs Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Fix linter issues Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Manually fix paren alignment Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Remove GSoC reference Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Document twist bool param in README Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Handle twistPublisher in collision monitor * Implement behavior in the stamped callback * Unstamped callback calls the stamped callback * Switch to unique pointer for publisher Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Convert to using TwistStamped interally * Use incoming twistStamped timestamp if available * Convert all internal representations to use TwistStamped Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Remove nav2_util usage instructions Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Remove unused Twist only subscriber Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * More linter fixes Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Prefer working with unique_ptr for cmd_vel * This makes it easier to switch to std::move instead of dereference on publish Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> * Completing twist stamped migration * shared to unique ptr Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * twist add stamps and properly propogated * nav2_util: fix for compiling with clang - Resolve error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move] Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> --------- Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com> Signed-off-by: Brice <brice.renaudeau@gmail.com> * Change costmap_queue to shared library (ros-navigation#4072) Signed-off-by: cybaol <cybao292261@163.com> Signed-off-by: Brice <brice.renaudeau@gmail.com> * fix include of hpp Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com> * inflation cost optmiizations and cleanu * rename, add defaults, and docs * smoke test addition * lintg * normalize weight * update readme * increment cache * Update cost_critic.hpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update cost_critic.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Brice <brice.renaudeau@gmail.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Signed-off-by: GoesM <GoesM@buaa.edu.cn> Signed-off-by: Davide Faconti <davide.faconti@gmail.com> Signed-off-by: gg <josho.wallace@gmail.com> Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com> Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> Signed-off-by: cybaol <cybao292261@163.com> Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com> Co-authored-by: BriceRenaudeau <48433002+BriceRenaudeau@users.noreply.github.com> Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com> Co-authored-by: GoesM <GoesM@buaa.edu.cn> Co-authored-by: Davide Faconti <davide.faconti@gmail.com> Co-authored-by: Joshua Wallace <josho.wallace@gmail.com> Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co> Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com> Co-authored-by: jncfa <20467009+jncfa@users.noreply.github.com> Co-authored-by: Ryan <ryanfriedman5410+github@gmail.com> Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com> Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com> Co-authored-by: Kino <cybao292261@163.com> [behavior_tree] support both ports and blackboard (ros-navigation#4060) * check result of blackboard->get and use halTree Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * remove unused header Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * BT: add port inputs when missing and use getInputPortOrBlackboard Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * add description Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * change return value of getInputPortOrBlackboard Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * updated tree XML Signed-off-by: Davide Faconti <davide.faconti@gmail.com> --------- Signed-off-by: Davide Faconti <davide.faconti@gmail.com> Use ament_export_targets for all targets (ros-navigation#4112) * Matches new internal ALIAS targets * Use ALIAS targets for all internal linkage * Remove unnecessary calls to ament_target_dependencies in test code * Export includes in proper folders for overlays in colcon Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com> adding new Friends of Nav2 Sponsors! Update README.md (ros-navigation#4114) Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> CI green P3 (ros-navigation#4117) Refactors `possible_inscribed_cost` to `possible_circumscribed_cost` in collision checker for smac_planner and mppi_controller (ros-navigation#4113). (ros-navigation#4118) * Utilizes circumscribed radius to assess potential collision points on the robot. * Ensures safety when the robot's center is outside the circumscribed radius, eliminating additional checks and optimizing CPU usage. Signed-off-by: Alan Xue <alan.xuefei@googlemail.com> Added cast to float to getClosestAngularBin return for behavior consistency (ros-navigation#4123) * Added cast to float to getClosestAngularBin return for behavior consistency. Signed-off-by: Hunter Song <hsong@macleanengineering.com> * Revised test name Signed-off-by: Hunter Song <hsong@macleanengineering.com> --------- Signed-off-by: Hunter Song <hsong@macleanengineering.com> Adding context to MPPI readme Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> [behavior_tree] Add generate_nav2_tree_nodes_xml (ros-navigation#4073) * Add generate_nav2_tree_nodes_xml Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * behavior_tree: removed list of plugins from yaml Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * check result of get_parameter(plugin_lib_names) Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix previous commit (uncrustify) Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * revert change Signed-off-by: Davide Faconti <davide.faconti@gmail.com> --------- Signed-off-by: Davide Faconti <davide.faconti@gmail.com> Fix compilation with clang (ros-navigation#4131) Signed-off-by: Ramon Wijnands <ramon.wijnands@nobleo.nl> code improvement based on feedback. Name changes and minor code improvement Signed-off-by: stevedan <stevedan.o.omodolor@gmail.com> Fix goal handle was not freed correctly (ros-navigation#4137) * Fix goal handle was not freed correctly * Update nav2_util/include/nav2_util/simple_action_server.hpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Ziohang <hang.zhou@agvsz.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> Adding Nvidia as Gold Sponsor! (ros-navigation#4144) Prevent a possible segmentation fault (ros-navigation#4141) (ros-navigation#4147) * Prevent a possible segmentation fault Signed-off-by: Joni Pöllänen <joni.pollanen@karelics.fi> * Cleanup Signed-off-by: Joni Pöllänen <joni.pollanen@karelics.fi> --------- Signed-off-by: Joni Pöllänen <joni.pollanen@karelics.fi> Updating stereolabs logo (ros-navigation#4158) Update README.md Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> behavior_tree: migration to BT.CPP 4.5.x (ros-navigation#4128) * behavior_tree: migration to BT.CPP 4.5.x Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix formatting Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix lint warning Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * remove setStatus(BT::NodeStatus::IDLE) Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * handle SKIPPED state Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix SequenceStar Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * add tests Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix unit tests Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * add emitWakeUpSignal() Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fit test Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * remove SequenceStar Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * remove SequenceStar Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * keep resetStatus() in action_node Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * add suggestions from peer reviewer Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix compilation Signed-off-by: Davide Faconti <davide.faconti@gmail.com> --------- Signed-off-by: Davide Faconti <davide.faconti@gmail.com> bug fix (ros-navigation#4160) Signed-off-by: Tianchu <tianchu.zhang0706@gmail.com> Stop planner if the goal is cancelled (ros-navigation#4148) * Add support for stopping planners when the action is cancelled Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> * Support cancel in Smac planner Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> * Support cancel in Theta* planner Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> * Support cancel in Navfn planner Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> * Update nav2_system_tests to use cancel checker Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> * Add terminal_checking_interval parameter Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> * Handle timeout and cancel check on the same branch and default to 5000 iterations Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> * Add system tests for cancel Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> --------- Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com> Co-authored-by: Kemal Bektas <kemal.bektas@node-robotics.com> Improvement on the wat the distance heuristic is calculated Signed-off-by: stevedan <stevedan.o.omodolor@gmail.com> Fix BT.CPP import (ros-navigation#4165) Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com> Update default recommendation from Obstacles to Cost critic in MPPI (ros-navigation#4170) Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> nav2_controller: add loop rate log (ros-navigation#4171) * update smac_planner README Signed-off-by: ARK3r <kermani.areza@gmail.com> * added current controller loop rate logging Signed-off-by: ARK3r <kermani.areza@gmail.com> * linting Signed-off-by: ARK3r <kermani.areza@gmail.com> * uncrustify lint Signed-off-by: ARK3r <kermani.areza@gmail.com> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> * Update nav2_controller/src/controller_server.cpp Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> --------- Signed-off-by: ARK3r <kermani.areza@gmail.com> Signed-off-by: Steve Macenski <stevenmacenski@gmail.com> Co-authored-by: Steve Macenski <stevenmacenski@gmail.com> improvement based on feedback Signed-off-by: stevedan <stevedan.o.omodolor@gmail.com>
* Add generate_nav2_tree_nodes_xml Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * behavior_tree: removed list of plugins from yaml Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * check result of get_parameter(plugin_lib_names) Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * fix previous commit (uncrustify) Signed-off-by: Davide Faconti <davide.faconti@gmail.com> * revert change Signed-off-by: Davide Faconti <davide.faconti@gmail.com> --------- Signed-off-by: Davide Faconti <davide.faconti@gmail.com> Signed-off-by: enricosutera <enricosutera@outlook.com>
Basic Info
Description of contribution in a few bullet points
Currently the file nav2_tree_nodes.xml is updated by hand by the user. This is tedious and error-prone (current version is also outdated); furthermore, this is not what BT.CPP allows this step to be automated.
This PR introduces a tiny utility (meant to be used by the developers) to auto-generate that file.
In more details:
configure_file
.Description of documentation updates required from your changes
To be discussed. Where do you want me to add this documentation?
Future work that may be required in bullet points
This PR is not adding he modifications to nav2_tree_nodes.xml
This will be done in the a future PR
For Maintainers: