問題点と部品選定

来年は今年作ったステッパ実験機を大幅に改良した本気ステッパと、DC実験機を作ろうと思う。
その上で部品選定は超重要。
オフ期間だろうがなんだろうが、選定はしっかり進めておきたい!
という訳でM嶋さん、ヘルプミー!

                • -

まずは現状のハードウェアが持つ問題点で思いついたことをとりあえず書きだしてみる。
しかし自分は機械屋さんや制御屋さんではないため、間違いもゴロゴロあると思う。
という訳で、何か意見あったらください!(M嶋さん

1.マシンがターンする時、シミュレータ軌道よりも内側を走行する。
つまり重心が高すぎて内輪が浮くため、現時点でターン速度が頭打ちだったりする。
全体的に低重心化が必要。


2.センサ配置
左右に壁が有る時はまだしも、斜め走行をしていると壁を検出できずにぶつかる。
斜め走行用センサを新たに2つつけて、直進用センサを2つから1つに減らす。
合計5つを予定。


3.AD変換器
SH7262は10bit,4chのAD変換器を持つ。
この4つをセンサ用に割り当てたため、バッテリー電圧監視用に秋月で売ってたMCP3208を使った。
12bitで良かれと思ってたのだけど、これが大失敗。
SPI通信にもかかわらず、3.3Vで1Mbpsまでしか出せないうえに、通信には3byte必要なのでめちゃくちゃ遅い。
しかも秋月に売っているのはMCP3208-Cタイプであるため、誤差がBタイプよりも大きい。
もっとよく仕様を読んでから使っておけばよかった。
次は12bit,8ch以上を内蔵するマイコンを使用するつもり。


4.マシン幅
現在のマシン幅は74mm。
他のマウスと同程度あるいは少し狭いくらいのような気がする。
でも個人的にはもっと狭くてもよい気がする。
狭ければターン時に各タイヤの速度変化も小さくなるし、
コーナーに近いところを通過できるしターン旋回半径大きくできるし(特に斜め90度)、、、
欠点として旋回分解能も下がるしふらつきを抑えるのが大変になるとは思うけど、狭ければ狭いだけいいんじゃないの???
もっとも、これは使用するモーターに拘束される部分だとは思うけど…。


5.モータドライバ
今回何も分からず作ったため、basic mouseと同じようにSLA7033Mを用いた。
SLA7033Mはクロック入力タイプではないため、これまたbasic mouseと同じように信号生成用のTA8415も用いた。
basic mouse講座が開始された2002年の当時の事は良く分からないが、現在では信号生成とドライバが一つのパッケージとなっているICもゴロゴロと見つかるため、この構成は無駄が多い気がする。
次はクロック入力タイプのドライバを採用する予定。

                • -


○本気ステッパ
・モータ選定
その1:M嶋さんが共立で購入したよく分からん小型バイポーラステッピングモータ
サイズは相当小さい。頑張ればハーフサイズも作れそう?
しかし分解能は24pulse/revだと思われる。
本気マシンに採用するのはちょっと抵抗あるかも…


その2: TS3166N913
正直現状と大して変わらないと思う。
サイズも似たようなものだから低重心化も目指せないし。
既に所有している・個人的に面白そうと思っている以外に使うメリットはないかも。


その3: PK223PDA
バイポーラステッピングモータ。モータ取り付け角寸法は28mm。現状のが39mmだから低重心にはなる。
同型のユニポーラステッピングモータPK223PAよりもトルク特性がよさげ。
もっとも、
PK223PDA: 1.8V*1.5A = 2.7W
PK223PA: 2.66V*0.95A = 2.527W
と若干バイポーラの方が出力大きいからだとは思うけど。
マシン幅は84mmに拘束される。


その4: PK213PDA / PK213PA
PK223PDAよりもさらに小さいステッピングモータ。重さ50g。
個人的に今一番使ってみたいと思っている。
モータ取り付け角寸法は20mm。
最大静止トルクはバイポーラのPK213PDAの方が良いのだけど、
PK213PDAは高速回転時のトルクの落ち方がユニポーラのPK213PAよりも急っぽい。
例えば、タイヤ直径を25mm、マシン最高速度を3000mm/secとしたとき、モータ回転速度は2292rev/minとなる。
データシートに書かれているトルクを比較してみると、
PK213PAでは2292rev/minのときにだいたい0.013N・m,PK213PDAでは0.012N・mくらい。
初期加速度を大事にするならPK213PDA、最高速度を大事にするならPK213PAって選択になるのかな?
個人的には初期加速度を大事にしたいのでどちらか選ぶならPK213PDAが良いんじゃないかと思っている。
マシン幅は80mmに拘束される。


その5: SS2421-5041/ SS2501-5041
マシン幅を究極に狭くすることができるんじゃないかと思わせるステッピングモータ。
取り付け角はSS2421が42mm、SS2501が50mmと現在よりも重心が高くなる可能性があるが、
SS2421が0.07kg, SS2501が0.09kgと比較的軽量なので
他の部品をできるだけ低いところにつければ全体の重心を下げることができると思う。
ある程度のところまでしか高速回転できそうにないが、タイヤ直径が現在よりも大きくなることを考えれば十分ともいえる。
SS2421を使用した場合、マシン幅は37.2mm、SS2501では32mmに拘束される。・・・けれども流石にそこまで狭くするのも怖いなぁ。すぐに倒れてしまいそうなイメージが浮かぶ。せめて横幅は高さよりも長くしておいた方が・・・。吸引ステッパというのも一つの手かもしれない(ぉ


その6: サンキョー PMタイプ MSCA
重さ10gでホールディングトルク3.43mN・m。ハーフ兼用ステッパ作るなら意外といけるかも。
角度分解能はあまり良くない。減速させるってのも一つの手かな?
ついでにMSBPCというギヤ付きで1ステップ7.5/85°という20gステッパも有るけど、流石にこれは減速しすぎ?
入手方法不明。
そろそろよさげなステッパ漁るのも限界かも…




・バッテリー選定
ZIPPY Flightmax 138mAh 2S × 3本
3本合わせて21.6gぐらい。今のが3本合わせて60gだからだいぶ軽くなる。
このバッテリーの持つエネルギーは
7.4V*138mAh*3本 = 3.06Wh
大会中の7分間使えればよい訳だから、
3.06Wh = P * 7min
P ≒ 26W
PK213PDAを採用した場合、逆起電力が発生して、ドライバが「22.2Vかけなければ0.5A流せない!」となったとしても(つまり最悪時でも)、
22.2V*0.5A = 11.1W
となるので、この構成で7分は十分持つ…と思う。
マイコンの消費電力とセンサの電流にもよるけど、バッテリーはもっと小さいのでも良いかも。
…すっかり忘れてたけど、モーターは二つある。ついでに2相励磁させると仮定すると、44.4Wになる。ついでのついでに効率100%だせるという訳ではないので、、、常にフルで回さないとはいえ、結構きついかも。一応8セル駆動(最大約34V)ができるように設計してみようかな。



マイコン選定
手軽にルネサス系で攻めるとすると、、、


その1: SH7137(SH-2)
パッケージサイズ:14mm×14mm
最大動作周波数:80MHz
ROM:256Kbyte
RAM:16Kbyte
12bit,16chのAD変換器


その2: SH7243(SH-2A)
パッケージサイズ:14mm×14mm
動作周波数:100MHz
ROM:256Kbyte
RAM:12Kbyte
12bit,8chのAD変換器
DMAC
レジスタバンク


その3: SH7239(SH2A-FPU)
残念ながら開発中。
パッケージサイズ:16mm x 16mm
最大動作周波数:160MHz
ROM:512Kbyte
RAM:64Kbyte
12bit,16chのAD変換器
DMAC
RSPI
32KBのデータ格納用フラッシュメモリ
レジスタバンク

SH7239を使いたいところだけど、今のところSH7137が妥当かな。
SPI接続ジャイロを使うならAD変換器は8chあれば十分だからSH7243って手もアリかも。




・センサ回路
メインは現状のSFH4550 + TPS601のままの予定。
定電流か定電圧にはした方が良いかな。
電流は現状100mA程度だけどもっと流す予定。
正面用距離センサはPSDにするかも。
配置と数が問題。




・ジャイロ
全く未定。今後の調査・実験次第。




・モータドライバ選定
リポ6セル(25Vくらい)でも耐えられそうで、出力もそれなりに取れて、制御が楽チンで、小さくて、軽くて、消費電力小さくて、はんだ付けしやすくて、、、そんなドライバがあったらみんな使ってますね。
まだデータシート深読みはしていないけど、いくつか候補をみつくろってみた。


その1: TB6560AFG
バイポーラ用。耐圧40V。出力電流2.5A。
0.26gと軽量。クロック信号で動作可能。ところがどっこいQFP64ピン。12mm×12mm。
次期マウスはエッチングから始めるので選択肢としては悪くないかな。


その2: TB62209FG
バイポーラ用。耐圧40V。出力電流1.8A。0.79g。
クロック信号で動作可能。12.23mm×16.5mm。ヒートシンクが丈夫そう。「通常のBipolarトランジスタ出力のICよりも、出力部消費電力を非常に小さく抑えることができる」らしい。




○DC実験機
・モータ選定
優勝したKさんも使っているマイクロマウスの定番(?)、1717T003SR-IE2-512を見積もって貰った結果、2つで47250円でした。
高いけどとりあえず注文。
4月頃までには届くかなぁ。
他に金かかる趣味を持ち合わせていないし勉強用にこれぐらいは…ね。




しかし個人的なスタンスとしては虎視眈々と上位を狙うよりも、
割とどうでもよいネタマシンも作りたいと思っていたりする。
何台作るかも結局よく分かんなくなってきた。

色々なものが、未定、未定、未定…


※この記事は選定が終了するまで流動的に書き換えていく予定。

お宝発掘?

汚部屋を掃除してたらこんなの出てきた。

なかなかマウス向け風味なステッピングモータ。
重さは100gちょっと。
大きさは今使っているモーターよりほんのちょっと小さいくらい。
しかもなぜか都合よく2つある。
なんか運命的なものを感じる。
これ、マウスに使えるんじゃね?という訳で調べてみる。

モーターにはTAMAGAWA SEIKIのTS3166N913と型番らしきものが書かれていたので、とりあえずぐぐってみるが、情報の少なさに驚く。
まず最初に分かったのは、かつて共立店頭で販売していたらしいバイポーラステッピングモータだということ。
いつ入手したものかは覚えていないのだけど、店頭へは過去2度ほど行ったことが有るので、そこで買ったのかもしれない。。。
いつも面白そうなものは手当たり次第買った後使わないで眠らせておくことが多いのだけど、今回のもその種かと。

データシートがどこにも見当たらないので多摩川精機さんに直接問い合わせてみたら、すぐに連絡をくれた。
しかしどうやらだいぶ古すぎてデータシートが無いらしく、「資料のみの提供とさせていただきます」とのこと。
ちょっと残念な気分で添付されていた資料を開くとびっくり。
データシートより詳しいんじゃね?ってくらい詳しく書かれていた。

という訳で簡単に資料からのスペックを公開してみる(問題が有るようなら削除します)。
仕様書は92年2月12日に作成された第2版のものらしい。

                  • -

基本ステップ角度:0.9°
定格電圧:DC12V
定格電流:DC0.75A
巻線抵抗:4.3Ω±10%
巻線インダクタンス:2.75mH±20%
ホールディングトルク:400g・cm
重量:120g

                  • -

思っていたよりも定格電圧が高いことに驚き。
自分は「定格電圧=定格電流×巻線抵抗」という関係が成り立つと思い込んでいたため、
なぜこんなに定格電圧が高いのだろうと不思議に思っていたりする。
まぁしかし資料が間違えているとも思えないので定格は12Vなのかなぁ。。。

重さを量ってみたけど、仕様書よりも軽い。(うちの秤が壊れてるだけ???)

線が8本出ていることに関して、4つはモーターに電流を流すためのもの、残りの4つはセンサ出力となっている。
逆起電力と同じ位相の波形が出力されるっぽいので、上手く使えば脱調対策ができるかも?

基本ステップ角度は0.9°で申し分ないと思うのだが、仕様書にはさらに細かい1/3 STEP MODE(0.3°STEP)
で動かすための方法が書かれていて、PPS等も0.3°STEPを使用した時のものが書かれている。それによれば、PULL-OUT TORQUE(ってなに?)は24000PPSで120g・cmらしい(定電流駆動なのか、定電圧駆動なのかといった、測定条件については書かれていなかった)。

という訳で、モーター選定方法がちんぷんかんぷんな私には良く分からないのですが、面白そうなのでとりあえずまわしてみようと思います。
日曜に千石で買ったこれも使えるし。

しかもこのドライバ、4段階の電流出力が可能なため、まさに1/3 STEP MODEに使おうと思えば使えそうなんですよね。(これも運命?)

もしマウスに使えそうになかったらこれで久々に時計でも作ってみよう。

マイクロマウス全日本2010反省会

マイクロマウス全日本大会に参加してきました。
早めの出走は嫌だなと思っていたのですが、何と出走順2番という幸運をつかんでいました。
結果は、探索がやっとこさ成功し、2次走行を開始したものの、
時間切れ&途中失敗するというなんとも喜びがたいものでした。
走行の動画は撮影していないのでお見せできませんが、だいたい次のような感じでした。

・第1走行:
探索開始。走行中に急にマシンがのろのろと動きだす。
審査員からは脱調したのかと聞かれたが、脱調したという訳ではない。
前壁が有るかどうかを確認した際、本当は壁が無いのに、ロボットが壁が有ると勘違いしてしまったために起きた問題。
自分のマシンは袋小路に入ると前壁を利用して補正をかけるようにしている。
そのため、左右に壁が有る状態で前方センサが誤判別(壁が無いのに、「有る」と判別)すると、
マシン微調整のために低速で前方の壁との距離を保つよう補正をかける。
しかし前方には壁が無いため、前壁が見つかるまでじりじり前進しようとする。
この問題は中部地区大会の時にも発生していたため、全日本で同じようにならないために対策を施したが、
施した対策内容はそもそも間違えないようにしようという趣旨で行ったため、間違えたらどうするかまでの対策はしていなかった。
完全に自己責任。

・第2走行:
2回目の探索開始。しかしそこでも同じようにのろのろと動きだす。
事前に試走用の迷路でセンサキャリブレーションを行ってはいたが、キャリブレーションが甘かったのか、
あるいは会場とは光り方が違うのかは分からないが、キャリブレーションに問題が有ると考えた。
そこで大会の最中に実際の迷路上でキャリブレーションさせていただいた。
…のだが、どうやらそれはまずかったらしい。
自分はルールを「(調整のため&走行時)を除いてスタート地点以外にマシンをおいてはならない」と覚えていたため、
調整のためにスタート地点以外にマシンを置くのは別に良いだろうと解釈していたのだが、
実際は「走行時を除いてスタート地点以外にマシンをおいてはならない。たとえ調整のためでもね。」という風に解釈しなければならなかったらしい。
一応調整前に調整の許可を申請したが、指摘されたのは調整後だったため、ルールに反する行為をしてしまった事が悔やまれる。
失格扱いしていただいてもよかったと思うのだが、それでも走行を許可してくださった審査員の方々に感謝。

・第3走行:
3回目の走行開始。
調子よく走行していたが、しばらく走行しているとマシンから警告音が再生され、走行停止。
既に保存されていたマップとの矛盾が生じたことが原因。
マップの保存方法は全日本用に改良していた。
全日本以前は「ゴールまたはスタート地点に到着したら保存する」としていたが、今回は「間違ったと認識した地点の10〜20歩手前のマップを保存する」というようにしていた。
これが裏目に出たらしく、どうやら第1、第2走行で保存したマップが間違いを含んでいたため、
途中でセンサ値と保存された正解(と思われる)マップを比較した際、(本当はセンサ値の方が正解なのだが、)既存正解マップとの矛盾に気がつき、
走行を停止した。
保存されていた迷路を消去して第4走行開始。

・第4走行:
新しく追加した「迷路の中央を走っていない時には一度止まって横壁との距離を一定に保つように補正」という方法が正常に働き、ゴールに到着。しかしゴールから帰ってくるところで失敗。
この補正は櫛状の迷路では働かないようになっていたため、見直す必要がある。

・第5走行:
残り数秒というところでスタート。時間内に到達できないことは分かっていたが、それでも一度は2次走行を行いたいと急いだため、タイヤを拭き切ることもできず、走行途中でリタイヤ。



センサ誤検出はエキスパート迷路・フレッシュマン迷路に拘わらず起こったと想定されるため、非常に残念ではありますが今年はどの道良い結果を残せなかったでしょう。
しかし大会会場のライトのデータを集める事が出来たため、これを解析して来年の対策を行おうと思います。
自分のマウスはゴミだの何だのと言いながらも、やっぱり自分の作ったものは愛着も湧いてくるというもので、
「まともに動けばこのぐらいは走れるんだぞ!」と親バカな気分で調製用迷路で走らせた時に撮影したものを一応今回の成果として報告しておきます。
新しく追加した補正方法もよく分かるかと。

今年は大会前日に用事が有ったため試走会に参加する事ができませんでしたが、来年は有給使ってでも参加したいです。
ただし聞く限りあまり有給が取りやすい環境ではないようですが…。(そもそも本当に卒業できるのか?)

来年こそ予選突破できるようがんばります!

斜め走行

全日本に向けて斜め走行を実装してました。

さしあたって、まずは軌道を描くためのシミュレータを作成しました。
軌道を生成する方法にはクロソイド曲線等の方法が有るかと思いますが、何も考えず角速度が滑らかに変化するよう解析的に求めるように適当に作ってました。

作ったパターンは、旋回半径の小さいスラローム、旋回半径の大きいスラローム、45度ターン、135度ターン、180度ターン、斜め90度ターンの6パターンです。
マシン中央軌道を赤、タイヤ軌道をピンク、マシン横幅を灰色で示しています。





そしてこのシミュレータが計算したパラメータから、斜め走行実装を行いました。

そしてそして斜め走行の調整をすべく、中部地区11月月例会に参加したのですが、、、そもそも探索が上手くいかないという事態。壁切れ方法を大幅に改良したつもりが、逆にどうやら大改悪になっている模様。
予選突破したいがための斜め走行の実装に追われたせいで、完走すらできそうにないという危険な香りが漂ってきました。

それでも何とか探索できたので、斜め走行にトライ。

…上の動画は一番うまくいった場合を撮影しているので、実際はもっとボロボロでした。
結局全日本では斜めできそうにありません。
ジャイロ使っていないのも原因ですが、2番目のような失敗は必ず起きるというのは実は次の理由からあらかじめ想定されていました。

斜めの壁を避けるのに使う前センサをマシンの横幅いっぱいのところにつけるべきなのに内側に付いている。
これでは高い指向性を持つSFH4550で壁の存在を検出できる訳が有りません。本来なら赤色の枠で書いた位置に、若干外側に向けて設置した方が良いと思うのですが…。

時間があれば作りなおすのですが…残念ながら時間取れません。というかセンサ作りなおす時間は取れそうですが調整している時間が有りません。
予選突破したかったのですが、そもそも今回の月例の結果から考えるとどうもそんなこと言っていられないレベル。
何とか完走するために大会までにマップの保存方法や、探索中の補正について改良しようと思います。

シミュレーション結果

走行時間計算シミュレータが完成しました。


上が補正無しの実際の走行データ(タイヤを浮かせてマシンを動かした)、下がシミュレーション結果です。
それぞれの直進やスラロームステップでほぼ同じタイムとなっています。

しかし補正が有った時にどれだけずれるかは分からないので、中部地区大会の4回目の走行時に使ったマウスパラメータを元にシミュレーションを行いました。
結果は
・シミュレーション値:20.205666[sec]
・無補正実測値:20.380[sec]
・補正有りの実測値(4回目の走行のタイム):20.281[sec]
となりました。
実際にはセンサーバーがいつ反応するかの違いや、関数のオーバーヘッド、マイコンの計測精度等の問題が有るため、完全な一致にはなりませんが、なかなか高精度にシミュレーションできます。

この高精度シミュレータを用いて前回の疑問「自分のマウスは西周りと南回り、どちらの方を選択するべきだったのか」を検討してみます。
この実験に伴い、最短経路算出のための等高線マップによる重みづけ方法を変更してみました。


従来は上のように森永さんの等高線マップをそのまま利用していたのですが、新たに下のような折れ曲がりでの重みを追加してみました。
この2つの経路を比較した結果、上記パラメータで0.15秒ほど西周りの方が早いという結果になりました。

中部地区大会

とりあえず完走する事は出来ました。
現状の最上位パラメータで走行できたのは良かったです(現状の最上位がやたら遅いというのは置いといて)。
ただ、走行途中でたびたびエラーが発生していたので満足のいく結果では無かったです。
以下は自分のマウスが選択した最短経路。

自分のマウスは西周りと南回り、どちらの方を選択するべきだったのか、ちょっと調べてみようと思います。

中部地区10月月例会にて

マイクロマウス中部支部10月月例会に参加してきました。
会場到着後にいきなり行ったその場旋回による探索走行では、キャリブレーションを行いましたが、
2回連続で同じ個所の前壁の検出ができず、マウスが動作停止してしまいました。
もう一度キャリブレーションをし直して走行したところ検出が出来たため、ひとまず安心はしましたが、
センサの高さを変えたので多少センサパラメータが変わったのかもしれません。
その後も「一応走行できるが前壁センサ補正が不安定」という状況が続いたため、スラローム探索を実装してみました。
スラローム探索はなかなかに安定しています。
実はまだスラローム探索には壁切れ距離補正を実装していないので、中部地区大会までに実装しようと思います。

他にも問題点がちらほらあったので箇条書きにしてみます。
・モータにバッテリーをマジックテープで止めているため、だんだんモータが熱くなってきてマジックテープの粘着剤が溶け、しまいにバッテリーが落ちる(以下の動画)

・現状では加速度を上げると最高速度遅いパラメータしか作れない。かといって最高速度を上げようとすると加速度を落とすしかない。加速度テーブル作りなおした方が良いかも。

        • -

robolaboさんから「シャーシを後ろにもっと長くした方が良いのでは?」とのご意見を頂きました。
なぜ後ろに長くした方が良いのかの説明もしていただけたが、おバカな自分にはよく分からなかった(汗)のでちょいとまじめに考えてみたり。
以下「シャーシを後ろに長くする!」事に対する考察。全く見当外れかも知れないけど…

動輪を支点として、
L1*F1とL2*F2はつり合う(L1*F1 = L2*F2)。
左辺L1*F1はL2の長さを変えても不変である(シャーシの重さを0と仮定した時)。
よって、L2を大きくすれば、F2を小さくすることができる!

従輪に加わる力F2が減れば、摩擦を抑えることができる。
特に後ろの従輪のL2を長くすれば、加速時の障害となる摩擦を抑える事が出来る!
おまけに従輪を支点としたモーメントを考えた時には駆動輪に加わる力が大きくなるため、マウスと床のグリップが良くなる!

と良いことづくめ?なのかもしれません。

…というわけで、M嶋先輩出番ですー!(ぉ