《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于UVC協議的ROS視頻監控系統設計
基于UVC協議的ROS視頻監控系統設計
2015年微型機與應用第19期
朱 鴿1,2,鄭 杰1,2,肖宇峰1,2
(1.西南科技大學 信息工程學院,四川 綿陽 621010; 2.西南科技大學 特殊環境機器人技術四川省重點實驗室,四川 綿陽 621010)
摘要: 針對ROS系統平臺的接口局限性,結合USB接口的通用性和普及性,采用USB攝像頭作為系統的視頻采集設備,設計和實現了一種基于ROS(機器人操作系統)平臺的視頻監控系統方案?;赨VC視頻類協議的圖像采集系統具有良好的兼容性,實現了USB視頻采集設備在ROS系統平臺上的免驅使用。視頻采集程序的設計采用針對UVC協議的V4L2框架,有效地利用了ROS系統提供的應用編程接口。系統應用結果表明,本文提出的ROS視頻監控方案具有良好的實用性和方便性,視頻傳輸效果良好。
Abstract:
Key words :

  摘  要: 針對ROS系統平臺的接口局限性,結合USB接口的通用性和普及性,采用USB攝像頭作為系統的視頻采集設備,設計和實現了一種基于ROS(機器人操作系統)平臺的視頻監控系統方案?;?a class="innerlink" href="http://www.cowatch.cn/tags/UVC視頻類協議" title="UVC視頻類協議" target="_blank">UVC視頻類協議的圖像采集系統具有良好的兼容性,實現了USB視頻采集設備在ROS系統平臺上的免驅使用。視頻采集程序的設計采用針對UVC協議的V4L2框架,有效地利用了ROS系統提供的應用編程接口。系統應用結果表明,本文提出的ROS視頻監控方案具有良好的實用性和方便性,視頻傳輸效果良好。

  關鍵詞: ROS;視頻監控;UVC視頻類協議;V4L2

0 引言

  視頻監控系統一直是嵌入式平臺研究中的一個重要方向,Linux系統具有源代碼開放、內核穩定、可裁減性、支持硬件廣泛及驅動豐富等特點[1],嵌入式視頻監控多采用Linux作為其軟件平臺[2]。機器人操作系統ROS(Robot Operating System)是一種次級操作系統[3],易用性、開發效率高、跨平臺、代碼可復用成為ROS的主要優點,目前已有多款嵌入式機器人平臺使用ROS作為其控制系統,如PR2、TurtleBot等。

  本文設計實現了應用于ROS平臺的視頻監控系統。ROS系統為FireWire(IEEE1394)攝像頭提供了官方支持,1394也稱火線接口,優點是傳輸速度快,缺點是其針形接口兼容性差。相比之下USB攝像頭兼容性強,安裝方便,且價格便宜,本課題的視頻采集設備采用USB攝像頭。

  本文從系統結構設計、UVC(USB Video Class)視頻類協議傳輸方法、V4L2(Video for Linux 2)視頻采集程序幾個方面來完成系統設計,最后設計出應用于ROS上的uvc_cam視頻采集功能包,實現圖像采集與視頻監控功能,為嵌入式ROS機器人平臺的視頻監控開發提供一種有效的方法。

1 系統結構設計

  本文的目的是設計實現基于ROS系統平臺的視頻監控系統。ROS起源于2007年斯坦福大學人工智能實驗室的項目與機器人技術公司Willow Garage的個人機器人項目之間的合作[4]。ROS主要支持Ubuntu系統,提供類似操作系統所提供的功能。

  本文設計的視頻監控系統采用USB視頻采集設備,設計基于UVC視頻類協議的視頻數據傳輸方法,并利用ROS系統底層提供的V4L2視頻編程接口完成視頻采集程序的設計,最后根據ROS的系統構架完成視頻采集功能包uvc_cam的設計,實現ROS操作系統平臺的視頻監控功能。

  系統結構如圖1所示。

001.jpg

