Boost ROS中的订户错误

Boost ROS中的订户错误,boost,publish-subscribe,ros,Boost,Publish Subscribe,Ros,这是我的订户声明,后跟回调函数 message_filters::Subscriber<geometry_msgs::Point32> point_sub(*nh, "tracked_point", 1); point_sub.registerCallback(&visualservoing3D::pointCallback); 但是会弹出以下错误。我知道这和我的订户有关 /usr/include/boost/function/function_template.

这是我的订户声明,后跟回调函数

 message_filters::Subscriber<geometry_msgs::Point32>
point_sub(*nh, "tracked_point", 1);
    point_sub.registerCallback(&visualservoing3D::pointCallback);
但是会弹出以下错误。我知道这和我的订户有关

/usr/include/boost/function/function_template.hpp:225:
error: no match for call to
‘(boost::_mfi::mf1<void,
visualservoing3D, const
boost::shared_ptr<const
geometry_msgs::Point32_<std::allocator<void>
> >&>) (const boost::shared_ptr<const geometry_msgs::Point32_<std::allocator<void>
>&)’
/usr/include/boost/function/function_模板。hpp:225:
错误:对的调用不匹配
“(boost::mfi::mf1)(const boost::shared_ptr
您需要将非静态成员函数绑定到对象实例:

#include <boost/bind.hpp>

point_sub.registerCallback(boost::bind(&visualservoing3D::pointCallback, p_vs, _1));
#包括
point_sub.registerCallback(boost::bind(&visualservoing3D::pointCallback,p_vs,_1));

其中
p\u vs
是指向
visualservoing3D
对象的(共享)指针。如果需要/希望绑定到引用,请使用
boost::ref(vs)

此问题更适合于
point_sub.registerCallback(&visualservoing3D::pointCallback);
#include <boost/bind.hpp>

point_sub.registerCallback(boost::bind(&visualservoing3D::pointCallback, p_vs, _1));