Table with all available packages & architectures
Welcome to RoboStack, which tightly couples ROS with Conda, a cross-platform, language-agnostic package manager. We provide ROS binaries for Linux, macOS, 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.
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},
}
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
/ mambaforge
or miniconda
, which are much more "minimal" installers. These installers will create a "base" environment that contains the package managers conda (and mamba if you go with mambaforge
). After this installation is done, you can move on to the next steps.
Note: Make sure to not install the ROS packages (in particular the
ros-noetic-catkin
package) 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 robostackenv, they should only be installed in base. Also do not source the system ROS environment, as thePYTHONPATH
set in the setup script conflicts with the conda environment.
# if you don't have mamba yet, install it first in the base environment (not needed when using mambaforge):
conda install mamba -c conda-forge
mamba create -n robostackenv ros-noetic-desktop python=3.9 -c robostack -c robostack-experimental -c conda-forge --no-channel-priority --override-channels
conda activate robostackenv
# optionally, install some compiler packages if you want to e.g. build packages in a catkin_ws:
mamba install compilers cmake pkg-config make ninja
# on linux and osx (but not Windows) you might want to:
mamba install catkin_tools
# on Windows, 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
# only on linux, if you are having issues finding GL/OpenGL, also do:
mamba install mesa-libgl-devel-cos7-x86_64 mesa-dri-drivers-cos7-x86_64 libselinux-cos7-x86_64 libxdamage-cos7-x86_64 libxxf86vm-cos7-x86_64 libxext-cos7-x86_64 xorg-libxfixes
# on Windows, install the Visual Studio command prompt via Conda:
mamba install vs2019_win-64
# note that in this case, you should also install the necessary dependencies with conda/mamba, if possible
# reload environment to activate required scripts before running anything
# on Windows, please restart the Anaconda Prompt / Command Prompt!
conda deactivate
conda activate robostackenv
# if you want to use rosdep, also do:
mamba install rosdep
rosdep init # note: do not use sudo!
rosdep update
Note: at the moment on Windows only the Command Prompt terminal is supported, while Powershell is not supported.
Feel free to open issues in this repository's issue tracker (please check whether your problem is already listed there before opening a new issue) or come around on Gitter to have a chat / ask questions. Please note that this repository is not an official distribution of ROS and relies on volunteers. It is further highly experimental - unfortunately things might not work immediately out-of-the-box, although we try our best.
To install Jupyter-ROS and JupyterLab-ROS which provide interactive experiences for robotics developers in Jupyter Notebooks, please see the relevant repositories for Jupyter-ROS and JupyterLab-ROS.
When running catkin
or catkin_make
I get errors that "Multiple packages found with the same name", e.g.
/Users/me/miniconda3/envs/robostackenv/share/catkin/cmake/em/order_packages.cmake.em:23: error: <class 'RuntimeError'>: Multiple packages found with the same name "catkin":
- pkgs/ros-noetic-catkin-0.8.10-py38hb43b470_10/share/catkin
- share/catkin
You probably installed conda or mamba into your robostackenv
. However, conda and mamba should only be installed in your base
environment. Try setting up a new environment without conda
and mamba
installed into that environment.
CMake Error at /Users/me/miniconda3/envs/robostackenv/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by "std_msgs" with any
of the following names:
std_msgsConfig.cmake
std_msgs-config.cmake
First, make sure that the package is installed; in the example case it would be mamba install ros-noetic-std-msgs
. You can use rosdep
to install dependencies. Second, make sure that your CMAKE_PREFIX_PATH
points to your robostackenv
, in the example case you could achieve this by export CMAKE_PREFIX_PATH=/Users/me/miniconda3/envs/robostackenv/
. This might happen if CMAKE_PREFIX_PATH
is not empty when you activate your robostackenv
.
RoboStack is based on conda-forge and will not work without conda. However, check out rospypi which can run in a pure Python virtualenv. rospypi supports tf2 and other binary packages.
This project is in early stages and we are looking for contributors to help it grow. Please see CONTRIBUTING.md for ways to contribute.