「目指せ、人が乗って操縦できる人型ロボット!」をテーマにロボット作りに取り組んでいますが、いきなりそんなものを作れるものではありません。 そこで、自動制御の技術を身に付けるために、学生実験や大学の研究室で現代制御理論の実験で使われる倒立振子を自分で作って立たせることに挑戦します。
本プロジェクトは、歩行ロボットの制御に必要となるであろう技術を身に付けることを目的としています。 歩行制御に必要であろう技術は、メカ、回路、ソフト、理論と多岐にわたっています。 本プロジェクトでは特にマイコンによるハードウェアの制御と現代制御理論による姿勢制御に的を絞り、これらの技術を身に付けることを目的とします。
ロボットの世界に限らず、「理論はどうであれ物が動けばそれでよい」という考え方もありますが、経験と勘による設計や調整では、上手く動かないときに、なぜ動かないのかという原因を突き止めることが難しくなります。 ですから、本プロジェクトでは『理論が先』というスタンスをとることにします。
車輪型倒立振子とは、その名の通り、「車輪がついた」「倒立する」「振子」です。 振子(ふりこ)は普通、紐(または棒)の先に取り付けた錘が一定振幅で揺れつづけるものです。 これを逆さまにして、手のひらでほうきを立てるような事をするのが倒立振子で、この制御は現代制御理論の実証として学生実験や大学の研究室等でしばしば行われています。
この倒立振子の一般的な実験用ハードウェアは、右図のように固定された台があって、その上に倒立振子をのせた台車があるという構成になっています。 しかし、この構成では歩行ロボットから遠くかけ離れてしまいます。 なぜなら、歩行ロボットが台に固定されているということは無いからです。 そこで、この台車の部分を車輪に置き換えた車輪型倒立振子にすることで、歩行ロボットの姿勢制御に必要な制御の理論を学ぶことにします。
ちなみに、車輪型倒立振子は古くから研究されてきたテーマで、最近話題になったGinger(Segway)も車輪型倒立振子の一種なようです。
(シミュレーションの結果や実機制作の都合により、仕様が変更になることがあります。)
これから「どのような倒立振子を作るか」という仕様決定を行います。 この仕様に基づいて車輪型倒立振子のモデル化と制御側の導出を行い、この仕様を満たすようなハードウェアおよびソフトウェアを作成します。
まずは制御仕様から決めてしまいましょう。 とりあえずは、
「初期姿勢を±10°以内として、水平面上で1分以上立ち続けること」
としておきます。 初期姿勢を10°程度にとった理由は、直立からの角度が大きいと、sinθ=θといった線形近似が成り立たなくなるからです。 今のところ、振子の頭を手で押したり、突付いたりするような外乱は考えないものとします。 上記の目標仕様がクリアできるようであれば、外乱についても考えてみます。
次はハードウェアの大まかな仕様です。
先に制御システムのハードウェア構成から考えてみましょう。振子本体と車輪、車輪を駆動するモータは必須ですね。 車輪の加減速を制御する必要がありますから、ロータリーエンコーダも必要でしょう。 倒立振子からケーブル等が出ていれば倒立制御の妨げになりますから、車輪型倒立振子はバッテリを内蔵した完全自律型が望ましいでしょう。 また、制御計算に必要なマイコンも搭載する必要があります。 姿勢制御を行うのですから、姿勢を計測するセンサが必要です。 姿勢を計測するにはジャイロスコープを使用するという手もありますが、ジャイロは高価な上、ちょっとイヤラシイ特性(バイアスドリフトとか)を持っているのでので、2軸の加速度センサで姿勢を計測することにします。
重心位置の高さは高いほうが振子の周期が長くなって制御をしやすくなりますが、手軽に持ってあるけて、友人の前でデモンストレーションをすることなどを考えると、フレームはとりあえず30cmくらいの大きさが良いでしょう。(30cmという長さは、実は近所のホームセンターに売っていたアルミのL字アンクルの長さで決めました。) 車輪の半径等は、入手可能な市販品の大きさにあわせることにします。
| フレーム | 長さ 30cm 程度 |
| 車輪 | 半径3cm程度 (市販されている車輪の半径にあわせて) |
| モータ | 模型用の小型DCモータ |
| ロータリーエンコーダ | とりあえず適当に |
| 姿勢センサ | 2軸加速度センサ |
| バッテリ | 単3ニッケル水素電池数本 |
制御則が決まるまでの流れ 運動方程式を立てる(モデル化)、特性解析、フィードバック制御系の設計、シミュレーション実験による検証
白石昌武 :入門現代制御理論、日刊工業新聞社、1995
木下光夫 : 現代制御理論による倒立振子制御 (大学の集中講義「マイクロコンピュータ制御」の資料)