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 件のコメント:

ClaudeをOpenAI O1のように思考させるDifyサンプルを試す

 Difyの「探索」タブにはさまざまなサンプルが載っており、その1つに「Thinking Claude (OpenAI O1 Alternative)」というものがある。   このサンプルがどういうものか、未だに自分でも解けない以下の問題をためしに聞いてみることにした。 『人類の...