-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
fix boundary point exclusion in convexFillCells #2161
fix boundary point exclusion in convexFillCells #2161
Conversation
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.
Please explain the situation that this fixes for you. I read this and don't see where this would necessarily change the result. https://github.com/ros-planning/navigation2/blob/f44cc8ba45a419e0d3b0cfe75dce3806442a2614/nav2_costmap_2d/src/costmap_2d.cpp#L418 this gets the entire outline before we start filling so by the time you enter here https://github.com/ros-planning/navigation2/blob/f44cc8ba45a419e0d3b0cfe75dce3806442a2614/nav2_costmap_2d/src/costmap_2d.cpp#L469 you would already have the max elements.
So I think to merge this we need to know the specific situations that you ran into that this failed in which require this solution to resolve. I don't have any issues merging as long as there's a real problem that this is fixing.
When this line What this pull request changes is that both boundary points @SteveMacenski Does that clarify what this changes? And do you agree that the change is correct?
As indicated in the initial description, I came across this bug while using the ROS1 navigation stack. The issues that it fixed there was that the robot would be stuck occasionally in case an obstacle point was marked on the footprint polygon boundary, because footprint clearing uses the |
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.
Got it - seems reasonable! Just making sure it fixes an actually observed issue and not a perceived issue - thanks for the PR!
* merge conflict * Add groot monitoring behavior tree visualization (#1958) * include ZMQ publisher for Groot very plain integration, should be made optionally through a launch parameter * fix Groot crashing finding custom nodes in monitor mode straight forward working fix. The manifest was missing, so Groot searched custom node IDs that it did not have. This is implemented correctly directly in BT.CPP V3 and should be used instead of an implementation in nav2_bt_engine * refactor buildTreeFromText to createTreeFromText as in BT.CPP v3 * forward XML to createTreeFromText from BT.CPP v3 factory function * Add createTreeFromFile forware to BT-factory function * fix createTreeFromFile args.. * add personal copyright I think this is okay for finding a nasty bug.. :) * move creating ZMQ Publisher from run to dedicated function this way the ZMQ Publisher ca be added to individual trees within the same factory. Should be important for switching trees (XML files) * Add parameter for Groot Monitoring - default true. Also cleanup ZMQ * Move haltAllActions() Implementation from .hpp to .cpp * update Copyright in hpp of BT-engine * make linters happy.. :) * Update Groot parameter naming and chg default=0 * rename resetZMQGrootMonitor -> resetGrootMonitor * add parameter to nav2_params.yaml - default = false * add ZMQ params and logic for server/pub ports * Fix RewrittenYaml ignoring Integers Integers where converted as floats before which crashes get_parameter.. fun thing.... * add launch based tests for params and ZMQ * Activate Dijkstra and A* switching tests, thanks to RewrittenYaml * add pyzmq==19.0.2 via pip3 to CI test_workspace * make flake8 linter happy * make cpp linters happy * add personal copyright * add GoalUpdated BT node description in order to view the full default BT only affects editor mode of Groot and not live monitoring * make linter happy (unused import) * remove unused groot-port replacement functions in test_system_launch.py * add groot parameters to params.md * get reloading BTs to work nicely with Groot * pretty space for smac :) * switch from unsinged to uint16_t * fix converting string into float or int * Revert "add pyzmq==19.0.2 via pip3 to CI test_workspace" This reverts commit 7bca081. * Switch to 4 spaces indent and other linter stuff for RewrittenYaml * removed prints in test_system_launch.py * linter stuff * add python-zmq as test_depend in package.xml (instead of .CI_conf) * enable groot monitoring by default * remove ZMQ from naming (function / variable) * remove variable zmq ports from testing scripts * remove default ports in BT_engine, as they are set through (def-)params * Remove complete test for "dynamic" ZMQ ports testing * fix python-zmq depend location * fix style * swap missing Groot to default True * fix rosdep zmq + flake8 fixes in system_tests * remove debug logs + c_str() * remove final debug_log * return failure on plugin failure (#2119) * Move voxel publisher activation into conditional that its on * fix boundary point exclusion in convexFillCells (#2161) * Regulated pure pursuit controller (#2152) * regulated pure pursuit migration commit * adding speed limit API * adding review comments + adding rotate to goal heading * adding test dir * add some initial tests * more tests * remove old comment * improve readme * fix CI * first attempt at changing algos in tests * allowing full path parameter substitutions * adding integration tests * enable SMAC testing too with new changes * swap algos * revert * Update angular velocity after constraining linear velocity (#2165) This ensures the robot moves towards the lookahead point more closely. If the angular velocity is not updated, then the robot tries to take cuts while turning, which could lead to collisions when near obstacles Signed-off-by: Shrijit Singh <[email protected]> * Update cost scaling heuristic to vary speed linearly with distance (#2164) * Update cost scaling to vary linearly with distance instead of relying on costmap cost Signed-off-by: Shrijit Singh <[email protected]> * Resolve suggested changes Signed-off-by: Shrijit Singh <[email protected]> * Add documentation for cost scaling parameters Signed-off-by: Shrijit Singh <[email protected]> * Improve parameter descriptions Signed-off-by: Shrijit Singh <[email protected]> * Comment cost scaling tests since layered costmap is not initialized A valid layered costmap reference is needed to get the inscribed radius Signed-off-by: Shrijit Singh <[email protected]> Co-authored-by: Shrijit Singh <[email protected]> * Updating example yaml to include extra params (#2183) * Fixing control_frequency to controller_frequency typo (#2182) * Write doxygen for navfn (#2184) * Write doxygen for navfn * Remove forward slashes * expose dwb's shorten_transformed_plan param * Adding RPP to metapackage.xml * [NavFn] Make the 3 parameters changeable at runtime (#2181) * make the 3 params changeable at runtime * use parameter events callbacks * doxygen * lint * Install test_updown to lib/ (#2208) * Remove optimization check on carrot, incorrect optimization (#2209) * [RPP] Remove dependency on collision checking to carrot location (#2211) * Remove dependency on collision checking to carrot location * Fix i removal * changing API to be consistent with collision updates * fix typo in regulated pure pursuit readme (#2228) * Rviz state machine waypoint follower updates (#2227) * working on canceling state machine for waypoint mode * fixing cancelation logic * fix linting isue * adding cherry pick fixes Co-authored-by: Sarthak Mittal <[email protected]> Co-authored-by: Florian Gramß <[email protected]> Co-authored-by: ChristofDubs <[email protected]> Co-authored-by: Shrijit Singh <[email protected]> Co-authored-by: Phone Thiha Kyaw <[email protected]> Co-authored-by: simutisernestas <[email protected]> Co-authored-by: G.Doisy <[email protected]> Co-authored-by: Uladzslau <[email protected]> Co-authored-by: Erwin Lejeune <[email protected]>
* Fix deprecated usage of FutureReturnCode::SUCCESS (ros-navigation#2140) Use rclcpp::FutureReturnCode::SUCCESS replace rclcpp::executor::FutureReturnCode::SUCCESS * backporting to foxy checking goal index on backchecks (ros-navigation#2202) * Fix recovery action collision check. (ros-navigation#2193) * Fix recovery action collision check. * Fix linting issue. * Fix back up action behavior tree node name issue (ros-navigation#2206) * Export nav2_bt_navigator library and dependencies (ros-navigation#2212) Signed-off-by: Marco Lampacrescia <[email protected]> * Optional transient map saver (ros-navigation#2215) * Added transient local subscription qos profile parameter to map saver (ros-navigation#1871) * Added transient local subscription qos profile parameter to map saver * Made transient local default true * Fixed linter problem * switched back house world to waffle model * Make transient map subscribe backwards compatible for foxy Co-authored-by: Michael Equi <[email protected]> * Add has_node_params launch utility (ros-navigation#2257) * corrected backup plugin name for multirobot params (ros-navigation#2288) Co-authored-by: Simon Honigmann <[email protected]> * foxy Sync 5.1 (ros-navigation#2291) * merge conflict * Add groot monitoring behavior tree visualization (ros-navigation#1958) * include ZMQ publisher for Groot very plain integration, should be made optionally through a launch parameter * fix Groot crashing finding custom nodes in monitor mode straight forward working fix. The manifest was missing, so Groot searched custom node IDs that it did not have. This is implemented correctly directly in BT.CPP V3 and should be used instead of an implementation in nav2_bt_engine * refactor buildTreeFromText to createTreeFromText as in BT.CPP v3 * forward XML to createTreeFromText from BT.CPP v3 factory function * Add createTreeFromFile forware to BT-factory function * fix createTreeFromFile args.. * add personal copyright I think this is okay for finding a nasty bug.. :) * move creating ZMQ Publisher from run to dedicated function this way the ZMQ Publisher ca be added to individual trees within the same factory. Should be important for switching trees (XML files) * Add parameter for Groot Monitoring - default true. Also cleanup ZMQ * Move haltAllActions() Implementation from .hpp to .cpp * update Copyright in hpp of BT-engine * make linters happy.. :) * Update Groot parameter naming and chg default=0 * rename resetZMQGrootMonitor -> resetGrootMonitor * add parameter to nav2_params.yaml - default = false * add ZMQ params and logic for server/pub ports * Fix RewrittenYaml ignoring Integers Integers where converted as floats before which crashes get_parameter.. fun thing.... * add launch based tests for params and ZMQ * Activate Dijkstra and A* switching tests, thanks to RewrittenYaml * add pyzmq==19.0.2 via pip3 to CI test_workspace * make flake8 linter happy * make cpp linters happy * add personal copyright * add GoalUpdated BT node description in order to view the full default BT only affects editor mode of Groot and not live monitoring * make linter happy (unused import) * remove unused groot-port replacement functions in test_system_launch.py * add groot parameters to params.md * get reloading BTs to work nicely with Groot * pretty space for smac :) * switch from unsinged to uint16_t * fix converting string into float or int * Revert "add pyzmq==19.0.2 via pip3 to CI test_workspace" This reverts commit 7bca081. * Switch to 4 spaces indent and other linter stuff for RewrittenYaml * removed prints in test_system_launch.py * linter stuff * add python-zmq as test_depend in package.xml (instead of .CI_conf) * enable groot monitoring by default * remove ZMQ from naming (function / variable) * remove variable zmq ports from testing scripts * remove default ports in BT_engine, as they are set through (def-)params * Remove complete test for "dynamic" ZMQ ports testing * fix python-zmq depend location * fix style * swap missing Groot to default True * fix rosdep zmq + flake8 fixes in system_tests * remove debug logs + c_str() * remove final debug_log * return failure on plugin failure (ros-navigation#2119) * Move voxel publisher activation into conditional that its on * fix boundary point exclusion in convexFillCells (ros-navigation#2161) * Regulated pure pursuit controller (ros-navigation#2152) * regulated pure pursuit migration commit * adding speed limit API * adding review comments + adding rotate to goal heading * adding test dir * add some initial tests * more tests * remove old comment * improve readme * fix CI * first attempt at changing algos in tests * allowing full path parameter substitutions * adding integration tests * enable SMAC testing too with new changes * swap algos * revert * Update angular velocity after constraining linear velocity (ros-navigation#2165) This ensures the robot moves towards the lookahead point more closely. If the angular velocity is not updated, then the robot tries to take cuts while turning, which could lead to collisions when near obstacles Signed-off-by: Shrijit Singh <[email protected]> * Update cost scaling heuristic to vary speed linearly with distance (ros-navigation#2164) * Update cost scaling to vary linearly with distance instead of relying on costmap cost Signed-off-by: Shrijit Singh <[email protected]> * Resolve suggested changes Signed-off-by: Shrijit Singh <[email protected]> * Add documentation for cost scaling parameters Signed-off-by: Shrijit Singh <[email protected]> * Improve parameter descriptions Signed-off-by: Shrijit Singh <[email protected]> * Comment cost scaling tests since layered costmap is not initialized A valid layered costmap reference is needed to get the inscribed radius Signed-off-by: Shrijit Singh <[email protected]> Co-authored-by: Shrijit Singh <[email protected]> * Updating example yaml to include extra params (ros-navigation#2183) * Fixing control_frequency to controller_frequency typo (ros-navigation#2182) * Write doxygen for navfn (ros-navigation#2184) * Write doxygen for navfn * Remove forward slashes * expose dwb's shorten_transformed_plan param * Adding RPP to metapackage.xml * [NavFn] Make the 3 parameters changeable at runtime (ros-navigation#2181) * make the 3 params changeable at runtime * use parameter events callbacks * doxygen * lint * Install test_updown to lib/ (ros-navigation#2208) * Remove optimization check on carrot, incorrect optimization (ros-navigation#2209) * [RPP] Remove dependency on collision checking to carrot location (ros-navigation#2211) * Remove dependency on collision checking to carrot location * Fix i removal * changing API to be consistent with collision updates * fix typo in regulated pure pursuit readme (ros-navigation#2228) * Rviz state machine waypoint follower updates (ros-navigation#2227) * working on canceling state machine for waypoint mode * fixing cancelation logic * fix linting isue * adding cherry pick fixes Co-authored-by: Sarthak Mittal <[email protected]> Co-authored-by: Florian Gramß <[email protected]> Co-authored-by: ChristofDubs <[email protected]> Co-authored-by: Shrijit Singh <[email protected]> Co-authored-by: Phone Thiha Kyaw <[email protected]> Co-authored-by: simutisernestas <[email protected]> Co-authored-by: G.Doisy <[email protected]> Co-authored-by: Uladzslau <[email protected]> Co-authored-by: Erwin Lejeune <[email protected]> * bumping to 0.4.6 * bump to 0.4.7 and add missing dep to RPP * [nav2_bringup] Update waffle.model (ros-navigation#2296) Changed to the latest tire mesh file names for waffle as per the latest `turtlebot3_gazebo` package. This results in faster loading and resolves the errors that come in `gazebo --verbose` * Update list of behavioural tree nodes (ros-navigation#2329) * Update list of nodes with nodes compiled in the branch and excluding unexistant to prevent runtime exceptions. * Updated documentation Co-authored-by: Pau Carre <[email protected]> * fix merge errors * not currenlty used -> no need to depend on it Co-authored-by: Homalozoa X <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Co-authored-by: Albert Yen <[email protected]> Co-authored-by: MarcoLm993 <[email protected]> Co-authored-by: Victor Lopez <[email protected]> Co-authored-by: Michael Equi <[email protected]> Co-authored-by: shonigmann <[email protected]> Co-authored-by: Simon Honigmann <[email protected]> Co-authored-by: Sarthak Mittal <[email protected]> Co-authored-by: Florian Gramß <[email protected]> Co-authored-by: ChristofDubs <[email protected]> Co-authored-by: Shrijit Singh <[email protected]> Co-authored-by: Phone Thiha Kyaw <[email protected]> Co-authored-by: simutisernestas <[email protected]> Co-authored-by: G.Doisy <[email protected]> Co-authored-by: Uladzslau <[email protected]> Co-authored-by: Erwin Lejeune <[email protected]> Co-authored-by: Jovian Dsouza <[email protected]> Co-authored-by: Pau Carré Cardona <[email protected]> Co-authored-by: Pau Carre <[email protected]>
* adding waypoint follower readme information * Run-time system test for keepout_filter (#2030) * Add run-time system test for keepout filter * Add keepout_filter specific logic * Fix review items * Move goal to be on the straight line by plan without keepout * Fix flaky tests (#2047) * Fix flaky tests Signed-off-by: Sarthak Mittal <[email protected]> * Fix shutdown in waypoint follower test Signed-off-by: Sarthak Mittal <[email protected]> * Input at waypoint task executor plugin (#2049) * adding input at waypoint executor * exporting depedency * fixing review suggestions * make input topic a parameter * working input executor * adding docs to params md * nav2_way_point_follower; introduce photo at waypoint arrivals plugin (#2041) * nav2_way_point_follower; introduce photo at waypoint arrivals plugin Signed-off-by: jediofgever <[email protected]> * resolve cmake lint errors Signed-off-by: jediofgever <[email protected]> * resolve requested chages of first review Signed-off-by: jediofgever <[email protected]> * minor corrections on photo_at_waypoint header * resolve requested changes of second review Signed-off-by: jediofgever <[email protected]> * update default save_dir Signed-off-by: jediofgever <[email protected]> * move directory checking code to initialize() * [WIP] Fix CI build issues (#2076) * update to use on my fork to test changes to bondcpp * using chrono literals in lifecycle manager * nav2_rviz_plugins using chrono literals for API change * using chrono literals in costmap_2d package from API change * using chrono literals in observation buffer * chrono literals for tests costmap * chrono literal API changes * changing API * changing API * API changes * API change * API change * API change * API change test * API change test * remove * api updates * update test values * Patch for PhotoAtWaypoint plugin (#2067) * nav2_way_point_follower; introduce photo at waypoint arrivals plugin Signed-off-by: jediofgever <[email protected]> * resolve cmake lint errors Signed-off-by: jediofgever <[email protected]> * resolve requested chages of first review Signed-off-by: jediofgever <[email protected]> * minor corrections on photo_at_waypoint header * resolve requested changes of second review Signed-off-by: jediofgever <[email protected]> * update default save_dir Signed-off-by: jediofgever <[email protected]> * move directory checking code to initialize() * add try catch block to catch possible execeptions while creating a directory for photo at waypoint plugin Signed-off-by: jediofgever <[email protected]> * adding logging and disabling * Update nav2_waypoint_follower/plugins/photo_at_waypoint.cpp Co-authored-by: Fetullah Atas <[email protected]> * Update photo_at_waypoint.cpp Co-authored-by: jediofgever <[email protected]> * Fix for double free issue in map server testcases (#2078) * Support in keepout filter for mask and costmap published in different… (#2054) * Support in keepout filter for mask and costmap published in different frames This fixes incorrect keepouts position issue when filter mask and current costmap layer are published in different frames. This might appear (but not restricted only to) when keepout filter is enabled for local costmap with rolling window. * Add transform initialization * Enhance transform failure message * Loop fix (#2068) * Abort analytic expansion if crossing through already visited node * Check that we are not creating an infinite loop at the goal node * Mark nodes in analytic expansion as visited for the sake of completeness * Move checking of already visited nodes to final stage of analytic expansion * Swap startup and timeout check on lifecycle manager tests (#2080) * Fix SmacPlanner memory leaks and costmap downsampler test (#2050) * Fix shared_ptr cyclic dependencies Signed-off-by: Sarthak Mittal <[email protected]> * Refactor costmap downsampler and fix test Signed-off-by: Sarthak Mittal <[email protected]> * Revert costmap downsampler test changes Signed-off-by: Sarthak Mittal <[email protected]> * Fix Map Saver and testing: (#2084) - Add Map Saver resource sharing - Add forgotten reset of save_map_service_ - Remove unnecessary map republisher - Increase save_map_timeout * Rebranding! New Navigation2 logo! (#2087) * adding new logo! * limit dimensions * limit dimensions * limit dimensions * Fix build on macOS (10.x / 11.x) (#2083) * Fix build on macOS with LLVM/Clang12 * nav2_costmap_2d's observation buffer is now using tf_tolerance. Removed pragmas and os specific logic * Current_ costmap2D updates & fixing recovery-straight-path issues (#2090) * WIP attempt at fixing recovery-straight-path issues * linting! * handle not current due to old measurement readings separately from resets * Added nav2_ prefix to smac_planner Signed-off-by: Tony Najjar <[email protected]> (#2093) * Add prefer forward critic test (#2097) * Test setting the parameters. * Added the score tests. * Use variables for parameters and add test for non-default values. * Cleanup. Removed commented out code. * Add obstacle footprint dwb critic test (#2099) * Setup for obstacle footprint test. * Make std::string arguments const * Added additional tests for obstacle footprint test. * Add todo. * Several code cleanup actions. Renamed the function p to getPoint. Removed commented out code. Fixed the trow->throw typo and explained some tests in comments. * Keepout Filter cleanup (#2101) * adding unit testing for alignment util dwb critics (#2103) * adding unit testing for alignment util dwb critics * adding twirling tests * renaming test * Fix README format (#2107) * Removing eloquent from build status table since its EOL (#2114) * Removing eloquent from build status table since its EOL * Update README.md * Update README.md * Standardize time units per REP-103 (#2106) * Standardize time units per REP-103 * bond_timeout type * Revert bond core to ros2 from my fork after merging fix (#2115) * Add groot monitoring behavior tree visualization (#1958) * include ZMQ publisher for Groot very plain integration, should be made optionally through a launch parameter * fix Groot crashing finding custom nodes in monitor mode straight forward working fix. The manifest was missing, so Groot searched custom node IDs that it did not have. This is implemented correctly directly in BT.CPP V3 and should be used instead of an implementation in nav2_bt_engine * refactor buildTreeFromText to createTreeFromText as in BT.CPP v3 * forward XML to createTreeFromText from BT.CPP v3 factory function * Add createTreeFromFile forware to BT-factory function * fix createTreeFromFile args.. * add personal copyright I think this is okay for finding a nasty bug.. :) * move creating ZMQ Publisher from run to dedicated function this way the ZMQ Publisher ca be added to individual trees within the same factory. Should be important for switching trees (XML files) * Add parameter for Groot Monitoring - default true. Also cleanup ZMQ * Move haltAllActions() Implementation from .hpp to .cpp * update Copyright in hpp of BT-engine * make linters happy.. :) * Update Groot parameter naming and chg default=0 * rename resetZMQGrootMonitor -> resetGrootMonitor * add parameter to nav2_params.yaml - default = false * add ZMQ params and logic for server/pub ports * Fix RewrittenYaml ignoring Integers Integers where converted as floats before which crashes get_parameter.. fun thing.... * add launch based tests for params and ZMQ * Activate Dijkstra and A* switching tests, thanks to RewrittenYaml * add pyzmq==19.0.2 via pip3 to CI test_workspace * make flake8 linter happy * make cpp linters happy * add personal copyright * add GoalUpdated BT node description in order to view the full default BT only affects editor mode of Groot and not live monitoring * make linter happy (unused import) * remove unused groot-port replacement functions in test_system_launch.py * add groot parameters to params.md * get reloading BTs to work nicely with Groot * pretty space for smac :) * switch from unsinged to uint16_t * fix converting string into float or int * Revert "add pyzmq==19.0.2 via pip3 to CI test_workspace" This reverts commit 7bca08121c88db3763771911e3c6b4c6f4f8ddeb. * Switch to 4 spaces indent and other linter stuff for RewrittenYaml * removed prints in test_system_launch.py * linter stuff * add python-zmq as test_depend in package.xml (instead of .CI_conf) * enable groot monitoring by default * remove ZMQ from naming (function / variable) * remove variable zmq ports from testing scripts * remove default ports in BT_engine, as they are set through (def-)params * Remove complete test for "dynamic" ZMQ ports testing * fix python-zmq depend location * fix style * swap missing Groot to default True * fix rosdep zmq + flake8 fixes in system_tests * remove debug logs + c_str() * remove final debug_log * return failure on plugin failure (#2119) * Move voxel publisher activation into conditional that its on (#2121) * Add DWB base obstacle critic test (#2122) * Add DWB base obstacle critic test. * Remove magic numbers. * Fix build error. * Fix out of bound for setting cost in costmap. * Enable commented out code. * Speed Filter (#2074) * Add speed limit filter * Fix review items * Remain only percent speed limit support * Small review fixes * Add error message for unknown cells on mask * Fix missed items * Ensure SpeedFilter is using accurate in time transform instead of latest in TF Buffer * Add costmap_filter_info_server into param description * Set transform_tolerance to 0.1 * Update comment to be more informative * costmap_2d: remove useless and buggy testing helper function (#2130) (#2131) Co-authored-by: JF Dalbosco <[email protected]> * Fix format strings in calls to RCLCPP macros (#2139) * Add particle cloud display plugin for RViz (#1688) * Add particle cloud display rviz plugin Signed-off-by: Sarthak Mittal <[email protected]> * General refactoring * Fix header guards * Update bringup rviz files and default values * Add nav2_behavior_tree::BtActionServer (#2010) * Add nav2_behavior_tree::BtActionServer Signed-off-by: Sarthak Mittal <[email protected]> * Fix cpplint errors Signed-off-by: Sarthak Mittal <[email protected]> * Remove unnecessary statements in BtActionServer Signed-off-by: Sarthak Mittal <[email protected]> * Make nav2_behavior_tree::BtActionServer a composable object * Add comments * Add on preempt callback, fix naming issues, and move tf to bt navigator * Add separate implementation header for BtActionServer * Fix cpplint error * Pass plugin library names as argument to BtActionServer * Remove action server getter and update onPreempt to not load BT * Fix unnecessary include * Fix function names Signed-off-by: Sarthak Mittal <[email protected]> * Fix typo * Changed FollowWaypoints to follow_waypoints (#2151) * Changed FollowWaypoints to follow_waypoints * Updated the msg name as follow_waypoints * Reversed changes to cmakelist * Updated the use of follow_waypoints just as action name * Replace follow_waypoints * Update * Updated ros info with the right syntax * Debugging * Adding parameter for minimum range for raycasting to clear obstacles (#2126) * Adding minimum range parameter for raytrace clearing * Comments in tests * Uncrustify checks * Modified default value of raytrace_min_range param and moved computation below plugin layer * Tests for voxel layer raytracing * Uncrustify checks * Addressed pull request #2126 comments * Using min range parameter for marking also * Correcting build warnings * Correct build fails * Merging changes * Adding comments * Added unit tests for obstacle layer and addressed PR comments * Addressed flake errors * Flake8 errors * Correcting W291 Flake8 error * Variable name and comments changes * Added raytracing params to the params files * Modifying parameter names for obstacle marking * adding tests for wp follower task executors (#2156) * adding tests for wp follower * adding C++ 14 min requirement * trying linking * fix boundary point exclusion in convexFillCells (#2161) * Remove eloquent jobs from readme (#2166) * Update README.md (#2167) * Update README.md (#2168) * changing all non-changing references from navigation2 to Nav2 (#2169) * attempt at bringing up CI (2158) (#2170) * attempt at bringing up CI * try adding SDF element for IMU initial_orientation_as_reference * adding more initial orientation as reference * turning initial_orientation_as_reference false * Test to see if switching DDS vendor fixes our CI issues (#2172) * Regulated pure pursuit controller (#2152) * regulated pure pursuit migration commit * adding speed limit API * adding review comments + adding rotate to goal heading * adding test dir * add some initial tests * more tests * remove old comment * improve readme * fix CI * first attempt at changing algos in tests * allowing full path parameter substitutions * adding integration tests * enable SMAC testing too with new changes * swap algos * revert * Update angular velocity after constraining linear velocity (#2165) This ensures the robot moves towards the lookahead point more closely. If the angular velocity is not updated, then the robot tries to take cuts while turning, which could lead to collisions when near obstacles Signed-off-by: Shrijit Singh <[email protected]> * Update cost scaling heuristic to vary speed linearly with distance (#2164) * Update cost scaling to vary linearly with distance instead of relying on costmap cost Signed-off-by: Shrijit Singh <[email protected]> * Resolve suggested changes Signed-off-by: Shrijit Singh <[email protected]> * Add documentation for cost scaling parameters Signed-off-by: Shrijit Singh <[email protected]> * Improve parameter descriptions Signed-off-by: Shrijit Singh <[email protected]> * Comment cost scaling tests since layered costmap is not initialized A valid layered costmap reference is needed to get the inscribed radius Signed-off-by: Shrijit Singh <[email protected]> Co-authored-by: Shrijit Singh <[email protected]> * Updating example yaml to include extra params (#2183) * Fixing control_frequency to controller_frequency typo (#2182) * (WIP) Recoveries always return success, regardless if they're able to complete their required tasks or not (#1855) * modified such that if the recovery is aborted due to potential collision, the return status will be FAILED * Changed from SequenceStar to RoundRobin to mask any failure that might occur in the execution of the recovery action * Change Backup recovery test such that the aborted recovery is expected and checked for * fixing linting error * Change depricated argument for backup recovery test * added backup to the recovery actions, using defaults from the BackUp header * Update nav2_bt_navigator/behavior_trees/navigate_w_replanning_and_recovery.xml Co-authored-by: Steve Macenski <[email protected]> * Reverting changes to BT. Seq. Star control node is in line to what we want * checkpoitn commit * Changed collision failure critera as backup collision abortion occurs @ -0.2 m as well. This was previously not caught as the server always returned SUCCESS * bool to control whether fake costmap should be generated * added fake tester nodes * Fake costmap passed through environmental variable now * Fake Footprint being sent out * breadcrumbs of fake spin tests * fake odom * launch file was messed up * still troubleshooting spin * trying to fake spin, goal keeps on getting rejected * goal is now being accepted * Fake spin not working well when asking for PI radians out * playing around with timing wehn publishing fake transforms * BT changes, testing TBD * [WIP] Fix CI build issues (#2076) * update to use on my fork to test changes to bondcpp * using chrono literals in lifecycle manager * nav2_rviz_plugins using chrono literals for API change * using chrono literals in costmap_2d package from API change * using chrono literals in observation buffer * chrono literals for tests costmap * chrono literal API changes * changing API * changing API * API changes * API change * API change * API change * API change test * API change test * remove * api updates * update test values * Patch for PhotoAtWaypoint plugin (#2067) * nav2_way_point_follower; introduce photo at waypoint arrivals plugin Signed-off-by: jediofgever <[email protected]> * resolve cmake lint errors Signed-off-by: jediofgever <[email protected]> * resolve requested chages of first review Signed-off-by: jediofgever <[email protected]> * minor corrections on photo_at_waypoint header * resolve requested changes of second review Signed-off-by: jediofgever <[email protected]> * update default save_dir Signed-off-by: jediofgever <[email protected]> * move directory checking code to initialize() * add try catch block to catch possible execeptions while creating a directory for photo at waypoint plugin Signed-off-by: jediofgever <[email protected]> * adding logging and disabling * Update nav2_waypoint_follower/plugins/photo_at_waypoint.cpp Co-authored-by: Fetullah Atas <[email protected]> * Update photo_at_waypoint.cpp Co-authored-by: jediofgever <[email protected]> * Fix for double free issue in map server testcases (#2078) * Support in keepout filter for mask and costmap published in different… (#2054) * Support in keepout filter for mask and costmap published in different frames This fixes incorrect keepouts position issue when filter mask and current costmap layer are published in different frames. This might appear (but not restricted only to) when keepout filter is enabled for local costmap with rolling window. * Add transform initialization * Enhance transform failure message * Loop fix (#2068) * Abort analytic expansion if crossing through already visited node * Check that we are not creating an infinite loop at the goal node * Mark nodes in analytic expansion as visited for the sake of completeness * Move checking of already visited nodes to final stage of analytic expansion * test if action server failures correctly propagate into BT context * change recovery subtree so that RoundRobin replaces SequenceStar for good * uncrustify and line nav2_behavior_tree changes * uncrustify and linting * adding clearing actions to own subtree * more linting * reduced testing value to see if that will stop the robot from aborting due to potential collision * tighten up tolerance on backup since the requested backup is so small * delint * cleaned up spin recovery such that we simulate the robot slowly spinning into place, now I just have to simulate collision scenarios * linting * change order of Spin and Wait to match original * fake spin failing due to potential collision even when empty costmap * lint * more lint * can get all the spins to pass now * spin test strangely passing all cases even though costmap is populated * spin recovery * commmit before I try to visualize this * now I know that there are two things publishing to the same footprint * 1) figured out conflicting pubs to footprint, 2) why can't I get costmap occupancy to cause collision * Fake Spin Test shows failure correctly for angles greater than pi / 2. change launch file such that two publishers are not generating costmaps * fake launch lint * check in with linting to show the structure * Add overall behavior tree system tests Signed-off-by: Sarthak Mittal <[email protected]> * Add RecoverySubtreeGoalUpdated BT test Signed-off-by: Sarthak Mittal <[email protected]> * Update readme and docs * Add tests to check if BT XML files are well-formed Signed-off-by: Sarthak Mittal <[email protected]> * Uncomment tests that were commented out Signed-off-by: Sarthak Mittal <[email protected]> Co-authored-by: Steve Macenski <[email protected]> Co-authored-by: jediofgever <[email protected]> Co-authored-by: Alexey Merzlyakov <[email protected]> Co-authored-by: James Ward <[email protected]> Co-authored-by: Sarthak Mittal <[email protected]> * Write doxygen for navfn (#2184) * Write doxygen for navfn * Remove forward slashes * expose dwb's shorten_transformed_plan param (#2188) * fix broken links in README (#2199) * ensure the index also isn't the goal's (#2201) * Adding RPP to metapackage.xml (#2198) * Adding RPP to metapackage.xml * Remove excessive exec depend * Fix recovery action collision check. (#2203) * Fix recovery action collision check. * Fix linting issue. * [NavFn] Make the 3 parameters changeable at runtime (#2181) * make the 3 params changeable at runtime * use parameter events callbacks * doxygen * lint * Install test_updown to lib/ (#2208) * Remove optimization check on carrot, incorrect optimization (#2209) * Add support of absolute limits to Speed Filter (#2149) * Add support of absolute limits to Speed Filter * Fix review items * Fix comment * Support for nav2_regulated_pure_pursuit_controller * [RPP] Remove dependency on collision checking to carrot location (#2211) * Remove dependency on collision checking to carrot location * Fix i removal * changing API to be consistent with collision updates * Export nav2_bt_navigator library and dependencies (#2213) Signed-off-by: Marco Lampacrescia <[email protected]> * fixing depricated API (#2217) * CI Fixes Part 4 (#2219) * fixing depricated API * converting types on substitutions * removing warnings from std buffer parameterization * If provided param file has no slam_toolbox params, don't forward it (#2214) * If provided param file has no slam_toolbox params, don't forward it * Update copyright * Linter fixes * Reorder slam_launch to hide uglyness at the end * Add ClearAroundRobot and ClearExceptRegion action bt (#2204) * costmap bt * bt double type * change bt actions name to be consistent with service names * add tests * code style * readme update * improve readme * Ability to get a path from the planner from any 2 poses (start_pose and goal): add use_start_pose and start_pose to ComputePathToPose action (#2179) * add use_start_pose to ComputePathToPose.action * add use_start_pose to ComputePathToPose bt * start instead of start_pose + else if * [ComputePathToPose Action API break] change 'pose' for 'goal' +use_start * test wip * add compute path to pose BT test for use_start * last start_pose renaming * Transform start and goal in costmap frame * Revert "Transform start and goal in costmap frame" This reverts commit 4ed8eb0aca6840d57768823a20406b7287dad837. * lint * fix exit (#2224) * fix typo in regulated pure pursuit readme (#2228) * Rviz state machine waypoint follower updates (#2227) * working on canceling state machine for waypoint mode * fixing cancelation logic * fix linting isue * ServiceClient use callback group (#2216) * change timeout default value * create and use callback group * remove generate_internal_node option * unit test to do a service call in a topic callback * fix unit test * set default value to -1 * adding precomputations of trig and offsets (#2231) * fixing smac collision on footprints (#2232) * new functions (#2233) * Fix #2186 (#2222) * Fix #2186 * goal_pose instead of goal->goal * avoid redundant code * change name and switch to input + output param pattern * code style * goal blackboard ID variable (#2235) * new behavior tree node for triggering just once (#2236) * adding doxygen for nav2-utils (#2237) * Use different param name for slam_toolbox param_file (#2242) * adding doxygen to recoveries (#2241) * Adding maintainer checklist to Pr template (#2244) * Forse ROS2 parameters to be static to meet RCLCPP API changes (#2239) * Forse ROS2 parameters to be static to meet RCLCPP API changes * Fix comments * Move all common CostmapFilter parameter declarations into try-catch block * Update README.md (#2250) * Fix SingleTrigger BT node (#2245) * Fix SingleTrigger BT node Signed-off-by: Sarthak Mittal <[email protected]> * Add explicit failure case Signed-off-by: Sarthak Mittal <[email protected]> * Fix uncrustify error Signed-off-by: Sarthak Mittal <[email protected]> * [SimpleGoalChecker] Make parameters changeable at runtime (#2248) * add parameter_event_sub * recompute xy_goal_tolerance_sq_ after param change * Controller plugins include goal checker when computing commands (#2252) * adding goal checker to the API for controllers and the controller server * updating DWB and RPP to include the new controller API change to include the goal checker pointer * adding getTolerances functions for goal checkers with unset default method * use getTolerances for goal checkers in RPP * adding missing headers to goal stoppers * fix linting of RPP * adding partial doxygen coverage for AMCL (#2253) * Add doxygen coverage to nav2_behavior_tree (#2254) Signed-off-by: Sarthak Mittal <[email protected]> * Update PULL_REQUEST_TEMPLATE.md * [nav2_controller] Dynamic parameters for the reminding plugins (#2260) * dyn params plugin * lint recommandation * Fix for inflation artifacts behind update bounds (#2259) * Fix for inflation artifacts behind update bounds appearing when some layer is going after inflation_layer * Fix failing tests * Planner selector (#2249) * planner selector proposal * PR review changes: https://github.com/ros-planning/navigation2/pull/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 * Controller selector (#2266) * Reduce RAM usage in CI (#2258) * Switch ccache away from ramdisk to tmp to reduce CI RAM usage during builds * Use ccache environment variables for CCACHE_DIR and CCACHE_LOGFILE * Add defaults file for colcon https://colcon.readthedocs.io/en/released/user/configuration.html#defaults-yaml https://colcon.readthedocs.io/en/released/reference/executor-arguments.html#executor-arguments * Enable colcon defaults.yml config * Unset MAKEFLAGS * Break the build cache for testing * Fix env * Reset MAKEFLAGS * Use env for copy * Increase limits * break build cache for testing * consolidate colcon build args into config * cleanup * Update mixin comment * Prune repos file image_common already included in ros2.repo and thus osrf/ros2:nightly * Set limts as if there where 2 CPUs prior config rencountered load deadlock and colcon doesn't seem to count the correct number of cores in CI * Remove load average to avoid any deadlock * Bust CI cache for testing * Increase make job limit * Bust CI cache for testing * Revert failed changes * Revert use of env as path arg as it's incrocly interpreted as /opt/overlay_ws/$CCACHE_DIR * Move colcon defaults file * Re-enable load average limit Builds without warm ccache caches can still fail like when building ompl and gazebo_ros simultaneously * Remove service nodes in lifecycle_manager (#2267) * remove service_node from nav2_lifecycle_manager * wait_for_service() returns the value of service_is_ready() * explain wait_for_service return * use timer to trigger init() * init() as lambda function * wait_for_service as void * fix gtest * Enable rmw_connextdds for nightly CI (#2274) To again have a third RMW to triage CI failures * [nav2_behavior_tree] Reduce bt_action_node verbose (#2279) * RCLCPP_INFO to RCLCPP_DEBUG * same for bt_service_node * Replaced sensor_msgs/PointCloud to sensor_msgs/PointCloud2 (#2263) * converted PointCloud -> PointCloud2 adn checked linting. WIP Signed-off-by: Sachin <[email protected]> * modified base_obstacke_test Signed-off-by: Sachin <[email protected]> * Changed to PointCloudModifier WIP * formating fix Signed-off-by: Sachin <[email protected]> * formating fix2 Signed-off-by: Sachin <[email protected]> * added tests for clearing_endpoints Signed-off-by: Sachin <[email protected]> * removing print statements Signed-off-by: Sachin <[email protected]> * added subscribers for voxel marked and cost_cloud Signed-off-by: Sachin <[email protected]> * modified test cases to use single wait for all pointcloud2 subscribers Signed-off-by: Sachin <[email protected]> * removed unnecessary comments and publish_cost_grid_pc from yaml file Signed-off-by: Sachin <[email protected]> * Fix ament_flake issues Signed-off-by: Sachin <[email protected]> * ServiceClient wait_for_service not infinite (#2278) * change wait_for_service behavior * Add unit test * smac checking collision footprint only when in possibly inscribed situation (#2286) * smac checking collision footprint only when in possibly inscribed situation * adding intermediate check * testing based on possibly inscribed conditions * fix tests * Handle navigate_to_pose preemptions with new BT (#2261) * Handle navigate_to_pose preemptions with new BT Signed-off-by: Sarthak Mittal <[email protected]> * Terminate preempt requests with different BT XML files and add log Signed-off-by: Sarthak Mittal <[email protected]> * Remove isPreemptRequested() Signed-off-by: Sarthak Mittal <[email protected]> * adding amcl doxygen (#2284) * adding amcl doxygen * removing trailing spaces * Deprecates use of geometry_msgs/PoseArray for particle cloud in AMCL (#2281) * removed geometry_msgs/PoseArray in AMCL, updated rviz configs * ParticleFilter -> ParticuleCloud * put back adding of weights and poses for particles was incorrectly deleted in 0ca93b5413b85d05202868c79b83ac630df7e40a * complies with linter's max line length https://github.com/ros-planning/navigation2/pull/2281#issuecomment-811449976 * reformatted file using ament_uncrustify commandline tool used: ament_uncrustify --reformat src/navigation2/nav2_amcl/src/amcl_node.cpp * [Draft] [nav2_controller] Add controller_patience param (#2264) * first implementation * restructure + param * lint * remove uneeded publishVelocity and deal with controller_patience_ 1.0 * change param name * add reasonable param * corrected backup plugin name for multirobot params (#2287) Co-authored-by: Simon Honigmann <[email protected]> * Improve NavigationToPose action feedback (#2246) * first commit * Added empty line at end Signed-off-by: Deepak Talwar <[email protected]> * linting * linting Signed-off-by: Deepak Talwar <[email protected]> * Variable name fix Signed-off-by: Deepak Talwar <[email protected]> * changed shared_ptr to weak_ptr Signed-off-by: Deepak Talwar <[email protected]> * get node handle from blackboard Signed-off-by: Deepak Talwar <[email protected]> * changed initialization of odom smoother object * changed initialization of odom smoother object * changed initialization of odom smoother object * changed initialization of odom smoother object * addressed comment re std::hypot * added overloaded constructor * added overloaded constructor * added overloaded constructor * added try catch and template to blackboard get path Signed-off-by: Deepak Talwar <[email protected]> * lint Signed-off-by: Deepak Talwar <[email protected]> * lint - pushing to rerun CI due to cc1plus failure Signed-off-by: Deepak Talwar <[email protected]> * setting of current_pose in feedback msg outside of try/catch Signed-off-by: Deepak Talwar <[email protected]> * added path integrator to nav2_controller for better distance feedback Signed-off-by: Deepak Talwar <[email protected]> * added path integrator to nav2_controller for better distance feedback Signed-off-by: Deepak Talwar <[email protected]> * fixed issue with lambda capturing class member Signed-off-by: Deepak Talwar <[email protected]> * retrigger CI Signed-off-by: Deepak Talwar <[email protected]> * add limits header Signed-off-by: Deepak Talwar <[email protected]> * retrigger CI Signed-off-by: Deepak Talwar <[email protected]> Co-authored-by: Deepak Talwar <[email protected]> * adding doxygen to costmap_2d (#2292) * adding doxygen to costmap_2d part 1 * finishing doxygen for costmap * linting * Navigate through poses action ability (#2271) * initial work commit for compiling * building and almost basic working in navigator * working! * MVP done of navigate through poses in BT navigator side * working with zmq issue * adding compute path to pose, navigate through pose, through XML, and goal updater updates to support navigate through poses action * feedback contains culling * planner server with compute through poses server * abstracting more of the logic from the 2 planner server actions * fixing action server mixup * adding rviz support for nav through poses * improvements in reliability * resolving issues in the rviz plugins and enabling the BT navigator to better handle exceptions and muxing states * working nav through poses complete MVP, just cleanup now * bookkeeping up to date * linting updates + launch file parameter change updates * additional removal of patches from individual BT parameterization * adding find BT node for path removal points * remove extraneous file * adding to readme * linting * adding missing comma * moving try catch to another part of the code * create fake servers for BT system tests * clean exiting * unit BT tests * fixing typo * switch poses for pose * adding system test to nav through poses * fixing merge conflict issue * fix conflicts with 2246 * function conflict test resolution * fix linting * adding missing test dependencies (#2293) * Including new algorithms in build table badges (#2294) * fixing doxygen filepath * adjusting new files for tb3 model (#2298) * audited and removed unnecessarily complex launch configurations (#2295) * fix unsigned long comparison (#2310) * RCLCPP_INFO -> RCLCPP_DEBUG (#2311) * fix https://github.com/ros-planning/navigation2/issues/2312 (#2313) * [WIP] Fix for wings artifacts: adding new filters entity to separately update costmaps (#2308) * Fix for wings artifacts: adding new filters entity to separately update costmaps * Update nav2_costmap_2d/src/layered_costmap.cpp Co-authored-by: Steve Macenski <[email protected]> * Fix review items * Fix/add tests * Rename costmaps Co-authored-by: Steve Macenski <[email protected]> * [nav2_lifecycle_manager] Support namespaced LifecycleManagers (#2309) * remove '/' from node name * add namespace argument * use namespace for service client node creation * ns instead of namespace_ * const * ns instead of namespace_ in lifecycle_node too * lint * fix AttributeError in nav2_gazebo_spawner (#2322) * removed name parameter from rviz_launch.py (#2321) Co-authored-by: Simon Honigmann <[email protected]> * checking if handle is active in handle_cancel (#2304) * Open option to use parent node in lifecycle Manger Client (#2328) * open option to use parent node * add constructor and clean * Validate codecov script against checksums. (#2330) After the recent Codecov security incident[1] I've been reviewing codecov usage across ROS repositories. This repository is fetching the codecov bash uploader without performing the recommended validation step. The validation step does not appear to have been widely explained or publicised and even the official codecov GitHub action was not validating the script until the recent security incident. I have made an attempt to validate the bash uploader here. [1]: https://about.codecov.io/security-update/ * Fix script error introduced in #2330 (#2335) `local` in bash can only be used within a function context. * Goal Checker selector (#2269) * goal checker selector * updating main nav yaml configuration file to support multiple goal checkers * imised defaiñt gpañ cjecler àra,eter * changes requested in the PR * improving selector subscribers for laching behavior * fixing cpplint uncristify style * fixing issues * setting original yaml configuration for the general_goal_checker * the usage of the goal_checker vector now totally mimic the controller vector * [Selector Actions] re-enabling back transient local for subscribers and tests * commit failure on non default avaialable * Some comments in selector behaviors code and some aesthetic changes * fixing some linting issues * minor linting error Co-authored-by: Steve Macenski <[email protected]> * Use incremental timeouts in spin_until_future_calls during BT execution to handle large server timeouts (#2320) * Use incremental timeouts in spin_until_future_calls during BT execution Signed-off-by: Sarthak Mittal <[email protected]> * Fix tests Signed-off-by: Sarthak Mittal <[email protected]> * Fix tests * Remove unnecessary timeout_ variable Signed-off-by: Sarthak Mittal <[email protected]> * Reset goal_sent on terminal conditions Signed-off-by: Sarthak Mittal <[email protected]> * Rename variables and refactor timeout logic Signed-off-by: Sarthak Mittal <[email protected]> * Fix timeout logic and add tests Signed-off-by: Sarthak Mittal <[email protected]> * Updates tests to ensure previous node state does not leak into new cycles Signed-off-by: Sarthak Mittal <[email protected]> * Change goal_handle_ checks to future_goal_handle_ Signed-off-by: Sarthak Mittal <[email protected]> * Remove goal handle reset in halt * Update server_timeout to 20ms and inherit BtServiceNode from BT::ActionNodeBase Signed-off-by: Sarthak Mittal <[email protected]> * Add action feedback information to nav2 rviz panel (#2338) * Add action feedback information to nav2 rviz panel Signed-off-by: Sarthak Mittal <[email protected]> * Reset based on goal status Signed-off-by: Sarthak Mittal <[email protected]> * Add goal handle resets on goal completeion Signed-off-by: Sarthak Mittal <[email protected]> * Move CI from ROS2 master to Rolling (#2339) * Update Dockerfiles and Dockerhub to rolling * Comment out packages avalable in rolling * Install RMWs as CI dependencies * Rebuild CI images when there are dependency updates (#2344) * Trigger dockerhub build when ros2 has updates * Apt upgrade in dockerfile to avoid dockerhub build trigger loops when latest ros docker image is outdated as compared to latest sync ros2 list repo * Update CI to use colcon cache (#2343) * Disable dockerhub workflow for testing * Disable debug jobs for testing * Disable extra rmw jobs for testing * Rename docker images for testing * Default to cache from main branch * Use colcon cache * Install colcon cache * Fix xargs typo * List names only * Checksum overlay ws src after restore and store to restore ws cache for incremental builds * Disable test jobs * Revert checksum update but use underlay src * Only cache ws build and install folder to avoide overwritting ws src folder with restore * Don't remove git files from underlay so vcs tools can export underlay to checksum * Save build cache regardless of failure * cache tests * Update colcon cache * No need to remove log folder as its no longer cached * Bypass .dockerignore for dockerhub build hooks to include .git folder in overlay for colcon cache * Simplify checkout now that underlay and overload have lockfiles * Remove overlay src folder for checkout * Echo env for debug * Use if checks for empty package sets as --packages-above with empty args will not skip any package * Save workspace log to cache * Set TEST_PACKAGES to empty instead of skipping * Update colcon cache * Update colcon cache * Explicitltly list packages to build using an environment variable * Enable debug and nightly jobs * Test all packages if cache_test is false * Revert testing fork changes * Install pip in rolling image * Rename checksum file to lockfile.txt * Config formatting * Simplify testing * Update BT nodes to use callback groups / executors to process (#2334) * Update BT nodes to use callback groups / executors to process implement #2251 * add executor to other BT nodes * use spin_some in is_battery_low BT condition * fix merge * remove spinning thread * Uncrustify code formatting (#2349) * Update invalid parameter exception handling (#2347) * Rename rclcpp parameter exception The parameter exception name is being changed in https://github.com/ros2/rclcpp/pull/1673 Signed-off-by: Jacob Perron <[email protected]> * Exception is thrown when getting the parameter Signed-off-by: Jacob Perron <[email protected]> * Fix test Signed-off-by: Jacob Perron <[email protected]> * Fix typo Signed-off-by: Jacob Perron <[email protected]> * bumping galactic to 1.0.0 * adding pytest depend for nav2-util (#2355) * bump galactic to 1.0.1 for re-release * Galactic sync 1 : All commits before May 24 (#2363) * reset all goal checkers on cleanup state (#2354) * Fix map_saver_cli arguments not parsed well (#2362) Fixes #2358 * bumping to 1.0.2 for re-release with updates Co-authored-by: Carlos Andrés Álvarez Restrepo <[email protected]> * add missing test dependencies * bumping to 1.0.3 * adding pytest dependency for lifecycle (#2369) * release for 1.0.4 for lifecycle depends fix * adding missing test dependencies * bumping to 1.0.5 * Galactic syncing recent master PRs (#2384) * Fix SEGV caused by goal_handle_ which is nullptr while result_callback called (#2356) * Fix SEGV caused by goal_handle_ which is nullptr while result_callback called * Ignoring the goal result if a new goal request sent * Fix nav2_gazebo_spawner not working while namespace is empty (#2357) Co-authored-by: Kaven Yau <[email protected]> * Update regulated_pure_pursuit_controller.cpp (#2396) * Galactic sync 2 (June 9) (#2400) * Increasing nav through poses remove point tolerance to 0.7 (#2387) * bump to 1.0.6 for rerelease with galactic sync 2 * Followup to PR 2413 for galactic branch (fix for operator= in observation.hpp) (#2424) * in observation.hpp fixed operator= * style fix * Feature addition: capability for the RRP to drive the robot backwards (#2443) * Feature addition: capability for the RRP to drive the robot backwards * findDirectionChange(): returns maximum double value + removing the size check for the indexer in for loop * satisfying ament_uncrustify and ament_cpplint * removing the unnecessary condition in the cusp determination * Satisfying ament_uncrustify - 2 * Galactic sync 3 (July 13) (#2449) * missing comma in bt_navigator plugin list (#2447) * Reduce nodes for nav2_waypoint_follower (#2441) * Reduce node of waypoint_follower by using callback group and executor Signed-off-by: zhenpeng ge <[email protected]> * fix linting failures Signed-off-by: zhenpeng ge <[email protected]> * Add lazy_theta_star (#1839) * Add lazy_theta_star * Added license * Added license * Update lazy_theta_star_b.cpp * restructured files - separated planner part and the algorithm - implemented all the changes as suggested * restructured files * Update CMakeLists.txt * removed unnecessary comments * removed comments * Delete planner.cpp * Delete lazy_theta_star_b.cpp * Delete lazy_theta_star_b.h * Delete planner.h * Delete CMakeLists.txt * Delete global_planner_plugin.xml * Delete package.xml * replaced the files - refactored code - improved reliability - have to write a code similar to that in nav2_system_tests, to test it (working on it) * removed comments * removed comments * Update lazy_theta_star2.cpp * update files - replaced manual management of priority queue with stl priority queue - added the parameter ".lethal_cost" - removed unnecessary parameters passed to the functions * update files - updated the header files in accordance to their .cpp counterparts * Delete lazy_theta_star2.h * Delete lazy_theta_star_planner.h * Delete lazy_theta_star2.cpp * Delete lazy_theta_star_planner.cpp * Delete CMakeLists.txt * Delete package.xml * Delete global_planner_plugin.xml * upload the changed code Changes from last time are: - the code has been changed to the Lazy Theta* P variant, in order to account for the costmap traversal costs - parameters are available to change the weights of the costmap traversal cost (weight = 1.75, as of now) and the distance function (weight = 1.0, as of now - * Delete lazy_theta_star_p_planner directory * Replace the old files - the structure of code has been changed - new functions have been added, namely : getTraversalCost, getEuclideanCost, getCellCost, isSafe[it is now an overloaded function] - documentation added for variables and functions - the parameters for the planner now consists of : how_many_corners, costmap_tolerance, euc_tolerance (documentation to added soon) - fixed a bug where the incorrect traversal cost of the node was taken * Delete lazy_theta_star_p_planner directory * update the files - renamed the project to nav2_theta_star_planner from lazy_theta_star_p_planner - renamed files from lazy_theta_p_planner.hpp/.cpp to theta_star_planner.hpp/.cpp and lazy_theta_star.hpp/.cpp to theta_star.hpp/.cpp - added a readme file outlining the parameters, usage notes and images to be added soon - added parameters and renamed the parameters for the cost function (costmap_tolerance -> w_traversal_cost ; euc_tolerance -> w_euc_cost ; added a parameter for the heuristic) - replaced the SharedPtr with a WeakPtr for node - removed +1 and the pusher_ variable added to compensate for it * Update README.md * update the code - linted the code - **updates to readme, are still pending** - changed the type of message from INFO to DEBUG - replaced the capital letters with the smaller ones * update the readme file * Update README.md * Update README.md * Update README.md * Update README.md * Delete global_planner_plugin.xml * fix the linting issues * remove the space on line 7 * change RCLCPP_INFO to RCLCPP_DEBUG * Update README.md * Add test coverage - added tests to check the algorithm itself and its helper functions - added smoke test to detect plugin level issues - inlined some functions - shifted the functions `setStartAndGoal()` and `isSafeToPlan()` to the ThetaStar class - removed the functions `dist()` and `getCellCost()` from the ThetaStar class * update the test file * update the test file * Update README.md * Update README.md * Update README.md * add test on the size of the output path * Update README.md * Update README.md * change the function name from `isSafeToPlan()` to `isUnsafeToPlan()` * update the files - inlined the functions `getIndex` and `addIndex` - removed typos from the comments * fix typos * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * fix the typo - the first isSafe calls output wasn't negated, it has been fixed * Update theta_star.hpp - added the `getCost()` function (again) - replaced the use of indices with pointers to store the node's data, changes were made to the following functions - `addIndex()`, `getIndex()`, `initialisePosn()`. - the priority queue now stores the pointer to node's data and accordingly changes were made to `comp` struct - the global variable `curr_node` was renamed to `exp_node` - removed the struct `pos` * Update theta_star.cpp * update default parameters * update default parameters * Update README.md * update the test file * fix linting issues * Update README.md * Update README.md * Update README.md * Update theta_star_planner.cpp * update LETHAL_COST * update README.md * update dependency list * Update package.xml * Name bt_navigator action nodes uniquely (#2410) Co-authored-by: Jonatan Olofsson <[email protected]> * Hybrid-A* optimizations and completion without on-going State Lattice work (#2404) * major smac planner collision checking speedups and improvements * fix linting errors * wireframe for state lattice node * finishing boilerplate changes * adding more context to each TODO and notes about path to completion * prototype for the base plugin + refactor out common logic for all planners * commiting speed up work in progress * adding in improvements to overall user quality of life * pushing updates to 2D for faster / smoother; hybrid for smoother and new heuristic function; a bit of rearchitecture; deprecating smoother to make room for a new one * adding smoother prototype * adding orientation guestimator * correcing 2d * done with smoother * enabling collision checking full SE2 only when under inscribed cost according to current exponential decay function * adding doxgyen on new function * linting * testing working * fixing looping at end of paths + simplifying code * fixed cost-based issue in smoother * finishing touches on smoothing * smoother recursion fix + crashing issue resolved * incremental changes * completed hybrid A* plannern * adding images * purge state lattice work to merge in just Hybrid-A* improvements * linting Co-authored-by: simutisernestas <[email protected]> Co-authored-by: gezp <[email protected]> Co-authored-by: Anshumaan Singh <[email protected]> Co-authored-by: Jonatan Olofsson <[email protected]> Co-authored-by: Jonatan Olofsson <[email protected]> * SMAC Planner: Treating "inscribed" costs not as collision anymore (#2464) * Update regulated_pure_pursuit_controller.cpp (#2484) * Galactic sync 4 (Sept 15) (#2561) * Adding launch_testing_ros dep on nav2 utils to install (#2450) * Reduce map saver nodes (#2454) * reduce MapSaver nodes by using callback group/executor combo Signed-off-by: zhenpeng ge <[email protected]> * set use_rclcpp_node false * a cleaner solution using a future and spin_until_future_complete() Signed-off-by: zhenpeng ge <[email protected]> * Update nav2_controller.cpp (#2462) Add `costmap_thread_.reset()` on the destructor of ControllerServer class * Reduce lifecycle manager nodes (#2456) * remove bond_client_node_ in class LifecycleManager Signed-off-by: zhenpeng ge <[email protected]> * clear unused variables Signed-off-by: zhenpeng ge <[email protected]> * fix lint Signed-off-by: zhenpeng ge <[email protected]> * use dedicated executor thread Signed-off-by: William Woodall <[email protected]> * fix building error Signed-off-by: zhenpeng ge <[email protected]> * support to process executor for NodeThread Signed-off-by: zhenpeng ge <[email protected]> * use NodeThread for LifecycleManager Signed-off-by: zhenpeng ge <[email protected]> Co-authored-by: William Woodall <[email protected]> * sync with main and use ros_diff_drive in case name changes (#2472) Co-authored-by: YOUSSEF LAHROUNI <[email protected]> * Nav2 Simple (Python3) Commander Library (#2411) * adding nav2_python_commander package * adding readme * launch files for the python commander examples * renaming to nav2_simple_commander * resolve review comments * fixing rosdep key * fixing up linters * Python string format (#2466) * Convert to python format strings for readability * Merge concatenated strings * Revert converting generated files * Single quotes for consistency * Just print the exception * Fix Smac cleanup (#2477) * fix smac2d cleanup * same for hybrid * Naming BT client node after action name (#2470) * Put action name in node namespace instead of node name * Put namespace remapping in node options * Rename client node with action name replacing "/" by "_" * Code formatting * Code formatting * fix nav2 params and launch file to publish Local and global costmaps in multi robots example (#2471) * adjust launch file with needed gazebo plugin and set groot to False for multi-robot params * correct unwanted changes * change port and set groot to false * fix lints Co-authored-by: YOUSSEF LAHROUNI <[email protected]> * [SmacPlanner2D] make tolerance parameter dynamic (#2475) * make tolerance dyn param * full reconfigure * fix typo * Place function above the variables * lock param callback * Modify the BtServiceNode to include an on_success call. (#2481) * Modify the BtServiceNode to include an on_success call. * PR: Fix linter error by removing trailing whitespaces. * PR: Rename on_success() to on_completion() to improve understandability. * Accept path of length 1 (#2495) * Fix null pointer in amcl on_cleanup (#2503) * fix data race: addPlugin() and resizeMap() can be executed concurrently (#2512) Co-authored-by: Kai-Tao Xie <[email protected]> * fix data race: VoxelLayer::matchSize may be executed concurrently (#2513) Co-authored-by: Kai-Tao Xie <[email protected]> * catch runtime_error if the message from laser is malformed (#2511) * catch runtime_error if the message from laser is malformed * fix styling Co-authored-by: Kai-Tao Xie <[email protected]> * Smac planner bad alloc (#2516) * test(nav2_smac_planner): show short path bad_alloc When given a goal that is one or zero costmap cells away, AStarAlgorithm throws std::bad_alloc * fix(nav2_smac_planner): fixed bad_alloc * [ObstacleLayer] Use message_filter timeout (#2518) * , tf2::durationFromSec(transform_tolerance) * use message_filter timeout in AMCL * also for sensor_msgs::msg::PointCloud2 * fix possible use-after-free: unsafe shared_ptr in multithread (#2510) Co-authored-by: Kai-Tao Xie <[email protected]> * fix export dependency and library (#2521) Signed-off-by: zhenpeng ge <[email protected]> * Add more semantic checks for amcl parameters (#2528) * Fix null pointer in amcl on_cleanup * Add more semantic checks for amcl * fix possible use-after-free: unsafe shared_ptr in multithread (#2530) Co-authored-by: Kai-Tao Xie <[email protected]> * Hot fix rrp slow (#2526) * review update * updated the 2nd review comments * String formatting * Fix out of voxel grid array regression (#2460) * Update dwb_local_planner.hpp (#2533) Add remarks * Add new test for smac_planner_2d (#2531) * Add new test for smac_planner_2d * Fix costmap initialization * Change set_parameters() with set_parameters_atomically() * Improving coverage * Remove debug helper method * Fix linting issue introduced in https://github.com/ros-planning/navigation2/pull/2533 (#2539) * [All 2D planners] Fix last pose orientation, fix small path and add ignore_goal_orientation parameter (#2488) * end point orientation * add ignore_goal_orientation to dyn param * back() instead of [path.poses.size() - 1] * Smac2d use_final_approach_orientation name * add in NavFn * add in theta_star * wip * deal with navfn double end pose case * add tests * back and revert test smac2d * get path hotfix * navfn wip * Corner cases * Checks consistency accross the 3 2D planners * comment * interpolate final orientation in planner instead of smoother * clarify and homogenize comments * using same cell test instead of distance compared to resolution * remove unneeded else * lint * fix smac2d goal orientation override * fix and add tests * update comment * typo * simplify if (_use_final_approach_orientation) block * Use worldToMapEnforceBounds in clear_costmap_service (#2544) to avoid buffer overflow Signed-off-by: zouyonghao <[email protected]> * Add new test for nav2_regulated_pure_pursuit (#2542) * unit test for findDirChg * lint fix * add test for unchanged direction * fix for loop ending * Enabled runtime configuration of parameters for Hybrid A* (#2540) * Enabled runtime configuration of parameters for Hybrid A* * Fix parameter name * Fix parameter type * fix pf_ use-before-initial in laserReceived() callback (#2550) Co-authored-by: Kai-Tao Xie <[email protected]> * add semantic checks (#2557) Co-authored-by: Kai-Tao Xie <[email protected]> * bumping galactic to 1.0.7 * Updates to Nav2 Theta Star Planner docs (#2559) * - removing 'w_heuristic_cost_' from Nav2 Theta Star Planner as a user configurable parameter - updates to `nav2_theta_star_planner/README.md` to remove its reference wherever applicable - updates to `nav2_theta_star_planner/src/theta_star_planner.cpp` to set `w_heuristic_cost` as `std::min(1.0, w_euc_cost_)` - fixed an incorrect check of whether the start and goal pose are the same in `nav2_theta_star_planner/src/theta_star_planner.cpp` * Update theta_star_planner.hpp clean up stuff from forced merge * Update theta_star_planner.cpp clean up stuff from a forced merge * Update README.md * Update theta_star_planner.cpp Re-adding the goal to ensure, that the last pose, is the goal exactly * fix linting issues * Update theta_star_planner.cpp Co-authored-by: Steve Macenski <[email protected]> * Fixed vector::reserve exception in smac planner due to precision error (#2563) - Related issue: https://github.com/ros-planning/navigation2/issues/2547 Co-authored-by: gezp <[email protected]> Co-authored-by: harderthan <[email protected]> Co-authored-by: William Woodall <[email protected]> Co-authored-by: Yousseflah <[email protected]> Co-authored-by: YOUSSEF LAHROUNI <[email protected]> Co-authored-by: Tim Clephas <[email protected]> Co-authored-by: G.Doisy <[email protected]> Co-authored-by: anaelle-sw <[email protected]> Co-authored-by: philison <[email protected]> Co-authored-by: Yong-Hao Zou <[email protected]> Co-authored-by: easylyou <[email protected]> Co-authored-by: Kai-Tao Xie <[email protected]> Co-authored-by: Adam Aposhian <[email protected]> Co-authored-by: Pradheep Krishna <[email protected]> Co-authored-by: Alexey Merzlyakov <[email protected]> Co-authored-by: Luca Bonamini <[email protected]> Co-authored-by: Sathakkadhullah <[email protected]> Co-authored-by: Anshumaan Singh <[email protected]> Co-authored-by: zoltan-lengyel <[email protected]> * Fixed model loading issue with Gazebo and Rviz2 (#2572) 1. Update uri(model://) of dae files for waffle model in waffle.model(Gazebo uses) 2. Update uri(package://) of dae files for turtlebot3_waffle.urdf(Rviz2 uses) * Create mergify.yml (#2602) (#2604) * Create .mergify.yml * Rename .mergify.yml to mergify.yml (cherry picked from commit 637e29064526ffb2fcf2a42c35544d4e19e08ff8) Co-authored-by: Steve Macenski <[email protected]> * Fixes for Windows into main (#2603) (#2606) * Fix nav2_util * Don't include libgen.h on Windows * Replace sleep with Sleep on Windows * Fix rviz plugin Undef NO_ERROR from windows headers * Fix smac_planner * Define _USE_MATH_DEFINES for M_PI * Replace uint with unsigned int * Don't add compiler flags that aren't supported on MSVC * Use vector instead of VLA when building with MSVC * Fix dirname for \ paths * Fix typo * Fix linter (cherry picked from commit 82ce6ca871ae07e9788fdb77c2f8367ee554b7db) Co-authored-by: Akash <[email protected]> * Modified the projection_time calculation (#2609) * Resolving 2574: Smac 2D on map (#2588) (#2638) * Fixed model loading issue with Gazebo and Rviz2 1. Update uri(model://) of dae files for waffle model in waffle.model(Gazebo uses) 2. Update uri(package://) of dae files for turtlebot3_waffle.urdf(Rviz2 uses) * fixing off map expansions Co-authored-by: aliben <[email protected]> (cherry picked from commit 10420bacc1f4d38c9a72355c183a9e835c90a584) Co-authored-by: Steve Macenski <[email protected]> * backporting 2631 to galactic (removing kinematic limiting) (#2645) * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * merging * fix merging * fix merging * fix merging * fix merging * fix merging * fix merging * fix merging * fix merging * fix merging * fix merging * fix merging * fix merging * align to galactic (#231) * align to galactic * align params * galactic version * galactic version * still need this commit due to broken master * remove groot * add dependency used in one of the nodes * add angles back * add find for package * fix initialization warning * remove needless dependencies * add teb_local_planner dependency * remove g2o from repos * remove gazebo for xavier (temp change) * fix build * AMRFM-1318 Make nav2_navigator's current_goal private (#235) * [AMRFM-1318] Initial commit * [AMRFM-1318] Change the way ports are specified * Revert Goal_id-related changes * delete missed file * Fix import (#246) * AMRFM-1348 pickup from roller belt (#243) * Fix: Amr communicator bringup and going to charging (#248) * fix launch of amr_communicator * realsense IDs * fix passing of agv_action to subtree * Task amrfm 1304 charging stations (#247) * remove charging station pose * realsense IDs * fix launch of amr_communicator * fix passing of agv_action to subtree * remove out NarrowPreAproach for prevent oscillation (#249) * [AMRFM-1319] Added barcode scanning cameras (#245) * [AMRFM-1319] Added barcode scanning cameras * [AMRFM-1319] Fix inertia * Amrfm 1416 node check bin type is not recognized (#251) fix for Check bin type node * Qos config for realsense plugin (#227) additional Qos config for realsense plugin * AMRFM-1184 Drive to waiting area if rack is assigned to another AMR (#230) * draft of behaviour * draft of behaviour * draft of behaviour * draft 2 * added requested change * draft * supply rack_id * draft * fixes * fixes * fixes * timing fix * small edit *…
Description of contribution in a few bullet points
equivalent of this ros-navigation pull request: