夢のトリプルアクセル … ドローンで!
ドローンを操縦したことのある人は多いと思います。
最近はいろんなところでイベントを見かけますし、大人よりも子供の方が経験者が多いかもしれません。
ドローンと言ってもピンキリですよね。
手のひら、いやもう おにぎりサイズの小さいものから、救助や輸送に使う様な、人と同じような大きいものまで。
大きさだけでなく、中身のグレードもピンキリです。
トイドローンと呼ばれる安価なクラスの物も、十分高性能ですが、これは常に操縦していないと、あまりじっとしていてくれません。
しかし、グレードの高いものになると、空中にビタリと静止して、まったくふらつかない。
それどころか、引っ張っても、抵抗して(!)なお留まる(!!)。
エンジニアとしては、「オイオイどうなってんだ。触っても動かないって尋常じゃないな」と思うわけです。
好奇心をくすぐられますね。
ぐりぐり。
空中静止の秘密
聞くところによると、画像認識の力だそうです。
もちろんセンサーの力もありますが、肝はドローンに備え付けられたカメラ映像。
ドローンの躍進の陰には、劇的な進化を遂げたセンサー技術の存在があります。
超小型化され、様々な周辺回路や制御手順の省略を実現し、劇的なコストダウンを成し遂げた。
そんな様々なセンサーが、ドローンに多数搭載され、これを実にうまく使って、機体の姿勢制御やアクションを実現しています。
しかし、それでも、ミリ単位のスライドや浮沈を確実に認識できるほどではありません。
そこで、画像認識が生かされることになったのでしょうね。
ある程度の解像度のあるカメラとカメラ角度などの制御機構が備わっていれば、機体のわずかな移動でも、撮影画像の変化から、自身の移動や回転を認識できます。
それらのささやかな情報を総合して、
「今、間違いなく、わずかに右側にこれだけ動いた。だから右のモータの出力をこれだけ上げる!」
「まだ足りねーか、じゃあこれでどうだ!」
「ちょっと行き過ぎた!戻せ!」
…みたいな制御を行い(注:筆者の想像)、それを1秒間に何十回も重ねて、微動だにしない「空中静止」を実現してるのですね。
すごい。やってみたい。
安価なドローンを操縦してみた
とりあえず手の届きそうなドローンを入手して操縦してみると、聞いていた以上にすごいと思いました。
安価なトイドローンなので、操縦をやめると徐々に移動して行って部屋の端っこに当たりそうになってしまいますが、それを微調整する機能だったり、バク転を軽々とこなす運動性能だったり、ちょっと重りを加えても巻けなかったり…
いや、ちょっと重かった様で、浮上と同時に急上昇して天井に激突。(爆笑)
そう。重すぎて浮かなかったのではなく、浮きすぎたわけで、それに驚きました。
おそらく、制御範囲の閾値を超えてしまった結果、最大出力にシフトしてしまったのでしょうね。
決してドローン君がブチ切れたわけでは。
ないよね?
AIは入ってないね、うん。
さて、そうなるとどんなプログラムで制御されているのか気になってきますよね。
それに、ちょっと初心者には操作が難しいので、自動操縦とかやってみたくなりますよね。
プログラミングでドローンを動かす?
そう、プログラミングもできるようになってきたらしいのです。
プロポでの操縦は苦手です。もういいやです。
プログラミングしましょう。
調べてみると、JavaやCで制御できるものもあれば、Scratchで制御できるものもあります。
プログラミング教室でも取り上げるそうですよ!
前後左右上下移動に、バク転!
GPSを使ってルート通りに飛ぶ、なんてこともできるというから…
もう、たまりません!
それってプログラミング?
いろいろ調べてみたところ、残念なお知らせ。
前後左右上下移動に、バク転、それに回転とか、確かにこれらはできるのです。
コマンドで。
そう、コマンドで。
コマンド=命令。指示。
プログラム上では関数とか呼ぶね。
例えば、左へ移動させる場合「左にnステップ進む」命令を出すわけだ。
関数で言うなら move(LEFT, STEP_5) とか?
それだけ。
もっと細かく微妙な命令は、無い。
そういう引数やプロパティは、無い。
そうだよねぇ。下手な命令を許してしまうと、墜落しちゃうもの。
メーカとしてはそんな危ないものリリースできないよねぇ。
密かに抱いていた「トリプルアクセル」という野望はこの時点で潰えた。
ゆっくり回転するとかじゃダメなのよ。
さよなら。
もうモチベーションゼロよ。
眠いし。
じゃあ、作ればいいじゃない。
無いなら、作れ。
君はエンジニアだ。