ROS melodic 驱动Intel D435i
前言
续上篇介绍Intel 深度摄像头D435i的安装与环境的搭建,现在准备在ROS功能包下驱动Intel D435i,起个抛砖引玉的作用,具体想实现啥功能,就靠大家自行探索啦!
环境配置
ROS环境:Ubuntu18.04 + Melodic
ROS IDE:Qt Creator 4.9.2
功能包建立及C++节点编写
新建个opencv_tutorial功能包,指令如下
mkdir -p opencv_tutorial/src
cd ~/opencv_tutorial
catkin_make
打开Qt工具,选择刚刚创建的opencv_tutorial功能包,在src文件下建立opencv_tutorial文件,如下图示
然后在opencv_tutorial/src的文件夹下创建一个basic_opencv.cpp节点。
为了将opencv库添加到ROS环境里,需要在CMakeLists.txt文件里增加以下内容,改动处见下图标识

编写basic_opencv.cpp节点文件,内容如下
#include <ros/ros.h>
#include<cv_bridge/cv_bridge.h>
#include<opencv2/highgui.hpp>
using namespace cv;
using namespace std;
int main(int argc, char **argv)
{
ros::init(argc, argv, "basic_opencv");
ros::NodeHandle nh;
cout << "OpenCV version :" << CV_VERSION << endl;
cout << "Major version :" << CV_MAJOR_VERSION << endl;
ROS_INFO("Hello world!");
double width;
double height;
double exposure;
double brightness;
Mat img;
VideoCapture vc(4);
width = vc.get(CAP_PROP_FRAME_WIDTH);
height = vc.get(CAP_PROP_FRAME_HEIGHT);
exposure = vc.get(CAP_PROP_EXPOSURE);
brightness = vc.get(CAP_PROP_BRIGHTNESS);
cout << "width :" << width << endl;
cout << "height :" << height << endl;
cout << "exposure :" << exposure << endl;
cout << "brightness :" << brightness << endl;
namedWindow("video",1);
ros::Rate loop_rate(60);
while (ros::ok()) {
vc >> img;
flip(img,img,1);
imshow("video",img);
if(waitKey(10)==27) break;
ros::spinOnce();
loop_rate.sleep();
}
return 0;
}
然后在终端把功能包编译,添加到ROS环境里,敲以下指令就可以在框内显示摄像头拍摄到的内容,效果如下
rosrun opencv_tutorial basic_opencv

版权声明:本文为qq_43412584原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。