Skip to content

TurtleBot3 Navigation

Progressive Operational Capability

Training flows support a natural progression from manual control to full autonomy:

  • Teleoperation via keyboard:

    ros2 run turtlebot3_teleop teleop_keyboard
    

  • SLAM & Map Saving:

    ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True
    ros2 run nav2_map_server map_saver_cli -f ~/map
    

  • Autonomous Collision Avoidance:

    ros2 run turtlebot3_gazebo turtlebot3_drive
    

  • Autonomous Navigation:

    ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True map:=$HOME/map.yaml
    


Static Navigation with RViz

  1. In RViz2, click the Navigation2 Goal button.
  2. Click on the desired goal location and drag the arrow to indicate orientation.
  3. The robot will navigate to the specified position.

Launch Navigation from the Remote PC

Open a new terminal:

export TURTLEBOT3_MODEL=waffle_pi
ros2 launch turtlebot3_navigation2 navigation2.launch.py map:=$HOME/map.yaml

To persist TURTLEBOT3_MODEL, add it to your .bashrc or shell configuration.


DWB Controller Parameters

Located in turtlebot3_navigation2/param/${TB3_MODEL}.yaml:

  • max_vel_x, min_vel_x: forward speed limits
  • max_vel_y, min_vel_y: lateral speed limits
  • max_vel_theta, min_speed_theta: rotational speed limits
  • max_speed_xy, min_speed_xy: translational speed bounds
  • acc_lim_x, acc_lim_y, acc_lim_theta: acceleration limits
  • decel_lim_x, decel_lim_y, decel_lim_theta: deceleration limits
  • xy_goal_tolerance, yaw_goal_tolerance: acceptable goal error
  • transform_tolerance: allowable transform update delay
  • sim_time: forward simulation time for trajectory rollout