基于視覺體感雙平衡的防暈動系統
2. PID控制
本文引用地址:http://www.j9360.com/article/262227.htm 既然我們要做到實時的精確自動控制,那么就一定離不開自動控制理論中經典算法:PID控制算法。我們使用Intel Galileo實現了兩個PID控制器,一個用于平臺的角度閉環反饋,另一個用于電機的速度閉環反饋。將傳感器采集的角度信息傳遞給角度PID控制器,得到對應的控制量,通過運動解耦來控制三個電機的運轉。而每個電機又有獨立的速度PID控制器,保證電機不會因為負載重量的變化而改變響應速度。
3. 視頻穩定
視頻圖像穩定是我們的雙平衡中不可或缺的一環,由于穩定后的圖像通過視頻眼鏡直接展示給用戶,這就要求我們的圖像需要進行實時處理。整個穩定算法由兩個模塊組成,分別是運動向量檢測和運動補償。運動向量檢測用于計算每一張圖像和前一張圖像之間相對運動的信息,利用得出的相對運動關系,采用運動補償模塊就可以通過反向施加相對運動來達到圖像穩定。整個算法利用OpenCV為基礎實現,由于圖像算法的計算量很大,Baytrail平臺的CPU不能完成實時處理的效果,由于圖像算法具有高度并行的特點,于是通過OpenCL異構計算技術充分利用Baytrail平臺的GPU來加速圖像處理算法,結果處理速度得到了1000倍的提升。
4. 運動向量檢測
運動向量檢測通過提取圖像中的特征點并且跟蹤圖像中特征點的移動來實現,核心算法就是特征點提取和特征點跟蹤。特征點提取采用Harris Corner,本項目提取圖像中特征最強的100點,特征點數目通過兼顧算法的穩定性和速度而確定。特征點跟蹤使用稀疏光流來跟蹤特征點的移動。通過4組匹配的特征點,可以計算出兩張圖像變換的單應性矩陣。由于我們有100組匹配的特征點,而特征點數據中有噪聲,因此采用RANSAC算法排除噪聲較大的點來計算出誤差最小的單應性矩陣。
5. 運動補償
運動補償對圖像中的每個像素計算出經過單應性矩陣變換后的像素坐標,由此可以將一張運動后的圖片恢復到沒有運動的狀態。
應用前景
我們搭建的系統還需要通過實踐來檢驗。7月初,我們搭乘普陀山號客運輪船,當晚海面上風浪較大,在船艙內晃動的感覺是很明顯的。經過10個小時顛簸的旅程,我們采集了大量的傳感器數據并對我們的運行系統進行實體測試。其他乘客的感受和大量實驗數據表明,我們的系統在實現運動平衡方面具有較好的效果。
未來,不同交通工具可以廣泛部署這種產品,以極大地提升乘客的旅行體驗。每種交通工具中只需為易感人群提供少量的平衡座椅,控制結構和算法基本相同對于規模擴大并不會增加太多的成本。同樣,對于像客輪等大型交通工具,內部則可以實現一個更大的平衡甲板來實現對整個船艙的平衡,這樣只需要一套整體系統就可以提供更加舒適的乘坐體驗。
當然,本項目也存在很多尚待改進的部分:從算法的優化到人體工程學的設計,都需要更多的努力;現有的低成本的直流推桿電機的響應速度不足,視頻眼鏡的體驗并不完美,這些都需要我們團隊向著工程化、商品化進行推進。
參考文獻:
[1]暈動病.維基百科[R/OL].( (2013-10-31).http://zh.wikipedia.org/w/index.php?title=%E6%99%95%E5%8A%A8%E7%97%85&oldid=29071020
[2]張林,黃矛.暈動病易感性的研究[J]. 現代生物醫學進展,2010(16):3157-3159
[3]Shi and C. Tomasi. Good Features to Track. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,1994(6):593-600
[4]Opencv v2.4.9 documents image pyramids[R/OL].http://docs.opencv.org/doc/tutorials/imgproc/pyramids/pyramids.html
[5]Lucas B D,Kanade T.An iterative image registration technique with an application to stereo vision. Proceedings of Imaging Understanding Workshop,1981:21-130
[6]Bradski G,Kaehler A.Learning OpenCV: Computer Vision with the OpenCV Library
[7]Szeliski R.Computer Vision:Algorithms and Applications
pid控制器相關文章:pid控制器原理
評論