《ROS原理與技術應用》課件 能力模塊六 掌握視覺傳感器的應用方法_第1頁
《ROS原理與技術應用》課件 能力模塊六 掌握視覺傳感器的應用方法_第2頁
《ROS原理與技術應用》課件 能力模塊六 掌握視覺傳感器的應用方法_第3頁
《ROS原理與技術應用》課件 能力模塊六 掌握視覺傳感器的應用方法_第4頁
《ROS原理與技術應用》課件 能力模塊六 掌握視覺傳感器的應用方法_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《ROS原理與技術應用》能力模塊六掌握視覺傳感器的應用方法

任務一認知視覺傳感器導入視覺傳感器是自動駕駛感知系統(tǒng)的重要組成部分,它相當于駕駛員的眼睛,是未來自動駕駛技術的發(fā)展重點。假設你是汽車感知系統(tǒng)的測試員,需要排查或測試各類視覺傳感器的使用情況,通過本任務的學習將掌握區(qū)分不同類型視覺傳感器、正確使用視覺傳感器的內容。目錄

CONTENTS0102攝像頭的分類攝像頭驅動包的使用03攝像頭定標新授視覺根據(jù)攝像頭的類型來劃分,常見的主要有以下幾種,如圖所示:一、攝像頭的分類一、攝像頭的分類

單目攝像頭

單目攝像頭是自動駕駛汽車系統(tǒng)中最重要的傳感器之一,外觀如圖。通過車道檢測和車輛檢測,可以實現(xiàn)車道保持和自適應巡航功能。成本較低,可以用來做目標識別在windows下結合相應的的軟件即可實現(xiàn)即插即用。一、攝像頭的分類單目攝像頭工作原理:01物體測距先對物體和本車距離進行測量,確定待識別物體。02學習圖像特征標記有待識別目標的圖片建立成為樣本數(shù)據(jù)庫,并由算法去學習這些圖片的特征。03建立模型數(shù)據(jù)庫用學習的數(shù)據(jù)特征,建立相應的的模型數(shù)據(jù)庫。樣本數(shù)據(jù)庫容量越大,通過學習得到的計算機視覺算法的準確度越高。04圖像識別根據(jù)已經(jīng)學習到的特征,識別出待識別目標。根據(jù)圖像的大小和高度進一步估計障礙物和車輛移動時間。一、攝像頭的分類單目攝像頭工作原理:目前的輔助駕駛領域的單目攝像頭可識別40~120m的范圍,未來能夠達到200m或者更遠單目攝像頭的視角越寬,可以實現(xiàn)的精確監(jiān)測距離越近單目攝像頭視角越窄,可以檢測的精確距離越遠一、攝像頭的分類

深度攝像頭(雙目攝像頭)

雙目攝像頭獲取同一場景不同視角的多張圖像,利用圖像的匹配和一定的三維重建算法來計算場景對象的深度信息,例如Azure、Kinect2代。外觀如圖所示。不容易受到環(huán)境光線的干擾,適合室外環(huán)境。滿足7*24小時的長時間工作要求,不易損壞,成本是三種深度感知方案中最低的。設備要求高,背景雜亂、有遮擋物等情況下不適用。一、攝像頭的分類

深度攝像頭(TOF攝像頭)

TOF攝像頭采用TOF技術(Timeofflight,飛行時間),記錄光源投射到每個像素點的光線發(fā)射與反射間的相位變化來計算光線飛行時間,進而計算光源到每個像素點的距離。外觀如圖所示。受環(huán)境影響最小,響應速度快、深度信息精度高。傳感器芯片并不成熟,成本很高,實現(xiàn)量產(chǎn)困難,不適合精度要求高的場景。一、攝像頭的分類

深度攝像頭(結構光學攝像頭)

結構光攝像頭通過結構光投射器向對象物體表面投射可控制的光點、光線或者光面,將返回的光斑與參考光斑進行對比,利用三角測量原理計算物體的三維空間信息,例如Xtion、Kinectv1、Astra等。外觀如圖所示。計算簡單、經(jīng)濟性好、便于安裝維護。技術成熟,識別距離遠,深度圖像分辨率高。精確的深度信息計算復雜,對識別的距離要求嚴格。易受環(huán)境光線干擾,強光下不適合usb_cam驅動包launch文件的主要內容有:二、攝像頭驅動包的使用astrapro_follower.launch文件的主要內容有<launch>