2 基于UVC協議的視頻傳輸方法

  2.1 UVC標準及支持

  由于視頻采集模塊不同、傳輸協議不同等原因,ROS系統需要安裝不同的USB驅動程序,這給移動機器人平臺的使用帶來很多不便。針對此問題,本文設計基于UVC協議規范的視頻傳輸方法,使ROS系統為符合UVC視頻類標準的USB攝像頭提供通用驅動,方便安裝和使用。

  2.2 UVC協議視頻端口描述符設計

  一個USB視頻類設備接入ROS平臺后需要通過描述符讓ROS主機獲得它的屬性和被確認為標準的USB類設備,這些描述符是標準的USB描述符,并在其子描述符中定義了USB設備的各種功能[5]。對于視頻設備的每個功能,需要一個視頻控制端口和一個或多個視頻流端口實現[6]。本文系統設計的視頻接口描述符及功能如下:

  (1)輸入終端描述:一個實體代表數據流的開始端點,描述了圖像視頻流數據的來源。

  (2)相機終端描述:相機終端控制傳輸視頻流的設備組件的機械特性。

 ?。?)選擇單元描述:起著源選擇器的作用,選擇多個輸入數據流并路由它們到單一的輸出流。

 ?。?)處理單元描述:描述了對圖像亮度、色調、對比度、平移、變焦等參數的處理。

 ?。?)輸出終端描述:將終端描述為前面的幾個部分和主機之間的端口,將視頻數據輸出,通過顯示屏顯示。

  2.3 UVC設備拓撲結構

  UVC標準的視頻控制接口包含了USB視頻采集、處理、輸出相關組件,視頻流接口包含了與主機之間實現交互的組件,這些組件構成本文系統設計的UVC設備拓撲結構,如圖2。

002.jpg

  一個符合UVC規范的USB攝像頭插入到ROS平臺接口時,從視頻傳感器得到的數據流由相機終端輸入,復合視頻設備得到的數據流從輸入終端進入,在本系統的設計中,相機終端和輸入終端兩個功能組件由USB視頻采集模塊來完成。然后經過選擇單元路由后交給處理器進行亮度、對比度等優化,最后由輸出終端綁定到USB端點并與ROS主機進行交互,完成視頻流處理,ROS主機獲取該USB攝像頭的屬性和功能。

3 基于V4L2的視頻采集程序設計

  3.1 V4L2應用編程接口

  V4L2是由Bill Dirks[7]設計完成的針對Linux的視頻捕捉應用程序接口。V4L2是V4L的升級版本[8],與V4L相比,有更好的擴展性和靈活性。V4L2對V4L做了徹底改動,因此兩者并不兼容,V4L2最大的優勢是可以自定義設備驅動緩存數量,支持的硬件設備也更多[9]。

  本系統的視頻采集程序設計部分采用V4L2標準框架,V4L2不僅是針對UVC免驅USB設備的編程框架,同時ROS操作系統底層也提供了V4L2編程接口。

  3.2 V4L2視頻采集模型

  V4L2在視頻采集中用到的兩個重要系統調用函數是ioctl()和mmap()。ioctl()是設備接口控制函數,對設備的I/O通道進行控制,視頻采集過程中獲取設備功能、設置幀格式、申請幀緩沖等操作函數都將通過該系統調用實現。

  ioctl()語法為:ioctl(int fd,int request,void*argp),fd為通過open()函數獲得的設備文件描述符;request為系統調用類型,用于告訴系統操作的動作,如VIDIOC_QUERYCAP是獲取設備功能;argp是用戶數據指針,用于參數傳遞和數據接收。

  mmap()系統調用使得進程之間通過映射同一普通文件來實現共享內存,實現從內核空間到用戶空間的映射,不需要任何數據拷貝,提高了數據傳輸效率。在本系統設計中,還會用到幾個V4L2常用的API函數:open()用于打開一個設備,close()函數用于關閉一個設備,read()函數用于從設備讀取數據。

  3.3 V4L2視頻采集程序設計

  基于V4L2編程規范和視頻采集模型,本文設計的視頻采集程序流程及其對應的操作函數如圖3。

