Testbed Software

Our testbed systems all use the same software framework. At a high level, each has an external control computer, and a Raspberry Pi physically attached to the testbed.

  • Control Computer

    The control computer runs the ROS master node, as well as nodes for FlexBE (the state machine), data collection, and arm (manipulator) control.

  • Raspberry Pi

    The Raspberry Pi controls the physical actuators and collects data on the testbed itself. Reset operations are triggered by ROS action clients on the control computer.

Currently, the systems use ROS Melodic. Details about setting up each are outlined in the Initial Setup section.

Initial Setup

Control Computer

As ROS Melodic is not compatible with the latest versions of Ubuntu (and to enable easy setup across multiple devices), a Docker container is used. The Docker container is build from Ubuntu 18.04, and enables the control computer to be running newer versions of Ubuntu or other operating systems.

The infrastructure-packages repository provides setup instructions for the container, and includes all of the base modules (FlexBE, custom messages, visualization, etc.).

Raspberry Pi

The Raspberry Pi requires a Ubuntu 18.04 image with ROS Melodic. We provide one, as well instructions for flashing here.

Once the Raspberry Pi is booted up, we recommend updating packages with the following:

   sudo apt-get update && sudo apt-get upgrade

Now, follow the instructions in the infrastructure-raspi repository to finish setup on the Pi.

Arm/Manipulator Control

Our infrastructure-arms repository provides a template, as well as drivers and example code for the Kinova Gen 3 and Kinova JACO 2 arms. Instructions to use, or to modify for other manipulators is available in the repository’s README.