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

[Suggestion] Code-modification to improve the compatibility with the latest version of the compilation environment #3891

Closed
GoesM opened this issue Oct 19, 2023 · 3 comments

Comments

@GoesM
Copy link
Contributor

GoesM commented Oct 19, 2023

[Suggestion] for code-modification for Navigation2 [within ROS2-humble, Ubuntu 22.04]

To improve the compatibility of navigation2-[ROS2-humble] with the latest version of the compilation environment

Problem Description

For most current versions of compilers, nav2_ costmap_ 2d package often fails to compile smoothly,

Compiling ROS2 humble navigation2 using the latest version of gcc (such as gcc-11,gcc-12) or LLVM compiler (such as clang-11, clang-12, clang-14) will result in the following error:

/...../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_pair.h:314:17: error: the parameter for this explicitly-defaulted copy constructor is const, but a member or base requires it to be non-const
      constexpr pair(const pair&) = default;    ///< Copy constructor

The compilation instructions we used are as follows

we had tried CC&CXX as clang-11, clang-12, clang-14, gcc-11, gcc-12 and so on, our compilation instruction format is similar to:

source /opt/ros/humble/setup.bash
export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
colcon build \
	--cmake-clean-cache \
	--cmake-args \
		-DBUILD_TESTING=OFF \
		-DCMAKE_CXX_STANDARD=17 \
		-DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} \
			-w -Wno-error -Wno-everything" \
		-DCMAKE_C_FLAGS="${CMAKE_C_FLAGS}  \
			-w -Wno-error -Wno-format-security"

It seems that only gcc-9 could complie the program smoothly, however it's a very old version

Our Suggestions for Modification

suggestion for [nav2_costmap_2d] pkg

here's our core suggestion

In navigation2/nav2_costmap_2d/include/nav2_costmap_2d/denoise/image.hpp, modify the variable type as const:

The specific modification location is indicated in the following code comments:

template<class T>
class Image
{
public:
   ...
  /**
   * @brief Create image referencing to the other
   * Share image data between new and old object.
   * Changing data in a new object will affect the given one and vice versa
   */
//Image(Image & other)
  Image(const Image & other); // add " const " here !!!
   ...

template<class T>
//Image<T>::Image(Image & other) 
Image<T>::Image(const Image & other) // add " const " here !!!
: data_start_{other.data_start_},
  rows_{other.rows_}, columns_{other.columns_}, step_{other.step_} {}

