ドローン

初心者でもできる!Pythonを使ったドローンの自動操縦

第1回:ドローンの仕組みと操縦を学ぶ

目次

  1. はじめに
  2. ドローンはなぜ飛べるのか
  3. ドローンはなぜ自在に動けるのか
  4. まとめ

 

1. はじめに

drone-on-auto-pilot-with-python-01-01

多くのシーンで使われるようになってきたドローン

 

今では誰もが知っている言葉となった「ドローン」。最近ではテレビを観ていてもドローンを使った空撮映像が多く使用されていたり、音楽のプロモーションビデオなどでも積極的に活用されているので、ドローンで撮影した映像を見たことがある人も多いのではないかと思います。

また、ここ数年は空撮だけでなく、さまざまな産業でも活用が進められています。例えば、ドローンを使った農薬散布や上空からの測量、橋桁など人間が近づきにくい場所のインフラ点検など、ドローンはその活躍の場をどんどん広げています。

実は、ドローンの中身は先進的なテクノロジーの塊と言っても過言ではありません。さまざまなセンサやプログラミングによって、自律飛行をおこなったり、障害物を察知して自動で回避したり、決まったルートをたどって飛行したりすることができます。ドローンに搭載されている技術は年々進化しており、さまざまな機体が続々登場しています。

そんなドローンも、最近では高性能な機体が非常に安価で手に入るようになりました。それにより、ドローンで空撮をおこなってみたい、と考えている人も多くなっているようです。そこで今回は、小型ドローンの飛ばし方を学びつつ、さらにPythonでプログラミングをし、自動操縦までおこなってみたいと思います。本格的なプログラミングではなく、初めての人でも分かりやすい内容で紹介していきたいと思いますので、最後までお付き合い頂ければ幸いです。

 

2. ドローンはなぜ飛べるのか

ひとくちに「ドローン」と言ってもさまざまな種類があります。ドローンは「無人航空機」と呼ばれ、無人で飛行する機体の総称です。皆さんがイメージするドローンはプロペラが4枚、もしくは6枚付いた「マルチコプター」と呼ばれるものだと思いますが、一般的なラジコン飛行機やラジコンヘリも、この「無人航空機」に当てはまります。

drone-on-auto-pilot-with-python-01-02

一般的なラジコン飛行機も無人航空機に属する

 

今回使用する機体はRyzeTechという中国のメーカーが開発した「Tello」という手のひらサイズの機体です。この「Tello」は、重量が80gという超軽量かつ手のひらサイズの機体で、手軽に飛ばすことができるだけでなく、機首に搭載されているカメラを使って空撮を楽しむこともできます。

drone-on-auto-pilot-with-python-01-03

今回のモデル機であるRyzeTech社製の小型ドローン「Tello」

 

また、無料で提供されているスマートフォンアプリを使うと、カメラの映像をアプリ上で見ながら飛ばすことができる、いわゆる「FPVフライト(First Person View=一人称視点)」を楽しむことができる機体となっています。

実際に飛ばしてみると分かりますが、この「Tello」は小型機と思えないほど安定感抜群の飛行を披露してくれます。これはドローン業界の中でトップシェアを握るDJIというメーカーの飛行制御技術を搭載しているためです。このため、初心者でも安心して飛ばすことができるのです。

現在、日本では200g未満の機体は航空法の対象外になりますので、法的にはどこでも飛ばすことができます。しかし、屋外でドローンを飛ばす際は、必ず周囲に人や建造物、自動車などがない場所を選び、安全最優先でモラルとマナーを守って飛ばすようにしてください。

drone-on-auto-pilot-with-python-01-04

手のひらサイズのTelloは航空法の対象外だが、飛行の際は安全に十分に注意する必要がある

 

さて、前置きが長くなってしまいましたが、ドローンがなぜ飛ぶことができるか、理解している方は意外と少ないと思います。

今回の「Tello」のようなマルチコプター型のドローンは、4枚(もしくは6枚や8枚)のプロペラを回転させて飛行します。動力源はリチウムポリマーバッテリが主流で、このバッテリでモータを駆動させプロペラを回転させます。モータはブラシレスモータがほとんどで、比較的高回転のものが使われます。

drone-on-auto-pilot-with-python-01-05

ドローンの動力源は、そのほとんどがリチウムポリマーバッテリとなっている

 

操縦者がスロットルを上げていくとプロペラの回転数も上がっていき、機体は離陸します。しかし、今回使用する「Tello」は自動離着陸機能が搭載されているので、これを使うとワンタップで自動で離陸や着陸をおこなうことができます。これは、機体に搭載されている気圧センサと、機体の底部に搭載されているビジョンポジショニングシステムによって可能となっています。

