service和srv
我们有一个节点A会计算出右臂逆向关节运动学坐标,我们有一个节点B,不会经常用到,但是偶尔会用到节点A的这个坐标。
假设我们用主题来通信,那么我们的节点A要不停的来发布消息,节点B也要不停的去接收订阅,这会耗费大量的资源。如果中间加上一个检测是否要使用的节点,在程序编写上也会增加大量工作。所以,我们会使用另外一种通信方式Service来解决这一问题。
远程过程调用RPC和本地函数相对应。一个节点调用另一个节点的函数。srv 是服务的数据类型。srv 文件里面只能嵌套msg文件。
tf&urdf
机器人理论课程有坐标转换,我们的ROS框架下也有tf,他的含义更广泛,他可以是坐标转换的标准,可以是一个package,可以是一个接口。
tf tree
link和frame是绑定在一起的,我们整个tf树都应该是连通的。一个完整的连通图一定有不间断的消息在发送。
tf 消息
TransformStamped.msg 是两个frame之间一小段的数据格式。