2020年12月31日木曜日

電源配線の分析と見直し

電源の見直しを行いました。

以前、モーターを回すとマイコンに電源供給ができなくなっていたのは、電池からの中継配線が細かったのも一因でした。
また、JS PHコネクタの電流容量は2Aで、今回のアプリケーションはその範囲を数倍超えるため使わないことにしました。更に、試したバッテリのうちいくつかに使われていたMolex 51005/51006 (海外の通販サイトなどではLOSIコネクタと表記されている)も同様に2A程度でした。
代わりに、手持ちのコネクタの中でこのぐらいのオーダーの電流に耐えられるものとして、日圧の基板対電線コネクタVHを使ってみました。(これは実験用の仮配線ということで、最終的には緊急停止回路等を間に入れたいと思います。)

なお、基板上で「5V」と表示されている端子を使っていますが、実際にはVDD(バッテリーの正極およびUSBバス電源からD6を介して供給される)でした。回路図ではそうなっています。

配線と電池の交換で、フル出力でも動作できるようになったので、消費電力を見積もるためのホバリングの実験を行いました。
  • 重量87g(Telloとほぼ同じ)
  • 物理的補助あり(姿勢制御は未だ完成していないので)
  • 床から80cmぐらい(地面効果の影響を避けるため)
  • 手動操縦でスロットル(PWM duty比)調整
  • 7~8割程度で重力と釣り合ってホバリングした
  • 2分半で電池切れ
ぎりぎり及第点といったところですが、モーターにもバッテリにもかなり無理な負荷になっているように思います。
同じ重量なのに余力が少ないことから、Telloより少し効率が悪くなっているようです。
また、バッテリも手ではっきりとわかるぐらい温度が上がっていたので、もう少し大きい容量のバッテリに変更した上で軽量化を図る必要があります。

2020年12月20日日曜日

消費電力とバッテリーの検討

試作機のハードウェアを試運転しました。ある程度以上のパワーで回すと通信が途絶、更にはプログラムが停止するという現象が起きました。これは想定範囲内で、テストに使用した電池(350mAh)の放電能力不足であろうと推測しました。大電流の放電を行うと、電池の電圧が低下してマイコンの正常動作に必要な電圧を確保できなくなるという理屈です。特にこの基板は、電池から直接(低ドロップタイプの)シリーズレギュレータを通してマイコン用の3.3V電源を供給しているため、公称3.7Vのリチウムイオンバッテリーでは余裕が少ないと考えられます。

電池を選定するにあたり、モーターの消費電流のおよその見当をつけます。今回使用するモーターは製造元や正式な型番がわからず、データシートから知ることができないので、実際に測ってみます。

1.ストール時電流の最悪値を考える場合:モーターの巻線抵抗が実測でおよそ0.7Ωだったので、4.2V / 0.7 Ω = 6A。4個で24A。この値まで保証できればより安心ですが、必要以上に大型のバッテリーを載せるのは重量増加につながるので、もう少し実際に近い値を探ります。

2.地上に機体を固定してファンを回した際の電流の実測(モーター1個で、電池直結):2.6A @4.2V。

3.空中で重力と釣り合うときの消費電流: およそ8A。このときPWMのduty比は50~60%ぐらい。竿の片方の先に着けて手で支え、補助しつつ感覚で釣り合いを見ながら電流を測定。

以上より、ホバリングには最低8A、制御を考えると13A前後が必要と見積もりました。

今までテストに使用していた電池は350mAh 25Cなので8.7Aが定格の放電率(おそらく定常値)。4個のモーターを回すには足りないことになります。 実際、モーター2個までは最大出力で回しても正常動作を続けられたので、これとも大雑把には符合します。

また、放電率の他に容量と航続時間も考慮しなければなりません。

現在の構想では競技中は開始時と終了前以外はずっと飛行することを考えています。そこで航続時間を4分(知能ロボコン予選の競技時間の80%)とすると8A * (4/60)[hours] = 533mAhが最低限必要。

以上のことから、600mAhから1000mAhぐらいの間の電池(放電率25C以上)を試すことにします。

また、使用した直流電源(秋月のSI-8010Yキット)が8Aが最大値のため、騙し騙しの計測となっていました。こちらも開発用に用意する必要があります。

