Translate

2018年11月15日木曜日

手っ取り早くDonkey CarをBluetooth接続(ではなくWiFiドングル接続)したジョイスティックで手動運転する

Donkey Carの操作でBluetoothのジョイスティックを使いたい..

ということでPS3やWii-Uコントローラの使い方を調べていた。
ともにRaspberry Pi側のbluetooth機能から
該当デバイスのMACアドレスを探して
/dev/input/js0
を作成し、
parts/controller.py を加工ないし他の人の作ったcontrollerに差し替えてつかう。

でも..PS3やWii-U持ってない人は逆に不便..

Dualshock4なら入手可能だし ds4drv を動かせば
/dev/input/js0
はできる。

..けど、controllerコードを自分で書かないといけない..
これはめんどくさい..

..と、いろいろ調べていたら以下のサイトを見つけた

[Qiita] DonkeyCar セットアップ
https://qiita.com/mituhiromatuura/items/86a4dde22f469119f9d3

ここでつかっているジョイスティックがこれ。

[Amazon] ロジクールワイヤレスゲームパッド F710
https://amzn.to/2QJq4i9


F710、Amazonで1900円..安っ。

早速入手した。

あ、ドングルついてる。

ってことは、Raspberry Pi 3B+をベースにしてない場合は結局bluetoothペアリング地獄におちるわけだ。

でも標準Donkey Carは3B+なので問題なし

案の定、3B+のUSBにドングルを刺して再起動したら自動的に/dev/input/js0が作成された。

いやー、簡単だわ..

https://github.com/mituhiromatuura/donkey にあるdonkeycar/parts/controller_logicool.py だけ落として~/mycar/partsに置く。
manage.pyに次のimport文を1行追加(安心のMITライセンス)。

from parts.controller_logicool import JoystickController

そして、python manage.py drive --jsを実行。

Logicoolボタンを押して電源ON(OFFは長押し)。

あとは https://qiita.com/mituhiromatuura/items/86a4dde22f469119f9d3 の図に従って、操作すればいい。

  • 黃ボタンで最大スロットル値を調整
  • 赤ボタンで走行記録をオン
  • 前進後退のレバーを上げて走行を開始
    • Userモード時は走行中は学習データを生成するが、停止時は学習データを生成しない
  • ターミナルからCtrl+Cでプログラムを終了


Wii-UやPS3もってても、コッチのほうが時短できるなあ..


ps.

この方法てっきるドングルがハードレベルでbluetoothctl設定の代替しているものと思っていたが、2.4GHz帯のWiFi通信をピアツーピアで行っているだけらしい。

で、2.4GHz帯を使っているWiFiルータっていうのが世の中にはたくさん出ていて、場合によっては混線するらしい。

普通の環境下での使用であれば問題ないが、イベントなどでたくさんのF710やWiFiルータがある場所で使うとダメなんだと。

ゲームショーとかではどうやってるのかな..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...