   ...

suggestion for [nav2_mppi_controller] CMakelist.txt

here's just a weak suggestion
In navigation2/nav2_mppi_controller/CMakelist.txt: Suggest adding a C++standard judgment

because it seems like that -fconcepts is not supported by other C++ standards except C++20

foreach(lib IN LISTS libraries)
  #target_compile_options(${lib} PUBLIC -fconcepts) 
  target_compile_options(${lib} PUBLIC) # we delete -fconcepts
  target_include_directories(${lib} PUBLIC include ${xsimd_INCLUDE_DIRS} ${OpenMP_INCLUDE_DIRS})
  target_link_libraries(${lib} xtensor xtensor::optimize xtensor::use_xsimd)
  ament_target_dependencies(${lib} ${dependencies_pkgs})
endforeach()

Looking forward to your reply ^_^

@jay-waves
Copy link

Meet the same problem compiling nav2 with Clang 14 using C++17 standard.

@SteveMacenski
Copy link
Member

Your PR looks fine - just needs to be targeted to the right place. I'll backport to Humble once its in main.

@SteveMacenski
Copy link
Member

Merging

SteveMacenski pushed a commit that referenced this issue Oct 24, 2023
mergify bot pushed a commit that referenced this issue Oct 24, 2023
… (#3900)

* image.hpp #3891

* Update image.hpp

(cherry picked from commit 7a7c6da)
mergify bot pushed a commit that referenced this issue Oct 24, 2023
… (#3900)

* image.hpp #3891

* Update image.hpp

(cherry picked from commit 7a7c6da)
SteveMacenski pushed a commit that referenced this issue Oct 24, 2023
… (#3900) (#3902)

* image.hpp #3891

* Update image.hpp

(cherry picked from commit 7a7c6da)

Co-authored-by: GoesM <[email protected]>
SteveMacenski pushed a commit that referenced this issue Oct 24, 2023
… (#3900) (#3901)

* image.hpp #3891

* Update image.hpp

(cherry picked from commit 7a7c6da)

Co-authored-by: GoesM <[email protected]>
RBT22 pushed a commit to EnjoyRobotics/navigation2 that referenced this issue Nov 16, 2023
RBT22 pushed a commit to EnjoyRobotics/navigation2 that referenced this issue Nov 16, 2023
redvinaa pushed a commit to EnjoyRobotics/navigation2 that referenced this issue Nov 20, 2023
kakarrot-anderson pushed a commit to floatic-unicorn/navigation2 that referenced this issue Jan 24, 2024
* Humble sync 6 June 9: 1.1.7 (ros-navigation#3616)

* Option allowing to use simple lookupTransform API (ros-navigation#3412)

* Option allowing to use simple lookupTransform API
ignoring time shifts between source and base frame during the movement

* Refine comments

* Fix wrong warning message format (ros-navigation#3416)

* Fix wrong warning message format (Closes ros-navigation#3415)

* fix code formatting

* nav2_dwb_controller: add forward_prune_distance parameter (ros-navigation#3374)

Until now, the prune_distance was used as distance threshold to shorten
the upcoming path when shorten_transformed_plan was enabled. However,
the prune and shortening mechanisms are de-correlated mechanisms. One
could wish to use a different shortening distance for upcoming points,
than the prune distance used for passed points. For this reason, a new
parameter "forward_prune_distance" was added.

* Fix service_name for server_name in cancel assisted teleop node

* Fix mask coordinates calculation in worldToMask (ros-navigation#3418)

* Remove goal checker default from follow path node

* Correct CostmapFilters copyrights (ros-navigation#3423)

* Correct the parameter description for AMCL (ros-navigation#3451)

Signed-off-by: Trung Kien <[email protected]>

* Add default service name to BTServiceNode (ros-navigation#3448)

* Add default service name to BtServiceNode

* docstring

* fix initialization-list order

* Update nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp

Co-authored-by: Steve Macenski <[email protected]>

---------

Co-authored-by: Steve Macenski <[email protected]>

* Fix Typos (ros-navigation#3452)

* removing galactic from table as EOL (ros-navigation#3460)

* Support for Dev Containers and Codespaces (ros-navigation#3457)

* Alias image tag over current branch name

* Duplicate build and push steps for dev tag

* Alias image tag over current branch name

* Modify build and push steps for dev tag

* Build and push dev tag first
to not cache from stale stages
as otherwise caching from multple regestry images seems error prone

* Revert "Build and push dev tag first"
as otherwise the build failer durring the dev tag
could then still block build of the main tag

This reverts commit 12dd5b1.

* Cache from multple reference images
while giving layers from the main tag priority
this assumes that cache-from prioritizes firstly listed references

https://github.com/moby/buildkit/blob/0ad8d61575be009ce6478edf1d85716849c8ff1a/solver/llbsolver/bridge.go#L92

* Cache tests in dev image as well
colcon cache can then skip tests for uneffected packages

* Add devcontainer.json

* Ignore doc for image builds

* Add more extensions

* Change workspaceFolder to root src path
to avoid auto generating .vscode folder in repo
created by ms-iot.vscode-ros extension
upon configuring ros packages with c_cpp_properties.json

* Enable features
for github-cli

* Add docs about codespaces
and have it opened when starting codespaces

* Update update_ci_image.yaml

to fix duplicate step ids
and add workflow file to push paths

* Patch CI actions and Dockerfiles (ros-navigation#3468)

* Unset default value for FAIL_ON_TEST_FAILURE
as unsetting it via --build-arg seems unreliable
docker/compose#3608

* Use build arg default for failing on test failers

* Update from deprecated set-output commands
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

* Use Codespaces prebuilds (ros-navigation#3470)

* Add commands to devcontainer

* Set builtin bash to be safe
https://gist.github.com/mohanpedala/1e2ff5661761d3abd0385e8223e16425
https://vaneyckt.io/posts/safer_bash_scripts_with_set_euxo_pipefail/

* Setup workspace on create

* Revert use of set -u for bash
don't raise error due to variables
otherwise colcon setup.sh chokes from using an unbounded path variable

* Add safe.directory for git config
otherwise colcon cache errors out because of issues with git
due to complex user mapping magic that vscode does with devcontainers

https://stackoverflow.com/questions/72978485/git-submodule-update-failed-with-fatal-detected-dubious-ownership-in-repositor

also used by Moveit2:
moveit/moveit2#1994

https://github.blog/2022-04-12-git-security-vulnerability-announced/

* Set env using remoteEnv
instead of inlining them in scripts

* Revert to using the main tag
now that the tester stage has been replicated
with the new devcontainer script commands instead

* formating

* Scrap `-dev` image tag
and use codspaces prebuilds instead

* Build incrementally from update content command
by copying the build workspace steps from circleci config

* Adapt the build workspace steps for bash

* Fix for different ceres isinf() API (ros-navigation#3471)

* Fixing name of security launch file

* Clean up pending service client request on interrupt/timeout (ros-navigation#3479)

Signed-off-by: Øystein Sture <[email protected]>

* Added str cast to parse int (ros-navigation#3486)

Co-authored-by: antoniomarangi <[email protected]>

* Add flag to not send request in BTServiceNode (ros-navigation#3431)

* Add flag to not send request in BTServiceNode

* rename goal to request

* Fail if should not send goal

* Update nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp

Co-authored-by: Steve Macenski <[email protected]>

* Update nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp

Co-authored-by: Steve Macenski <[email protected]>

* .

* fix linter

* fix CI

---------

Co-authored-by: Steve Macenski <[email protected]>

* Prepare test results to only use junit/xunit schema (ros-navigation#3441)

* Set ctest arg to output junit

To try and help CircleCI to parse the output files
https://stackoverflow.com/a/70774733/2577586

* Replace the original Test.xml

by outputting the junit to the same filename
Context:
https://github.com/colcon/colcon-cmake/blob/8f1b92a190b2ad4289ecf837c3200d540c13fdd9/colcon_cmake/task/cmake/test.py#L133

* Fix default formatting to a list

WARNING:colcon.colcon_defaults.argument_parser.defaults:Default value 'ctest-args' for parser 'test' should be a list, not:  --output-junit Test.xml

* Revert junit file name
https://circleci.com/docs/collect-test-data/#ctest-for-c-cxx-tests

* Fine and rename ctest summary Test.xml

* Fix find path

* Simplify extention renaming

* Copy ctest junit file into test_results
so that they can be stored by CI

* Revert ctest config modifications

* Prepare Test Results by removing Test.xml
generated by ctest
to simplify fix for circleci

* Reorder storage of test result artifacts
before Test.xml files are removed
so that they can still be archived and viewed for later

* Use find command

* Container retention via version tagging (ros-navigation#3491)

* Use github action expression syntax
to alias over github repository name

* Tag by version instead of by timestamp

* Avoid pushing untagged image to GHCR
by setting provenance to false
now that provenance is enabled by default
as of v4 of docker/build-push-action

- docker/build-push-action#781
- docker/build-push-action#778

* Use checkout action to set version output (ros-navigation#3492)

Otherwise there is no source code to use to set the version output.
Fixes: ros-navigation#3491

* Change directory to inside checked out repo (ros-navigation#3493)

or relative path under $GITHUB_WORKSPACE
that actions/checkout places the repository

* Write and read from correct output mapping (ros-navigation#3494)

* Revert "Change directory to inside checked out repo (ros-navigation#3493)"

This reverts commit 332c1fb.

* Add `version` to outputs for check step
and use output from `check` id

* Use output from check_ci_files job

* updating world in simple commander for TB3 package change (ros-navigation#3495)

* Ensure version output is always set (ros-navigation#3503)

even when github.event_name != 'push'
by moving run step to same job as build-push action.

Also set context path provided by checkout action
to avoid future nonintuitive behavoir using default Git context,
even when the checkout action appears to be being used.

- https://github.com/docker/build-push-action#git-context
- https://github.com/docker/build-push-action#path-context

* Add labels to pushed image versions (ros-navigation#3505)

using Pre-Defined Annotation Keys
as defined by The OpenContainers Annotations Spec

- https://specs.opencontainers.org/image-spec/annotations/#pre-defined-annotation-keys
- https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows
- https://docs.github.com/en/rest/repos/repos?apiVersion=2022-11-28#get-a-repository

* Typo README.md (ros-navigation#3506)

* [Velocity smoother] Set zeros command if timeout (ros-navigation#3512)

* Set zeros command if timeout

* Fix lint

* Fix gtest 

increase time to allow deceleration

* Always update last_cmd_

* Revert test modif

* remove test logs

* Fix paste error

* Update velocity_smoother.cpp

* Update velocity_smoother.cpp

* Improve Dev Container ergonomics (ros-navigation#3482)

* Install and enable bash autocompletion
by using apt durring on create command
and by copying skelton .bashrc file that sources it by default

* Edit apt for autocomplete
by disabling docker-clean from containerized ubuntu

* Add ROS2 Ament Task Provider extension
Provides tasks and problem matchers for ROS2 projects using ament

https://marketplace.visualstudio.com/items?itemName=althack.ament-task-provider

* Source underlay for extentions
to allow them to find the path to ros binaries
such as ament_cpplint needed for althack.ament-task-provider

* Target new dever stage in Dockerfile

* Reduce need for internet after image build
by installing developer dependencies earlier

* Edit apt caching before apt updating

* Source underlay systemwide
this is a hacky workarround
to ensure VS Code can run ShellExecution tasks
with the ros envorment included in PATH

otherwise, postponing this to the on-create-command
results in vscode extentions not finding system installed ros commands

this also works for all user shells
regardless of how devontainers could change the user

* Postpone bashrc setup to postCreateCommand
once the dev container has been assigned to a user for the first time

* Cleanup onCreateCommand
as we don't use ros_entrypoint.sh for development
and so it doesn't really need to be updated

* Quite down the logs when building devcontainer

* Formatting

* Add refrence ccp properties config file
generated from the vscode ROS extention
but with the hardcoded paths in includePath deleted

* Update version of cppStandard for ROS Rolling

* Update workspaceFolder to use new .vscode folder

* Mount ccache directory to volume
to speed up rebuilding devcontainer
whenever onCreateCommand is triggered
because of modifications to .devcontainer/ files

* Avoid use of containerEnv to express ccache direcotry
as doing so is not possable, for more info:
- https://stackoverflow.com/a/75759647/2577586
- microsoft/vscode-remote-release#7147 (comment)

Just target a path in the temp direcotry instead

* Stage auto generated includePath

* Remove workspace install from include path
except for autogenerated headers from message packages

* Avoid hardcoded path to sorce folder

* Avoid hardcoded path to install folder
but this is still rather fragile
as the reletive path
between workspaceFolder and the colcon workspace isn't fixed

* Sort list of paths

* Remove cpp properties configuration
as it seems it's existance prevents autoupdating the includePaths property
unless user manually runs the vscode command `>ROS:Update C++ Properties`

https://github.com/ms-iot/vscode-ros/blob/47d8f14f4ec0498cd9e8381e6fcc5f47abb340f2/src/extension.ts#L71

and even when this command is invoked
it blows aways any customizated properties anyhow

issue about wrong cppStandard tracked here:
ms-iot/vscode-ros#818

* Fix typo
to move docker-clean from loaded config path

* fix data race: addFilter() and resizeMap() can be executed concurrently (ros-navigation#3518)

Co-authored-by: Dirk Braunschweiger <[email protected]>

* fix data race: prohibit resizeMap() during plugin/filter initialization (ros-navigation#3522)

Co-authored-by: Dirk Braunschweiger <[email protected]>

* Mount overlay workspace into Dev Container via volume (ros-navigation#3524)

* Add volume for overlay
to avoid rebuilding it from scratch
whenever the dev container is rebuilt
this saves startup time locally when fiddling with the configs

* Append devcontainerId to volume name
to avoid conflicts with other devcontainers
note that devcontainerId is stable across rebuilds
- https://containers.dev/implementors/json_reference/#variables-in-devcontainerjson

* Call updateContentCommand from onCreateCommand
to deduplicate scripts and keep setup DRY
given the addition of a mounted overlay volume
which could include a prebuilt colcon workspace
well before the dev container is created/rebuilt

* Comment out colcon clean from setup
to avoid unintentional removal of built packages
from the persistent overlay workspace volume.
Users can uncomment the line locally
or simply remove the overlay workspace volume
if they want to rebuild packages from scratch.

* Format json

* Add headless and use_rviz LaunchConfigurations to demo launch files (ros-navigation#3527)

* Add headless and use_rviz LaunchConfigurations
in nav2_simple_commander demo launch files
for whether to start rviz or gzclient
to simplify their use in headless environments

* Fix headless logic to match tb3_simulation_launch.py
for launch arg consistency

* Fix State-Lattice planner crashes due to FP precision loss (ros-navigation#3531)

* Fix State-Lattice planner crashes due to FP precision loss

* Move testcase comment

* Add PoseProgressChecker (ros-navigation#3530)

* add rotation progress checker

* clean include

* add stopped goal checker reset test

* add rotation progress checker tests

* uncrustify

* better name: PoseProgressChecker instead of RotationProgressChecker

* camelCase

* uncrustify

* rename in tests

* more rename

* simplify parentheses

* faster and better tests

---------

Co-authored-by: Guillaume Doisy <[email protected]>

* [velocity_smoother] Fix accel and deccel inverted for negative speeds (ros-navigation#3529)

* fix inverted accel / deccel

* handle speed through 0.0

* add applyConstraints tests

* fold logic

* same logic in findEtaConstraint

* lint

* Update nav2_velocity_smoother/src/velocity_smoother.cpp

* Update nav2_velocity_smoother/src/velocity_smoother.cpp

* findEtaConstraint tests

* space

* lint

* typos

* comment typos

---------

Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Steve Macenski <[email protected]>

* Enable Visualizations for Dev Container (ros-navigation#3523)

* Add visualizer stage
to install demo dependencies

* Install foxglove

* Install gzweb

* Add hack for resolvable mesh URIs
located by the aws SDL model files
- aws-robotics/aws-robomaker-small-warehouse-world#24

* Revert hack and use fork
that fixes issues with deploy.sh
- osrf/gzweb#248

* Update target stage to visualizer

* Comment out gzclient and rviz for debugging

* Add hack for resolvable mesh URIs
as migrating the python3 scripts still hasn't resolved the issue

* Reorder stages for readability
by keeping sequential builder and tester stages adjacent
while keeping tester stage the default exported target

* fix typo

* Install gdb for launching ros launch files
using the ROS VS Code extension
- ms-iot/vscode-ros#588

* Add vscode tasks file

* Add Start Gzweb task

* Add Start Foxglove tasks
for bridge and studio

* Add Start Foxglove compound task
using dependsOn

* Set default problemMatcher to empty
to avoid nagging the user to select one
as currently none really support our use case

* Source overlay before running foxglove_bridge
to ensure nav2 message types are defined
by inlining all args into command
and sourcing workspace setup

* Formatting

* Generalize and simplify hack

* Generalize gazebo model discovery

* Patch gzserver to run headless using xvfb
to avoid host/platform specific x11 quirks
exposed by vscode automatic x11 forwarding

This is needed to provide gazebo a virtual frame buffer
as it still need one after all these years.
This also avoids the need modifying launch files to call xvfb-run

- microsoft/vscode-remote-release#8031
- gazebosim/gazebo-classic#1602

* Set isBackground for start tasks

* Add stop tasks

* Add restart foxglove task

* Switch to shell for commanding pkill
to gracefully return 0 when process is not running
allowing sequence of dependsOn tasks to run
such as for the restart tasks

* Add icons to tasks
for readability

* Add restart gzweb task

* Add global start, stop, and restart tasks
for all background visualization tasks

* Formatting

* Hide tasks users need not run manually
to avoid cluttering up the run task quick pick

* Shorten label for background tasks
so they succinctly show from the running task list

* Show global start and stop visualizations tasks
as they may be too helpful to hide

* Revert "Comment out gzclient and rviz for debugging"

This reverts commit 0addae2.

* Add --ipc=host to runArgs
to enable shared memory transport
- https://community.rti.com/kb/communicate-between-two-docker-containers-using-rti-connext-dds-and-shared-memory

* Add --pid=host to runArgs
to simplify discovery
- https://community.rti.com/kb/communicate-between-two-docker-containers-using-rti-connext-dds-and-shared-memory

* Add to runArgs
to simplify debugging
- https://code.visualstudio.com/docs/devcontainers/create-dev-container#_use-docker-compose

* Add comments

* Comment out runArgs unintended side effects
or cross talk between containers by default
also avoids interfering with vscode's X11 forwarding

* [nav2_planner] Fix costmap thread reset on cleanup (ros-navigation#3548)

* remove costmap thread reset on cleanup

* Init costmap thread in on_configure method

* Move costmap_thread init in on_configure method

* Add IsBatteryChargingCondition (ros-navigation#3553)

* Add IsBatteryChargingCondition

* Minor fixes in battery charging and add testing

* Fix format

* Added isBatteryChargingCondition BT node to params

* Impl noise filtering layer in the costmap_2d (ros-navigation#2567)

Signed-off-by: ryzhikovas <[email protected]>

* Improve Dev Container Web App Visualization (ros-navigation#3551)

* Add Caddyfile to reverse proxy websockets
in an attempt to avoid authentication tokens in headers
when forwarding ports from codespaces via web interface

- https://docs.github.com/en/codespaces/developing-in-codespaces/forwarding-ports-in-your-codespace#using-command-line-tools-and-rest-clients-to-access-ports
- https://caddyserver.com/docs/quick-starts/reverse-proxy
- https://caddy.community/t/caddy-v2-how-to-proxy-websoket-v2ray-websocket-tls/7040/13

* Update caddy related tasks

* Rename Gzweb task to Gzweb Bridge
to make room for more gzweb tasks

* Add Gzweb Client Task

* Add Caddyfile to reverse proxy websockets
now for Gzweb

* Specify config file to avoid crosstalk
between caddy stop commands

* Fix reverse proxy for websockets
by correcting matcher using headers
as websocket request header value is lowercase for gzweb and foxglove

* Comment out log output files for debugging

* Simplify tasks by removing client tasks

* Stop tasks by using terminate
via the workbench.action.tasks.terminate command

* Move Caddyfile

* Add Web Server tasks

* Move Caddyfile

* Update log output file path

* Update root path

* Update reverse_proxy for both gzweb and foxglove
by using the path argument for respective matchers

- https://caddyserver.com/docs/caddyfile/matchers#path-matchers

* Use snippets
to keep Caddyfile DRY
- https://caddyserver.com/docs/caddyfile/concepts#snippets

* Use rewrite to catch trailing slash
as file_server defaults do not correct reverse_proxy.
This make typing the websocket URL more forgiving

- https://caddyserver.com/docs/caddyfile/patterns#trailing-slashes

* Improve websocket snippet
to keep Caddyfile DRY

* Use header_regexp for case-insensitive matching
given web port forwarding from Codespaces is odd
and rewrites the value of this header field to lowercases
even when local browser request is sent as `Upgrade`

* Add helper index page to web server
to link to web apps for reverse proxy

* Limit templates to fix gzweb
by adding matcher for only root index
otherwise gzweb's own index.html gets overwritten

* Add comments to Cadyfile
to document tricky configuration

* Stage working redirect

* Simplify index.html

* Add helper redirect to simplify foxglove
to set the respective queries values to automate websocket setup,
and ensure the websocket schema matches the https request

* Avoid hardcoding port number

* Clean up comments

* Use header to compute redirect
to take into account requesting forwarding
or more codespace port forwarding shenanigans

* Use shorthand placeholders
- https://caddyserver.com/docs/caddyfile/concepts#placeholders

* Formatting

* Keep trailing slash
to stay consistent with caddy file_server directive
that serves a 308 Permanent Redirect
for both foxglove and gzweb paths anyway

* Refactor matcher logic
to account for requests either from
host ports from local dev containers
or forwarded requests from codespace web port forwarding

* Split snippet into globals
for composability

* Update comments

* Add Placeholders
for debugging

* Use tables to center

* Use github markdown
- https://github.com/sindresorhus/github-markdown-css

* Simplify vars

* Rename vars

* Revert "Rename vars"
as dotted var names do not work in Caddyfile

This reverts commit 3e2d1b3.

* Add System Monitor
to debug CPU load and memory issues

* Update headings

* Update layout

* Update layout

* Add Foxglove layout for Nav2

* Symlink assets folder for web server

* Fetch Foxglove layout using layoutUrl
a new parameter to load layout json data from URL
- https://github.com/orgs/foxglove/discussions/217

* Cleanup

* Use fork to fetch Foxglove layout using layoutUrl
until this PR is merged:
- https://github.com/foxglove/studio/pull/5987

* Update Caddyfile to handle relative root
by using local srv folder

* Inject mobile view html tags
using the caddy replace module
- https://caddyserver.com/docs/modules/http.handlers.replace_response
- https://github.com/caddyserver/replace-response

* Simplify Caddyfile

* Use snippet for apps

* Simplify Caddyfile

* Simplify Caddyfile

* Build caddy using custom modules

* Remove unused symlinks

* Add comments

* Use environment and defined variables for config
to avoid hard coded paths

* Add FoxgloveUrl to vars
for reuse in templates

* Fix trailing slash for DataSourceUrl

* Use exec to run gzserver with xvfb
to prevent ros launch from orphaning process
and ensure gzserver receives SIGTERM signal
given gzserver often hangs after only SIGINT
- https://unix.stackexchange.com/a/196053/213124

* Update redirect for foxglove
to redirect from path /foxglove/autolayout

* Add redirect for foxglove
to redirect from path /foxglove/autoconnect
but does not use LayoutUrl
as to not change from cached layout

* Use web app manifest
to set display as standalone
- https://web.dev/add-manifest/
- https://developer.mozilla.org/en-US/docs/Web/Manifest

* Template manifest files
to embed host info into app name

* Add manifests for other web apps

* Add shortcuts for Foxglove
- https://developer.mozilla.org/en-US/docs/Web/Manifest/shortcuts
- https://web.dev/app-shortcuts/

* Format

* Update comments

* Revert use of fork

* Remove debug directive

* Improve usability of PWAs in Dev Containers (ros-navigation#3576)

* Add WIP icons

* Add WIP icons for gzweb

* Add WIP icons for glances

* Set cross origin to use credentials
ensuring auth cookie is included in request header
when requesting for web app manifest file
thus avoiding CORS policy violations in browser
when accessing forwarded codespaces ports from the web

> The request for the manifest is made without credentials (even if it's on the same domain), thus if the manifest requires credentials, you must include `crossorigin="use-credentials"` in the manifest tag.

- https://web.dev/add-manifest/
- https://stackoverflow.com/a/57184506/2577586

* Use ReqHost variable in templates
to account for X-Forwarded-Host value in header

* Delete duplicate manifest

* Set id property in app manifests
so we can address them independently from their start_url
- https://developer.chrome.com/blog/pwa-manifest-id/

* Ensure apps are uniquely identifies
by adding trailing slash to id
and thus different URI directories

* Refactor root landing page into nav2 app
by moving page file into nav2 sub folder
adding root redirect pointing to /nav2/
and updating html, markdown, manifest files respectively

* Fix https detection for Caddy reverse proxies
by also checking X-Forwarded-Proto in request header

* Remove unnecessary files

* Prune smaller images

* Prune duplicate icon

* Clean up html tags

* Update manifest icons

* Rename icons

* Revert "Prune duplicate icon"

This reverts commit 5710401.

* Add back favicon for shortcut

* Add self index for completeness and bookmarking

* Simplify icon linking

* Delete binary files

* Fix hyperlink path

* Include image files using gitattributes
to track these binary files via git LFS

* Add icons using git lfs

* Standardized all icon paths

* Use external links for icons
to avoid the need for using git LFS
although this is a bit of a hack

* Stage any and maskable icons

* Use any and masked icons

* Set colors to match maskable icon colors

* Update icon

* Use lossless compression
without removing background
- https://shortpixel.com/online-image-compression

* Use WebP instead of PNG
for smaller file sizes
- https://en.wikipedia.org/wiki/WebP

* Move icons into icons folder

* Use _SRV environment variables for service paths

* Download media files from github
during docker image build
to avoid adding always online dependencies
when creating or starting dev containers

* Delete media icons from git repo
now that we download media from anonymized URLs on github
- https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files

* Add comments

* Enable file browsing for non app paths
for remote debugging of media and asset files

* Consolidate assets into single folder

* Add links for file browser paths
to Server Diagnostics

* Delete unused symlink

* Update landing page to match manifest
by including same shortcuts and start url

* Patch gzweb to disable modelList
avoiding 404s for thumbnails
as they are hardcoded into js

* Update comments

* Simplify Caddyfile by reverting to symlinking
but add ROOT_SRV env for custom overriding

* Loop over nav2 srv folders when symlinking
to generalize over folder names

* Add matcher for file browsing root directory
while still redirecting to nav2 app by default

* Use placeholders for root variable
to consolidate env default fallback settings
e.g `:/srv`

* Promote file browser in Nav2 app shortcuts

* Fix and update SRV envs

* Postpone symlinking for Nav2 web app
to when post-create-command script then runs
given full repo is not copied into builder stage in Dockerfile.
While this could be postponed to update-content-command
leaving it here avoids blowing user changes
after the container has been created or modified.

* Add guard to check if srv folder exists

* Add refresh rate shortcuts to glances

* Add file browser shortcut to nav2

* Set scope for nav2 PWA to root
to allow for opening child apps inside nav2 app

* Display child apps in fullscreen mode by default
as users can still open them in standalone via nav2 app
given the nav2 app's scope is the parent root path

* Update shortcuts and landing page

* Document PWA scope and installation order
when using Nav2 PWA scoped as root

* Revert setting scope for nav2 PWA to root path
as adding file browser shortcut to nav2 PWA is not worth the trouble
of having to explain installation order caveats and URL launch behavior.
File browser shortcut is still accessible from inside nav2 pwa launcher
but merely displays in browser preview
given root / is out of scope for /nav2/

* Update server diagnostics for troubleshooting

* Verify checksum of archive before extraction
incase anonymized URL changes expected archive

* Fix the condition in ackerman motion model constraints (ros-navigation#3581)

* Fix the condition in ackerman motion model constraints

* Fix ackerman motion model tests

* Fix another ackerman motion model test

* Fix broken symlink for gzweb (ros-navigation#3585)

to load world models

* Fix broken link to contributing guidelines (ros-navigation#3587)

The original URL (https://navigation.ros.org/contribute/index.html) seems not to exist, returning an HTTP 404. Hence, I've replaced the link with a page that seems most relevant.

* Adding Our Sponsors - May 2023 (ros-navigation#3593)

* adding our sponsors - may 2023

* adding blurb

* adding links

* adding links

* adding links

* adding Open Nav

* Add CostmapFilterInfoServer as a component (ros-navigation#3596)

* Resolve ros-navigation#3532: reset i (ros-navigation#3597)

* [MPPI] empty path_follow_critic proper fix (ros-navigation#3599)

* [MPPI] empty path_follow_critic proper fix

* fix linting issue

---------

Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Steve Macenski <[email protected]>

* bumping humble to 1.1.7 for release

---------

Signed-off-by: Trung Kien <[email protected]>
Signed-off-by: Øystein Sture <[email protected]>
Signed-off-by: ryzhikovas <[email protected]>
Co-authored-by: Alexey Merzlyakov <[email protected]>
Co-authored-by: Jose Luis Blanco-Claraco <[email protected]>
Co-authored-by: DylanDeCoeyer-Quimesis <[email protected]>
Co-authored-by: Trung Kien <[email protected]>
Co-authored-by: HovorunB <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>
Co-authored-by: Ruffin <[email protected]>
Co-authored-by: Øystein Sture <[email protected]>
Co-authored-by: mrmara <[email protected]>
Co-authored-by: antoniomarangi <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>
Co-authored-by: Griswald Brooks <[email protected]>
Co-authored-by: BriceRenaudeau <[email protected]>
Co-authored-by: Dirk Braunschweiger <[email protected]>
Co-authored-by: Dirk Braunschweiger <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Alberto Tudela <[email protected]>
Co-authored-by: ryzhikovas <[email protected]>
Co-authored-by: Alexandr Buyval <[email protected]>
Co-authored-by: Hyung-Taik Choi <[email protected]>
Co-authored-by: Filipe Cerveira <[email protected]>

* Fix merge conflict error (ros-navigation#3619)

* fixing a second merge conflict resolution error (ros-navigation#3621)

* fixing merge conflicts for release on humble sync 6 (ros-navigation#3623)

* Fixing 3629 (ros-navigation#3630)

* Fixing 3629

* Update planner_server.cpp

* bumping humble to 1.1.8 for release sync 6 + bug patch

* Fixing build warning (ros-navigation#3667) (ros-navigation#3673)

(cherry picked from commit 7d4b199)

Co-authored-by: Steve Macenski <[email protected]>

* Fix the velocity smoother being stuck when the deadband is too high (ros-navigation#3690) (ros-navigation#3715)

* Move last_cmd update before deadband

* fix lint

(cherry picked from commit cb34d0c)

Co-authored-by: BriceRenaudeau <[email protected]>

* Humble sync 7 August 4 1.1.9 (ros-navigation#3739)

* Fix map not showing on rviz when navigation is launched with namespace (ros-navigation#3620)

* updating mppi's path angle critic for optional bidirectionality (ros-navigation#3624)

* updating mppi's path angle critic for optional bidirectionality

* Update README.md

* fixing path angle critic's non-directional bias (ros-navigation#3632)

* fixing path angle critic's non-directional bias

* adding reformat

* adapting goal critic for speed to goal (ros-navigation#3641)

* adapting goal critic for speed to goal

* retuning goal critic

* add readme entries

* Update critics_tests.cpp

* Fix uninitialized value (ros-navigation#3651)

* In NAV2, this warning is treated as an error

Signed-off-by: Ryan Friedman <[email protected]>

* Fix rviz panel node arguments (ros-navigation#3655)

Signed-off-by: Nick Lamprianidis <[email protected]>

* Reduce out-of-range log to DEBUG (ros-navigation#3656)

* Adding nan twist rejection for velocity smoother and collision monitor (ros-navigation#3658)

* adding nan twist rejection for velocity smoother and collision monitor

* deref

* MPPI: Support Exact Path Following For Feasible Plans (ros-navigation#3659)

* alternative to path align critic for inversion control

* fix default behavior (enforce_path_inversion: false) (ros-navigation#3643)

Co-authored-by: Guillaume Doisy <[email protected]>

* adding dyaw option for path alignment to incentivize following the path's intent where necessary

* add docs for use path orientations

* fix typo

---------

Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>

* Fix smoother server tests (ros-navigation#3663)

* Fix smoother server tests

* Update test_smoother_server.cpp

* nav2_bt_navigator: log current location on navigate_to_pose action initialization (ros-navigation#3720)

It is very useful to know the current location considered by the
bt_navigator for debug purposes.

* nav2_behaviors: export all available plugins (ros-navigation#3716)

It allows external packages to include those headers and create child
classes through inheritance.

* changing costmap layers private to protected (ros-navigation#3722)

* adding error warnings around incorrect inflation layer setups in MPPI and Smac which impact performance substantially (ros-navigation#3728)

* adding error warnings around incorrect inflation layer setups in MPPI and Smac which impact performance substantially

* fix test failures

* Update RewrittenYaml to support list rewrites (ros-navigation#3727)

* allowing leaf key rewrites that aren't dcits (ros-navigation#3730)

* adding checks on config and dynamic parameters for proper velocity and acceleration limits (ros-navigation#3731)

* Fix Goal updater QoS (ros-navigation#3719)

* Fix GoalUpdater QoS

* Fixes

* bumping Humble to 1.1.9 for release

* fix merge conflict resolution in collision monitor node

---------

Signed-off-by: Ryan Friedman <[email protected]>
Signed-off-by: Nick Lamprianidis <[email protected]>
Co-authored-by: Filipe Cerveira <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Nick Lamprianidis <[email protected]>
Co-authored-by: BriceRenaudeau <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: DylanDeCoeyer-Quimesis <[email protected]>
Co-authored-by: gyaanantia <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>

* Fixing 3768: planner server lifecycle transition down (ros-navigation#3786)

* Use ParameterFile (allow_substs) (ros-navigation#3706) (ros-navigation#3806)

Signed-off-by: ymd-stella <[email protected]>
Co-authored-by: ymd-stella <[email protected]>

* Added missing destructor to MPPI critic manager (ros-navigation#3812)

* Added missing virtual destructor

* Updated CriticManger Destructor to be same as other branches

* mppi: return NO_INFORMATION when the checked point is outside the costmap (ros-navigation#3816) (ros-navigation#3818)

otherwise the controller crashes at ObstaclesCritic::costAtPose
because x_i and y_i isn't initialized.

(cherry picked from commit 6b250a7)

Co-authored-by: Chuanhong Guo <[email protected]>

* [Humble] Sync 8 - Sept 25  (ros-navigation#3836)

* Same orientation of coordinate frames in rviz ang gazebo (ros-navigation#3751)

* rviz view straight in default xy orientation

Signed-off-by: Christian Henkel <[email protected]>

* gazebo orientation to match rviz

Signed-off-by: Christian Henkel <[email protected]>

* rotating in direction of view

---------

Signed-off-by: Christian Henkel <[email protected]>

* Fix flaky costmap filters tests: (ros-navigation#3754)

1. Set forward_prune_distance to 1.0 to robot not getting lost
2. Correct map name for costmap filter tests

* Fix missing mutex in PlannerServer::isPathValid (ros-navigation#3756)

Signed-off-by: ymd-stella <[email protected]>

* Rewrite the scan topic costmap plugins for multi-robot(namespace) before launch navigation. (ros-navigation#3572)

* Make it possible to launch namspaced robot which rewrites `<robot_namespace>` to namespace.
- It allows to apply namespace automatically on specific target topic path in costmap plugins.

Add new nav2 params file for multi-robot(rewriting `<robot_namespace>`) as an example.
- nav2_multirobot_params_all.yaml

Modify nav2_common.ReplaceString
- add condition argument

* Update nav2_bringup/launch/bringup_launch.py

Co-authored-by: Steve Macenski <[email protected]>

* Add new luanch script for multi-robot bringup

Rename luanch script for multi-robot simulation bringup

Add new nav2_common script
- Parse argument
- Parse multirobot pose

Update README.md

* Update README.md

Apply suggestions from code review

Fix pep257 erors

Co-authored-by: Steve Macenski <[email protected]>

---------

Co-authored-by: Steve Macenski <[email protected]>

* use ros clock for wait (ros-navigation#3782)

* use ROS clock for wait

* fix backport issue

---------

Co-authored-by: Guillaume Doisy <[email protected]>

* fixing external users of the BT action node template (ros-navigation#3792)

* fixing external users of the BT action node template

* Update nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp

Co-authored-by: Guillaume Doisy <[email protected]>

---------

Co-authored-by: Guillaume Doisy <[email protected]>

* Using Simple Commander API for multi robot systems (ros-navigation#3803)

* support multirobot namespaces

* add docs

* adding copy all params primitive for BT navigator (to ingest into rclcpp) (ros-navigation#3804)

* adding copy all params primitive

* fix linting

* lint

* I swear to god, this better be the last linting issue

* allowing params to be declared from yaml

* Update bt_navigator.cpp

* some minor optimizations (ros-navigation#3821)

* fix broken behaviortree doc link (ros-navigation#3822)

Signed-off-by: Anton Kesy <[email protected]>

* [MPPI] complete minor optimaization with floating point calculations (ros-navigation#3827)

* floating point calculations

* Update optimizer_unit_tests.cpp

* Update critics_tests.cpp

* Update critics_tests.cpp

* 25% speed up of goal critic; 1% speed up from vy striding when not in use

* bumping 1.1.9 to 1.1.10 for Humble release

---------

Signed-off-by: Christian Henkel <[email protected]>
Signed-off-by: ymd-stella <[email protected]>
Signed-off-by: Anton Kesy <[email protected]>
Co-authored-by: Christian Henkel <[email protected]>
Co-authored-by: Alexey Merzlyakov <[email protected]>
Co-authored-by: ymd-stella <[email protected]>
Co-authored-by: Hyunseok <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Anton Kesy <[email protected]>

* Update CMakeLists.txt (ros-navigation#3843) (ros-navigation#3845)

(cherry picked from commit 2d6e9a9)

Co-authored-by: Steve Macenski <[email protected]>

* bump to 1.1.11 for release for AVX512 fixes

* add option for sse4 and avs512 (ros-navigation#3853) (ros-navigation#3855)

(cherry picked from commit 7274811)

Co-authored-by: Steve Macenski <[email protected]>

* Bumping to 1.1.12 for binary release of AVX512 patches

* [MPPI Optimization] adding regenerate noise param + adding docs (ros-navigation#3868) (ros-navigation#3870)

* adding regenerate noise param + adding docs

* fix tests

* remove unnecessary normalization

* Update optimizer.cpp

(cherry picked from commit 924f167)

# Conflicts:
#	nav2_mppi_controller/README.md

Co-authored-by: Steve Macenski <[email protected]>

* Updating default map path

* [MPPI] Reworked Path Align Critic; 70% faster + Tracks Paths Better! Edit: strike that, now 80% (ros-navigation#3872) (ros-navigation#3882)

* adding regenerate noise param + adding docs

* fix tests

* remove unnecessary normalization

* Update optimizer.cpp

* adding refactored path alignment critic

* fix visualization bug

* speed up another 30%

* remove a little jitter

* a few more small optimizaitons

* fixing unit tests

* retain legacy critic

* adding tests for legacy

(cherry picked from commit 7009ffb)

Co-authored-by: Steve Macenski <[email protected]>

* Fix incorrect auto merge conflict issue

* Use mutex to protect costmap reads. (backport ros-navigation#3877) (ros-navigation#3897)

* Use mutex to protect costmap reads. (ros-navigation#3877)

* Use mutex to protect costmap reads.
Otherwise costmap can be read during a map update and return 0.

* Revert "Use mutex to protect costmap reads."

This reverts commit e16a44c.

* Lock costmap before running MPPI controller.

* Fix typo.

* Protect against costmap updates in MPP and RotationShim controllers.

---------

Co-authored-by: Leif Terry <[email protected]>
(cherry picked from commit a1c9fd5)

# Conflicts:
#	nav2_mppi_controller/src/controller.cpp

* fix merge conflict

---------

Co-authored-by: LeifHookedWireless <[email protected]>
Co-authored-by: Steve Macenski <[email protected]>

* Adjust the Variable types in Nav2_costmap_2d pkg in [nav2_humble]  ros-navigation#3891 (ros-navigation#3900) (ros-navigation#3902)

* image.hpp ros-navigation#3891

* Update image.hpp

(cherry picked from commit 7a7c6da)

Co-authored-by: GoesM <[email protected]>

* Log if BT rate is exceeded (ros-navigation#3909) (ros-navigation#3913)

(cherry picked from commit a11cdd8)

Co-authored-by: Steve Macenski <[email protected]>

* Update theta_star_planner.cpp (ros-navigation#3918) (ros-navigation#3922)

(cherry picked from commit 0629ff3)

Co-authored-by: Steve Macenski <[email protected]>

* Fixing subtree issues with blackboard shared resources (3640) (backport ros-navigation#3911) (ros-navigation#3916)

* Fixing subtree issues with blackboard shared resources (3640) (ros-navigation#3911)

* fixing subtree issues

* Update bt_action_server_impl.hpp

(cherry picked from commit 4b4465d)

# Conflicts:
#	nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp

* Update bt_action_server_impl.hpp

---------

Co-authored-by: Steve Macenski <[email protected]>

* fix build

Signed-off-by: kevin <[email protected]>

* test

Signed-off-by: kevin <[email protected]>

* test

Signed-off-by: kevin <[email protected]>

* disdt

Signed-off-by: kevin <[email protected]>

* test

Signed-off-by: kevin <[email protected]>

* test

Signed-off-by: kevin <[email protected]>

* remove unused

Signed-off-by: kevin <[email protected]>

* test

Signed-off-by: kevin <[email protected]>

* test

Signed-off-by: kevin <[email protected]>

* fix spin

Signed-off-by: ladianchad <[email protected]>

* remove looprate log

Signed-off-by: ladianchad <[email protected]>

* removed loop rate waring

Signed-off-by: ladianchad <[email protected]>

---------

Signed-off-by: Trung Kien <[email protected]>
Signed-off-by: Øystein Sture <[email protected]>
Signed-off-by: ryzhikovas <[email protected]>
Signed-off-by: Ryan Friedman <[email protected]>
Signed-off-by: Nick Lamprianidis <[email protected]>
Signed-off-by: ymd-stella <[email protected]>
Signed-off-by: Christian Henkel <[email protected]>
Signed-off-by: Anton Kesy <[email protected]>
Signed-off-by: kevin <[email protected]>
Signed-off-by: ladianchad <[email protected]>
Co-authored-by: Steve Macenski <[email protected]>
Co-authored-by: Alexey Merzlyakov <[email protected]>
Co-authored-by: Jose Luis Blanco-Claraco <[email protected]>
Co-authored-by: DylanDeCoeyer-Quimesis <[email protected]>
Co-authored-by: Trung Kien <[email protected]>
Co-authored-by: HovorunB <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>
Co-authored-by: Ruffin <[email protected]>
Co-authored-by: Øystein Sture <[email protected]>
Co-authored-by: mrmara <[email protected]>
Co-authored-by: antoniomarangi <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>
Co-authored-by: Griswald Brooks <[email protected]>
Co-authored-by: BriceRenaudeau <[email protected]>
Co-authored-by: Dirk Braunschweiger <[email protected]>
Co-authored-by: Dirk Braunschweiger <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Alberto Tudela <[email protected]>
Co-authored-by: ryzhikovas <[email protected]>
Co-authored-by: Alexandr Buyval <[email protected]>
Co-authored-by: Hyung-Taik Choi <[email protected]>
Co-authored-by: Filipe Cerveira <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Nick Lamprianidis <[email protected]>
Co-authored-by: gyaanantia <[email protected]>
Co-authored-by: ymd-stella <[email protected]>
Co-authored-by: Vineet <[email protected]>
Co-authored-by: Chuanhong Guo <[email protected]>
Co-authored-by: Christian Henkel <[email protected]>
Co-authored-by: Hyunseok <[email protected]>
Co-authored-by: Anton Kesy <[email protected]>
Co-authored-by: LeifHookedWireless <[email protected]>
Co-authored-by: GoesM <[email protected]>
Co-authored-by: kevin <[email protected]>
pepisg added a commit to kiwicampus/navigation2 that referenced this issue Apr 24, 2024
* bump to 1.2.0 for iron release

* Iron sync June 9: 1.2.1 (ros-navigation#3615)

* Improve usability of PWAs in Dev Containers (ros-navigation#3576)

* Add WIP icons

* Add WIP icons for gzweb

* Add WIP icons for glances

* Set cross origin to use credentials
ensuring auth cookie is included in request header
when requesting for web app manifest file
thus avoiding CORS policy violations in browser
when accessing forwarded codespaces ports from the web

> The request for the manifest is made without credentials (even if it's on the same domain), thus if the manifest requires credentials, you must include `crossorigin="use-credentials"` in the manifest tag.

- https://web.dev/add-manifest/
- https://stackoverflow.com/a/57184506/2577586

* Use ReqHost variable in templates
to account for X-Forwarded-Host value in header

* Delete duplicate manifest

* Set id property in app manifests
so we can address them independently from their start_url
- https://developer.chrome.com/blog/pwa-manifest-id/

* Ensure apps are uniquely identifies
by adding trailing slash to id
and thus different URI directories

* Refactor root landing page into nav2 app
by moving page file into nav2 sub folder
adding root redirect pointing to /nav2/
and updating html, markdown, manifest files respectively

* Fix https detection for Caddy reverse proxies
by also checking X-Forwarded-Proto in request header

* Remove unnecessary files

* Prune smaller images

* Prune duplicate icon

* Clean up html tags

* Update manifest icons

* Rename icons

* Revert "Prune duplicate icon"

This reverts commit 5710401.

* Add back favicon for shortcut

* Add self index for completeness and bookmarking

* Simplify icon linking

* Delete binary files

* Fix hyperlink path

* Include image files using gitattributes
to track these binary files via git LFS

* Add icons using git lfs

* Standardized all icon paths

* Use external links for icons
to avoid the need for using git LFS
although this is a bit of a hack

* Stage any and maskable icons

* Use any and masked icons

* Set colors to match maskable icon colors

* Update icon

* Use lossless compression
without removing background
- https://shortpixel.com/online-image-compression

* Use WebP instead of PNG
for smaller file sizes
- https://en.wikipedia.org/wiki/WebP

* Move icons into icons folder

* Use _SRV environment variables for service paths

* Download media files from github
during docker image build
to avoid adding always online dependencies
when creating or starting dev containers

* Delete media icons from git repo
now that we download media from anonymized URLs on github
- https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/attaching-files

* Add comments

* Enable file browsing for non app paths
for remote debugging of media and asset files

* Consolidate assets into single folder

* Add links for file browser paths
to Server Diagnostics

* Delete unused symlink

* Update landing page to match manifest
by including same shortcuts and start url

* Patch gzweb to disable modelList
avoiding 404s for thumbnails
as they are hardcoded into js

* Update comments

* Simplify Caddyfile by reverting to symlinking
but add ROOT_SRV env for custom overriding

* Loop over nav2 srv folders when symlinking
to generalize over folder names

* Add matcher for file browsing root directory
while still redirecting to nav2 app by default

* Use placeholders for root variable
to consolidate env default fallback settings
e.g `:/srv`

* Promote file browser in Nav2 app shortcuts

* Fix and update SRV envs

* Postpone symlinking for Nav2 web app
to when post-create-command script then runs
given full repo is not copied into builder stage in Dockerfile.
While this could be postponed to update-content-command
leaving it here avoids blowing user changes
after the container has been created or modified.

* Add guard to check if srv folder exists

* Add refresh rate shortcuts to glances

* Add file browser shortcut to nav2

* Set scope for nav2 PWA to root
to allow for opening child apps inside nav2 app

* Display child apps in fullscreen mode by default
as users can still open them in standalone via nav2 app
given the nav2 app's scope is the parent root path

* Update shortcuts and landing page

* Document PWA scope and installation order
when using Nav2 PWA scoped as root

* Revert setting scope for nav2 PWA to root path
as adding file browser shortcut to nav2 PWA is not worth the trouble
of having to explain installation order caveats and URL launch behavior.
File browser shortcut is still accessible from inside nav2 pwa launcher
but merely displays in browser preview
given root / is out of scope for /nav2/

* Update server diagnostics for troubleshooting

* Verify checksum of archive before extraction
incase anonymized URL changes expected archive

* Fix the condition in ackerman motion model constraints (ros-navigation#3581)

* Fix the condition in ackerman motion model constraints

* Fix ackerman motion model tests

* Fix another ackerman motion model test

* Add viz_expansions parameter for debug (ros-navigation#3577)

* viz_expansions

* lint

* switch to unique_ptr

* readme update

---------

Co-authored-by: Guillaume Doisy <[email protected]>

* Fix broken symlink for gzweb (ros-navigation#3585)

to load world models

* (collision monitor) add limit polygon type (ros-navigation#3519)

* add LIMIT polygon type

* fix unit tests

* Fix MIN_POINT doesn't exist

* Fix Action type enum

* FIX velocity used

* FIX unit test point distance

increase point distance to not be in limit field

* Update collision_monitor_node_test.cpp

* fix status name not updated

* [MOD] only single linear limit

* Apply review comments

* Update nav2_collision_monitor/include/nav2_collision_monitor/types.hpp

---------

Co-authored-by: Steve Macenski <[email protected]>

* Fix broken link to contributing guidelines (ros-navigation#3587)

The original URL (https://navigation.ros.org/contribute/index.html) seems not to exist, returning an HTTP 404. Hence, I've replaced the link with a page that seems most relevant.

* Adding Our Sponsors - May 2023 (ros-navigation#3593)

* adding our sponsors - may 2023

* adding blurb

* adding links

* adding links

* adding links

* adding Open Nav

* Fix dynamic polygons vertices not updated for different frame (ros-navigation#3591)

* Fix dynamic polygons vertices not updated for different frame

* Update nav2_collision_monitor/src/collision_monitor_node.cpp

---------

Co-authored-by: Steve Macenski <[email protected]>

* Fixing 3586: rviz panel operating in multiple non-standard frames (ros-navigation#3595)

* Fixes ros-navigation#3586 on rviz time stamping

* removing timing from rviz testing panel

* Add CostmapFilterInfoServer as a component (ros-navigation#3596)

* adding iron to the readme table statuses (ros-navigation#3598)

* adding iron to the readme table statuses

* collapsing table

* adding citation RPP

* Resolve ros-navigation#3532: reset i (ros-navigation#3597)

* [MPPI] empty path_follow_critic proper fix (ros-navigation#3599)

* [MPPI] empty path_follow_critic proper fix

* fix linting issue

---------

Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Steve Macenski <[email protected]>

* Refactor sim_time and composable node usage in Collision Monitor (ros-navigation#3604)

* Refactor sim_time and composable node usage in Collision Monitor launch script

* Added namespace support

* Fix comment

* Fix costmap 2D test failures (ros-navigation#3611)

* costmap test without action

* test2

* try just printing first thing

* Update test_costmap_2d_publisher.cpp

* Compile flags non-virtual-destructor (ros-navigation#3609)

* added compile flags

* cleanup

* cleanup

* cleanup

* add virtual destructors

* uncrusify

* updating to 1.2.1 for release

---------

Co-authored-by: Ruffin <[email protected]>
Co-authored-by: Alexandr Buyval <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: BriceRenaudeau <[email protected]>
Co-authored-by: Hyung-Taik Choi <[email protected]>
Co-authored-by: Alexey Merzlyakov <[email protected]>
Co-authored-by: Filipe Cerveira <[email protected]>
Co-authored-by: Joshua Wallace <[email protected]>

* remove non-virtual-dtor flag from nav2_package()

* WIP: Merge segmentation layer and GPS wpf

* WIP: remove wrong whitespace

* WIP: Bring back ffollow gps waypoints

* WIP: error codes to gps waypoint follwer

* Fix GPS waypoint follower error codes

* Fixing build warning (ros-navigation#3667) (ros-navigation#3672)

(cherry picked from commit 7d4b199)

Co-authored-by: Steve Macenski <[email protected]>

* Install nav2_behavior_tree utils outside of BUILD_TESTING (ros-navigation#3692) (ros-navigation#3697)

(cherry picked from commit abf3e85)

Co-authored-by: Aaditya Ravindran <[email protected]>

* Fix segfault on relaunch of controller server

* Fix the velocity smoother being stuck when the deadband is too high (ros-navigation#3690) (ros-navigation#3714)

* Move last_cmd update before deadband

* fix lint

(cherry picked from commit cb34d0c)

Co-authored-by: BriceRenaudeau <[email protected]>

* Iron sync 2, Aug 4, 1.2.2 (ros-navigation#3740)

* Only apply Wnon-virtual-dtor if the compile language is CXX (ros-navigation#3614)

* https://stackoverflow.com/questions/25525047/cmake-generator-expression-differentiate-c-c-code

Signed-off-by: Ryan Friedman <[email protected]>

* Fix map not showing on rviz when navigation is launched with namespace (ros-navigation#3620)

* Fix Wshadow errors and enforce it (ros-navigation#3617)

* Fix Wshadow errors and enforce it

Signed-off-by: Ryan Friedman <[email protected]>

* Remove workaround for pluginlib

* This was only needed because it was included transitively
* By finding and linking properly, the compiler flags get propogated as SYSTEM
  correctly

Signed-off-by: Ryan Friedman <[email protected]>

---------

Signed-off-by: Ryan Friedman <[email protected]>

* add-Wnull-dereference and fix warnings (ros-navigation#3622)

Signed-off-by: Ryan Friedman <[email protected]>

* updating mppi's path angle critic for optional bidirectionality (ros-navigation#3624)

* updating mppi's path angle critic for optional bidirectionality

* Update README.md

* correct error message (ros-navigation#3631)

* correct error message

* clean up

* cleanup

* remove header

* Let Navigators have different error codes (ros-navigation#3642)

* Change ERROR to DEBUG

* INFO message on init

* format code

* Replace newlines with spaces

* fixing path angle critic's non-directional bias (ros-navigation#3632)

* fixing path angle critic's non-directional bias

* adding reformat

* adapting goal critic for speed to goal (ros-navigation#3641)

* adapting goal critic for speed to goal

* retuning goal critic

* add readme entries

* Update critics_tests.cpp

* Fix uninitialized value (ros-navigation#3651)

* In NAV2, this warning is treated as an error

Signed-off-by: Ryan Friedman <[email protected]>

* Fix rviz panel node arguments (ros-navigation#3655)

Signed-off-by: Nick Lamprianidis <[email protected]>

* Reduce out-of-range log to DEBUG (ros-navigation#3656)

* Adding nan twist rejection for velocity smoother and collision monitor (ros-navigation#3658)

* adding nan twist rejection for velocity smoother and collision monitor

* deref

* Ceres exposes a namespaced export and recommends it in their docs (ros-navigation#3652)

Signed-off-by: Ryan Friedman <[email protected]>

* Enable multiple MPPI path angle modes depending on preferences in behavior (ros-navigation#3650)

* fixing path angle critic's non-directional bias

* adding reformat

* handle linting

* add utility unit tests

* adding unit tests for path angle

* MPPI: Support Exact Path Following For Feasible Plans (ros-navigation#3659)

* alternative to path align critic for inversion control

* fix default behavior (enforce_path_inversion: false) (ros-navigation#3643)

Co-authored-by: Guillaume Doisy <[email protected]>

* adding dyaw option for path alignment to incentivize following the path's intent where necessary

* add docs for use path orientations

* fix typo

---------

Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>

* Resolves 3646: Update CMAKE_COMPILER_IS_GNUCXX (ros-navigation#3662)

* Resolves 3646: Update CMAKE_COMPILER_IS_GNUCXX

* Update CMakeLists.txt

* Fix smoother server tests (ros-navigation#3663)

* Fix smoother server tests

* Update test_smoother_server.cpp

* fix some new build warnings from sync (ros-navigation#3674)

* fix some new build warnings

* fixing last issue

* Update navigate_through_poses_action.hpp

* adding unsigned int to tests

* all to unsigned shorts

* test new warning resolution

* Update

* convert unsigned shorts to uint16_t for linter

* Fix costmap publisher test (ros-navigation#3679)

* added printouts

* ignore system tests

* fix

* cleanup

* Update test_costmap_2d_publisher.cpp

remove space

* remove empty message (ros-navigation#3691)

* Collision Monitor fixups (ros-navigation#3696)

* Fix max_points -> min_points in parameters
* Move robot_utils.hpp include to source where it actually using
* Remove double-description of getTransform()

* Use ParameterFile (allow_substs) (ros-navigation#3706)

Signed-off-by: ymd-stella <[email protected]>

* nav2_bt_navigator: log current location on navigate_to_pose action initialization (ros-navigation#3720)

It is very useful to know the current location considered by the
bt_navigator for debug purposes.

* nav2_behaviors: export all available plugins (ros-navigation#3716)

It allows external packages to include those headers and create child
classes through inheritance.

* changing costmap layers private to protected (ros-navigation#3722)

* Update costmap_2d_ros.cpp (ros-navigation#3687)

* updated nav2_behavior_tree test util install path (ros-navigation#3718)

* launch linting (ros-navigation#3729)

* adding error warnings around incorrect inflation layer setups in MPPI and Smac which impact performance substantially (ros-navigation#3728)

* adding error warnings around incorrect inflation layer setups in MPPI and Smac which impact performance substantially

* fix test failures

* Update RewrittenYaml to support list rewrites (ros-navigation#3727)

* allowing leaf key rewrites that aren't dcits (ros-navigation#3730)

* adding checks on config and dynamic parameters for proper velocity and acceleration limits (ros-navigation#3731)

* Fix Goal updater QoS (ros-navigation#3719)

* Fix GoalUpdater QoS

* Fixes

* adding tolerance back in for smac lattice and hybrid-A* planners (ros-navigation#3734)

* Completing Hybrid-A* visualization of expansion footprints PR (ros-navigation#3733)

* smach_planner_hybrid: add support visualization for hybrid Astar

* smac_planner_hyrid: revert some

* smach_planner_hybrid: improving code quality

* utils: add some useful functions

* utils: fix mistake

* nav2_smac_planner: fix format problem

* utils: fix format and revise functions

* smach_planner_hybrid: delete _viz_expansion parameter

* smac_planner_hybrid: fix format

* README: update parameter

* utils: corrct mistake return

* utils: make timestamp a const reference

* nav2_smac_planner: correct format problem

* add unit test functions

* further detection of element equality

* test_utils: add non-trival translation and rotation

* smac_planner_hybrid: pass value instead of references

* completing hybrid A* visualization

---------

Co-authored-by: xianglunkai <[email protected]>

* Update README.md (ros-navigation#3736)

* Update README.md

* Update README.md

* sync iron to 1.2.2 to release

---------

Signed-off-by: Ryan Friedman <[email protected]>
Signed-off-by: Nick Lamprianidis <[email protected]>
Signed-off-by: ymd-stella <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: Filipe Cerveira <[email protected]>
Co-authored-by: Joshua Wallace <[email protected]>
Co-authored-by: RBT22 <[email protected]>
Co-authored-by: Nick Lamprianidis <[email protected]>
Co-authored-by: BriceRenaudeau <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Alexey Merzlyakov <[email protected]>
Co-authored-by: ymd-stella <[email protected]>
Co-authored-by: DylanDeCoeyer-Quimesis <[email protected]>
Co-authored-by: Aaditya Ravindran <[email protected]>
Co-authored-by: gyaanantia <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>
Co-authored-by: xianglunkai <[email protected]>

* nav2_collision_monitor: collision detector (ros-navigation#3500) (Iron backport) (ros-navigation#3758)

* nav2_collision_monitor: collision detector (ros-navigation#3500)

* fix

* mppi: return NO_INFORMATION when the checked point is outside the costmap (ros-navigation#3816) (ros-navigation#3817)

otherwise the controller crashes at ObstaclesCritic::costAtPose
because x_i and y_i isn't initialized.

(cherry picked from commit 6b250a7)

Co-authored-by: Chuanhong Guo <[email protected]>

* Iron Sync 3 - Sept 25 (ros-navigation#3837)

* Same orientation of coordinate frames in rviz ang gazebo (ros-navigation#3751)

* rviz view straight in default xy orientation

Signed-off-by: Christian Henkel <[email protected]>

* gazebo orientation to match rviz

Signed-off-by: Christian Henkel <[email protected]>

* rotating in direction of view

---------

Signed-off-by: Christian Henkel <[email protected]>

* Fix flaky costmap filters tests: (ros-navigation#3754)

1. Set forward_prune_distance to 1.0 to robot not getting lost
2. Correct map name for costmap filter tests

* Update smac_planner_hybrid.cpp (ros-navigation#3760)

* Fix missing mutex in PlannerServer::isPathValid (ros-navigation#3756)

Signed-off-by: ymd-stella <[email protected]>

* Rename PushRosNamespace to PushROSNamespace (ros-navigation#3763)

* Rewrite the scan topic costmap plugins for multi-robot(namespace) before launch navigation. (ros-navigation#3572)

* Make it possible to launch namspaced robot which rewrites `<robot_namespace>` to namespace.
- It allows to apply namespace automatically on specific target topic path in costmap plugins.

Add new nav2 params file for multi-robot(rewriting `<robot_namespace>`) as an example.
- nav2_multirobot_params_all.yaml

Modify nav2_common.ReplaceString
- add condition argument

* Update nav2_bringup/launch/bringup_launch.py

Co-authored-by: Steve Macenski <[email protected]>

* Add new luanch script for multi-robot bringup

Rename luanch script for multi-robot simulation bringup

Add new nav2_common script
- Parse argument
- Parse multirobot pose

Update README.md

* Update README.md

Apply suggestions from code review

Fix pep257 erors

Co-authored-by: Steve Macenski <[email protected]>

---------

Co-authored-by: Steve Macenski <[email protected]>

* use ros clock for wait (ros-navigation#3782)

* use ROS clock for wait

* fix backport issue

---------

Co-authored-by: Guillaume Doisy <[email protected]>

* fixing external users of the BT action node template (ros-navigation#3792)

* fixing external users of the BT action node template

* Update nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp

Co-authored-by: Guillaume Doisy <[email protected]>

---------

Co-authored-by: Guillaume Doisy <[email protected]>

* Fixing typo in compute path through poses error codes (ros-navigation#3799)

Signed-off-by: Mannucci, Anna (Bosch (CR)) <[email protected]>
Co-authored-by: Mannucci, Anna (Bosch (CR)) <[email protected]>

* Fixes for flaky WPF test (ros-navigation#3785)

* Fixes for flaky WPF test:
* New RewrittenYaml ability to add non-existing parameters
* Prune distance fix for WPF test
* Treat UNKNOWN status as error in WPF
* Clear error codes after BT run
* Remove unnecessary setInitialPose() from WPF test

* Update nav2_waypoint_follower/src/waypoint_follower.cpp

Co-authored-by: Steve Macenski <[email protected]>

* Clean error code in any situation

* Fix UNKNOWN WPF status handling

---------

Co-authored-by: Steve Macenski <[email protected]>

* Fix `min_points` comparison check (ros-navigation#3795)

* Fix min_points checking

* Expose action server result timeout as a parameter in bt navigator servers (ros-navigation#3787)

* Expose action server default timeout in bt navigator servers

* typo

* duplicated comment

* Expose result timeout in other actions

* Proper timeout in bt node

* Change default timeouts and remove comments

* Remove comment in params file

* uncrustify controller server

* Using Simple Commander API for multi robot systems (ros-navigation#3803)

* support multirobot namespaces

* add docs

* adding copy all params primitive for BT navigator (to ingest into rclcpp) (ros-navigation#3804)

* adding copy all params primitive

* fix linting

* lint

* I swear to god, this better be the last linting issue

* allowing params to be declared from yaml

* Update bt_navigator.cpp

* Fix CD configuration link reference (ros-navigation#3811)

* Fix CD configuration page reference

* Add CM work on 6th ROS Developers Day reference

* some minor optimizations (ros-navigation#3821)

* fix broken behaviortree doc link (ros-navigation#3822)

Signed-off-by: Anton Kesy <[email protected]>

* [MPPI] complete minor optimaization with floating point calculations (ros-navigation#3827)

* floating point calculations

* Update optimizer_unit_tests.cpp

* Update critics_tests.cpp

* Update critics_tests.cpp

* 25% speed up of goal critic; 1% speed up from vy striding when not in use

* Add nav2_gps_waypoint_follower (ros-navigation#2814)

* Add nav2_gps_waypoint_follower

* use correct client node while calling it to spin

* changed after 1'st review

* apply requested changes

* nav2_util::ServiceClient instead of CallbackGroup

* another  iteration to adress issues

* update poses with function in the follower logic

* add deps of robot_localization: diagnostics

* fix typo in underlay.repo

* add deps of robot_localization: geographic_info

* minor clean-ups

* bond_core version has been updated

* rotation should also be considered in GPS WPFing

* use better namings related to gps wpf orientation

* handle cpplint errors

* tf_listener needs to be initialized

* apply requested changes

* apply requested changes 3.0/3.0

* fix misplaced ";"

* use run time param for gps transform timeout

* change timeout var name

* make use of stop_on_failure for GPS too

* passing emptywaypont vectors are seen as failure

* update warning for empty requests

* consider utm -> map yaw offset

* fix missed RCLCPP info

* reorrect action;s name

* waypoint stamps need to be updated

* Fix segmentation fault on waypoint follower

* Parametric frames and matrix multiplications

* Replace oriented navsatfix for geographic_msgs/geopose

* Remove deprecated oriented  navsatfix message

* Update branch name on robot_localization dependency

* Fix parametric frames logic

* Rename functions and adress comments

* fix style in underlay.repos

* remove duplicate word in underlay.repos

* update dependency version of ompl

* Template ServiceClient class to accept lifecycle node

* Remove link to stackoverflow answer

* Remove yaw offset compensation

* Fix API change

* Fix styling

* Minor docs fixes

* Fix style divergences

* Style fixes

* Style fixes v2

* Style fixes v3

* Remove unused variables and timestam overrides

* restore goal timestamp override

* WIP: Add follow gps waypoints test

* Style fixes and gazebo world inertia fix

* Reduce velocity smoother timeout

* empty commit to rerun tests

* Increment circle ci cache idx

* Remove extra space in cmakelists.txt

* Fix wrong usage of the global action server

* update follow gps waypoints action definition

* Fix action definition and looping

* update params for the unit testing

* WIP: update tests

* fix tests

* fixes to nav2 simple commander

* add robot_localization localizer

* Bring back from LL client

* Update nav2_simple_commander/nav2_simple_commander/robot_navigator.py

Co-authored-by: Steve Macenski <[email protected]>

* missing argument in test function

* small test error

* style fixes nav2 simple commander

* rename cartesian action server

---------

Co-authored-by: jediofgever <[email protected]>
Co-authored-by: Steve Macenski <[email protected]>

* bumping iron from 1.2.2 to 1.2.3 for release

* Update waypoint_follower.cpp

---------

Signed-off-by: Christian Henkel <[email protected]>
Signed-off-by: ymd-stella <[email protected]>
Signed-off-by: Mannucci, Anna (Bosch (CR)) <[email protected]>
Signed-off-by: Anton Kesy <[email protected]>
Co-authored-by: Christian Henkel <[email protected]>
Co-authored-by: Alexey Merzlyakov <[email protected]>
Co-authored-by: ymd-stella <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>
Co-authored-by: Hyunseok <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Anna Mannucci <[email protected]>
Co-authored-by: Mannucci, Anna (Bosch (CR)) <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>
Co-authored-by: Pedro Alejandro González <[email protected]>
Co-authored-by: Anton Kesy <[email protected]>
Co-authored-by: jediofgever <[email protected]>

* Update CMakeLists.txt (ros-navigation#3843) (ros-navigation#3844)

(cherry picked from commit 2d6e9a9)

Co-authored-by: Steve Macenski <[email protected]>

* bump to 1.2.4 for AVX512 binary fix

* add option for sse4 and avs512 (ros-navigation#3853) (ros-navigation#3854)

(cherry picked from commit 7274811)

Co-authored-by: Steve Macenski <[email protected]>

* Bumping to 1.2.5 for binary release of AVX512 patches

* Start planner in the end of previous path

* [MPPI Optimization] adding regenerate noise param + adding docs (ros-navigation#3868) (ros-navigation#3869)

* adding regenerate noise param + adding docs

* fix tests

* remove unnecessary normalization

* Update optimizer.cpp

(cherry picked from commit 924f167)

Co-authored-by: Steve Macenski <[email protected]>

* [MPPI] Reworked Path Align Critic; 70% faster + Tracks Paths Better! Edit: strike that, now 80% (ros-navigation#3872) (ros-navigation#3881)

* adding regenerate noise param + adding docs

* fix tests

* remove unnecessary normalization

* Update optimizer.cpp

* adding refactored path alignment critic

* fix visualization bug

* speed up another 30%

* remove a little jitter

* a few more small optimizaitons

* fixing unit tests

* retain legacy critic

* adding tests for legacy

(cherry picked from commit 7009ffb)

Co-authored-by: Steve Macenski <[email protected]>

* revert back to no gps waypoint follower

* Use mutex to protect costmap reads. (ros-navigation#3877) (ros-navigation#3896)

* Use mutex to protect costmap reads.
Otherwise costmap can be read during a map update and return 0.

* Revert "Use mutex to protect costmap reads."

This reverts commit e16a44c.

* Lock costmap before running MPPI controller.

* Fix typo.

* Protect against costmap updates in MPP and RotationShim controllers.

---------

Co-authored-by: Leif Terry <[email protected]>
(cherry picked from commit a1c9fd5)

Co-authored-by: LeifHookedWireless <[email protected]>

* Adjust the Variable types in Nav2_costmap_2d pkg in [nav2_humble]  ros-navigation#3891 (ros-navigation#3900) (ros-navigation#3901)

* image.hpp ros-navigation#3891

* Update image.hpp

(cherry picked from commit 7a7c6da)

Co-authored-by: GoesM <[email protected]>

* Log if BT rate is exceeded (ros-navigation#3909) (ros-navigation#3912)

(cherry picked from commit a11cdd8)

Co-authored-by: Steve Macenski <[email protected]>

* Fixing subtree issues with blackboard shared resources (3640) (ros-navigation#3911) (ros-navigation#3915)

* fixing subtree issues

* Update bt_action_server_impl.hpp

(cherry picked from commit 4b4465d)

Co-authored-by: Steve Macenski <[email protected]>

* Update theta_star_planner.cpp (ros-navigation#3918) (ros-navigation#3921)

(cherry picked from commit 0629ff3)

Co-authored-by: Steve Macenski <[email protected]>

* Change custom semantic segmentation message for image

* Handle NaNs in AMCL beam sensor model (ros-navigation#3929) (ros-navigation#3936)

* Handle NaNs in AMCL beam sensor model

Signed-off-by: Michel Hidalgo <[email protected]>

* Use proper isnan check

Signed-off-by: Michel Hidalgo <[email protected]>

---------

Signed-off-by: Michel Hidalgo <[email protected]>
(cherry picked from commit 06c3550)

Co-authored-by: Michel Hidalgo <[email protected]>

* Fix NaN in Updated PathAlign (ros-navigation#3943) (ros-navigation#3944)

(cherry picked from commit 3d14d98)

Co-authored-by: Steve Macenski <[email protected]>

* Fix for  robot footprint collision in obstacles critic (ros-navigation#3878) (ros-navigation#3946)

* Inscribed/Circumscribed costs must be updated to take into account the
current shape of the robot.
Was previous only being called once in initialize().

* Add early return to avoid calculations if footprint has not changed.

* Only update radius if using footprint.
Add perf timers.

* Remove perf timers.

* Update comments.

---------

Co-authored-by: Leif Terry <[email protected]>
(cherry picked from commit 98af3b9)

Co-authored-by: LeifHookedWireless <[email protected]>

* Enabling soft realtime prioritization to the Controller Server (ros-navigation#3914) (ros-navigation#3975)

* Enabling soft realtime prioritization to the controller server

* abstracting to another function

* changing default priorities

* linting

(cherry picked from commit fbe8f56)

Co-authored-by: Steve Macenski <[email protected]>

* Integration of mapping api with dynamic velocities changes

* simplify logic

* eliminate un-necessary lines of code

* style

* style2

* remove duplicate line from merge

* remove blank line

* restore nav2_utils copy_all_paramteres function.

* Add segmentation confidence plugin

* Remove deprecated segmentation file

* Docstrings and remove repeated struct

* Add docstrings & minor changes

---------

Signed-off-by: Ryan Friedman <[email protected]>
Signed-off-by: Nick Lamprianidis <[email protected]>
Signed-off-by: ymd-stella <[email protected]>
Signed-off-by: Christian Henkel <[email protected]>
Signed-off-by: Mannucci, Anna (Bosch (CR)) <[email protected]>
Signed-off-by: Anton Kesy <[email protected]>
Co-authored-by: stevemacenski <[email protected]>
Co-authored-by: Ruffin <[email protected]>
Co-authored-by: Alexandr Buyval <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: Guillaume Doisy <[email protected]>
Co-authored-by: BriceRenaudeau <[email protected]>
Co-authored-by: Hyung-Taik Choi <[email protected]>
Co-authored-by: Alexey Merzlyakov <[email protected]>
Co-authored-by: Filipe Cerveira <[email protected]>
Co-authored-by: Joshua Wallace <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Aaditya Ravindran <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: RBT22 <[email protected]>
Co-authored-by: Nick Lamprianidis <[email protected]>
Co-authored-by: ymd-stella <[email protected]>
Co-authored-by: DylanDeCoeyer-Quimesis <[email protected]>
Co-authored-by: Aaditya Ravindran <[email protected]>
Co-authored-by: gyaanantia <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>
Co-authored-by: xianglunkai <[email protected]>
Co-authored-by: Chuanhong Guo <[email protected]>
Co-authored-by: Christian Henkel <[email protected]>
Co-authored-by: Hyunseok <[email protected]>
Co-authored-by: Anna Mannucci <[email protected]>
Co-authored-by: Mannucci, Anna (Bosch (CR)) <[email protected]>
Co-authored-by: Tony Najjar <[email protected]>
Co-authored-by: Anton Kesy <[email protected]>
Co-authored-by: jediofgever <[email protected]>
Co-authored-by: LeifHookedWireless <[email protected]>
Co-authored-by: GoesM <[email protected]>
Co-authored-by: Michel Hidalgo <[email protected]>
Co-authored-by: Sebastian Solarte <[email protected]>
enricosutera pushed a commit to enricosutera/navigation2 that referenced this issue May 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants