← Back to marketplace
// description

A hardened ROS 2 Nav2 distribution with behavior-tree recoveries, multi-floor map switching, costmap plugins for dynamic obstacles, and Foxglove-ready telemetry. One-command deploy to any ROS 2 Humble or Jazzy robot.

RosLab Packages · package

Nav2 Autonomy Stack

Production-tuned ROS 2 Nav2 stack with BT-based recovery and multi-floor maps.

price
By quote
site licence avail.
// Overview

A hardened ROS 2 Nav2 distribution with behavior-tree recoveries, multi-floor map switching, costmap plugins for dynamic obstacles, and Foxglove-ready telemetry. One-command deploy to any ROS 2 Humble or Jazzy robot.

// Specifications
ROS
Humble · Jazzy
Planner
Smac + BT
Maps
Multi-floor
Telemetry
Foxglove
// Deployment models
On-premSelf-hosted SDK
// Suggested use cases
  • AMR fleets in warehouses
  • Service robots in hospitals
  • Multi-floor delivery routes
// Deployment runbook

Deploys the RosLab Nav2 autonomy stack onto a ROS 2 Humble or Jazzy robot with a published /odom, /scan and TF tree.

Prerequisites
  • Ubuntu 22.04 (Humble) or 24.04 (Jazzy) on the robot
  • ROS 2 desktop install with colcon and rosdep initialised
  • Robot publishes /odom, /scan (LaserScan or PointCloud2) and base_link → odom TF
  • RosLab licence key in $ROSLAB_LICENCE_KEY
Install steps
  1. 01
    Pull the package

    Authenticate to the RosLab registry and pull the Nav2 stack image.

    docker login registry.roslab.ai -u $ROSLAB_USER -p $ROSLAB_LICENCE_KEY
    docker pull registry.roslab.ai/nav2-stack:1.4.0
  2. 02
    Drop in your map

    Mount your floor map (.yaml + .pgm) into /maps.

    cp my_floor.yaml my_floor.pgm ./maps/
  3. 03
    Launch the stack

    Start the navigation graph with BT recoveries enabled.

    ros2 launch roslab_nav2 bringup.launch.py map:=/maps/my_floor.yaml use_sim_time:=false
  4. 04
    Send a goal

    Drive the robot to a 2D pose to validate end-to-end planning.

    ros2 action send_goal /navigate_to_pose nav2_msgs/action/NavigateToPose \
      "{pose: {header: {frame_id: map}, pose: {position: {x: 2.0, y: 1.0}}}}"
Verify

You should see a successful plan in RViz and `/behavior_tree_log` reporting SUCCESS.

ros2 topic echo /behavior_tree_log --once
Full documentation