隠居エンジニアのものづくり

自転車 電子工作 ラジコン ロボカップジュニア CAD レーザー加工機

ロボット教室 4回目

曲がり癖の補正

私のロボットは前進のタイルを置いても左に曲がっていきます。

動画でも左に曲がって行くのが分かったのではないでしょうか。

皆さんのロボットはどうでしょうか?

右に曲がるロボット、左に曲がるロボットどちらもあると思います。

このロボットごとの曲がり癖は左右2個のモータの性能バラツキによるものです。

モータに限らず部品には性能のバラツキがあります。

このバラツキは範囲が決められていて範囲内なら良品、範囲外なら不良品としてメーカーで厳しく管理されてます。

ホビー用のモータは安く作る為にある程度バラツキ範囲が大きくなってます。

と言うことで真っすぐ走るロボットは無いと言っても良いでしょう。

 

とは言え真っすぐ走って欲しいですよね!

このバラツキを調整する機能がC-Styleにはあります。

https://www.daisendenshi.com/download/Alpha-Xplorer_C-Style_startup_190615.pdf

”α-Xplorer C-Style導入編 4-4. モータ出力バランス 25pに調整手順が書いてありますのでよく理解してから調整して下さい。

α-Xplorer C-Style導入編の説明を超える分かりやすい説明はできそうにないので、ここであらためての説明は致しません。

 

完全に真っすぐ走る様にはなりません!

曲がり癖を小さくする為のツールですので、微妙に曲がるのはOKです。

 

モータの個体差の他に、モータ1個の中にもバラツキがあります。

このバラツキはモータ自身の正転・逆転の性能差です。

例えば正転が1分間に5000回転するとします。

これが逆転では1分間に4500回転だったりするのです。

モータ出力バランスは前進と後進がセットになってますが、競技を行う上では前進の方が重要ですので前進中の曲がり具合に注目して調整し、後進時に曲がるのは良しとするのも有りだと思います。

 

センサを使おう!

”α-Xplorer C-Style導入編 2-2. センサ モニタ 12pにセンサの動作が見えるセンサモニタと言う画面を出す方法が書いてありますので手順にしたがって操作してみて下さい。

※センサモニタ メンテ中

 

 CH1にL-Eyeセンサ、CN2にR-Eyeセンサが付いてます。

動画の様に前向きに取り付けると壁との距離を”%”で得られます。

私のロボットは壁が遠い時は1%、壁と接触するまで近づけるとL-Eye72%、R-Eye71%でした。

センサにもバラツキがありますので、ロボットごとに値が違いますし、左右のセンサで値が違うこともあります。

f:id:Blackbox_crusher:20201231234438p:plain

センサモニタ

 センサを使ったプログラム

 スタートスイッチを押して前進、センサの値を見て、壁にぶつからない様に停止します。

※センサを使って停止する メンテ中

 

f:id:Blackbox_crusher:20201231235730p:plain

センサを使ったプログラム

whileのタイルを置くと”while”、”end while” が縦に並んで表示されます。

Whileを置くときは条件を設定する必要があります。

f:id:Blackbox_crusher:20210101003616p:plain

条件選択

”センサチェック”を選択して

f:id:Blackbox_crusher:20210101003844p:plain

CH選択

見たいセンサの付いているCNを選択します。

L-Eyeの値を見たいのでCH1を選びます。

f:id:Blackbox_crusher:20210101004152p:plain

値と符合の入力

符合を"<"、値を”20%”(値は壁にぶつからない様に調整します上の図では23%を設定)

"while"は"end while"とで挟んだタイルの動作を条件が満たされている間繰り返し実行する命令です。

上の例ではL-Eyeセンサの値が20%より小さい間は前進のタイルを繰り返し実行します。

L-Eyeセンサの値が23%もしくは20%より大きい値になった場合は繰り返しをやめて次のタイルを実行します。

f:id:Blackbox_crusher:20210101003444p:plain

プログラムの流れ

"while"タイルでしか値の判断をしません。

上の表で時間経過5のタイミングで002行のタイル直進を行ったときに20%になってますが、ここで繰り返しをやめるわけではありません。

経過時間6の003行"end while"が003行に戻るを実行して経過時間7の001行"while"がL-Eyeセンサの値を見て28%を確認した時に004行に行くを実行します。

004行で停止を実行しますが、”車は急には止まらない”ので停止から少し前進します。

センサを使って停止するプログラムができたら4回目は終了です。

初心者講習はここまでとしましょう。