Donkeycarのバージョンが4.3.6になったので、すごく久しぶりに公式ドキュメントを読んでみた。
すると
というページができていなので、とりあえず勝手に翻訳してみた。
以下、翻訳した内容である。
参照される方は at your own risk でお願いします。
--------
Intel (R) Realsense T265センサによる経路追跡
Donkeycarは、標準的なカメラを使ってネットワークを学習させながら運転するのではなく、Intel(R) Realsense T265「トラッキングカメラ」を使って経路を追跡することをサポートしています。このアプリケーションでは、手動で一度だけ道を走れば、Donkeycarはその道を「記憶」し、自律的にそれを繰り返すことができます。
Intel T265は、ステレオカメラと内蔵の慣性計測ユニット(IMU)、そして独自のMyriad Xプロセッサを組み合わせて、視覚的慣性オドメトリを行います。これは、移動しながら周囲の光景を見て自分の位置を把握し、それをIMUのセンシングと関連付けることで自分の位置を特定し、GPSセンサと同様にX、Y、Z位置をドンキーに出力するという凝った方法です(ただし理想的にはもっと正確に、センチメートルの精度で出力されることが必要です)。
注意
Realsense T265は Nvidia Jetson Nanoでも使用できますが、Raspberry Pi(メモリ4GB以上のRPi 4を推奨)を使用すると、もう少し簡単にセットアップが可能です。
また、Intel Realsense D4XXシリーズは、通常のカメラとしてDonkeycarでも使用できますので(深度センシングデータの利用は近日中)、準備ができ次第その手順も追加します。
ステップ1:Ubuntuマシン上にLibrealsenseをセットアップ
RPi上で最新版のRaspberry OS (Busterでテスト済) を使う場合、こちら の手順でIntelのRealsenseライブラリ(Librealsense)と依存関係を設定します。これらの手順は、別のRealsenseセンサについて述べていますが、T265でも同様に動作します。また、ビデオによる説明 もあります。
ステップ2:Donkeycarのセットアップ
こちらの標準的な手順 に従ってください。経路追跡では、Tensorflowをインストールする必要はありませんが、numpy/upgradeをインストールしてから `pip install -e .[pi]` を実行します。
ステップ3:Donkeycarの経路追跡アプリを作成
donkey createcar --path ~/follow --template path_follow
ステップ4:config 設定の変更/確認
cd ~/follow
sudo nano myconfig.py
デフォルト値のまま同意するか、好みに合わせて調整してください(例:"throttle"や"steering"、PIDなど)。
変更した行をアンコメント(#を削除)します。
nano で cntrl-o を押してファイルを保存し、cntrl-x を押して終了します。
ステップ 5:Donkeycar 経路追跡アプリの実行
以下のコマンドを実行します。
ssh pi@<your pi’s IP address or "raspberrypi.local">
cd ~/follow
python3 manage.py drive
アプリの実行中に表示される出力を見るために、ターミナルを開いておいてください。
T265が見つからないというエラーが表示された場合は、センサを一旦抜き、挿し直して再試行してください。
ゲームパッドがオンになっており接続されていることも確認してください(青いランプがコントローラについています)。
起動したら、ノートパソコンでブラウザーを開き、URLバーに次のように入力します: `http://:8890`
運転すると、Webインターフェースに経路が赤い線で、ロボットの位置が緑の円で描かれます。もし、緑の点は表示されるが、赤い線が表示されない場合は、パスファイルがすでに書き込まれていることを意味します。
`donkey_path.pkl` を削除( `rm donkey_path.pkl` )、再起動すると、赤い線が表示されるはずです。
PS4 ゲームパッドの場合、次のような操作を行います:
control | action |
---|---|
share | toggle auto/manual mode |
○ | save_path |
△ | erase_path |
× | emergency_stop |
L1 | increase_max_throttle |
R1 | decrease_max_throttle |
options | toggle_constant_throttle |
□ | reset_origin |
L2 | dec_pid_d |
left_stick_horz | set_steering |
right_stick_vert | set_throttle |
ステップ6:運転上の注意事項
- ロボットのスタート地点に印をつけてください。スタートするたびに、必ずそこに戻してください。
- 車をループ状に走らせます。赤い線が道を示しています。
- PS3/4コントローラの○を押して、経路を保存します。
- ロボットをスタート地点に戻します。
- 次に、PS3コントローラの "select "ボタン、またはPS4コントローラの "share "ボタンを2回押し、パイロットモードにします。これで道なりに走り出します。速くしたり遅くしたりしたい場合は、`myconfig.py` ファイルの次の行を変更します:
THROTTLE_FORWARD_PWM = 400
`myconfig.py` の下の方に、微調整するための設定項目があるので確認してみてください。
PID値、マップオフセット、スケールなどです。
私のリポジトリにある `myconfig.py` をダウンロードして使うことから始めるといいかもしれません。
ヒント:
- 起動すると、緑の点がボックスの左上隅に表示されます。中央の方がいいかもしれません。その場合は、`myconfig.py` ファイルの `PATH_OFFSET = (0, 0)` を `PATH_OFFSET = (250, 250)` に変更します。
- 小さなコースの場合、パスが小さすぎてよく見えないということがあるかもしれません。その場合は、`PATH_SCALE = 5.0` を `PATH_SCALE = 10.0` に変更します(必要であれば、それ以上の値でもかまいません)。
- 自動モードで実行しているときは、緑のドットが青に変わります。
- デフォルトでは0.3mごとにパスポイントを記録するようになっています。より滑らかにしたい場合は、`myconfig.py` のこの行でより小さな数値に変更することができます: `PATH_MIN_DIST = 0.3`
-------
経路追跡なので、自動運転だけど機械学習ではなくあくまで手動運転したときの座標移動になるようにPID制御するようだ。
機械学習、AIの勉強を目的とした人は、使うことはないかもしれない。
それになによりIntel(R) Realsense T265 の販売価格が全然安くないこと。初売り価格でたしか5万円弱で、執筆時点のネット通販価格が8万円台が一般的のようだ。
Donkeycar本体が3万円くらいでつくれるので、さらに同額以上をカメラデバイスにかけるのか..と考えると、あまりやろうとする人は少ないかもなあ..