ROS编程: 一些Tips
接触了快一年的ROS, 这段时间个人而言, 似乎完全没在日常的编程中对线程/IPC有所考虑.
这说明ROS是一个很易用的框架, 在编程上了屏蔽了很多系统知识, 可以更加专注于逻辑/算法等.
但是从程序员的角度, 其实还是蛮不安的, 需要了解其背后的机制.
1. 背景
ROS就不再介绍了, 网上有非常多的文档, 我们主要关注下ROS内部的一些行为.
下图是我之前画的ROS内部线程视角的时序图, 看看能不能帮助理解:
一个ROS节点起来后, 主要是有5个线程:
main
- main函数运行的线程
pollmanager
- io运行的线程, 主要是收发topic, 然后把数据queue后待callback消费
xmlrpcmanager
- 处理service连接的线程
internalcallbackqueue
- 调用内部callback的线程
roso
