|
Package Summary
Tags | No category tags. |
Version | 1.0.12 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-planning/navigation2.git |
VCS Type | git |
VCS Version | galactic |
Last Updated | 2022-05-25 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Jeronimo
- Steve Macenski
- Carlos Orduno
Authors
nav2_bringup
The nav2_bringup
package is an example bringup system for Nav2 applications.
Pre-requisites:
- Install ROS 2
- Install Nav2
sudo apt install ros-<ros2_distro>-navigation2
- Install Nav2 Bringup
sudo apt install ros-<ros2_distro>-nav2-bringup
- Install your robot specific package (ex:Turtlebot 3)
Launch Nav2 in Simulation with Gazebo
Pre-requisites:
- Install Gazebo
- gazebo_ros_pkgs for ROS2 installed on the system
sudo apt-get install ros-<ros2-distro>-gazebo*
* A Gazebo world for simulating the robot (Gazebo tutorials)
* A map of that world saved to a map.pgm and map.yaml (ROS Navigation Tutorials)
Terminal 1: Launch Gazebo
Example: See turtlebot3_gazebo models for details
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:<full/path/to/my_robot/models>
gazebo --verbose -s libgazebo_ros_init.so <full/path/to/my_gazebo.world>
Terminal 2: Launch your robot specific transforms
Example: See turtlebot3_gazebo for details
source /opt/ros/dashing/setup.bash
export TURTLEBOT3_MODEL=waffle
ros2 launch turtlebot3_bringup turtlebot3_state_publisher.launch.py use_sim_time:=True
Terminal 3: Launch Nav2
source /opt/ros/dashing/setup.bash
ros2 launch nav2_bringup bringup_launch.py use_sim_time:=True autostart:=True \
map:=<full/path/to/map.yaml>
Terminal 4: Run RViz with Nav2 config file
source /opt/ros/dashing/setup.bash
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
In RViz: * You should see the map * Localize the robot using “2D Pose Estimate” button. * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Send the robot a goal using "Nav2 Goal” button. Note: this uses a ROS2 Action to send the goal, and a pop-up window will appear on your screen with a 'cancel' button if you wish to cancel
To view the robot model in RViz: * Add "RobotModel", set "Description Source" with "File", set "Description File" with the name of the urdf file for your robot (example: turtlebot3_burger.urdf)"
Advanced: single-terminal launch
A convenience file is provided to launch Gazebo, RVIZ and Nav2 using a single command:
ros2 launch nav2_bringup tb3_simulation_launch.py <settings>
Where <settings>
can used to replace any of the default options, for example:
world:=<full/path/to/gazebo.world>
map:=<full/path/to/map.yaml>
rviz_config_file:=<full/path/to/rviz_config.rviz>
simulator:=<gzserver or gazebo>
bt_xml_file:=<full/path/to/bt_tree.xml>
Before running the command make sure you are sourcing the ROS2
workspace, setting the path to the Gazebo model and defining the TB3 robot model to use.
source <full/path/to/ros2/setup.bash>
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:<full/path/to/my_robot/models>
export TURTLEBOT3_MODEL=waffle
Also, a file for launching two robots with independent navigation stacks is provided:
ros2 launch nav2_bringup multi_tb3_simulation_launch.py <settings>
Launch Nav2 on a Robot
Pre-requisites:
Run SLAM with Navigation 2 or tele-op to drive the robot and generate a map of an area for testing first. The directions below assume this has already been done or there is already a map of the area.
-
Learn more about how to use Navigation 2 with SLAM to create maps;
Please note that currently, nav2_bringup works if you provide a map file. However, providing a map is not required to use Nav2. Nav2 can be configured to use the costmaps to navigate in an area without using a map file
Publish all the transforms from your robot from base_link to base_scan
Terminal 1 : Launch Nav2 using your map.yaml
source /opt/ros/dashing/setup.bash
ros2 launch nav2_bringup bringup_launch.py map:=<full/path/to/map.yaml> map_type:=occupancy
Terminal 2 : Launch RVIZ
source /opt/ros/dashing/setup.bash
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
In RVIZ: * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Localize the robot using “2D Pose Estimate” button. * Send the robot a goal pose using “2D Nav Goal” button.
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | nav2_common | |
1 | navigation2 | |
2 | launch_ros | |
1 | ament_cmake | |
1 | slam_toolbox | |
1 | ament_lint_common | |
1 | ament_lint_auto | |
1 | ament_cmake_gtest | |
1 | ament_cmake_pytest | |
1 | launch | |
1 | launch_testing |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at answers.ros.org
|
Package Summary
Tags | No category tags. |
Version | 0.4.7 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-planning/navigation2.git |
VCS Type | git |
VCS Version | foxy-devel |
Last Updated | 2022-01-19 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Jeronimo
- Steve Macenski
- Carlos Orduno
Authors
nav2_bringup
The nav2_bringup
package is an example bringup system for Navigation2 applications.
Pre-requisites:
- Install ROS 2
- Install Navigation2
sudo apt install ros-<ros2_distro>-navigation2
- Install Navigation2 Bringup
sudo apt install ros-<ros2_distro>-nav2-bringup
- Install your robot specific package (ex:Turtlebot 3)
Launch Navigation2 in Simulation with Gazebo
Pre-requisites:
- Install Gazebo
- gazebo_ros_pkgs for ROS2 installed on the system
sudo apt-get install ros-<ros2-distro>-gazebo*
* A Gazebo world for simulating the robot (Gazebo tutorials)
* A map of that world saved to a map.pgm and map.yaml (ROS Navigation Tutorials)
Terminal 1: Launch Gazebo
Example: See turtlebot3_gazebo models for details
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:<full/path/to/my_robot/models>
gazebo --verbose -s libgazebo_ros_init.so <full/path/to/my_gazebo.world>
Terminal 2: Launch your robot specific transforms
Example: See turtlebot3_gazebo for details
source /opt/ros/dashing/setup.bash
export TURTLEBOT3_MODEL=waffle
ros2 launch turtlebot3_bringup turtlebot3_state_publisher.launch.py use_sim_time:=True
Terminal 3: Launch Navigation2
source /opt/ros/dashing/setup.bash
ros2 launch nav2_bringup bringup_launch.py use_sim_time:=True autostart:=True \
map:=<full/path/to/map.yaml>
Terminal 4: Run RViz with Navigation2 config file
source /opt/ros/dashing/setup.bash
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
In RViz: * You should see the map * Localize the robot using “2D Pose Estimate” button. * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Send the robot a goal using “Navigation2 Goal” button. Note: this uses a ROS2 Action to send the goal, and a pop-up window will appear on your screen with a 'cancel' button if you wish to cancel
To view the robot model in RViz: * Add "RobotModel", set "Description Source" with "File", set "Description File" with the name of the urdf file for your robot (example: turtlebot3_burger.urdf)"
Advanced: single-terminal launch
A convenience file is provided to launch Gazebo, RVIZ and Navigation2 using a single command:
ros2 launch nav2_bringup tb3_simulation_launch.py <settings>
Where <settings>
can used to replace any of the default options, for example:
world:=<full/path/to/gazebo.world>
map:=<full/path/to/map.yaml>
rviz_config_file:=<full/path/to/rviz_config.rviz>
simulator:=<gzserver or gazebo>
bt_xml_file:=<full/path/to/bt_tree.xml>
Before running the command make sure you are sourcing the ROS2
workspace, setting the path to the Gazebo model and defining the TB3 robot model to use.
source <full/path/to/ros2/setup.bash>
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:<full/path/to/my_robot/models>
export TURTLEBOT3_MODEL=waffle
Also, a file for launching two robots with independent navigation stacks is provided:
ros2 launch nav2_bringup multi_tb3_simulation_launch.py <settings>
Launch Navigation2 on a Robot
Pre-requisites:
Run SLAM with Navigation 2 or tele-op to drive the robot and generate a map of an area for testing first. The directions below assume this has already been done or there is already a map of the area.
-
Learn more about how to use Navigation 2 with SLAM to create maps;
Please note that currently, nav2_bringup works if you provide a map file. However, providing a map is not required to use Navigation2. Navigation2 can be configured to use the costmaps to navigate in an area without using a map file
Publish all the transforms from your robot from base_link to base_scan
Terminal 1 : Launch Navigation2 using your map.yaml
source /opt/ros/dashing/setup.bash
ros2 launch nav2_bringup bringup_launch.py map:=<full/path/to/map.yaml> map_type:=occupancy
Terminal 2 : Launch RVIZ
source /opt/ros/dashing/setup.bash
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
In RVIZ: * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Localize the robot using “2D Pose Estimate” button. * Send the robot a goal pose using “2D Nav Goal” button.
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | nav2_common | |
1 | navigation2 | |
2 | launch_ros | |
1 | ament_cmake | |
1 | slam_toolbox | |
1 | ament_lint_common | |
1 | ament_lint_auto | |
1 | ament_cmake_gtest | |
1 | ament_cmake_pytest | |
1 | launch | |
1 | launch_testing |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at answers.ros.org
|
Package Summary
Tags | No category tags. |
Version | 0.1.7 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-planning/navigation2.git |
VCS Type | git |
VCS Version | crystal-devel |
Last Updated | 2019-03-13 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Jeronimo
- Steve Macenski
Authors
nav2_bringup
The nav2_bringup
package is an example bringup system for navigation2 applications.
Notes: (December 2018, Crystal Release) * We recommend doing this on a Ubuntu 18.04 installation. We’re currently having build issues on 16.04. (see https://github.com/ros-planning/navigation2/issues/353) * This stack and ROS2 are still in heavy development and there are some bugs and stability issues being worked on, so please do not try this on a robot without taking heavy safety precautions. THE ROBOT MAY CRASH! * It is recommended to start with simulation using Gazebo before proceeding to run on a physical robot
Install and build our code by following this guide: https://github.com/ros-planning/navigation2/blob/master/doc/BUILD.md
Launch Navigation2 in simulation with Gazebo (first time users)
Pre-requisites:
- Gazebo installed on the system
- gazebo_ros_pkgs for ROS2 installed on the system
- A Gazebo world for simulating the robot (see Gazebo tutorials)
- A map of that world saved to a map.pgm and map.yaml (see ROS Navigation tutorials)
Terminal 1: Launch Gazebo and Rviz2
Example: See turtlebot3_gazebo models for details
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:<full/path/to/my_robot/models>
ros2 launch nav2_bringup gazebo_rviz2_launch.py world:=<full/path/to/gazebo.world>
Terminal 2: Launch your robot specific transforms
Example: See turtlebot3_gazebo for details
ros2 launch turtlebot3_bringup turtlebot3_robot.launch.py
Terminal 3: Launch map_server and AMCL
# Set the tf publisher node to use simulation time or AMCL won't get the transforms correctly
ros2 param set /robot_state_publisher use_sim_time True
# Launch map_server and AMCL, set map_type as "occupancy" by default.
ros2 launch nav2_bringup nav2_bringup_1st_launch.py map:=<full/path/to/map.yaml> map_type:=occupancy use_sim_time:=True
In RVIZ: * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Localize the robot using “2D Pose Estimate” button.
Terminal 4:
Run the rest of the Navigation2 bringup
ros2 launch nav2_bringup nav2_bringup_2nd_launch.py use_sim_time:=True
Terminal 5:
Set the World Model and the two costmap nodes to use simulation time
ros2 param set /world_model use_sim_time True
ros2 param set /global_costmap/global_costmap use_sim_time True
ros2 param set /local_costmap/local_costmap use_sim_time True
Notes: * Setting use_sim_time has to be done dynamically after the nodes are up due to this bug:https://github.com/ros2/rclcpp/issues/595 * Sim time needs to be set in every namespace individually. * Sometimes setting use_sim_time a second time is required for all the nodes to get updated * IF you continue to see WARN messages like the ones below, retry setting the use_sim_time parameter
[WARN] [world_model]: Costmap2DROS transform timeout. Current time: 1543616767.1026, global_pose stamp: 758.8040, tolerance: 0.3000, difference: 1543616008.2986
[WARN] [FollowPathNode]: Costmap2DROS transform timeout. Current time: 1543616767.2787, global_pose stamp: 759.0040, tolerance: 0.3000, difference: 1543616008.2747
In RVIZ: * Add "map" to subscribe topic "/map" * Add "RobotModel", set "Description Source" with "File", set "Description File" with the name of the urdf file for your robot (example: turtlebot3_burger.urdf)" * Localize the robot using “2D Pose Estimate” button. * Send the robot a goal using “2D Nav Goal” button.
Launch Navigation2 on a Robot (first time users)
Pre-requisites: * Run SLAM or Cartographer with tele-op to drive the robot and generate a map of an area for testing first. The directions below assume this has already been done. If not, it can be done in ROS1 before beginning to install our code. * Publish all the transforms from your robot from base_link to base_scan
Launch the code using this launch file and your map.yaml:
ros2 launch nav2_bringup nav2_bringup_1st_launch.py map:=<full/path/to/map.yaml> map_type:=occupancy
In another terminal, run RVIZ:
ros2 run rviz2 rviz2
In RVIZ: * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Localize the robot using “2D Pose Estimate” button.
Run the rest of the Navigation2 bringup
ros2 launch nav2_bringup nav2_bringup_2nd_launch.py
In RVIZ: * Localize the robot using “2D Pose Estimate” button. * Send the robot a goal using “2D Nav Goal” button.
Advanced 1-step Launch for experienced users
Pre-requisites: * You've completed bringup of your robot successfully following the 2-step process above * You know your transforms are being published correctly and AMCL can localize
Follow directions above except
* Instead of running the nav2_bringup_1st_launch.py
then the nav2_bringup_2nd_launch.py
* You can do it in one step like this:
ros2 launch nav2_bringup nav2_bringup_launch.py map:=<full/path/to/map.yaml>
If running in simulation:
ros2 launch nav2_bringup nav2_bringup_launch.py map:=<full/path/to/map.yaml> use_sim_time:=True
ros2 param set /world_model use_sim_time True; ros2 param set /global_costmap/global_costmap use_sim_time True; ros2 param set /local_costmap/local_costmap use_sim_time True
Future Work
- adding configuration files for the example bringup
- a more complete map for system level testing
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | nav2_common | |
1 | navigation2 | |
2 | launch_ros | |
1 | ament_cmake | |
1 | ament_lint_common | |
1 | ament_lint_auto | |
1 | ament_cmake_gtest | |
1 | ament_cmake_pytest | |
1 | launch | |
1 | launch_testing |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at answers.ros.org
|
Package Summary
Tags | No category tags. |
Version | 0.3.5 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-planning/navigation2.git |
VCS Type | git |
VCS Version | eloquent-devel |
Last Updated | 2021-01-04 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Jeronimo
- Steve Macenski
- Carlos Orduno
Authors
nav2_bringup
The nav2_bringup
package is an example bringup system for Navigation2 applications.
Pre-requisites:
- Install ROS 2
- Install Navigation2
sudo apt install ros-<ros2_distro>-navigation2
- Install Navigation2 Bringup
sudo apt install ros-<ros2_distro>-nav2-bringup
- Install your robot specific package (ex:Turtlebot 3)
Launch Navigation2 in Simulation with Gazebo
Pre-requisites:
- Install Gazebo
- gazebo_ros_pkgs for ROS2 installed on the system
sudo apt-get install ros-<ros2-distro>-gazebo*
* A Gazebo world for simulating the robot (Gazebo tutorials)
* A map of that world saved to a map.pgm and map.yaml (ROS Navigation Tutorials)
Terminal 1: Launch Gazebo
Example: See turtlebot3_gazebo models for details
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:<full/path/to/my_robot/models>
gazebo --verbose -s libgazebo_ros_init.so <full/path/to/my_gazebo.world>
Terminal 2: Launch your robot specific transforms
Example: See turtlebot3_gazebo for details
source /opt/ros/dashing/setup.bash
export TURTLEBOT3_MODEL=waffle
ros2 launch turtlebot3_bringup turtlebot3_state_publisher.launch.py use_sim_time:=True
Terminal 3: Launch Navigation2
source /opt/ros/dashing/setup.bash
ros2 launch nav2_bringup nav2_bringup_launch.py use_sim_time:=True autostart:=True \
map:=<full/path/to/map.yaml>
Terminal 4: Run RViz with Navigation2 config file
source /opt/ros/dashing/setup.bash
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
In RViz: * You should see the map * Localize the robot using “2D Pose Estimate” button. * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Send the robot a goal using “Navigation2 Goal” button. Note: this uses a ROS2 Action to send the goal, and a pop-up window will appear on your screen with a 'cancel' button if you wish to cancel
To view the robot model in RViz: * Add "RobotModel", set "Description Source" with "File", set "Description File" with the name of the urdf file for your robot (example: turtlebot3_burger.urdf)"
Advanced: single-terminal launch
A convenience file is provided to launch Gazebo, RVIZ and Navigation2 using a single command:
ros2 launch nav2_bringup nav2_tb3_simulation_launch.py <settings>
Where <settings>
can used to replace any of the default options, for example:
world:=<full/path/to/gazebo.world>
map:=<full/path/to/map.yaml>
rviz_config_file:=<full/path/to/rviz_config.rviz>
simulator:=<gzserver or gazebo>
bt_xml_file:=<full/path/to/bt_tree.xml>
Before running the command make sure you are sourcing the ROS2
workspace, setting the path to the Gazebo model and defining the TB3 robot model to use.
source <full/path/to/ros2/setup.bash>
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:<full/path/to/my_robot/models>
export TURTLEBOT3_MODEL=waffle
Also, a file for launching two robots with independent navigation stacks is provided:
ros2 launch nav2_bringup nav2_multi_tb3_simulation_launch.py <settings>
Launch Navigation2 on a Robot
Pre-requisites:
Run SLAM with Navigation 2 or tele-op to drive the robot and generate a map of an area for testing first. The directions below assume this has already been done or there is already a map of the area.
-
Learn more about how to use Navigation 2 with SLAM to create maps;
Please note that currently, nav2_bringup works if you provide a map file. However, providing a map is not required to use Navigation2. Navigation2 can be configured to use the costmaps to navigate in an area without using a map file
Publish all the transforms from your robot from base_link to base_scan
Terminal 1 : Launch Navigation2 using your map.yaml
source /opt/ros/dashing/setup.bash
ros2 launch nav2_bringup nav2_bringup_launch.py map:=<full/path/to/map.yaml> map_type:=occupancy
Terminal 2 : Launch RVIZ
source /opt/ros/dashing/setup.bash
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
In RVIZ: * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Localize the robot using “2D Pose Estimate” button. * Send the robot a goal pose using “2D Nav Goal” button.
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | nav2_common | |
1 | navigation2 | |
2 | launch_ros | |
1 | ament_cmake | |
1 | ament_lint_common | |
1 | ament_lint_auto | |
1 | ament_cmake_gtest | |
1 | ament_cmake_pytest | |
1 | launch | |
1 | launch_testing |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at answers.ros.org
|
Package Summary
Tags | No category tags. |
Version | 0.2.6 |
License | Apache-2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/ros-planning/navigation2.git |
VCS Type | git |
VCS Version | dashing-devel |
Last Updated | 2020-12-28 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Michael Jeronimo
- Steve Macenski
Authors
nav2_bringup
The nav2_bringup
package is an example bringup system for navigation2 applications.
Notes: (June 2019, Dashing Release) * We recommend doing this on a Ubuntu 18.04 installation. We have build issues on 16.04. (see https://github.com/ros-planning/navigation2/issues/353) * This stack and ROS2 are still in heavy development and there are some bugs and stability issues being worked on, so please do not try this on a robot without taking heavy safety precautions. THE ROBOT MAY CRASH! * It is recommended to start with simulation using Gazebo before proceeding to run on a physical robot
Install and build our code by following this guide: https://github.com/ros-planning/navigation2/blob/master/doc/BUILD.md
Launch Navigation2 in simulation with Gazebo
Pre-requisites:
- Gazebo installed on the system
- gazebo_ros_pkgs for ROS2 installed on the system
- A Gazebo world for simulating the robot (see Gazebo tutorials)
- A map of that world saved to a map.pgm and map.yaml (see ROS Navigation tutorials)
Terminal 1: Launch Gazebo
Example: See turtlebot3_gazebo models for details
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:<full/path/to/my_robot/models>
gazebo --verbose -s libgazebo_ros_init.so <full/path/to/my_gazebo.world>
Terminal 2: Launch your robot specific transforms
Example: See turtlebot3_gazebo for details
source turtlebot3_ws/install/setup.bash
export TURTLEBOT3_MODEL=waffle
ros2 launch turtlebot3_bringup turtlebot3_state_publisher.launch.py use_sim_time:=True
Terminal 3: Launch navigation2
source navigation2_ws/install/setup.bash
# Launch the nav2 system
ros2 launch nav2_bringup nav2_bringup_launch.py use_sim_time:=True autostart:=True \
map:=<full/path/to/map.yaml>
Terminal 4: Run RViz with navigation2 config file
source navigation2_ws/install/setup.bash
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
In RViz: * You should see the map * Localize the robot using “2D Pose Estimate” button. * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Send the robot a goal using “Navigation2 Goal” button. Note: this uses a ROS2 Action to send the goal, and a pop-up window will appear on your screen with a 'cancel' button if you wish to cancel
To view the robot model in RViz: * Add "RobotModel", set "Description Source" with "File", set "Description File" with the name of the urdf file for your robot (example: turtlebot3_burger.urdf)"
Launch Navigation2 on a Robot
Pre-requisites: * Run SLAM or Cartographer with tele-op to drive the robot and generate a map of an area for testing first. The directions below assume this has already been done. If not, it can be done in ROS1 before beginning to install our code. * Publish all the transforms from your robot from base_link to base_scan
Launch the code using this launch file and your map.yaml:
ros2 launch nav2_bringup nav2_bringup_launch.py map:=<full/path/to/map.yaml> map_type:=occupancy
In another terminal, run RVIZ:
ros2 run rviz2 rviz2 -d $(ros2 pkg prefix nav2_bringup)/share/nav2_bringup/launch/nav2_default_view.rviz
In RVIZ: * Make sure all transforms from odom are present. (odom->base_link->base_scan) * Localize the robot using “2D Pose Estimate” button.
In RVIZ: * Localize the robot using “2D Pose Estimate” button. * Send the robot a goal using “2D Nav Goal” button.
Future Work
- Add instructions for running navigation2 with SLAM
Wiki Tutorials
Source Tutorials
Package Dependencies
Deps | Name | |
---|---|---|
1 | nav2_common | |
1 | navigation2 | |
2 | launch_ros | |
1 | ament_cmake | |
1 | ament_lint_common | |
1 | ament_lint_auto | |
1 | ament_cmake_gtest | |
1 | ament_cmake_pytest | |
1 | launch | |
1 | launch_testing |