Khepera III 工具箱/示例/紅外接近感測器響應
本示例演示如何透過實驗測量紅外感測器在接近模式下的響應。機器人從障礙物正前方開始,然後以小步後退。每一步後,都會進行一系列紅外接近測量。
啟動 Khepera III 機器人,並確保它已連線到您的計算機(透過 WLAN)。在下面的解釋中,我們假設您正在使用機器人 203。將機器人放在障礙物前方,確保它身後至少有 50 釐米的空間。
將 motor_initialize、motor_stop 和 infrared_proximity 程式複製到機器人上。
cd Programs k3put +203 motor_initialize motor_stop infrared_proximity
登入到機器人
k3go +203
並輸入
cd your_username ./motor_initialize
以初始化電機。
若要檢查一切是否正常執行,請輸入
./infrared_proximity
如果您的機器人碰觸到它前面的障礙物,您應該會得到類似以下的結果。
$IRPROXIMITY,0,44038,41,11,405,3963,3965,827,3,61,34,3108,3010
中間的兩個最高值(3963 和 3965)屬於前部感測器,是我們在此實驗中實際使用的值。這些值在您的設定中可能會有所不同,因為它們受障礙物顏色和紋理的影響很大。如果得到大約 3000 的值,請不要擔心。
將機器人定位在障礙物正前方(使其觸碰障礙物),然後啟動
./run.pl
機器人現在將以小步後退,並進行 10 次紅外測量,這些測量結果將儲存在同一個資料夾中的名為 run_results 的檔案中。完整的執行大約需要 2 分鐘,之後機器人將保持在原位。
輸入以下行以處理結果檔案
./parse_results.pl 5 < run_results > matlab_run_results_5 ./parse_results.pl 6 < run_results > matlab_run_results_6
感測器 5 和 6 是兩個前部感測器。您也可以以類似的方式使用其他感測器進行測量。
啟動 Matlab 並輸入
plot_results
生成的圖表將顯示兩個感測器的曲線。每個點都是 10 個樣本的平均值。
紅外接近感測器值隨著距離呈指數衰減。但是,根據障礙物的顏色和形狀,曲線可能會發生明顯偏移。對於非常深的障礙物(反射有限)或薄障礙物(反射表面有限),尤其如此。請注意,地板也會對超過 5 釐米的距離產生影響,因為部分發射的紅外光會在那裡反射。此外,大量的環境紅外光(例如,陽光明媚的白天)也會影響結果。
在本示例的資料夾中,您將找到兩個檔案 ir_proximity_reponse_blackfloor.txt 和 ir_proximity_reponse_blackfloor.eps。這些是在低環境紅外光的房間裡,在深色(深灰色)地板(反射率低)前面的一堵白牆(反射率高)上進行的測量。