2017年8月31日木曜日

安定しない…

8月が終わりますね…。ブログを書き始めてから、2年ですね。あの時は憧れていたDCマウスを作っているとは、2年前の自分は想像していたでしょうか。まぁ、動きはまだまだですが。

さて、最短で進む距離が長くなったり探索も同じ現象が起こったりとうーんという感じで、結構頭を抱えましたが、バグ発見しました。
これが歩数マップとかかと思いきや全然違いました。モーターの方でした。距離をリセットする関数でリセットしなくて良い部分までリセットがかかっていました。たかがソースコード2行程度のミスですが、やはりDCのアルゴリズムは今年初めて作ったのでミスが残っていたようです。

その後は速度を上げると(上げると言っても直線1.5m/s、小回りターン0.6m/s程度)でも走れなくなるので、ゲインの調整をしようと、ログ機能を搭載しました。それでログをtera termに保存させてそれをエクセルで開いてグラフ作る、という感じで速度や角速度のデータを見れるようにしました。
そしてゲインをある程度調整してみたのですが、どうも安定しない…というか走れていたパラメータも走れなくなる…という感じでうーんという感じでした。
さらに走らせて見ると分かってきましたが原因はおそらく壁制御です。壁があると急にスラロームがおかしくなります。おそらく壁制御を許可した時に壁がなくてもジャイロのI成分をリセットしているミスがあるなーと思い始めました。

ということで今に至ります。なかなか安定しません。難しいです…。
とりあえず走れるようにすることが今の目標ですね。

今日はこの辺で。

2017年8月29日火曜日

一応走る

マウスはそこそこ進んでいます。

まず、フェールセーフ入れました。入れないと暴走して危険なので。目標速度or角度がずれ続けたら、停止するというものです。
入れていくうちに壁制御の式がおかしいことに気づき、そこも直しました。

その後は探索。一応スラローム探索です。ただ、迷路の歩数マップ展開に時間がかかっているらしく、動きが多くなるほど距離がおかしくなっています。
最短も入れましたが、動きがおかしいです。パスは出ているのですが、動く距離が少し大きくなってしまいます。少し良くわからないですね…。

まぁ、迷路をようやく走れるようになりました。自分のDCマウスが動いているのを見るのは初めてなので、新鮮です。ステッパに比べると軽快で良いですね。
ただ、内容は良いかというとイマイチで、どうしようかなという感じです。
歩数マップのあたりは、先輩が使ってきたコードのアルゴリズムを流用していたのですが、それにそろそろ限界がきているというところでしょうか。自分で書いてみますかね…。作りかけの迷路シュミレータも作りますか。とりあえず少しあがいてまぁまぁになってきたら、変えようかなと思います。

今日はこの辺で。

2017年8月26日土曜日

壁制御

今日は、壁制御を実装しました。

ステッパではないので、単純に誤差をdutyにつっこむのではダメなので、制御法を変えました。角加速度に誤差をフィードバックして、かつジャイロのI制御を切るという方法です。そこそこ制御がかかりました。
しかし、これだけだと壁の切れ目に吸い込まれてしまいました。センサの反応が実際の壁との状況よりも遅いことが原因でした。ということで、センサの値の変化を見ながら、壁のなくなったタイミングを見つけ、もしそうであればリファレンス値をあげてやる、という感じで直してみたら、良くなりました。少しリファレンスの補正値を調整する必要がありましたが、いじってみたらきれいに壁制御が出来るようになりました。

近似化も、効果が早速現れている感じです。距離と比例して値が変わってくれるのはありがたいですね。調整も物理量だから測定しなくてもかなりあいますし、やはりやって良かったと思います。

これで、マウスが最低限動く基礎は、出来てきたというところでしょうか。
次は、いよいよ迷路探索かなと思います。どんな動きになるかわかりませんが、頑張ります。
もう少し先のことを考えると、壁切れ補正や、斜め走行(180度ターン、V90も)が出来るようになりたいですね。まぁまだ迷路を動いていないですが。吸引機構は、使う日が来るのでしょうか。DCマウスらしい動きを出来たら、良いなと思います。

今日はこの辺で。

2017年8月25日金曜日

近似化初挑戦

センサのほうも、まぁ使えそうなところに持っていきました。

