こてつ一号 紹介

製作:今井義弥
マイクロマウス2005(ニューテクノロジー振興財団主催)のエキスパートクラスに出場しました。

大会に向けてのマウス製作は初めてで、一度で完成されたハードを作ることができなかったため、大会のたびにマイナーチェンジがなされました。
右の写真が中部地区初級者大会(2005年9月4日)、右の写真が全国大会(2005年11月26,27日)に参加したときのものです。
before after

以下のデータは、全国大会時のものです。

ハードウェアの仕様

全長112 [mm]
全幅77 [mm]
高さ63 [mm]
タイヤ直径 48 [mm]
幅 7 [mm]
総重量約 320 [g]
CPUH8-3069
秋月のマイコンボードキット
電源ニッケル水素電池
単4×6
モータコアレスDCモータ×2
並木モータ SCL12-3005
ギア比7:1
センサフォトセンサ×6

機械研ではあまり例のない小ささのロボットになりました。

タイヤは普通のゴムタイヤを使っています。 制御のやりかたに問題があるのかも知れませんが、エキスパート決勝に出てくるようなマウスと張り合うにはグリップが足らないような気がします。 大会中はカイロ(懐炉)で温めて、ゴムを軟らかくして使いました。

ジャイロは積んでいませんが、フォトセンサが6個(前・斜め・横が2個ずつ)ついています。
使用した素子は、
赤外LED TLN101
フォトトランジスタ TPS601
です。

スペック

制御可能な
最高速度
2500 [mm/s]
スラローム時の
安全な速度
650 [mm/s]
スラローム時の
危険な速度
750 [mm/s]
加速度4500 [mm/s^2]
探索走行時の
速度
450 [mm/s] 固定
センサ感度
(最大距離)
140 [mm]

作る前の設計よりも、最高速度(予定では 3000)が低く加速度(予定では 3500)が高いマウスになりました。
そのため、上の減速比(7:1)では小さすぎてモータに無理なトルクを要求してしまうことになりました。 この仕様での最適な減速比は 8:1 程度と思われます。

2次走行のスラローム速度には2種類あり、全国大会の予選では、コーナーが連続する場合は 650 [mm/s]、 コーナーの前後に1区画以上の直線があれば 750 [mm/s]で走行しました。

特技

@ 実況のお姉さんに「スラロームを使ってない。」と言わせるほど、旋回半径の小さいスラローム走行。
A 1区画バック。
B 金色のカラーコードをつけられるぐらい、正確な加速。(多分・・・)

制御

一部、今井義弥の脳内で補完されている部分があって説明として不十分なところもあると思いますがご了承ください。

センサ


右のわかりにくい図のように、「こてつ一号」はフォトセンサを6個備えています。
前向きの2つと、横向きの2つで壁の有無を判別し、
横向きのセンサで横方向のずれ、 横向きのセンサと斜め(45°)向きのセンサで壁に対する角度を求めています。

平面内を移動するマウスの(状態の)自由度は3で、 それを、マウスの向き(φ)・進行方向に平行な成分(x)・進行方向に垂直な成分(y)とすると、 xは前壁との距離か壁切れで補正するしかないが、 ある瞬間のφとyを求めるには、1枚の壁を2つ以上のセンサで見る必要がある。
という考えのもと、センサを6個にしました。
実際、センサからの情報で強く補正を入れることで、タイヤのスリップをカバーできていたように思います。

赤外線LED(TLN101)の出力が低すぎたりで、かなり近づいてからでないと前壁をみることができませんでした。

DCモータの制御


4つのFETでHブリッジを組んでいます。いろいろなサイトで紹介されていることなので、ここではHブリッジやPWMについては説明しません。
(←FETの内蔵ダイオードは書いていませんが、あるものとして見てください。)

「こてつ1号」では左の図のようなオンとブレーキを切り替える方式のPWM(25kHz)制御をしています。

オンとブレーキを切り替える制御の利点は、デューティ・トルク・回転数の関係が線形になることです。


左の図はDCモータの、デューティを-100%〜100%まで変化させたときのトルクと回転数の関係です。 ただしデューティが負であるというのは、正の場合とは逆方向に回そうとしている状態とします。
見ての通り、デューティがトルクと回転数の線形結合になります。
duty = a * speed + b * torque ということです。(a,bは実定数)

定常状態の場合(モータに流れる電流の波形が、同じ形を繰り返しているとき)に この事実が成り立つことを私は証明したが、余力がないのでそれを書くことはできない・・・
  by脳内フェルマー


つまり、ある瞬間のモータの回転数と、出力したいトルクからデューティを計算すれば、 ほぼ思い通りのトルクを出力できます。
これによって、PID制御等の制御量を、普通はデューティという得体の知れないものなのを、 トルク(マウスの加速度)という力学的に扱いやすいものにすることで、 格好いい加減速をして実況のお姉さんに褒めてもらうことができます。

出力したいトルク(加速度)計算は、
加速中と、等速走行中の場合には、目標速度をtarget_speed実際の速度をspeedとすると、
acc = target_speed - speed;
としています。(accには当然上限と下限を設定してある。)
減速するときは、x進んだところでtarget_speedの速度になるように減速するとすると、
acc = (target_speed^2 - speed^2) / (2 * x);(高校で習う公式です。)
として、ほぼ等加速度で加減速するようにしています。

競技結果

中部地区初級者大会完走ならず・・・
中部地区大会未だに二次走行のプログラムを書いていないが、
探索には成功。『31秒633』。
学生大会二次走行に初成功。『13秒394』。
全国大会エキスパートクラス予選。『12秒299』。
決勝。二次走行に失敗。『59秒576』で15位。