Skip to content

Add slam toolbox as exec dep for nav2_bringup #1827

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

Merged
merged 8 commits into from
Jul 1, 2020
Merged

Add slam toolbox as exec dep for nav2_bringup #1827

merged 8 commits into from
Jul 1, 2020

Conversation

Michael-Equi
Copy link
Contributor

@Michael-Equi Michael-Equi commented Jun 23, 2020


Basic Info

Info Please fill out this column
Ticket(s) this addresses (add tickets here #1827)
Primary OS tested on Ubuntu 20.04 (docker)

Description of contribution in a few bullet points

Added exec depend to the package.xml for nav2 bringup to address issue #1827

Description of documentation updates required from your changes


Future work that may be required in bullet points

Handle ceres solver dependency to the docker container

@SteveMacenski
Copy link
Member

please properly fill in the PR template.

@SteveMacenski
Copy link
Member

This will also infinitely fail until slam toolbox is released or added to the ros2_dependencies.repos file. I think you need to add it.

@SteveMacenski
Copy link
Member

@SteveMacenski
Copy link
Member

SteveMacenski commented Jun 23, 2020

Well this is a fun issue. Basically what's happening is that we're building our deps workspace work gazebo ros plugins, bt.v3, and now slam toolbox. Its looking to install dependencies but requires nav2 map server to work. Nav2 map server is in the overlay workspace, not the dependencies workspace, so it doesn't know about nav2_map_server being built after this. To get this to build, we'd have to inject slam toolbox into the navigation2 overlay workspace rather than the underlay workspace. We could do this via the circle CI file.

Whoop whoop, circular dependencies. @ruffsl, I'm not asking you to do it, but what's your take on this? Technically we have a launch option to use slam:=true which launches slam toolbox in nav2_bringup but no other code dependencies on Slam Toolbox outside of launch files. My gut says that we really should support this since its in a launch file and is an implied dependency. My brain says "meh, leave as is". If we were to do it, the major options I see are to build nav2_map_server, nav2_utils, and nav2_common in the underlay workspace so we can make use of the caching or build slam toolbox in the overlay workspace. Either way, it requires a little bit of effort

@ruffsl
Copy link
Member

ruffsl commented Jun 24, 2020

Adding all of slam tool box to the overlay will probably really slow things down, while splitting the navigation packages across the underlay and overlay workspaces may add complexity.

I recall when using some of the original TurtleBot packages for simulation, I usually had to explicitly install missing dependencies is encounter when installing just the launch file packages. It added a little friction, but the docs would tell you what to completely install. I'm guessing it helped avoid circular dependencies like this. The turtlebot 3 packages are also pretty annoying, but instead because interdependencies are too strong and so you end up having to build the entire firmware driver stack even if you only just want to use the simulation side.

Perhaps like AMCL, the map server may deserve its own repo/release that is agnostic to core navigation repo. How much has it really evolved for navigation to beyond just being a generic service for saving and publishing PNG files? I think it was its own thing in ros1, so if we did that, it could be added to the underlay, and the exec depend for slam tool box could also be explicitly declared.

@SteveMacenski
Copy link
Member

SteveMacenski commented Jun 24, 2020

I usually had to explicitly install missing dependencies is encounter when installing just the launch file packages

I'm not sure the TB3 folks being lazy is good reason for us to do so as well. As you mention, they do make it quite challenging on users which I'd like to avoid.

How much has it really evolved for navigation to beyond just being a generic service for saving and publishing PNG files?

Actually a bit and it will continue to change a bit in the future. We have some passive work that will eventually bubble up into another map server for 3D maps and another for parsing and serving semantic map information. At the moment though, we also enabled a map saver server which is new.

Moving it would be a good long term decision with AMCL, I agree.

For the immediate future, I think we have 2 options

  • Add another repos file for the overlay workspace and include slam toolbox into it, letting us explicitly include the rosdep key for it to be complete and not create some circular issues with releases
  • Continue with status quo and add some documentation and notes about this known issue.

@SteveMacenski
Copy link
Member

@Michael-Equi I think in our weekly meeting, @ruffsl had the best idea for how to proceed

  • add Slam Toolbox as an exec depend
  • In the docker images, add slam toolbox to the skip keys list

This way that if you build locally, you can rosdep slam toolbox when available, in docker you just need to compose images and add slam toolbox to it, and gets CI up and running.

Let me know if you think that's a good action.

@ruffsl
Copy link
Member

ruffsl commented Jun 26, 2020

In the docker images, add slam toolbox to the skip keys list

You'll also need to add the rosdep ignore argument to CircleCI as well.

See this previous commit for such an example: 55edf58

@Michael-Equi
Copy link
Contributor Author

I implemented those changes which results in successful runs of the docker container build and build tests. I am not sure why the release and debug tests failed, it does not look to be related to the slam toolbox exec depend.

@SteveMacenski
Copy link
Member

Rebase / pull in master to fix the mixin CI problem. Fixed in #1835

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.

One last update and we just need to get CI to pass

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.

Waiting on CI

@SteveMacenski SteveMacenski merged commit fbdace2 into ros-navigation:master Jul 1, 2020
SteveMacenski pushed a commit that referenced this pull request Aug 11, 2020
* Add slam toolbox as exec dep

* Added slam toolbox

* Changed version of slam toolbox to foxy-devel

* Added modifications to allow for exec depend of slam toolbox without breaking docker / CI

* reformatted skip keys

* Added tabs to skip key arguments

* Removed commented out code block
SteveMacenski added a commit that referenced this pull request Aug 11, 2020
* Add slam toolbox as exec dep for nav2_bringup (#1827)

* Add slam toolbox as exec dep

* Added slam toolbox

* Changed version of slam toolbox to foxy-devel

* Added modifications to allow for exec depend of slam toolbox without breaking docker / CI

* reformatted skip keys

* Added tabs to skip key arguments

* Removed commented out code block

* Add unit tests for follow path, compute path to pose, and navigate to pose BT action nodes (#1844)

* Add compute path to pose unit tests

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

* Add follow path action unit tests

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

* Add navigate to pose action unit tests

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

* adding foxy build icons to readme (#1853)

* adding foxy build icons

* adding dividers

* sync master from foxy version updates (#1852)

* sync master from foxy version updates

* syncing foxy and master

* Add unit tests for clear entire costmap and reinitialize global localization BT service nodes (#1845)

* Add clear entire costmap service unit tests

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

* Add reinitialize global localization service unit test

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

* Temporarily disable dump_params test (#1856)

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

* commenting out unused validPointPotential (#1854)

* Adding ROS2 versions to issue template (#1861)

* reload behavior tree before creating RosTopicLogger to prevent nullptr error or no /behavior_tree_log problem (#1849)

Signed-off-by: Daisuke Sato <daisukes@cmu.edu>

* Add citation for IROS paper (#1867)

* Add citation

We'll want to add the DOI once published

* Bump citation section above build status

* Fix line breaks

* Changes RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED to RCUTILS_LOGGING_BUFFERED_STREAM (#1868)

* Added parameters to configure amcl laser scan topic (#1870)

* Added parameters to configure amcl topic

* changed parameter to scan_topic and added to all the configuration files

* added scan_topic amcl param to docs

* Satisfied linter

* Move dwb goal/progress checker plugins to nav2_controller (#1857)

* Move dwb goal/progress checker plugins to nav2_controller

Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Move goal/progress checker plugins to nav2_controller

Address review comments

Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Move goal/progress checker plugins to nav2_controller

Use new plugin declaration format and doc update

Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Update bringup.yaml for new plugins in nav2_controller

Also remove redundent file from dwb_plugins
Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Fix doc errors and update remaining yaml files

Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Remove mention of goal_checker from dwb docs

Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Add .plugin params to doc

Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Tests for progress_checker plugin

declare .plugin only if not declared before

Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Tweak plugin names/description in doc

Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Follow pose (#1859)

* Truncate path finished

Signed-off-by: Francisco Martin Rico <fmrico@gmail.com>

* Follow Pose finished

Signed-off-by: Francisco Martin Rico <fmrico@gmail.com>

* Change names. Add test and doc

Signed-off-by: Francisco Martin Rico <fmrico@gmail.com>

* Change names and check atan2 values

Signed-off-by: Francisco Martin Rico <fmrico@gmail.com>

* Checking Inf/NaNs and trucate path changes

Signed-off-by: Francisco Martin Rico <fmrico@gmail.com>

* Revert changes in launcher

Signed-off-by: Francisco Martin Rico <fmrico@gmail.com>

* Documenting Tree

Signed-off-by: Francisco Martin Rico <fmrico@gmail.com>

* Update nav2_bt_navigator/README.md

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

* Update nav2_bt_navigator/README.md

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

* Change TruncatePath from decorator to action node

Signed-off-by: Francisco Martin Rico <fmrico@gmail.com>

* Update nav2_bt_navigator/README.md

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

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

* Remove Deprecated Declaration (#1884)

* Remove deprecated rclcpp::executor::FutureReturnCode::SUCCESS in favor of rclcpp::FutureReturnCode::SUCCESS

Signed-off-by: Hunter L. Allen <hunter.allen@ghostrobotics.io>

* Update nav2_util/include/nav2_util/service_client.hpp

Co-authored-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

Co-authored-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Added new costmap buffer to resize map safely (#1837)

* Added new costmap buffer to resize map safely

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Update map if the layer is not being processed.

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Updated bool name and added buffer initialization

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Fix dump params tests (#1886)

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

* Move definitions in tf_help to separate src cpp file (#1890)

* Move definitions of functions in tf_help to separate src cpp file to avoid multiple definition error

* Fix linting issues

* Make uncrustify happier

* More format fixing

* resolved the simulated motion into its x & y components (#1887)

Signed-off-by: Marwan Taher <marokhaled99@gmail.com>

* Fix nav2_bt_navigator cleanup (#1901)

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

* Adding some more test coverage (#1903)

* more tests

* removing old cmake

* remove on_errors in specific servers in favor of a general lifecycle warning (#1904)

* remove on_errors in favor of a general lifecycle warning

* adding removed thing

* simply nodes to remove lines (#1907)

* Bunches of random new tests (#1909)

* trying to get A* to work again

* make flake 8 happy

* adding cancel and preempt test

* planner tests use A*

* adding A* note

* test with topic

* Adding failure to navigate test (#1912)

* failures tests

* adding copyrights

* cancel test in recoveries

* Costmap lock while copying data in navfn planner (#1913)

* acquire the costmap lock while copying data in navfn planner

Signed-off-by: Daisuke Sato <daisukes@cmu.edu>

* add costmap lock to dwb local plannger

Signed-off-by: Daisuke Sato <daisukes@cmu.edu>

* Added map_topic parameters to static layer and amcl (#1910)

* see if spin some in cancel will allow result callback (#1914)

* Adding near-complete voxel grid test coverage and more to controller server (#1915)

* remove erraneous handling done by prior

* adding a bunch of voxel unit tests

* retrigger

* adding waypoint follower failure test, voxel layer integration tests, etc (#1916)

* adding waypoint follower failure test

* adding voxel, more logging

* reset -> clear

* minor changes to lower redundent warnings (#1918)

* Costmap plugins declare if not declared for reset capabilities (#1919)

* fixing #1917 on declare if not declared

* fix API

* adding CLI test (#1920)

* More coverage in map server tests (#1921)

* adding CLI test

* adding a bunch of new coverages for map_server

* Add in range sensor costmap layer (#1888)

* range costmap building

* range sensor layer working

* nav2 costmap pass linter and uncrustify tests

* Added back semicolon to range class

* Added docs

* Added angles dependency

* Added BSD license

* Added BSD license

* Made functions inline

* revmoed get_clock

* added input_sensor_type to docs

* Made defualt topic name empty to cause error

* using chorno literal to denote time units

* Added small initial test

* Fixed linter error, line breaks, enum, logger level, and transform_tolerance issue

* fixed segmentation fault in test and added transfrom tolerances to tf_->transform

* Got test to pass

* Added more tests

* removed incorrect parameter declaration

* Improved marking while moving tests and added clearing tests

* removed general clearing test

* changed testing helper import in test

* [Test sprint] push nav2_map_server over 90% (#1922)

* adding CLI test

* adding tests for more lines to map_server

* fix last test

* adding out of bounds and higher bounds checks

* adding planner tests for plugins working

* add cleanup

* working

* ping

* [testing sprint] final test coverage and debug logging in planner/controller servers (#1924)

* adding CLI test

* adding tests for more lines to map_server

* fix last test

* adding out of bounds and higher bounds checks

* adding planner tests for plugins working

* add cleanup

* working

* ping

* adding more testing and debug info messages

* [testing sprint] remove dead code not used in 10 years from navfn (#1926)

* remove dead code not used in 10 years from navfn

* ping

* inverting period to rate

* removing debug statement that could never be triggered by a single non-looping action server

* type change

* adding removed files

* bump to 0.4.2

* add another missing file

* add missing files

* remove some tests

* lint

* removing nav2_bringup from binaries

Co-authored-by: Michael Equi <32988490+Michael-Equi@users.noreply.github.com>
Co-authored-by: Sarthak Mittal <sarthakmittal2608@gmail.com>
Co-authored-by: Daisuke Sato <43101027+daisukes@users.noreply.github.com>
Co-authored-by: Ruffin <roxfoxpox@gmail.com>
Co-authored-by: Siddarth Gore <siddarth.gore@gmail.com>
Co-authored-by: Francisco Martín Rico <fmrico@gmail.com>
Co-authored-by: Hunter L. Allen <hunter.allen@ghostrobotics.io>
Co-authored-by: Aitor Miguel Blanco <aitormibl@gmail.com>
Co-authored-by: Joe Smallman <ijsmallman@gmail.com>
Co-authored-by: Marwan Taher <marokhaled99@gmail.com>
savalena pushed a commit to savalena/navigation2 that referenced this pull request Jul 5, 2024
* Add slam toolbox as exec dep

* Added slam toolbox

* Changed version of slam toolbox to foxy-devel

* Added modifications to allow for exec depend of slam toolbox without breaking docker / CI

* reformatted skip keys

* Added tabs to skip key arguments

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

Successfully merging this pull request may close these issues.

3 participants