Getting Started: Introduction | Concepts | Higher-Level Concepts | Client Libraries | Technical Overview

ROS Client Libraries: roscpp | rospy | roslisp | roscs | roseus | rosgo | rosjava | roslua | rosR | rosruby


A ROS client library is a collection of code that eases the job of the ROS programmer. It takes many of the ROS concepts and makes them accessible via code. In general, these libraries let you write ROS nodes, publish and subscribe to topics, write and call services, and use the Parameter Server. Such a library can be implemented in any programming language, though the current focus is on providing robust C++ and Python support.

Main client libraries

  • roscpp : roscpp is a C++ client library for ROS. It is the most widely used ROS client library and is designed to be the high performance library for ROS.

  • rospy: rospy is the pure Python client library for ROS and is designed to provide the advantages of an object-oriented scripting language to ROS. The design of rospy favors implementation speed (i.e. developer time) over runtime performance so that algorithms can be quickly prototyped and tested within ROS. It is also ideal for non-critical-path code, such as configuration and initialization code. Many of the ROS tools are written in rospy to take advantage of the type introspection capabilities. The ROS Master, roslaunch, and other ros tools are developed in rospy, so Python is a core dependency of ROS.

  • roslisp: roslisp is a client library for LISP and is currently being used for the development of planning libraries. It supports both standalone node creation and interactive use in a running ROS system.

Experimental client libraries

See also: Implementing Client Libraries


Technical Overview

Wiki: Client Libraries (last edited 2020-12-17 17:26:56 by GeorgeStavrinos)