【ラジコン自動運転】Donkey 2のキャリブレーションとか。。やってみる【Python】

次はキャリブレーションらしい

インストールまでは、こちらで。。

【ラジコン自動運転】Donkey 2のソフトウェアのインストールとか。。やってみる【Python】

d2ディレクトリのconfig.py に設定ファイルがあるので、その中をキャリブレーションするようです。

ちなみに、ラズパイの方です。 ssh pi@<IP address> で入いる

d2 ディレクトリで、more config.py を見てみると

#STEERING
STEERING_CHANNEL = 1
STEERING_LEFT_PWM = 420
STEERING_RIGHT_PWM = 360

#THROTTLE
THROTTLE_CHANNEL = 0
THROTTLE_FORWARD_PWM = 400
THROTTLE_STOPPED_PWM = 360
THROTTLE_REVERSE_PWM = 310

という風に、設定がここに書かれています。

ステアリングのキャリブレーション

ステアリングサーボのエンドポイントを出す作業ですね。

donkey calibrate --channel 1

360を入れてみて、だんだん小さい方を探ってみます。

using donkey v2.2.1 ...
Enter a PWM setting to test(0-1500)360
Enter a PWM setting to test(0-1500)350
Enter a PWM setting to test(0-1500)320
Enter a PWM setting to test(0-1500)300
Enter a PWM setting to test(0-1500)290

左に動いてここまででステアリングのキレ角は300で終わり

次に、だんだん大きい方を探ってみます。

Enter a PWM setting to test(0-1500)360
Enter a PWM setting to test(0-1500)380
Enter a PWM setting to test(0-1500)450
Enter a PWM setting to test(0-1500)460
Enter a PWM setting to test(0-1500)450

右は450でした。

#STEERING
STEERING_CHANNEL = 1
STEERING_LEFT_PWM = 300
STEERING_RIGHT_PWM = 450

って config.pyを書き換えます。

ちなみに、エディタは、nanoが入っています(Ctrl-Gでヘルプです)

スロットルのキャリブレーション

donkey calibrate --channel 0

で同じようにするんですが、今度は、真ん中と、後ろ、前ですね。前進スピードは、ほどよい所を見つけておく方が良さそうです。(普通のラジコンですから、結構スピードでますので)

Enter a PWM setting to test(0-1500)390
Enter a PWM setting to test(0-1500)400
Enter a PWM setting to test(0-1500)410
Enter a PWM setting to test(0-1500)420

390がニュートラル 前進 410ぐらいのスピードが良さそうです。同様に、バックは370くらいで良さそう。ESCを一回本当はラジコンの方に繋いでキャリブレーションしてからの方が良さそうですけど・・ラジコン用のESCは急にバックに入らない設定になっているので、少し使いにくいかもしれませんね。。ミニに積んでたESCはブレーキ付きのバック付きだった(^^;

#THROTTLE 
THROTTLE_CHANNEL = 0 
THROTTLE_FORWARD_PWM = 410 
THROTTLE_STOPPED_PWM = 390 
THROTTLE_REVERSE_PWM = 370

nano なら、Ctrl-O でファイルセーブ、Ctrl-Xで終了でした(nanoって初めて実はつかってます)

わかりにくいけど、動画もどうぞ(笑)

テスト

Tetsuya Tominagaさん(@tetsuyatominaga)がシェアした投稿 –

次は動かすらしいけど

  1. Start your car by running python manage.py drive.
  2. Go to <your_cars_ip_address>:8887 in a browser.
  3. Press j until the cars steering is all the way right.
  4. Press i a couple times to get the car to go forward.
  5. Measure the diameter of the turn and record it on a spreadsheet.
  6. Repeat this measurement for different steering values for turning each direction.
  7. Chart these so you can see if your car turns the same in each direction.

とあります。

動いたり・・動かなかったり。。

が・・・ここで。。python manage.py driveをうつと。。

pi@d2:~/d2 $ python manage.py drive
using donkey v2.2.1 ...
Using TensorFlow backend.
loading config file: /home/pi/d2/config.py
config loaded
PiCamera loaded.. .warming camera
Adding part PiCamera.
Starting Donkey Server...
Adding part LocalWebController.
Adding part Lambda.
Adding part KerasCategorical.
Adding part Lambda.
Traceback (most recent call last):
 File "manage.py", line 177, in <module>
 drive(cfg, model_path = args['--model'], use_joystick=args['--js'])
 File "manage.py", line 105, in drive
 steering_controller = PCA9685(cfg.STEERING_CHANNEL)
 File "/home/pi/donkeycar/donkeycar/parts/actuator.py", line 20, in __init__
 self.pwm = Adafruit_PCA9685.PCA9685()
 File "/home/pi/.virtualenvs/dk/lib/python3.4/site-packages/Adafruit_PCA9685/PCA9685.py", line 75, in __init__
 self.set_all_pwm(0, 0)
 File "/home/pi/.virtualenvs/dk/lib/python3.4/site-packages/Adafruit_PCA9685/PCA9685.py", line 111, in set_all_pwm
 self._device.write8(ALL_LED_ON_L, on & 0xFF)
 File "/home/pi/.virtualenvs/dk/lib/python3.4/site-packages/Adafruit_GPIO/I2C.py", line 114, in write8
 self._bus.write_byte_data(self._address, register, value)
 File "/home/pi/.virtualenvs/dk/lib/python3.4/site-packages/Adafruit_PureIO/smbus.py", line 236, in write_byte_data
 self._device.write(data)
OSError: [Errno 121] Remote I/O error

Remote I/O error が出て来る

で。。

もう一回やってみると

python manage.py drive
using donkey v2.2.1 ...
Using TensorFlow backend.
loading config file: /home/pi/d2/config.py
config loaded
PiCamera loaded.. .warming camera
Adding part PiCamera.
Starting Donkey Server...
Adding part LocalWebController.
Adding part Lambda.
Adding part KerasCategorical.
Adding part Lambda.
Adding part PWMSteering.
Adding part PWMThrottle.
path_in_tub: /home/pi/d2/data/tub_1_18-01-23
Tub does NOT exist. Creating new tub...
New tub created at: /home/pi/d2/data/tub_1_18-01-23
Adding part TubWriter.
8887
Starting vehicle...
/home/pi/.virtualenvs/dk/lib/python3.4/site-packages/picamera/encoders.py:544: PiCameraResolutionRounded: frame size rounded up from 120x160 to 128x160
 width, height, fwidth, fheight)))
WARNING:tornado.access:404 GET /favicon.ico (192.168.1.10) 11.68ms

動いて、http://<pi のIP>:8887 でアクセスすると。。 こういうページが出てきます。

 

キーボードで動かす場合は、

  • Forward: I
  • Reverse: K
  • Left: J
  • Right: L

のようです。右の水色のところでマウスをクリックすると、円が現れて、動かすことができます。

でも、できたりできなかったり。。Cameraも動かないし。。

ごにょごにょやってたら。。

動き出しました。

donkey createcar --template donkey2 --path ~/d2

をもう一回実行したり。。でも

Picameraのコネクター抜き差ししたり。。 が一番効いたような気がする。。

でも動いたり動かなかったりする(笑)ソース読むかぁ。。

python manage.py drive

投稿者 tom2rd

コメントを残していただけるとありがたいです

Loading Facebook Comments ...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください