---
title: Getting started with ROS 2 in Tactigon SHAPE
description: Explore ROS 2 communication in Tactigon SHAPE. Learn how nodes exchange messages through topics, then publish a text message and inspect it from the Docker container.
url: "https://thetactigon.com/docs/ros-2-shape-getting-started/"
updated: "2026-11-05"
category: ROS2
---

# Getting started with ROS 2 in Tactigon SHAPE

Connect visual programming to ROS 2 with Tactigon SHAPE. This guide introduces the communication concepts used in robotic applications and walks you through a first check: publishing a text message from SHAPE and reading it in a terminal.

The goal is to understand the path from a visual block to a ROS 2 topic before moving on to more advanced integrations.

## What is ROS 2?

ROS 2 provides libraries and tools for building robotic software. It runs on top of a host operating system and helps different software components exchange information.

For example, a camera component can produce data that another component uses to make decisions. ROS 2 provides communication mechanisms for connecting those responsibilities.

### Nodes, topics and messages

Three concepts are useful for this first example:

| Concept | Meaning |
| --- | --- |
| **Node** | A software component responsible for a task |
| **Topic** | A named communication channel |
| **Message** | The typed data exchanged through a topic |

A publisher sends messages to a topic. A subscriber receives messages from that topic. In the example below, SHAPE publishes text to `/test`, while a terminal command subscribes to that topic.

![](https://thetactigon.com/wp-content/uploads/2026/10/image-2.png)
A publisher sends a message through a topic to a subscriber.

## How SHAPE uses Vulcanexus

The documented SHAPE environment uses **Vulcanexus**, a ROS 2 distribution from eProsima that includes Fast DDS and development tools.

This guide follows the Docker route. The terminal commands use the documented **Jazzy** environment.

## Before you begin

Complete **[Install](https://thetactigon.com/docs/install-shape-docker/) SHAPE with Docker**, start the application and open its interface.

If you are unfamiliar with the visual editor, follow [Create your first Shape](https://thetactigon.com/docs/create-your-first-shape/) before continuing.

You will work in two places: the SHAPE editor to publish the message, and a terminal to inspect it.

## 1. Prepare the publishing blocks

Use the configuration shown in the example screenshot:

- Place the **Publish message** block inside **Loop**.
- Select a **String** message.
- Enter `Hello World!` as its content.
- Set the topic to `/test`.

Save your Shape. You will run it after preparing the subscriber.

The topic name identifies the channel; the String message carries the text. Keep the topic consistent between the visual block and the terminal command.

![SHAPE blocks publishing the String message Hello World! on /test inside a Loop block.](https://thetactigon.com/wp-content/uploads/2026/10/shape-ros-2-publish-block.webp)
Configure the Publish message block to send Hello World! on /test.

## 2. Enter the Docker container

Open a terminal on the computer running SHAPE:

```
docker exec -it tactigon-shapes bash
```

This opens a shell inside the running application container.

## 3. Activate the ROS 2 environment

Inside the container, run:

```
source /opt/vulcanexus/jazzy/setup.bash
```

For this String example, continue to the next step. Custom message packages, such as those used by camera tracking, require additional build and environment setup.

## 4. Listen to the topic

Run:

```
ros2 topic echo /test
```

Then return to SHAPE and run the saved project.

## Check the result

The terminal should display the messages published on `/test`, including the text `Hello World!`.

This gives you a direct way to inspect the data sent by your visual program.

## Next step

Continue to **ROS 2 blocks in Tactigon SHAPE** to explore publishing, subscription and discovery blocks in more detail.

For the underlying technical reference, see the [official ROS 2 integration documentation](https://github.com/TactigonTeam/Tactigon-Shape/wiki/ros-2-robot-operating-system?utm_source=chatgpt.com).
