- GyroM5は、ドリフトRCカーのステアリングジャイロを
開発 ボードM5AtomMatrix / M5StickCで自作 するためのオープンソースソフトウェアです。 本格 的 なPID制御 アルゴリズムの採用 により、ステアリングのアシスト機能 を高 い自由 度 で設定 できます。- M5AtomMatrixにファームウェアGyroM5Atom.inoをインストールしてRCユニットと
接続 すれば完成 です。 - M5StickCにファームウェアGyroM5Stick.inoをインストールしてRCユニットと
接続 すれば完成 です。
GyroM5
GyroM5.mp4
GyroM5(v1/v2ファームウェア)は、
- フィードバック
制御 機能 車体 ヨーレートを目標 値 に近付 けるように操舵 角 を自動 制御 (PID制御 )します。 制御 パラメータ設定 機能
フィードバック制御 のパラメータをスマホから設定 して保存 できます。- リモートゲイン
調整 機能
フィードバック制御 のパラメータをCH3からリモート調整 できます。 - エンドポイント
設定 機能
ステアリング角度 のエンドポイントを設定 して保存 できます。 - スマートフォン
連携 機能 (v2)
WiFi通信 によりスマートフォン経由 でジャイロ設定 が可能 です。 - サーボ
周波数 可変 機能 (v2)
サーボ用 のPWM周波数 とPID制御 周期 を50Hz 〜400Hz の範囲 で変更 できます。 走行 データ表示 機能 (v2)
PID制御 データ(目標 値 、入出力 )をLCD画面 にグラフ表示 できます。走行 データ保存 機能 (v2)
WiFi通信 によりPID制御 データをCSVファイルでダウンロードできます。鉛直 方向 検出 機能 (v2)起動 時 に鉛直 方向 を自動 検出 するので、ジャイロのシャーシ固定 方向 に制約 がありません。時刻 表示 機能 (v2)現在 時刻 をLCD画面 に表示 できます。
GyroM5の
- ホビー
用 RCカー標準 的 なRCユニットを搭載 して、受信 機 とステアリング用 サーボを3線 (-+S)で接続 するRCカーです。 標準 的 パソコン
Arduino IDEをインストールでき、USBインターフェイスを備 えるスケッチ書 き込 み用 パソコンです。- M5StickC
LCD解像度 の低 い方 が"M5StickC"です。高 い方 の"M5StickC Plus"ではありません。 - ワイヤハーネス
部品
サーボ延長 ケーブルを1本 、オス型 ピンヘッダを1個 (8ピン以上 )使 います。 - ハンダ
付 け機材
ワイヤハーネスの組 み立 てに使 います。
M5StickCやワイヤハーネス
GyroM5の
手持 ちのパソコンにArduino IDE(開発 環境 )をインストールする- Arduino IDEの
開発 ボード設定 をESP32/M5StickC向 けに変更 する - パソコンとM5StickC
開発 ボードをUSBケーブルで接続 する - ファームウェアGyroM5Stick.inoをArduino IDE
経由 でM5StickCへ書 き込 む - GyroM5(M5StickC)をRCカーに
固定 (LCD画面 が上向 き)してRCユニットと接続 する
- RCユニットの
電源 を入 れる - GyroM5のHOME
画面 が出 るの水平 状態 、RC無 操作 で待 つ - GyroM5の
操舵 エンドポイントを設定 する - GyroM5のPID
制御 パラメータを設定 する(初期 値 :KG=50、KP=50、KI=30、KD=10) - RCカーを
走 らせて、必要 によりPID制御 パラメータを微 調整 する
- RCユニットの
電源 を入 れる - GyroM5のHOME
画面 が出 るのを水平 状態 、RC無 操作 で待 つ - RCカーを
走 らせて、必要 によりPID制御 パラメータを微 調整 する
GyroM5の
GyroM5
M5StickC | in/out | RCユニット |
---|---|---|
G26 | in | RC |
G36 | in | RC |
G0 | out | RCサーボCH1のシグナル |
GND | in | RCアンプBECのマイナス |
5Vin | in | RCアンプBECのプラス |
ワイヤハーネス(
ゲイン
M5StickCのGPIO
GyroM5は、RCユニットの
ただしM5StickCは、
なおジャイロ
GyroM5Stickは、5
- 「HOME」が、ホーム
画面 となり、この状態 からボタン[A]で「WIFI」へ、ボタン[B]で「ENDS」へ遷移 します。 - 「WIFI」は、WiFiアクセスポイント
兼 WWWサーバとなり、スマートフォン等 のWWWクライアントの要求 に対応 します。 - 「ENDS」は、ステアリングCH1のエンドポイント(ステアリング
用 サーボ角度 の上下 限 値 )を設定 します。 他 の状態 の場合 、ボタン操作 が画面 に表示 してあるか、無 操作 のタイムアウトでホーム状態 「HOME」へ戻 ります。
WAIT | RC |
ジャイロ |
INIT | タイムアウト | CH1ニュートラル |
HOME | ボタン[A],[B] | PID |
WIFI | ボタン[A] | WiFiアクセスポイント |
ENDS | ボタン[B] | CH1エンドポイントの |
WiFi
GyroM5チューニング
GyroM5は、
PID
目標 値 : r = ch1_in = RC受信 機 からのCH1入力 出力 値 : y = kg*wz = RCカーの車体 ヨーレート操作 量 : u = ch1_out = RCサーボへのCH1出力
つまりRC
偏差 : e = r - y = ch1_in - Kg*wz操作 量 : u = PID(e) = Kp * (e) + Ki * INT(e) + Kd * DOT(e)
INTは
フィードバック
PID
角速度 "wz"は(ラジアン/秒 )単位 :慣性 センサ(IMU)計測 値 をセンサ感度 に応 じて物理 量 へ変換 した数値 です。入出力 "ch1"は16ビット数 (0〜64k):
PWMパルス幅 (0ms〜20ms=1000ms/50Hz )を示 す16ビット数 (0〜2^16-1)です。観測 ゲイン: Kg = KG/20.0大 きくするとヨーレートに敏感 となり、ステアリング量 に対 する目標 ヨーレートは小 さくなります。比例 ゲイン: Kp = KP/50.0大 きくするとカウンタステア量 が多 くなりますが、大 きすぎるとハンチングします。積分 ゲイン: Ki = KI/250.0大 きくするとカウンタステア応答 が遅 くなりますが、最終 的 な偏差 を減 らせます。微分 ゲイン: Kd = KD/5000.0大 きくするとカウンタステア応答 が早 くなりますが、大 きすぎるとハンチングします。
テスト
シャーシ | タミヤ |
ボディ | タミヤ |
タイヤ | TOPLINE |
タミヤ |
|
タミヤ |
|
アンプ | タミヤ |
サーボ | ヨコモ |
バッテリ | 7.4V LiPo 1100mAh |
モータ | ノーマル370 |
ドリフト
- シャーシに
関 しては、ステアリング用 ナックルとシャーシの干渉 部分 を削 りステアリング角度 を45度 ぐらいまで増 やしました。 - サーボに
関 しては、ファインスペック付属 のTSU-03だと制御 が遅 れてハンチングしたので、ある程度 の高速 なサーボが必要 です。 - モータに
関 しては、ノーマルだとLiPoバッテリと組 み合 わせないと、スピードが出 たときにトルク不足 でドリフト移行 が難 しいです。 - タイヤに
関 しては、駆動 系 が非力 なので、なるべく滑 りやすいタイヤが良 いです。
RCカー
- パラメータ
設定 のスマホ対応 (v2対応 )
スマホのGUI画面 からジャイロ設定 (PIDゲイン等 )を複数 管理 して変更 可能 とする。 - パラメータ
調整 の完全 自動 化 車体 、路面 やタイヤに応 じたPIDゲインの最適 化 を強化 学習 などで完全 自動 化 する。 - スロットル
制御 のアシスト
ドリフト走行 の安定 化 には、ステアリングとスロットルの同時 制御 が必要 です。 加速度 センサの有効 利用
ヨーレートと水平 加速度 から車体 スリップ角 を推定 してトラクション制御 を高度 化 する。- ジャイロ
固定 方向 の自動 検出 (v2対応 )鉛直 方向 を起動 時 に自動 検出 して車体 ヨーレート成分 を決定 する。 - PWM
入力 方式 の改良 (v2対応 )
PWM入力 にブロック方式 の関数 pulseIn(...)を廃止 して割 り込 み方式 へと変更 する。 外部 電源 との完全 連動 (v2対応 )
M5StickCの内蔵 バッテリーを無効 化 して、RCアンプBECの給電 のみでオン/オフ動作 させる。走行 データの記録 分析 (v2対応 )走行 データをSDカード等 に記録 して事後 分析 できるようにする(M5StickCからM5Stackへ変更 ?)。- サーボ
周波数 可変 機能 (v2対応 )
サーボPWM周波数 をパラメータで変更 可能 とする。
M5StickCは、WiFi/Bluetoothを
RCカー
(^_^)
RCカー
自動車 の運動 と制御 車両 運動 の安定 性 解析 と制御 への応用 - On the dynamics of automobile drifting
- Analysis and control of high sideslip manoeuvres
- Stabilization of steady-state drifting for a RWD vehicle