定义IDL数据类型及和ros2 msg的关系
3. 对于同一个.idl文件中定义的多个struct来说,需要根据ros2数据规则,定义多个.msg文件才可被ros2识别.1. ros2 为了兼容ros1, 只适配IDL中数据类型的子集,不支持enum及map数据类型,可用其他形式代替。2. 对于IDL的map类型来说,目前还只支持基本数据,暂不支持自定义类型。
·
1. ros2 为了兼容ros1, 只适配IDL中数据类型的子集,不支持enum及map数据类型,可用其他形式代替。
如对于IDL的枚举 enum,定义为如下形式可被ros2识别:
module Color_Enum
{
const uint8 COLOR_BLUE = 0;
const uint8 COLOR_RED = 1;
const uint8 COLOR_BLACK = 2;
};
uint8 color;
对于map数据类型,可替换为:
struct map_demo
{
uint32 key;
string value;
}
struct Frame_map
{
sequence<map_demo> frame_map;
};
2. 对于IDL的map类型来说,目前还只支持基本数据,暂不支持自定义类型Maps should support non-primitive types [13386] · Issue #83 · eProsima/Fast-DDS-Gen · GitHub
3. 对于同一个.idl文件中定义的多个struct来说,需要根据ros2数据规则,定义多个.msg文件才可被ros2识别.
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)