理系的な戯れ

理工学系とくにロボットやドローンに関する計算・プログラミング等の話題を扱って、そのようなことに興味がある人たちのお役に立てればと思っております。

ドローンをガメラの様に飛行させる

アイキャッチ画像

はじめに

ドローンにガメラ飛びをさせたい・・・

唐突なお話しですが、最近ではすっかりドローンと呼ばれるようになったマルチコプタをガメラの様に回転しながら飛行させるにはどうしたら良いのかと言うのが本記事の内容です。

これは私の私的興味によるもので、あまり社会的に意義があることとは思われません。

私の博士論文のテーマはLiderの様に自ら周囲をスキャンできるセンサの代わりに、 たとえば一方向の距離しか測れない距離センサ(これを1軸距離センサと呼んでいました)を搭載したドローン(マルチコプタ)が自ら回転して周囲をスキャンすることで周辺状況を捉えて自己位置を指定する様なお話しでした。

余談ですけど、僕の博士論文はとても博士の仕事とも思えない様な貧弱な仕事でした。 なんとか博士にはなれたのですが、社会人博士の4年間(1年延長した)は精神的にきつい日々でした。 職場で学科長に上番したのと社会人博士入学が重なったため、上司としての心労とジャーナル掲載、国際学会発表、博士論文のプレッシャなどでよくもまあ鬱にならなかったと思う日々です。

ドローンをガメラの様に飛行させると言うのは博士論文のテーマに関係していて、論文では定点で止まってドローンが回転して周囲をスキャンしながら自己位置を推定することを目的にしていました。

1軸距離センサを用いての周辺認識
1軸距離センサを用いての周辺認識

ところが、実際にドローンを定点で回転しようとすると、ドローンの重量バランスやプロペラのばらつきや取り付け角、制御ゲイン等原因は突き止めていませんが、何らかの理由でその場では回ってくれず、回転しながら移動してしまいました。

たまにうまくほぼ定点で回転してくれることもあるのですが、それでも微妙に円を描いている様な感じです。結局、その様にして得られた距離情報と、ジャイロ等の内界センサの情報をモンテカルロ位置推定の枠組みに当てはめて移動しながら自己位置推定をすることができました。

一番最初から実はガメラの様に回転しつつ移動しながら逐次自己位置推定を夢見ていたのですが、おそらく難しいであろうと定点回転ー>移動ー>定点回転ー>移動と言う様に目標を落としたのですが、実際の実験ではそれが実現できず期せずしてほぼ移動しながら自己位置推定になりました。

ただし、回転しながら移動は偶然できたもので、どちらに移動するかは回してみないとわからないと言った状態なので、陽に自分の移動させたい方向にガメラの様に回転しながら移動させせる方法について考察していきます。

以後ガメラの様に回転しながら飛行することをガメラ飛びと言うことがあります。 (平成ガメラでは翼を出して飛行する場合もあるのでガメラ飛びが回転飛行に限定されるとは限りませんが、本記事ではそうさせてください。)

完結しないかもしれませんが、少しづつ記事を書き足していきたいと思います。(2020/8/11)

マルチコプタの回転の原理

本記事でのマルチコプタまたはドローンは4枚のプロペラ(ロータとも言います。)を持つクアッドコプタというタイプに限定します。

クアッドコプタ
クアッドコプタ

マルチコプタは機体に固定された3つの座標軸周りに回転運動をします。 マルチコプタの座標軸の取り方は上下がz軸、前進方向がx軸、左右方向がy軸の右手系です。航空工学の流儀にのっとるので、z軸は下向きが正です。

マルチコプタの座標の取り方
マルチコプタの座標の取り方

どんなところにでも3次元的に移動できるマルチコプターですが、実は制御できるのはこの3軸周りの回転運動と上下の運動だけです。

前後や左右の運動は軸周りの回転を制御した結果として現れます。

ガメラ飛びにおける回転というのはz軸周りの回転運動のことです。この回転をヨーと呼びます。

x軸周りはロール、y軸周りはピッチです。

前後・左右の移動の原理

4つのプロペラをもつマルチコプタを思い描いていただければいいのですが、前後のプロペラの回転に差をつけると前後のプロペラの発生する推力に差ができるので前後に傾きます。

あるいは左右のプロペラの回転に差をつけると、左右に傾きます。

傾くと前後方向または左右方向にプロペラの発生する推力が向きますので、その方向に移動します。

これがx軸またはy軸周りの回転が結果的に前後方向、左右方向の移動につながる原理です。

上下移動の原理

上下移動が直感的に一番簡単で、全部のプロペラを一斉に早く回すと推力が大きくなって上に上がりますし、一斉に小さくすると下に降ります。

ヨー回転の原理

少し話がそれますが、人工衛星はどの様に姿勢を変化させるかご存知でしょうか?

アポジモータと言って小さなロケットモータを噴射して姿勢を帰る場合もあるのですが、それとは別にリアクションホイールと呼ばれる円盤を回すことで、その反モーメントで姿勢を変えます。ようするに反動で動いているのです。