<node

name="usb_cam"

pkg="usb_cam"

type="usb_cam_node"

output="screen"

>

<param

name="video_device"

value="/dev/video0"

/>

<param

name="image_width"

value="640"

/>

<param

name="image_height"

value="480"

/>

<param

name="pixel_format"

value="mjpeg"

/>

<param

name="camera_frame_id"

value="usb_cam"

/>

<param

name="io_method"

value="mmap"/>

<node

name="image_view"

pkg="image_view"

type="image_view"

respawn="false"

output="screen">

<remap

from="image"

to="/usb_cam/image_raw"/>

<param

name="autosize"

value="true"

/>

</node>

</launch>

在ROS系統(tǒng)中常用的單目攝像頭驅動包有兩種:usb_cam和uvc_camera(一)usb_cam驅動包usb_cam節(jié)點主要用于驅動攝像頭顯示image_view節(jié)點主要用于接收攝像頭圖像的話題,并將圖像在image_view工具中顯示出來二、攝像頭驅動包的使用usb_cam驅動包常見參數(shù)詳解參數(shù)名參數(shù)的含義video_device攝像頭連接的端口名,默認為“/dev/video0”image_width圖像的寬度,默認值為“640”image_height圖像的高度,默認值為“480”pixel_format圖像的像素格式,默認值為“mjpeg”,還可以根據(jù)實際情況選擇“yuyv、uyvy”camera_frame_id相機坐標系id,默認值為“usb_cam”,該參數(shù)值會影響該節(jié)點發(fā)布話題的名字framerate幀速率,默認值為“30”,該參數(shù)設置值得大小會影響顯示圖像的流暢度camera_name相機名稱,默認值為“head_camera”,這個名稱必須與相機標定文件中的名稱匹配,否則標定后參數(shù)無法調用uvc_camera驅動包launch文件的主要內容有:二、攝像頭驅動包的使用astrapro_follower.launch文件的主要內容有<launch>

<node

name="usb_cam"

pkg="usb_cam"

type="usb_cam_node"

output="screen"

>

<param

name="video_device"

value="/dev/video0"

/>

<param

name="image_width"

value="640"

/>

<param

name="image_height"

value="480"

/>

<param

name="pixel_format"

value="mjpeg"

/>

<param

name="camera_frame_id"

value="usb_cam"

/>

<param

name="io_method"

value="mmap"/>

<node

name="image_view"

pkg="image_view"

type="image_view"

respawn="false"

output="screen">

<remap

from="image"

to="/usb_cam/image_raw"/>

<param

name="autosize"

value="true"

/>

</node>

</launch>

(二)uvc_camera驅動包uvc_camera驅動包是基于UVC(USBVideoClass)視頻類協(xié)議傳輸方法的視頻采集功能包,能夠實現(xiàn)圖像采集與視頻監(jiān)控的功能二、攝像頭驅動包的使用astrapro_follower.launch文件的主要內容有(二)uvc_camera驅動包的主要內容:src文件夾存放源程序,包括視頻采集程序uvc_cam.cpp、視頻采集節(jié)點實現(xiàn)程序uvc_cam_node.cpp、頭文件uvc_cam.h>CMakeList.txt文件包含了用于安裝動態(tài)鏈接庫和生成可執(zhí)行文件的語句>manifest.xml提供關于uvc_cam功能包的元數(shù)據(jù),包括它的許可信息以及與其他功能包之間的依賴關系>二、攝像頭驅動包的使用astrapro_follower.launch文件的主要內容有參數(shù)名參數(shù)的含義width圖像的寬度,默認值為“320”height圖像的高度,默認值為“240”fps幀速率,默認值為“30”,該參數(shù)設置值得大小會影響顯示圖像的流暢度video_mode圖像的像素格式,默認值為“rgb”,還可以根據(jù)實際情況選擇“yuyv、uyvy、jpeg”frame相機坐標系id,默認值為“camera”,該參數(shù)值會影響該節(jié)點發(fā)布話題的名字device攝像頭連接的端口名,默認為“/dev/video0”camera_info_url相機的參數(shù)文件,默認值為uvc_camera功能包中config文件夾下的“calibration-left.yaml”文件,這個名稱必須與相機標定文件的名稱匹配,否則標定后參數(shù)無法調用usb_cam驅動包常見參數(shù)詳解如表所示:最后兩個參數(shù)在usb_cam-test.launch文件中沒有體現(xiàn),如果需要修改這兩個參數(shù),按照其它參數(shù)的描述格式添加到節(jié)點usb_cam的啟動文件中即可任務實施一、任務準備(一)軟件、硬件準備(二)安全要求及注意事項1.安裝好ROS的臺式電腦,1臺;2.智慧貓ROS智能車,1臺;11.確保智慧貓電源已充滿;22.在跟隨的過程中,不能有障礙物擋在智慧貓和人之間,否則會導致智慧貓跟隨的目標切換為障礙物。

