### 整合氣壓移動滑台應用於機械手臂影像物件追蹤控制 #### Development of an Integrate Pneumatic Moving Slide for Vision Tracking Control of Transportable Robotic Arm --- <style> /* 只有加了 .top-align 的投影片,才會改成從上方開始排 */ .reveal .slides>section.top-align, .reveal .slides>section>section.top-align { top: 0 !important; transform: none !important; padding-top: 0px; /* 想更貼上緣就改 0 */ } </style> <!-- .slide: class="top-align" --> <p style="font-size: 3em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> Summary </p> <p style="text-align: left;font-size: 0.8em;font-weight: bold;"> 🐟 論文摘要 </p> <p style="text-align: left;font-size: 0.8em;font-weight: bold;"> 🐟 系統架構 </p> <p style="text-align: left;font-size: 0.8em;font-weight: bold;"> 🐟 視覺方法 </p> <p style="text-align: left;font-size: 0.8em;font-weight: bold;"> 🐟 軌跡推算與控制 </p> <p style="text-align: left;font-size: 0.8em;font-weight: bold;"> 🐟 實驗結果 </p> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 論文摘要 </p> <p style="text-align: left;font-size: 0.7em; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 本論文提出一套整合氣壓移動滑台與機械手臂的自動化控制系統,透過將手臂架設於氣壓滑軌上作為第四軸(外部軸),解決傳統固定式手臂工作範圍受限的問題。系統結合了機器視覺技術,能精準偵測、追蹤並抓取微小目標物(10mm 鋼珠),實現長距離的自動化取放作業。 </p> <p style="font-weight: bold;text-align: left;font-size: 0.5em; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 系統流程: </p> <div class="r-stack"> <p style="text-align: left;font-size: 0.5em; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 1. 首先利用 PID 控制氣壓滑台移動至指定工作區域(抓取區或放置區),待滑台穩態後,啟動安裝於手臂末端的相機進行視覺辨識。 <br><br> 2. 採用霍夫圓偵測法(Hough Circle Transform)克服金屬反光干擾,精準鎖定鋼珠圓心,並透過仿射轉換(Affine Transformation)將影像座標轉換為機械手臂空間座標。 <br><br> 3. 最後,機械手臂依據計算出的座標進行追蹤與抓取,並透過三軸加速規驗證手臂移動軌跡的平滑度與準確性,經實驗驗證,鋼珠取放成功率達 100%。 </p> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 系統架構 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 設計核心 </p> <ul style="font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <li><strong>異質系統整合:</strong>以 PC 為核心,透過 USB 整合 Arduino、LabVIEW (MyDAQ) 與 Python (視覺) 三大平台。</li> <li><strong>擴展工作空間:</strong>將 uArm 機械手臂安裝於氣壓無桿缸滑台上,形成「3軸 + 1軸」的運動系統。</li> <li><strong>Eye-in-Hand 視覺:</strong>工業相機固定於手臂末端,隨手臂移動進行動態偵測。</li> </ul> <img style="width: 50%;" src="https://hackmd.io/_uploads/ryQsxG-b-e.png" /> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 系統架構 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 硬體設備 </p> <ul style="font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <li><strong>執行機構:</strong>uArm Swift Pro (4軸手臂,負責抓取)、氣壓無桿缸 (1000mm,負責長距離移動)。</li> <li><strong>感測器:</strong>IDS 工業相機 (視覺辨識)、HC-SR04 超音波 (位置回授)、HW-013 加速規 (軌跡驗證)。</li> <li><strong>控制器:</strong>Arduino Mega 2560 (發送 G-Code 控制手臂)、NI MyDAQ (執行 PID 運算與訊號擷取)。</li> </ul> <img style="width: 50%;" src="https://hackmd.io/_uploads/Sy_juGWbZl.png" /> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 系統架構 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 訊號連接 </p> <ul style="font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <li><strong>Arduino (手臂端):</strong>透過 Serial Port 發送 G-Code;並透過 Digital Pin 與 MyDAQ 交換「到位/抓取」訊號。</li> <li><strong>MyDAQ (滑台端):</strong>AO 輸出 0-10V 控制比例閥;DIO 讀取超音波感測器數值。</li> <li><strong>USB-6008 (驗證端):</strong>獨立擷取 HW-013 三軸加速規的類比電壓訊號,用於後續軌跡分析。</li> </ul> <img style="width: 60%;" src="https://hackmd.io/_uploads/rkcX_G-ZWg.png" /> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 視覺方法 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 影像處理流程 </p> <div class="r-stack"> <ul style=" margin: 0; padding-left: 100px; font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <li><strong>相機校正 (Camera Calibration):</strong>使用棋盤格校正板,修正鏡頭畸變與內外參數。</li> <li><strong>前處理 (Preprocessing):</strong> <ul style="margin: 0; padding-left: 20px;"> <li><strong>中值濾波:</strong>去除雜訊但保留邊緣。</li> <li><strong>灰階化 & 二值化:</strong>分離目標與背景。</li> <li><strong>形態學處理:</strong>利用膨脹/侵蝕去除反光造成的破洞。</li> </ul> </li> </ul> <img class="fragment" style="width: 100%;" src="https://hackmd.io/_uploads/SyEBkFWWbe.png" /> <img class="fragment" style="width: 100%;" src="https://hackmd.io/_uploads/HyvwkF-bbe.png" /> <img class="fragment" style="width: 60%;" src="https://hackmd.io/_uploads/BJk45mWZZl.png" /> </div> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 視覺方法 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 核心辨識演算法比較 </p> <div class="r-stack"> <ul style=" margin: 0; padding-left: 100px; font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <li><strong>方法一:輪廓法 (Contour Method)</strong> <ul style="margin: 0; padding-left: 20px;"> <li>原理:找尋二值化後的連通區域。</li> <li>缺點:易受鋼珠表面反光點干擾,造成誤判。</li> </ul> </li> <li><strong>方法二:霍夫圓偵測 (Hough Circle) <span style="color: brown;">[採用]</span></strong> <ul style="margin: 0; padding-left: 20px;"> <li>原理:將影像轉換至參數空間,利用投票機制找圓。</li> <li>優點:抗噪性佳,能忽略反光點,辨識準確率高。</li> </ul> </li> </ul> <img class="fragment" style="width: 100%;" src="https://hackmd.io/_uploads/S1IpAm-W-x.png" /> <img class="fragment" style="width: 100%;" src="https://hackmd.io/_uploads/rySUbEW-bx.png" /> <img class="fragment" style="width: 100%;" src="https://hackmd.io/_uploads/r1gY-EZZ-g.png" /> </div> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 視覺方法 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 方法一:輪廓法 </p> <div class="r-stack"> <ul style=" margin: 0; padding-left: 100px; font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <br> <li><strong>實作流程 (Python + OpenCV):</strong> <ol style="margin: 0; padding-left: 20px; "> <li><strong>前處理:</strong> 將影像二值化 (Binarization)。</li> <li><strong>找輪廓:</strong> 取得所有連通區域的邊界點。</li> <li><strong>算質心:</strong> 計算輪廓的矩 (Moments),再代入公式求出中心座標 (Cx, Cy)。</li> </ol> </li> <br> <li><strong>本研究遇到的限制 (缺點):</strong> <ul style="margin: 0; padding-left: 20px; color: #d9534f;"> <li><strong>光線敏感:</strong>鋼珠表面的<strong>反光亮點</strong>會導致二值化後的輪廓破裂。</li> <li><strong>誤判:</strong>OpenCV 會將破裂的輪廓視為多個不同物體,導致質心計算錯誤或追蹤不穩定。</li> </ul> </li> </ul> <img class="fragment" style="width: 95%;" src="https://hackmd.io/_uploads/SJhS54bbbx.png" /> <img class="fragment" style="width: 96%;" src="https://hackmd.io/_uploads/Bkj85E-ZZe.png" /> </div> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 視覺方法 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 方法二:霍夫圓偵測 (Hough Circle) <span style="color: red; font-size: 0.8em;">[本研究採用]</span> </p> <div class="r-stack"> <ul style=" margin: 0; padding-left: 100px; font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <br> <li><strong>核心原理 (投票機制):</strong> <ol style="margin: 0; padding-left: 20px; "> <li><strong>邊緣轉換:</strong> 將影像空間中的每個邊緣點,轉換到參數空間。</li> <li><strong>畫圓投票:</strong> 每個邊緣點都畫出可能的圓,這些圓交會最密集的地方就是「圓心」。</li> <li><strong>確認圓心:</strong> 透過累加器 (Accumulator) 找出票數最高的點,即為鋼珠中心。</li> </ol> </li> <br> <li><strong>本研究採用的優勢 (優點):</strong> <ul style="margin: 0; padding-left: 20px; color: #d9534f;"> <li><strong>抗噪性強:</strong> 即使鋼珠中間有反光白點(導致邊緣不連續),只要外圍輪廓存在,就能準確投票出圓心。</li> <li><strong>單次辨識準確:</strong> 相比輪廓法,霍夫圓能直接濾除內部雜訊,一次就能抓到正確的圓心位置。</li> </ul> </li> </ul> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/Byl52NZ-Zl.png" /> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/ByA2hEZ--e.png" /> </div> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 軌跡推算與控制 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 氣壓滑台定位控制 <div class="r-stack"> <ul style=" margin: 0; padding-left: 100px; font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <li><strong>控制目標:</strong> 使滑台精準移動並停駐於兩個工作點: <ul style="margin: 0; padding-left: 20px;"> <li>抓取區 (180mm)</li> <li>放置區 (680mm)</li> </ul> </li> <br> <li><strong>閉迴路控制系統 (Closed-loop Control):</strong> <ul style="margin: 0; padding-left: 20px;"> <li><strong>感測器 (Sensor):</strong> HC-SR04 超音波測距模組 (回授當前位置)。</li> <li><strong>控制器 (Controller):</strong> LabVIEW 實作 PID 演算法。</li> <li><strong>致動器 (Actuator):</strong> 電磁閥 (調節 4.8V~5.6V 電壓控制氣流量)。</li> </ul> </li> <br> </ul> <img class="fragment" style="width: 75%; margin-top: 10px;" src="https://hackmd.io/_uploads/BksHGSZZZg.png" /> </div> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 軌跡推算與控制 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 機械手臂軌跡推算 <div class="r-stack"> <ul style=" margin: 0; padding-left: 100px; font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <li><strong>目的:</strong> 利用外部感測器驗證機械手臂之實際運動路徑與平滑度。</li> <br> <li><strong>訊號處理流程:</strong> <ol style="margin: 0; padding-left: 20px;"> <li><strong>校正與中心化:</strong> 將電壓轉換為加速度 (g),並扣除靜止時的平均偏差 (Bias) 使其歸零。</li> <li><strong>濾波 (Filtering):</strong> 使用低通濾波器濾除高頻雜訊,並設定門檻值 (Threshold) 消除靜止時的微小震動。</li> <li><strong>積分運算 (Integration):</strong> <ul style="margin: 0; padding-left: 20px;"> <li>一次積分 &rarr; 速度 (Velocity)</li> <li>二次積分 &rarr; 位移 (Displacement)</li> </ul> </li> </ol> </li> <br> <li><strong>驗證結果:</strong> 推算出之 3D 軌跡圖能清楚呈現「抓取 &rarr; 移動 &rarr; 放置」的三段連續動作,符合預期路徑。</li> </ul> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/rJqOSSWWZx.png" /> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/BJYoQrWW-l.png" /> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/r1KRQHWb-e.png" /> </div> --- <!-- .slide: class="top-align" --> <p style="font-size: 1.4em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 實驗結果與結論 </p> <p style="text-align: left;font-size: 0.8em; color: brown; font-weight: bold; font-style: italic; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> 系統整合測試結果 <div class="r-stack"> <ul style=" margin: 0; padding-left: 100px; font-size: 0.5em; line-height: 1.5; font-family: 'Times New Roman', '微軟正黑體', sans-serif;"> <li><strong>測試條件:</strong> <ul style="margin: 0; padding-left: 20px;"> <li>對 10 顆 10mm 鋼珠進行連續取放測試。</li> <li>整合滑台移動、視覺辨識與手臂動作。</li> </ul> </li> <br> <li><strong>量化成果:</strong> <ul style="margin: 0; padding-left: 20px;"> <li><strong>抓取成功率:</strong> <span style="color: red; font-weight: bold;">100%</span></li> <li><strong>放置成功率:</strong> <span style="color: red; font-weight: bold;">100%</span></li> <li><strong>單次循環時間:</strong> 約 57 秒</li> </ul> </li> <br> <li><strong>定位精度:</strong> <ul style="margin: 0; padding-left: 20px;"> <li>影像解析度:640 x 480。</li> <li>視覺定位誤差 < 3 pixel。</li> <li>(換算:10mm 鋼珠 &#8776; 30 pixel,故 3 pixel &#8776; 1 mm)</li> </ul> </li> </ul> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/SkZ5hrbWZl.png" /> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/ry_jhBZ-Wx.png" /> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/S19anSWW-g.png" /> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/B10RhHbZbl.png" /> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/SJvxpHW-Zg.png" /> <img class="fragment" style="width: 100%; margin-top: 10px;" src="https://hackmd.io/_uploads/B1CWaB-WWg.png" /> </div>
{"slideOptions":"{\"theme\":\"league\",\"slideNumber\":\"c/t\",\"center\":false}","title":"整合氣壓移動滑台應用於機械手臂影像物件追蹤控制","contributors":"[{\"id\":\"ee8f139e-adc8-45cc-b8cf-7c8859ceef62\",\"add\":31066,\"del\":15151,\"latestUpdatedAt\":1763967006803}]","description":"<img\n style=\"width: 50%;\"\n src=\"https://hackmd.io/_uploads/ryQsxG-b-e.png\"\n />"}
    92 views
   Owned this note