【移动机器人跟随应用分析案例2200字】_第1页
【移动机器人跟随应用分析案例2200字】_第2页
【移动机器人跟随应用分析案例2200字】_第3页
【移动机器人跟随应用分析案例2200字】_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

移动机器人跟随应用分析案例目录TOC\o"1-3"\h\u4389移动机器人跟随应用分析案例 1227491.1基于颜色识别物体 1240151.2控制移动机器人跟随物体 6移动机器人在日常使用中往往无法使用专用的PC机或者下载专用APP的手机等控制方式。这些控制方式都需要用户使用控制并携带控制设备,这让移动机器人变得非常繁琐不够人性化。从人机交互的角度出发机器人应该更加智能,经历让用户不使用控制设备,而是通过与机器人的实时交互进行机器人控制。为了这种目的,跟踪和跟随算法被用到了机器人上。本文使用OpenCV的传统CV的计算机视觉方法,识别目标并跟随目标。1.1基于颜色识别物体首先需要找到目标,寻找目标物体的方法由许多。这里使用简单的视觉方式找到目标,通过OpenCV将RGB摄像头中的指定色彩的最大色块找出来。因为在生活中很少见到大面积的亮红色物体,所以本文选择使用一个亮红色的笔记本作为机器人跟踪目标。因此需要设计一个节点订阅图像信息和深度信息与发布目标的位置信息,节点如图5-1所示图5-1目标识别节点通信图其中相机在某一方向上的弧度视角,需要使用摄像头标定技术。将摄像头因为针孔成像现象和镜头畸变等导致的相邻像素点之间存在一定弧度。图像是根据现实世界中物体在相机摄像平面上的投影。这些图像坐标系需要经过标定后,就可以得知关于相机坐标系的关系。两者的关系方便深度将深度信息与彩色像素点进行关联,从而在图像坐标系下获知每个像素点对于相机坐标系的关系。由于图像使用OpenCV进行存储和处理主要说明的是OpenCV的图像坐标系,相机坐标系与OpenCV图像坐标系关系如图5-2所示。图5-2相机坐标系与OpenCV图像坐标系关系图相机坐标系主要是以相机的光学中心为基础,而OpenCV图像可以认为是平行于相机坐标系OXY平面的一个直角坐标系。要表示一个相机坐标系中的点P,就是直线OP在图像平面上的焦点p。为了方便读取摄像头画面,使用usb_cam包读取摄像头实时画面,通过linux的设备描述文件/dev/video0读取。读取时需要以yuyv的编码方式读取到ROS话题中,发布到/usb_cam/image_raw中。处理图像需要在ROS系统中使用OpenCV,而ROS传感器数据与OpenCV图像数据存在差别。所以需要ROS的提供的cv_bridge这个API使用让OpenCV通过链接到ROS中的传感器数据获取符合OpenCV规范的图像。摄像头彩色画面需要被编码成RGB8这个格式方便转换色彩空间,获得图像如图5-3所示。图5-3摄像头获取画面获取图像后需要定义所需要查找物体的色彩范围,使用HSV三个值描述一个色彩范围方便取色,HSV的色调H可以方便角度选取基本色调,比如红色都在0到9度中。通过OpenCV色彩空间转换函数将RGB8图片转换为HSV色彩空间。这里定义HSV值最小值是(0,120,100)、最大值是(9,255,255),每个值的取值范围是0到255。选择同时满足这三个HSV取值范围的颜色都是机器人所寻找的目标。通过OpenCV的inRange算子,找出图像中处于这个范围的色块,并二值化。结果如图5-4所示。图5-4摄像头画面色块提取图图片上红色笔记的大部分红色都被框选了出来。但是背景色存在一些细小而零散的红色像素点,这些会影响我们查找最大的红色色块。过得噪点也会增加计算量,影响查找目标性能,因此需要进行图像处理。这里使用的处理方式是erode函数既腐蚀,具体腐蚀操作是将各点像素值将被替换为对应邻域上的最小值。进行腐蚀操作后效果如图5-5所示。图5-5色块提取图像侵蚀图可以看到,背景和红色笔记上被选中的细小红色像素都被消除了。这张二值图像中选中色块连成了一个色块,这样就可以方便地找到最大的色块了。通过findContours算子找到物体的轮廓,因为图片上可能存在多个轮廓,所以需要选择最大的轮廓开始。现在机器人只知道了物体的轮廓。还需要处理出轮廓的中心的图像坐标系,但是只知道图像坐标系,机器人无法知道距离目标的距离就谈不上跟随了。所以需要将轮廓的中心坐标转换成相机坐标系。算法5-1analyseContour轮廓分析函数通过算法5-1步骤进行轮廓分析,我们获得了目标在图片坐标系上的中心坐标和距离。但是将这些信息发布到ROS的话题中还需要将图片坐标系转换到相机坐标系。这里需要根据标定好的像素的垂直弧度和水平弧度解算像素水平坐标和垂直坐标所对于的角度。1.2控制移动机器人跟随物体通过上面小节的操作,机器人得到了目标的中心坐标和距离。接下来,机器人将利用这些信息跟随目标进行移动。创建一个跟随节点,控制机器人根据目标信息话题发布控制机器人移动的命令,节点如图5-6所示。图5-6目标跟随节点通信图当接收到新的目标当前位置时,会调用跟随函数读取目标位置信息。根据目标在的水平位置和距离,机器人会作出如下动作进行跟随。当目标接近相机左边时,让机器人向左转动。让目标经历保持在相机视野内,防止跟丢目标当目标接近相机右边时,让机器人向右转动。当目标距离大于跟随距离时,让机器人向前移动跟随目标。当目标距离小于跟随距离时,让机器人后退避让目标。因为机器人的控制信息是Twist消息,这个消息中包括机器人坐标的XYZ三轴的线速度和角度速度。本文使用PID控制器,进行角度速度和线速度的更新并获得新的速度。这里给PID设置目标角度是0,目标距离是跟随距离。这里的PID调节流程图5-7所示图5-7目标跟随节点通信图经由算法5-2由目标角度和距离获得控制角度和距离,得到PID调节后的角速度和线速度后,用最大速度规范角速度和线速度。并将控制线速度填入XYZ轴线速度的X轴上,控制角速度填入XYZ轴角度的Z轴上。就完成了控制机器人前后和原地旋转跟随目标移动的功能。实验演示一下效果,当目标接近相机右边时,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论