實施步驟有:usb_cam驅動包驅動單目攝像頭01uvc_camera驅動包驅動單目攝像頭02usb_cam單目完成攝像頭標定03驅動Astra深度攝像頭04完成Astra標定(RGB攝像頭標定、紅外深度攝像頭標定)05二、實施步驟二、實施步驟

步驟1:usb_cam驅動包的安裝和使用,具體操作如下:

(1)進入已經(jīng)創(chuàng)建好的工作空間inwinic_ws,下載usb_cam軟件包

(2)編譯功能包、刷新環(huán)境inwinic@inwinic-desktop:~$cdinwinic_ws/srcinwinic@inwinic-desktop:~/inwinic_ws/src$gitclone/ros-drivers/usb_cam.gitinwinic@inwinic-desktop:~/inwinic_ws/src$cd..inwinic@inwinic-desktop:~$catkin_makeinwinic@inwinic-desktop:~$source~/.bashrc(3)查看已連接的攝像頭端口號,顯示中的video*中的*代表具體的數(shù)字,例如video0。記下已連接的端口號(4)打開launch文件修改參數(shù),將/dev/video0”修改為上一步記錄的攝像頭端口號inwinic@inwinic-desktop:~$ls/dev/video*inwinic@inwinic-desktop:~$vi~/inwinic_ws/src/usb_cam/launch/usb_cam-test.launch二、實施步驟

步驟1:usb_cam驅動包的安裝和使用,具體操作如下:

(5)啟動主節(jié)點和攝像頭節(jié)點,即可看到攝像頭的當前畫面

inwinic@inwinic-desktop:~$roslaunchusb_camusb_cam-test.launch二、實施步驟

步驟2:uvc_camera驅動包的安裝和使用,具體操作如下:

(1)進入已經(jīng)創(chuàng)建好的工作空間inwinic_ws,下載usb_cam軟件包

(2)編譯功能包、刷新環(huán)境inwinic@inwinic-desktop:~$cdinwinic_ws/srcinwinic@inwinic-desktop:~/inwinic_ws/src$gitclone/gallingern/uvc_camera.gitinwinic@inwinic-desktop:~/inwinic_ws/src$cd..inwinic@inwinic-desktop:~$catkin_makeinwinic@inwinic-desktop:~$source~/.bashrc(3)查看已連接的攝像頭端口號,顯示中的video*中的*代表具體的數(shù)字,例如video0。記下已連接的端口號(4)打開launch文件修改參數(shù),將/dev/video0”修改為上一步記錄的攝像頭端口號inwinic@inwinic-desktop:~$ls/dev/video*inwinic@inwinic-desktop:~$gedit~/inwinic_ws/src/uvc_camera/launch/camera_node.launch二、實施步驟

步驟2:uvc_camera驅動包的安裝和使用,具體操作如下:

(5)啟動主節(jié)點和攝像頭節(jié)點

