Skip to content

Setting up an IDE

The recommended way to develop for Hainer or Kangaroo is via a VS Code Dev Container backed by an IAS-maintained Docker image. This gives you a consistent ROS environment on any machine without touching the host system.

All images and the devcontainer template live in the dockers GitLab repository.


Images

Robot Image
Talos registry.git.ias.informatik.tu-darmstadt.de/talos/tu_darmstadt/humanoids/dockers/talos:7-dev-ias
Kangaroo registry.git.ias.informatik.tu-darmstadt.de/talos/tu_darmstadt/humanoids/dockers/kangaroo:5-dev-ias

The Talos image extends the PAL base with:

  • glibc ≥ 2.28 — required by VS Code Server (Ubuntu 18.04 ships 2.27)
  • MoveIt trajectory timing patch — prevents spurious timeouts when using WBC
  • moveit_commander Python package — not included in the PAL apt repository

The Kangaroo image adds the glibc upgrade only.

Images are rebuilt and pushed automatically by GitLab CI on every push to the main branch of the dockers repo.


One-time host setup

Run once on any machine you'll develop from:

git clone https://git.ias.informatik.tu-darmstadt.de/talos/tu_darmstadt/humanoids/dockers.git
cd dockers
bash setup-host.sh

This installs the NVIDIA Container Toolkit (needed for GPU access in Gazebo/RViz) and logs you in to the IAS container registry.


Setting up a project

1. Copy the devcontainer template

cp -r dockers/.devcontainer/ your_project/

2. Edit devcontainer.json

Set "image" to the correct robot image and replace YOUR_PACKAGE in workspaceMount:

"image": "registry.git.ias.informatik.tu-darmstadt.de/talos/tu_darmstadt/humanoids/dockers/talos:7-dev-ias",
"workspaceMount": "source=${localWorkspaceFolder},target=/catkin_ws/src/YOUR_PACKAGE,type=bind,consistency=cached"

3. Select robot or simulation mode

The container sources .devcontainer/ros_active.env in every terminal. Create a symlink to choose:

cd your_project/.devcontainer

# Simulation (roscore inside the container)
ln -s ros_sim.env ros_active.env

# Real robot (roscore on talos-7c)
ln -sf ros_robot.env ros_active.env

This file is git-ignored so each developer keeps their own local setting.

4. Open in VS Code

Ctrl+Shift+P → Dev Containers: Reopen in Container


Switching between robot and simulation

You can re-link ros_active.env at any time without rebuilding the container — just open a new terminal inside VS Code for the change to take effect.

Mode ROS_MASTER_URI
Simulation http://localhost:11311
Talos (real) http://talos-7c:11311

When connecting to the real robot, also set ROS_IP to your machine's IP on the robot network (preconfigured in ros_robot.env).


Building the images locally (maintainers)

cd dockers
docker build -t talos:7-dev-ias    talos/
docker build -t kangaroo:5-dev-ias kangaroo/

See the dockers repository README for full build and push instructions.