基于ROS平台的运动物体跟踪识别系统的研究
2021-06-16贾余晋蔡红专戴浩邢世波
贾余晋,蔡红专,戴浩,邢世波
(西京学院理学院,陕西西安,710000)
0 引言
ROS(Robot Operating System) 是 Willow Garage公司开发的一个适用于机器人的开源的元操作系统。ROS是一种目前广泛使用的机器人操作与控制系统软件框架,该框架使用了当前最流行的面向服务(SOA)的软件技术,通过网络协议将节点间数据通信解耦,这样就能轻松地集成不同语言功能的代码。同时,简单快捷的消息传递方式也能使系统进行有效的分布式控制。
本文以ROS作为开发环境,通过OpenCV库对采集的图像集进行处理,并使用Python语言进行编程,设计了一个运动物体跟踪系统,具有能够实时定位移动物体的功能。该系统具有良好的稳定性和抗干扰性,能够快速准确的识别到选定物体并能够实时判定选定物体的位置。
1 图像采集和图像处理
■1.1 图像采集
本文图像采集使用的是外接USB摄像头,利用usb_cam功能包将摄像头采集的图像转换为ROS图像,通过话题进行发布,使其他各个节点能够接收到图像信息。当节点接收到图像数据后,可以使用OpenCV的接口功能包Cv_Bridge。Cv_Bridge不仅可以实现图像在OpenCV格式与ROS格式之间的转换,还可以通过调用OpenCV库对图像进行各种处理。最后将处理后的数据发布话题,使其他节点接收到处理后的图像数据。

图1 Cv_Bridge和usb_cam功能包的作用
(1)安装usb_cam功能包:
$sudo apt-get install ros-kinetic-usb-cam
(2)启动摄像头:
$roslaunch usb_cam usb_cam-test.launch

图2 usb_cam运行计算图

图3 usb_cam运行效果图
■1.2 图像处理
在进行运动物体跟踪时,首先要将采集到的彩色图像进行灰度化处理,这是因为黑白照片数据量小,更容易提取图像中的特征点,在算法实现时能减少运算量[1]。……