inwinic@inwinic-desktop:~$roslaunchuvc_cameracamera_node.launch(6)啟動可視化工具,在工具左上角的下拉選框里選擇“/image_raw”,即可看到攝像頭當前視角的圖像inwinic@inwinic-desktop:~$rqt_image_view二、實施步驟

步驟3:攝像頭的標定(以usb_cam為例)

彈出的窗口中會顯示攝像頭當前視野,如圖所示。(1)安裝攝像頭標定功能包:inwinic@inwinic-desktop:~$sudoapt-getinstallros-melodic-camera-calibration(2)啟動攝像頭(以usb_cam包為例):inwinic@inwinic-desktop:~$roslaunchusb_camusb_cam-test.launch(3)啟動標定命令:inwinic@inwinic-desktop:~$rosruncamera_calibrationcameracalibrator.py--size8x6--square0.024image:=/usb_cam/image_rawcamera:=/usb_cam二、實施步驟

步驟3:攝像頭的標定(以usb_cam為例)

(4)準備好打印的標定靶對準攝像頭(5)移動標定靶,直至窗口直至棋盤格中間的交點都在攝像頭的視野內,移動定標靶,直至右側按鈕都變成深綠色,如圖所示。移動標定靶方式:X:標定靶在攝像頭視野中的左右方向移動。Y:標定靶在攝像頭視野中的上下方向移動。Size:標定靶在攝像頭視野中的前后方向移動。Skew:標定靶在攝像頭視野中的傾斜轉動。二、實施步驟

步驟3:攝像頭的標定(以usb_cam為例)

(6)點擊右側的“CALIBRATE”,然后等待幾分鐘。攝像頭根據(jù)標定圖片,計算并生成校準參數(shù)后,窗口會如圖所示。(7)點擊右側的“COMMIT”按鈕。完成校準參數(shù)的保存。參數(shù)會自動保存到目錄~/.ros/camera_info下,參數(shù)文件的名字為“head_camera.yaml”。標定參數(shù)計算完成如下:二、實施步驟

步驟4:驅動(Astra)深度攝像頭

(6)點擊右側的“CALIBRATE”,然后等待幾分鐘。攝像頭根據(jù)標定圖片,計算并生成校準參數(shù)后,窗口會如圖所示。(7)點擊右側的“COMMIT”按鈕。完成校準參數(shù)的保存。參數(shù)會自動保存到目錄~/.ros/camera_info下,參數(shù)文件的名字為“head_camera.yaml”。標定參數(shù)計算完成如下:二、實施步驟

步驟5:驅動深度攝像頭

(1)安裝攝像頭驅動驅動的下載地址/download.html?id=32(2)下載圖像顯示軟件Niviewer查看圖像下載地址/download.html?id=65找到tool文件夾,在文件夾下包含軟件Niviewer的32位版本和64位版本,根據(jù)自己的系統(tǒng)選擇對應版本打開攝像頭顯示圖像:windows上顯示:二、實施步驟

步驟5:驅動深度攝像頭

(1)安裝依賴包:(2)下載ROS驅動包ROS上顯示:inwinic@inwinic-desktop:~$sudoapt-getinstallbuild-essentialfreeglut3freeglut3-devinwinic@inwinic-desktop:~$sudoapt-getinstallros-melodic-libuvcros-melodic-libuvc-rosinwinic@inwinic-desktop:~$cdinwinic_ws/srcinwinic@inwinic-desktop:~/inwinic_ws/src$gitclone/orbbec/ros_astra_camera.gitinwinic@inwinic-desktop:~/inwinic_ws/src$gitclone/orbbec/ros_astra_launch.gitinwinic@inwinic-desktop:~$roscdastra_camerainwinic@inwinic-desktop:~/inwinic_ws/src/ros_astra_camera$sudo./scripts/create_udev_rulesinwinic@inwinic-desktop:~$cd~/inwinic_wsinwinic@inwinic-desktop:~/inwinic_ws$catkin_makeinwinic@inwinic-desktop:~/inwinic_ws$source~/.bashrcinwinic@inwinic-desktop:~$roslaunchastra_launchastra.launch(3)設置端口權限,刷新環(huán)境:(4)將攝像頭接入到Ubuntu系統(tǒng),然后啟動攝像頭節(jié)點二、實施步驟