003.jpg

4 ROS視頻傳輸實現方法

  4.1 ROS系統構架

  ROS的首要設計目標是在機器人研發領域提高代碼復用率。ROS可以分成兩層,低層為操作系統層,高層則是廣大用戶群貢獻的實現不同功能的各種軟件包,例如定位繪圖、行動規劃、感知、模擬等。ROS是一種分布式處理框架(又稱Nodes),這使可執行文件能被單獨設計,并且在運行時松散耦合。這些過程可以封裝到數據包(Packages)和堆棧(Stacks)中,以便于共享和分發。

  計算圖級是ROS處理數據的一種點對點的網絡形式。程序運行時,所有進程以及它們所進行的數據處理將會通過一種點對點的網絡形式表現出來。主要包括以下幾個重要概念:

  (1)節點(node):一些執行運算任務的進程。

 ?。?)消息(message):節點之間通過傳送消息進行通信。

 ?。?)主題(topic):消息以一種發布/訂閱的方式傳遞。一個節點可以在一個給定的主題中發布消息。

  4.2 uvc_cam功能包結構及設計

  結合ROS系統構架,本節將敘述基于UVC協議的ROS視頻傳輸功能包uvc_cam的設計方法。上節講解了節點、消息等概念,ROS中有無數的節點、消息、服務、工具和庫文件,需要有效的結構去管理這些代碼。ROS文件系統級指的就是在硬盤上面查看的ROS源代碼的組織形式,而功能包(packge)就是ROS中組織軟件的主要形式。一個簡單的ROS功能包包括一個存放源代碼的src文件夾、一個CMakelists.txt文件、一個manifest.xml文件。

  圖4是uvc_cam功能包的設計結構圖。

004.jpg

 ?。?)src文件夾存放源程序,包括視頻采集程序uvc_cam.cpp、視頻采集節點實現程序uvc_cam_node.cpp、頭文件uvc_cam.h。

 ?。?)CMakeList.txt文件包含了用于安裝動態鏈接庫和生成可執行文件的語句。下面是該文件中的兩條核心語句:

  rosbuild_add_library(uvc_cam src/uvc_cam/uvc_cam.cpp),由uvc_cam.cpp編譯建立視頻采集的鏈接庫。

  rosbuild_add_executable(uvc_cam_node src/uvc_cam_ node.cpp),該句的功能是由uvc_node_cam.cpp編譯添加可執行的視頻采集節點文件uvc_cam_node。

 ?。?)manifest.xml提供關于uvc_cam功能包的元數據,包括它的許可信息以及與其他功能包之間的依賴關系。

  4.3 結果驗證

005.jpg

  前面已經描述了ROS系統構架計算圖級和點對點的數據處理方式。圖5是本文設計實現ROS視頻監控的節點拓撲關系圖。

  一個終端打開視頻采集節點uvc_cam_node,另外一個終端打開圖像顯示節點image_view,兩個節點之間通過/camera/rgb/image_color進行話題發布和消息訂閱,uvc_cam_node節點實現視頻采集,在image_view節點的終端顯示,效果如圖6。

006.jpg

