ROS机械臂开发:机器视觉应用

如题所述

第1个回答  2022-06-09

摄像头驱动安装

编写摄像头启动usb-cam.launch文件

usb_cam功能包中的参数

usb_cam功能包中的话题

消息中各个域的含义如下:

启动摄像头

如果使用的是带内置USB摄像头的笔记本,此时摄像头应当已经启动了:

查看摄像头图像

内参属于摄像头自身参数,外参是指和机械臂之间的位置关系。标定内参是为了消除图像的畸变,再做后面的识别。ROS提供了标定功能包,直接命令行安装:

安装后启动摄像头和标定功能程序:

将标定板摆放不同的位置和角度,直到 CALIBRATE 变为绿色,点击,即可完成摄像头内参标定。

点击SAVE,程序将标定文件写入磁盘保存。

解压后会得到一系列标定过程中获得的图片和一个yaml标定文件,这个标定文件即包含了摄像头的内参,可直接在usb_cam功能包中使用。

得到标定文件后,在开头的usb_cam.lauch文件中加入tag:

再次启动摄像头后获得的图像即为标定后的图像了。如果启动过程中有警告:does not match name narrow_stereo in file,可尝试将yaml文件中的camera_name修改为 head_camera 后再重新启动。

在ROS中使用OpenCV,可以通过CvBridge功能包来实现ROS图像消息和OpenCV图像数据结构间的转换:

在ROS中进行OpenCV物体识别开发一般经过如下的流程:

启动后将看到标注人脸(如果有)的视频流,终端会打印检测到人脸的数目:

相似回答