步驟5:驅動深度攝像頭

(5)啟動rviz工具(如下圖所示),分別顯示深度圖像、紅外圖像、彩色圖像點擊“file”按鈕,然后選擇“OpenConfig”,找到depth.rviz、ir.rviz、rgb.rviz所在的位置并分別單獨加載出深度圖像、紅外圖像、彩色圖像二、實施步驟

步驟5:驅動深度攝像頭

深度圖像

紅外圖像

彩色圖像二、實施步驟

步驟6:攝像頭標定

(1)啟動攝像頭

彈出下圖彈框,后續(xù)標定步驟與單目攝像頭一致,進行移動直至點亮按鈕,保存標定信息。inwinic@inwinic-desktop:~$rosruncamera_calibrationcameracalibrator.pyimage:=/camera/rgb/image_rawcamera:=/camera/rgb--size8x6--square0.024inwinic@inwinic-desktop:~$roslaunchastra_launchastra.launch(2)標定RGB攝像頭二、實施步驟

步驟6:攝像頭標定

(3)標定紅外深度攝像頭

彈出下圖彈框inwinic@inwinic-desktop:~$rosruncamera_calibrationcameracalibrator.pyimage:=/camera/ir/image_rawcamera:=/camera/ir--size8x6--square0.024標定完成后,在標定窗口點擊“COMMIT”,便會在~/.ros/camera_info目錄下分別生成rgb_***.yaml和depth_***.yaml,下次啟動攝像頭會自動加載參數(shù)隨堂討論隨堂討論我們學習到了單目攝像頭、深度攝像頭的啟動,這兩類攝像頭啟動步驟中有什么共同點呢?又有什么差異呢?1.各組派代表統(tǒng)計遇到的問題。2.各組就各自的主要問題進行交流,并分享解決方法。謝

看《ROS原理與技術應用》能力模塊六掌握視覺傳感器的應用方法

任務二實現(xiàn)深度視覺跟隨功能導入假設你作為汽車感知系統(tǒng)視覺模塊的相關設計人員,想了解下深度攝像頭的具體應用,需要用智慧貓ROS智能車來實現(xiàn)視覺跟隨,那么你需要掌握以下能力:正確的安裝深度視覺跟隨功能包正確配置視覺深度跟隨功能包目錄

CONTENTS0102深度視覺跟隨的定義深度視覺跟隨的功能新授深度視覺跟隨(如圖所示)是指利用深度攝像頭,當人靠近深度攝像頭,距離保持不大于0.7米,這時攝像頭就能夠識別到當前的障礙物,然后攝像頭就可以開始跟隨。一、深度視覺跟隨的定義一、深度視覺跟隨的定義

12543

當人與車面對面或者背對面時,人相對車運動情景如下:人相對車往前運動,車會倒退;人相對車往后運動,車會前進;人相對車往左運動,小車會向右運動;人相對車往右運動,小車會往左運動。當人背對著小車正面站立時,小車的運動方向與人的運動方向一致。深度視覺跟隨功能主要是利用深度攝像頭來實現(xiàn)的。深度攝像頭如圖所示。二、深度視覺跟隨的功能調用astrapro_follower.launch文件,該launch文件啟動跟隨節(jié)點cam_follower調用arduino.launch和astra.launch分別啟動底盤通信節(jié)點和深度攝像頭節(jié)點。cam_follower功能包將獲得的深度攝像頭數(shù)據(jù)進行算法處理后發(fā)出線速度和角速度指令,并通過底盤通信節(jié)點驅動線控底盤行駛,進而實現(xiàn)線控底盤深度視覺跟隨的功能。二、深度視覺跟隨的功能深度視覺跟隨實現(xiàn)深度測試功能的步驟有:astrapro_follower.launch文件的主要內容有二、深度視覺跟隨的功能astrapro_follower.launch文件的主要內容有<launch><includefile="$(findros_arduino_python)/launch/arduino.launch"/><includefile="$(findastra_launch)/launch/astra.launch"/><nodepkg="nodelet"type="nodelet"name="cam_follower"

