1. Introduction
Quadruped robots have become increasingly relevant in industrial inspection, environmental monitoring, and search and rescue due to their mobility in complex terrain and unstructured environments [
1]. Despite recent progress, reliable autonomous navigation in cluttered indoor spaces remains challenging, as it requires robust simultaneous localization and mapping (SLAM) as well as dependable local and global planning [
2,
3].
The growing practical deployment of commercial quadrupeds highlights their value for inspection and data collection tasks [
4]. However, many deployed systems still rely on predefined routes, which limits adaptability when the environment changes or when prior maps are unavailable [
5]. This motivates an open-source and modular autonomy stack that can be deployed on commercially available quadrupeds using-off-the-shelf sensors and components, enabling reproducible experimentation and easier adaptation across use cases.
Recent reviews of field robotics and inspection platforms highlight substantial potential, but also conclude that broader real-world deployment will require a higher degree of autonomy [
6,
7]. These reviews further emphasize the need for improved sensor and SLAM accuracy, as well as more dependable autonomous inspection capabilities. In response, many recent works focus on increasing robustness and precision through advanced algorithms, sensor fusion, and improved path-planning methods, typically evaluated within a specific application scenario [
8,
9,
10]. While these approaches demonstrate measurable performance gains, they are often validated on custom-built platforms tailored to the target use case, rather than on commercially available quadruped or robot systems [
9,
10]. Consequently, there remains limited evaluation of widely used open-source solutions when deployed on off-the-shelf components and quadruped robots.
Recent surveys of quadruped robotics note that, despite substantial progress, advances are frequently driven by subfield-specific contributions with limited integration or generalization [
1]. In addition, quadruped platforms continue to face practical challenges in deployment. Locomotion introduces instability and disturbance effects that can degrade state estimation, and the resulting motion can reduce perception quality relative to more mechanically stable wheeled platforms [
11,
12]. These observations motivate the need for a general, reusable sensing and navigation platform for quadrupeds that lowers the barrier to experimental evaluation and supports future research and system development.
To address these gaps, this paper presents an open source ROS 2 based navigation and sensing platform for a commercially available quadruped robot. ROS 2 provides a modular software architecture with broad community support and is widely used for integrating SLAM, path planning, and perception components [
13]. The system combines SLAM Toolbox for mapping, the Nav2 stack for navigation, and Zenoh middleware for communication, targeting reliable operation and remote monitoring in practical deployments. The hardware configuration uses interchangeable, off-the-shelf components and sensors, making drop-in replacements possible, provided that suitable ROS 2 drivers are available. This facilitates quick deployment and encourages future research and development for quadruped platforms.
Another key component of the platform is a custom ROS 2 package for frontier-based autonomous exploration. Frontier methods guide robots in unknown environments by selecting navigation targets at frontiers, which are boundaries between known free space and unknown space [
14]. The implementation in this work builds on Wavefront Frontier Detection (WFD), which extracts frontier regions from occupancy grids using a wavefront search over reachable free space [
15].
Classical frontier exploration originates from Yamauchi and later refinements such as WFD [
14,
15]. Recent literature continues to advance frontier exploration mainly through algorithmic directions, including learned frontier prioritization, utility-driven scoring, and coordinated multi-robot strategies [
16,
17,
18]. These developments confirm that frontier exploration remains an active research area, with strong emphasis on improving selection logic, coordination, and decision quality.
In contrast to studies focused on increasingly sophisticated frontier-selection models, this work takes a deployment-oriented systems perspective. A wavefront frontier detector with an early-exit policy (early-stop WFD) is implemented and evaluated, rather than relying only on standard full frontier enumeration. The method is combined with feasibility filtering and robust frontier-cluster handling to improve behavior under noisy occupancy-grid conditions. The early-exit variant is then compared against baseline full-enumeration WFD, and its effect on frontier-selection latency is quantified, indicating reduced Time-to-Closest-Viable-Frontier (TCVF) in practical exploration scenarios. The complete package is integrated into an open-source ROS 2 stack to support reproducible deployment and provide a baseline for further research.
This paper evaluates the proposed platform through experiments conducted in realistic laboratory and office environments using a commercially available quadruped robot and off-the-shelf sensing and compute components. We demonstrate end-to-end operation of mapping, autonomous navigation, and frontier-based exploration using ROS 2 and widely used open-source packages. In addition, a quantitative evaluation of the computational benefit of the proposed early-exit WFD-based frontier selection is provided, showing substantial reductions in typical frontier selection runtime and the number of grid cells examined compared to a full enumeration baseline.
Overall, this work provides a modular, open-source, ROS 2-based quadruped navigation and sensing platform built from off-the-shelf components, intended as a ready-to-deploy baseline for future research and system development where general and reusable solutions are needed. The main contribution is a reproducible stack composed of widely adopted open-source modules (including SLAM Toolbox and Nav2), chosen to maximise accessibility and ease of extension. The platform further integrates Zenoh and Foxglove to enable remote monitoring, debugging, and operator intervention.
The structure of the paper is organized as follows:
Section 2 presents implementation details and choices for the hardware, navigation, SLAM, and frontier-based exploration package.
Section 3 presents the performance results, including navigation, path planning, and verification and validation of the WFD package. Finally,
Section 4 and
Section 5 provide discussions and conclusions.
2. Methodology
This work presents a complete ROS 2-based autonomy stack for operation of a quadruped robot. The system integrates mapping and localisation with autonomous navigation, enabling the robot to move towards goals while building a map of the environment online. Navigation is executed using the ROS 2 Navigation2 framework, while mapping and localisation are provided through complementary SLAM modules for navigation. On top of these components, an autonomous exploration layer generates new navigation goals online to expand map coverage without requiring pre-defined waypoints or prior maps.
2.1. Experimental Setup
The proposed payload is intended as a modular, reproducible research platform built from off-the-shelf, ROS 2-compatible components. The main focus is a flexible integration software framework that can be replicated and adapted across different quadruped, sensor and compute platforms, rather than an optimized industrial product, with emphasis on extensibility and repeatability.
An overview of the system is shown in
Figure 1, illustrating the components used as well as their main functionality. The power supply provides power to the NVIDIA Jetson and LiDAR, while the camera is powered over USB. The Nvidia Jetson AGX Orin (NVIDIA Corporation, Santa Clara, CA, USA), ZED 2i camera (Stereolabs, San Francisco, CA, USA), and Livox Mid-360 LiDAR (Livox Technology Co., Ltd., Shenzhen, China) are mounted on the robot’s back using custom 3D-printed brackets, while the wiring and power supply are enclosed in a 3D-printed protective housing. The protective housing and brackets are made specifically for this system, but the sensors and components themselves are interchangeable, provided that the alternative sensor or component has a ROS 2 driver.
The platform used in this paper is the Boston Dynamics Spot quadruped robot (Boston Dynamics, Waltham, MA, USA). Spot utilises two motors in each hip and one motor in each knee, giving it twelve degrees of freedom in total to move [
19]. It has five stereocameras to detect obstacles and navigate in different environments, and it supports both Ethernet and Wi-Fi connectivity. Payloads can be mounted on its back with a weight limitation of 14 kg. Spot can be controlled by the included tablet or from a computer using the Spot Application Programming Interface (API).
For onboard computation, an NVIDIA Jetson AGX Orin developer kit is used, weighing kg. This is a compact, ARM-based computer made for robotics and AI, equipped with a 12-core Arm Cortex-A78AE CPU, an NVIDIA Ampere GPU, and 64 GB LPDDR5 RAM, with 64 GB internal and an additional 1 TB external SSD for data storage. This computer runs the ROS 2 navigation stack, SLAM modules and visualisation tools.
The primary range sensor is a Livox Mid-360 LiDAR. It is a non-repetitive scanner with a rotating mirror inside, meaning that the sensor itself is stationary inside the LiDAR housing. For our application, the most relevant characteristics are its weight of 265 g, horizontal field of view, a vertical field of view from to , a detection range of up to approximately 40 m at reflectivity (70 m at ), and a frame rate of 10 Hz, which together provide dense 3D coverage around the robot.
A ZED 2i stereo camera from Stereolabs is used for RGB-D perception and visual odometry experiments. It is a stereo camera made for robotics, capable of RGB-D images and video. In our setup it operates at either at 30 fps or at 60 fps, with a horizontal field of view of , vertical field of view of , and an effective depth range of approximately 0.3 m to 20 m. It has a weight of 230 g.
All payload electronics are powered by a MEAN WELL SD-100C-12 DC–DC converter (MEAN WELL Enterprises Co., Ltd., New Taipei City, Taiwan), a 100 W single-output module weighing 650 g. It accepts 36–72 V DC input from Spot’s internal supply and provides a regulated 12 V output with up to 8.5 A current, which is used to power the Jetson and LiDAR.
The total payload mass is 3725 g, including approximately 1000 g attributed to estimated contributions from the 3D-printed protective housings and component wiring. This payload is well within Spot’s specified maximum payload capacity of 14 kg.
2.2. Navigation and Exploration
Navigation2 (Nav2) is the standard navigation framework for ROS 2, providing a mature and modular architecture for perception, localisation, planning, control, and visualisation [
20]. Navigation is orchestrated through a behaviour tree (BT) that coordinates multiple asynchronous servers configured via plug-ins, while a lifecycle manager supervises node startup and state transitions. For correct operation, Nav2 requires the standard TF transform chain, including map ⇒ odom for global localisation, odom ⇒ base_frame for odometry, and transforms between each sensor frame and the robot base frame provided via URDF and/or static TF.
Nav2 maintains both a global and a local costmap to represent the environment. The global costmap supports long-horizon planning and is typically generated from a static map (e.g., produced by SLAM) with inflation around obstacles, whereas the local costmap updates at a higher rate around the robot to support reactive obstacle avoidance. Range sensing is integrated through layered costmap plug-ins such as obstacle/voxel layers or the Spatial–Temporal Voxel Layer (STVL) [
21]. Core navigation is split between the planner and controller servers [
22]: the planner computes a low-cost path to the goal using the global costmap, and the controller converts this plan into velocity commands on /cmd_vel while using the local costmap for smooth, collision-free execution. If planning or execution fails, recovery behaviours (e.g., spin, wait, or backup) may be invoked, with the BT navigator supervising goal dispatch, progress monitoring, and recovery selection [
20].
In this work, Nav2 was selected as the core navigation framework due to its maturity and extensibility within the ROS 2 ecosystem [
20]. The default planner and controller were replaced with the Smac Hybrid-A* planner and the Model Predictive Path Integral (MPPI) controller to better handle confined indoor environments and generate smooth, feasible motion [
22,
23]. Planner configuration was adapted by switching the motion model from Dubins to Reeds–Shepp to enable tighter manoeuvres and allow reverse motion when required. MPPI was further tuned by adjusting critic plug-ins to reduce oscillations, improve goal alignment near the target pose, and permit reverse motion. The costmaps were also tailored to the platform by using Spot’s footprint instead of a circular approximation, resizing the local costmap to match the robot’s dimensions, and replacing the default voxel layer with STVL to better represent dynamic obstacles and utilize multiple point cloud sources [
21].
2.3. Simultaneous Localization and Mapping (SLAM)
Simultaneous localisation and mapping (SLAM) estimates the robot pose while incrementally building a map of the environment [
3]. In the current configuration, the platform uses the quadruped’s internal odometry for localization and mapping. The project’s architecture allows the odometry source to be treated as interchangeable, provided it is published in a consistent frame and a known transform to the robot base frame is available.
This requirement is handled through the ROS 2 tf2 transform tree, where the necessary transforms ensure that the chosen odometry frame is correctly related to the robot’s kinematic frames. In practice, switching odometry sources primarily becomes a one-time configuration of frame transforms, rather than requiring changes to the SLAM or navigation components.
SLAM Toolbox was selected because it is a widely adopted, well-maintained ROS 2 SLAM solution that integrates cleanly with Nav2 and can be deployed with minimal platform-specific tuning [
24]. Its 2D formulation provides robust mapping and localization in typical indoor and factory environments, enabling a practical and easily reproducible baseline for the quadruped sensor platform. SLAM Toolbox was configured for responsive 2D mapping by lowering the minimum motion thresholds required for map updates (0.1 rad and 0.1 m). Because the Livox sensor publishes 3D point clouds, pointcloud_to_laserscan was used to project points within a selected height band onto a 2D scan [
25]. The conversion was configured for a full
field of view, with height limits of
m to
m to avoid including overhead structures (e.g., door frames) that can introduce false obstacles in the occupancy grid.
2.4. ROS Middleware Interface
ROS2 uses a distributed, networked topology to discover nodes and exchange data across processes and computers. Communication is abstracted by the ROS middleware interface (RMW), which maps the ROS2 API onto an underlying transport; the default is Data Distribution Service (DDS), a real-time publish–subscribe middleware [
26]. DDS provides extensive Quality of Service (QoS) controls to tune reliability and latency, but it can require careful configuration and may struggle with discovery overhead and high-bandwidth streams (e.g., point clouds and video) on some WiFi networks.
Zenoh is an alternative RMW that reduces discovery traffic by optionally using a router for node discovery and bridging, enabling efficient communication across multiple machines and even over the internet. It has been shown to handle large data streams more robustly over WiFi than DDS in comparable setups [
27]. In this work, Zenoh was selected to reliably transmit high-throughput sensor data from the onboard NVIDIA Jetson to remote computers over WiFi and 4G, while keeping configuration simpler than DDS through a single, unified configuration file [
27].
2.5. Autonomous Frontier-Based Exploration
Autonomous exploration is performed in an initially unknown environment using a 2D occupancy grid map produced online by ROS 2 SLAM Toolbox. The map is represented as a grid where each cell is classified as free, occupied, or unknown. We adopt the classical frontier-based exploration formulation introduced by Yamauchi, where exploration proceeds by repeatedly selecting a frontier region as the next navigation target. A frontier represents the boundary between known free space and unknown space [
14]. In this work, a frontier cell is defined as a free cell that has at least one neighbouring unknown cell. Connected frontier cells form a frontier cluster, which represents a candidate exploration target.
To detect frontiers efficiently from the occupancy grid, Wavefront Frontier Detection (WFD) method [
15] is used. WFD performs a wavefront breadth-first search (BFS) over the reachable free space starting from the robot cell, and identifies frontier cells at the boundary to unknown space. For goal assignment, we apply the standard greedy nearest-frontier strategy used in classical frontier-based exploration pipelines [
14].
The exploration system deployed on the robot uses a latency-oriented early-exit variant of WFD, shown in Algorithm 1. The method avoids enumerating and clustering all frontier candidates before selecting a target. Instead, frontier clustering and feasibility checking are performed on demand during the wavefront search. When a frontier cell is encountered, its connected frontier cluster is extracted and evaluated immediately. If the cluster is feasible, a navigation goal is generated and the algorithm terminates early. If the cluster is rejected, its cells are marked as processed and the wavefront search continues. The method therefore terminates as soon as a feasible frontier target is found, which in practice often reduces goal-selection latency.
To quantify the computational effect of early exit, a standard full-enumeration WFD reference method is implemented for offline benchmarking, summarised in Algorithm 2 [
15]. The reference method follows the standard WFD pipeline by expanding a wavefront BFS over the reachable free space, collecting all frontier cells before clustering them into connected frontier clusters. To control for differences in clustering behaviour and to improve robustness to sensor noise in the occupancy grid, the reference method uses the same 8-connected flood fill procedure as the deployed implementation. Goal selection is performed by choosing the nearest feasible frontier cluster according to traversable grid distance. This reference method is only evaluated on recorded occupancy-grid snapshots from the exploration run and is used solely for comparison with the deployed early-exit implementation (
Section 3).
For Algorithms 1 and 2, the occupancy grid is denoted by
M and the robot cell by
s. Frontier clustering returns a frontier cluster
G, defined as a connected set of frontier cells. The feasibility check
Feasible filters clusters using a minimum frontier threshold. In our implementation,
is chosen as a minimum frontier length to reduce selection of narrow frontier fragments that are unlikely to be traversable by the robot. Rejected clusters are marked as processed to avoid repeated evaluation of the same frontier region. The distance function
Dist denotes traversable grid distance computed as the shortest path length through free cells from
s to the closest cell in
G.
| Algorithm 1 Greedy WFD frontier implementation (early exit) |
- 1:
Start wavefront BFS from s - 2:
while wavefront search not finished do - 3:
if a frontier cell is encountered then - 4:
ClusterFrontier - 5:
if Feasible then - 6:
return G {terminate early} - 7:
else - 8:
mark all cells in G as processed - 9:
end if - 10:
end if - 11:
end while - 12:
return Home Position
|
| Algorithm 2 Full-enumeration WFD [15] |
- 1:
DetectFrontierCells {wavefront BFS} - 2:
ClusterFrontiers {8-connected flood fill} - 3:
Feasible - 4:
returnDist {traversable grid distance}
|
For accepted frontier clusters, a single navigation goal is computed and sent to Nav2. The goal is generated by computing the mean of the frontier cell coordinates and rounding to the nearest grid cell, providing a simple, deterministic representative goal for the frontier region.
Real-world deployments can fail even when the selected frontier is feasible in the grid map, for example due to tight passages, dynamic obstacles, or incomplete representation of certain structures. There is therefore included a lightweight unreachable-goal handler: if the robot fails to make progress for longer than a configured timeout, the goal is abandoned and the corresponding frontier is stored as rejected. Future detected frontiers are compared against this rejected set using frontier length as a simple fingerprint within a tolerance, and matching frontiers are skipped to avoid repeated goal attempts. Two additional execution features support robust exploration runs: at the start of exploration, the robot performs a short initial “wiggle” motion to trigger an early map update before frontier selection begins, and when exploration terminates, the robot returns to the recorded home pose.
2.6. System Setup
A simplified overview of the system architecture and principal software components with topics is shown in
Figure 2. The incoming LiDAR point cloud is converted to a 2D LaserScan message for use with SLAM Toolbox. SLAM Toolbox uses this scan data together with odometry from the quadruped to estimate the robot pose and build a 2D occupancy grid map, which is provided to the navigation pipeline. Nav2 uses the occupancy map, the LaserScan and point cloud observations, and the quadruped odometry for localization, planning, and control. Goal poses are generated by the autonomous navigation package and sent to Nav2. The resulting velocity commands are published as Twist messages and executed by the quadruped base controller.
2.7. Experiment Description
All experiments were conducted in the Mechatronics Innovation Lab (MIL) in Grimstad, Norway, as part of a research project in collaboration with the University of Agder. The main experimental testing of WFD was performed in an office-like area consisting of an office room with desks and cabinets leading into a larger office space with seating and tables. The environment in the lab has a central corridor with several side rooms including narrow doorways, glass walls and windows, as well as metallic structures and pipes, creating occlusions and reflections that are challenging for LiDAR-based mapping. This layout provides a representative indoor scenario for testing localisation, path planning, and frontier-based exploration.
Sensor data from a single office exploration run were recorded to support practical verification and offline benchmarking of the WFD implementations. During this run, the robot periodically stopped to select a new frontier goal. At each such decision point, the current occupancy grid was exported and stored as a CSV file, resulting in a fixed set of map snapshots. The baseline and early-exit variants were evaluated offline by running each algorithm on every CSV snapshot. Each algorithm was executed 100 times per snapshot, and the repeated runs were used to compute summary statistics for comparison. All offline algorithm testing was performed on an external PC with an Intel Core i5-12450Hz (up to 4.4 GHz).
4. Discussion
The Results chapter highlights the impact of loop closure on mapping accuracy. While this is a well-established principle, the experiment reinforces that loop closure is required to reduce accumulated drift. For this reason, the autonomous navigation pipeline includes a return-to-home behaviour, which returns the robot to the start location to increase the likelihood of loop closure when it has no more frontiers to find.
A limitation of the system is reduced robustness in environments with large glazed surfaces, where LiDAR returns may pass through windows and introduce spurious structure outside the building. Projecting a 3D point cloud to a 2D laser scan mitigates this effect, but performance may still degrade when glazing exceeds the effective range of the scan projection.
The deployed system implements a variant of the common WFD pipeline that evaluates and filters frontier clusters on demand during the wavefront expansion, rather than fully enumerating all candidates before goal selection. Offline benchmarking on occupancy-grid snapshots from the office run shows that this variant reduces the TCVF compared to a full-enumeration WFD reference method, with a mean speedup of
across five scenarios, and a mean reduction in searched cells from 18,218 to 6573.6. At the same time, the results highlight an important trade-off. When the closest viable frontier lies far from the robot in traversable distance, early termination provides limited benefit and the additional on-demand processing can remove the latency advantage. This behaviour is observed in Goal 4 in
Table 1. The early-exit variant searched 20,575 cells and the regular one searched 23,747, as shown in
Table 2. Goal 4 therefore approximates a near-worst-case condition for the early-exit strategy: the first feasible frontier appears late in the wavefront search and large rejected clusters are processed on demand before termination. The early-exit overhead partially cancels the benefit of not enumerating all frontiers. On the other hand, a noticeable speedup is observed when starting closer to the first valid frontier, as shown in
Table 4. These findings support viewing early-exit WFD as a practical baseline variation rather than a uniformly superior frontier detector.
Although this work uses frontier length as the feasibility criterion, the same early-exit structure can accommodate alternative filters such as expected information gain without changing the overall pipeline. A practical extension is k-candidate early stopping, where the search terminates after collecting the first k feasible frontiers, enabling more advanced selection policies while still avoiding full frontier enumeration.
As a general purpose baseline, the platform is intended to support both research and development across multiple applications. The current navigation stack uses SLAM Toolbox, which performs 2D SLAM. Consequently, mapping and navigation are constrained to mainly planar environments and are effectively limited to a single floor at a time. Although this reduces applicability in multi-level or highly uneven terrain, the 2D formulation improves portability to other quadrupeds and mobile robots by requiring less configuration and avoiding platform-specific treatment of stairs and complex terrain.
Despite this 2D limitation, the quadruped platform remains suitable for a wide range of investigations, including evaluation of advanced algorithms for path planning, SLAM accuracy, sensor fusion, and techniques for mitigating locomotion-induced disturbances in state estimation. More broadly, a reusable and deployable baseline helps enable comparative, system-level research, reducing reliance on narrowly scoped subfield contributions that are difficult to transfer across platforms and tasks.