Ask Your Question

Revision history [back]

Can you try if it works with 6 and 7 chanels? I suspect that boost::bind is just not implemented for so many parameters. Maybe you will have to implement your callback as a functor object manually, e.g. create the following nestet struct in your class S2 and use it as callback:

struct FilterFunctor {
  S2 *self_;
  const std::string &name_;

  FilterFunctor(S2 *self, const std::string &name) 
    : self_(self), name_(name) {}

  void operator()(const sensor_msgs::ImageConstPtr& original_image1, const sensor_msgs::ImageConstPtr& original_image2,
            const sensor_msgs::ImageConstPtr& original_image3, const sensor_msgs::ImageConstPtr& original_image4) {
    ...
  }
};