十分な大きさのバッテリーでも、電池残量低下時にはマイコンが正常動作できなくなって暴走する恐れがあります。飛行中制御ができなくなる(制御ループは停止してもモーター駆動のPWM信号だけ出ている状態)と危険ですので、電池電圧を監視して電源を遮断する回路を付けることも検討します。

おまけ


この基板は、この小さな電源スイッチがバッテリーからの電流を直接通すようになっています。大電力には使えません(テスト中、これで電源を遮断しようとした時に焼き切れました)。おそらくそのためにこのスイッチをバイパス(導線で繋いで常時ON)するパターンがあるので、これを用いた上で外部に前述の電源制御回路やスイッチを付けることにします。

2020年12月19日土曜日

発泡ポリスチレン製ガード試作

発泡ポリスチレン(EPS)の板を使って上面のガードを作り直しました。吸込口に網状の構造を加えました。これでも前回ABSで作った枠だけの部品より軽くできました。後は側面に柱状の部材を多数並べて檻のように囲う予定です。




2020年12月14日月曜日

実験機完成?

仮仕様ですが、ファンガードの設置と電源及びモーターの配線が完了しました。実験機としてソフトウェアシステム及び制御アルゴリズムの開発に使います。

ファンガード



ファンが周囲に接触しないように、あるいは接触の際の損害を軽減するためのものです。
これはあくまで実験機用の仮仕様です。ロボットコンテストに参加する際は、より安全なように全体をより密に覆う形にします。
下段側が半分しかないのは、設計を何度か変更するうちに取り付けられなくなったためです。この縦横非対称な形状に深い意味はありません。
クローバー型の部分はスチレンボードを切り抜いて作るのが本来の設計です。写真は、その前段階として仮にABSの積層成形で作った別バージョンのものです。3Dプリンタ(Afinia H480)の出力可能サイズを超えているので、4分の1ずつに分割しました。

バッテリーケース


蓋をスライドして差し込む形にしました。


配線コネクタ

バッテリー接続用のコネクタは、このIMU基板に予めはんだ付けされていました。JST PHコネクタでした。但し、ロットによって異なっているかもしれません。

4箇所のモーター用のパターンも、シルク印刷の形状から推察するに、PHを想定したものではないかと思います。しかしそれは無視して、在庫があった別のコネクタ(ZH)を使いました。モーターからの線はTelloで長い距離を配線できるように長くなっていましたが、必要な長さに切りました。

LiPoバッテリーは以前適当に買ったものですが、Hitecのドローン等に使われているもののようです。前述のPHコネクタに変換するケーブルを作って接続しました。同じ容量のバッテリーは各社から価格も性能も様々なものが出ているので、今後変更するかもしれません。


次のステップ

プログラムを書いて動作確認を始めたところで、このままだとリセットスイッチが押しづらいことに気づきました。配線を引き出して別のところに増設する必要があります。
また、最終版ではハードウェアで電源を遮断する緊急停止スイッチをわかりやすい形で付けるようにしたいと思います。

2020年12月10日木曜日

知能ロボコン2021 子機製作 その1

子機のクワッドコプター部分について、自作してみます。

Makerfabs ESP32 6-Axis IMU と、Telloに使われているのと同寸法のDCモーター、Tello用のプロペラを使います。

MakerFabsのこの基板について。名前はIMUとなっていますが、6軸(加速度+角速度)センサーとESP32マイコン、そして4つの1象限DCブラシモータードライバ(要するにFETとダイオード)が搭載されていて、明らかにクワッドコプターを作ることを想定しているように見えます。今回作るクワッドコプターにはカメラやオプティカルフローセンサー等が不要で、ちょうど良さそうなのでこれで試してみます。

このモーターとプロペラ、LiPo1セルバッテリーで簡易的に推力を測定したところ、40g重前後でした。重量合計はここまでで60gでしたので、飛行は十分可能ではないかと予想しています。また、ESP32の多くのI/Oピンがスルーホールに引き出されています。そのため、高度計等の電子部品の追加も後から可能ではないかと思います。




固定用部品を設計・作成してモーターを取り付けてみました。基板四隅にモーターが入りそうな穴が空いていますが、この組み合わせだとモーターの直径の方が大きいため入りません。代わりに、基板の上に乗る形になります。



モーターは1基だけ仮配線して、基板上のFETで駆動できること、手で感じられる程度の推力があることだけを確認しました。次はバッテリー搭載場所とガードを製作します。

2020年12月7日月曜日

知能ロボコン2021(仮)計画開始

2020年の知能ロボコンは中止になりました。来年こそは久しぶりに知能ロボコンに出場しようと思います。作ってみたいものができたので、計画を作成しました。

ロボット名(仮)

銀雲雀 (ぎんひばり)
Silver Lark

出場コース

チャレンジャーズコース。

概要

クワッドコプター型ロボット。飛行して移動する。ローターからの下降気流を競技台の床に当てることで、床面近辺でロボットの真下から外側へ向かう風を起こし、それによりボールを転がしてゴールまで導く。ボールの色分けは行わず、すべてのボールを1つのゴールに入れる。正しい色5個で15点、誤った色10個で10点、自由ボール5点で合計30点を目指す。

目標

自律飛行するクワッドコプターで、競技台上空をある程度(30cm程度の誤差)正確に移動させる。

課題

クワッドコプターの特性上、機械的安定性だけで空間の1点にとどまることはできない。そのためフィードバック制御が必要である。しかし、姿勢制御用(IMU)センサーのみではロボットの現在位置を長期的に正確に得るのが難しい。

上下方向は測距センサーにより床面との距離を計測するか、あるいは大気圧の変化[1]により計測した高度を基に制御する方法がある。水平方向への移動については、Telloのように高度計および床面を撮影した画像から移動量を推定し、それを積分して現在位置を推定するものがある。しかし、知能ロボコン競技台は模様のない真っ白な部分や、1方向の直線のみしか見えない箇所が存在するため、映像からの移動量推定は常にできるとは限らない。

実際、900mm角の単色灰色の床板の上でTello Eduを飛行させてみたところ、位置推定ができない旨の警告表示が出て、位置制御が行われず水平方向へドリフトしていくような挙動が見られた。また、CoDrone (中身はBYROBOT Petrone) でも同様のことが起こった。少なくともこれらの機種に搭載されているような、オプティカルフローセンサーユニット[2]ではうまくいかないことがわかった。

そこで、地上にステーションを設置してそこからの光学観測によりクワッドコプター(以下子機とする)の現在位置を計測し、無線により飛行の操作指令を送ることでフィードバック制御を行う。

観測方法として次のようなものが考えられる:

  1. 既知形状の物体によるもの
    ARマーカー等を子機に取り付け、色画像からそれを検出する。
    利点:周囲の環境に影響されにくい。回転角も一緒に得られる。
    欠点:細かいパターンを見る必要があるため、画像の空間分解能が必要。モーションブラーによる観測不能のおそれ。
  2. 深度画像センサーによるもの
    競技台上空の空中には他に物体がないと仮定する。なにか物体があればそれが子機である。
    利点:周囲の環境に影響されにくい。
    欠点:回転角を得るためには、形状を工夫するなどが必要。

システム構成

子機には飛行に必要な6軸慣性センサーと無線通信装置、マイコンのみを搭載する。BluetoothまたはWiFiによりステーションから子機へ指令を送る。また、光学観測のためのマーカーあるいは反射板のような何かを子機に搭載する。

ステーション側にはラップトップPCと観測用カメラ、無線通信装置を搭載する。

開発日程

2020年12月 ラジコンとして遊べるクワッドコプターを作成
2021年1月 知能ロボコン競技台作成、カメラでの位置観測を試みる
2021年2~3月 カメラを設置するステーションの設計と製作
2021年2~4月 飛行制御
2021年4月 ステーションの補助機構製作
2021年6月 知能ロボコン出場

補足説明(脚注)

[1] 意外に思われるかもしれないが、10センチ程度の高度変化による微小な大気圧の変化がコンシューマーレベルの半導体気圧センサーでも検知できる。3000円程度のホビードローンでも採用されているほど。スマートフォンの気圧計アプリでも、ちょっと持ち上げたりすると小数点以下が変動するのが確認できる。
[2] 撮像素子と画像処理・画像認識装置を一体化した集積回路を用いた部品。内部でおそらくオプティカルフローを求めるような演算を行っている。画像ではなく相対移動量が出力される。

電源分配基板

電源分配用基板を作り直しました。 電源をON/OFFするためのパワーMOSFETと、基板にネジが落ちるなど不慮の事故に備えての安全のための電流ヒューズを載せました。ロボットの操作パネルに付く電源スイッチ(定格5A)は駆動用電流を直接流すためではなく、このMOSFETのゲート電圧を...