マルチコプタのヨーの回転もプロペラの回転の反トルクとさらに、プロペラには揚力と抗力がはたらき揚力は推力として働きます。抗力は回転することで打ち消されますがモーメントは発生します。

それらのモーメントによって回転運動を生み出します。反動はプロペラの回転が加減速するときに発生するので定常状態ではプロペラの抗力に由来するモーメントが主なモーメント源です。

マルチコプタのプロペラは実は2枚づつペアになってそれぞれのペアが違う方向に回っています。 基本的に対角のプロペラがが同じ方向に回っています。これは、互いの発生する回転モーメントを打ち消すためです。 全部が同じ方向に回っているとモーメントを打ち消せないためマルチコプタは回転し続けてしまいます。

ヨーの回転をさせるときは、片方のペアの回転を上げて、同時にもう片方のペアの回転を下げます。 そうすると、理論的には上下の推力変化や、ピッチやヨーの回転運動を引き起こすことなくヨー回転を生み出すことが可能です。

理論的にと言ったのは、質量分布のアンバランス、取り付けの誤差やそれぞれの完全に打ち消せないプロペラの差異によってわずかな移動が実際には生じてしまいます。

この様にして、マルチコプターはヨーの回転運動を生み出しています。

マルチコプタの運動制御
マルチコプタの運動制御

ロータ推力の各軸周りのモーメントへの配分

マルチコプタの制御は、4つのロータ(プロペラ)への回転数制御によってロータの発生する推力を可変することにより各軸周りのモーメントを制御することです。

簡単のために、ロータの回転数に対する推力はリニアではなく飛行速度によっても変わりますが その関係が既知とし推力を任意に制御できることとします。

加藤寛一郎先生・今永勇生先生のヘリコプタ入門によるとロータの推力とモーメントはロータの回転数の2乗に比例します。 つまり推力とモーメントはそれぞれ比例関係にあります。

そうすると、各ロータの推力と各軸周りのモーメントは次の様に考えることができます。 各ロータの回転方向ですが上から見て、左前がCW(時計)、右前がCCW(反時計)、左後がCCW(反時計)、右後がCW(時計)に回転しているとします。(注:座標の取り方の図のロータの回転の矢印とは違います。後日図を修正します。)


\begin{eqnarray}
L&=&l \left( T_{fl} + T_{rl} -T_{fr} -T_{rr} \right)\\
M&=&l \left( T_{fr} + T_{fl} -T_{rr} -T_{rl} \right)\\
N&=&K \left( T_{fr} + T_{rl} -T_{fl} -T_{rr} \right)\\
T&=&T_{fl}+T_{fr}+T_{rl}+T_{rr}
\\
\\
\end{eqnarray}
記号 意味
L x軸周りのモーメント
M y軸周りのモーメント
N z軸周りのモーメント
T 総推力(Z軸方向)
T_{fl} 前左ロータ推力(CW)
T_{fr} 前右ロータ推力(CCW)
T_{rl} 後左ロータ推力(CCW)
T_{rr} 後右ロータ推力(CW)
l モーメントアーム
K 推力からモーメントに変換する係数

制御目標は何か

ロール回転しながら任意の方向に飛行するためには少なくてもロール角速度がいくらでも良いというのはおかしいので、ロール角速度は制御しないとダメだと思います。

任意の方向に速度ベクトルを向けるには地上の固定座標空間に対してのマルチコプタの姿勢を制御するとしたらオイラー角に相当する姿勢角を所望の角度に制御すれば良いのかもしれない。

また、ヨー角は常に回り続けているのだから、ロール角とピッチ角を指定の角度にすれば良いとしら、ヨー角速度とロール角とピッチ角の3つの制御をすればやりたいことは達成できるのかもしれない。

まだ、マルチコプタが傾きながらヨーの運動をするということがどういうことなのか理解できていない。 運動方程式を立て計算をしながらさらに考えを進めていき、何を制御すべきなのか明らかにしていきたい。

おわりに

ということではっきりわかっている、各ロータの推力の各モーメントへの分配まではまとめを終えて、今後はドローンの運動方程式を紐解きながら、ドローンの運動の理解を深めていきます。

飛行機の教科書には飛行機の飛行経路(角)を制御するという話題は乗っていて、それは参考になると思うのですが 流石に回転しながらという話題はあまりなくてもう少し調査も含めた勉強が必要です。

この記事は僕の進捗に合わせて記事を書き足し、手直ししていくスタイルの記事になると思います。

細かい更新のお知らせをあまりすると迷惑になりますが、大きく書き足したり書き直した場合はTwitterで告知したいと思いますので、よかったらTwitterの登録をよろしくお願いします。

もしかしたら最後に「できない」ということになるかもしれませんが、 その際は内容をマルチコプタの制御についてまとめた記事にしたいと思っています。

それでは、また。

参考文献

これ残念ながら絶版です。