二本線の見つけ方を考える

言いたい事はあるが、
まずはマーカの検出方法を考える。
1本のマーカーの検出は、ある程度動くことは確認済み。
2本のマーカーの検出案としては
①カメラの画角を広げて2本を同時に見つける
②これまで通りのマーカー検出と距離情報から計算して見つける
③新たなセンサの追加
の3通りがある

①のカメラ画角の拡張は、カメラ誘導としては正解なのだけれども
・データ読取り時間の増加でカメラのフレームレートが落ちる
・LED照明の照射エリアの変更も必要
ってことで現実的ではない。
(マーカーを見つけた瞬間だけ、画角を増やせば通常走行中のフレームレートには影響なさそう)

③は確実だがスマートでない。

②は、
距離情報の追加や演算をカメラ処理マイコンかメインマイコン側かで選択できるが、
カメラ側でやると、データ信号線を増やす必要があるのでパス。
で、メインマイコン側で演算させる方向で検討する。

現在のマーカー検出処理の結果を利用して
1cm毎にマーカー情報を取得して、距離とマーカ情報からなるパターンに
2本線の検出パターンと、幅20mm~40mmからなる1本線の検出パターンを、
比較してなんとかする。

実際にコードを書いて手押し確認してみる
2本線の場合はマーカー情報の最初と最後の幅が8cmで、
20mm幅の1本線なら4cm、
40mm幅の1本線ならば6cm、
試しに50mmの1本線も試してみると7cmだったので
ある程度は検出距離の比較だけで期待できそうである。

インシュレーター

130707
坂道で減速できずにコースアウトしたり、平地で減速したりすることが増えた。
調べてみると、坂道検出に利用しているジャイロの出力にノイズが乗っている。
本物の坂に進入した時と似た波形のノイズなのフィルタでは除去できない。

ということで、ノイズ源の調査
・走行中に乗り続ける
・駆動モータを空回ししても乗る
・モータ停止中には乗らない
・駆動モータ回転中も電源にはノイズは無い
・駆動モータの回転中、車体全体が振動する
ってことで、走行中の振動が原因と推定する。

で、メイン基板に強く固定していたジャイロユニットを
スポンジを介して弱く固定してみる。
結果、駆動モータ空回し中のノイズは半分以下になった。
ジャイロが振動の影響を受けることを知っていたら防げた問題だったようだ。

で、前の車体で確認したときはノイズが乗ってなかったのは
・マクソンモータによるモータ個々の振動の少なさ
・2WD仕様によるモータ、ギヤ等のノイズ源の量の少なさ
・ジャイロユニットを厚手のスポンジ材で固定していたことによる防振効果
という事なのだろう。

スラローム走行


合宿にて次やることは”ジャイロを使ってのスラローム”
と教えてもらったので実装してみる。
車両全体の速度はエンコーダだけ見て
角速度はジャイロだけ見て制御してみる

ニカド電池

120620
出力抵抗の小さいニカドにチャレンジするも、パッケージで撃沈する
無駄買いになったのはサンヨーのN-700AACL

//////////////////////
RMCR大会が告知されたので、飛行機と宿を手配する。

2013年マイクロマウス合宿

とりあえず動くロボットを作り上げて、
何から始めれば良いかを教えて貰おうという目的で、
マイクロマウス合宿に行ってきた。

拡張左手+超信地旋回で挑んだプチ大会もなんとか完走。

度重なる質問に、色々と教えてくださった
まついさん、こじまさん、アニキさん、こみねさん
ありがとうございました。

こつこつ


・たまに減速動作なしに、次の旋回動作に移行していたことを修正
・壁切れによる距離補正追加(動作がイマイチ)

//////////////
昨年5月末にはRMCR開催のアナウンスがあったけど、
今年の大会はどうなのだろう?

不要輻射

CIMG0405
7年ぶりにマブチモータの餌食になった
走行中に操舵が固定され、そのままコースアウトすることが頻発する。
ログから原因を探ると、画処理マイコンからのデータの更新が止まっており
更に探ると、カメラからのデータ送信が止まっていた。

カメラはリセットして初期状態で待機中になっていそうである
画処理マイコンはデータが送られてくるのを待っているので、
カメラが応答しない限り次の処理に入れない
画処理マイコンと駆動制御マイコンは、
カメラのフレーム毎に通信するので、ここも動作できない。
結果として、
カメラが初期化→画処理マイコンがロック→暴走という流れになっていた。

ことの発端のカメラのリセットの原因を調べると、
カメラへのコネクタのポイントでは、電源と信号線のどちらにもノイズ無しで
前輪駆動用モータの輻射ノイズという結論になった。

ということで対策を打つ
①カメラの制御ケーブルをモータから離す
 これまでは”やぐら”の中にケーブルを通していたため距離が近かった
②制御ケーブルをシールドして、シールドはGNDに接続する
 シールドをGNDに落とさない場合は効果が無かった
③モーター缶をGNDに落とす。
 モータ缶自体の電位が暴れてアンテナになっていそうなので対処と
 モータ缶自体をシールドとして使用する

さらにソフトでも対策
①駆動制御マイコンは10ms間データの更新が止まったら走行停止させる。
②画処理マイコンはカメラからのデータが3ms間停止したら、
 カメラをリセットして初期設定から処理をやり直させる。
 画処理マイコンの通常の処理への影響を減らすため、
 ウォッチドックでマイコンごとリブートさせる。

///////////////////////////////

DCモータのノイズ対策にコンデンサを付けるのは一般的なのだろけど、
それで効果的に対処できるのはモータケーブルに乗る伝導ノイズだけではないのだろうか?
輻射ノイズの原因であろう、ブラシとコミュ間の火花放電への対処は
モータ全体を金属で覆ってシールドしないと利かないのではないか?

マイコン間通信変更

130518
AWD化のために、画処理マイコンと駆動系制御マイコンとの通信を見直す。
今までは上の図のように10本のポートを使ってマイコン間通信していたのだが、
AWD化するとモータ制御用のIOが6本増えてしまい、ポート数が足りなくなる。
なので、より少ないIOで通信できるようにする。

before
同期信号線の上りエッジでアナログ変位とマーカー情報を転送

after
同期線の上りエッジでアナログ変位を転送
同期線の下りエッジでマーカ情報を転送

この変更により通信に必要なポートが7本に減り、
マーカ情報に6bitを使えるようになった。