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_commanderPython 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.