今年はハードウェア側では全くフィルタをかけていないので、ソフトを考えて作りこみました。一応、強めのLEDでスポットライトじかに当ててもあまり揺らがない程度には値が取れるようになっています。
フォトトランジスタの応答速度は結構遅いので割とシビアに値の調整をしました。50㎲程度はないと追いつかないようなので、それを個別に1ms周期でずらして発光させています。ずらしも割と時間をおかないとなので、まともな値が取れるまではそこそこ実験しました。結果的には、電流も何も考えずに使う時の1/5にできましたし、割り込み処理が軽くなったので、高効率になったかなーと思います。

その後は、昨年時間がなくてできなかったセンサ値の近似化に取り掛かりました。
マイクロマウスのセンサ(とりあえず自分の場合)は、距離が近いと値の変化が急になりやすくなるような特性があります。遠いときは値の変化が緩やかです。そのようなグラフを近似化する必要があります。
調べてみると、自然対数を使う方法がなかなか有力なようで、確かに自然対数のグラフを見てみるとなかなかセンサの値と似ている感じでした。
ということで、それを用いて、実測値から連立方程式を解いてやって定数を算出し、式を出して近似してみました。結果はこんな感じです。


系列1が実際の距離、系列2が左前壁センサの値を近似化したもの、系列3は右前壁センサの値を近似化したものです。
どちらも110㎜を超えたあたりからずれていますが、正直値の実測の精度はたいして高くないですし、実用では問題ないかなという感じでしょうか。あと右のほうは飽和しています。左は飽和しないで比較的きれいなのになんででしょうね。光軸は結構調整しましたがどうも右は飽和します。まあ、15㎜程度なら何とかなると思います。
横壁センサも同様に近似して、なかなかよさげです。

とりあえずセンサも使えそうになりました。初めての試みでしたがうまくいっているようでよかったです。実際動かしてみないとこれがどう出るかはわかりませんが、生値を使っているよりははるかに良いと思います。

次は壁制御ですね。昨年のようにただ誤差をP制御するだけとかではだめそうなので、これも試行錯誤でやっていこうと思います。それが出来たら探索がようやくできる...とよいですね。迷路を動く姿を、見れるように頑張ろうと思います。

今日はこの辺で。

2017年8月23日水曜日

ようやく…

ようやく、もちもち3号が真っ直ぐ進めるようになりました。長い戦いでした…。

どうにか、昨年の全て符号なし整数になってしまっている物理量ベースを修正、符号付きにできるようにしました。ポカミスを割として時間がかかりましたが、何とか修正しました。
そしてそこからFBに取り掛かりました。難しかったです。昨年まではPID制御のうち知識がないのでPだけでやっていましたが、それだけでは無理と判断して、PI制御に変更しました。そして苦戦しましたが、一応ゲインを適当にいじって直進、旋回、スラロームが出来るようになりました。このマウスが、ようやくまともに動きそうなそぶりを見せてくれたのでとても嬉しかったです。

今の懸念は…たまにエンコーダの出力が飛ぶこと…です。右の出力が飛んで暴走します。原因はおそらくマイコンの接触不良だと思うのですが、既にハンダを付け直す→動く→動かなくなるのサイクルを2回程やっているので、うーんという感じです。多分半田が雑だったのだろうと思うようにしていますが、別のところに原因がないと良いですね。

次は、センサです。今年は回路上でフィルタを全くかけていないので、ソフトをしっかり作ろうと思います。
センサも触ってみましたが、なかなか難しく、フォトトランジスタの応答速度と外乱との戦いです。
DC変則4輪板マウスは総合的にとても難しいです。細かいところまで考えなければならなく、これまでの適当にやっていても(といってもそれなりに大変でしたが)動いていた機体とはまた違うなーと。動いて欲しいですね。

今日はこの辺で。


2017年8月20日日曜日

ソフトの見直しが必要

DCマウスは難しいです(挨拶)。

さて、今日、FB制御に取り掛かるかーと思ったのですが、まだ出来ていません。
書いているうちに、今のやり方に無理があることがわかってきました。
今回のモータ制御のあたりは、だいたいステッパの物理量ベースを流用してDCに直しているのですが、そこに穴がありまして。ステッパはオープンループだけなので速さとかを全て符号なし整数値にしていました。なので、例えば角速度も符号なしである→ジャイロからのフィードバックをかけようとするとスラロームの時向きがわからない、みたいな感じで詰みました。
今後は向きを考慮しないで正負とれる値から実際の制御に変換するような形をとろうと思います。

DCも難しいわけですが、変則4輪であることも難しさを増大させています。FFだけだとターンの時全く指令値とは違う動きをするので、アルゴリズムのテストがしづらいです。スラロームとか、適当に入れていますが、本当に正しく動いているのか分かりません。まぁ、フィードバックすれば何とかなるだろうとか思っています。

