Install from Binariesο
EasyNav is distributed as binary packages with APT (Debian packages from the ROS 2 buildfarm, the recommended way, for every distro but rolling) and Pixi (self-contained conda packages, for every distro).
Release statusο
EasyNav 0.5.0 is released for every distro, with the same content in all of them. Each distro has its own branch in the repositories:
Distro |
APT |
Pixi |
Source branch |
|---|---|---|---|
rolling |
β |
0.5.0 |
|
lyrical |
0.5.0 |
0.5.0 |
|
kilted |
0.5.0 |
0.5.0 |
|
jazzy |
0.5.0 |
0.5.0 |
|
humble |
0.5.0 |
0.5.0 |
|
Install from binaries (APT, recommended)ο
EasyNav is released as Debian packages through the ROS 2 buildfarm for humble, jazzy, kilted and lyrical. Rolling has no APT packages for now: use Pixi or Install from source. It needs ROS 2 installed from its official APT repositories.
sudo apt update
sudo apt install ros-<distro>-easynav
Installing plugins (APT)ο
ros-<distro>-easynav only installs the core EasyNav framework (easynav_system,
easynav_sensors, β¦). Controllers, localizers, planners and maps managers are
shipped as separate packages β see the full catalogue at EasyNav Plugins β and
you need to install the ones your configuration actually uses. For example, for a costmap
configuration with the Regulated Pure Pursuit controller:
sudo apt install \
ros-<distro>-easynav-costmap-maps-manager \
ros-<distro>-easynav-costmap-localizer \
ros-<distro>-easynav-costmap-planner \
ros-<distro>-easynav-regulated-pp-controller
The PlayGrounds are packaged too (except in humble), e.g.
ros-<distro>-easynav-playground-kobuki.
Install via Pixiο
Use Pixi when you cannot install ROS 2 from APT (another Linux, no root, or several distros side by side). A Pixi environment is fully self-contained: it ships its own ROS 2 distribution, so you do not need a system ROS 2 install.
The ROS 2 packages come from RoboStack (robostack-<distro>
channels). EasyNavβs conda packages, and the few dependencies RoboStack lacks, are in the
Intelligent Robotics Lab channels on prefix.dev:
Note
EasyNav 0.5.0 will soon be available in the RoboStack channels too. Meanwhile, use the IRL
channels below, as the pixi.toml files of this page do.
Distro |
IRL channel |
|---|---|
rolling |
|
lyrical |
|
kilted |
|
jazzy |
|
humble |
Note
Keep the IRL channel before RoboStackβs in channels: Pixi takes each package from the
first channel that has it, and some RoboStack channels have older EasyNav versions.
For each ROS 2 distro, download the corresponding pixi.toml below and save it as
~/easynav_ws/pixi.toml β the same workspace directory used throughout this guide
and in Getting Started. Then run:
cd ~/easynav_ws
pixi install
pixi shell
pixi shell opens a shell with ROS 2 and EasyNav ready to use. You can also prefix any command
with pixi run instead of entering the shell.
Rollingο
[workspace]
name = "easynav-rolling"
# EasyNav's channel first: Pixi takes each package from the first channel that has it
channels = [
"https://prefix.dev/fmrico/irl-rolling",
"https://prefix.dev/robostack-rolling",
"https://prefix.dev/conda-forge",
]
platforms = ["linux-64"]
[dependencies]
ros-rolling-easynav = "*"
# RoboStack's gz_ros2_control does not set it in this distro: Gazebo would not find the plugin
[activation.env]
GZ_SIM_SYSTEM_PLUGIN_PATH = "$CONDA_PREFIX/lib"
Lyricalο
[workspace]
name = "easynav-lyrical"
# EasyNav's channel first: Pixi takes each package from the first channel that has it
channels = [
"https://prefix.dev/fmrico/irl-lyrical",
"https://prefix.dev/robostack-lyrical",
"https://prefix.dev/conda-forge",
]
platforms = ["linux-64"]
[dependencies]
ros-lyrical-easynav = "*"
Kiltedο
[workspace]
name = "easynav-kilted"
# EasyNav's channel first: Pixi takes each package from the first channel that has it
channels = [
"https://prefix.dev/irl-kilted",
"https://prefix.dev/robostack-kilted",
"https://prefix.dev/conda-forge",
]
platforms = ["linux-64"]
[dependencies]
ros-kilted-easynav = "*"
# RoboStack's gz_ros2_control does not set it in this distro: Gazebo would not find the plugin
[activation.env]
GZ_SIM_SYSTEM_PLUGIN_PATH = "$CONDA_PREFIX/lib"
Jazzyο
[workspace]
name = "easynav-jazzy"
# EasyNav's channel first: Pixi takes each package from the first channel that has it
channels = [
"https://prefix.dev/irl-jazzy",
"https://prefix.dev/robostack-jazzy",
"https://prefix.dev/conda-forge",
]
platforms = ["linux-64"]
[dependencies]
ros-jazzy-easynav = "*"
Humbleο
[workspace]
name = "easynav-humble"
# EasyNav's channel first: Pixi takes each package from the first channel that has it
channels = [
"https://prefix.dev/fmrico/irl-humble",
"https://prefix.dev/robostack-humble",
"https://prefix.dev/conda-forge",
]
platforms = ["linux-64"]
[dependencies]
ros-humble-easynav = "*"
Installing plugins (Pixi)ο
Just like with APT, ros-<distro>-easynav in the pixi.toml files above only pulls in the
core framework. Controllers, localizers, planners and maps managers live in separate
packages β browse the full catalogue at EasyNav Plugins β and must be added on top with
pixi add. For example:
pixi add \
ros-<distro>-easynav-costmap-maps-manager \
ros-<distro>-easynav-costmap-localizer \
ros-<distro>-easynav-costmap-planner \
ros-<distro>-easynav-regulated-pp-controller
Replace <distro> with your target distro (humble, jazzy, kilted, lyrical or
rolling).
Package availabilityο
Every package of EasyNav, its plugins, NavMap (including navmap_tools and
navmap_rviz_plugin), yaets, easynav_nav2_bridge and the PlayGrounds is available with APT
(humble, jazzy, kilted and lyrical) and Pixi (also rolling), except:
The PlayGrounds are not available for humble: their simulation needs the Gazebo vendor packages (
gz_sim_vendor) of jazzy and later.easynav_behaviorsand the other example packages are only distributed as source (see Getting Started).