Installation

The packages support recent versions of ROS1 (melodic, noetic) and ROS2 (foxy, galactic, humble).

ROS-VERSION

ROS-ASEBA-BRANCH

ROS-THYMIO-BRANCH

melodic

ros1

melodic

noetic

ros1

noetic

foxy

ros2

master

galactic

ros2

master

humble

ros2

master

The functionality of ROS-Aseba and ROS-Thymio are the same for all supported ROS versions. You don’t know which ROS version to use? Pick the one that works with your OS (look at the targeted platforms for ROS 1 and ROS 2). Consider that ROS1 will reach end-of-live in 2025, and that noetic will be the last official ROS1 release. If you still have a doubt, go for ROS2: humble is the current long-term-release (2022–2027).

Note

ROS-Aseba is using Aseba version 1.6 from the aseba-community repository that implements Aseba protocol version 5. Aseba is also actively developed in the Mobsya repository. Mobsya development specifically targets the Thymio robot and has extended the Aseba protocol. Currently, and for the foreseeable future, Mobsya’s Aseba protocol will remain compatible with Aseba 1.6; therefore Thymios running the newest firmware by Mobsya can be used with ROS-Aseba, provided that the parameter highest_acceptable_protocol_version is set to the correct value.

Supported Operating Systems

ROS-Aseba can be installed on Linux, macOS, and Windows because they are all supported by ROS and Aseba.

Linux

Ubuntu is the reference platform for ROS1 and ROS2; ROS can be installed very easily using package managers (ROS1, ROS2).

macOS

macOS is not officially supported in ROS1 and has currently only Tier 3 support in ROS2. For most users, installing ROS on macOS requires building it from source and possibly tinkering a bit. Therefore, we only suggest using ROS natively on macOS to expert users. We suggest non-expert macOS users to run ROS in an Ubuntu virtual machine or through docker.

Windows

Windows support increased from ROS1 to ROS2 but for both versions you can install pre-built packages using Chocolately. In particular, we suggest to follow installation instructions from Microsoft.

Below we refer to the Linux installation. Windows instructions follows the links above to install ROS and then only differ by the way you source the workspace

source <installation_directory>/setup.bash

In particular, catkin, colcon and ros commands are the same for any operating system. In Windows and macOS, we suggest to add the option --merge-install to the colcon build commands.

ROS

Before installing ROS-Aseba and ROS-Thymio, you need to setup ROS on your machine. Please refer to the official instructions to install at least ROS-Base distribution (we recommend ROS-Desktop to also install the GUI tools) of your version of choice, which on Linux Ubuntu may just require you to run

sudo apt install ros-<ROS-VERSION>-ros-desktop

For ROS1, to follow the instructions below, install also catkin-tools.

For ROS2, install colcon:

sudo apt install python3-colcon-common-extensions

If you don’t already have one, create a ROS workspace in a folder <WORKSPACE> of you choice.

mkdir -p <WORKSPACE>/src
cd <WORKSPACE>
source /opt/ros/<ROS-VERSION>/setup.bash
catkin init
// This is optional: it will install packages instead of
// just linking them in the develop folder.
// This is the same behavior as ROS2 using colcon.
catkin config --install

ROS-Aseba

  1. Install libudev-dev, libxml2-dev, git and ros-<ROS-VERSION>-diagnostic-updater

sudo apt install libudev-dev libxml2-dev git ros-<ROS-VERSION>-diagnostic-updater

Note

The installation diagnostic-updater is optional. If it available, asebaros will use it to expose diagnostics informations at runtime. If diagnostic-updater is not available through a package manager (e.g., on Windows), you can install it from source, cloning the correspoding branch (for ROS1 use noetic-devel) of the repository https://github.com/ros/diagnostics

cd <WORKSPACE>
git clone https://github.com/ros/diagnostics --branch <BRANCH> src/diagnostics
  1. Download and install ROS-Aseba

cd <WORKSPACE>
source install/setup.bash
git clone https://github.com/jeguzzi/ros-aseba.git --branch ros1 --recurse-submodules src/ros-aseba
catkin build
  1. On Linux, you may need to add the user to the dialout group to connect to a Thymio (and logout once after doing it)

sudo adduser $USER dialout

ROS-Thymio

  1. Install ros-<ROS-VERSION>-xacro, ros-<ROS-VERSION>-tf, ros-<ROS-VERSION>-robot-state-publisher

sudo apt install ros-<ROS-VERSION>-xacro ros-<ROS-VERSION>-tf ros-<ROS-VERSION>-robot-state-publisher
  1. Download and install ROS-Thymio

cd <WORKSPACE>
source install/setup.bash
git clone https://github.com/jeguzzi/ros-thymio.git --branch <ROS-THYMIO-BRANCH> --recurse-submodules src/ros-thymio
catkin build