ROS Client Library

1. ROS Client Library 简介

ROS 为机器人开发者们提供了不同语言的编程接口,比如 C++ 接口叫做 roscpp、Python 接口叫做 rospy、Java 接口叫做 rosjava。尽管语言不通,但这些接口都可以用来创建 topic、service、param,实现 ROS 的通信功能。Client Library 有点类似开发中的 Helper Class,把一些常用的基本功能做了封装。

ROS 支持的 Client Library 包括:

Client Library 介绍
roscpp ROS的C++库,是目前最广泛应用的ROS客户端库,执行效率高
rospy ROS的Python库,开发效率高,通常用在对运行时间没有太大要求的场合,例如配置、初始化等操作
rosnodejs Javascript客户端库

目前最常用的有 roscpp 和 rospy。从开发客户端库的角度看,一个客户端库,至少需要能够包括 master 注册、名称管理、消息收发等功能。这样才能给开发者提供对 ROS 通信架构进行配置的方法。

整个 ROS 包括的 packages 如下:
ROS Client Library

2. roscpp

roscpp 位于 /opt/ros/kinetic 之下,用 C++ 实现了 ROS 通信。在 ROS 中,C++ 的代码是通过 catkin 这个编译系统(扩展的CMake)来进行编译构建的。所以简单地理解,可以把 roscpp 当作一个 C++ 库,我们创建一个 CMake 工程,在其中 include 了 roscpp 等 ROS 的 libraries,这样就可以在工程中使用 ROS 提供的函数了。

通常我们要调用 ROS 的 C++ 接口,首先就需要 #include <ros/ros.h>