Khepera III 工具箱/示例/測量實際速度
本示例演示如何使用地面感測器實驗測量機器人的實際速度。將一張紙放在地板上,機器人以要測量的速度穿過紙張。機器人使用地面感測器檢測何時進入和離開紙張,並記錄兩個時間。由於紙張的長度是已知的,因此可以計算出實際速度。
啟動 Khepera III 機器人並確保它連線到您的計算機透過 WLAN。在以下說明中,我們假設您正在使用機器人 203。將一張白紙貼上在深色地板上,並將機器人放置在紙張前面。
將 motor_initialize、motor_stop 和 infrared_proximity 程式複製到機器人上
cd Programs k3put +203 motor_initialize motor_stop infrared_proximity
然後,將 measure_real_speed 程式從示例資料夾複製到機器人上
cd ../Examples/measure_real_speed k3put +203 measure_real_speed
登入機器人
k3go +203
並輸入
cd your_username ./motor_initialize
以初始化電機。
在進行速度測量之前,我們需要配置進入和離開紙張時的地面閾值,以及紙張的大小。
要找出地面閾值,請輸入
./infrared_proximity
一次是機器人放在白紙上,另一次是機器人放在深色地板上。您將獲得如下結果
# On the dark floor
$IRPROXIMITY,0,12496,44,9,8,15,6,43,3,69,48,3195,3021
# On the white sheet of paper
$IRPROXIMITY,0,21438,97,29,28,52,56,127,20,120,99,3977,3973
其中每次測量中的最後兩個數字屬於地面感測器。進入紙張時使用的閾值 (--floor-threshold-on) 應該略低於在白紙上測量的值,在本例中為 3900。離開紙張時使用的閾值 (--floor-threshold-off) 應該略高於在深色地板上的測量值,在本例中為 3200。
要測試閾值是否有效,將機器人放置在紙張前面約 5 釐米處,並啟動
./measure_real_speed --speed 10000 --floor-threshold-on 3900 --floor-threshold-off 3200
機器人應該報告它何時進入和離開紙張,並在紙張後約 5 釐米處停止。如果結果不令人滿意,請調整閾值並再次測試。motor_stop 程式可能有助於在 measure_real_speed 程式未檢測到紙張邊緣的情況下停止機器人。
使用文字編輯器開啟 run.pl 並調整地面閾值。如果您沒有使用 A4 紙張(縱向),請調整紙張大小。
將機器人放置在紙張前面,並啟動
./run.pl
機器人現在將以不同的速度多次在正向和反向方向穿過紙張,結果儲存在同一資料夾中的名為 run_results 的檔案中。
輸入以下命令以處理結果檔案
./parse_results.pl < run_results > matlab_run_results
啟動 Matlab 並輸入
plot_results
除了繪製不同速度設定點的實際速度外,這還將計算並繪製速度係數,即實際速度與速度設定點的比率。
結果速度係數約為 7.1e-6 m/(s * unit),這意味著速度設定點為 10000 對應於 7.1 cm/s。