protobuf3+共享内存替换ros通讯简单尝试

博主环境:

OS:Ubuntu 16.04     ROS: Kinetic


Protobuf 简介

ProtoBuf是一种灵活高效的独立于语言平台的结构化数据表示方法,可用于表示通信协议和数据存储等各方面,与XML相比,ProtoBuF更小更快更简单。你可以用定义自己ProtoBuf的数据结构,用ProtoBuf编译器生成特定语言的源代码,(如C++,Java,Python等,目前ProtoBuf对主流的编程语言都提供了支持)方便的进行序列化和反序列化。


前期准备

为了对比通讯的实时性,本文将ROS中的odom话题作为实时数据流输入。

ros::init(argc, argv, "odom");

ros::NodeHandle n;

ros::Subscriber sub = n.subscribe("odom", 1000, odomCallback);

并在回调函数中进行打印输出:

ROS_INFO_STREAM("--------------------------------");
std::cout << msg->pose.pose.position.x << std::endl;
std::cout << msg->pose.pose.position.y << std::endl;
std::c
  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
ROS中,protobuf(简称proto)被用于定义和传输消息。如果你想在ROS中使用protobuf进行消息定义和传输,可以参考以下步骤: 1. 首先,你需要安装protobuf库。你可以通过运行以下命令来安装protobuf: ``` sudo apt-get install protobuf-compiler ``` 2. 接下来,你需要定义你的自定义proto消息。你可以创建一个`.proto`文件,并在其中定义你的消息结构。可以参考Apollo的代码仓库中的`ros/pb_msgs`目录下的代码示例。在这个目录下,你可以找到各种不同类型的ROS消息定义。 3. 一旦你定义了你的proto消息,你需要使用protobuf编译器将其编译成ROS可读取的代码。运行以下命令来编译proto文件: ``` protoc --proto_path=[proto文件所在目录 --cpp_out=[生成代码存放目录 [proto文件] ``` 其中,`--proto_path`参数指定proto文件所在的目录,`--cpp_out`参数指定生成代码的存放目录,`[proto文件]`是你的proto文件的路径。 4. 编译成功后,你会得到生成的代码文件。这些代码文件可以用于在你的ROS程序中使用自定义的proto消息。你可以在ROS节点中包含生成的头文件,并使用它们来定义和传输消息。 总结来说,如果你想在ROS中使用protobuf进行消息定义和传输,首先安装protobuf库,然后定义自己的proto消息,使用protobuf编译器将其编译成ROS可读取的代码,最后在你的ROS程序中使用生成的代码文件。通过这些步骤,你就可以使用protobuf在ROS中定义和传输消息了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值