The auKsys project provides up-to-date docker images at docker hub, with ROS and non-ROS variant. We also provide with a tool for conveniently run docker images.

With auksys command (recommended)

Installation

The auksys tool is implemented in Rust, most recent linux distribution provides it as a package, if not available check the official installation page.

On Ubuntu 24.04:

sudo apt install rustup
rustup default stable

After installation of rustup, the auksys command can be installed with:

cargo install auksys

Usage

Documentation is provided as part of the command line interface:

auksys -h

ROS Node

The start command is used to start a docker image. For instance to start a ROS node:

auksys start kdb/ros --name uav0

The name will be used as the ROS namespace. If no distribution is specified on the command line, auksys will attempt to guess the best distribution, depending on the ROS_DISTRO variable or will default to stable.

Standalone kDB Store

A standalone store can be started with the following command:

start kdb/store --distribution dev/5 --web

It will start it with a web interface available on http://localhost:8888 . The flag --mqtt can also be used to start the store with a MQTT interface:

start kdb/store --distribution dev/5 --mqtt

Note the kdb/store option is available for stable and dev/4 but with much more limited features.

As regular docker

Images

Here are the following images depending on the version of the auKsys distributions:

  stable dev/4 dev/5
non-ros auksys/auksys auksys/auksys:dev-4 auksys/auksys:dev-5
ros auksys/ros_auksys auksys/ros_auksys:dev-4 auksys/ros_auksys:dev-5

Running the images require setting some environment variables, which are not fully documented. It is highly advise to use the auksys tool to generate command lines to access that information, for instance, the following command will display the docker line used to start the ros_kdb node:

auksys start kdb/ros --name uav0 --echo-cmd

In particular, the images use the following environment variable:

  • HOST_UID and HOST_GID they should match the current user uid, so that mounted volume in the docker images can be read and write.