Skip to main content

第13屆 2020

智慧拼圖

目前問題🚩

  • 硬體
    • 夾爪
    • 固定架
    • 拼圖擺放方式
      • 不變,改善影像抓位置
      • 改變,拼圖的抓放位置
  • 軟體
    • 辨識和光源
    • 影像坐標轉換

代辦分配事項🚩

比賽內容

  • ⚠==自行設定代辦事項的時限。==
  • 討論是否沿用舊的吸盤及輔具。
    • 設計新的吸盤(終端效應器)。
  • 討論比賽規則,並確認所有人皆讀過比賽規則。
  • 列比賽時程式判斷/動作流程。
  • 🆕排拼圖優先順序。
  • 🆕無法辨識之散落拼圖的處理方式。
  • 🆕列出比賽器材清單。
  • 🆕列出比賽時間流程圖。
  • 🆕準備箱子。
  • 硬體
    • 影印測試用的A4拼圖。
    • 規劃拼圖底板、散落拼圖擺放區的實際位置。請注意關卡規則,第4點
    • 設計並製作新的吸盤(終端效應器)。
      • 🆕更新設計。需固定住緩衝金具使其不旋轉、對準夾爪中心。
    • 設計並製作拼圖底板固定治具。
    • 用SolidWorks畫出完整的工作平台(和機械手臂)。
    • 列出拼圖各位置的對應輪廓。
    • 製作可調式燈光(固態繼電器調光)。
      • 確認目前使用的燈之相關規格(問學長)。
      • 找詢並購買適合的固態繼電器及相關零件規格。
        • 注意固態繼電器需高頻、高速操作,也需要散熱器。
      • 寫MCU程式,以高頻PWM來控制固態繼電器。
      • 讓MCU與電腦連線,使C#可以直接控制燈光。
      • 失敗,不可用。
    • 測試吸盤。
      • 🆕找更適合拼圖的吸盤。
      • 訂購中,等貨到測試。
    • 環形燈與柔光紙。
    • 備用的12V電源供應器(吸盤馬達用)。
    • 🆕底紙。
  • 軟體
    • 影像
      • 影像辨識抓各散落拼圖的影像坐標位置。
      • 辨別拼圖方向。
      • Emgu抓拼圖輪廓。
    • 動作
      • 寫基本手臂控制程式。
      • 🆕放拼圖之動作。
      • 將拼圖放進凹槽中之動作模擬。
      • 測試手臂運動極限位置。
        • x0,y680,z15; x0,y250,z15.
      • 改position.csv的儲存方式。
      • 旋轉拼圖算式及動作。
      • 列動作流程。
    • 其它
      • 建Git。
      • 教Git。
      • 位置log檔案。
      • 影像坐標與實際坐標轉換。
        • 抓點。
        • 數學式。
          • 線性回歸。
          • 折線對應
          • 曲線擬合

一般事務

  • 確認並訂定每週固定討論時間。
    • 每週三,下午一點整。
  • 訂定每週固定討論事項。
    • 進度報告。
    • 代辦事項。
    • 預計完成代辦事項的日期。
  • 討論賽前分工(軟體、硬體、確認消息、雜項...)。
    • 軟體:
    • 硬體:
    • 確認FB新消息:
  • 關卡計劃書
  • 討論賽時分工(操作、擺放...)。

器材清單

  • 拼圖底板固定治具。
  • 吸盤固定器(終端效應器)。
  • 吸盤真空泵與其12VDC電源供應器。
  • Arduino與繼電器模組。

動作流程

  1. 開始。起始位置在長邊散落拼圖區。
  2. 對此區散落的拼圖進行影像辨識。此時得知該區之各散落拼圖的中心位置、角度與編號。
  3. 移動至短邊散落拼圖區。
  4. 對此區散落的拼圖進行影像辨識。此時得知該區之各散落拼圖的中心位置、角度與編號。
  5. 移動到吸取拼圖預備位置,準備吸取各散落拼圖。
  6. 依照優先順序將散落拼圖放置於拼圖底板上。
    1. 移動到散落拼圖的中心位置上方。
    2. 圓周旋轉位置轉換,以配合散落拼圖之角度。
    3. 向下至吸盤壓到散落拼圖。
    4. 開啟吸盤進行吸取。
    5. 向上將散落拼圖吸起。
    6. 直接旋轉J6/C回到位置90。
    7. 移動到對應之拼圖底板位置。
    8. 進行放置拼圖動作。
    9. 關閉吸盤後向上。
  7. 完成。

