1. 前言
由于项目需要,需要将jetson平台采集的camera数据通过ROS publish出来;
由于使用camera是前置ISP,出来数据是YUV422 8bit;
即ROS publish也需要按照YUV422 8bit 发布出来
2. 方法说明
2.1 Opencv + cvbridge
一般常用的方法是通过Opencv+cvbridge 来publish camera data;
cv_bridge是ROS为开发者提供了与OpenCV的接口功能包,用起来比较简单。
测试发现有个问题:
cvbridge会自动把YUV data转成RGB data;
无法设置成只发布YUV data;
这是就需要将cv mat里面的image数据手动转换成sensor msg数据了;
示例如下:
#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <opencv2/highgui.hpp>
#include <opencv2/calib3d.hpp>
#include <cv_bridge/cv_bridge.h>
#include <iostream>
int main(int argc, char** argv)
{
ros::init(argc, argv, "img_publisher");
ros::NodeHandle nh;
image_transport::ImageTransport it(nh);
image_tr