ROS有很详细大文档 http://wiki.ros.org/ROS/Tutorials,按照文档,按步骤学习即可。
ROS定义了进程间通信的方式,进程可以是在同一个机器上,也可以是分布式的。这非常便于搭积木 搭系统,但是,对于性能,要做真正产品,估计效率要再考虑。
这样,从不同到来源来的软件模块,可以方便的组合成一个机器人系统。
ROS把软件分成不同的package,里面可以有多个进程。一个模块放在一个package,模块实际功能大小,当然是你自己总体考虑。
模块之间的通信,是依靠消息,用户自己在一个txt(扩展名为msg)文件中,定义消息的类型。这样做的好处:
1. 通信完全和语言无关,所以可以轻松支持 C/C++,python;
2. 模块松耦合
ROS提供了工具,把msg文件,转换为 C/C++的头文件,你接着实现内容即可。
ROS提供了Package依赖的概念,使得A Package可以引用B Package的东西,如头文件定义。
消息的通信,用了两个机制:注册/Publis机制,client/server机制,这都是比较常见的方式。