ドローン×IoT プログラミング講座体験レポート

ドローンをプログラミングで動かす

プログラミングでフライトを制御・コントロール。Amazon Echoを使った音声での制御や操作など、IoT機器としてのドローンを自在に動かす知識が身につく講座をレポートしました。

講師・川村剛/ライター・加藤学宏

ドローンを使って、なにか面白いことができないかな・・・・・・と思っていたら、こんな講座が。

「ドローン×IoT プログラミング講座」

ドローンを、プログラミング?

どうやらRaspberry Pieベースで飛ぶドローンを自作することが可能で、そこに「Ardu Pilot」という制御ソフトウェアを乗せてプログラムを書き込めば、高い自由度でフライトを制御できるらしいのです。

この講座はソフトウェアにフォーカスし、ドローンのプログラミングを通してIoTにおける制御の基礎まで学ぼうという意欲的なもの。ドローンはセンサーもCPUも搭載しているから、IoT機器でもあるわけですね。

特に興味があったのは「スマートスピーカー「Amazon Echo」で制御してみよう」という内容で、音声でドローンを制御できるようになるとか。ドローンの制御について学べるだけでなく、今ひとつ使いこなせていないAmazon Echoで何かできるようになるかも!

というわけで、2日間の講座に参加してみました。

講座全体の目標は、Amazon Echoに「アレクサ、××××」と話しかけるとドローンが応答を返すようにすることです。

お気楽に参加したけど大丈夫なのか?

朝10時。自己紹介を始めたのは、講師の川村剛さんです。

川村さんはITエンジニアの経歴があり、現在はソフトウェア開発のほか大学講師としてもご活躍。初めてドローンを見たとき、「欲しい」よりも先に「作ってみたい」と思い、さっそく学生たちと3Dプリンタで製作したそうです。

「1日がかりで最初の機体を作りあげました。わずか3秒で落ちてしまったんですけどね・・・・・・」

なんという好奇心と行動力だろう。

そのままのめり込んで力をつけ、現在ではこの講座で使用するオープンソースの制御ソフトウェア「Ardu Pilot」を発展・普及させるための有志チーム「TAP-J」に所属、「Ardu Pilotエヴァンジェリスト」と名乗って活動中。ドローンを趣味だけでなく社会でも活用しようと、山岳救助などのコンペにも参加しているということです。

申し遅れました。このレポートをお届けしているのは、ライター兼ドローン空撮パイロットの加藤学宏です。(下の写真右)

参加者の年齢は30歳前後から60歳代まで幅広いようで、自己紹介を聞くと経験もさまざまです。
  • 大学でドローンの研究をしている教授で、自動飛行について知りたいことがあって参加
  • インフラ系ITエンジニアで興味を持ち、ドローンはほぼ未経験の状態で初級から参加
  • ドローンを作ってみたくて初級から参加
  • 空撮を仕事にしているドローンパイロットで、物足りなくてレース用ドローンも製作、プログラミング未経験ながら初級から参加
  • システム会社勤務で、空撮を始めたくて、まず動きを知るために中級から参加
  • 旅行でドローンを飛ばして楽しかったので参加。プログラミング経験があり、オープンソースでの制御にも興味を持った

Amazonが提供するクラウドサービス「AWS」の実行環境「Lambda」も利用するのですが、「AWS」という言葉を初めて聞いたという方もいました。

自分の経歴はというと、正直ちょっと不安でした。この講座の「難易度の目安」には「PythonまたはJava(Android)などのプログラミング経験が3年以上あり、総飛行時間2時間程度以上」と書いてあったのですが、Javaは遠い昔に少しだけ経験があるものの、Pythonは見たこともないレベル。しかも、初級と中級をすっ飛ばして気楽に参加してしまった・・・・・・。ついていけるのか怖かったのですが、川村さんが丁寧にフォローしてくれるという心強いメッセージで一安心。プログラミングの経験が浅い人、ドローンの知識が浅い人、ともに基礎を知ることができる内容になっているそうです。

惜しみなく何でも教えてくれて感激

まず午前中は、GitHub、フライトコントローラーの種類、マルチコプターのおさらいといった基本について学びます。続いて、この講座ではドローンと機器がどのようにつながっていて、どういう仕組みでデータが流れていくのかといった全体像を押さえます。


「これ、ネットに無い希少情報だな」と思ったのは、川村さんの豊富な経験にもとづく話。特に自作ドローンの主要部品であるフライトコントローラーは、メーカーや種類が多彩で迷うことが多いようですが、どれが主流でどれが扱いやすいといった知見が惜しみなく披露されました。

開発の合間や休憩時間には、受講者から最近つまずいている課題についての相談も。それだけでも参加した意味があったという声もありました。この講座で使用しているコントローラー以外にも話が及んでいましたが、どんな内容でも歓迎だそうです。

Ardu Pilotすごいな!

川村さんによるArdu Pilotの説明は、さすがエヴァンジェリストだけあって詳しくてわかりやすく、熱も入っています。オープンソースで開発が進められているので、どのように制御しているのかを掘り下げて知ることができるのもArdu Pilotのよさ。オンラインで行われる開発者のミーティングには、誰でも加わることができるそうです。

ドローンといえば空撮のイメージが強くありましたが、自動航行による物流にも期待が集まっています。最近では溺れそうな人に浮き輪を投げたり、輸血用血液を運んだりと人命救助にも役立てられるようになってきました。

