Getting Started
RoboStack is a bundling of ROS for Linux, Mac and Windows using the conda package manager, based on top of conda-forge.
Installation mamba
To get started with conda (or mamba) as package managers, you need to have a base conda installation. Please do not use the Anaconda installer, but rather start with miniforge
that is much more "minimal" installer. This installer will create a "base" environment that contains the package managers conda and mamba. After this installation is done, you can move on to the next steps.
When you already have a conda installation you can install mamba with:
Do not install ROS packages in the base
environment
Make sure to not install the ROS packages in your base environment as this leads to issues down the track. On the other hand, conda and mamba must not be installed in the ros_env
, they should only be installed in base.
Do not source the system ROS environment
When there is an installation available of ros on the system, in non-conda environments, there will be interference with the environments. As the PYTHONPATH
set in the setup script conflicts with the conda environment.
PowerShell is not supported
At the moment on Windows only the Command Prompt terminal is supported, while Powershell is not supported.
Installation ros
mamba create -n ros_env python=3.11
mamba activate ros_env
# this adds the conda-forge channel to the new created environment configuration
conda config --env --add channels conda-forge
# and the robostack channel
conda config --env --add channels robostack-staging
# remove the defaults channel just in case, this might return an error if it is not in the list which is ok
conda config --env --remove channels defaults
Installation tools for local development
mamba install compilers cmake pkg-config make ninja colcon-common-extensions catkin_tools rosdep
# Install Visual Studio 2017, 2019 or 2022 with C++ support
# see https://docs.microsoft.com/en-us/cpp/build/vscpp-step-0-installation?view=msvc-160
# Install the Visual Studio command prompt - if you use Visual Studio 2019:
mamba install vs2019_win-64
# Install the Visual Studio command prompt - if you use Visual Studio 2022:
mamba install vs2022_win-64
micromamba install -c conda-forge compilers cmake pkg-config make ninja colcon-common-extensions catkin_tools rosdep
# Install Visual Studio 2017 or 2019 with C++ support
# see https://docs.microsoft.com/en-us/cpp/build/vscpp-step-0-installation?view=msvc-160
# Install the Visual Studio command prompt - if you use Visual Studio 2019:
micromamba install vs2019_win-64
# Install the Visual Studio command prompt - if you use Visual Studio 2022:
micromamba install vs2022_win-64
Testing installation
After installation you are able to run rviz
and other ros tools.
In the conda environment activation is the ROS activation included. There is no need to add a source
command in the ~/.bashrc
ROS1
ROS2
Note
ROS2 has the benefit of not needing a roscore
, so only a single terminal is needed to run a tool.
If you run into any issues or for any frequently asked questions, you can check the FAQ page
Updating
Updating all packages in your environment is as easy as:
Deactivating
The (de)activation of the ros workspace goes in together with the conda environment. So running the corresponding (de)activation command will also (un)source the ros environment.
Why ROS and Conda?
We tightly couple ROS with Conda, a cross-platform, language-agnostic package manager. We provide ROS binaries for Linux, macOS (Intel and Apple Silicon), Windows and ARM (Linux). Installing other recent packages via conda-forge side-by-side works easily, e.g. you can install TensorFlow/PyTorch in the same environment as ROS Noetic without any issues. As no system libraries are used, you can also easily install ROS Noetic on any recent Linux Distribution - including older versions of Ubuntu. As the packages are pre-built, it saves you from compiling from source, which is especially helpful on macOS and Windows. No root access is required, all packages live in your home directory. We have recently written up a paper and blog post with more information.
Attribution
If you use RoboStack in your academic work, please refer to the following paper:
@article{FischerRAM2021,
title={A RoboStack Tutorial: Using the Robot Operating System Alongside the Conda and Jupyter Data Science Ecosystems},
author={Tobias Fischer and Wolf Vollprecht and Silvio Traversaro and Sean Yen and Carlos Herrero and Michael Milford},
journal={IEEE Robotics and Automation Magazine},
year={2021},
doi={10.1109/MRA.2021.3128367},
}