NodeHandles and Initialization
1. 节点句柄2. 初始化3. 自定义硬件对象
rosserial概述官网链接
1. 节点句柄
rosserial_arduino允许您轻松地将Arduino或其他串行设备连接到ROS runtime graph。
所有节点初始化和通信都通过节点句柄(NodeHandle)处理。
在setup()函数之前创建NodeHandle非常简单:
ros
::NodeHandle nh
;
2. 初始化
您可能在Arduino setup()函数中执行的第一个调用就是调用initNode(),它会初始化ROS节点。
请注意,在一个rosserial设备中只能有一个节点,因此只能调用一次initNode()。
以下示例显示了如何初始化节点并处理loop()函数内的串行数据的完整示例:
#include <ros.h>
ros
::NodeHandle nh
;
void setup()
{
nh
.initNode();
}
void loop()
{
nh
.spinOnce();
}
3. 自定义硬件对象
rosserial_client库实际上并不直接提供NodeHandle对象。 相反,它提供:
ros
::NodeHandle_
<HardwareType
, MAX_PUBLISHERS
=25, MAX_SUBSCRIBERS
=25,
IN_BUFFER_SIZE
=512, OUT_BUFFER_SIZE
=512> nh
;