### 整合氣壓移動滑台應用於機械手臂影像物件追蹤控制
#### 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>一次積分 → 速度 (Velocity)</li>
<li>二次積分 → 位移 (Displacement)</li>
</ul>
</li>
</ol>
</li>
<br>
<li><strong>驗證結果:</strong> 推算出之 3D 軌跡圖能清楚呈現「抓取 → 移動 → 放置」的三段連續動作,符合預期路徑。</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 鋼珠 ≈ 30 pixel,故 3 pixel ≈ 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 />"}