前面的几篇文章我们简单介绍了ROS的一些基本操作和数据获取的实现。下面,我们将更深入地研究ROS的数据传递,因为这关系到能不能真正把ROS用于实际的工程项目中。
如果工程只用ROS搭建,那么是不需要用到命题所说的LCM的。但如果ROS只是整体系统的一部分,则需要利用内存共享或者网络传输等方式与其他程序进行数据交互,这时候LCM就是一种比较简单的选择(如果不清楚什么是LCM,可以参考这篇文章)。
下面,我们将逐步介绍如何在ROS系统中使用LCM。
联系前面,我们已经知道ROS归根结底是一个多进程的管理工具,因此我们可以把上面的工作分成两步。
第一步:在Ubuntu下把LCM搭建起来,可以直接发送和接收数据。
第二步:把上面做完的用LCM发送和接收的代码移植到ROS中。
下面我们来做第一步(这里只用C++实现,其他版本类似):
先安装编译LCM会用到的依赖项:
sudo apt-get install build-essential autoconf automake autopoint libglib2.0-dev