拼圖編號

位置&編號

拼圖樣式示範

row\colcol_0col_1col_2col_3col_4col_5col_6
row_000(A1)01(B1)02(C2)03(B1)04(C2)05(B1)06(A2)
row_110(C1)11(D2)12(D1)13(D2)14(D1)15(D2)16(C1)
row_220(B2)21(D1)22(D2)23(D1)24(D2)25(D1)26(B2)
row_330(C1)31(D2)32(D1)33(D2)34(D1)35(D2)36(C1)
row_440(A2)41(B1)42(C2)43(B1)44(C2)45(B1)46(A1)

▲ 拼圖編號(拼圖輪廓)

輪廓種類

A平平凹凸B平凹凹凸C平凹凸凸D凹凹凸凸
A1B1C1D1
A2B2C2D2

影像辨識方式

  • 使用HSV閥值找出桌上所有拼圖位置。
    • 需要桌子 (後稱底板) HSV值,並用InRange函式取得桌子輪廓二值化圖片。
    • 將二值化圖片 Not 取得桌子以外的物品,使用MinAreRect 的函式取得最小包圍 Rectangle。
    • 設定Rectangle之大小 (if) 取得拼圖位置。
  • 裁減並矯正
    • 使用Rotate Rectangle 的旋轉矩形取出旋轉之Rectangle並旋轉使其轉正 (並未必正確,未來會再旋轉三次比對) 。
    • 裁切方式 → 如以 RGB/HSV 色彩方式比對 將有拼圖凹凸問題將以下方式嘗試
      1. 以ApproxPoly 多邊形逼近框選輪廓,以Grahics的方式裁切出拼圖形狀。
      2. 將拼圖往內裁切,將凹陷與凸起部分切掉成方形區域。
  • 進行比對
    • 使用RGB與HSV方式比對
      1. 將電子檔圖片切割 (Width: 7刀 Height: 5刀 共35片) 以下稱切割檔
      2. 製作 (R、G、B) Mask圖片與 切割檔 和 裁切後拼圖檔 (以下稱拼圖檔) 做 AND 運算
      3. 將運算完圖片進行二值化後相減,尋找Pixel差異,差異數量最少者為相同圖片並記錄其位置
    • 使用演算法方式比對
      1. 探索SIFT、SRUF、ORB演算法比對
      2. 使用相似度比對。

問題

    • Q:在競賽細則-關卡規則中的第4點,散落的拼圖是只能擺在拼圖底板的長邊與寬邊各一區約A4大小的地方嗎?所以不能擺在拼圖底板的兩長邊、兩短邊或其它位置嗎?
    • A:我們還是維持細則規範,==擺在長短邊各一區==。
    • Q:散落拼圖擺放的區域底下可以放底紙嗎?例如我們在散落拼圖的區域放A4白紙,然後比賽時請評審將散落的拼圖平放於該白紙上。
    • A:==可以放底紙==。
    • Q:競賽細則-關卡規則中的第5點,意思是所謂的「拼對拼圖」只考慮其拼圖輪廓能和底板刻痕配對、而不在意圖樣嗎?也就是即使有圖樣不同,但只要該拼圖的凹凸輪廓和所放位置底板刻痕的凹凸輪廓一樣就算拼對嗎?
    • A:==圖案也要正確==。
    • Q:比賽當日所使用的拼圖上的圖樣,還有每塊拼圖的凹凸輪廓會和提供的範例拼圖一樣嗎?
    • A:比賽當日用的跟寄給各隊練習用的==拼圖會一模一樣==。
    • Q:拼圖有35片,拼對一個得5分,但滿分只有105分,而不是35×5=175分?
    • A:改為一片3分。

