智能机器人技术 课件 项目13智能机器人装上慧眼_第1页
智能机器人技术 课件 项目13智能机器人装上慧眼_第2页
智能机器人技术 课件 项目13智能机器人装上慧眼_第3页
智能机器人技术 课件 项目13智能机器人装上慧眼_第4页
智能机器人技术 课件 项目13智能机器人装上慧眼_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

授课老师:连国云项目13:智能机器人装上慧眼《智能机器人技术》课程任务要求知识导入任务实施任务评价PC端远程调用智能机器人上的摄像头,显示实时图像,并截取图像画面。任务要求知识导入任务实施任务评价视觉驱动ROS驱动与Linux驱动的意义完全不同。LinuxDriver是在内核模式下获取硬件信息并反馈到用户。ROSDriver则不同,它完全是在用户模式下,从Linux层面获取数据。并通过topic发送messageusb_cam就是个典型的ROSDriver,它并非Linux传统意义上的Driver,它其实只是个应用程序,通过V4L2接口设置Camera并获取数据,利用ROS接口发布topic,供其它节点实用任务要求知识导入任务实施任务评价视觉驱动在ROS系统中,想要使用USB摄像头需要安装相应的驱动程序,在ROS系统中,常用的摄像头package有usb_cam和uvc_camera两个。UVC(USBVideoClass)即USB视频类,是一种为USB视频捕获设备定义的协议标准,而ROS系统中的uvc_camera功能包则是针对该协议的摄像头驱动。任务要求知识导入任务实施任务评价视觉驱动usb_cam功能包是针对V4L2视频采集框架的视觉采集设备驱动功能包。V4L2是一个专门针对Linux系统下的驱动程序框架及设备输出API。要使用这个package,首先需要进行安装。任务要求知识导入任务实施任务评价视觉驱动usb_cam功能包安装的主要步骤如下:(1)进入工作空间,在该工作空间下新建usb_cam文件夹,并在其下新建src文件夹:$cd~/catkin-ws/$mkdir-pusb_cam/src任务要求知识导入任务实施任务评价视觉驱动usb_cam功能包安装的主要步骤如下:(1)进入工作空间,在该工作空间下新建usb_cam文件夹,并在其下新建src文件夹:$cd~/catkin-ws/$mkdir-pusb_cam/src任务要求知识导入任务实施任务评价视觉驱动(2)进入src文件夹,使用git下载usb_cam功能包源码:$cdusb_cam/src$gitclone/bosch-ros-pkg/usb_cam.git任务要求知识导入任务实施任务评价视觉驱动(3)下载完成后,返回src上一级文件夹usb_cam,运行catkin_make对package进行编译,并配置环境变量:$cd..$catkin_make$source~/catkin-ws/devel/setup.bash进入usb_cam文件夹,测试一下usb_cam功能包是否配置完成:$roscdusb_cam任务要求知识导入任务实施任务评价usb_cam功能包usb_cam功能包的功能实现主要是通过节点中的相关topic进行数据传递,此外依靠相关参数的设置,对相关功能进行配置。usb_cam功能包的核心节点是usb_cam_node任务要求知识导入任务实施任务评价usb_cam功能包(1)话题usb_cam功能包中的话题

名称类型功能话题发布~<camera_name>/imagesensor_msgs/Image发布图像数据任务要求知识导入任务实施任务评价usb_cam功能包(2)参数usb_cam功能包中的参数参数类型默认值功能~viedo_devicestring“dev/viedo0”摄像头设备号~image_widthint640图像横向分辨率~image_heightint480图像纵向分辨率~pixel_formatstring“mjpeg”像素编码,可选值:mjpeg、yuyv、uyvy~io_methodstring“mmap”IO通道,可选值:mmap、read、userptr~camera_frame_idstring“head_camera”摄像头坐标系~framerateint30帧率~brightnessint32亮度,0~255任务要求知识导入任务实施任务评价usb_cam功能包(2)参数usb_cam功能包中的参数参数类型默认值功能~saturationint32饱和度,0~255~contrastint32对比度,0~255~sharpnessint22清晰度,0~255~autofocusboolFalse自动对焦~focusint51焦点(非自动对焦状态下才有效)~camera_info_urlstring—摄像头校准文件路径~camera_namestring“head_camera”摄像头名称任务要求知识导入任务实施任务评价PC端直接调用摄像头方式1:运行usb_cam功能包中的节点usb_cam_node:$rosrunusb_camusb_cam_node这里只能看到摄像头指示灯打开,但并不会在电脑上看到图像,如果想要看下当前的图像可以使用image_view功能包中image_view节点,使用usb_cam默认发布/usb_cam/image_raw的topic,因此查看命令为:$rosrunimage_viewimage_viewimage:=/usb_cam/image_raw任务要求知识导入任务实施任务评价任务要求知识导入任务实施任务评价PC端直接调用摄像头方式2:使用自定义launch文件设置摄像头:usb_cam给了我们一个默认的launch文件在如下目录~/catkin-ws/usb_cam/src/usb_cam/launch/usb_cam-test.launch如果需要自定义一个launch文件,可以复制这个文件并进行命名,例如:usb_cam.launch,然后打开这个文件任务要求知识导入任务实施任务评价PC端直接调用摄像头<launch>

