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

foxy Sync 5.1 #2291

Merged
merged 18 commits into from
Apr 5, 2021
Merged

foxy Sync 5.1 #2291

merged 18 commits into from
Apr 5, 2021

Conversation

SteveMacenski
Copy link
Member

New sync to foxy:

Groot monitoring
New Regulated pure pursuit controller
various bug fixes and small features like parameterizations

naiveHobo and others added 17 commits April 5, 2021 15:39
* 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
* 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>
* Write doxygen for navfn

* Remove forward slashes
* make the 3 params changeable at runtime

* use parameter events callbacks

* doxygen

* lint
* Remove dependency on collision checking to carrot location

* Fix i removal

* changing API to be consistent with collision updates
* working on canceling state machine for waypoint mode

* fixing cancelation logic

* fix linting isue
@SteveMacenski SteveMacenski mentioned this pull request Apr 5, 2021
@SteveMacenski SteveMacenski changed the title Sync5.1 foxy Sync 5.1 Apr 5, 2021
@SteveMacenski SteveMacenski merged commit 5c9cb96 into foxy-devel Apr 5, 2021
@SteveMacenski SteveMacenski deleted the sync5.1 branch April 5, 2021 23:11
@matthews-jca
Copy link

For anyone updating to 0.4.7, this merge does have a breaking change in the api. We run a forked BT Navigator to simplify running of our trees.
We also appreciate that groot is able to monitor too.
The breaking api change is documented here.
8ac97cb

ghost pushed a commit to logivations/navigation2 that referenced this pull request Mar 7, 2022
* 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 <Marco.Lampacrescia@de.bosch.com>

* 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 <32988490+Michael-Equi@users.noreply.github.com>

* Add has_node_params launch utility (ros-navigation#2257)

* corrected backup plugin name for multirobot params (ros-navigation#2288)

Co-authored-by: Simon Honigmann <shonigmann@blueorigin.com>

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

* 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 <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 (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 <sarthakmittal2608@gmail.com>
Co-authored-by: Florian Gramß <6034322+gramss@users.noreply.github.com>
Co-authored-by: ChristofDubs <christof.dubs@gmx.ch>
Co-authored-by: Shrijit Singh <shrijitsingh99@gmail.com>
Co-authored-by: Phone Thiha Kyaw <mlsdphonethk@gmail.com>
Co-authored-by: simutisernestas <35775651+simutisernestas@users.noreply.github.com>
Co-authored-by: G.Doisy <doisyg@users.noreply.github.com>
Co-authored-by: Uladzslau <79460842+Uladzslau@users.noreply.github.com>
Co-authored-by: Erwin Lejeune <erwin.lejeune15@gmail.com>

* 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 <paucarre@cm-robotics.com>

* fix merge errors

* not currenlty used -> no need to depend on it

Co-authored-by: Homalozoa X <21300069+paeunt@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Albert Yen <acyen8@hotmail.com>
Co-authored-by: MarcoLm993 <65171491+MarcoLm993@users.noreply.github.com>
Co-authored-by: Victor Lopez <3469405+v-lopez@users.noreply.github.com>
Co-authored-by: Michael Equi <32988490+Michael-Equi@users.noreply.github.com>
Co-authored-by: shonigmann <simonhonigmann@gmail.com>
Co-authored-by: Simon Honigmann <shonigmann@blueorigin.com>
Co-authored-by: Sarthak Mittal <sarthakmittal2608@gmail.com>
Co-authored-by: Florian Gramß <6034322+gramss@users.noreply.github.com>
Co-authored-by: ChristofDubs <christof.dubs@gmx.ch>
Co-authored-by: Shrijit Singh <shrijitsingh99@gmail.com>
Co-authored-by: Phone Thiha Kyaw <mlsdphonethk@gmail.com>
Co-authored-by: simutisernestas <35775651+simutisernestas@users.noreply.github.com>
Co-authored-by: G.Doisy <doisyg@users.noreply.github.com>
Co-authored-by: Uladzslau <79460842+Uladzslau@users.noreply.github.com>
Co-authored-by: Erwin Lejeune <erwin.lejeune15@gmail.com>
Co-authored-by: Jovian Dsouza <dsouzajovian123@gmail.com>
Co-authored-by: Pau Carré Cardona <pau.carre@gmail.com>
Co-authored-by: Pau Carre <paucarre@cm-robotics.com>
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.

10 participants