Mapping between ROS interface types and DDS IDL types

With the transition to use IDL for specifying interfaces in ROS 2 Dashing this article has been superseded by the mapping described in the Interface definition using .msg / .srv / .action files article.

This article specifies the mapping between the ROS interface types and the DDS types.

Authors: Dirk Thomas

Date Written: 2015-06

Last Modified: 2020-02


This article specifies the mapping between ROS interface types defined in the interface definition article and DDS types defined in the Interface Definition Language.

Mapping of primitive types

ROS type DDS type
bool boolean
byte octet
char char
float32 float
float64 double
int8 octet
uint8 octet
int16 short
uint16 unsigned short
int32 long
uint32 unsigned long
int64 long long
uint64 unsigned long long
string string

Mapping of arrays and bounded strings

ROS type DDS type
static array T[N]
unbounded dynamic array sequence
bounded dynamic array sequence<T, N>
bounded string string