@@ -27,10 +27,11 @@ WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
27
27
***************************************************************************************/
28
28
#include < k2_client/k2_client.h>
29
29
30
- int imageSize = 6220800 ;
30
+ int imageSize = 8294400 ;
31
31
int streamSize = imageSize + sizeof (double );
32
32
std::string cameraName = " rgb" ;
33
33
std::string imageTopicSubName = " image_color" ;
34
+ std::string cameraInfoSubName = " camera_info" ;
34
35
std::string cameraFrame = " " ;
35
36
36
37
int main (int argC,char **argV)
@@ -40,35 +41,33 @@ int main(int argC,char **argV)
40
41
image_transport::ImageTransport imT (n);
41
42
std::string serverAddress;
42
43
n.getParam (" /serverNameOrIP" ,serverAddress);
43
- n.getParam (ros::this_node::getNamespace ().substr (1 ,std::string::npos) +
44
- " /rgb_frame" , cameraFrame);
44
+ n.getParam (ros::this_node::getNamespace ().substr (1 ,std::string::npos) + " /rgb_frame" , cameraFrame);
45
45
Socket mySocket (serverAddress.c_str (),const_cast <char *>(" 9000" ),streamSize);
46
- image_transport::CameraPublisher cameraPublisher = imT.advertiseCamera (
47
- imageTopicSubName, 1 );
46
+ image_transport::Publisher imagePublisher = imT.advertise (imageTopicSubName, 1 );
47
+ ros::Publisher cameraInfoPub = n. advertise <sensor_msgs::CameraInfo>(cameraInfoSubName, 1 );
48
48
camera_info_manager::CameraInfoManager camInfoMgr (n,cameraName);
49
49
camInfoMgr.loadCameraInfo (" " );
50
50
cv::Mat frame;
51
51
cv_bridge::CvImage cvImage;
52
52
sensor_msgs::Image rosImage;
53
53
while (ros::ok ())
54
54
{
55
- printf (" Got a frame.\n " );
56
-
57
55
mySocket.readData ();
58
- printf (" Creating mat.\n " );
59
- frame = cv::Mat (cv::Size (1920 ,1080 ), CV_8UC3, mySocket.mBuffer );
56
+ frame = cv::Mat (cv::Size (1920 ,1080 ), CV_8UC4, mySocket.mBuffer );
60
57
cv::flip (frame,frame,1 );
61
- printf (" Getting time.\n " );
62
58
double utcTime;
63
59
memcpy (&utcTime,&mySocket.mBuffer [imageSize],sizeof (double ));
60
+ cvImage.header .stamp = ros::Time (utcTime);
64
61
cvImage.header .frame_id = cameraFrame.c_str ();
65
- cvImage.encoding = " bgr8 " ;
62
+ cvImage.encoding = " bgra8 " ;
66
63
cvImage.image = frame;
67
64
cvImage.toImageMsg (rosImage);
68
65
sensor_msgs::CameraInfo camInfo = camInfoMgr.getCameraInfo ();
66
+ camInfo.header .stamp = cvImage.header .stamp ;
69
67
camInfo.header .frame_id = cvImage.header .frame_id ;
68
+ cameraInfoPub.publish (camInfo);
70
69
printf (" Updating.\n " );
71
- cameraPublisher .publish (rosImage, camInfo, ros::Time (utcTime) );
70
+ imagePublisher .publish (rosImage);
72
71
ros::spinOnce ();
73
72
}
74
73
return 0 ;
0 commit comments