Build & Install

This page explains how to install and build the EasyNavigation (EasyNav) framework and how to set up your development environment.

Supported platforms

EasyNav targets modern Linux distributions and ROS 2 releases:

  • Ubuntu 24.04 (Noble) β€” ROS 2 jazzy (primary CI target)

  • Ubuntu 24.04 (Noble) β€” ROS 2 kilted

  • Ubuntu 24.04 (Noble) β€” ROS 2 rolling

  • Other platforms may work but are not actively tested.

Note

If you are using a different distribution or ROS 2 release, contributions to extend the support matrix are very welcome.

Prerequisites

  1. ROS 2 (jazzy, kilted or rolling)

    Follow the official ROS 2 installation instructions for your platform. Ensure your ROS 2 environment is sourced before building EasyNav.

    # Example (adjust to your ROS 2 distro):
    source /opt/ros/jazzy/setup.bash
    
  2. ROS dependencies

    sudo rosdep init
    rosdep update
    

Install from binaries (APT)

Binary packages will be provided via APT for Ubuntu + ROS 2 as they become available.

Coming soon

Prebuilt Debian packages are planned. Once published, you will be able to run:

sudo apt update
sudo apt install ros-jazzy-easynav

Build from source

Workspace layout

We recommend a standard ROS 2 workspace:

mkdir -p ~/easynav_ws/src
cd ~/easynav_ws

Clone sources

You can retrieve EasyNav sources by cloning the monorepo(s) you need:

# Adjust workspace dir and branches to your needs
cd ~/easynav_ws/src
# Clone the main EasyNavigation repositories
git clone -b jazzy https://github.com/EasyNavigation/EasyNavigation.git
git clone -b jazzy https://github.com/EasyNavigation/NavMap.git
git clone -b jazzy https://github.com/EasyNavigation/easynav_plugins.git
# Clone yaets dependency
git clone -b jazzy-devel https://github.com/fmrico/yaets.git

Install dependencies

From the workspace root, resolve all package dependencies with rosdep:

cd ~/easynav_ws
rosdep install --from-paths src --ignore-src -y -r

Configure and build

Use colcon to build the workspace. You may enable symlink-install for faster iteration.

cd ~/easynav_ws
colcon build --symlink-install

Source the overlay

# Source ROS 2 first (jazzy / kilted / rolling)
source /opt/ros/jazzy/setup.bash
# Then source the workspace
source ~/easynav_ws/install/setup.bash

Run tests (optional)

cd ~/easynav_ws
colcon test --ctest-args -R easynav  # run EasyNav-related tests
colcon test-result --verbose

Troubleshooting

  • Missing rosdep keys

    Run rosdep check --from-paths src --ignore-src to diagnose. If a dependency is truly missing on your platform, consider opening an issue with details.

  • CMake not finding ROS packages

    Ensure you have sourced the correct ROS 2 distro and your workspace install before building or running executables.

    source /opt/ros/jazzy/setup.bash
    source ~/easynav_ws/install/setup.bash
    
  • ABI / compiler issues

    Remove the build, install, and log folders and rebuild:

    cd ~/easynav_ws
    rm -rf build install log
    colcon build --merge-install
    

Uninstall / clean

Since this is a workspace overlay, you can remove it safely:

rm -rf ~/easynav_ws

Next steps