Skip to content
Snippets Groups Projects
Unverified Commit a0182ccc authored by Steven Macenski's avatar Steven Macenski Committed by GitHub
Browse files

[website sprint] adding new docker pages, removing from readme, and new icons for statuses (#1503)

* adding new docker pages, removing from readme, and new icons for statuses

* fix formatting

* adding circle for dashing / eloquent

* adding new files

* better distribute sizes
parent 33fc770c
No related branches found
No related tags found
No related merge requests found
# Navigation2 Stack
| Builder | Status |
|----------------------|-------------------------|
| CircleCI | [![Build Status](https://circleci.com/gh/ros-planning/navigation2/tree/master.svg?style=svg)](https://circleci.com/gh/ros-planning/navigation2/tree/master) |
| DockerHub | [![Build Status](https://img.shields.io/docker/pulls/rosplanning/navigation2.svg?maxAge=2592000)](https://hub.docker.com/r/rosplanning/navigation2) |
| ROS2 Build Farm | [![Build Status](http://build.ros2.org/job/Edev__navigation2__ubuntu_bionic_amd64/badge/icon)](http://build.ros2.org/job/Edev__navigation2__ubuntu_bionic_amd64/) |
| Code Coverage | [![codecov](https://codecov.io/gh/ros-planning/navigation2/branch/master/graph/badge.svg)](https://codecov.io/gh/ros-planning/navigation2) |
# Overview
The ROS 2 Navigation System is the control system that enables a robot to autonomously reach a goal state, such as a specific position and orientation relative to a specific map. Given a current pose, a map, and a goal, such as a destination pose, the navigation system generates a plan to reach the goal, and outputs commands to autonomously drive the robot, respecting any safety constraints and avoiding obstacles encountered along the way.
![nav2_overview](doc/architecture/navigation_overview.png)
# Documentation
For detailed instructions on how to install and run the examples, please visit our [documentation site](https://ros-planning.github.io/navigation2/).
# API Documentation
Run `doxygen` in the root of this repository. It will generate a `/doc/*` directory containing the documentation. Entrypoint in a browser is index.html.
# Contributing
[Contributions are welcome!](doc/README.md#contributing). For more information, please review our [contribution guidelines](https://ros-planning.github.io/navigation2/contribute/contribute_guidelines.html).
# Building the source
For instructions on how to download and build this repo, see the [BUILD.md](doc/BUILD.md) file.
# Creating a docker image
To build an image from the Dockerfile in the navigation2 folder:
First, clone the repo to your local system (or see Building the source above)
```
sudo docker build -t nav2/latest .
```
If proxies are needed:
```
sudo docker build -t nav2/latest --build-arg http_proxy=http://proxy.my.com:### --build-arg https_proxy=http://proxy.my.com:### .
```
Note: You may also need to configure your docker for DNS to work. See article here for details:
https://development.robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
## Using CI build docker container
We allow for you to pull the latest docker image from the master branch at any time. As new releases and tags are made, docker containers on docker hub will be versioned as well to chose from.
```
sudo docker pull rosplanning/navigation2:latest
```
# Navigation 2
[![Build Status](https://img.shields.io/docker/pulls/rosplanning/navigation2.svg?maxAge=2592000)](https://hub.docker.com/r/rosplanning/navigation2) [![codecov](https://codecov.io/gh/ros-planning/navigation2/branch/master/graph/badge.svg)](https://codecov.io/gh/ros-planning/navigation2)
For detailed instructions on how to:
- Build
- Install
- [Tutorials](https://ros-planning.github.io/navigation2/tutorials/index.html)
- Configure
- [Contribute](https://ros-planning.github.io/navigation2/contribute/index.html)
- Docker images
Please visit our [documentation site](https://ros-planning.github.io/navigation2/).
| Service | Dashing | Eloquent | Master |
|---------|---------|----------|--------|
| ROS Build Farm | [![Build Status](http://build.ros2.org/job/Ddev__navigation2__ubuntu_bionic_amd64/badge/icon)](http://build.ros2.org/job/Ddev__navigation2__ubuntu_bionic_amd64/) | [![Build Status](http://build.ros2.org/job/Edev__navigation2__ubuntu_bionic_amd64/badge/icon)](http://build.ros2.org/job/Edev__navigation2__ubuntu_bionic_amd64/) | N/A |
| Circle CI | [![Build Status](https://circleci.com/gh/ros-planning/navigation2/tree/dashing-devel.svg?style=svg)](https://circleci.com/gh/ros-planning/navigation2/tree/dashing-devel) | [![Build Status](https://circleci.com/gh/ros-planning/navigation2/tree/eloquent-devel.svg?style=svg)](https://circleci.com/gh/ros-planning/navigation2/tree/eloquent-devel) | [![Build Status](https://circleci.com/gh/ros-planning/navigation2/tree/master.svg?style=svg)](https://circleci.com/gh/ros-planning/navigation2/tree/master) |
| Package | Dashing Source | Dashing Debian | Eloquent Source | Eloquent Debian |
|-------------|----------------|----------------|-----------------|-----------------|
| Navigation2 | [![Build Status](http://build.ros2.org/job/Dsrc_uB__navigation2__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__navigation2__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__navigation2__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__navigation2__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__navigation2__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__navigation2__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__navigation2__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__navigation2__ubuntu_bionic_amd64__binary/) |
| nav2_amcl | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_amcl__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_amcl__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_amcl__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_amcl__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_amcl__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_amcl__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_amcl__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_amcl__ubuntu_bionic_amd64__binary/) |
| nav2_behavior_tree | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_behavior_tree__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_behavior_tree__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_behavior_tree__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_behavior_tree__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_behavior_tree__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_behavior_tree__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_behavior_tree__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_behavior_tree__ubuntu_bionic_amd64__binary/) |
| nav2_bringup | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_bringup__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_bringup__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_bringup__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_bringup__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_bringup__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_bringup__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_bringup__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_bringup__ubuntu_bionic_amd64__binary/) |
| nav2_bt_navigator | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_bt_navigator__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_bt_navigator__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_bt_navigator__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_bt_navigator__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_bt_navigator__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_bt_navigator__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_bt_navigator__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_bt_navigator__ubuntu_bionic_amd64__binary/) |
| nav2_common | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_common__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_common__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_common__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_common__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_common__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_common__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_common__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_common__ubuntu_bionic_amd64__binary/) |
| nav2_controller | N/A | N/A | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_controller__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_controller__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_controller__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_controller__ubuntu_bionic_amd64__binary/) |
| nav2_core | N/A | N/A | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_core__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_core__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_core__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_core__ubuntu_bionic_amd64__binary/) |
| nav2_costmap_2d | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_costmap_2d__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_costmap_2d__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_costmap_2d__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_costmap_2d__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_costmap_2d__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_costmap_2d__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_costmap_2d__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_costmap_2d__ubuntu_bionic_amd64__binary/) |
| nav2_dwb_controller | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_dwb_controller__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_dwb_controller__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_dwb_controller__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_dwb_controller__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_dwb_controller__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_dwb_controller__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_dwb_controller__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_dwb_controller__ubuntu_bionic_amd64__binary/) |
| nav2_lifecycle_manager | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_lifecycle_manager__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_lifecycle_manager__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_lifecycle_manager__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_lifecycle_manager__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_lifecycle_manager__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_lifecycle_manager__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_lifecycle_manager__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_lifecycle_manager__ubuntu_bionic_amd64__binary/) |
| nav2_map_server | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_map_server__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_map_server__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_map_server__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_map_server__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_map_server__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_map_server__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_map_server__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_map_server__ubuntu_bionic_amd64__binary/) |
| nav2_msgs | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_msgs__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_msgs__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_msgs__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_msgs__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_msgs__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_msgs__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_msgs__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_msgs__ubuntu_bionic_amd64__binary/) |
| nav2_navfn_planner | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_navfn_planner__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_navfn_planner__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_navfn_planner__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_navfn_planner__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_navfn_planner__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_navfn_planner__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_navfn_planner__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_navfn_planner__ubuntu_bionic_amd64__binary/) |
| nav2_planner | N/A | N/A | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_planner__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_planner__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_planner__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_planner__ubuntu_bionic_amd64__binary/) |
| nav2_recoveries | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_recoveries__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_recoveries__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_recoveries__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_recoveries__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_recoveries__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_recoveries__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_recoveries__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_recoveries__ubuntu_bionic_amd64__binary/) |
| nav2_rviz_plugins | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_rviz_plugins__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_rviz_plugins__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_rviz_plugins__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_rviz_plugins__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_rviz_plugins__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_rviz_plugins__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_rviz_plugins__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_rviz_plugins__ubuntu_bionic_amd64__binary/) |
| nav2_system_tests | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_system_tests__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_system_tests__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_system_tests__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_system_tests__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_system_tests__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_system_tests__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_system_tests__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_system_tests__ubuntu_bionic_amd64__binary/) |
| nav2_util | [![Build Status](http://build.ros2.org/job/Dsrc_uB__nav2_util__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Dsrc_uB__nav2_util__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Dbin_uB64__nav2_util__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Dbin_uB64__nav2_util__ubuntu_bionic_amd64__binary/) | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_util__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_util__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_util__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_util__ubuntu_bionic_amd64__binary/) |
| nav2_waypoint_follower | N/A | N/A | [![Build Status](http://build.ros2.org/job/Esrc_uB__nav2_waypoint_follower__ubuntu_bionic__source/badge/icon)](http://build.ros2.org/job/Esrc_uB__nav2_waypoint_follower__ubuntu_bionic__source/) | [![Build Status](http://build.ros2.org/job/Ebin_uB64__nav2_waypoint_follower__ubuntu_bionic_amd64__binary/badge/icon)](http://build.ros2.org/job/Ebin_uB64__nav2_waypoint_follower__ubuntu_bionic_amd64__binary/) |
Build Instructions
==================
## 1. Platform
* Ubuntu 18.04
## 2. Manual Build Steps
* The instructions are to build **Navigation2** package and its dependency packages.
* To build **Navigation2** package from script, kindly refer [QuickStart](BUILD.md#quickstart-using-initial-setup-script).
* To build **Navigation2** package for `master` branch, select the latest ROS2 distro in place of `ros2-distro-name` during `rosdep install`.
* To build **Navigation2** package for specific distro branch (e.g- dashing-devel), select the matching ROS2 distro in place of `ros2-distro-name` during `rosdep install`.
### 2.1 ROS2
* Install ROS2 with dependencies from the ROS2 Installation Page: https://index.ros.org/doc/ros2/Installation/
* Install the latest distribution of ROS2 to support Navigation2 `master`.
* ROS2 can be installed either from binary packages or build from source. Choose to build ROS2 from source to support Navigation2 `master`.
### 2.2 Navigation2 Dependencies
If ROS2 installed from source (Ignore if installed from binary packages)
```console
$ source ~/ros2_ws/install/setup.bash
```
Fetch, build and install navigation2 dependencies:
```console
$ mkdir -p ~/ros2_nav_dependencies_ws/src
$ cd ~/ros2_nav_dependencies_ws
$ wget https://raw.githubusercontent.com/ros-planning/navigation2/master/tools/ros2_dependencies.repos
$ vcs import src < ros2_dependencies.repos
$ rosdep install -y -r -q --from-paths src --ignore-src --rosdistro <ros2-distro-name>
e.g- ros2-distro-name = dashing
$ colcon build --symlink-install
```
### 2.3 Navigation2
Fetch, build and install navigation2 stack:
```console
$ source ~/ros2_nav_dependencies_ws/install/setup.bash
$ mkdir -p ~/navigation2_ws/src
$ cd ~/navigation2_ws/src
$ git clone https://github.com/ros-planning/navigation2.git -b <nav2-branch-name>
e.g- nav2-branch-name = master
$ cd ~/navigation2_ws
$ rosdep install -y -r -q --from-paths src --ignore-src --rosdistro <ros2-distro-name>
e.g- ros2-distro-name = dashing
$ colcon build --symlink-install
```
### 2.4 Turtlebot3
Turtlebot3 is one of the target robot platform to run navigation2. Ignore building Turtlebot3 packages if turtlebot3 is not your target.
If ROS2 installed from source (Ignore if installed from binary packages)
```console
$ source ~/ros2_ws/install/setup.bash
```
Fetch, build and install turtlebot3 packages:
```console
$ mkdir -p ~/turtlebot3_ws/src
$ cd ~/turtlebot3_ws
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/turtlebot3/ros2/turtlebot3.repos
$ vcs import src < turtlebot3.repos
$ rosdep install -y -r -q --from-paths src --ignore-src --rosdistro <ros2-distro-name>
e.g- ros2-distro-name = dashing
$ colcon build --symlink-install
```
## 3. Conclusion
After installation of **Navigation2** and required dependencies, test **Navigation2** by following steps in [nav2_bringup README](../nav2_bringup/bringup/README.md)
## 4. Reporting Issue
If run into any issue, feel free to submit pull request or report issue in this project.
Quickstart using initial setup script
----------
### Steps
- Install all ROS2 dependencies from the ROS2 Installation page: https://index.ros.org/doc/ros2/Installation/Dashing/Linux-Development-Setup/
- Ensure there are no ROS environment variables set in your terminal or `.bashrc` file before taking the steps below.*
```sh
mkdir <directory_for_workspaces>
cd <directory_for_workspaces>
wget https://raw.githubusercontent.com/ros-planning/navigation2/master/tools/initial_ros_setup.sh
chmod a+x initial_ros_setup.sh
./initial_ros_setup.sh
```
### Summary of what's being done
The `initial_ros_setup.sh` script downloads four ROS workspaces and then builds them in the correct order. The four workspaces are:
* ROS 2 release - This is the ROS 2 latest release as defined by the repos file found on [https://github.com/ros2/ros2/]
* ROS 2 Dependencies - This is a set of ROS 2 packages that aren't included in the ROS 2 release yet, but which the navstack depends on. This also includes packages which are part of the ROS 2 release where we need a different version.
* Navigation 2 - This repo.
After all the workspaces are downloaded, the `navigation2/tools/build_all.sh` script is run which builds each repo in the order listed above using the `colcon build --symlink-install` command.
### Options
The `initial_ros_setup.sh` accepts the following options:
* `--no-ros2` This skips downloading and building the ROS 2 release. Instead it uses the binary packages and setup.sh installed in `/opt/ros/bouncy`
* `--download-only` This skips the build steps
Use Case Recommendations
----------
### Developer
For developers, running the `initial_ros_setup.sh` once makes sense. After that, you'll typically want to maintain each repo manually using git.
Most work will be done in the `navigation2` workspace, so just building that will save time.
To build just `navigation2`,
```sh
cd <directory_for_workspaces>/navigation2_ws
source ../ros2_nav_dependencies_ws/install/setup.sh
colcon build --symlink-install
```
In the case that the developer changes any dependencies, they can run
`<directory_for_workspaces>/navigation2_ws/src/navigation2/tools/build_all.sh` in a clean environment to get everything rebuilt easily
### Build System
An automated build system could make a clean directory and run the `initial_ros_setup.sh` script each time, however that will generate a lot of unneccessary load on the upstream repo servers, and result in very long builds.
Instead, it would be better to do an initial download of all the source and dependencies
```sh
./initial_ros_setup.sh --download-only
```
Then the CI tool can monitor the `navigation2` repo, update it as necessary, and rebuild using either the `<directory_for_workspaces>/navigation2_ws/src/navigation2/tools/build_all.sh` script or by running
```sh
cd <directory_for_workspaces>/navigation2_ws/src/navigation2
source ../ros2_nav_dependencies_ws/install/setup.sh
colcon build --symlink-install
```
.. _docker:
Navigation2 Docker
******************
There are 2 options for docker with Navigation2:
building a container and using the DockerHub container.
Building Docker Container
-------------------------
To build an image from the Dockerfile in the navigation2 folder:
First, clone the repo to your local system (or see Building the source above)
.. code:: bash
sudo docker build -t nav2/latest .
If proxies are needed:
.. code:: bash
sudo docker build -t nav2/latest --build-arg http_proxy=http://proxy.my.com:### --build-arg https_proxy=http://proxy.my.com:### .
Note: You may also need to configure your docker for DNS to work. See article here for details: https://development.robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
Using DockerHub Container
-------------------------
We allow for you to pull the latest docker image from the master branch at any time. As new releases and tags are made, docker containers on docker hub will be versioned as well to chose from.
.. code:: bash
sudo docker pull rosplanning/navigation2:latest
......@@ -35,6 +35,7 @@ There are two different recommended methods for building Navigation2 stack from
build_docs/manual_build/master_build.rst
build_docs/manual_build/specific_distro_build.rst
build_docs/manual_build/docker.rst
build_docs/quick_start.rst
build_docs/use_case_recommendations
build_docs/build_troubleshooting_guide.rst
.. _doxygen_howtos:
Generate Doxygen
################
Run `doxygen` in the root of the Navigation2 repository.
It will generate a `/doc/*` directory containing the documentation.
The documentation entrypoint in a browser is index.html.
......@@ -9,3 +9,4 @@ How-Tos
build_instructions/index.rst
docs/index.rst
configuration/index.rst
doxygen/index.rst
......@@ -4,17 +4,16 @@
|LPN|
*****
.. raw:: html
<div style="position: relative; padding-bottom: 0%; overflow: hidden; max-width: 100%; height: auto;">
<iframe width="560" height="315" src="https://www.youtube.com/embed/ZeCds7Sv-5Q" frameborder="0" allowfullscreen></iframe>
</div>
Overview
########
The |PN| project is a set of ROS2 components that help you build a robot that
can drive around.
can drive around. The ROS 2 Navigation System is the framework that
enables a robot to autonomously reach a goal state, such as a position
and orientation relative to a map. Given a current pose, a map,
and a goal, the navigation system generates a plan to reach the goal,
and outputs commands to autonomously drive the robot,
respecting any safety constraints and avoiding obstacles.
It has tools to:
......@@ -24,17 +23,24 @@ It has tools to:
- control the robot as it follows the path and avoid any obstacles along the way
- convert sensor data into a costmap representation of the world
- build complicated robot behaviors using behavior trees
- Plugins to enable your own custom algorithms and behaviors
These all work seemlessly together, so that, with a bit of customization for your
robot, you can just give it a destination and off it go.
Here you will find documentation on how to install and use |PN| with a Turtlebot
Here you will find documentation on how to install and use |PN| with an example robot, Turtlebot
3, as well as how to customize it for other robots, tune the behavior for better
performance, as well as customize the internals for advanced results.
.. raw:: html
<div style="position: relative; padding-bottom: 0%; overflow: hidden; max-width: 100%; height: auto;">
<iframe width="708" height="400" src="https://www.youtube.com/embed/ZeCds7Sv-5Q" frameborder="0" allowfullscreen></iframe>
</div>
.. image:: images/architectural_diagram.png
:height: 769px
:width: 1415px
:height: 400px
:width: 708px
:alt: Navigation2 Block Diagram
Sections
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment