Days for development

電子工作や3Dプリンターを使った工作などの記録です。正確な情報を書くよう気を付けますがこの記事で発生した損失には一切責任を負いません

中部地区大会振り返り

おはようございます。

名古屋に行って中部地区大会に参加してきました。

0.高速バス(行き)

f:id:days_for_development:20181029054812j:image

朝7:30のバスに乗りコーディングしながら会場へ。

前日に300mm/s探索が使える状態になったので足立法でスタートからゴール、ゴールからスタートまで探索するプログラムを作成していました。

また、道中で美味しい野菜を食べることが出来て満足です。

f:id:days_for_development:20181029055231j:image

1.中部地区大会試走会

f:id:days_for_development:20181029054651j:image

高速バスで揺られて13:30。試走会は14:00。そこそこ早歩きで会場に到着。

到着後、センサーの閾値調整を行い試走。概ね満足できる走りでしたが時間経って夕方に閾値が変化したか壁を誤認識したのはいただけない。 

2.夜ご飯

矢場とんに行って来ました。

味噌カツです。

f:id:days_for_development:20181029055926j:image

味噌がサラサラしてるのに味が凄い濃いです。(半分はソースがいいかも?)

4.中部地区大会当日

夜ご飯の後、ホテルでデータフラッシュのプログラムを作成していましたが間に合わず、会場へ。

f:id:days_for_development:20181029060401j:image

はい、熱田神宮に寄り道してしまいました。

f:id:days_for_development:20181029060521j:image

境内はとても清涼な空気でいい場所でした。ただ、時間が無かったのでお賽銭を入れて一言、「失礼しました」と言って(口にはしてない)本当に会場へ。

会場に到着し、受付と車検を終えると試走の時間は残っていなかったですね。

ちゃんと試走したければ早めに行かないと。試走しなくても走る信頼性の高いロボットの方がいいんですけどね。

5.出走結果

今回の出走では

1.片道探索 成功

2.取れたマップの最短走行 成功

3.重ね探索 失敗 マップ消える

4.片道探索 成功

5.取れたマップの最短走行 成功

という結果になりました。

6.出走結果から考える

今回、3走目の失敗のリカバリが出来なかったことが痛手でした。

データフラッシュで電源を切った後も迷路情報を保持していれば重ね探索をするチャンスがあったからです。

また、探索を失敗した直接の原因としてはスラローム走行で曲がる際、センサー値で距離補正をしているのですがどうやらわるさをしているらしく、既知のバグを踏んだようです。

7.次の大会に向けて

次は東日本記録会です。

To doは

1.データフラッシュで迷路情報保持

2.壁センサーのled Offの時のセンサー値とled on , off時の差分値の相関を調べる

ではまた

モーターの速度制御〜その3〜

おはようございます。

昨日の続き

 

days-for-development.hatenablog.com

 今回は回転方向制御が発散した原因箇所の特定と対応を進めていきましょう。

 6.過去のソースコードの変更点

update_gyroの変化

はい。更新周期の変更と平滑化が入っています。

これを戻しました。

変更後です

7.変更後の動作

ひとまず大まかには発散していないので良しとしましょう。

8.変更までの経緯

 どうやら、回転方向の制御が怪しかったということで昨年からの変更点を戻しました。

しかし、サンプリング周期を戻すのは少し惜しかったので条件を少しずつ戻しました。

更新周期が3kHzで平滑化を削除した場合

発散しました。あまり変化がなくあまり関係がなかったのな?

更新周期1kHzで平滑化なし

これが上記の動画になります。

更新周期が早かったことが観測できる範囲では問題だったようです。割り込み内容が多すぎて計算しきれていなかったのでしょうか?

 

深追いはしないことにして

次は併進方向の発散の対処に移ります。では。

モータの速度制御について~その2~

こんにちは。

昨日、書いた記事の続きをやっていきましょう。

days-for-development.hatenablog.com

 

3.現象から考えられること(根本原因の考察)

3.1要求角速度0mm/s,要求速度0mm/sの場合

発散して回転し続けるので角速度PID制御がの何れかが発散していることは明確です。

対照実験として念のためPIDゲインをすべて0にした場合ロボットが動き出すことはなかったのでこれは確定でしょう。

では何が起きているのか、、、

  • 数値取得のバグ
  • I値の発散
  • Pゲインが大きすぎる
  • 制御周期とデータの取得タイミングの不適合
  • ジャイロとの通信ミス

が思いつきました。

3.2要求角速度0mm/s,要求速度0->800mm/s加速度10000mm/s/sの場合

角速度PIDと同様に併進速度PIDに問題があるようです。

  • 数値取得のバグ
  • I値の発散
  • エンコーダー補正テーブルの非連続性
  • Pゲインが大きすぎる
  • 制御周期とデータの取得タイミングの不適合
  • エンコーダとの通信ミス

実験後追記します。

2018/09/14 実験したので続きです

4.実験結果

ウーム...。この実験では回転方向はKi=0としているので発散してほしくはなかったのですが。加えて、エンコーダ補正を行っていないまま実験を行いました。ひとまず、発散時に急激にI値が大きくなっているところを確認しました。

では考察ですか。

5.実験結果からの考察

今年はマウスは基本的に去年のマウスの改修版なのでセンサーも同一でソースコードは流用品です。

ですので、最低でも

この程度は動くポテンシャルはあるはず。

機首角度の保持などは他の検証で正しく動いていることは確認済みなので

新規に手を加えた箇所が悪さをしているのでと思います。

次回、考察の続きから始めます。

では。

モータの速度制御について

どうもこんにちは。

進捗どうですか?私は不調です。

 新作マウスの速度制御が恐ろしく不調なので事実と考察を切り分け原因及び改善策を考えるために文章に書き起こします。

1.観測された現象(概略)

新作マウスの制御において何が不調なのか。

現状2つあります。

  • 併進速度制御の発散
  • 角速度制御の発散

2.観測された現象(詳細)

では発散した場合何が起こったのか。発散した条件が2つあるのでそれぞれにおいて確認します。

2.1要求角速度0deg/s,要求併進速度0mm/sの場合

 角速度が正から負に切り替わるタイミング(0:29)のタイミングで全く回転制御が働かないまま発散しています。動画が終わった後も回転し続けていました。

2.2 要求角速度0deg/s、要求速度0->800mm/s、加速度10000mm/s/s

 この動画では回転方向の制御が失敗していますがもう一つの事例では

f:id:days_for_development:20180911235132j:plain

初めからバックし始めるという状況です。制御もへったくれもないですね!!!

明日に考察を回します。おやすみなさい!!!

 

3dプリンタでロボットの外装を作ろう!

お久しぶりです。

最近、テストも終わりようやくマウスの整備に取り掛かり始めました。

では今回は、マウスの外装を作った話です。

なんで外装?

今年のロボットに外装を作っておいた理由については2つあります。

  1. 制御に失敗した場合、センサーが大きく歪む
  2. 流体力学的影響はどんなものか興味が出たため

です。

f:id:days_for_development:20180815093942j:image

センサーが曲がってしまうとセンサーAD値と距離の関係の近似曲線を作成し直す必要が生まれてしまい、開発の妨げになると思いました。

また、現行のマイクロマウスの多くは軽くして慣性力を減らし、吸引で仮想自重を増しタイヤのグリップを増して制御性を向上させています。

マイクロマウスは小さいが故に強引な手法も取れるのですが折角なので流体力学的特性を改善できたらより良い物が出来あがるかもしてないと考えてスカルプトで外装を製作することとしました。

3Dモデル

f:id:days_for_development:20180815094839j:image

主な形状はスプライン曲線で作成し、押し出しと対称で形を作りました。一応、fusion360でカーデザインを行なっていらっしゃる猿渡さんの形の作り方を真似て作りました。

もっとブラッシュアップしたかった!

(今回はデザインの向上が目的ではなく、早くハードウェアを固めてソフトウェアの再構築に取り組む為なので目的を履き違え無いようにしなければならないですが。)

3Dプリント

今回使用した機材はUP!です。素材はABS plusです。積層ピッチは0.15mmでした。

製作したモデルの厚みが1mmでしたのでサポートを取り外す時に一部もげてしまいました。

f:id:days_for_development:20180815095748j:image

大きく窪んだところ付近が一番わかりやすいと思います。

表面処理

タミヤのスーパーサーフェイサー L を使用しました。

表面が荒れていると空気抵抗が大きいと思われますので塗装、研磨を四度繰り返しました。

f:id:days_for_development:20180815100245j:image

外装はワンタッチで取り外すことができるようになっているので最終モデルはdmm.makeのMJFまたはナイロンで製作する予定です。

ではこれで何がわかる、評価できるのか?

評価できる事は主に2つ

  1. センサーが歪むか否か
  2. 最高速での直進時における安定性

センサーは歪まなければそれで良いですね。一つ課題をクリアした事になります。

問題は直進時の安定性です。外装をつけた状態と、外した状態で対照実験ができるはずです。また、流体シミュレータに3Dモデルを解析させれば空気の流れを可視化することもできる。要は比較対象を作れたという事ですね。

以上、またワンタッチで取り変えられる部分について書きます。

エンコーダの問題(評価方法の決定と補正方法)

おはようございます!

今回は重要な入力の一つエンコーダの値を評価、補正する方法を考えてみます。

1.評価方法

モーターをデューティ比10%,20%,50%で回します。

計測された0〜360度の値を時系列で並べ、近似直線を作成し、データと近似直線のR^2値が小さいほど良い補正であるとします。

2.補正方法

2.1 実験の前提条件

  • エンコーダ:AS5047D
  • 通信:SPI
  • サンプリングレート:3kHz
  • データ形式:絶対角度
  • 磁石:ネオジム磁石(N40)、リング型、Φ3xΦ1x2(mm)、片面2極

2.2 補正方法

今回は補正テーブル方式で補正をかけます。

具体的には

エンコーダの返す全ての値に1対1対応で真の角度とのズレを記載し、それを加算するだけです。

2.3 補正テーブルの作成方法

本当はロボット単体で自動補正ができると良いのですが、後回しにします。

  1. デューティ比20%ほどでモーターを回転させデータを取る
  2. エクセルにデータを入れ近似直線を作成
  3. 近似直線を理想値であると仮定して実測値との差を調べる
  4. 存在しないエンコーダの値の補正テーブル値は前後のテーブル値から近似する

再来週くらいには実験結果をかけるかな?

 

 

マウス制御工学始めます!(旧マイクロマウスの制御を論理立てて進めたい!)その1

(2018/05/11 23:46 タイトル変更)

こんにちは、こんばんは、

お久しぶりです。

ブログの更新が滞ってしまっていましたが書くネタが発生しましたのでここからは計算が関係する領域なので計算をブログまとめながら作業を進めます。

1.そもそもなにがしたいのか?

 目的を見誤っては正しい評価ができなくなって困るので目的を明示します。

マウスの制御を説明するうえで制御器の設計手順と制御の評価方法が明確 であること

 ことが必要だと思ったからです。

理由としては、

  1. エンコーダから読み取れる併進速度のPID制御では路面抵抗の差異を吸収できない
  2. PID制御に補正項を入れると正しく動くかもしれないが評価すべき条件が明瞭でなくなる
  3. 今後作るロボットに必ず必要な基本のプログラムになると思われるのでプログラムの作成における意思決定プロセスを明瞭にしたい(今後は自分の昔のやり方を再評価して軽微な変更を加えればよい状態にしたい)
  4. 人に説明できないロボットはもういらない。

こんな感じでしょうか?

2.マウスの制御における問題

2.1 得られるセンサー値

  • 左右タイヤのエンコーダーの値(3kHz)
  • 4つの壁センサーからのAD値
  • 車体の角速度(x,y,z)
  • 車体の角加速度(x,y,z)
  • バッテリーの電圧

2.2 それぞれのセンサー値の問題点

2.2.1 エンコーダ
  • 取れる絶対角が角度がずれているため補正テーブルなしで計測すると現実の走行速度が安定しない
2.2.2 壁センサー
  • センサーは入射した赤外線の強度に対して応答するので壁距離との1対1関係ではない
  • 赤外線LEDから発した光は車体と壁の相対的な角度によってセンサーに入射させる角度を変化させる
  • 会場の赤外線強度に応じて光センサーの値はオフセットを取っても補正できない(飽和している?)
2.2.3 角速度
  • 角速度の生値にはオフセットと値の重み補正が必要
  • 値の重み補正テーブルが作成しにくい
2.2.4 バッテリー電圧
  • 三端子レギュレータの電圧に依存している

今日はここまで