diff --git a/.gitignore b/.gitignore index 13c0b7b7..613275c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,9 @@ venv site __pycache__ + macros/cache/* !macros/cache/README.md + +docs/shared/* +!docs/shared/README.md diff --git a/docs/.nav.yml b/docs/.nav.yml index 65a0ca2c..c042911f 100644 --- a/docs/.nav.yml +++ b/docs/.nav.yml @@ -25,21 +25,21 @@ nav: - Migration Guides: configuration_and_development/migration_guides/index.md - API Docs: https://api.nav2.org/ - Community: - - community/index.md - - Getting Involved: community/getting_involved.md - - Maintainer Docs: community/maintainer_docs/index.md - - Roadmaps: community/roadmaps.md - - ROSCon Talks: community/roscon_talks.md + - shared/mkdocs.nav2.org/docs/community/index.md + - Getting Involved: shared/mkdocs.nav2.org/docs/community/getting_involved.md + - Maintainer Docs: shared/mkdocs.nav2.org/docs/community/maintainer_docs/index.md + - Roadmaps: shared/mkdocs.nav2.org/docs/community/roadmaps.md + - ROSCon Talks: shared/mkdocs.nav2.org/docs/community/roscon_talks.md - Robots Using: - - robots_using/index.md + - shared/mkdocs.nav2.org/docs/robots_using/index.md - About & Contact: - - about_and_contact/index.md - - Related Projects: about_and_contact/related_projects.md - - Citations: about_and_contact/citations.md + - shared/mkdocs.nav2.org/docs/about_and_contact/index.md + - Related Projects: shared/mkdocs.nav2.org/docs/about_and_contact/related_projects.md + - Citations: shared/mkdocs.nav2.org/docs/about_and_contact/citations.md - Getting Started: getting_started - Tutorials: tutorials - Configuration & Development: configuration_and_development - - Community: community + - Community: shared/mkdocs.nav2.org/docs/community - Robots Using: - - robots_using/index.md - - About & Contact: about_and_contact + - shared/mkdocs.nav2.org/docs/robots_using/index.md + - About & Contact: shared/mkdocs.nav2.org/docs/about_and_contact diff --git a/docs/about_and_contact/.nav.yml b/docs/about_and_contact/.nav.yml deleted file mode 100644 index e74c13d6..00000000 --- a/docs/about_and_contact/.nav.yml +++ /dev/null @@ -1,4 +0,0 @@ -nav: - - index.md - - Related Projects: related_projects.md - - Citations: citations.md diff --git a/docs/about_and_contact/citations.md b/docs/about_and_contact/citations.md deleted file mode 100644 index c28c444d..00000000 --- a/docs/about_and_contact/citations.md +++ /dev/null @@ -1,92 +0,0 @@ -# Citations { #citations } - -If you use the navigation framework, an algorithm from this repository, or ideas from it -please cite this work in your papers! - ---- - -S. Macenski, F. Martín, R. White, J. Clavero. -[**The Marathon 2: A Navigation System**](https://arxiv.org/abs/2003.00368/). -**IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2020.** - -IROS 2020 talk on Nav2 Marathon Experiments: - -
- -
- -```bash -@InProceedings{macenski2020marathon2, -author = {Macenski, Steven and Martin, Francisco and White, Ruffin and Ginés Clavero, Jonatan}, -title = {The Marathon 2: A Navigation System}, -booktitle = {2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, -year = {2020} -} -``` - ---- - -If you use any of the algorithms in Nav2 or the analysis of the algorithms in your work, please cite this work in your papers! - -S. Macenski, T. Moore, DV Lu, A. Merzlyakov, M. Ferguson, -[**From the desks of ROS maintainers: A survey of modern & capable mobile robotics algorithms in the robot operating system 2**](https://arxiv.org/pdf/2307.15236.pdf), -**Robotics and Autonomous Systems, 2023** - -```bash -@article{macenski2023survey, - title={From the desks of ROS maintainers: A survey of modern & capable mobile robotics algorithms in the robot operating system 2}, - author={S. Macenski, T. Moore, DV Lu, A. Merzlyakov, M. Ferguson}, - year={2023}, - journal = {Robotics and Autonomous Systems} -} -``` - ---- - -Smac Planner (Hybrid A\*, State Lattice, 2D): - -S. Macenski, M. Booker, J. Wallace, T. Fischer, -[**Open-Source, Cost-Aware Kinematically Feasible Planning for Mobile and Surface Robotics**](https://arxiv.org/abs/2401.13078), - -```bash -@article{macenski2024smac, - title={Open-Source, Cost-Aware Kinematically Feasible Planning for Mobile and Surface Robotics}, - author={Steve Macenski and Matthew Booker and Josh Wallace and Tobias Fischer}, - year={2026}, - journal = {IEEE Robotics and Automation Practice} -} -``` - ---- - -Regulated Pure Pursuit Controller: - -S. Macenski, S. Singh, F. Martin, J. Gines, -[**Regulated Pure Pursuit for Robot Path Tracking**](https://arxiv.org/abs/2305.20026), -**Autonomous Robots, 2023.** - -```bash -@article{macenski2023regulated, - title={Regulated Pure Pursuit for Robot Path Tracking}, - author={Steve Macenski and Shrijit Singh and Francisco Martin and Jonatan Gines}, - year={2023}, - journal = {Autonomous Robots} -} -``` - ---- - -VSLAM and formal comparisons for service robot needs: - -A. Merzlyakov, S. Macenski. -[**A Comparison of Modern General-Purpose Visual SLAM Approaches**](https://arxiv.org/abs/2107.07589). -**IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2021.** - -```bash -@InProceedings{vslamComparison2021, -author = {Merzlyakov, Alexey and Macenski, Steven}, -title = {A Comparison of Modern General-Purpose Visual SLAM Approaches}, -booktitle = {2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}, -year = {2021} -} -``` diff --git a/docs/about_and_contact/index.md b/docs/about_and_contact/index.md deleted file mode 100644 index 69cb109f..00000000 --- a/docs/about_and_contact/index.md +++ /dev/null @@ -1,76 +0,0 @@ -# About & Contact { #about-and-contact } - -## About - -Nav2 is a community effort to lower the barrier of entry of mobile robotics technology for all. -This project is one of the flagship projects along with MoveIt that acts as an applications entry point and frameworks for ROS. -Navigation in ROS 2 builds on the wild success of the original Navigation Stack (Nav Stack) in ROS (1). -This project has been used by researchers, educators, and industry for over 10 years. -There are very few projects that have lasted as long or were as successful as ROS (1) Navigation. -We would like to thank David Lu!! and Mike Ferguson for their tireless over the span of a decade to keep the Nav Stack alive and well. -Without their hard work, this project would not have been able to happen. -For a list of robots using Nav2, see [Robots Using][robots-using]. - -Aslas, as time moves on, so must we. -ROS (1) had a great run and those of us that build projects using it will remember it fondly(ish). -With change comes possibilities. -Nav2 builds on the success but redesigns the framework to be more flexible and the feedback gathered over 10 years. - -We strive to create an open community and encourage new ROS users and experts alike to collaborate. -However, that can't happen without your issues, pull requests, and support. -Nav2, like all open-source projects, is kept going by a dedicated group of developers, maintainers, users, and collaborators. -We would like to thank here our current and past contributors and maintainers. - -If you or your organization are interested in sponsoring Nav2 or any work around it, please reach out to the current project lead. - -Our current leadership team includes: - -
- -| Name | Organization | GitHub ID | Current Role | -|----------------|-----------------|---------------------|-------------------| -| Steve Macenski | Open Navigation | [SteveMacenski][] | Project Lead | -| Ruffin White | UC San Diego | [ruffsl][] | CI Wizard | -| Joshua Wallace | Locus Robotics | [JoshuaWallace][] | Main Contributor | - -
- -[SteveMacenski]: https://github.com/SteveMacenski -[ruffsl]: https://github.com/ruffsl -[JoshuaWallace]: https://github.com/jwallace42 - -Our former leadership team includes: - -
- -| Name | Organization | GitHub ID | Role | -|-------------------|-------------------|----------------------|---------------------| -| Matt Hansen | Intel Corporation | [mkhansen][] | Former Project Lead | -| Brian Wilcox | Intel Corporation | [bpwilcox][] | Former Maintainer | -| Carl Delsey | Intel Corporation | [crdelsey][] | Maintainer | -| Alexey Merzlyakov | Samsung Research | [AlexeyMerzlyakov][] | Maintainer | - -
- -[mkhansen]: https://github.com/mkhansen-intel -[bpwilcox]: https://github.com/bpwilcox -[crdelsey]: https://github.com/crdelsey -[AlexeyMerzlyakov]: https://github.com/AlexeyMerzlyakov - -
- -- :octicons-book-16: [Citations][citations] - If you use the navigation framework, an algorithm from this repository, or ideas from it please cite this work in your papers! - -
- -## Contact - -If you are interested in contacting someone about Navigation, ROS 2, or related projects, please email the project leader or email [info@opennav.org](mailto:info@opennav.org). -We intentionally make our emails easy to find. -If your inquiry relates to bugs or open-source feature requests, consider posting a ticket on our GitHub project. -If your inquiry relates to configuration support or private feature development, reach out and we may be able to connect you with -independent consultants or contractors that know this project well. - -Check out the Navigation 2 [Slack][] community. - -[Slack]: https://join.slack.com/t/navigation2/shared_invite/zt-uj428p0x-jKx8U7OzK1IOWp5TnDS2rA diff --git a/docs/about_and_contact/related_projects.md b/docs/about_and_contact/related_projects.md deleted file mode 100644 index 3a51c856..00000000 --- a/docs/about_and_contact/related_projects.md +++ /dev/null @@ -1,29 +0,0 @@ -# Related Projects { #related-projects } - -This is a community maintained list of related repositories and projects to Navigation2. - -
- -| Name | Maintainer | Description | -|----------------------------|----------------|----------------------------------------------------------------------------------------------| -| [Navigation2][] | Steve Macenski | Main ROS 2 Navigation Stack | -| [docs.nav2.org][] | Steve Macenski | Official documentation website source code | -| [navigation2_tutorials][] | Steve Macenski | Source code and examples used in the documentation tutorials | -| [navigation2_dynamic][] | Steve Macenski | Tools, algorithms, and capabilities for working with dynamic obstacles in ROS 2 | -| [robot_localization][] | Tom Moore | State estimation software for ROS 2 used for odometry fusion and GPS transformations | -| [slam_toolbox][] | Steve Macenski | Default 2D SLAM library | -| [navigation2.ai][] | Steve Macenski | AI and spatial intelligence capabilities for Nav2 | -| [BehaviorTree.CPP][] | Davide Faconti | Behavior Tree library used by Nav2 for task orchestration | -| [Fuse][] | Locus Robotics | Sensor fusion framework for state estimation in ROS 2 | - -
- -[Navigation2]: https://github.com/ros-navigation/navigation2 -[docs.nav2.org]: https://github.com/ros-navigation/docs.nav2.org -[navigation2_tutorials]: https://github.com/ros-navigation/navigation2_tutorials -[navigation2_dynamic]: https://github.com/ros-navigation/navigation2_dynamic -[navigation2.ai]: https://github.com/ros-navigation/navigation2.ai -[BehaviorTree.CPP]: https://www.behaviortree.dev/ -[robot_localization]: https://github.com/cra-ros-pkg/robot_localization -[Fuse]: https://github.com/locusrobotics/fuse -[slam_toolbox]: https://github.com/SteveMacenski/slam_toolbox diff --git a/docs/community/.nav.yml b/docs/community/.nav.yml deleted file mode 100644 index e16b44fb..00000000 --- a/docs/community/.nav.yml +++ /dev/null @@ -1,6 +0,0 @@ -nav: - - index.md - - Getting Involved: getting_involved.md - - Maintainer Docs: maintainer_docs - - Roadmaps: roadmaps.md - - ROSCon Talks: roscon_talks.md diff --git a/docs/community/getting_involved.md b/docs/community/getting_involved.md deleted file mode 100644 index a8dd4c99..00000000 --- a/docs/community/getting_involved.md +++ /dev/null @@ -1,128 +0,0 @@ -# Getting Involved { #getting-involved } - -As an open-source project, we welcome and encourage the community to -submit patches directly to the Nav2. In our collaborative open -source environment, standards and methods for submitting changes help -reduce the chaos that can result from an active development community. - -This document explains how to participate in project conversations, log -and track bugs and enhancement requests, and submit patches to the -project so your patch will be accepted quickly in the codebase. - -## Getting Involved - -If you're interested in getting involved in Nav2, first of all, welcome! -We encourage everyone to get involved from students, to junior developers, to senior developers, and executives. -There's something to do for everyone from bug fixes, to feature development, new algorithms, and refactoring. - -All ROS 2 TSC Working Groups have their meetings on the [working group calendar](https://calendar.google.com/calendar/embed?src=agf3kajirket8khktupm9go748%40group.calendar.google.com). -Here, you can find the date and time of the Nav2 working group meeting. Make sure you're checking in your local timezone. -From this calendar, you can add yourself to the event so it will appear on your google calendar and get the event link to the call through Google Hangouts. -We encourage everyone interested to come to the meeting to introduce yourself, your project, and see what everyone is working on. - -Further, [ROS Discourse](https://discourse.ros.org/) is a good place to follow larger discussions happening in the community and announcements. This is **not** the correct place to post questions or ask for assistance. Please visit [ROS Answers](https://answers.ros.org/) for Q&A. - -Lastly, we have a [Community Slack](https://join.slack.com/t/navigation2/shared_invite/zt-uj428p0x-jKx8U7OzK1IOWp5TnDS2rA) where we chat in real-time about topics in public channels or sidebar maintainers on individual projects via PMs. If you're interested in contributing to Nav2, this is a great place to join! - -If you're looking to contribute code or bugs, please see the Process section below. - -Over time, for developers that have an interest and have shown technical competence in an area of the stack, we elevate developers to a maintainers status. -That allows push rights to our protected branches, first-reviewers rights, and getting your name on [About and Contact][about-and-contact]. -There currently is not a clear process for getting to be a maintainer, but if you've been involved and contributing over a duration of several months, you may be a good candidate and should email the project lead listed on [About and Contact][about-and-contact]. - -## Process - -After you've introduced yourself in a working group meeting (recommended, not required), you're ready to get started! -We recommend a typical open-source project flow and value detail and transparency. -If you commit to something and need to pull back, say so. -We all know priorities change and appreciate the heads up so that task can go into the open queue of tasks. - -The process is simple and is as follow: - -1. Create a ticket for any issues or features you'd like to see. You are not required to fix / implement patches required, but it would be helpful. Reporting bugs is also a valuable contribution. -2. If this ticket, or another existing ticket, is something you would like to work on, comment in the ticket claiming ownership over it. It would be helpful at this time if you declared a strategy and a timeline for planning purposes of other folks working around you. Over time, update the ticket with progress of key markers and engage in any constructive feedback maintainers or other users may have. -3. Once you've completed the task you set out to complete, submit a PR! Please fill out the PR template in complete to ensure that we have a full understanding of your work. At that point, 1-2 reviewers will take a look at your work and give it some feedback to be merged into the codebase. For trivial changes, a single maintainer may merge it after review if they're happy with it, up to their discretion. Any substantial changes should be approved by at least 1 maintainer and 1 other community member. - -Note: We take code quality seriously and strive for high-quality and consistent code. -We make use of the linting and static analysis tools provided in ROS 2 (`ament_cpplint`, `ament_uncrustify`, `ament_cppcheck`, etc). -All PRs are built in CI with the appropriate ROS distributions and run through a set of unit and system level tests including static analysis. -You can see the results of these tests in the pull request. -It is expected for feature development for tests to cover this work to be added. -If any documentation must be updated due to your changes, that should be included in your pull request. - -## Licensing - -Licensing is very important to open source projects. It helps ensure the -software continues to be available under the terms that the author -desired. - -Because much of the source code is ported from other ROS 1 projects, each -package has it's own license. Contributions should be made under the predominant -license of that package. Entirely new packages should be made available under -the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0). - -A license tells you what rights you have as a developer, as provided by -the copyright holder. It is important that the contributor fully -understands the licensing rights and agrees to them. Sometimes the -copyright holder isn't the contributor, such as when the contributor is -doing work on behalf of a company. - -If for some reason Apache 2.0 or BSD licenses are not appropriate for your work, please get in contact with a project maintainer and discuss your concerns or requirements. -We may consider special exceptions for exceptional work, within reason (we will not accept any licenses that makes it unsuitable for commercial use). - -## Developer Certification of Origin (DCO) - -To make a good faith effort to ensure licensing criteria are met, -Nav2 encourages the Developer Certificate of Origin (DCO) process -to be followed. - -The DCO is an attestation attached to every contribution made by a -developer. In the commit message of the contribution, (described more -fully later in this document), the developer simply adds a -`Signed-off-by` statement and thereby agrees to the DCO. - -In practice, it's easier to just use: - -```bash -git commit -s -m "commit message." -``` - -Where `-s` adds this automatically. -If you forgot to add this to a commit, it is easy to append via: - -```bash -git commit --amend -s -``` - -When a developer submits a patch, it is a commitment that the -contributor has the right to submit the patch per the license. The DCO -agreement is shown below and at [http://developercertificate.org/](http://developercertificate.org/). - -```text -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - -(b) The contribution is based upon previous work that, to the - best of my knowledge, is covered under an appropriate open - source license and I have the right under that license to - submit that work with modifications, whether created in whole - or in part by me, under the same open source license (unless - I am permitted to submit under a different license), as - Indicated in the file; or - -(c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - -(d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including - all personal information I submit with it, including my - sign-off) is maintained indefinitely and may be redistributed - consistent with this project or the open source license(s) - involved. -``` diff --git a/docs/community/images/roscon2018_stvl.jpg b/docs/community/images/roscon2018_stvl.jpg deleted file mode 100644 index c4b9014c..00000000 Binary files a/docs/community/images/roscon2018_stvl.jpg and /dev/null differ diff --git a/docs/community/images/roscon2019_nav2_overview.jpg b/docs/community/images/roscon2019_nav2_overview.jpg deleted file mode 100644 index 25816465..00000000 Binary files a/docs/community/images/roscon2019_nav2_overview.jpg and /dev/null differ diff --git a/docs/community/images/roscon2019_slam_toolbox.jpg b/docs/community/images/roscon2019_slam_toolbox.jpg deleted file mode 100644 index c4e4b1a1..00000000 Binary files a/docs/community/images/roscon2019_slam_toolbox.jpg and /dev/null differ diff --git a/docs/community/images/roscon2020_next_gen.jpg b/docs/community/images/roscon2020_next_gen.jpg deleted file mode 100644 index 7db626aa..00000000 Binary files a/docs/community/images/roscon2020_next_gen.jpg and /dev/null differ diff --git a/docs/community/images/roscon2021_ci_chronicles.jpg b/docs/community/images/roscon2021_ci_chronicles.jpg deleted file mode 100644 index af0a003b..00000000 Binary files a/docs/community/images/roscon2021_ci_chronicles.jpg and /dev/null differ diff --git a/docs/community/images/roscon2021_past_present_future.jpg b/docs/community/images/roscon2021_past_present_future.jpg deleted file mode 100644 index 0a421951..00000000 Binary files a/docs/community/images/roscon2021_past_present_future.jpg and /dev/null differ diff --git a/docs/community/images/roscon2022_bt_cpp.jpg b/docs/community/images/roscon2022_bt_cpp.jpg deleted file mode 100644 index d9383b84..00000000 Binary files a/docs/community/images/roscon2022_bt_cpp.jpg and /dev/null differ diff --git a/docs/community/images/roscon2022_smac_planners.jpg b/docs/community/images/roscon2022_smac_planners.jpg deleted file mode 100644 index a86e90cf..00000000 Binary files a/docs/community/images/roscon2022_smac_planners.jpg and /dev/null differ diff --git a/docs/community/images/roscon2023_bidirectional.jpg b/docs/community/images/roscon2023_bidirectional.jpg deleted file mode 100644 index 8f297773..00000000 Binary files a/docs/community/images/roscon2023_bidirectional.jpg and /dev/null differ diff --git a/docs/community/images/roscon2023_mppi.jpg b/docs/community/images/roscon2023_mppi.jpg deleted file mode 100644 index 8ecda4c0..00000000 Binary files a/docs/community/images/roscon2023_mppi.jpg and /dev/null differ diff --git a/docs/community/images/roscon2023_whys_over_whats.jpg b/docs/community/images/roscon2023_whys_over_whats.jpg deleted file mode 100644 index 2a78d36a..00000000 Binary files a/docs/community/images/roscon2023_whys_over_whats.jpg and /dev/null differ diff --git a/docs/community/images/roscon2024_docking.jpg b/docs/community/images/roscon2024_docking.jpg deleted file mode 100644 index 47fc8172..00000000 Binary files a/docs/community/images/roscon2024_docking.jpg and /dev/null differ diff --git a/docs/community/images/roscon2024_mobile_robotics_scaleup.jpg b/docs/community/images/roscon2024_mobile_robotics_scaleup.jpg deleted file mode 100644 index 61413b58..00000000 Binary files a/docs/community/images/roscon2024_mobile_robotics_scaleup.jpg and /dev/null differ diff --git a/docs/community/images/roscon2024_navegacion_robusta.jpg b/docs/community/images/roscon2024_navegacion_robusta.jpg deleted file mode 100644 index b20f6f43..00000000 Binary files a/docs/community/images/roscon2024_navegacion_robusta.jpg and /dev/null differ diff --git a/docs/community/images/roscon2024_radar_tracks.jpg b/docs/community/images/roscon2024_radar_tracks.jpg deleted file mode 100644 index 864fd298..00000000 Binary files a/docs/community/images/roscon2024_radar_tracks.jpg and /dev/null differ diff --git a/docs/community/images/roscon2025_route_server.jpg b/docs/community/images/roscon2025_route_server.jpg deleted file mode 100644 index c22de726..00000000 Binary files a/docs/community/images/roscon2025_route_server.jpg and /dev/null differ diff --git a/docs/community/index.md b/docs/community/index.md deleted file mode 100644 index 24d8fdcf..00000000 --- a/docs/community/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -watermark: true ---- - -# Community { #community } - -
- -[Getting Involved][getting-involved]{ .md-button .md-button--primary } -[Maintainer Docs][maintainer-docs]{ .md-button .md-button--primary } -[Roadmaps][roadmaps]{ .md-button .md-button--primary } -[ROSCon Talks][roscon-talks]{ .md-button .md-button--primary } - -
diff --git a/docs/community/maintainer_docs/.nav.yml b/docs/community/maintainer_docs/.nav.yml deleted file mode 100644 index a53d860b..00000000 --- a/docs/community/maintainer_docs/.nav.yml +++ /dev/null @@ -1,5 +0,0 @@ -nav: - - index.md - - ROS Distribution Release Process: distribution_release.md - - ROS Distribution Sync Process: distribution_syncs.md - - Docs Distribution Release Process: docs_release.md diff --git a/docs/community/maintainer_docs/distribution_release.md b/docs/community/maintainer_docs/distribution_release.md deleted file mode 100644 index 74e75c47..00000000 --- a/docs/community/maintainer_docs/distribution_release.md +++ /dev/null @@ -1,175 +0,0 @@ -# ROS Distribution Release Process { #ros-distribution-release-process } - -This is the instructions for releasing a new Nav2 version for a ROS distribution release. - -!!! note - - We require `osrf/ros:-desktop-full` images to exist for a distribution before this process may be completed. - This usually means we wait until the release date to perform Nav2's release and have it included in the first distribution sync. - -## 1. Initial Freeze - -Look at the ROS 2 timeline for release and decide on a date to freeze Nav2 new contributions. -Mark any open tickets and/or pull requests with a new tag `-release` that we want to get in before the branch off. -These are the actions items to focus on before the chosen release date which would block release on time. - -These tickets or pull requests should represent major features, meaningful bug fixes, or ABI/API breaking changes that are necessary to be included before the branch off so that those feature(s) or API change(s) are represented in the new distribution. - -## 2. Local Functional Testing - -Once pre-release images are available on [ros_oci_images](https://github.com/sloretz/ros_oci_images), locally pull this docker image -In a workspace root containing Nav2 and `nav2_minimal_turtlebot_simulations`, run the following: - -```bash -sudo docker pull ghcr.io/sloretz/ros-testing:-desktop-full - -sudo docker run -it --net=host --privileged -v .:/root/jazzy_ws --volume="${XAUTHORITY}:/root/.Xauthority" --env="DISPLAY=$DISPLAY" -v="/tmp/.gazebo/:/root/.gazebo/" -v /tmp/.X11-unix:/tmp/.X11-unix:rw --shm-size=1000mb ghcr.io/sloretz/ros-testing:-desktop-full - -apt update -apt upgrade - -source /opt/ros//setup.bash -rosdep init -rosdep update - -colcon build --parallel-workers 1 -colcon test --parallel-workers 1 -``` - -This will obtain the testing docker image from `ros_oci_images`, open a container, and make sure the system can build and pass unit and system-level testing. - -Next, run each major Nav2 launch file and navigate the robot around. - -```shell -ros2 launch nav2_bringup tb3_simulation_launch.py -``` - -```shell -ros2 launch nav2_bringup tb4_simulation_launch.py -``` - -```shell -ros2 launch nav2_bringup tb3_loopback_sim_launch.py -``` - -```shell -ros2 launch nav2_bringup tb4_loopback_sim_launch.py -``` - -Ensure that you see all the data, costmap, footprint, path planning, control and other topics visible. -Send Navigate To Pose, Navigate Through Poses goals and cancel goals periodically. -Shutdown the Nav2 lifecycle nodes, hit Control+C, and ensure the stack shuts down cleanly. - -This step may be performed early to catch and resolve issues before the release process. -Once all testing passes, move onto the next steps. - -## 3. Setup Nav2 Docker Images - -Next, we need to setup Nav2's Nightly and Release docker image jobs in [nav2_docker](https://github.com/ros-navigation/nav2_docker). - -Update `.github/workflows/build_images.yaml` to contain the new distribution in the `ros_distro` matrix. -Remove any EOL distributions at this time. -Within the `strategy.matrix.version` map, please a new entry for the distribution being added. -The `main_version` is `1` unless a new major version is set in Nav2's `package.xml` files. -The `distro_version` should be bumped by one from the last distribution representing the release in the format `1.4.X`. -Remove any EOL distributions at this time. - -Open the `README.md` and update the distributions to include this. - -At this time, the build should fail because there is no `distro` branch on Nav2, which is our next step. - -## 4. Branch Off Distribution - -Now, we will setup the new branch and its CI system. - -First, update `.github/workflows/build_main_against_distros.yml` by adding the new `ros_distro` to the matrix. -While the `nav2_docker` nightly image does not yet exist, it will by the end of this step. -Remove any EOL distributions at this time. - -Next, bump the `main` branch's distribution number to the same set in Step 2 above (i.e. `1.4.0`). -Add the distribution branch to `.github/workflows/update_ci_image.yaml` so that future pushes will result in CI image updates. -Remove any EOL distributions at this time. - -In the `mergify.yml` file, add a new backport automation for the new distribution. Make to to create the tag in GitHub's UX as well for later use. - -Finally, create the new distribution branch from `main` and push to the server. -Go into the GitHub Actions tab on `nav2_docker` and retrigger its build job. -The nightly jobs should now exist for the new distribution and return successfully (validate this). -The release jobs will fail until Bloom is run to obtain the tagged version to build and release in Step 9. - -## 5. Mark Branch as Protected - -Go to the Repo Settings -> Branches. Create a branch protection rule for the new branch that matches the last. - -- Request a PR before merging -> Require approvals & override for infra-admins. -- Restrict who can push branches that match this rule. - -## 6. Setup Branch CI - -The final change to the branch is to setup CI so PRs targeting it can be successfully built. -In the new distribution branch, update the files for CI ([Humble Example](https://github.com/ros-navigation/navigation2/commit/4eb4ee01967a3b881c05d962ffd856c668b2e4c0)). - -- Update `.circleci/config.yml` to use the new distribution image (replace `ghcr.io/ros-navigation/navigation2:main`). -- Update `.devcontainer/devcontainer.json` to `cacheFrom` the new distribution image (replace `ghcr.io/ros-navigation/navigation2:main`). -- Update `Dockerfile` to use the new distribution's image rather than `rolling`. -- Update `tools/distro.Dockerfile` to use the new distribution's image rather than `rolling` in 3x places. - -Then, retrigger the Update CI Image workflow in Nav2's GitHub Actions tab, it should now also be successful. -Open a dummy PR against the new distribution branch and ensure that it builds successfully. - -## 7. Update Auxiliary Projects - -Nav2 has a number of auxiliary projects that also need to be updated for a new distribution. -These include: - -- `nav2_minimal_turtlebot_simulation` -- `navigation2_tutorials` - -For each: - -- Update the package.xml for a new distribution version -- Create a new branch from `main` for the distribution -- Update CI on the new branch to use this new distribution image -- Review and update the readme as needed - -## 8. Run Bloom Release - -Once the new branches, versions, and CI are setup and ready, we can run the bloom release process. -Run the following command to create a new release for the distribution for each Nav2 repository (Nav2, Minimal Turtlebot Simulation, SLAM Toolbox, NPVL, STVL etc). - -```bash -bloom-release navigation2 --rosdistro distro --track distro --new-track --edit -``` - -Be patient, this will take a while to run. - -## 9. Nav2 Docker Build - -To allow the `nav2_docker` build of the released version in Step 7, we need to enable the first build to pass the latest tag check in the workflow. -You should see that the nightly of this distribution works, but the release version is failing with `Error: No matching package versions found.`. -To resolve, comment out the `exit 1` in the `latest_version` validity check. -Once the job turns over, revert this commit to reintroduce the error. - -## 10. Bloom Related Packages - -Related packages also must be bloomed, such as: - -- `slam_toolbox` -- `nav2_minimal_turtlebot_simulation` -- `spatio_temporal_voxel_layer` -- `nonpersistent_voxel_layer` - -Note: There is a circular dependency between `slam_toolbox` and Nav2. SLAM Toolbox must be released first, then Nav2, then SLAM Toolbox again after the testing repository is updated with Nav2's build. - -## 11. Announcements - -Finally, we can announce the updates! -Create a new migration guide page on the Nav2 website for contributors to populate with notable changes in the next distribution cycle. -Update the Roadmap page with a new table of projects and features to be added over the next distribution. -Update landing page with new distribution art in the table (and update status of other distros) - -Make announcements on Slack, ROS Discourse, and LinkedIn to announce the new distribution and its major new features. -Gifs, videos, and images are always welcome to be included in the announcements! - -Identify tickets to address or PRs to merge for the next distribution. -Make a call for contributions on the roadmap items, these strategic items, or other `good-first-issues`. diff --git a/docs/community/maintainer_docs/distribution_syncs.md b/docs/community/maintainer_docs/distribution_syncs.md deleted file mode 100644 index 71ba7727..00000000 --- a/docs/community/maintainer_docs/distribution_syncs.md +++ /dev/null @@ -1,89 +0,0 @@ -# ROS Distribution Sync Process { #ros-distribution-sync-process } - -This is the instructions for updating a Nav2 version in a ROS distribution sync. -We do this by bulk cherry picking commits from the `main` branch after they've had time to soak and apply them to the branch we looking to sync with the newest features. - -## 1. Initial Setup - -First we need to create a temporary workspace to perform the sync. -Typically, this is done in the `/tmp` directory so that it is cleaned up after a reboot. - -```bash -mkdir -p /tmp/sync_ws/src -cd /tmp/sync_ws/src -git clone https://github.com/ros-navigation/navigation2.git -b -cd navigation2 -git checkout -b sync_ -``` - -Then, we want to get a list of all of the commits we may be interested in backporting. -This can be found either in the git logs of the `main` branch or using the GitHub UX at [https://github.com/ros-navigation/navigation2/commits/](https://github.com/ros-navigation/navigation2/commits/) and select the branch you are interested in. -If using GitHub, open two tabs - one for `main` and one for ``. - -Finally, we need to identify the date of the last sync. -This can be found looking in the commit messages for ``'s branch or by looking at the release page for Nav2 and finding the date of the last release for that distribution. -Scroll back in the `main` and `` git logs to find the last sync commit to begin. - -Once you have a local clone, the git logs, and the date of the last sync, we can begin the process. - -## 2. Backporting Process - -Starting with the first commit in `main` after the last sync date, we will look at each commit individually. -Each commit should be evaluated for the following criteria: - -- Cannot change default out-of-the-box behavior or existing configured robot behavior -- Cannot change major end-user ABI/API -- Cannot change message, action, or service definitions -- Cannot include risky changes that need more time to soak, such as for complete package rewrites or experimental features - -If it does not do any of the above, it is a candidate for backporting. -It can be backported via the following command in your local branch: - -```bash -git cherry-pick -``` - -If this merges without issue, you may proceed. -If not, we either must resolve the conflicts or roll back the commit. -We may need to roll it back if the merge conflict is too complex or it relies on a cascading chain of other commits that could not be included due to their dependency on commits that were unable to be backported. - -!!! note - - Some commits may already have been backported by Mergify. - Use the git logs for the `` branch to check if the commit has already been backported. - If it has been, it can be skipped. - -Once all commits to the present are evaluated, we can proceed to the next step. - -## 3. Testing - -Before we can merge our changes, we need to ensure that everything is working correctly. -This involves compiling the code, running any unit tests, and performing functional testing. -Navigate back to the root of the workspace and build the code: - -```bash -cd ../../ -colcon build -source install/setup.bash -``` - -After building, we can run the tests: - -```bash -colcon test -``` - -If all tests pass, we can launch the Nav2 bringup demos and navigate the TB3 and TB4 robots in both Gazebo and the loopback simulator for 10-15 minutes to validate functional stability of the backport. - -## 4. Open a PR - -Once we have validated the changes, we can open a pull request (PR) against the `` branch. -Increment the package.xml versions for all packages using search and replace to increment one minor version (i.e. 1.1.X). -Open a PR with the title ` Sync: ` and include a description of the changes made. -Let CI run and merge once passes for a second independent validation of compilation and testing. - -## 5. Bloom Release - -Once the PR is merged, we can release the changes to the distribution. -Create a release of the same version as the `package.xml` files targeting the `` branch. -Then, follow [Steve's Bloom Release Guide](https://gist.github.com/SteveMacenski/1c321d1c9edca096ae4d763d8327c2ee) to perform the bloom release. diff --git a/docs/community/maintainer_docs/docs_release.md b/docs/community/maintainer_docs/docs_release.md deleted file mode 100644 index 4e69e0a8..00000000 --- a/docs/community/maintainer_docs/docs_release.md +++ /dev/null @@ -1,123 +0,0 @@ -# Docs Distribution Release Process { #docs-distribution-release-process } - -This page outlines the main steps to add a new documentation version following a Nav2 distribution release. - -## 1. Branch Off Docs Distribution - -Create new distribution branch from `rolling` and switch to it: - -```shell -git checkout -b rolling -``` - -All following actions and commands execute in the new branch only. Replace `` with the actual distribution name (e.g. `lyrical`). - -## 2. Update Configuration files - -### 2.1 CircleCI - -Replace the `rolling` branch with a new one for workflow `filters` in `.circleci/config.yml`: - -```yaml -workflows: - build_docs: - jobs: - - docs_build: - filters: - branches: - ignore: - - - publish_docs: - jobs: - - docs_publish: - filters: - branches: - only: - - -``` - -### 2.2 Github Actions - -Update branch name in all configuration files located in `.github/workflows`: - -- Update condition for `pre-commit`: - - ```yaml - on: - pull_request: - push: - branches: - - - ``` - -### 2.3 MkDocs Material - -Update link for `edit_uri` key in `mkdocs.yml` configuration file: - -```yaml -edit_uri: https://github.com/ros-navigation/docs.nav2.org/blob//docs/ -``` - -Update `ros2_distro` variable in `mkdocs.yml`: - -```yaml -extra: - ros2_distro: "" -``` - -Update `branch` variable in `macros/variables.yml`: - -```yaml -github_repositories: - navigation2: - owner: "ros-navigation" - branch: "" -``` - -## 3. Update Documentation - -### 3.1 Update links - -- Update all GitHub links to point to new distribution branch where it applies. -- Update all links referring to ROS 2 Documentation. - - !!! warning "Important" - - The ROS 2 documentation for the Rolling version has a different structure than other released distributions. Each link must be checked to ensure the correct path to the ROS 2 documentation page. - - Here is an example showing the difference on one of the pages: - - **Rolling**: [https://docs.ros.org/en/rolling/ROS-Framework/interfaces/actions/Working-with-actions/Understanding-ROS2-Actions/Understanding-ROS2-Actions.html](https://docs.ros.org/en/rolling/ROS-Framework/interfaces/actions/Working-with-actions/Understanding-ROS2-Actions/Understanding-ROS2-Actions.html) - - **Lyrical**: [https://docs.ros.org/en/lyrical/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Actions/Understanding-ROS2-Actions.html](https://docs.ros.org/en/lyrical/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Actions/Understanding-ROS2-Actions.html) - -### 3.2 Review tutorials - -Review [tutorials][tutorials] for compatibility with the new distribution, including API and behavior changes. - -## 4. Build and Publish Documentation - -Once all the changes are made, use the command below to check the build: - -```shell -sudo apt install python3-pip python3-venv -python3 -m venv venv -source venv/bin/activate -pip3 install -r requirements.txt -mkdocs build -``` - -Refer to [README.md](https://github.com/ros-navigation/docs.nav2.org/blob/master/README.md) for additional commands, such as previewing multiple versions locally before publishing. - -Publish the documentation to the new distribution branch: - -```shell -git push origin -``` - -## 5. Mark Branch as Protected - -Go to the Repo Settings -> Branches. Create a branch protection rule for the new branch that matches the last. - -- Request a PR before merging -> Require approvals & override for infra-admins. -- Restrict who can push branches that match this rule. diff --git a/docs/community/maintainer_docs/index.md b/docs/community/maintainer_docs/index.md deleted file mode 100644 index 4a7b2d85..00000000 --- a/docs/community/maintainer_docs/index.md +++ /dev/null @@ -1,12 +0,0 @@ -# Maintainer Docs { #maintainer-docs } - -This page is a set of maintainer procedures and documentation used for maintenance of Nav2. -These are published publicly for visibility and as a resource for the maintainer community. - -
- -[ROS Distribution Release Process][ros-distribution-release-process]{ .md-button .md-button--primary } -[ROS Distribution Sync Process][ros-distribution-sync-process]{ .md-button .md-button--primary } -[Docs Distribution Release Process][docs-distribution-release-process]{ .md-button .md-button--primary } - -
diff --git a/docs/community/roadmaps.md b/docs/community/roadmaps.md deleted file mode 100644 index 9783a4d3..00000000 --- a/docs/community/roadmaps.md +++ /dev/null @@ -1,99 +0,0 @@ -# Roadmaps { #roadmaps } - -This is the list of major issues and features the Nav2 maintainers are committing for completion for various ROS 2 releases. -This is *not* an exhaustive list of planned features or what changes may be found in the new distribution. -It represents only the items of direct commitment to give insight into commitments for REP-2005 repositories in the [ROS 2 Roadmap](https://docs.ros.org/en/rolling/Roadmap.html). -For a full list of important completed changes in the project, see the Migration Guides [Migration Guides][migration-guides]. - - -
-
-
-
-
-
- -## M-Turtle Roadmap - -- [ ] :roadmap-size-medium: - Update and refine behavior trees for more intelligent behavior. -- [ ] :roadmap-size-large: - Create initial prototype of a framework for environmental modeling, sensor processing, and external model integration. -- [ ] :roadmap-size-medium: - Continue to abstract ROS APIs into the Nav2 ROS Common package for better multi-distro support (Time, Clock, TF, etc). -- [ ] :roadmap-size-large: - Global Planner benchmark evaluation testing framework for more confident changes over large scale datasets -- [ ] :roadmap-size-medium: - Reduce bond connection overhead to Nav2 Task Servers -- [ ] :roadmap-size-small: - Review time synchronous behavior in Nav2 (no uses of ``Time(0)``, arbitrary ``now()``, etc) of subscriptions, publishers, TF, and others -- [x] :roadmap-size-large: - Update to new documentation website with a modern format and styling - -## Lyrical Roadmap - -- [x] :roadmap-size-large: - Controller Server and Plugin factor for centralized path handling and crosstrack error estimation and enforcement. -- [x] :roadmap-size-large: - Massive refactor of `rclcpp` types to `nav2` types for ROS API abstraction. -- [x] :roadmap-size-medium: - Improve dynamic feasibility on approach to goal on all control and behavior plugins. -- [x] :roadmap-size-medium: - Introduce Vector Object Server to augment Costmap Filters with polygons rather than annotated masks. -- [ ] :roadmap-size-medium: :roadmap-note-incomplete: - [Continued Route Server][] -- [x] :roadmap-size-medium: - Add Pause and Resume feature to Nav2 behavior tree tasks. -- [x] :roadmap-size-medium: - Use PointCloud Transport for all pointcloud subscriptions. -- [ ] :roadmap-size-medium: :roadmap-note-incomplete: - Update and refine behavior trees for more intelligent behavior. -- [x] :roadmap-size-medium: - Fix for statics in Smac Planner to allow for multiple instances in a server not to conflict. -- [ ] :roadmap-size-large: :roadmap-note-incomplete: - Create initial prototype of a framework for environmental modeling, sensor processing, and external model integration. - -[Continued Route Server]: https://github.com/ros-navigation/navigation2/issues/5082 - -## Kilted Roadmap - -- [x] :roadmap-size-large: - Release of Route server. -- [x] :roadmap-size-medium: - Allow non-orientation sp. for smac planner goals. -- [x] :roadmap-size-medium: - Allow docking server to operate forward and backwards. - -## Jazzy Roadmap - -- [x] :roadmap-size-large: - [Smac Planner Improvements][] -- [x] :roadmap-size-small: - Get CI Green Again. -- [x] :roadmap-size-medium: - Various MPPI Improvements. -- [ ] :roadmap-size-medium: :roadmap-note-incomplete: - [Fuse Migration][] -- [x] :roadmap-size-medium: - [Ignition Migration][] -- [ ] :roadmap-size-large: :roadmap-note-in-progress: - [Route Graph Planner][] -- [x] :roadmap-size-medium: - Provide Advanced Capabilities Tutorials (e.g. gps, vio). -- [x] :roadmap-size-medium: - ROS Time Respect Across Stack. -- [x] :roadmap-size-medium: - TwistStamped Migration. -- [x] :roadmap-size-medium: - Velocity-Scheduled Collision Monitor Polygons. -- [x] :roadmap-size-medium: - Nav2 auto-docking capability. - -[Smac Planner Improvements]: https://github.com/ros-navigation/navigation2/issues/3172 -[Fuse Migration]: https://github.com/ros-navigation/navigation2/issues/2598 -[Ignition Migration]: https://github.com/ros-navigation/navigation2/issues/2997 -[Route Graph Planner]: https://github.com/ros-navigation/navigation2/issues/2229 - -## Iron Roadmap - -- [x] :roadmap-size-medium: - [Pluginize Navigators][] -- [x] :roadmap-size-mega: - [MPPI Controller][] -- [ ] :roadmap-size-large: :roadmap-note-incomplete: - [Route Graph Planner][] -- [x] :roadmap-size-small: - 90% unit test coverage. -- [x] :roadmap-size-medium: - [Velocity Smoother][] -- [ ] :roadmap-size-medium: :roadmap-note-incomplete: - ROS Time Respect Across Stack. - -[Pluginize Navigators]: https://github.com/ros-navigation/navigation2/issues/3335 -[MPPI Controller]: https://github.com/ros-navigation/navigation2/pull/3350 -[Route Graph Planner]: https://github.com/ros-navigation/navigation2/issues/2229 -[Velocity Smoother]: https://github.com/ros-navigation/navigation2/pull/2964 - -## Humble Roadmap - -- [x] :roadmap-size-medium: - [Nav2 1 Node Per Server][] -- [x] :roadmap-size-large: - [Smac Lattice Planner][] -- [x] :roadmap-size-medium: - [Safety Collision Nodes][] -- [x] :roadmap-size-small: - [Fix Min Range Bug][] -- [x] :roadmap-size-small: - [Move Development from Master to Rolling][] -- [x] :roadmap-size-medium: - Push Test Coverage to 88%. -- [x] :roadmap-size-medium: - [Complete First Time Guide][] -- [x] :roadmap-size-small: - [Rotation Shim Controller][] -- [x] :roadmap-size-medium: - [Dynamic Composition][] - -[Nav2 1 Node Per Server]: https://github.com/ros-navigation/navigation2/issues/816 -[Smac Lattice Planner]: https://github.com/ros-navigation/navigation2/issues/1710 -[Safety Collision Nodes]: https://github.com/ros-navigation/navigation2/issues/1899 -[Fix Min Range Bug]: https://github.com/ros-navigation/navigation2/pull/2460 -[Move Development from Master to Rolling]: https://github.com/ros-navigation/navigation2/issues/2337 -[Complete First Time Guide]: https://github.com/ros-navigation/navigation2/issues/1589 -[Rotation Shim Controller]: https://github.com/ros-navigation/navigation2/pull/2718 -[Dynamic Composition]: https://github.com/ros-navigation/navigation2/issues/2147 diff --git a/docs/community/roscon_talks.md b/docs/community/roscon_talks.md deleted file mode 100644 index a2d217e1..00000000 --- a/docs/community/roscon_talks.md +++ /dev/null @@ -1,55 +0,0 @@ -# ROSCon Talks { #roscon-talks } - -Below is a list of ROSCon talks that have been given by the Nav2 team and the community which describe important features, tuning and configuration advice, and how to work with them in your applications. - -## Nav2 Developer Talks - -
- -| Talk | Thumbnail | Description | -|------|-----------|-------------| -| [On Use of Nav2 Route Server][route-server] | ![thumbnail](images/roscon2025_route_server.jpg) | ROSCon 2025 | -| [On Use of Nav2 Docking][docking] | ![thumbnail](images/roscon2024_docking.jpg) | ROSCon 2024 | -| [Nav2 Whys over What's: Navigating the Philosophies Behind the Features][whys-over-whats] | ![thumbnail](images/roscon2023_whys_over_whats.jpg) | ROSCon FR 2023 | -| [On Use of Nav2 MPPI Controller][mppi] | ![thumbnail](images/roscon2023_mppi.jpg) | ROSCon 2023 | -| [Bidirectional navigation with Nav2][bidirectional] | ![thumbnail](images/roscon2023_bidirectional.jpg) | ROSCon 2023 | -| [On Use of Nav2 Smac Planners][smac] | ![thumbnail](images/roscon2022_smac_planners.jpg) | ROSCon 2022 | -| [The Past, Present, and Future of Navigation][past-present-future] | ![thumbnail](images/roscon2021_past_present_future.jpg) | ROSCon JP 2021 | -| [Chronicles of Caching and Containerising CI for Nav2][ci-chronicles] | ![thumbnail](images/roscon2021_ci_chronicles.jpg) | ROSCon 2021 | -| [Navigation2: The Next Generation Navigation System][next-gen] | ![thumbnail](images/roscon2020_next_gen.jpg) | ROSCon 2020 | -| [On Use of SLAM Toolbox][slam-toolbox] | ![thumbnail](images/roscon2019_slam_toolbox.jpg) | ROSCon 2019 | -| [Navigation 2 Overview][nav2-overview] | ![thumbnail](images/roscon2019_nav2_overview.jpg) | ROSCon 2019 | -| [On Use of the Spatio-Temporal Voxel Layer][stvl] | ![thumbnail](images/roscon2018_stvl.jpg) | ROSCon 2018 | - -
- -[route-server]: https://vimeo.com/1136164030 -[docking]: https://vimeo.com/1024971348 -[whys-over-whats]: https://www.youtube.com/watch?v=2W3zWO-msEo -[mppi]: https://vimeo.com/879001391 -[bidirectional]: https://vimeo.com/879000809 -[smac]: https://vimeo.com/showcase/9954564/video/767157646 -[past-present-future]: https://vimeo.com/638041661/a5306a02ab -[ci-chronicles]: https://vimeo.com/649647161 -[next-gen]: https://vimeo.com/showcase/7812155/video/480604621 -[slam-toolbox]: https://vimeo.com/378682207 -[nav2-overview]: https://vimeo.com/378682188 -[stvl]: https://vimeo.com/292699571 - -## Community's Talks - -
- -| Talk | Thumbnail | Description | -|------|-----------|-------------| -| [Navegación robusta en ROS2][navegacion-robusta] | ![thumbnail](images/roscon2024_navegacion_robusta.jpg) | ROSCon ES 2024 | -| [BehaviorTree.CPP 4.0. What is new and roadmap][bt-cpp] | ![thumbnail](images/roscon2022_bt_cpp.jpg) | ROSCon 2022 | -| [Mobile Robotics Scale-up Leveraging ROS][mobile-scaleup] | ![thumbnail](images/roscon2024_mobile_robotics_scaleup.jpg) | ROSCon 2024 | -| [Radar Tracks for Path Planning in the presence of Dynamic Obstacles][radar-tracks] | ![thumbnail](images/roscon2024_radar_tracks.jpg) | ROSCon 2024 | - -
- -[navegacion-robusta]: https://vimeo.com/showcase/11453818/video/1029492785 -[bt-cpp]: https://vimeo.com/showcase/9954564/video/767160437 -[mobile-scaleup]: https://vimeo.com/1024971160 -[radar-tracks]: https://vimeo.com/1024971565 diff --git a/docs/index.md b/docs/index.md index acdc719b..740ed461 100644 --- a/docs/index.md +++ b/docs/index.md @@ -79,41 +79,41 @@ A list of all plugins can be found on [Navigation Plugins][navigation-plugins] -
- Dexory - Nvidia Nova Carter - Kiwibot - Firefly Automatix - Unitree G1 - Unitree Go2 - Angsa - Polymath Robotics - Karelics - Rosie - Seasony - Barn Owl - Turtlebot4 - Toyota - Elroy Air - Torch Technologies - Botronics + Dexory + Nvidia Nova Carter + Kiwibot + Firefly Automatix + Unitree G1 + Unitree Go2 + Angsa + Polymath Robotics + Karelics + Rosie + Seasony + Barn Owl + Turtlebot4 + Toyota + Elroy Air + Torch Technologies + Botronics - Dexory - Nvidia Nova Carter - Kiwibot - Firefly Automatix - Unitree G1 - Unitree Go2 - Angsa - Polymath Robotics - Karelics - Rosie - Seasony - Barn Owl - Turtlebot4 - Toyota - Elroy Air - Torch Technologies - Botronics + Dexory + Nvidia Nova Carter + Kiwibot + Firefly Automatix + Unitree G1 + Unitree Go2 + Angsa + Polymath Robotics + Karelics + Rosie + Seasony + Barn Owl + Turtlebot4 + Toyota + Elroy Air + Torch Technologies + Botronics
diff --git a/docs/robots_using/images/ACFR.png b/docs/robots_using/images/ACFR.png deleted file mode 100644 index ea87072a..00000000 Binary files a/docs/robots_using/images/ACFR.png and /dev/null differ diff --git a/docs/robots_using/images/angsa.png b/docs/robots_using/images/angsa.png deleted file mode 100644 index fd93e05d..00000000 Binary files a/docs/robots_using/images/angsa.png and /dev/null differ diff --git a/docs/robots_using/images/barnowl.png b/docs/robots_using/images/barnowl.png deleted file mode 100644 index 7d1cf69e..00000000 Binary files a/docs/robots_using/images/barnowl.png and /dev/null differ diff --git a/docs/robots_using/images/birdseye.png b/docs/robots_using/images/birdseye.png deleted file mode 100644 index 8f70a109..00000000 Binary files a/docs/robots_using/images/birdseye.png and /dev/null differ diff --git a/docs/robots_using/images/botronics.png b/docs/robots_using/images/botronics.png deleted file mode 100644 index 2f0fa6e0..00000000 Binary files a/docs/robots_using/images/botronics.png and /dev/null differ diff --git a/docs/robots_using/images/brisa.png b/docs/robots_using/images/brisa.png deleted file mode 100644 index 7d477eda..00000000 Binary files a/docs/robots_using/images/brisa.png and /dev/null differ diff --git a/docs/robots_using/images/datavision.png b/docs/robots_using/images/datavision.png deleted file mode 100644 index d12cd6c8..00000000 Binary files a/docs/robots_using/images/datavision.png and /dev/null differ diff --git a/docs/robots_using/images/dexory.png b/docs/robots_using/images/dexory.png deleted file mode 100644 index 49dcf33d..00000000 Binary files a/docs/robots_using/images/dexory.png and /dev/null differ diff --git a/docs/robots_using/images/elroy.png b/docs/robots_using/images/elroy.png deleted file mode 100644 index 1c480cda..00000000 Binary files a/docs/robots_using/images/elroy.png and /dev/null differ diff --git a/docs/robots_using/images/firefly.png b/docs/robots_using/images/firefly.png deleted file mode 100644 index 5202f851..00000000 Binary files a/docs/robots_using/images/firefly.png and /dev/null differ diff --git a/docs/robots_using/images/g1.png b/docs/robots_using/images/g1.png deleted file mode 100644 index c768634e..00000000 Binary files a/docs/robots_using/images/g1.png and /dev/null differ diff --git a/docs/robots_using/images/go2.png b/docs/robots_using/images/go2.png deleted file mode 100644 index 52950061..00000000 Binary files a/docs/robots_using/images/go2.png and /dev/null differ diff --git a/docs/robots_using/images/karelics.png b/docs/robots_using/images/karelics.png deleted file mode 100644 index c5cfd6d5..00000000 Binary files a/docs/robots_using/images/karelics.png and /dev/null differ diff --git a/docs/robots_using/images/karelics2.png b/docs/robots_using/images/karelics2.png deleted file mode 100644 index 4e9634d0..00000000 Binary files a/docs/robots_using/images/karelics2.png and /dev/null differ diff --git a/docs/robots_using/images/kiwibot.png b/docs/robots_using/images/kiwibot.png deleted file mode 100644 index 11adce7a..00000000 Binary files a/docs/robots_using/images/kiwibot.png and /dev/null differ diff --git a/docs/robots_using/images/move_base_compare_2.png b/docs/robots_using/images/move_base_compare_2.png deleted file mode 100644 index 5b1a31ce..00000000 Binary files a/docs/robots_using/images/move_base_compare_2.png and /dev/null differ diff --git a/docs/robots_using/images/mpo_700.png b/docs/robots_using/images/mpo_700.png deleted file mode 100644 index 8efa3d1e..00000000 Binary files a/docs/robots_using/images/mpo_700.png and /dev/null differ diff --git a/docs/robots_using/images/novacarter.png b/docs/robots_using/images/novacarter.png deleted file mode 100644 index 85b834d1..00000000 Binary files a/docs/robots_using/images/novacarter.png and /dev/null differ diff --git a/docs/robots_using/images/pixel.png b/docs/robots_using/images/pixel.png deleted file mode 100644 index 69635fc9..00000000 Binary files a/docs/robots_using/images/pixel.png and /dev/null differ diff --git a/docs/robots_using/images/polymath.png b/docs/robots_using/images/polymath.png deleted file mode 100644 index dfa75146..00000000 Binary files a/docs/robots_using/images/polymath.png and /dev/null differ diff --git a/docs/robots_using/images/polymath_boat.png b/docs/robots_using/images/polymath_boat.png deleted file mode 100644 index b05ea12d..00000000 Binary files a/docs/robots_using/images/polymath_boat.png and /dev/null differ diff --git a/docs/robots_using/images/rb1.png b/docs/robots_using/images/rb1.png deleted file mode 100644 index f3990fa1..00000000 Binary files a/docs/robots_using/images/rb1.png and /dev/null differ diff --git a/docs/robots_using/images/rosbot_xl.png b/docs/robots_using/images/rosbot_xl.png deleted file mode 100644 index ba1c713b..00000000 Binary files a/docs/robots_using/images/rosbot_xl.png and /dev/null differ diff --git a/docs/robots_using/images/rover.png b/docs/robots_using/images/rover.png deleted file mode 100644 index f847e725..00000000 Binary files a/docs/robots_using/images/rover.png and /dev/null differ diff --git a/docs/robots_using/images/saxion.jpeg b/docs/robots_using/images/saxion.jpeg deleted file mode 100644 index 4059eec2..00000000 Binary files a/docs/robots_using/images/saxion.jpeg and /dev/null differ diff --git a/docs/robots_using/images/seasony.png b/docs/robots_using/images/seasony.png deleted file mode 100644 index e5c16deb..00000000 Binary files a/docs/robots_using/images/seasony.png and /dev/null differ diff --git a/docs/robots_using/images/soon.png b/docs/robots_using/images/soon.png deleted file mode 100644 index 8f3853f9..00000000 Binary files a/docs/robots_using/images/soon.png and /dev/null differ diff --git a/docs/robots_using/images/tailos.png b/docs/robots_using/images/tailos.png deleted file mode 100644 index b5e4b609..00000000 Binary files a/docs/robots_using/images/tailos.png and /dev/null differ diff --git a/docs/robots_using/images/tb2.png b/docs/robots_using/images/tb2.png deleted file mode 100644 index 79ecac83..00000000 Binary files a/docs/robots_using/images/tb2.png and /dev/null differ diff --git a/docs/robots_using/images/tb3.png b/docs/robots_using/images/tb3.png deleted file mode 100644 index 01a8a382..00000000 Binary files a/docs/robots_using/images/tb3.png and /dev/null differ diff --git a/docs/robots_using/images/tb4.png b/docs/robots_using/images/tb4.png deleted file mode 100644 index ac03ff91..00000000 Binary files a/docs/robots_using/images/tb4.png and /dev/null differ diff --git a/docs/robots_using/images/tiago.png b/docs/robots_using/images/tiago.png deleted file mode 100644 index eafa5dcc..00000000 Binary files a/docs/robots_using/images/tiago.png and /dev/null differ diff --git a/docs/robots_using/images/torch.png b/docs/robots_using/images/torch.png deleted file mode 100644 index 42ee0731..00000000 Binary files a/docs/robots_using/images/torch.png and /dev/null differ diff --git a/docs/robots_using/images/tri.png b/docs/robots_using/images/tri.png deleted file mode 100644 index d1f2d523..00000000 Binary files a/docs/robots_using/images/tri.png and /dev/null differ diff --git a/docs/robots_using/images/ubr1.png b/docs/robots_using/images/ubr1.png deleted file mode 100644 index 5036f749..00000000 Binary files a/docs/robots_using/images/ubr1.png and /dev/null differ diff --git a/docs/robots_using/images/walking.png b/docs/robots_using/images/walking.png deleted file mode 100644 index bacd4b91..00000000 Binary files a/docs/robots_using/images/walking.png and /dev/null differ diff --git a/docs/robots_using/images/waratah.png b/docs/robots_using/images/waratah.png deleted file mode 100644 index 2e8a1db9..00000000 Binary files a/docs/robots_using/images/waratah.png and /dev/null differ diff --git a/docs/robots_using/images/wyca.png b/docs/robots_using/images/wyca.png deleted file mode 100644 index 55fd0a61..00000000 Binary files a/docs/robots_using/images/wyca.png and /dev/null differ diff --git a/docs/robots_using/images/yunji.png b/docs/robots_using/images/yunji.png deleted file mode 100644 index aaf82334..00000000 Binary files a/docs/robots_using/images/yunji.png and /dev/null differ diff --git a/docs/robots_using/index.md b/docs/robots_using/index.md deleted file mode 100644 index b81730ef..00000000 --- a/docs/robots_using/index.md +++ /dev/null @@ -1,132 +0,0 @@ -# Robots Using { #robots-using } - -It's always helpful (and fun!) to have a list of robots using or ship with our work. -Below is a very early list of robots we have encountered using our software as examples. - -Click on the images below for a link to the drivers or navigation configurations. - - -
-
- [![Dexory](images/dexory.png)](https://www.dexory.com/) -
-
- [![Polymath Robotics](images/polymath.png)](https://www.polymathrobotics.com/) -
-
- [![Nvidia Segway Nova Carter](images/novacarter.png)](https://robotics.segway.com/nova-carter/) -
-
- [![Angsa](images/angsa.png)](https://angsa-robotics.com/en-de/roboter/) -
-
- [![Firefly Automatix](images/firefly.png)](https://fireflyautomatix.com/m220/) -
-
- [![Kiwibot](images/kiwibot.png)](https://www.kiwibot.com/) -
-
- [![Rosie](images/tailos.png)](https://tailos.com/) -
-
- [![Karelics](images/karelics2.png)](https://karelics.fi/) -
-
- [![Seasony](images/seasony.png)](https://www.seasony.io/) -
-
- [![Unitree G1 Humanoid](images/g1.png)](https://www.unitree.com/) -
-
- [![Unitree Go2 Quadruped](images/go2.png)](https://www.unitree.com/) -
-
- [![Barn Owl](images/barnowl.png)](https://barnowlag.com/) -
-
- [![Pixel](images/pixel.png)](https://pixel-robotics.eu/) -
-
- [![Brisa](images/brisa.png)](https://www.brisa.tech/) -
-
- [![Olympics2020](images/tri.png)](https://www.tri.global/news/toyota-introduces-tris-t-tr1-a-virtual-mobility-2019-7-22/) -
-
- [![Wyca Robotics](images/wyca.png)](https://www.wyca-robotics.fr/) -
-
- [![ElroyAir](images/elroy.png)](https://elroyair.com/) -
-
- [![Birds Eye](images/birdseye.png)](https://www.birdseyerobotics.com/) -
-
- [![UBR-1](images/ubr1.png)](https://www.robotandchisel.com/2020/09/01/navigation2) -
-
- [![Tiago Robot](images/tiago.png)](https://github.com/IntelligentRoboticsLabs/marathon_ros2) -
-
- [![Turtlebot2](images/tb2.png)](https://github.com/kobuki-base/kobuki_ros) -
-
- [![Neobotix MPO-700](images/mpo_700.png)](https://github.com/neobotix/neo_mpo_700-2) -
-
- [![Datavision Software](images/datavision.png)](https://rex.software) -
-
- [![Robotnik Rb1 base](images/rb1.png)](https://github.com/IntelligentRoboticsLabs/marathon_ros2) -
-
- [![Yunji Robot](images/yunji.png)](https://en.yunjichina.com.cn/a/53.html) -
-
- [![Polymath Robotics](images/polymath_boat.png)](https://www.polymathrobotics.com/) -
-
- [![Karelics](images/karelics.png)](https://karelics.fi/) -
-
- [![Torch Technologies](images/torch.png)](https://torchtechnologies.com/) -
-
- [![Australian Centre for Robotics](images/ACFR.png)](https://robotics.sydney.edu.au/) -
-
- [![Rover Robotics](images/rover.png)](https://github.com/RoverRobotics/openrover-ros2) -
-
- [![Turtlebot4](images/tb4.png)](https://clearpathrobotics.com/turtlebot-4/) -
-
- [![Turtlebot3](images/tb3.png)](https://github.com/ROBOTIS-GIT/turtlebot3) -
-
- [![Husarion ROSbot XL](images/rosbot_xl.png)](https://github.com/husarion/rosbot-xl-autonomy) -
-
- [![Saxion Robotics](images/saxion.jpeg)](https://www.saxion.nl/) -
-
- [![Botronics](images/botronics.png)](https://botronics.be/) -
-
- [![Coming Soon](images/soon.png)](https://www.youtube.com/watch?v=oHg5SJYRHA0) -
-
- -## Research Robots - -
-
- [![Waratah from Monash Nova Rocer](images/waratah.png)](https://www.novarover.space/) -
-
- [![walking](images/walking.png)](https://www.aztrobotics.com/walking-y2.html) -
-
- [![Coming Soon](images/soon.png)](https://www.youtube.com/watch?v=oHg5SJYRHA0) -
-
diff --git a/docs/shared/README.md b/docs/shared/README.md new file mode 100644 index 00000000..6af14a0d --- /dev/null +++ b/docs/shared/README.md @@ -0,0 +1,6 @@ +The `docs/shared` directory is used to store cloned data from GitHub. +It contains all common documentation pages that can be shared across multiple distributions. +The content of this directory is taken from the Rolling branch as a main reference. + + +> **Do not delete this file.** The README file keeps the empty directory under Git control. diff --git a/macros/main.py b/macros/main.py index e15caf06..a7cec9dd 100644 --- a/macros/main.py +++ b/macros/main.py @@ -392,7 +392,9 @@ def define_env(env): for repo_name, repo_info in github_repos.items(): - local_repo_path = cache_dir / Path(repo_name) + destination_dir = Path(repo_info['destination_dir']) + + local_repo_path = destination_dir / Path(repo_name) if local_repo_path.exists() \ and repo_info['branch'] == _get_git_branch_name(local_repo_path) \ and _is_git_workdir_synced(local_repo_path): @@ -408,7 +410,7 @@ def define_env(env): owner=repo_info['owner'], branch=repo_info['branch'], data_to_clone=repo_info['data_to_clone'], - clone_dir=cache_dir + clone_dir=destination_dir ) except subprocess.CalledProcessError as exc: stderr = getattr(exc, 'stderr', None) @@ -419,7 +421,7 @@ def define_env(env): repo_name=repo_name, owner=repo_info['owner'], branch=repo_info['branch'], - clone_dir=cache_dir + clone_dir=destination_dir ) except (subprocess.CalledProcessError, ValueError, OSError) as exc: stderr = getattr(exc, 'stderr', None) diff --git a/macros/variables.yml b/macros/variables.yml index 284a7665..f5e3885e 100644 --- a/macros/variables.yml +++ b/macros/variables.yml @@ -10,7 +10,16 @@ github_repositories: navigation2: owner: "ros-navigation" branch: "jazzy" + destination_dir: "macros/cache" data_to_clone: - "/nav2_behavior_tree/nav2_tree_nodes.xml" - "/nav2_behavior_tree/include/nav2_behavior_tree/plugins" - "/nav2_docking/opennav_docking_bt/include/opennav_docking_bt" + mkdocs.nav2.org: + owner: "ros-navigation" + branch: "rolling" # keep unchanged between distributions + destination_dir: "docs/shared" + data_to_clone: + - "/docs/community" + - "/docs/robots_using" + - "/docs/about_and_contact" diff --git a/mkdocs.yml b/mkdocs.yml index 7f0b1d2c..4192df87 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -135,3 +135,4 @@ exclude_docs: | adaptive_tolerance_goal_checker_illustration.py CancelCoverage.md ComputeCoveragePath.md + shared/README.md