5 結束語

  本文設計并實現了ROS平臺上的視頻監控系統,介紹了ROS在結構和功能上的優越性。結合本文的系統結構,設計了基于UVC視頻類協議的視頻數據傳輸方法,實現了UVC規范的USB攝像頭與ROS系統平臺的即插即用,避免了ROS系統接口兼容性和驅動安裝等問題帶來的不便。詳細描述了V4L2視頻采集程序設計流程和系統調用函數,有效地利用了ROS系統提供的應用編程接口。最后根據ROS的系統構架,設計了uvc_cam視頻采集程序功能包,實現視頻采集和傳輸功能。該系統有良好的設備兼容性和實用性,視頻采集性能穩定,實時性好,是嵌入式ROS系統平臺上實現視頻監控的一種有效方法。

  參考文獻

  [1] 劉志華.基于ARM和Linux的視頻圖像采集系統[J].微型機與應用,2014,33(3):12-14.

  [2] 王飛,孔聰.基于V4L2的Linux攝像頭驅動的實現[J].電子科技,2012,25(2):86-92.

  [3] 張建偉.開源機器人操作系統:ROS[M].北京:科學出版社,2012.

  [4] MARTINEZ A. Learning ROS for robotics programming[M].Birmingham: Packt Publishing Ltd, 2013.

  [5] 殷開亮.基于UVC協議的USB3.0圖像采集系統設計[D].蘇州:蘇州大學,2014.

  [6] USB Implementers Forum, Inc. Universal Serial Bus Device Class Definition for Video Devices: Revision 1.5[S]. 2012.

  [7] DIRKS B. Video for Linux Two API specification: Draft0.12[S]. Michael H Schimek.

  [8] 劉登誠,沈蘇彬,李莉.基于V4L2的視頻驅動程序設計與實現[J].微計算機信息,2011,27(10):56-58.

  [9] 冬雷.DSP原理及開發技術[M].北京,清華大學出版社,2007.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美日韩日日夜夜| 宅男噜噜噜66一区二区66| 欧美阿v一级看视频| 久久久久久日产精品| 国产精品一级二级三级| 欧美国产精品久久| 欧美专区在线播放| 最新国产乱人伦偷精品免费网站| 亚洲经典视频在线观看| 日韩视频第一页| 久久午夜电影网| 亚洲欧美一区二区原创| 欧美阿v一级看视频| 久久久国产亚洲精品| 在线午夜精品自拍| 亚洲欧美国产日韩中文字幕| 久久精品亚洲| 亚洲国产精品黑人久久久| 久久精品人人| 亚洲人成亚洲人成在线观看| 国产麻豆日韩欧美久久| 午夜精品一区二区三区四区| 久久久久国产一区二区三区| 国外成人网址| 在线观看成人网| 国产精品手机视频| 欧美日本乱大交xxxxx| 久久久久久久网站| 午夜精品久久久久99热蜜桃导演| 国产欧美日本一区二区三区| 欧美激情1区2区| 亚洲麻豆av| 国产精品久久久久久久久婷婷| 久久久久久有精品国产| 亚洲欧美在线磁力| 免费国产自线拍一欧美视频| 激情久久久久久| 久久久福利视频| 精品成人在线观看| 一本色道久久综合亚洲91| 欧美日韩国产综合视频在线| 最新高清无码专区| 在线看国产一区| 一区二区三区精密机械公司| 欧美午夜大胆人体| 一区二区三区福利| 亚洲小视频在线观看| 精品成人乱色一区二区| 亚洲主播在线播放| 亚洲男女自偷自拍| 免费看的黄色欧美网站| 亚洲国产欧美在线| 国产精品成人在线| 亚洲国产成人久久综合| 亚洲综合色激情五月| 一区二区高清在线| 久久久久久久久久久久久久一区| 亚洲精品久久久久中文字幕欢迎你| 一区二区三区视频在线观看| 日韩一二三在线视频播| 麻豆精品在线视频| 亚洲一区二区日本| 欧美日韩视频专区在线播放| 久久综合精品国产一区二区三区| 一区二区三区在线看| 激情欧美日韩| 国产精品免费网站| 亚洲一区二区三区欧美| 欧美精品1区2区3区| 久久香蕉国产线看观看av| 在线视频中文亚洲| 欧美—级在线免费片| 亚洲视频免费看| 国内外成人在线| 欧美精品不卡| 欧美韩国一区| 国产精品女主播一区二区三区| 99精品视频免费观看| 免费在线欧美视频| 欧美日本精品一区二区三区| 国产一在线精品一区在线观看| 亚洲欧美在线高清| 国产亚洲欧洲一区高清在线观看| 亚洲激情婷婷| 久久国产主播精品| 亚洲国产欧美一区二区三区丁香婷| 国产色产综合产在线视频| 99视频一区二区| 国产真实精品久久二三区| 国产精品国产三级国产专播精品人| 亚洲精品视频中文字幕| 在线免费观看日韩欧美| 欧美电影在线| 宅男66日本亚洲欧美视频| 欧美特黄一级大片| 狠狠狠色丁香婷婷综合激情| 国产精品羞羞答答xxdd| 国产一区二区三区精品久久久| 国产精品二区三区四区| 欧美日本韩国| 最新国产拍偷乱拍精品| 免费看黄裸体一级大秀欧美| 欧美日韩国产页| 欧美精品国产| 亚洲综合精品自拍| 久久久久久免费| 在线观看国产精品网站| 欧美日韩亚洲一区三区| 久久免费视频这里只有精品| 欧美人与禽猛交乱配| 国产精品久久久久高潮| 国产综合久久| 国产精品一级在线| 午夜精品免费| 久久久噜噜噜| 国产精品日日做人人爱| 99精品热6080yy久久| 欧美视频中文字幕在线| 美国成人直播| 99精品99久久久久久宅男| 狠狠色丁香久久婷婷综合_中| 国产精品毛片高清在线完整版| 国产亚洲一区在线| 久久久久国产精品一区二区| 国产麻豆精品在线观看| 欧美va天堂在线| 欧美成熟视频| 国产欧美91| 亚洲理论电影网| 在线亚洲免费| 亚洲精品少妇网址| 亚洲国产精品高清久久久| 国产精品久久久久99| 亚洲一区二区三区乱码aⅴ| 久久久久综合网| 亚洲日本黄色| 久久九九久精品国产免费直播| 亚洲永久视频| 欧美人妖在线观看| 中文一区在线| 韩日欧美一区二区| 欧美日韩免费看| 久久一区二区三区超碰国产精品| 欧美国产精品v| 一区二区三区高清在线观看| 久久人人爽国产| 免费日韩av片| 国精产品99永久一区一区| 亚洲三级观看| 免费91麻豆精品国产自产在线观看| 免费试看一区| 在线观看91精品国产麻豆| 亚洲人成亚洲人成在线观看图片| 欧美成va人片在线观看| 国产精品国产三级国产a| 欧美日韩一区二区三区免费| 国产精品永久免费观看| 一区二区三区在线视频播放| 欧美日韩1区2区| 99精品热视频只有精品10| 亚洲国产经典视频| 在线成人激情黄色| 国产精品亚洲第一区在线暖暖韩国| 老**午夜毛片一区二区三区| 亚洲欧洲午夜| 国产精品久久久一区二区三区| 亚洲免费视频网站| 亚洲视频中文字幕| 久久亚洲国产精品一区二区| 亚洲一区免费观看| 欧美日本一道本| 一区二区三区成人精品| 一区二区三区视频在线播放| 欧美一区二区高清在线观看| 亚洲裸体在线观看| 性欧美1819sex性高清| 久久综合久久美利坚合众国| 亚洲午夜精品国产| 亚洲欧美日韩国产成人精品影院| 亚洲私人影吧| 亚洲女与黑人做爰| 国产亚洲精品久| 葵司免费一区二区三区四区五区| 激情久久久久久久久久久久久久久久| 亚洲片国产一区一级在线观看| 欧美一级久久久| 国产精品国产三级国产普通话三级| 免费日本视频一区| 在线看一区二区| 欧美一区二区三区视频免费播放| 麻豆精品在线观看| 午夜精品成人在线| 99re66热这里只有精品4| 亚洲国产精品久久久| 欧美诱惑福利视频| 在线观看亚洲精品视频| 亚洲自拍都市欧美小说| 国产精品入口麻豆原神| 国产一区二区三区四区老人| 久久手机免费观看| 亚洲欧美美女| 国产精品xnxxcom| 日韩视频免费大全中文字幕| 另类天堂视频在线观看| 国产精品chinese| 亚洲国产日韩欧美一区二区三区| 一区二区视频免费完整版观看| 国产亚洲激情在线| 亚洲一二三区精品| 久久免费视频网站| 国产精品日韩专区| 亚洲性视频网址| 欧美精品一区视频| 欧美一区二区三区免费观看| 亚洲午夜羞羞片| 国产日韩一区二区三区在线播放| 亚洲高清在线视频| 欧美日韩三级一区二区| 亚洲最新中文字幕| 亚洲影院在线观看| 久久精品视频在线播放| 免费观看成人| 最新日韩av| 免费日韩一区二区| 国产精品久久久久毛片软件| 欧美激情1区2区3区| 亚洲国产精品一区二区尤物区| 一二三四社区欧美黄| 女仆av观看一区| 欧美日韩国产一区二区三区| 最新日韩中文字幕| 久久久精品一区| 久久一二三四| 欧美在线视频播放| 美女精品国产| 蜜臀av性久久久久蜜臀aⅴ四虎| 黄色亚洲大片免费在线观看| 欧美黄色影院| 久久成年人视频| 在线播放中文一区| 欧美在线一级va免费观看| 夜夜狂射影院欧美极品| 国产精品视频免费在线观看| 国产精品福利在线观看网址| 国产精品网红福利| 国产午夜亚洲精品理论片色戒| 国产欧美日韩激情| 你懂的一区二区| 欧美一区免费视频| 久久亚洲二区| 免费在线亚洲欧美| 欧美粗暴jizz性欧美20| 欧美大片在线看免费观看| 国产精品久久激情| 久久精品一二三区| 欧美一区日韩一区| 欧美成人黑人xx视频免费观看| 精品999在线观看| 欧美性久久久| 久久精品亚洲国产奇米99| 99re66热这里只有精品4| 亚洲欧美日韩国产中文| 久久久久久噜噜噜久久久精品| 欧美成人69av| 亚洲中无吗在线| 国产精品欧美日韩一区二区| 激情懂色av一区av二区av| 久久精品亚洲一区二区三区浴池| 日韩视频在线一区二区三区| 欧美日韩精品在线视频| 91久久久国产精品| 中文亚洲视频在线| 国内精品视频666| 久久在线91| 国产精品成人va在线观看| 欧美—级高清免费播放| 欧美一区二区三区电影在线观看| 欧美片网站免费| 欧美激情一区二区三区成人| 久久嫩草精品久久久久| 国产精品视屏| 久久精品夜色噜噜亚洲a∨| 香蕉久久久久久久av网站| 一区二区三区成人| 激情成人亚洲| 国产伦精品一区二区三区四区免费| 99精品欧美一区二区蜜桃免费| 亚洲精品视频免费在线观看| 麻豆精品视频在线| 亚洲国产成人精品久久久国产成人一区| 午夜精品福利视频| 亚洲电影天堂av| 国产精品久久国产精麻豆99网站| 欧美在线观看一二区| 亚洲欧美日韩国产综合| 樱桃国产成人精品视频| 蜜臀久久99精品久久久画质超高清| 久久久精品2019中文字幕神马| 久久国产福利| 欧美成人情趣视频| 蜜桃av一区二区| 性做久久久久久久免费看| 久久国产夜色精品鲁鲁99| 国内综合精品午夜久久资源| 午夜精品福利电影| 欧美夫妇交换俱乐部在线观看| 一区二区三区精品视频在线观看| 国产免费一区二区三区香蕉精| 一区二区日本视频| 欧美高潮视频| 亚洲一级在线| 久久精品成人欧美大片古装| 国产精品久久久免费| 国产乱码精品一区二区三区忘忧草| 国产精品久久久久毛片大屁完整版| 亚洲国产午夜| 国产欧美69| 国产精品区一区二区三| 暖暖成人免费视频| 久久久久久高潮国产精品视| 亚洲福利在线看| 玖玖国产精品视频| 国产一二三精品| 欧美一区国产二区| 国产精品亚洲综合天堂夜夜| 久久精品一二三| 亚洲国产第一| 中文精品视频一区二区在线观看|