実はドローンは離着陸が難しいと言われています。特に着陸はモータの回転数を落として着陸するので、回転数を落とすことでストーン!と地面に叩きつけられてしまい、ハードランディングになりがちです。しかし、「Tello」は機体が自動で離着陸してくれますので、ここも初心者に推したいポイントです。

drone-on-auto-pilot-with-python-01-06

屋外でも快適に飛行させることができる「Tello」

 

ドローンはプロペラが回転することで飛行します。プロペラが回転すると、プロペラの上面と下面の空気が流れる速度が変わり、上向きの揚力が発生します。この揚力が機体の重量より大きくなると機体は浮かび上がることができます。

そして、飛行中は隣り合っているプロペラが逆回転しています。これはプロペラで発生した反トルクを、対角線上にあるプロペラが逆回転することで打ち消し合わせるためです。これによりドローンは安定した飛行ができるのです。

 

3. ドローンはなぜ自在に動けるのか

それでは次はなぜドローンは前後左右、そして上下に動くことができるのかを見ていきたいと思います。

drone-on-auto-pilot-with-python-01-07

4枚のプロペラで飛行するクワッドコプターがドローンの主流

 

今回使用する「Tello」のように、4枚のプロペラが付いたマルチコプター、いわゆる「クアッドコプター」を例に取って説明したいと思います。

まず、上昇と下降です。ドローンはプロペラの回転数を上げることで上昇し、回転数を下げることで下降します。先ほど説明したように、プロペラの回転数を上げることで揚力が増し、それが機体の重量より大きくなると機体は上昇します。逆に、揚力が機体の重量より小さくなると下降します。これを各プロペラが同じような回転数でおこなうとまっすぐに上昇し、まっすぐに下降します。また、重量と揚力がイコールになると、上昇も下降もせずその場でホバリングします。

次に前後の動きを見ていきます。ドローンは前進、そして後進することが可能です。前進の場合は、進みたい方向にあるプロペラ2枚の回転数が遅くなり、後ろの2枚が速くなります。すると、ドローンは前傾姿勢となり、前に進むことができます。

後進も同じ理屈で、バックする方向のプロペラ2枚が遅くなり、前の2枚が速くなります。これにより後ろにウィリーしたような姿勢で後進することができます。前後の動きは「エレベータ」という舵で制御します。前進はエレベータのダウンを入れる、後進はエレベータのアップを引く、という言い方をします。

drone-on-auto-pilot-with-python-01-08

drone-on-auto-pilot-with-python-01-09

drone-on-auto-pilot-with-python-01-10

 

続いて左右の動きです。ドローンは機体の向きは変えず、左右に横移動することができます。これも前進後進と同じ理屈で、行きたい方向の2枚のプロペラの回転数が遅くなり、反対側の2枚が速くなります。これにより左右に機体は傾いた状態で横移動します。横移動は「エルロン」という舵を使います。エルロンを右に倒すと右に移動、左に倒すと左に移動します。

drone-on-auto-pilot-with-python-01-11

drone-on-auto-pilot-with-python-01-12

drone-on-auto-pilot-with-python-01-13

 

最後に機首を左右に振る、旋回の動作を見てみます。これは、機体はその場から動かないのですが、機体も向きを左右に振ることで方向転換をおこなうことができます。機首の方向を変える際はプロペラの回転数は複雑です。右に旋回する場合は右前と左後ろのプロペラの回転数が速くなり、左前と右後ろのプロペラの回転数は遅くなります。左旋回する際はそれぞれの回転数が逆になります。これにより機体は向きを変えます。旋回は「ラダー」と呼ばれる舵で操縦します。

drone-on-auto-pilot-with-python-01-14

drone-on-auto-pilot-with-python-01-15

drone-on-auto-pilot-with-python-01-16

 

このようにドローンはプロペラの回転数を変化させることで機体を制御しています。これらはESCと呼ばれるデバイスで制御されています。ESCはElectric Speed Controllerの略称で、モータの回転数をコントロールする重要なデバイスです。操縦者からの指示を機体に搭載された受信機~フライトコントローラ経由で受信し、ESCがモータに指示を出します。これにより操縦者はドローンを意のままに飛行させることができるのです。

 

4. まとめ

今回はドローンが飛行する仕組みについて紹介してきました。次回は実際に「Tello」をセットアップして飛ばしてみることにします。さらに、Pythonを使って自動飛行をプログラミングするための準備まで紹介していきたいと思います。お楽しみに!

スマホでコントロールできるロボットを作ろう
Device Plus 編集部

エレクトロニクスやメカトロニクスを愛するみなさんに、深く愛されるサイトを目指してDevice Plusを運営中。

https://deviceplus.jp