rospy与roscpp
rospy包含的功能与roscpp相似,都有关于node、topic、service、param、time相关的操作。但同时rospy和roscpp也有一些区别:
(1)rospy没有一个NodeHandle,像创建publisher、subscriber等操作都被直接封装成了rospy中的函数或类,调用起来简单直观。
(2)rospy一些接口的命名和roscpp不一致,有些地方需要开发者注意,避免调用错误。
相比于C++的开发,用Python来写ROS程序开发效率大大提高,诸如显示、类型转换等细节不再需要我们注意,节省时间。 但Python的执行效率较低,同样一个功能用Python运行的耗时会高于C++。因此我们开发SLAM、路径规划、机器视觉等方面的算法时,往往优先选择C++。ROS中绝大多数基本指令, 例如 rostopic , roslaunch 都是用python开发的, 简单轻巧。
rospy中的API
具体API请查看http://docs.ros.org/api/rospy/html/rospy-module.html。
Node
Topic
函数:
Publisher类:
Subscriber类:
Service
函数:
Service类(server):
ServiceProxy类(client):
Param
函数:
时钟
函数:
Time类:
Duration类: