熊本へ


マイコンクラブにお邪魔させていただく。
部員も多く、とても活発な部活だった
調子が悪くなってもその場で自分でサクサクと直していく。
シンプルなメカだけでなく、意欲の高さのおかげだろう。
大会が近いとはいえ、活動時間の長さには驚いた。

前回、ソフトでの限界を感じた画処理ロボットは
ロール軸方向の加重移動を抑える目的で前輪のトレッドを25mm程広げてみた。
結果としてはアンダーステアは目に見えて減少。逆に各所でオーバーステアに気を使うことになってきた。

日ごろとは違う環境になると、今まで見えなかった問題が頻発する。
車線変更&クランクの複合はだいぶ修正が必要で、
これまで走っていた適当な処理では無数のコースアウトを積み重ねた。
コース両端の白線の読み間違いが多く、それを修正するにもセンサデータが不足している
カメラCPUからもう少しデータが欲しい。

グリップが足りない


これ以上早くするのは厳しいような気がする

この画処理ロボットは
酷いアンダーステアの補正と
内輪の荷重が殆ど抜けるため
旋回中は外輪だけを駆動して内輪は転がしているだけ。
そこまでやってもアンダーは出ているし、
負担が掛かっている後輪も滑り出している。

後輪のグリップアップのためにリアトーイン1度と2度を試すも、
タイヤを引きずる音が大きくなるだけでグリップ向上にはつながらず。
今回のグリップ不足はスリップ角では解決できないようだ。

マグネシウムネジ

120908
ニフテックのマグネシウムネジを買ってみた。
RC用の7075ジュラルミン製カラービスから置き換えると気持ち軽くなる
比重2/3でもジュラが既に軽いため数個では差は分からない。
強度はやっぱり落ちるようで、強く締め付ける場所は避けたほうが無難そう。
ジュラネジの強度は不要で、かつ樹脂ネジだと若干不安な場所を置き換えて、
気持ちだけでも軽くしてみる。

全体最適化

RWD構成のボトルネックはブレーキングで、兎に角止まらない。
クロスラインを検出後の急減速では、その減速による荷重移動で後輪の摩擦円が小さくなる。
密着型センサのロボットでは低重心のお陰で、モーターパワーが摩擦円を超えることは稀だったのだが、
画像処理ロボットでは前輪よりも前の高い所に重量物が配置されているため、
減速時の荷重移動が大きく簡単に後輪のグリップが破綻してしまう。
で、タイヤが滑ったまま減速が出来ないことが頻発するし、片輪のグリップが先に破綻した場合スピンする。
 タイヤの滑りを検知したらブレーキを弱めてグリップを回復してやればスピンは抑制できるけど、
制動距離が長くなってしまう(50cmで止まれなきゃ意味が無い)。
 あと、コーナへの進入時に、弱い減速しか出来ないと、速度が高いままコーナの奥まで入ってしまう。
すると横方向に必要なグリップが急激に増えて後輪が破綻してスピンする。

対策としては、重心を上げている原因のカメラユニットの軽量化が一番だが、
SSMレバー比や外乱への強度や機械的強度といった制約が多いので、
後輪に付近に重り(約17g)を積んで、制動時の荷重移動の影響を小さくしてみた。
結果はとしては、
・クランク区間での減速が間に合うようになり直線での速度を向上できた。
・コーナ進入時のブレーキも強くできて、スピンし難くなった。

その他RMCRには時間が足りなくて盛り込めなかった制御を追加したところ、
やっと一つ壁を超えた。

夏休みの成果

120817
強度UPを狙う新しいカメラユニットの支柱ができた。4g位重くなってしまった。
操舵の影響でカメラが揺れるのを防ぐためには、思ってた以上に捩れ剛性が必要なようだ。

