Build Instructions

Important

If you intend to use this interface to control your own robot, this package (and its dependencies) is enough, and you can follow the instructions below.

However, if you are looking for the interface of the TriFinger robot, see the installation instructions in the TriFinger documentation instead (this includes robot_interfaces and the TriFinger-specific packages).

Dependencies

We are using colcon as build tool and typically use ros2 run to execute our applications. While we are not really depending on any ROS packages, this means a basic ROS 2 installation is recommended.

We are testing on Ubuntu 20.04 with ROS Foxy. Other versions may work as well but are not officially supported.

Note

We provide a Singularity image with all dependencies for the TriFinger robot which also covers everything needed for robot_interfaces. See the documentation of the TriFinger documentation for more information.

Get the Source

robot_interfaces depends on several other of our packages which are organized in separate repositories. We therefore use the management tool treep which allows easy cloning of multi-repository projects.

treep can be installed via pip:

pip install treep

Clone the treep configuration containing the “ROBOT_INTERFACES” project:

git clone git@github.com:machines-in-motion/treep_machines_in_motion.git

Note

treep searches for a configuration directory from the current working directory upwards. So you can use treep in the directory in which you invoked the git clone command above or any subdirectory.

Now clone the project:

treep --clone ROBOT_INTERFACES

Important

treep uses SSH to clone from github. So for the above command to work, you need a github account with a registered SSH key. Further this key needs to work without asking for a password everytime. To achieve this, run

ssh-add

first.

You should now have the following directory structure:

├── treep_machines_in_motion
└── workspace
    └── src
        ├── googletest
        ├── mpi_cmake_modules
        ├── package_template
        ├── pybind11
        ├── real_time_tools
        ├── robot_interfaces
        ├── serialization_utils
        ├── shared_memory
        ├── signal_handler
        ├── time_series
        └── yaml_utils

Build

To build, cd into the workspace directory and call

colcon build

to build the whole workspace.