Contents — find the section you need

Change parameters and verify

Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.

Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.

The experiment controls are in English.

Open experiment panel in a new tab

Download reproduction source

Para um primeiro experimento com o Nav2, separe o mapeamento da navegação em um mapa salvo usando a simulação oficial do TurtleBot. Este procedimento segue a documentação do Jazzy, verificada em 7 de setembro de 2026. O Gazebo não foi executado no ambiente de escrita.

Registre o ambiente

Use o Ubuntu 24.04 com interface gráfica, ROS 2 Jazzy e seu ambiente Gazebo compatível. Com o ROS 2 já instalado, prepare os pacotes seguindo o Guia de Início Rápido do Nav2. Não misture as instruções do Gazebo Classic da era Humble com esta configuração.

source /opt/ros/jazzy/setup.bash
sudo apt update
sudo apt install ros-jazzy-navigation2 ros-jazzy-nav2-bringup ros-jazzy-slam-toolbox ros-jazzy-nav2-minimal-tb3-sim
dpkg-query -W ros-jazzy-navigation2 ros-jazzy-nav2-bringup ros-jazzy-slam-toolbox ros-jazzy-nav2-minimal-tb3-sim
ros2 launch nav2_bringup tb3_simulation_launch.py --show-args

Salve as versões instaladas e verifique os argumentos slam , map e use_sim_time com o arquivo de inicialização do Jazzy.

Iniciar o modo de mapeamento

Diagram 1 · Use the button to switch views
Conecte o Gazebo, o SLAM Toolbox e o Nav2, salve o mapa e reinicie com o AMCL

Use um ambiente ROS dedicado sem robôs físicos. O ID do domínio abaixo é um exemplo; confirme se nenhum robô real o compartilha. Use a mesma configuração em cada novo terminal.

source /opt/ros/jazzy/setup.bash
export ROS_DOMAIN_ID=73
ros2 launch nav2_bringup tb3_simulation_launch.py slam:=True headless:=False use_sim_time:=True

No procedimento oficial do SLAM, o SLAM fornece /map e map → odom . Não adicione o AMCL como um segundo publicador dessa transformação durante o mapeamento.

Testar objetivos próximos

Em outro terminal, execute o comando source no ambiente e defina export ROS_DOMAIN_ID=73, depois inspecione as interfaces.

ros2 topic list
ros2 topic hz /scan
ros2 run tf2_ros tf2_echo map base_link

Verifique se o mapa, o LaserScan e a pose do robô coincidem no RViz. Defina um objetivo Nav2 no espaço livre observado próximo e, em seguida, mova-se em direção à próxima área. Um objetivo em um local muito distante em um espaço desconhecido pode falhar no planejamento, mesmo que o SLAM funcione corretamente.

Salvar o mapa e reiniciar

Em outro terminal com o mesmo ambiente, salve em um novo diretório de trabalho. Escolha um nome de arquivo que não sobrescreva um mapa necessário.

mkdir -p nav2-map-lab
cd nav2-map-lab
ros2 run nav2_map_server map_saver_cli -f map --ros-args -p use_sim_time:=true

Mantenha o arquivo map.yaml e sua imagem de referência. Interrompa a execução original com Ctrl+C e aguarde o desligamento. No diretório nav2-map-lab, reinicie com o mapa salvo.

ros2 launch nav2_bringup tb3_simulation_launch.py slam:=False map:="$PWD/map.yaml" headless:=False use_sim_time:=True

Use a Estimativa de Pose 2D do RViz para definir a localização e a direção simuladas atuais do robô. Solicite um objetivo próximo e verifique a geração do caminho e a chegada. A localização com mapa salvo tem uma finalidade diferente da atualização de um mapa com SLAM.

Diagnosticar falhas por interface

Sintoma Primeira verificação
Robô ou mundo ausente Logs do simulador e modelos instalados
Mapa ausente /scan , nó SLAM e relógio de simulação
TF ausente Domínio compartilhado, carimbos de data/hora e nomes de quadros
Mapa salvo desalinhado Referência de imagem YAML e pose inicial
Sem caminho Objetivo de espaço livre conhecido e folga da pegada do robô

Mantenha versões, comandos, mapas e logs de sucesso ou falha em cada etapa. O registro de implementação do newbot inclui LiDAR 3D e uma fonte de odometria diferente; identifique cada alteração em relação a esta configuração mínima à medida que a lê.

Related reading

Evaluate accuracy after bringupComo avaliar SLAM — ATE, RPE, tempo de execução e falhasExplore another aspect of this fieldPor que o ICP falha: inicialização, valores discrepantes e geometria simétrica.Explore another aspect of this fieldTransformações de coordenadas de robôs: matrizes, quatérnios e TF