日志和异常
log
ROS为开发者和用户提供了一套日志记录和输出系统。这套系统的实现方式是基于topic,也就是每个节点都会把一些日志信息发到一个统一的topic上去,这个topic就是/rosout。 rosout本身也是一个node,它专门负责进行日志的记录。我们在启动master的时候,系统就会附带启动rosout。
在roscpp中进行日志的输出,需要先引用include <ros/console.h>
,这个头文件包括了五个级别的日志输出接口,分别是:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
用法非常简单:
ROS_DEBUG("The velocity is %f", vel);
ROS_WARN("Warn: the use is deprecated.");
ROS_FATAL("Cannot start this node.");
...
当然也可以在一些特定场景,特定条件下输出,不过对于普通开发者来说可能用不到这么复杂的功能。
具体可参考:http://wiki.ros.org/roscpp/Overview/Logging
Exception
roscpp中有两种异常类型,当有以下两种错误时,就会抛出异常:
ros::InvalidNodeNameException
当无效的节点名称传给ros::init(),通常是名称中有/,就会触发ros::InvalidNameExcaption
当无效名称传给了roscpp