直進したいですね。もう何回目でしょうか。本当、難しいです。ただ、FFで3m/sとかで動かしてみると、どうにか動かしたいと思いますよね。まだまだ試行錯誤ですが、頑張ろうと思います。

今日はこの辺で。

2017年8月16日水曜日

FF制御出来た!

DCマウスって難しいですね…。

今日も、ソフトウェアを書いていました。何とか、FF制御で加減速が出来ました!
最適化でループ無視されたり、電源電圧が書き方をミスして0になって0除算していたり、単位間違えていたりとかなり苦戦して大変でした。dutyがずっと100%になってめげそうになりましたが、何とか出来ました。
結果、FBをかけていないので加速度を上げたり最高速を上げたりすればずれますが、そこそこ目標値に近い制御ができました。FFだけでも、1m動かして誤差1cm以内くらいに収まっている(加速度4m/ss,最高速2m/s)のは驚きました。さすが1717。

次はここにエンコーダからの回転数とジャイロからの角度を使って、まっすぐ進めるようにしたいと思います。
直進への道のりが長いです。ステッパはだいぶ楽だったんだなーと、思う限りです。

今日はこの辺で。

2017年8月15日火曜日

ソフトウェア開始

間が空きました。

まぁ、ブログに書くほどの進捗もあまりなかった状況が続いていたので、少し放置していました。

ええと、ぼちぼち作業を再開していまして、自作電源装置の方は回路側は完成、ケースは製作中という感じで、ケースないですが既に使っています。マウスの電源に使っていますが、やはり便利です。

マウスの方も昨日あたりから再開していて、バッテリーの治具を作り直したり、1次スカートを追加したりしていました。
今日はソフトウェアに突入しました。とりあえず、エンコーダによる回転数と、ジャイロの角速度の物理量変換が出来ました。どちらも少し面倒で、特にジャイロはオフセットの処理が面倒でした。飛び値がたまに入ってくるのが厄介でしたが、そこを取り除くようにして上げて実用的な値になりました。一応、積分した角度は20秒で0.1度程度しかずれなくなってので、良しとします。

次はこれらの値を使って、マウスを動かしていこうと思います。DCマウスはステッパほど、簡単ではないなという感じです。

今日はこの辺で。

2017年8月7日月曜日

一応完成

マウスの基板は特に問題もなく、動作確認が出来たので、とりあえず「もちもち3号」大体完成です。

正確には、バッテリーの治具を作り直したいなーと思っているのと、スカート作っていないのと、出来ればケーブル短くしたいのとで完全に完成というわけではないですが、とりあえず回路側はようやく終了…だと思います。前進です。
これからソフトがまた大変だと思います。直進目指して頑張ります。

今日はこの辺で。

maker faire tokyo 2017に行って来ました

今年も、行って来ました。


様々な展示があり、とても面白かったです。企業の人ともいろいろとお話しできたので、良かったです。
適当に印象的なものをあげてみます。
・オリジナルマインド


昨年も見ましたオリジナルマインドです。INARIというものを展示していました。
確かにこれがあればDMMとかで頼んだ型のものを簡単に量産できて便利だなと思いました。材料も同時に発売してくれるそうです。

・SMART DIYS

レーザー加工機の展示です。最近は個人の手の届くレーザー加工機が出ていて、少し驚きました。ちなみに画像のは金属もいけるそうです。

・日本3Dプリンター


Raise3Dという3Dプリンタがありました。これのすごいところは、15種類もの素材を扱えることだそうです。展示されている生成物の中には、柔らかいものもあり、面白いと思いました。

・Hakko
はんだごてのところです。FX-600愛用しています。限定カラーがありました。クリアで格好良かったです。

・As cube
3Dプリンタのところです。ここではフィラメントを激安で売っていたので、買ってしまいました。

ざっとそんなところです。他にも様々な展示があり、とても楽しかったです。
あ、マイクロマウスの展示もありました。マイクロマウスのやる気補充されました。

この記事はこの辺で。

2017年8月4日金曜日

少しずつ

あまりまとまった時間が取れているわけではないですが、一応新基板に部品の実装を大体しました。


書き込みのコネクタがないこと、センサ用の熱収縮チューブがないこと、RCYコネクタとピンヘッダをとめる接着剤がないことなどからその辺の部品は付いていません。面実装の部品はつけ終わった感じです。