走行速度が向上すると共に
初期の構成だとカメラが揺れるのが目で見て分かるようになってきた。
その後、支持棒の間隔を22mmから42mmに広げることで目視では振動は無くなったが、
ログを見ると偶にコーナ旋回中にライントレースが振動的になることがあった。
BOSSの助言で支持棒をダンボールで補強してやるとログ上でも振動が収まり、コーナ旋回中の暴れも減ったため、その仕様でRMCRには参加した
しかし、構造的に弱いようなので今回の作成にいたる。
結果、手で触っても剛性があがったようなので暫くは安心してよいかな

集光レンズ

あと5cm先を見るために、カメラの取り付け角度を変更する
これまで0.9程度だったSSMレバー比が1.2位になる。
で、
確認用のコースでライン検出を確認するとクロスラインを検出できない。
照明用LEDの取り付け角度や距離が変わり反射が小さくなったせいか。
RMCR参加時の照明の組み合わせは
秋月の1WパワーLEDレンズホルダをつけた物だった。
最初はLEDだけで使用し、明るさを補うため反射板を自作して試したりしたが、結局レンズが一番結果が良かった。

このレンズホルダに標準で入っているレンズは、おそらくOSOLRA2045Mでデータシートでの照射角度は45度。
なのでさらに集光するために照射角度30度のOSOLRB2030Mに変更する。
結果としてクロスラインが見えるようになった。ただ照射範囲が狭くなり明るさにムラが出るので、LEDをあと1つ追加したほうが良いかも。

ちなみに15度品のOSOLRA2015Mも試したが、これは30度品と集光の変化が無いように見える。

目的は路面を明るく照らすことであって、LED照明を作ることではないので、
これ以上の明るさを求めるなら、下手に試行錯誤するよりも
市販の光学的に調整されたフラッシュライトを分解して使うべきだろうな。

やっぱり白色パワーLEDか

120814
モノクロカメラ素子の感度のピークが赤外近くにあるなら、
赤色のフラッシュを焚いて、カメラにローパスフィルタつければ、
外乱光の影響を抑えることができるのでは?
ということを大雑把に試してみた。
波長580nm以下の光をカットしてくれるシャープカットフィルタSC58(見た目はカラーセロハン)と
波長660nmの超高輝度LEDのH-3000L(3000mcd)を組み合わせてみた。
カメラで撮影すると、フィルタ有り無しでの明るさの変化はほぼなく、外乱光の影響も小さくなりそう。
しかし、全体的に暗い。
4灯で0.15W位しかないため、光量がまるで足りていない。
というか660nm付近のLEDはあまり発光効率が良くないみたい。
現在の照明と同じ光量にするためには沢山のLEDが必要となり、重くなるので照明には使えなさそう。

照明を焚く理由は、ハレーション対策や坂の下等の一部暗い所で画が暗くなることの対策もあるけれど、
露光時間を短くしてブレた画を作らないようにすること。
常にロボットは動いているので露光時間が長いと、
トレースラインやクロスラインがボヤケて白色がどんどん暗くなり、コントラストが悪くなる。

露光時間が長すぎると
クロスラインを見落とすだけでなく、S時コーナの切り替えしやクランクや
車線変更の復帰時のようなところでもコースを見失ってしまう。

MCR-VCどうやって作るか

画処理ロボットは
Takumiさんが見つけたモジュールを
大湯さんの手法で動かして、
滝田研究室の制御法でライントレースしている。
JMCR2004で既にtakumiさんや滝田教授がやってたことである。

○カメラ制御
カメラへ供給するクロックや信号の幅は無視して、
汎用IOをパコパコ動かして制御している。
このやり方はカメラの種類は違うけれど、大湯さんのゲームボーイカメラ(M64282)用コードを元にしている。
Takumiさん曰く、アセンブラで書くともっとサンプリング周波数を上げることは可能なのだけど、
スキルが無いので、H8→SHにしてサンプリング周波数を向上させている

