Elecom Wireress GamePad (2)

FaboのDonkeyPiパッケージのまま、操縦できないので、

Faboのサイトからの Elecom Joystick(Wireless Joystick) 情報を参考にやってみる。

結果的に失敗なので、記録として残す。

インストール方法

pip install git+https://github.com/FaBoPlatform/donkeypart_ps3_controller

ソースの修正

cd ~/mycar
vi manage.py

ELECOM Wireress GamePadに対応する

ElecomJoystickController を import します。

次のようにElecomJoystickController関連する文を追加する

import donkeycar as dk
from donkeypart_ps3_controller import ElecomJoystickController
#import parts
from donkeycar.parts.transform import Lambda, TriggeredCallback, DelayedTrigger
from donkeycar.parts.datastore import TubHandler
from donkeycar.parts.controller import LocalWebController, JoystickController
from donkeycar.parts.throttle_filter import ThrottleFilter
from donkeycar.parts.behavior import BehaviorPart
from donkeycar.parts.file_watcher import FileWatcher
from donkeycar.parts.launch import AiLaunch
from donkeycar.utils import *


---

        #ctr = get_js_controller(cfg)
        ctr = ElecomJoystickController(throttle_scale=cfg.JOYSTICK_MAX_THROTTLE,steering_scale=cfg.JOYSTICK_STEERING_SCALE,auto_record_on_throttle=cfg.AUTO_RECORD_ON_THROTTLE)
        V.add(ctr,
          inputs=['cam/image_array'],
          outputs=['user/angle', 'user/throttle', 'user/mode', 'recording'],
          threaded=True)

再度クルマを起動する。

(env) pi@donkeypi3chen02:~/mycar $ python manage.py drive --js
using donkey v3.1.0 ...
loading config file: /home/pi/mycar/config.py
loading personal config over-rides

config loaded
cfg.CAMERA_TYPE PICAM
cfg.CAMERA_TYPE PICAM
PiCamera loaded.. .warming camera
Adding part PiCamera.
Adding part ElecomJoystickController.
Adding part ThrottleFilter.
Adding part PilotCondition.
Adding part RecordTracker.
Adding part ImgPreProcess.
Adding part DriveMode.
Adding part AiLaunch.
Adding part AiRunCondition.
Init ESC
Adding part PWMSteering.
Adding part PWMThrottle.
Tub does NOT exist. Creating new tub...
New tub created at: /home/pi/mycar/data/tub_11_19-11-18
Adding part TubWriter.
Opening /dev/input/js0...
Starting vehicle...
Device name: Smart JC-U3912T
/usr/lib/python3/dist-packages/picamera/encoders.py:544: PiCameraResolutionRounded: frame size rounded up from 160x120 to 160x128
  width, height, fwidth, fheight)))
recorded 10 records
recorded 20 records

今度は表示が変わり、Joystick Controls:キーのcontrol と action の概要表示がなくなり、一部のキーで操縦はできた。

しかしキーの割り当てはおかしいね。左右のスディックの機能は逆、しかも変!

左のスディックはThrottleで前後移動になり、右のスディックはSteeringで左右の移動はスディック前後の操縦するとなる。

ボタン操作の対応数値

なぜ操作は逆になるなど調べるための調査

$ hexdump /dev/input/js0

ボタン類を操作して16進の数値が表示されればOK

ctrl+cで終了

しかし表示する意味の推測は大変で一旦棚上げする。