Khepera III 工具箱/工具箱/指令碼
Khepera III 工具箱中的指令碼資料夾包含一系列指令碼,簡化了與 Khepera III 機器人或機器人艦隊的互動。這些指令碼簡化了常見的和經常使用的任務,例如將檔案複製到機器人上,設定 SSH 公鑰身份驗證或關閉機器人。罕見和複雜的任務始終可以使用 ssh、scp 等命令直接執行。
所有指令碼都以字母 k3... 開頭。因此,如果您在 bash shell 中輸入 k3,然後按兩次 tab 鍵,所有指令碼都會被列出。這對那些您不每天使用的指令碼特別有用。此外,所有指令碼在使用 -h 選項呼叫時都會列印簡短的幫助文字,例如:
k3put -h
大多數指令碼需要您指定要使用的機器人。這在命令列中透過 +... 引數完成。有四種方法可以選擇機器人
- 透過機器人 ID,例如:+203(它轉換為 IP 地址 192.168.141.203)
- 透過機器人 ID 範圍,例如:+203-205(與以下命令相同+203 +204 +205)
- 透過 IP 地址,例如:+192.168.141.203
- 透過機器人或艦隊的名稱,例如:+bob(它在環境變數 K3_BOB 中查詢 IP 地址或機器人 ID)
一個特殊的機器人是 '+usb',它始終轉換為 192.168.1.2,即透過 USB 連線的機器人的地址。
如果您經常使用整個機器人艦隊,最好給這個艦隊起一個名字,並將其定義為環境變數。例如,如果您使用機器人 203、204、209、210、211 和 212,請將以下行新增到您的 .bashrc 檔案中
export K3_MYFLEET=+203 +204 +209-212
並重新載入該檔案 (source ~/.bashrc)。從現在起,您可以使用 +myfleet 作為指令碼引數來選擇這些機器人。例如,要將 infrared_proximity 程式複製到這些機器人上,請鍵入
k3put +myfleet infrared_proximity
以下指令碼經常使用
| 指令碼 | 描述和示例 |
|---|---|
| k3put | 將檔案複製到您的機器人艦隊。在程式資料夾中,您只需提供資料夾名稱,指令碼會自動在該資料夾內查詢二進位制檔案。k3put +203 +204 battery motor_* motion_* |
| k3get | 將檔案從您的機器人複製到 PC。檔案被放置在 PC 上名為 k3-ROBOTIP 的資料夾中。這些資料夾會在必要時自動建立。如果目標檔案存在,它將毫不留情地被覆蓋!k3get +203 +204 my_measurements 這將建立兩個資料夾 k3-192.168.141.203 和 k3-192.168.141.204,並將兩個機器人的 my_measurements 複製到各自的資料夾中。 |
| k3go | 透過 SSH 連線到一個機器人,並開啟一個互動式 shell。k3go +203 |
| k3run | 在所有機器人上執行命令,並可選地將輸出儲存在 PC 上名為 k3-ROBOTIP 的資料夾中。例如,您可以透過鍵入以下命令記錄兩個機器人上的 10 次紅外距離測量結果:k3run +203 +204 -o my_infrared_measurements -e my_stderr - /root/your_username/infrared_proximity -r 10 這將建立兩個資料夾 k3-192.168.141.203 和 k3-192.168.141.204,並將程式的輸出儲存到這些資料夾中名為 my_infrared_measurements 的檔案。與k3get一樣,現有目標檔案將毫不留情地被覆蓋。請注意,程式在所有機器人上並行啟動。但是,程式執行沒有同步,即一個機器人可能會在另一個機器人之前啟動程式。啟動時間的差異主要取決於 WLAN 通道,通常在 10-100 毫秒的範圍內,但如果 WLAN 通道負載過重或阻塞,則可能達到幾秒鐘。如果您啟動的程式沒有自動退出,可以使用 k3kill 停止它們。 |
| k3halt | 透過在每個機器人上執行 halt 命令來關閉機器人。k3halt +203 +204 |
| k3ping | 連續 ping 一個機器人,例如:k3ping +203 或報告多個機器人是否存活,透過傳送 3 個 ping 資料包 k3ping +203 +204 |
| k3kill | 停止所有機器人上的正在執行的程式。k3kill +203 +204 infrared_proximity |
以下指令碼用於開發新程式和模組
| 指令碼 | 描述和示例 |
|---|---|
| k3-create-program | 在計算機上建立新程式。k3-create-program my_new_program 請注意,此指令碼不與任何機器人互動。有關更多資訊,請檢視程式開發部分。 |
| k3-create-module | 在計算機上建立新模組。k3-create-module my_new_module 請注意,此指令碼不與任何機器人互動。有關更多資訊,請檢視模組開發部分。 |
以下指令碼有助於完成一些管理任務,並且不太常用
| 指令碼 | 描述和示例 |
|---|---|
| k3-ssh-keysetup | 在機器人上新增您的 SSH 金鑰。k3-ssh-keysetup +203 +204 |
| k3-erase-userfiles | 擦除您在所選機器人的資料夾 (/root/your_username)k3-erase-userfiles +203 +204 可選地,可以指定使用者名稱來刪除這些資料夾,而不是您在機器人上的資料夾 k3-erase-userfiles another_username +203 +204 |
| k3-diskusage | 報告每個機器人的磁碟使用情況。k3-diskusage +203 +204 |
以下指令碼將程式輸出轉換為另一種格式
| 指令碼 | 描述和示例 |
|---|---|
| k3-nmea-to-csv | 將特定型別(命令)的 NMEA 訊息轉換為 CSV(逗號分隔值)格式。k3-nmea-to-csv IRPROXIMITY < my_nmea_file > my_csv_file 在程式輸出解析部分中可以找到更詳細的描述 |