没有消息类型的ROS cpp回调



我想创建一个ROS节点,它能够在不知道消息类型的情况下侦听主题。在python中,这是可能的,如下所示:

https://schulz-m.github.io/2016/07/18/rospy-subscribe-to-any-msg-type/

我试过了,效果很好。然而,我想避免复制整个信息;因此,我需要在roscpp nodelet中提供该功能。

从本质上讲,这类问题非常棘手,在c++中解决起来要困难得多。话虽如此,但已经有了一种(某种(解决方案。查看ros_msg_parser。

语法不太好,我甚至不确定这是否是个好主意,但它可以让你生成通用订阅者。关联回购的例子:

boost::function<void(const RosMsgParser::ShapeShifter::ConstPtr&)> callback;
callback = [&parsers, topic_name](const RosMsgParser::ShapeShifter::ConstPtr& msg) -> void {
topicCallback(*msg, topic_name, parsers);
};
ros::Subscriber subscriber = nh.subscribe(topic_name, 10, callback);

最新更新