○画データからのラインの検出
カメラデータ中のあるラインを左から右方向に差分して行き、
その差分値の最大値と最小値の間にラインがあると判断する。

これは、滝田研究室の論文
超小型1kHzスマートカメラを用いたSSM軌道誘導車両の制御 : 動吸振器による安定化
を参考に作成

○ライントレース制御
2重ループのカスケード制御で
外のループで
ライン中心点の位置と現在の操舵角度から目標操舵角度を求める
このループの速度はカメラのサンプリング周波数に影響される
内のループで
目標操舵角度と操舵角度が一致するように制御している
これは、滝田研究室の論文
1kHzスマートカメラ搭載SSM軌道誘導車両の高速化 : 操舵比とレバー比可変によるドリフト抑制
を参考にしたのだけど、間違って解釈していたようで形が違うことがわかった。

○駆動系
いつものメカにいつもの制御。

というわけで、画処理ロボットは
先人のネタを再構築して、CPUパワーと駆動系性能によるゴリ押しで走っています。

モータドライブ回路

120812
件のモータドライブ回路の構成を公開する
A3941+IRF8915の構成で、PWM周期40kHzで駆動させている。

allegroのA3941はフルブリッジFETドライバ。
PWMと回線方向とフリーの3本の信号を入力するだけで、
Nch構成のHブリッジを動かしてくれる便利なIC。
デットタイムは外付け抵抗で調整可能。

IRF8915はNchFET2個入りで、
片側18.3mΩで8.9A流せる。
ゲート容量も小さいのでスイッチング速度も上げれる。

リクエストがあれば定数も書きます。
リクエストあったので定数も公開
120802
(A3941データシートより)
・RESET端子はマイコンの電源と同じにする。
・FF1とFF2端子は、GNDに落としても良いかもしれない(未検証)
・FREEは使ってないので、動作未検証(→TypeS等のFREEと挙動が異なる@2015年2月)

////////////
追記 PWM40kHz付近でのモータ両端電圧波形
BREAKモード(SR=H)
15020702
FREEモード(SR=L)
15020701
PWMがLの区間での電圧がマイナス方向に触れている。
内部のダイオードの電圧降下分か?
これにより同一duty時にはFREEの方がモータの回転速度は遅い

/////////////
追記
FREEの動作について
モータドライブ基板TypeS等のFREEはPWMのOFF時間はモータ端子が開放されれ逆起電流は流れないが、このモータドライバでは電流が流れるので振る舞いが異なる

/////////////
PWMOFF時間中にFETのボディダイオード分の逆電圧(0.7V位?)が掛かって回転が阻害されるのならば、そのFETに並列にVfの小さいダイオードを付ければ改善されるはず。
ということでショットキーを付けてみる
15021402
OFF区間中の逆電圧が小さくなり、回転数も上がった。
FREEモードを使うのは正転時だけだから部品追加は1個ですむ。
ただ、スイッチング時のスパイクが増えたのは気持ち悪い。

第3回RMCR

Tsubameさんと共に会場入り。
全国から好き物が集まる大会は本当に面白い。
コースも直射日光も入らず、画処理でも走れる良い環境。

予選はフリー走行で本当に助かった。今年も予選落ちする所だった。
連続S時でトレースを失敗してのコースアウトは仕方ないが、
バグでコース上で立ち往生してしまうのは本当に困った。

決勝トーナメント
予選通過タイムが悪いため記念走行だったのだけど、
s技研さんがまさかのコースアウト。タナボタでベスト16入り。

上位のタイムは素晴らしいの一言。ランサーは二冠おめでとうございます。

(一部に?)人気だったCMAさんのロボット
特徴的なセンサバーレスのライントレースとバッテリ2本による駆動。
さらに走行中の駆動音が聞こえない。

みなさんお疲れ様でした。
楽しい大会ありがとうございました。
画処理ロボットで防衛大超えたぞ。ドヤッ。


(RenesasMCR1 配信より)