Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replaced sensor_msgs/PointCloud to sensor_msgs/PointCloud2 #2263

Merged
merged 11 commits into from Mar 31, 2021
Merged

Replaced sensor_msgs/PointCloud to sensor_msgs/PointCloud2 #2263

merged 11 commits into from Mar 31, 2021

Conversation

saching13
Copy link
Contributor

@saching13 saching13 commented Mar 22, 2021

Basic Info

Info Please fill out this column
Ticket(s) this addresses #1967
Primary OS tested on Ubuntu
Robotic platform tested on gazebo simulation of Turtlebot3 Waffle

Description of contribution in a few bullet points

  • Replaced PointCloud Msg and publishers with PointCloud2
  • Changed a rclcpp publisher created from lifecycle node to lifecycle publisher
  • Modified the base_obstacle_test.cpp to remove PointCloud as arg to `addCriticVisualization

Description of documentation updates required from your changes

  • Change the documentation of addCriticVisualization(...) under TrajectoryCritic, BaseObstacleCritic and MapGridCritic

Future work that may be required in bullet points

For Maintainers:

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

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
@saching13 saching13 changed the title Sachin pointcloud2 patch Replaced sensor_msgs/PointCloud to sensor_msgs/PointCloud2 Mar 22, 2021
Copy link
Member

@SteveMacenski SteveMacenski left a comment

Choose a reason for hiding this comment

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

I can see why this took a little bit, that DWB visualization was convoluted as hell before you even stepped foot in here and the complexities of working with PC2's certainly made that harder.

This overall looks very good, only superficial things we should work on

nav2_costmap_2d/plugins/voxel_layer.cpp Outdated Show resolved Hide resolved
nav2_costmap_2d/plugins/voxel_layer.cpp Outdated Show resolved Hide resolved
nav2_dwb_controller/dwb_critics/src/map_grid.cpp Outdated Show resolved Hide resolved
nav2_costmap_2d/src/costmap_2d_cloud.cpp Outdated Show resolved Hide resolved
nav2_dwb_controller/dwb_core/src/publisher.cpp Outdated Show resolved Hide resolved
@SteveMacenski
Copy link
Member

SteveMacenski commented Mar 22, 2021

I also noticed you didn't use the PC2 Modifier object: https://github.com/ros2/common_interfaces/blob/master/sensor_msgs/include/sensor_msgs/point_cloud2_iterator.hpp#L47-L70

Is there a reason for that? It may have made some things simpler, it'll handle some of the field stuff for you. An example of how people use it right now is in this post https://discourse.ros.org/t/proposal-for-a-new-pointcloud2iterator-pointcloud2modifier/19122 (though note the general post is about adding a new PC2 util which does not yet exist)

It also deals with the offsets for you! https://github.com/ros2/common_interfaces/blob/975f1ce52645a9eabe27a222ceb43bbbba268956/sensor_msgs/include/sensor_msgs/impl/point_cloud2_iterator.hpp#L101

I think it could largely simplify all 3 of the major places you have to populate pointclouds

@saching13
Copy link
Contributor Author

I can see why this took a little bit, that DWB visualization was convoluted as hell before you even stepped foot in here and the complexities of working with PC2's certainly made that harder.

Actually, it didn't take much time to implement.
I took some time initially to understand how to test.
I spent a lot of time trying to figure out why clearing_endpoints_ is not working during testing.

I saw the modifier but I don't recall why I chose not to use it.
But now that I look at it again and the post. it makes more sense to use it.
Should I change it?

@SteveMacenski
Copy link
Member

I'd recommend it, I think it would simplify this code alot more for later modification / reading since it would abstract out alot of the field / offsets work

@saching13
Copy link
Contributor Author

I changed to use Modifier for voxel_layer and costmap_2d_cloud.
But It looks like I cannot call setPointCloud2Fields repetitively in a loop from publisher in dwb_core.
Any suggestions?

if only offset was private member here :p

@SteveMacenski
Copy link
Member

Can you point specifically to where you have the issue with DWB and what the error is?

@saching13
Copy link
Contributor Author

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
@codecov
Copy link

codecov bot commented Mar 24, 2021

Codecov Report

Merging #2263 (ccb27e1) into main (3bf1f7a) will decrease coverage by 0.54%.
The diff coverage is 13.79%.

❗ Current head ccb27e1 differs from pull request most recent head da008d1. Consider uploading reports for the commit da008d1 to get more accurate results
Impacted file tree graph

@@            Coverage Diff             @@
##             main    #2263      +/-   ##
==========================================
- Coverage   85.06%   84.51%   -0.55%     
==========================================
  Files         254      254              
  Lines       12708    12738      +30     
==========================================
- Hits        10810    10766      -44     
- Misses       1898     1972      +74     
Flag Coverage Δ
project 84.51% <13.79%> (-0.55%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
...costmap_2d/include/nav2_costmap_2d/voxel_layer.hpp 92.30% <ø> (ø)
nav2_costmap_2d/src/costmap_2d_cloud.cpp 0.00% <0.00%> (ø)
...controller/dwb_core/include/dwb_core/publisher.hpp 100.00% <ø> (ø)
...er/dwb_core/include/dwb_core/trajectory_critic.hpp 90.00% <0.00%> (ø)
...oller/dwb_critics/include/dwb_critics/map_grid.hpp 100.00% <ø> (ø)
nav2_dwb_controller/dwb_critics/src/map_grid.cpp 58.22% <0.00%> (ø)
nav2_dwb_controller/dwb_core/src/publisher.cpp 44.72% <2.17%> (-7.03%) ⬇️
nav2_costmap_2d/plugins/voxel_layer.cpp 78.99% <45.00%> (-1.01%) ⬇️
...2_dwb_controller/dwb_critics/src/base_obstacle.cpp 97.36% <100.00%> (ø)
...re/include/dwb_core/illegal_trajectory_tracker.hpp 40.00% <0.00%> (-60.00%) ⬇️
... and 8 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3bf1f7a...da008d1. Read the comment docs.

@SteveMacenski
Copy link
Member

Fair point, I don't think you can either. Each of the adding fields clears the existing. We could add a new function to PointCloud2Modifiers to enable adding additional ones, but I think that's overkill for this PR. You can ignore the DWB stuff then

@saching13
Copy link
Contributor Author

saching13 commented Mar 24, 2021

We could add a new function to PointCloud2Modifiers

I would be happy to add it as it improves the PointCloud2Modifiers :)

@SteveMacenski
Copy link
Member

That's a whole other process itself that could take easily several weeks to months, I think we should focus here first ;-)

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
@saching13
Copy link
Contributor Author

When I run test locally using colcon test Everything passes sometimes and some different packages fails somethimes. Which is wierd ?
And on specific tests that I modifed. it failed sometimes and when I clear and rebuild it from scratch it works.
This is the command I used.
colcon test --packages-select nav2_system_tests --ctest-args -R test_speed_filter_local test_speed_filter_global test_keepout_filter

All three passes which contains my modifications. But fails on the CI..
Any suggestion on why and how I can fix this ?

@SteveMacenski
Copy link
Member

SteveMacenski commented Mar 30, 2021

[tester_node-17] [INFO] [1616959351.970963788] [nav2_tester]: ?[1;37;44mReceived cost_cloud points?[0m
[tester_node-17] [INFO] [1616959351.972979746] [nav2_tester]: ?[1;37;44mReceived Voxel Marked Points?[0m
[tester_node-17] [INFO] [1616959351.979771551] [nav2_tester]: ?[1;37;44mReceived Voxel unknown points?[0m

It may be due to excessive logging, that does take up bandwidth. The root cause is something else I've seen before that isn't your fault, but you should clean up the logs, that's too much logging (only log the first time you get something on each topic perhaps?)

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
@SteveMacenski
Copy link
Member

If you submit a PR against https://github.com/ros-planning/navigation.ros.org/blob/master/migration/Foxy.rst for adding PC->PC2 conversion, that would be great. I think that's the last major thing

@saching13
Copy link
Contributor Author

Yes. Working on it now.

Copy link
Member

@SteveMacenski SteveMacenski left a comment

Choose a reason for hiding this comment

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

If/when CI passes and docs PR, this is ready to go!

@saching13
Copy link
Contributor Author

release_test passed but debug_test failed. any idea why ?
these tests seems to pass locally though

@SteveMacenski
Copy link
Member

[bt_navigator-13] [ERROR] [1617171465.576777190] [bt_navigator]: Action server failed while executing action callback: "send_goal failed"

Isn't your fault, its unrelated

@SteveMacenski SteveMacenski merged commit aeccbe7 into ros-planning:main Mar 31, 2021
@SteveMacenski
Copy link
Member

Thanks for the hard work!

ruffsl pushed a commit to ruffsl/navigation2 that referenced this pull request Jul 2, 2021
…ing#2263)

* converted PointCloud -> PointCloud2 adn checked linting. WIP

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* modified base_obstacke_test

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* Changed to PointCloudModifier WIP

* formating fix

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* formating fix2

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* added tests for clearing_endpoints

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* removing print statements

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* added subscribers for voxel marked and cost_cloud

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* modified test cases to use single wait for all pointcloud2 subscribers

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* removed unnecessary comments and publish_cost_grid_pc from yaml file

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* Fix ament_flake issues

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>
ghost pushed a commit to logivations/navigation2 that referenced this pull request Mar 7, 2022
* 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 <sarthakmittal2608@gmail.com>

* Fix shutdown in waypoint follower test

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* 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 <fetulahatas1@gmail.com>

* resolve cmake lint errors

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* resolve requested chages of first review

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* minor corrections on photo_at_waypoint header

* resolve requested changes of second review

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* update default save_dir

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* 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 <fetulahatas1@gmail.com>

* resolve cmake lint errors

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* resolve requested chages of first review

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* minor corrections on photo_at_waypoint header

* resolve requested changes of second review

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* update default save_dir

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* 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 <fetulahatas1@gmail.com>

* adding logging and disabling

* Update nav2_waypoint_follower/plugins/photo_at_waypoint.cpp

Co-authored-by: Fetullah Atas  <fetulahatas1@gmail.com>

* Update photo_at_waypoint.cpp

Co-authored-by: jediofgever <fetulahatas1@gmail.com>

* 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 <sarthakmittal2608@gmail.com>

* Refactor costmap downsampler and fix test

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Revert costmap downsampler test changes

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* 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 <tony.najjar.1997@gmail.com> (#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 <jean-francois.dalbosco@safrangroup.com>

* 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 <sarthakmittal2608@gmail.com>

* 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 <sarthakmittal2608@gmail.com>

* Fix cpplint errors

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Remove unnecessary statements in BtActionServer

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* 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 <sarthakmittal2608@gmail.com>

* 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 <shrijitsingh99@gmail.com>

* 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 <shrijitsingh99@gmail.com>

* Resolve suggested changes

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Add documentation for cost scaling parameters

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Improve parameter descriptions

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* 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 <shrijitsingh99@gmail.com>

Co-authored-by: Shrijit Singh <shrijitsingh99@gmail.com>

* 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 <stevenmacenski@gmail.com>

* 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 <fetulahatas1@gmail.com>

* resolve cmake lint errors

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* resolve requested chages of first review

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* minor corrections on photo_at_waypoint header

* resolve requested changes of second review

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* update default save_dir

Signed-off-by: jediofgever <fetulahatas1@gmail.com>

* 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 <fetulahatas1@gmail.com>

* adding logging and disabling

* Update nav2_waypoint_follower/plugins/photo_at_waypoint.cpp

Co-authored-by: Fetullah Atas  <fetulahatas1@gmail.com>

* Update photo_at_waypoint.cpp

Co-authored-by: jediofgever <fetulahatas1@gmail.com>

* 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 <sarthakmittal2608@gmail.com>

* Add RecoverySubtreeGoalUpdated BT test

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Update readme and docs

* Add tests to check if BT XML files are well-formed

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Uncomment tests that were commented out

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: jediofgever <fetulahatas1@gmail.com>
Co-authored-by: Alexey Merzlyakov <60094858+AlexeyMerzlyakov@users.noreply.github.com>
Co-authored-by: James Ward <james.ward@appliedev.com>
Co-authored-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* 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 <Marco.Lampacrescia@de.bosch.com>

* 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 <sarthakmittal2608@gmail.com>

* Add explicit failure case

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Fix uncrustify error

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* [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 <sarthakmittal2608@gmail.com>

* 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 <sachin.guruswamy@gmail.com>

* modified base_obstacke_test

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* Changed to PointCloudModifier WIP

* formating fix

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* formating fix2

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* added tests for clearing_endpoints

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* removing print statements

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* added subscribers for voxel marked and cost_cloud

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* modified test cases to use single wait for all pointcloud2 subscribers

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* removed unnecessary comments and publish_cost_grid_pc from yaml file

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* Fix ament_flake issues

Signed-off-by: Sachin <sachin.guruswamy@gmail.com>

* 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 <sarthakmittal2608@gmail.com>

* Terminate preempt requests with different BT XML files and add log

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Remove isPreemptRequested()

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* 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 <shonigmann@blueorigin.com>

* Improve NavigationToPose action feedback (#2246)

* first commit

* Added empty line at end

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* linting

* linting

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* Variable name fix

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* changed shared_ptr to weak_ptr

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* get node handle from blackboard

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* 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 <deepaktalwardt@farmwise.io>

* lint

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* lint - pushing to rerun CI due to cc1plus failure

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* setting of current_pose in feedback msg outside of try/catch

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* added path integrator to nav2_controller for better distance feedback

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* added path integrator to nav2_controller for better distance feedback

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* fixed issue with lambda capturing class member

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* retrigger CI

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* add limits header

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* retrigger CI

Signed-off-by: Deepak Talwar <deepaktalwardt@farmwise.io>

Co-authored-by: Deepak Talwar <deepaktalwardt@farmwise.io>

* 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 <stevenmacenski@gmail.com>

* Fix review items

* Fix/add tests

* Rename costmaps

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* [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 <shonigmann@blueorigin.com>

* 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 <stevenmacenski@gmail.com>

* 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 <sarthakmittal2608@gmail.com>

* Fix tests

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Fix tests

* Remove unnecessary timeout_ variable

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Reset goal_sent on terminal conditions

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Rename variables and refactor timeout logic

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Fix timeout logic and add tests

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Updates tests to ensure previous node state does not leak into new cycles

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Change goal_handle_ checks to future_goal_handle_

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Remove goal handle reset in halt

* Update server_timeout to 20ms and inherit BtServiceNode from BT::ActionNodeBase

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Add action feedback information to nav2 rviz panel (#2338)

* Add action feedback information to nav2 rviz panel

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Reset based on goal status

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Add goal handle resets on goal completeion

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* 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 <jacob@openrobotics.org>

* Exception is thrown when getting the parameter

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix test

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* Fix typo

Signed-off-by: Jacob Perron <jacob@openrobotics.org>

* 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 <charlie_cha@outlook.com>

* 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 <kavenyau@foxmail.com>

* 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 <zhenpeng.ge@qq.com>

* fix linting failures

Signed-off-by: zhenpeng ge <zhenpeng.ge@qq.com>

* 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 <jonatan.olofsson@saabgroup.com>

* 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 <35775651+simutisernestas@users.noreply.github.com>
Co-authored-by: gezp <zhenpeng.ge@qq.com>
Co-authored-by: Anshumaan Singh <anshumaan567@gmail.com>
Co-authored-by: Jonatan Olofsson <jonatan.olofsson@gmail.com>
Co-authored-by: Jonatan Olofsson <jonatan.olofsson@saabgroup.com>

* 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 <zhenpeng.ge@qq.com>

* set use_rclcpp_node false

* a cleaner solution using a future and spin_until_future_complete()

Signed-off-by: zhenpeng ge <zhenpeng.ge@qq.com>

* 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 <zhenpeng.ge@qq.com>

* clear unused variables

Signed-off-by: zhenpeng ge <zhenpeng.ge@qq.com>

* fix lint

Signed-off-by: zhenpeng ge <zhenpeng.ge@qq.com>

* use dedicated executor thread

Signed-off-by: William Woodall <william@osrfoundation.org>

* fix building error

Signed-off-by: zhenpeng ge <zhenpeng.ge@qq.com>

* support to process executor for NodeThread

Signed-off-by: zhenpeng ge <zhenpeng.ge@qq.com>

* use  NodeThread for LifecycleManager

Signed-off-by: zhenpeng ge <zhenpeng.ge@qq.com>

Co-authored-by: William Woodall <william@osrfoundation.org>

* sync with main and use ros_diff_drive in case name changes (#2472)

Co-authored-by: YOUSSEF LAHROUNI <youssef.lahrouni@proioxrobots.com>

* 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 <youssef.lahrouni@proioxrobots.com>

* [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 <kaitaoxie@qq.com>

* fix data race: VoxelLayer::matchSize may be executed concurrently (#2513)

Co-authored-by: Kai-Tao Xie <kaitaoxie@qq.com>

* 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 <kaitaoxie@qq.com>

* 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 <kaitaoxie@qq.com>

* fix export dependency and library (#2521)

Signed-off-by: zhenpeng ge <zhenpeng.ge@qq.com>

* 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 <kaitaoxie@qq.com>

* 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 <yonghaoz1994@gmail.com>

* 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 <kaitaoxie@qq.com>

* add semantic checks (#2557)

Co-authored-by: Kai-Tao Xie <kaitaoxie@qq.com>

* 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 <stevenmacenski@gmail.com>

* 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 <zhenpeng.ge@qq.com>
Co-authored-by: harderthan <kheo1772@gmail.com>
Co-authored-by: William Woodall <william@osrfoundation.org>
Co-authored-by: Yousseflah <53279766+Yousseflah@users.noreply.github.com>
Co-authored-by: YOUSSEF LAHROUNI <youssef.lahrouni@proioxrobots.com>
Co-authored-by: Tim Clephas <tim.clephas@nobleo.nl>
Co-authored-by: G.Doisy <doisyg@users.noreply.github.com>
Co-authored-by: anaelle-sw <63144493+anaelle-sw@users.noreply.github.com>
Co-authored-by: philison <philison.dev@gmail.com>
Co-authored-by: Yong-Hao Zou <yonghaoz1994@gmail.com>
Co-authored-by: easylyou <38713965+easylyou@users.noreply.github.com>
Co-authored-by: Kai-Tao Xie <kaitaoxie@qq.com>
Co-authored-by: Adam Aposhian <adam.l.aposhian@gmail.com>
Co-authored-by: Pradheep Krishna <padhupradheep@gmail.com>
Co-authored-by: Alexey Merzlyakov <60094858+AlexeyMerzlyakov@users.noreply.github.com>
Co-authored-by: Luca Bonamini <lucabonamini28@gmail.com>
Co-authored-by: Sathakkadhullah <57533054+sathak93@users.noreply.github.com>
Co-authored-by: Anshumaan Singh <anshumaan567@gmail.com>
Co-authored-by: zoltan-lengyel <79632988+zoltan-lengyel@users.noreply.github.com>

* 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 <stevenmacenski@gmail.com>

* 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 <Ace314159@users.noreply.github.com>

* 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 <aliben.develop@gmail.com>
(cherry picked from commit 10420bacc1f4d38c9a72355c183a9e835c90a584)

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* 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

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

Successfully merging this pull request may close these issues.

None yet

2 participants