现象
定义了set_camera_info这个服务,却不能在运行的时候提供,运行rosservice list也不能看到,rviz里打开camera类数据也无法看到,image类数据可以看到图像。
定义方式如下
//SetCameraInfoSrv已经在类中声明
SetCameraInfoSrv = nh.advertiseService("/camera_name/set_camera_info",$setCameraInfo,this);
原因
类的运行函数内定义的服务未起作用
做法
ros::ServiceServer SetCameraInfoSrv = nh.advertiseService("/camera_name/set_camera_info",setCameraInfo);
直接在node.cpp文件中定义,完美解决。
推测
可能在构造函数中定义服务会有效果。