We’ve just dropped one of the biggest releases of mamba (the fast conda package manager)— along with some nice improvements in libsolv!

This is a quick update on some new and improved features in mamba 0.15.0. The full changelog can be found here.

RViz, installed from a conda package, running on Linux (Fedora 33), Windows and OS X

2020 has been a busy year for the RoboStack project: we collaboratively published ros-noetic on four platforms (Windows, macOS, Linux x64 and ARM64) and revamped how ROS packages can be released on conda! We now maintain a stack of fully-integrated automatic builds that can be used to release packages for any ROS distribution. This allowed us to release experimental packages for ros-foxy without major changes in the build process.

TL;DR: If you are excited about being able to use ROS within a conda environment, it is now as simple as conda create -n ros ros-noetic-desktop -conda-forge -c robostack && conda…

The Python ecosystem is lacking a library with useful geometric types — we aim to fix this by introducing scikit-geometry. This new library implements the basic types like Point, Line, Ray and Polygon, and contains functions to compute geometric properties such as intersections, dilations, inner skeletons etc.

As a robotics researcher (but also in many other fields) computations on geometric primitives are used very frequently— but it’s harder than anticipated to find the right abstractions in a nice Python library. The C++ ecosystem has a very mature library that implements the basic geometric types very nicely: the Computational Geometry Algorithms Library. scikit-geometry is a Python library that has nice wrappers around many of the CGAL types, thanks to the awesome pybind11.

The repository can be found on GitHub https://github.com/scikit-geometry/scikit-geometry and the docs are here: http://scikit-geometry.github.io/scikit-geometry/

Some of the basic types are:

QuantStack’s 2019 in Review

Another year has passed at QuantStack— let’s look at what we have achieved! We’ve spent an awesome year working on a ton of open source projects: C++ libraries for array computing and low-level SIMD accelerators, JavaScript libraries and Jupyter widgets for scientific data visualization and finally a visual debugger for JupyterLab!

The JupyterLab Debugger, xeus and xeus-python

This post shows the available tools in the Jupyter ecosystem to build advanced visualizations in Jupyter Notebooks and standalone web apps using Voilà, and how to deploy those apps to the robotics cloud.

Jupyter and Voilà are two popular packages in the data science ecosystem. But the Jupyter plugins jupyter-ros and jupyter-amphion make them more interesting than ever for robotics applications. This blog post shows how to use them and how to create your first cloud-deployed application using rapyuta.io, the robotics cloud.

Creating a interactive Jupyter Notebook

Using Jupyter and Jupyter widgets, we can easily create a widget to display and control a robot. …

Historically, distributions of the Robot Operating Systems (ROS) have been closely tied to an underlying Ubuntu distribution. With the first release of ROS on conda, the cross-platform package manager, we hope to alleviate this restriction and make ROS easily available to anyone — independent of Windows, OS X or any specific Linux distribution.

ROS on conda-forge (robot drawing by https://www.flaticon.com/authors/freepik)

Update 2021! We’ve been working hard on the RoboStack distribution and the conda-forge ROS packages are now deprecated. Please check out our new blog post for all the ROS Noetic packages: https://medium.com/robostack/cross-platform-conda-packages-for-ros-fa1974fd1de3

ROS is a fantastic and very large suite of software tools for Robotics. It’s used in many applications and with great success, ranging from the hobbyist market to industrial use cases. Most people these days use ROS on Ubuntu, which is a popular choice and works very well — as long as you don’t have a good reason to use another operating system. Then it’s often necessary to…

It’s been a while since we’ve communicated on what’s new in mamba-land. Mamba is still fast, supports more of conda’s operations and has grown a much more stable backend with changes made to libsolv.

Speeding up the snake! (Image credits kubanek & Mozilla fxemoji)

What is mamba

Mamba is a drop-in replacement for conda, the awesome cross-platform package manager. In our opinion, conda has one tiny problem: it’s too slow when many packages are installed, or when installing multiple packages at the same time. Mamba still uses conda for almost everything, except for the dependency resolution part. We swapped out the conda solver for a different implementation called libsolv, a C library that already powers package managers on Linux systems such as Fedora’s dnf or OpenSuse’s zypper.

The command line interface, the environment handling, the package file format, installation process, the repodata format and everything else is…

At QuantStack we strive to write high-performance open source software, such as xtensor and xsimd. A key component of modern software development is continuous integration testing. There is an abundance of free CI services (Travis, AppVeyor, Azure…), but running benchmarks continuously is more complicated — that’s why we built our own cheap open source solution on top of Concourse and OpenStack.

Concourse is a continuous integration software, and we use it for two purposes: multi-project continuous integration, and continuous benchmarking. It’s easy to setup on a low cost server, using docker-compose. One can, for example, run it on the cheapest OVH server, that costs around 3 Euro a month — but you can run it on any cheap server that you have root access to.

Each job in Concourse runs in it’s own docker environment, on the same server (since we have gone the easy way and run the Concourse “worker” on the same server and start it with the same…

Project Jupyter is a huge hit in data science, but it has not yet found widespread adoption in robotics. Today, we are releasing the first version of jupyter-ros, a collection of Jupyter interactive widgets inspired by Qt and RViz, to bring their features to the Jupyter ecosystem. This may be the right time for Jupyter-based developer tools, as cloud robotics is taking off.

This may be the right time for Jupyter-based developer tools, as cloud robotics is taking off.A PR2 robot in the browser, and making him dance through the traditional Qt interface

Historically, the ROS (Robot Operating System) community has relied on Qt for building complex user interfaces. Nowadays, the Jupyter notebook and the ipywidgets framework offer a compelling alternative for several reasons:

Explaining how we’ve created the mamba prototype, a solver for conda environments that is hopefully fast enough to support a conda-forge with hundreds of thousands of packages.

You might have seen the announcement on Twitter: at QuantStack we’ve been working on making a prototype of a conda-compatible package manager called mamba. Conda is a great tool to distribute data science packages. The community-led conda-forge comprises tons of awesome packages. The Anaconda company supplies us with recent and well integrated compilers. And conda-build is simply amazing to build binaries across different platforms (Windows, Linux and OS X). At QuantStack we use conda all the time to package Python, C++, Julia and R packages, and ship them to clients around the world.

However, due to the growth of conda-forge…

Wolf Vollprecht

I work as a scientific and robotics software developer for QuantStack in Paris and Berlin. We do Open Source for a living!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store