【ROS教程 008】機器視覺
在ROS系統中,對機器視覺的支援是通過新增攝像頭驅動,整合OpenCV演算法庫,整合基於機器人位置對攝像頭光學座標系進行座標變換(tf)的工具和一系列第三方工具實現的,包括視覺測量、擴增實境、物體檢測和智慧感知等各種演算法。
(1)連線和執行攝像頭
ROS系統提供官方支援的FireWire攝像頭,由於實驗條件限制沒有這種裝置,使用USB攝像頭進行展示。有兩個主要的選項能用於USB攝像頭驅動。
num1 usb_cam
如果想安裝usb_cam需要執行以下命令:
$ cd ~/dev/rosbook
$ svn co http://svn.code.sf.net/p/bosch-ros-pkg/code/trunk/stacks/bosch_drivers/usb_cam
$ cd usb_cam
$ rosmake usb_cam
在這之後執行以下命令,顯示攝像頭資料,其本身就是USB攝像頭的原始影象,即為彩色。
$ roslaunch chapter6_tutorials usb_cam.launch view:=true
類似地其他好的選擇還有gscam。
(2)使用OpenCV製作USB攝像頭驅動程式
驅動是通過呼叫OpenCV的cv::VideoCapture類來實現的,它能驅動攝像頭並且允許我們去修改它的一些書本所支援的引數。然而,事實上使用usb_cam不可能實現這些功能,因為CameraInfo訊息是不可用的,因此camera_info_url並不能在引數檔案params/usb_cam/logitech.yaml中設定。而在gscam中,我們可以進行更多的控制。
使用OpenCV實現攝像頭驅動主要有兩種方法。第一是根據每秒鐘給定的影象數量(FPS)進行輪詢,第二是能夠根據FPS設定一個計時器並在計時器的回撥函式中完成實際的讀取。主要包括的技術有建立USB攝像頭驅動功能包、使用ImageTransport API釋出攝像頭幀、使用cv_bridge進行OpenCV和ROS影象處理、使用ImageTransport釋出影象、在ROS中使用OpenCV等。
以下為camera_polling的顯示結果。
$ roslaunch chapter6_tutorials camera_polling.launch camera_index:=0 fps:=15 view:=true
(3)標定攝像頭
在USB攝像頭驅動下進行的標定
$ roslaunch chapter6_tutorials camera.launch calibrate:=true
雙目標定
$ sudo apt-get install v4l-utils qv4l2
$ roslaunch chapter6_tutorials camera_stereo.launch view:=true
這裡我的實驗效果並不好,有時間再仔細研究。
使用viso2執行視覺測距
在ROS Fuerte和Groovy中都包含了當前版本的viso2,然而這兩個版本中都需要使用catkin編譯系統。我們已經介紹了rosmake經典的編譯系統,在此我們為基於catkin安裝的viso2進行詳細的指導,執行如下命令:
$ cd ~
$ mkdir ros
$ cd ros
$ mkdir -p catkin_ws/src
$ cd catkin_ws/src/
References:
[1]. Aaron Martinez Enrique Fern andez, ROS機器人程式設計[B], P126-160, 2014.
http://wiki.ros.org/gscam
http://wangsx.cn/?p=604
https://www.cnblogs.com/Jessica-jie/p/6520061.html
相關文章
- 【機器視覺】FANUC機器人視覺功能詳解;智慧工廠對機器視覺有啥需求?視覺機器人
- labview 標定 labview 機器視覺 零基礎 教程 培訓 學習 視覺View視覺
- 機器視覺相比智慧生物視覺的區別視覺
- 機器視覺VisionPro之PMAlign視覺
- 【機器視覺】基於機器視覺的工業機器人定位系統;機器視覺技術在印刷包裝行業中的應用視覺機器人行業
- CCD視覺上料、機器人擺盤、視覺擺盤視覺機器人
- ROS | ROS機器人開發案例(古月)學習ROS機器人
- 機器視覺應用例項視覺
- 機器視覺原理及特點視覺
- 正在消失的機器視覺公司視覺
- ROS——無人機ROS模擬包 rotors_simulator 編譯教程ROS無人機編譯
- 【ROS教程】ROS常用API講解ROSAPI
- 【ROS教程】ROS常用命令ROS
- ROS 動態引數伺服器教程ROS伺服器
- 機器視覺(12)淺說機器視覺系統概述及其國內外的現狀視覺
- 透過機器人應用視覺機器人視覺
- 機器人視覺引導系統機器人視覺
- 機器視覺之外,機器人的感知補全計劃視覺機器人
- 機器學習工作坊 - 計算機視覺機器學習計算機視覺
- 機器視覺以及驗證碼識別視覺
- [Halcon] 機器視覺中常用運算元視覺
- opencv——機器視覺檢測和計數OpenCV視覺
- 探索3D機器視覺|顯揚科技3D機器視覺在機場行李分揀中的應用3D視覺
- ROS機器人導航一 : 從英雄聯盟到ROS導航ROS機器人
- 【機器視覺】20個視覺應用專案展示,機器代替人眼來做測量和判斷!視覺
- 工業機器視覺系統相機如何選型?視覺
- Rust 程式設計視訊教程(進階)——008Cargo 工作空間Rust程式設計Cargo
- 膠囊網路與計算機視覺教程 @CVPR 2019計算機視覺
- ROS 載入yaml教程ROSYAML
- 【matplotlib教程】資料視覺化視覺化
- 嵌入式機器視覺概念和技術視覺
- 實現ARM+ROS(機器人作業系統)之執行ROS!ROS機器人作業系統
- 智慧相機在機器視覺應用領域廣泛視覺
- 工業機器人領域機器視覺的四個顯著功能機器人視覺
- 【機器視覺】機器人及視覺檢測系統在螺絲檢測包裝生產線上的應用視覺機器人
- 工業領域機器視覺原理及優勢視覺
- 機器視覺系統設計的基本結構視覺
- 嵌入式視覺領域的機器學習視覺機器學習
- [譯] TensorFlow 教程 #13 – 視覺化分析視覺化