我正在与ROS合作,我的任务是将现有项目从ros1迁移到ros2。在ros1流函数中,例如
ROS_INFO_STREAM(String << variable << ...)
存在但不存在于ros2中,因为它们尚未在rclcpp中实现。我的想法是用c ++编写一个可与这些运算符一起使用的函数,其功能类似于std :: cout。但是我真的不知道如何实现这样的功能。
有人有想法或方法吗?
解决方案: 一种可能的解决方案是定义这样的宏
#define ROS_INFO_STREAM(logger, _msgStream) std::stringstream stream_buffer; stream_buffer << _msgStream; ROS_INFO(logger, stream_buffer.str().c_str());
放在单独的头文件中,并在需要的地方包括它。