<node

name="usb_cam"pkg="usb_cam"type="usb_cam_node"output="screen"

>

<paramname="video_device"value="/dev/video0"/>

<paramname="image_width"value="640"

/>

<paramname="image_height"value="480"

/>任务要求知识导入任务实施任务评价PC端直接调用摄像头

<paramname="pixel_format"value="yuyv"

/>

<paramname="camera_frame_id"value="usb_cam"/>

<paramname="io_method"

value="mmap"/>

</node>

<nodename="image_view"pkg="image_view"type="image_view"respawn="false"

output="screen">任务要求知识导入任务实施任务评价PC端直接调用摄像头

<remapfrom="image"

to="/usb_cam/image_raw"/>

<paramname="autosize"

value="true"

/>

</node></launch>任务要求知识导入任务实施任务评价PC端直接调用摄像头其中/div/video0表示是第一个摄像头,如果你有多个摄像头,可以将此改为/div/video1等等。如果需要查看当前连接设备,使用如下命令即可:$ls/dev/video*修改好后运行这个文件:$roslaunchusb_camusb_cam.launch任务要求知识导入任务实施任务评价PC端直接调用摄像头方式3:ROS系统的qt工具箱中还包含一个图像显示的工具,可以通过以下命令运行这个工具$rqt_image_view任务要求知识导入任务实施任务评价PC端直接调用摄像头点击该界面左上角的下拉菜单,可以看到当前系统中所有可显示的图像话题列表。选择列表中的摄像头原始图像/camera/image_raw话题,应该就可以看到期盼已久的图像任务要求知识导入任务实施任务评价PC端远程调用摄像头除了使用PC端直接驱动摄像头之外,还可以采用分布式系统的方式,PC通过智能机器人的主控制器远程控制摄像头。在智能机器人中,通常摄像头是直接安装在智能机器人本体上,与智能机器人的主控制器直接相连。图像识别等操作对设备的计算能力要求较高,可以在PC端上进行,因此PC端需要远程调用摄像头任务要求知识导入任务实施任务评价PC端远程调用摄像头PC端远程调用摄像头,与PC端远程进行运动控制的原理相类似,也是要通过远程登录方式,实现PC端与智能机器人主控制器的连接,进而通过ROS系统节点之间的通信方式实现PC端,主控制器,以及摄像头的数据通信任务要求知识导入任务实施任务评价PC端远程调用摄像头在这种调用方式下,摄像头同样可以使用usb_cam功能包进行驱动。RaspberryPi上安装usb_cam功能包后,在主机PC端运行ROSMaster$roscore并在RaspberryPi上运行usb_cam_node节点:$rosrunusb_camusb_cam_node运行成功后,在PC端使用rostopiclist命令查看话题列表任务要求知识导入任务实施任务评价PC端远程调用摄像头任务要求知识导入任务实施任务评价PC端远程调用摄像头可以看到摄像头启动成功,并且已经开始发布图像数据。使用rqt_image_view工具将图像数据可视化:$rqt_image_view订阅/usb_cam/image_raw消息后就可以在界面中看到图像任务要求知识导入任务实施任务评价PC端远程调用摄像头任务要求知识导入任务实施任务评价PC端远程调用摄像头为了便于参数的设置与修改,可以使用launch文件在RaspberryPi上驱动摄像头,只需要对usb_cam-test.launch进行简单的修改,去掉图像显示部分image_view节点的启动即可任务要求知识导入任务实施任务评价PC端远程调用摄像头<launch><nodename="usb_cam"

pkg="usb_cam"

type="usb_cam_node"

output="screen"

>

<paramname="video_device"

value="/dev/video1"

/>

<paramname="image_width"

value="640"

/>

<paramname="image_height"

value="480"

/>

<paramname="pixel_format"

value="yuyv"

/>任务要求知识导入任务实施任务评价PC端远程调用摄像头

<paramname="camera_frame_id"

value="usb_cam"

/>

<paramname="

温馨提示

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

最新文档

评论

0/150

提交评论