部品を早く手に入れて動作確認をして、今度こそ車体を完成させたいですね。ここで足止めは食らいたいくないです。

今日はこの辺で。

2017年8月1日火曜日

今後

帰って来たら、届いていました。

修正版

メールが来ていないのでまだかと思っていたら、1週間で届いていました。
5枚ですが8枚来ました。マッドブラック良いですね。

もう、8月ですねー。マウスがすぐそこです。やばいですね。軽く今後の予定をまとめてみます。
・inrof
おおよその構想、コンセプト、終着点は固まって来ました。できるかは知りません。来年は初マスターズなので、そこまで無理な目標は持たずに、まあどこまでいけるかなという感じです。
紙に概要だけまとめて、マウスシーズンが終わるまで放置でしょうね。そうしないとマウスが話にならないので。

・マイクロマウス
こっちは、いけるところまで頑張りたいですね。
今のところ、回路デバッグが終了したくらいですね。できることは、タイマー割り込み、PWM、シリアル通信、SPI通信、エンコーダカウント、A/D変換です。
今後は、新基板に部品を付けて、車体を完成させたいです。基板ミスないと良いですが…。
出来次第、エンコーダやジャイロの値を物理量に直したりFF制御をしたり、FB制御をしたりとしたいですね。この辺難しいと思います。まとまった時間を見つけて行きたいです。

・その他
自作電源完成させないとなーと。あると絶対便利なのと、必要な場面があるので。部品は揃っているし、とっとと作りたいです。

今後の予定を長い目で見てみても、今回のマウスでどこまでいけるかで結構変わってくるので、マウスに注力したいと思います。基礎的な動きを安定して行えるようになるのが、今年の課題だと思います。

今日はこの辺で。

RCJの世界大会スタッフ参加後半

前半の続きから。
Day3
この日で、通常競技は終了となります。Round10,11を行いました。この日はコースは比較的簡単でしたが、被災者を取らせる気のないフィールドでした。


これだけでもなかなか面倒なのに、ここに更に無数の瓦礫(つまようじ)がまかれます。
とはいえ、救出しているチームも少なからずあり、驚いていました。
午前で競技は終了したので、また展示をウロウロしていました。レスキューミニという競技に参加している方からお話が聞けたので、良かったです。
その後はSuperteamのルールを聞いて、フィールドを作り替えて、終わりでした。

Day4
最終日です。この日は、Superteamの競技です。
Superteamとは、その場にいる違う国のチーム同士くじでペアを決めてできた混合チームで、その場に与えられた課題を協力してこなすというものです。
今回のフィールドは、こんな感じでした。


今回のルール説明をします。
1台のロボットは、長めのコースをライントレースで進んで行きます。途中、タイルの色が変わります。その後、画像でははめられていないところに、交差点があるのですが、そこの緑のマーカーの数を、記録して銀色の枠(コミュニケーションゾーン)に進むことが課題です。
一方、もう1台のロボットは、短めのコースをライントレースし、コミュニケーションゾーンで待機します。
2台ともコミュニケーションゾーンに入ったら、長いコースを辿ったロボットが交差点の数を何らかの方法(ほとんどは、リミットスイッチによる物理的なものでした)でもう1台に伝え、情報を受け取ったロボットが8つのボールを回収して行きます。
最後に、伝えられた通りの場所にボールを運ぶことが出来れば、パーフェクトです。

ルールが直前にわかる、チームも直前にわかる、という競技でかなり大変だろうなーと思いましたが、出来ているチームはパーフェクトまでしていて、驚きました。その場のアイデアや、選手間のコミュニケーションが重要に思えます。

そういえばこの日の最後の方の競技で、来年の知ロボでやろうと思っている機体に比較的似ている機体を見ました。収穫です。

疲れてもいたので、表彰式には出ずに、帰って来ました。

レポートはこんな感じですかね。
世界大会は、RCJだけでなく、メジャー、amazonrobotics、企業の展示などなど、様々なことがあり、本当に行って良かったと思います。
RCJの同じスタッフの中にも、マウサーが居たりと、色々な人と交流ができたのも良かったです。
レスキューLineの競技からも、次回の知ロボに活かせそうのものが見れたので良かったです。間近で競技が見れるのは、スタッフの特権です。
スタッフ、面白いのでもっとたくさんの人が来て頂ければ良いな、とも思います。本当、知られていないかもですが、楽しいです。自分も今後もRCJのスタッフ、出れれば出て行こうかなーと思います。

この記事はこの辺で。