Ardu Pilotは改変も可能で、柔軟にシステムを構築できるので、ドローンが活躍する可能性が広がります。

川村さんが参加して入賞したこともあるJapan Innovation Challenge(https://www.innovation-challenge.jp/)の山岳救助コンテストでも、自動画像解析した結果をもとに自動飛行、救助者を発見して救難物資を投下する一連の自動化されたシステムをArdu Pilotで実現。今後期待される長距離の物資輸送でも、遠隔地からコマンドを送信し、現在位置や機体の状態をモニタリングしながら制御することになります。つまり、IoT技術を活用して遠隔航行するわけですね。その基礎を学んでいるということがわかるとワクワクするし学びに身が入ります。

それから、Ardu Pilotは空中を飛ぶマルチコプター専用のソフトウェアではなく、水中翼機やボート、自律二輪車、VTOL(垂直離着陸機)、ローバーなどにも拡張性を持っているんです。空にばかり注目していたんですが、同じソフトウェアで陸や水中での制御もできるなんて素晴らしい。

Alexaスキルで一儲けできるかも

プログラムをまったくゼロから書き始めるのは難しいので、サンプルをもとにかみ砕いて理解を深めていくスタイルで進めていきます。Pythonの基礎を確認しながらサンプルを読み解き、ドローンとの接続方法について学びます。

Python未経験でビクビクしていましたが、インタプリタ型の簡単な記述なので、すぐに馴染めました。何らかの言語でファンクションの書き方を知っているレベルなら、十分に対応できると思います。

続いてAlexaスキルの開発に移ります。AmazonによってGUIでわかりやすい開発環境が用意されていて、Pythonとはガラリと雰囲気が変わります。

ただ、見た目は取っつきやすいのですが、見慣れない用語も多く、設定項目が何を意図するのか戸惑ってしまいました。

でも、だんだん感覚をつかむと簡単で、Alexaでできることもわかってきます。2018年7月からは「Alexa 開発者リワードプログラム」が日本でも始まっていて、高評価のスキルを開発すると報酬がもらえるように。その話を聞いて、やる気が全開になりました!家にあるEchoはタイマーや電球の制御ぐらいにしか使えてなくて、もったいないと思っていたところ。生活を便利にできそうなアイデアが湧いてきて、楽しい時間でした。

力を合わせてドローンを動かせ!

2日目は、AWSを介した制御方法を学ぶことから始まります。AWSの知識がない人でも安心の解説です。ドローンからAWSのストレージであるS3に、データを書き込めるようになります。

各チームの開発が終わると、いよいよ連携させて動作を確認。Echoに呼びかけるとドローンが動く、というのがゴールですが、なかなか思うように動いてくれません。

大きなモニタを見ながら、いわゆるモブプログラミングがいつの間にか始まります。いろんな視点から意見が出て、力を合わせてエラーを解決し、いい感じに前進していきます。

もうあと少し、という感触はあるもののドローンは動かない。Echoに呼びかけて、コードのステップが流れて。来るか、来るか?・・・・・・来ない。反応を待つ時間が楽しいけど、もどかしいですね。

そんなトライ&エラーに数時間挑んでいると、あっという間に夕方6時。だんだん焦ってきました。

終了時刻を過ぎて粘ってみましたが、ミッション到達はならず。あー、悔しい!!この続きは川村さんが持ち帰って、解決したソースコードを後日共有してもらうことになりました。

一緒に頑張ったことをたたえ合い、講座は終了です。おつかれさまでした!

ロボット制御の可能性をつかめた

残念ながら全体の目標は達成できませんでしたが、参加者のみなさんは各自の目標を達成したり、新たな意欲が湧いたりしたそうです。初級と中級も受講した方たちに感想を聞いてみました。

――上級を受講したのは、どうしてですか?

「プログラミングの経験はあるものの、ドローンに興味があって。それで、構造も分かっていない状態で初級を受講しました。面白いので中級も受講したところ、Ardu Pilotを使ってドローンだけでなくローバーなどのロボットも扱えそうだという感覚をつかめたので、さらに上級で詳しく学ぶことにしました」

――期待通りでしたか?

「個人的には、ドローンのRaspberry Pieが命令を受け取って動くことを確認できたのでよかったです」

「3回の講座を通して「できそう」という感触が増えてきました。以前目的なく買ったきり眠らせているRaspberry Pieがあるんですが、開けてみたくなりました」

川村さんにも、感想を聞いてみました。

――最後は「これが答えです」とソースコードが登場するのかと思っていました。そうではないんですね。

「答えが用意されたレールに沿った講座は、面白くないと思うんです。だから、あえて正解例のプログラムを用意していませんでした。それを楽しんでもらえたのではないでしょうか」

「ただ、今日のような終わり方は悔しいし、反省もしています」

この記事を担当したライター/加藤学宏

ライターの加藤学宏です。文章の仕事と並行して、ドローンによる空撮の仕事もしています。国交省の要件を満たすスクールを修了して基本的なドローンの知識はあり、市販の空撮用ドローンでのフライト経験や、取材で得たドローンの情報を持っています。

講座を通してどのような知識やスキルが身につくのか、役に立つのか、楽しいのか。レース用ドローンに触れるのは今回が初めてですが、初心者の感覚にプロの目線を合わせて、体験をお伝えしました。

PAGE TOP