zoukankan      html  css  js  c++  java
  • LCM 轻量级通信组件

    1. LCM和ZMQ比较

       

      http://www.doc88.com/p-6711552253536.html 基于LCM和ZeroMQ的进程间通信研究

    2、简介

    LCM(Lightweight Commuciation and Marshalling) 它是作为消息传递和封装的通信库,其首要任务是简化低时延消息传递系统的开发。目前广泛应用于无人驾驶汽车领域。

    其通信效率比基于TCP的ros库里面的效率要高,和IPC( Inter-Process Communication 系统自带的进程间通信)相比,也要高一些。

    3、个人理解

    此LCM可以理解为ROS里面的一个通信机制,ROS里面也有Package的概念,然后ros_make 之后,也会出现很多的头文件,然后我们通过ROS_RUN调用ros里面的库,进行publish 和 subcrible(订阅和请求)。

    而在LCM里面,其实原理是一样的,由LCM里面的LCM_GEN小程序编译生成头文件,然后把这些头文件放到目录当中,我们在编写程序的时候,引入LCM第三方库,LCM里面有自己的publish和subcrible等。

     

     

    配置步骤如下:

    1. 查看readme

      在拿到第三方开源库之前,我们首先先查看README 文档,查看如何使用此开源代码。

       

     

    1. 打开文档,根据系统要求进行编译

    2. 我们目前是Ubuntu 系统,编译需要的依赖库如下。

       

       

      4、如果想查看详细信息,可参考文件INSTALL

       

       

       

      1. 安装后的路径如下:

       

      1. 实例代码

       

      1. 选用IDE为codeblocks

         

        下载后直接安装即可。

      2. 配置完编译

        一直出错,未定义的引用 lcm_create()等。

        原因:codeblocks不能加载环境变量,即使我们已经用ldconfig 命令进行配置完依然是这样的。

        解决方案:配置库和头文件(在ros里面有此IDE也是需要配置的)

      3. 然后编译即可进行调试。

         

        我们可以再建立一个subcribe的工程实例,然后在通过IDE里面同时运行多个实例。参考资料:http://blog.csdn.net/clever101/article/details/7299670

  • 相关阅读:
    Kubernetes Admission
    kops文章
    eks文章
    AWS CloudFormation
    AWS Secrets Manager
    如何在C# WinForm 程序中使用WebBrowser控件时设置COOKIE的值。
    Windows Server 2008 服务器核心(Serve Core)实战2
    让IIS支持WAP站点。
    C#中的委托,匿名方法和Lambda表达式(转载)
    数据库状态回复指令。
  • 原文地址:https://www.cnblogs.com/zhuxuekui/p/6228947.html
Copyright © 2011-2022 走看看