|
Package Summary
Tags | No category tags. |
Version | 1.1.17 |
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 | humble |
Last Updated | 2024-11-26 |
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.
This is a very flexible example for nav2 bringup that can be modified for different maps/robots/hardware/worlds/etc. It is our expectation for an application specific robot system that you’re mirroring nav2_bringup
package and modifying it for your specific maps/robots/bringup needs. This is an applied and working demonstration for the default system bringup with many options that can be easily modified.
Usual robot stacks will have a <robot_name>_nav
package with config/bringup files and this is that for the general case to base a specific robot system off of.
Dynamically composed bringup (based on ROS2 Composition) is optional for users. It can be used to compose all Nav2 nodes in a single process instead of launching these nodes separately, which is useful for embedded systems users that need to make optimizations due to harsh resource constraints. Dynamically composed bringup is used by default, but can be disabled by using the launch argument use_composition:=False
.
- Some discussions about performance improvement of composed bringup could be found here: https://discourse.ros.org/t/nav2-composition/22175.
To use, please see the Nav2 Getting Started Page on our documentation website. Additional tutorials will help you go from an initial setup in simulation to testing on a hardware robot, using SLAM, and more.
Note:
- gazebo should be started with both libgazebo_ros_init.so and libgazebo_ros_factory.so to work correctly.
- spawn_entity node could not remap /tf and /tf_static to tf and tf_static in the launch file yet, used only for multi-robot situations. Instead it should be done as remapping argument
/tf:=tf /tf_static:=tf_static under ros2 tag in each plugin which publishs transforms in the SDF file. It is essential to differentiate the tf’s of the different robot.
Launch
Multi-robot Simulation
This is how to launch multi-robot simulation with simple command line. Please see the Nav2 documentation for further augments.
Cloned
This allows to bring up multiple robots, cloning a single robot N times at different positions in the map. The parameter are loaded from nav2_multirobot_params_all.yaml
file by default.
The multiple robots that consists of name and initial pose in YAML format will be set on the command-line. The format for each robot is robot_name={x: 0.0, y: 0.0, yaw: 0.0, roll: 0.0, pitch: 0.0, yaw: 0.0}
.
Please refer to below examples.
ros2 launch nav2_bringup cloned_multi_tb3_simulation_launch.py robots:="robot1={x: 1.0, y: 1.0, yaw: 1.5707}; robot2={x: 1.0, y: 1.0, yaw: 1.5707}"
Unique
There are two robots including name and intitial pose are hard-coded in the launch script. Two separated unique robots are required params file (nav2_multirobot_params_1.yaml
, nav2_multirobot_params_2.yaml
) for each robot to bring up.
If you want to bringup more than two robots, you should modify the unique_multi_tb3_simulation_launch.py
script.
ros2 launch nav2_bringup unique_multi_tb3_simulation_launch.py
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
nav2_common | |
navigation2 | |
launch_ros | |
ament_cmake | |
slam_toolbox | |
ament_lint_common | |
ament_lint_auto | |
ament_cmake_gtest | |
ament_cmake_pytest | |
launch | |
launch_testing |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 1.3.4 |
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 | jazzy |
Last Updated | 2024-12-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
- Carlos Orduno
Authors
nav2_bringup
The nav2_bringup
package is an example bringup system for Nav2 applications.
This is a very flexible example for nav2 bringup that can be modified for different maps/robots/hardware/worlds/etc. It is our expectation for an application specific robot system that you’re mirroring nav2_bringup
package and modifying it for your specific maps/robots/bringup needs. This is an applied and working demonstration for the default system bringup with many options that can be easily modified.
Usual robot stacks will have a <robot_name>_nav
package with config/bringup files and this is that for the general case to base a specific robot system off of.
Dynamically composed bringup (based on ROS2 Composition) is optional for users. It can be used to compose all Nav2 nodes in a single process instead of launching these nodes separately, which is useful for embedded systems users that need to make optimizations due to harsh resource constraints. Dynamically composed bringup is used by default, but can be disabled by using the launch argument use_composition:=False
.
- Some discussions about performance improvement of composed bringup could be found here: https://discourse.ros.org/t/nav2-composition/22175.
To use, please see the Nav2 Getting Started Page on our documentation website. Additional tutorials will help you go from an initial setup in simulation to testing on a hardware robot, using SLAM, and more.
Note:
- gazebo should be started with both libgazebo_ros_init.so and libgazebo_ros_factory.so to work correctly.
- spawn_entity node could not remap /tf and /tf_static to tf and tf_static in the launch file yet, used only for multi-robot situations. Instead it should be done as remapping argument
/tf:=tf /tf_static:=tf_static under ros2 tag in each plugin which publishs transforms in the SDF file. It is essential to differentiate the tf’s of the different robot.
Launch
Multi-robot Simulation
This is how to launch multi-robot simulation with simple command line. Please see the Nav2 documentation for further augments.
Cloned
This allows to bring up multiple robots, cloning a single robot N times at different positions in the map. The parameter are loaded from nav2_multirobot_params_all.yaml
file by default.
The multiple robots that consists of name and initial pose in YAML format will be set on the command-line. The format for each robot is robot_name={x: 0.0, y: 0.0, yaw: 0.0, roll: 0.0, pitch: 0.0, yaw: 0.0}
.
Please refer to below examples.
ros2 launch nav2_bringup cloned_multi_tb3_simulation_launch.py robots:="robot1={x: 1.0, y: 1.0, yaw: 1.5707}; robot2={x: 1.0, y: 1.0, yaw: 1.5707}"
Unique
There are two robots including name and intitial pose are hard-coded in the launch script. Two separated unique robots are required params file (nav2_multirobot_params_1.yaml
, nav2_multirobot_params_2.yaml
) for each robot to bring up.
If you want to bringup more than two robots, you should modify the unique_multi_tb3_simulation_launch.py
script.
ros2 launch nav2_bringup unique_multi_tb3_simulation_launch.py
Wiki Tutorials
Package Dependencies
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at Robotics Stack Exchange
|
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 thenav2_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
Package Dependencies
Deps | Name |
---|---|
nav2_common | |
navigation2 | |
launch_ros | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
ament_cmake_gtest | |
ament_cmake_pytest | |
launch | |
launch_testing |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at Robotics Stack Exchange
|
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-
* 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-
* A Gazebo world for simulating the robot ([Gazebo tutorials](http://gazebosim.org/tutorials?tut=quick_start))
* A map of that world saved to a map.pgm and map.yaml ([ROS Navigation Tutorials](https://github.com/ros-planning/navigation2/tree/master/doc/use_cases))
### Terminal 1: Launch Gazebo
Example: See [turtlebot3_gazebo models](https://github.com/ROBOTIS-GIT/turtlebot3_simulations/tree/ros2/turtlebot3_gazebo/models) for details
```bash
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
Package Dependencies
Deps | Name |
---|---|
nav2_common | |
navigation2 | |
launch_ros | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
ament_cmake_gtest | |
ament_cmake_pytest | |
launch | |
launch_testing |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
turtlebot3_navigation2 | |
nav2_system_tests |
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at Robotics Stack Exchange
|
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
Package Dependencies
Deps | Name |
---|---|
nav2_common | |
navigation2 | |
launch_ros | |
ament_cmake | |
ament_lint_common | |
ament_lint_auto | |
ament_cmake_gtest | |
ament_cmake_pytest | |
launch | |
launch_testing |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
turtlebot3_navigation2 | |
nav2_system_tests |
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at Robotics Stack Exchange
|
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-09-15 |
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-
* 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-
* A Gazebo world for simulating the robot ([Gazebo tutorials](http://gazebosim.org/tutorials?tut=quick_start))
* A map of that world saved to a map.pgm and map.yaml ([ROS Navigation Tutorials](https://github.com/ros-planning/navigation2/tree/main/doc/use_cases))
### Terminal 1: Launch Gazebo
Example: See [turtlebot3_gazebo models](https://github.com/ROBOTIS-GIT/turtlebot3_simulations/tree/ros2/turtlebot3_gazebo/models) for details
```bash
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
Package Dependencies
Deps | Name |
---|---|
nav2_common | |
navigation2 | |
launch_ros | |
ament_cmake | |
slam_toolbox | |
ament_lint_common | |
ament_lint_auto | |
ament_cmake_gtest | |
ament_cmake_pytest | |
launch | |
launch_testing |
System Dependencies
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at Robotics Stack Exchange
|
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-08-31 |
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-
* 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-
* A Gazebo world for simulating the robot ([Gazebo tutorials](http://gazebosim.org/tutorials?tut=quick_start))
* A map of that world saved to a map.pgm and map.yaml ([ROS Navigation Tutorials](https://github.com/ros-planning/navigation2/tree/master/doc/use_cases))
### Terminal 1: Launch Gazebo
Example: See [turtlebot3_gazebo models](https://github.com/ROBOTIS-GIT/turtlebot3_simulations/tree/ros2/turtlebot3_gazebo/models) for details
```bash
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
Package Dependencies
Deps | Name |
---|---|
nav2_common | |
navigation2 | |
launch_ros | |
ament_cmake | |
slam_toolbox | |
ament_lint_common | |
ament_lint_auto | |
ament_cmake_gtest | |
ament_cmake_pytest | |
launch | |
launch_testing |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 1.2.10 |
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 | iron |
Last Updated | 2024-10-02 |
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.
This is a very flexible example for nav2 bringup that can be modified for different maps/robots/hardware/worlds/etc. It is our expectation for an application specific robot system that you’re mirroring nav2_bringup
package and modifying it for your specific maps/robots/bringup needs. This is an applied and working demonstration for the default system bringup with many options that can be easily modified.
Usual robot stacks will have a <robot_name>_nav
package with config/bringup files and this is that for the general case to base a specific robot system off of.
Dynamically composed bringup (based on ROS2 Composition) is optional for users. It can be used to compose all Nav2 nodes in a single process instead of launching these nodes separately, which is useful for embedded systems users that need to make optimizations due to harsh resource constraints. Dynamically composed bringup is used by default, but can be disabled by using the launch argument use_composition:=False
.
- Some discussions about performance improvement of composed bringup could be found here: https://discourse.ros.org/t/nav2-composition/22175.
To use, please see the Nav2 Getting Started Page on our documentation website. Additional tutorials will help you go from an initial setup in simulation to testing on a hardware robot, using SLAM, and more.
Note:
- gazebo should be started with both libgazebo_ros_init.so and libgazebo_ros_factory.so to work correctly.
- spawn_entity node could not remap /tf and /tf_static to tf and tf_static in the launch file yet, used only for multi-robot situations. Instead it should be done as remapping argument
/tf:=tf /tf_static:=tf_static under ros2 tag in each plugin which publishs transforms in the SDF file. It is essential to differentiate the tf’s of the different robot.
Launch
Multi-robot Simulation
This is how to launch multi-robot simulation with simple command line. Please see the Nav2 documentation for further augments.
Cloned
This allows to bring up multiple robots, cloning a single robot N times at different positions in the map. The parameter are loaded from nav2_multirobot_params_all.yaml
file by default.
The multiple robots that consists of name and initial pose in YAML format will be set on the command-line. The format for each robot is robot_name={x: 0.0, y: 0.0, yaw: 0.0, roll: 0.0, pitch: 0.0, yaw: 0.0}
.
Please refer to below examples.
ros2 launch nav2_bringup cloned_multi_tb3_simulation_launch.py robots:="robot1={x: 1.0, y: 1.0, yaw: 1.5707}; robot2={x: 1.0, y: 1.0, yaw: 1.5707}"
Unique
There are two robots including name and intitial pose are hard-coded in the launch script. Two separated unique robots are required params file (nav2_multirobot_params_1.yaml
, nav2_multirobot_params_2.yaml
) for each robot to bring up.
If you want to bringup more than two robots, you should modify the unique_multi_tb3_simulation_launch.py
script.
ros2 launch nav2_bringup unique_multi_tb3_simulation_launch.py
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
nav2_common | |
navigation2 | |
launch_ros | |
ament_cmake | |
slam_toolbox | |
turtlebot3_gazebo | |
ament_lint_common | |
ament_lint_auto | |
ament_cmake_gtest | |
ament_cmake_pytest | |
launch | |
launch_testing |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged nav2_bringup at Robotics Stack Exchange
nav2_bringup package from nav2_platform reponav2_bringup nav2_driver nav2_navigation nav2_platform |
|
Package Summary
Tags | No category tags. |
Version | 0.0.7 |
License | GPLv3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/paulbovbel/nav2_platform.git |
VCS Type | git |
VCS Version | hydro-devel |
Last Updated | 2014-09-13 |
Dev Status | MAINTAINED |
CI status | 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
- Paul Bovbel
Authors
- Paul Bovbel
Changelog for package nav2_bringup
0.0.7 (2014-09-13)
0.0.5 (2014-04-17)
- fix dependencies and building
- Contributors: Paul Bovbel
0.0.4 (2014-04-16)
- fix dependencies
- Contributors: Paul Bovbel
0.0.3 (2014-04-16)
0.0.2 (2014-04-16)
- fix dependencies in nav2_bringup
- Contributors: Paul Bovbel
0.0.1 (2014-04-15)
- add port argument
- refactor launch structure
- initial commit for support packages
- Contributors: Paul Bovbel
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
nav2_platform |
Launch files
- launch/nav2_amcl.launch
-
- map_path
- use_external_map [default: true]
- launch/nav2_gmapping.launch
-
- use_external_map [default: true]
- launch/nav2_robot.launch
-
- use_external_map [default: false]
- robot_address
- robot_port [default: 5010]
- use_external_map [default: $(arg use_external_map)]
Messages
Services
Plugins
Recent questions tagged nav2_bringup at Robotics Stack Exchange
nav2_bringup package from nav2_platform reponav2_bringup nav2_driver nav2_navigation nav2_platform |
|
Package Summary
Tags | No category tags. |
Version | 0.0.7 |
License | GPLv3 |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/paulbovbel/nav2_platform.git |
VCS Type | git |
VCS Version | hydro-devel |
Last Updated | 2014-09-13 |
Dev Status | MAINTAINED |
CI status | 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
- Paul Bovbel
Authors
- Paul Bovbel
Changelog for package nav2_bringup
0.0.7 (2014-09-13)
0.0.5 (2014-04-17)
- fix dependencies and building
- Contributors: Paul Bovbel
0.0.4 (2014-04-16)
- fix dependencies
- Contributors: Paul Bovbel
0.0.3 (2014-04-16)
0.0.2 (2014-04-16)
- fix dependencies in nav2_bringup
- Contributors: Paul Bovbel
0.0.1 (2014-04-15)
- add port argument
- refactor launch structure
- initial commit for support packages
- Contributors: Paul Bovbel
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
nav2_platform |
Launch files
- launch/nav2_amcl.launch
-
- map_path
- use_external_map [default: true]
- launch/nav2_gmapping.launch
-
- use_external_map [default: true]
- launch/nav2_robot.launch
-
- use_external_map [default: false]
- robot_address
- robot_port [default: 5010]
- use_external_map [default: $(arg use_external_map)]