このページの本文へ

前へ 1 2 次へ

テクノロジー虎の穴 第4回

クアッドコプターをもっと面白くする安定カメラジンバルを工作!

加速度センサーを使って“ヌルヌル動くアイツ”を作ってみよう

2014年05月28日 11時00分更新

文● 行正和義

  • この記事をはてなブックマークに追加
  • 本文印刷

サーボ+加速度センサー=カメラジンバル???

 スマホの“画面自動縦横表示”、クアッドコプターやデジカメの手ブレ補正、歩行ロボットなどなど……昨今は多くのガジェットに加速度センサーやジャイロといった姿勢・モーションセンサーが使われている。どのような仕組みかは前回のように実際に触ってみると案外分かりやすい。

 今回は、このセンサーを使って何か動くものを作ってみよう。とはいえ、いきなりクアッドコプターの飛行制御プログラムに手を出すのは厳しそうだ。では、シンプルにサーボを動かすことにしよう。

模型用サーボモーターは必要な力やサイズによってさまざまな種類がある。だいたいパワーがあって応答速度が速いものほど高価格

 サーボ(サーボモーター)は、ラジコンならラダーやエレベーターといった操舵翼面、車のステアリング、ロボットの関節部などに使われる小さなモーターだ。

 ちなみに内部には小さなDCモーター(いわゆる模型用のマブチモーターみたいな直流ブラシモーター)が入っていて、複数の減速ギアを介してホーン(アームの部分)を動かす。ホーンはぐるぐると回るわけではなく(回るものもある)、だいたい120度くらいの範囲で指定した角度を取る。

サーボモーターを分解すると、減速ギアとモーター(直流モーター)と小さな基板が入っている。プラスチックの減速ギアは重いものを無理に動かそうとすると欠けることがあるため、小さく軽い飛行機などはプラスチックギア、大型のクルマなどは金属ギアを使う

空撮にカメラジンバルが不可欠な理由

 前回同様、オープンソースのマイコンボード「arduino」を使っていく。まずサーボの制御はarduinoの標準ライブラリーに用意されているので“この角度を取れ”という信号を送るプログラムは1行で済む。ちなみに多くのサーボの動作電源は4.8V~9Vなのでarduinoからでも一応動くが、複数のサーボを動かしたり負荷をかけたりするのならば別電源を用意したほうがよい。

arduinoにはサンプルスケッチが用意されている。可変抵抗を動かすとその角度に応じてサーボが動くknobと、自動でサーボが首を振り続けるsweep

 加速度センサーを接続したarduinoにサーボを取り付け、加速度センサーから読み出し・計算した傾きの数値でサーボを動作させてみる。うまくいけば、加速度センサーを搭載したブレッドボードの傾きに応じてサーボが動くはず。

 このサーボで常に水平を保つような台を作ればいいわけだが、じつはこの仕組み、クアッドコプターによる空撮では一般的に使われている

 飛行機やバイクなどの挙動を考えればわかることだが、クアッドコプターは進む方向に機体が傾くので、単にカメラを吊り下げるだけでは、カメラを被写体に向けたまま横移動したりすると、画面まで一緒に傾いてしまう。これでは話にならない。そこで登場するのが、カメラを常に水平に保つための「カメラジンバル」だ。

 この種のジンバルは主にカメラ光軸の回転(ロール)と前後方向の上下(ピッチ)を補正する。左右への回転(ヨー)はカメラのパンとして扱えるし、高い機材ともなれば手元側で機体の向きとカメラの向きを別々に制御できるものもある。もっとも、クアッドコプターは飛行方向の得手不得手がないので、ヨーまで制御するのは、機体操作とカメラ操作を2人でそれぞれ扱うような本格撮影用だ。

 なお、これはいわゆるデジカメなどの“手ブレ補正”ではなく、あくまで“カメラを水平に保つ”だけなので、上下左右の移動ブレはカメラ側の光学的/電子的な手ブレ補正に任せることになる。

たとえば現在使っているマルチローターのフライトコントローラー「DJI NAZA」には、カメラジンバル制御機能が最初から用意されている(ジンバルは別途用意する必要あり)

 余談になるが、最近では光学軸に対する回転ブレまで補正できるデジカメも現われている(ちゃんと撮像素子を回すのだ)ものの、これはあくまでシャッターボタンの押下動作によるわずかな回転ブレへの対応用なので、斜めに傾きながら飛ぶマルチコプターの動きに対応できるかどうかは微妙だ。

 カメラジンバルはもともと有人ヘリや映画撮影に使うような大型のラジコンヘリでの撮影用に開発されたものだが、クアッドコプター空撮でも導入が進んでいて、機体の傾きを打ち消すようにカメラを水平に保つようになっている。もちろんカメラだけでなくジンバルを動作させるサーボなどはヘリにとって負荷になるので、搭載能力に余裕のある中型/大型機向けとなる。

カメラジンバルを組み立ててみた。フレームのみだと3000円程度。コンパクトデジカメ程度なら載せられる

 この種のカメラジンバル用フレームはけっこう出回っているため、適当に安価なものを購入して組んでみた。汎用性のある自作キットで、カーボン挟み込みプレートをレーザーカットした状態で販売されており、接着剤で固定しながら組み立てる。カメラマウント部は幅12cmとコンパクトデジカメなら余裕で載りそうなサイズだ。

サーボはリンケージを介して水平/垂直の台座を駆動する

 サーボを組み付けて動かしてみると、一応角度に応じて水平を保ってくれる。ただし常時細かく動き続けるうえ、動きも滑らかとは言いがたい。動き続ける理由はサーボを2つ動作させているのでarduinoの電力供給が足りなくなり、センサーへの電流(とセンサーから出る電流)が変動しているためで、こちらは別電源とすることでほぼ解消した。

 動作もプログラミングのほうでサーボ角度の分解能を高めるなどしてやや改善したがまだ若干ぎこちない。もう少し手を入れる必要がありそうだ。

サーボを組み込んでarduino+加速度センサーに接続した。本当ならブレッドボードではなく、シールド状態にする頃合い

 ともあれ加速度センサーを利用して自律的に平衡を取ろうとするカメラジンバル(の原理的なもの)が一応出来上がった。本格的な動画撮影に使おうとするなら機構的/ソフト的にもう少し練り込む必要はあるものの、基本となるのは比較的単純なセンサーからの入力とそれに応じた出力だけだ。

加速度センサーを搭載したブレッドボードを傾ければジンバルのカメラ台座は反対方向に傾斜する

前へ 1 2 次へ

この連載の記事

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中