args="loadcam_follower/CamFollowercamera/camera_nodelet_manager"> <paramname="enabled"value="true"/><paramname="x_scale"value="2.5"/><paramname="z_scale"value="2.0"/><paramname="min_x"value="-0.35"/><paramname="max_x"value="0.35"/><paramname="min_y"value="0.1"/><paramname="max_y"value="0.5"/><paramname="max_z"value="1.3"/><paramname="goal_z"value="0.7"/></node></launch>二、深度視覺跟隨的功能序號參數(shù)名參數(shù)的含義1enabled用于設定是否允許跟隨,“true”表示允許,“false”表示不允許2x_scale用于調整跟隨角速度的系數(shù)3z_scale用于調整跟隨線速度的系數(shù)4min_x掃描框在水平方向的最小尺寸5max_x掃描框在水平方向的最大尺寸6min_y掃描框在垂直方向的最小尺寸7max_y掃描框在垂直方向的最大尺寸8max_z掃描框沿相機水平深度掃描方向的最大尺寸9goal_z保持目標質心與攝像頭的距離

調用這個astrapro_follower.launch文件時需要注意其中一些參數(shù)的設置情況,cam_follwer中常見參數(shù)詳解如表所示:如果想要調整跟隨時,智慧貓與人或移動障礙物保持的距離,調整“goal_z”即可。任務實施一、任務準備(一)軟件、硬件準備(二)安全要求及注意事項1.安裝好ROS的臺式電腦,1臺;2.智慧貓ROS智能車,1臺;11.確保智慧貓電源已充滿;22.在跟隨的過程中,不能有障礙物擋在智慧貓和人之間,否則會導致智慧貓跟隨的目標切換為障礙物。

實施步驟有:打開新的終端,遠程登錄到智慧貓主機01啟動底盤通信節(jié)點02啟動跟隨節(jié)點03人靠近深度攝像頭,距離保持不大于0.7米,識別成功后,攝像頭開始跟隨04功能包問題調試方法05二、實施步驟二、實施步驟

步驟1:啟動底盤通信節(jié)點,具體操作如下:

(1)首先打開新的終端,遠程登錄到主機

(2)啟動底盤通信節(jié)點inwinic@remote:~$sshinwinic@[主機側ip地址]inwinic@inwinic-desktop:~$roslaunchros_arduino_pythonarduino.launch底盤通信節(jié)點正確啟動后,顯示如圖所示。二、實施步驟

步驟2:啟動跟隨節(jié)點,具體操作如下:

(1)啟動跟隨節(jié)點

跟隨節(jié)點正確啟動后,顯示如圖所示。inwinic@inwinic-desktop:~$roslaunchcam_followerastrapro_follower.launch二、實施步驟

步驟3:人靠近深度攝像頭,距離保持不大于0.7米,這時攝像頭就能夠識別到當前的障礙物,然后攝像頭就可以開始跟隨。當人與車面對面或者背對面時,人相對車運動情景如下:12543人相對車往前運動,車會倒退;人相對車往后運動,車會前進;人相對車往左運動,小車會向右運動;人相對車往右運動,小車會往左運動。當人背對著小車正面站立時,小車的運動方向與人的運動方向一致。二、實施步驟

步驟4:功能包問題調試方法具體如下:

(1)當遇到功能包無法正常運行的情況,可以首先查看所有節(jié)點是否正常運行,命令如下:

命令執(zhí)行后,將會正確顯示當前運行的所有節(jié)點,顯示如圖所示。inwinic@inwinic-desktop:~$rosnodelist二、實施步驟

步驟4:功能包問題調試方法具體如下:

(2)然后查詢發(fā)布速度控制信息節(jié)點的訂閱的話題和發(fā)布的話題是否正常,命令如下:

命令執(zhí)行后,顯示如圖所示。inwinic@inwinic-desktop:~$rosnodeinfo/camera/camera_nodelet_manager隨堂討論隨堂討論人靠近深度攝像頭,距離保持不大于0.7米,這時攝像頭就能夠識別到當前的障礙物,然后攝像頭就可以開始跟隨。當人與車面對面或者背對面時,人相對車運動情景有哪些?請簡要敘述出來。1.各組派代表統(tǒng)計遇到的問題。2.各組就各自的主要問題進行交流,并分享解決方法。謝

