IEEE Robotics & Automation Magazine - June 2022 - 66
Table 1. A summary table and glossary.
Term
Description
Boa
Conda
Conda channel
Conda recipe
Conda-forge channel
RoboStack channel
Jupyter
Jupyter Notebook
Jupyter-ROS
JupyterLab
JupyterLab-ROS
Mamba
Mambaforge
Vinca
Fast build tool for Conda packages
Cross-platform, language-agnostic package manager and environment manager
Software repository where packages are stored
Files describing package dependencies and build instructions to create a Conda package
Community-led Conda channel containing more than 10,000 packages with recent versions
Channel built on top of conda-forge that contains ROS packages
Web-based, interactive development platform
Open document format that can contain code, equations, visualizations, and narrative text
Collection of Jupyter interactive widgets inspired by Qt and RViz
Next-generation user interface within the Jupyter ecosystem
Set of ROS plug-ins for JupyterLab
Fast drop-in replacement for the Conda tool
Installer for Conda that uses the conda-forge channel by default and contains Mamba
Packaging tool similar to bloom that creates Conda recipes from ROS package.xml files
In summary, RoboStack provides Conda packages for
ROS and a variety of ROS-related plug-ins for Jupyter Notebook.
Table 1 contains a summary of the terminology and
proposed tools.
This article introduces RoboStack, addressing both
opportunities, i.e., installing machine learning and other
scientific libraries alongside ROS on multiple platforms
with ease (RoboStack targets any Linux distribution, Windows,
and macOS), and the integration of ROS with Jupyter.
The " Part 1: ROS+Conda " section of this article shows
the reader how to install-and, for developers, how to
build-ROS packages using the Conda package manager.
Conda not only provides a wide range of scientific libraries
but also comes with a rich ecosystem, which is of interest to
the robotics community, including conda lock to create
reproducible environments, and conda constructor to provide
easy-to-use installers. The " Part 2: ROS+Jupyter " section
introduces the reader to a collection of JupyterLab
extensions for ROS, including plug-ins for live plotting,
debugging, and robot control as well as tight integration
with Zethus, an RViz-like visualization tool.
Part 1: ROS+Conda
Before this article delves into the details of the installation of
ROS via the Conda package manager [which, in the simplest
case, could be as simple as executing a single command, (see
Figure 1)], we introduce common terminology in " Conda
land " (Table 1 provides a summary) and list some of the many
advantages of this means of installation. For readers who want
to get started quickly, we note that the main instructions are
summarized in the figures contained within this article.
Figure 1. Creating a new environment named rosenv with
ros-noetic-desktop installed. This is even easier than installing
ROS using apt on Ubuntu (the recommended means of
installing ROS) because adding the custom RoboStack
channel is done by simply appending '-c robostack,' as
compared to the traditional installation process, which
requires setting up a sources.list and needs keys for this
server. It also works in the same way for all supported
platforms, i.e., Linux, macOS, and Windows. RoboStack
recommends using Mambaforge to install Conda as this sets
conda-forge as the default channel. If this is not the case, one
also has to append '-c conda-forge.' It is recommended to
install additional packages, as detailed in https://robostack.
github.io/GettingStarted.html.
66 * IEEE ROBOTICS & AUTOMATION MAGAZINE * JUNE 2022
Conda Terminology
Conda is a cross-platform, language-agnostic package manager
that enables building packages with ease for all common
operating systems, i.e., Linux, Windows, and macOS, as well
as various architectures, namely, x86, ARM, and PowerPC,
including cross compilation. Furthermore, and contrary to
the popular pip package manager for Python packages (and
its associated PyPI software repository), Conda manages
binary dependencies and has mechanisms that ensure compatibility
across packages so that a large number of packages
can be installed side by side without conflicts. A comparison
of apt, pip, and conda can be found in Table 2.
Although Conda refers to the package manager itself, Conda
channels refer to locations (or software repositories) where
packages are stored. One of the most popular channels is the
community-led conda-forge [5], which contains thousands of
scientific packages written in Python, C++, Julia, and more,
including deep learning frameworks like PyTorch and TensorFlow,
and computer vision libraries such as OpenCV. Thanks to
generous continuous-integration services offered by Microsoft
https://robostack.github.io/GettingStarted.html
https://robostack.github.io/GettingStarted.html
IEEE Robotics & Automation Magazine - June 2022
Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - June 2022
Contents
IEEE Robotics & Automation Magazine - June 2022 - Cover1
IEEE Robotics & Automation Magazine - June 2022 - Cover2
IEEE Robotics & Automation Magazine - June 2022 - Contents
IEEE Robotics & Automation Magazine - June 2022 - 2
IEEE Robotics & Automation Magazine - June 2022 - 3
IEEE Robotics & Automation Magazine - June 2022 - 4
IEEE Robotics & Automation Magazine - June 2022 - 5
IEEE Robotics & Automation Magazine - June 2022 - 6
IEEE Robotics & Automation Magazine - June 2022 - 7
IEEE Robotics & Automation Magazine - June 2022 - 8
IEEE Robotics & Automation Magazine - June 2022 - 9
IEEE Robotics & Automation Magazine - June 2022 - 10
IEEE Robotics & Automation Magazine - June 2022 - 11
IEEE Robotics & Automation Magazine - June 2022 - 12
IEEE Robotics & Automation Magazine - June 2022 - 13
IEEE Robotics & Automation Magazine - June 2022 - 14
IEEE Robotics & Automation Magazine - June 2022 - 15
IEEE Robotics & Automation Magazine - June 2022 - 16
IEEE Robotics & Automation Magazine - June 2022 - 17
IEEE Robotics & Automation Magazine - June 2022 - 18
IEEE Robotics & Automation Magazine - June 2022 - 19
IEEE Robotics & Automation Magazine - June 2022 - 20
IEEE Robotics & Automation Magazine - June 2022 - 21
IEEE Robotics & Automation Magazine - June 2022 - 22
IEEE Robotics & Automation Magazine - June 2022 - 23
IEEE Robotics & Automation Magazine - June 2022 - 24
IEEE Robotics & Automation Magazine - June 2022 - 25
IEEE Robotics & Automation Magazine - June 2022 - 26
IEEE Robotics & Automation Magazine - June 2022 - 27
IEEE Robotics & Automation Magazine - June 2022 - 28
IEEE Robotics & Automation Magazine - June 2022 - 29
IEEE Robotics & Automation Magazine - June 2022 - 30
IEEE Robotics & Automation Magazine - June 2022 - 31
IEEE Robotics & Automation Magazine - June 2022 - 32
IEEE Robotics & Automation Magazine - June 2022 - 33
IEEE Robotics & Automation Magazine - June 2022 - 34
IEEE Robotics & Automation Magazine - June 2022 - 35
IEEE Robotics & Automation Magazine - June 2022 - 36
IEEE Robotics & Automation Magazine - June 2022 - 37
IEEE Robotics & Automation Magazine - June 2022 - 38
IEEE Robotics & Automation Magazine - June 2022 - 39
IEEE Robotics & Automation Magazine - June 2022 - 40
IEEE Robotics & Automation Magazine - June 2022 - 41
IEEE Robotics & Automation Magazine - June 2022 - 42
IEEE Robotics & Automation Magazine - June 2022 - 43
IEEE Robotics & Automation Magazine - June 2022 - 44
IEEE Robotics & Automation Magazine - June 2022 - 45
IEEE Robotics & Automation Magazine - June 2022 - 46
IEEE Robotics & Automation Magazine - June 2022 - 47
IEEE Robotics & Automation Magazine - June 2022 - 48
IEEE Robotics & Automation Magazine - June 2022 - 49
IEEE Robotics & Automation Magazine - June 2022 - 50
IEEE Robotics & Automation Magazine - June 2022 - 51
IEEE Robotics & Automation Magazine - June 2022 - 52
IEEE Robotics & Automation Magazine - June 2022 - 53
IEEE Robotics & Automation Magazine - June 2022 - 54
IEEE Robotics & Automation Magazine - June 2022 - 55
IEEE Robotics & Automation Magazine - June 2022 - 56
IEEE Robotics & Automation Magazine - June 2022 - 57
IEEE Robotics & Automation Magazine - June 2022 - 58
IEEE Robotics & Automation Magazine - June 2022 - 59
IEEE Robotics & Automation Magazine - June 2022 - 60
IEEE Robotics & Automation Magazine - June 2022 - 61
IEEE Robotics & Automation Magazine - June 2022 - 62
IEEE Robotics & Automation Magazine - June 2022 - 63
IEEE Robotics & Automation Magazine - June 2022 - 64
IEEE Robotics & Automation Magazine - June 2022 - 65
IEEE Robotics & Automation Magazine - June 2022 - 66
IEEE Robotics & Automation Magazine - June 2022 - 67
IEEE Robotics & Automation Magazine - June 2022 - 68
IEEE Robotics & Automation Magazine - June 2022 - 69
IEEE Robotics & Automation Magazine - June 2022 - 70
IEEE Robotics & Automation Magazine - June 2022 - 71
IEEE Robotics & Automation Magazine - June 2022 - 72
IEEE Robotics & Automation Magazine - June 2022 - 73
IEEE Robotics & Automation Magazine - June 2022 - 74
IEEE Robotics & Automation Magazine - June 2022 - 75
IEEE Robotics & Automation Magazine - June 2022 - 76
IEEE Robotics & Automation Magazine - June 2022 - 77
IEEE Robotics & Automation Magazine - June 2022 - 78
IEEE Robotics & Automation Magazine - June 2022 - 79
IEEE Robotics & Automation Magazine - June 2022 - 80
IEEE Robotics & Automation Magazine - June 2022 - 81
IEEE Robotics & Automation Magazine - June 2022 - 82
IEEE Robotics & Automation Magazine - June 2022 - 83
IEEE Robotics & Automation Magazine - June 2022 - 84
IEEE Robotics & Automation Magazine - June 2022 - 85
IEEE Robotics & Automation Magazine - June 2022 - 86
IEEE Robotics & Automation Magazine - June 2022 - 87
IEEE Robotics & Automation Magazine - June 2022 - 88
IEEE Robotics & Automation Magazine - June 2022 - 89
IEEE Robotics & Automation Magazine - June 2022 - 90
IEEE Robotics & Automation Magazine - June 2022 - 91
IEEE Robotics & Automation Magazine - June 2022 - 92
IEEE Robotics & Automation Magazine - June 2022 - 93
IEEE Robotics & Automation Magazine - June 2022 - 94
IEEE Robotics & Automation Magazine - June 2022 - 95
IEEE Robotics & Automation Magazine - June 2022 - 96
IEEE Robotics & Automation Magazine - June 2022 - 97
IEEE Robotics & Automation Magazine - June 2022 - 98
IEEE Robotics & Automation Magazine - June 2022 - 99
IEEE Robotics & Automation Magazine - June 2022 - 100
IEEE Robotics & Automation Magazine - June 2022 - 101
IEEE Robotics & Automation Magazine - June 2022 - 102
IEEE Robotics & Automation Magazine - June 2022 - 103
IEEE Robotics & Automation Magazine - June 2022 - 104
IEEE Robotics & Automation Magazine - June 2022 - Cover3
IEEE Robotics & Automation Magazine - June 2022 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com