1. 程式人生 > >專案實戰——基於計算機視覺的物體位姿定位及機械臂矯正(一)

專案實戰——基於計算機視覺的物體位姿定位及機械臂矯正(一)

專案實戰——基於計算機視覺的物體位姿定位及機械臂矯正(一)

思路

經過這幾天的資料查詢,我逐步有了思路,現整理如下:

  1. 抓取物品定為牛奶盒,主要優勢在於,質量輕、體積小、稜角分明,便於識別抓取;
  2. 工作環境設定在傳送帶上,人工隨機將牛奶盒以不同方向隨機放入;
  3. 在攝像機的使用上採用雙目相機,而非單目相機;
  4. 開發環境,VS2015,C++,使用Opencv3(其實我更擅長Matlab,但是這個目前更加普及);
  5. 關於標誌物,我如下圖所示:我將牛奶盒分了ABCDEF六個面,有標誌的為A面,頂部為B面,背部C面,底部D面,前部E面,後部F面。標誌物為紅色部分,上下左右的長度不同,分別為5mm,10mm、15mm、20mm,這樣通過監測標誌物很容易就能知道對應的面數,也比較容易計算出物體的具體位置。不過這樣一來,就必須讓標誌物面向攝像頭,算是降低難度了吧
  6. 之前想的與其識別標誌物,不如識別矩形物體,但事實上在工業生產過程中所有物品不可能是規則的,而且也不符合教授的題目要求;
  7. 專案的關鍵在於,利用攝像機確定物體在世界座標系中的位置,或者說攝像機生成一個深度的影象,關於機械臂的抓取控制目前已經有比較成熟的演算法了;
  8. 目前先用比較“簡單”的方法實現,後面關於影象識別和機械臂的計算我打算優化演算法,採用神經網路的演算法;
  9. 關於硬體,之前想的是全部利用STM32做,但是C++尤其是opencv轉32很困難,改變思路:電腦連線攝像頭進行識別,進行機械臂的動作計算,結果通過WIFI傳送到32上,32僅執行舵機控制。
  10. 利用紅外對管,當傳送帶上物品通過時觸發拍照。
  11. 首 先需要能夠驅動工業相機,並通過硬體觸發的方式使相機能 夠在 合 適 的時 機 獲 取多 張 圖 片;其 次,應 能對 相 機 獲 取 到 的 圖片進行有效的影象處理,需進行一系列的演算法設計從而能 夠實時獲取目標物的影象座標;再次,還應進行攝像機標定, 將 獲 取 到的 目 標 物圖 像 坐 標轉 換 成 世界 坐 標 系 也 就 是 機 器 線上的真實座標;最後系統要能夠與上位機控制部分整合並 能夠持續不間斷的運作,直到系統要求退出。
  12. 在文獻上找到了如下流程,可以作為參考: 模組化的思路很不錯
  13. 流程2
  14. 首先要從相機的標定開始,其次進行影象識別,最後進行機械臂運動求解。
    Whatever,從相機標定開始
    最後貼上我找的一些文獻,僅供參考。
    如果有做這方面的朋友可以參考一下
    以上就是我的具體思路,可能會有問題,歡迎各路大佬指教。
    Hunt Tiger Tonight
    2018-10-18
    PS:原創內容,轉載請註明出處。