RoboStack: Using ROS alongside the Conda and Jupyter Ecosystems on any Linux, macOS, Windows & ARM

Dear ROS users,

We are excited to announce the RoboStack project, which combines ROS with conda-forge and the Jupyter project.

TL;DR: ROS on any platform (any Linux, macOS, Windows, ARM) without root access required, super easy installation of multiple ROS distributions on the same machine, side-by-side with the latest scientific packages (including machine-learning ones like PyTorch and Tensorflow), control+visualize your robots in Jupyter Notebooks, visualizations in your browser without a ROS installation, reproducible environments & more.

Preprint: [2104.12910] RoboStack: Using the Robot Operating System alongside the Conda and Jupyter Data Science Ecosystems
Code repo and detailed installation instructions: GitHub - RoboStack/ros-noetic: vinca configuration files for ros-noetic
Wolf Vollprecht first reported on ROS packages on conda-forge in October 2019 and lots has improved since then.

Some details on the benefits:
Benefit 1: Easy platform-agnostic installation on many platforms: Linux (any distribution!), Windows & MacOS. In addition, ARM is supported (used in e.g. Raspberry Pi’s & the new Apple M1). We provide binaries, so the installation is rapid, rather than having to compile it locally. No more homebrew on macOS and waiting for hours until you hit the next compile error! Here is rviz running on these platforms:

Benefit 2: RoboStack uses packages from conda-forge under the hood: It is very easy to install these side-by-side with ROS. Think the newest machine learning (TensorFlow, PyTorch), OpenCV, PCL & other robotics packages (Ignition Libraries, the Robotics Toolbox for Python and more).

conda install ros-noetic-desktop tensorflow pytorch -c conda-forge -c robostack

Benefit 3: No root access machine is required for installation! The Conda virtual environment lives in a directory of your choice. Use ROS on shared workstations, high-performance computers (HPC) and so forth. Also, run multiple ROS distributions simultaneously; each distribution lives in a separate environment. Currently, ROS Noetic is best supported; we have some packages for ROS Melodic, and increasingly more packages for ROS2 Foxy.

Benefit 4: Just like any Conda environment, it is very easy to reproduce the environments on different machines. The paper contains tips & tricks for reproducible & upgradable environments.

Benefit 5: Tight integration with Jupyter Notebooks & JupyterLab. Control & visualize your robot within a Notebook. 2D + 3D visualizations are supported. Machine Learning folks can now use the code environment they are used to for robotics experiments!

Benefit 6: Visualize your robots on machines without any installation, just through the browser! Also, Rapyuta Robotics created the beautiful Zethus replacement for RViz that we integrated into RoboStack.

Benefit 7: Easy package creation. Creating a conda package is much easier than creating Debian packages. We also forward-ported some packages from Melodic to Noetic - e.g. packages for the Jackal robot (see an example here).

Benefit 8: Cross-platform CI for ROS packages. Check if your package builds on Linux, macOS & Windows using a simple GitHub action. This has already been merged into the Exotica stack and we currently have open pull requests on rviz and moveit. You will notice that these PRs currently contain environment files with the required dependencies - just this week we managed to get rosdep running with RoboStack which will make these obsolete.

RoboStack is a collaboration with Wolf Vollprecht and Carlos Herrero from QuantStack, Silvio Traversaro from the Italian Institute of Technology, Sean Yen from Microsoft, and Michael Milford from the QUT Centre for Robotics. We recently had a number of contributions from other ROS users, many thanks to those as well! Please join us on Gitter for a chat, open issues on our repo if you have any questions, and we’d love to hear your feedback.

We are also keen to involve more collaborators - there is still lots of work to be done; for example, getting even more packages to work on macOS and Windows, better documentation etc.

23 Likes

Would there be access to hardware ports for real robot control?

1 Like

the conda packages run right on your host computer, and there is no sandbox layer (as with docker containers). So there shouldn’t be a problem with hardware access.

3 Likes

This is awesome! Really cool work!

1 Like

Fantastic!! This will accelerate development and hope it becomes the future standard

1 Like

I like it! really useful!