討論記錄

  1. 6/27-11:15 am。
    1. 進度報告
      1. 影像辨識可以根據RGB分別進行4個方向的比對,找出最相似的圖片。
    2. 討論賽前分工。
    3. 討論是否沿用舊的吸盤及輔具:設計新的吸盤(終端效應器)。
    4. 討論比賽規則,並確認所有人皆讀過比賽規則。
    5. 討論代辦事項。
  2. 6/30-01:00 pm。
    1. 進度報告
      1. 影印測試用的A4拼圖。
    2. 討論如何辨識與比對拼圖。
    3. 討論如何建立比對用的圖檔。
    4. 教Git。
  3. 7/08-01:10 pm。
    1. 進度報告
      1. 吸盤製作完,還需再修改。
      2. 查過固態繼電器資料。
      3. C#讀取外部儲存各拼圖位置之表格CSV檔。
    2. 討論接下來的分工與期限。
    3. 討論固態繼電器調光燈之做法。
  4. 7/15-01:10 pm。
    1. 進度報告
      1. 新手臂控制界面。
      2. 以固態繼電器控制調光不可行。
    2. 討論新的吸盤固定座。
    3. 討論燈光的解決辦法。
    4. 討論新的吸盤。
    5. 告知需準備備用電源供應器。

比賽事項

我們是第7組。

重要日程

日期事項
7/30(四)~8/07(五)決賽需求調查
8/18(二)下午手臂進場
8/19(三)決賽。==上午拼圖==、分類;下午撞球。
==8/22(六)?==頒獎典禮

評分準則

拼圖拼於正確位置:3分/個(拼錯不倒扣),共105分。

本屆取消積分制,改依各關成績頒發單項冠亞季軍。如遇同分狀況,將再比較執行時間。

關卡規則

  1. 關卡任務:機械手臂將==7×5=35片==散落於底板外的拼圖,拼回至底板內。
  2. 道具規格:拼圖全圖長寬==含邊框約與A4紙相同==,材質如市售常見==紙質拼圖==。比賽當天主辦單位統一提供。
  3. ==拼圖底板可以輔具固定於工作平台上==,但不可有穿孔、擠壓等破壞情形。
  4. 35片散落的拼圖將請評審或工作人員平放於工作平台上,拼圖底板的==長邊與寬邊各一區==(各區約為A4紙張大小),==拼圖一律圖案面朝上,不會彼此堆疊==。
  5. 本關卡依拼對位置(對準底板刻痕)的塊數計分。

統一規範

  1. 本次比賽==不提供無線網路==,若有需要請參賽隊伍自行預備。惟現場廠商、觀展人數眾多,可能會有訊號干擾的問題,請各隊伍自行留意。
  2. 本屆賽事為全部參賽隊伍輪用主辦單位提供之手臂與工作平台,尺寸請參見競賽細則
  3. ==相機、光源無數量限制,但皆須架設於手臂上==,且以不影響其他隊伍進行比賽為原則。
  4. 自製電爪及氣爪、市售氣爪皆可使用。==不可使用市售電爪==。
  5. 每一隊伍依主辦單位安排使用對應之機器手臂參加決賽,終端效應器可用粗糙之材質防滑,使用「吸」或「抓」的方式進行任務,==但不得使用具有黏性之材質==。
  6. 主辦單位==會統一提供空壓機==。
  7. 電源不可從隊伍休息區接電,請一律使用比賽區域內的插座。
  8. 參賽隊伍==完成任務時,須舉手喊出「完成」==, 並告知評審及記錄人員,得以提早結束計時。
  9. 競賽時間內==如失誤得以要求重新執行任務==,但所有條件必須還原至初始狀態,時間繼續計算。上述情況中,在不影響競賽進行及記錄的狀況下,治具可以不從工作平台移開。
  10. 參加本競賽之機器手臂,由隊員==按下按鈕啟動機器手臂或於緊急事件時按下停止鍵==(強制規定不得於手臂運行期間碰觸任何設備),因應各關道具準備,將允許另一位隊員從旁協助道具擺放,過程中必須以全自主運作完成任務。==若有故障情形得提出維修及調整==,任何形式的遙控操作需於賽前告知競賽評審委員,如未告知即於賽中執行,經評審查證屬實後予以淘汰。
  11. 凡違反競賽辦法、競賽細則中之規定,經評審及工作人員規勸而不修正,該關卡將不予採計。
  12. 主辦單位保留競賽規則詮釋之權利。

機台輪用與計時機制

機台輪用與計時機制

相關資料