看《ROS原理與技術應用》能力模塊六掌握視覺傳感器的應用方法

任務三實現(xiàn)車道線識別與巡線功能導入在智能網(wǎng)聯(lián)汽車研發(fā)生產(chǎn)過程中,車道線的識別為汽車自動駕駛提供了關鍵的輔助功能。假設你是一位自動駕駛的調試人員,你需要完成車道檢測。目錄

CONTENTS0102車道檢測技術智慧貓車道識別新授一、車道檢測技術在自動駕駛的環(huán)境感知中,汽車需要感知不同顏色、不同光線下的車道線,通過車道檢測技術指導汽車在正確的區(qū)域內行駛(如圖6-3-1所示)。車道檢測技術為自動駕駛汽車實現(xiàn)自動巡航、自動保持車速與車道位置等行為提供了參考依據(jù),同時也能在汽車即將偏離車道時為駕駛員提供預警,提升汽車安全駕駛性能。一、車道檢測技術車道檢測的目標主要是檢測車道線的形狀,車道的形狀包括寬度和曲率等幾何參數(shù)。在正式的車道檢測之前,需要完成攝像頭校準,用于一處鏡頭畸變帶來的影響,該步驟通過任務二的攝像頭標定操作即可實現(xiàn)。利用攝像頭進行車道識別的算法步驟主要包括圖像預處理、車道線檢測、計算車道中線完成車輛定位,實現(xiàn)效果過程如圖所示。(a)原圖(b)灰度變換(c)高斯平滑(d)邊緣檢測(e)邊緣過濾(f)車道識別一、車道檢測技術在機器視覺領域中,圖像預處理是在進行內容識別前的關鍵一步,目的是在圖像中排除一下干擾因素,提取需要檢測對象的關鍵信息,其主要是通過顏色變化和梯度來生成一個具有過濾閾值的二值化圖像,讓檢測目標更加突出,提高檢測的精準度智慧貓的車道線識別的主要流程如下:1234通過調用OpenCV庫中的函數(shù)capture.open(),來打開攝像頭,并獲取車道線的圖像通過函數(shù)capture.set()來設定獲取圖像窗口的大小、圖像的幀率、圖像的格式對獲取的圖像灰度處理,和二值化處理,找出圖像中最左側的車道線和最右側的車道線,并計算出車道線的中線根據(jù)車道線中線數(shù)據(jù),計算出前方車道線中線的斜率,進而判斷智慧貓應該往哪個方向行走二、智慧貓車道識別在智慧貓中啟動車道線識別的功能,主要是利用track_detection.launch文件調用相關節(jié)點實現(xiàn)。track_detection.launch文件的控制過程是通過調用arduino.launch啟動了底盤通信節(jié)點,同時啟動車道線檢測節(jié)點Track_Detection_node。直接調用車道線檢測節(jié)點Track_Detection_node時將攝像頭拍攝圖像中的道路轉化成一條線引導小車前行。車道線經(jīng)過二值化處理,與周邊路面的顏色對比鮮明(避免攝像頭捕獲的圖像中沒有與車道線相同的顏色,否則容易對車道線的識別產(chǎn)生干擾)。正常情況下,識別的車道線為黑色,地面為白色,處理后的圖像會在車道線的中間顯示一條中線(如圖所示)。二、智慧貓車道識別轉彎的時候,按照設置的PID參數(shù)限制速度,盡量鋪設的車道線在轉彎處為直角。下面將介紹如何利用該功能包來實現(xiàn)車道識別及車道保持的功能。深度攝像頭跟隨主要使用的是track_detection.launch文件,該文件的主要內容如下:該節(jié)點的主要參數(shù)如表所示任務實施一、任務準備(一)軟件、硬件準備(二)安全要求及注意事項1.安裝好ROS系統(tǒng)電腦一臺;

2.行云橋智慧貓一臺;3.車道線場景一套;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論