ドローンをプロキットの

ドローンもある意味、ロボットの一種だが、いま、プログラムでコントロールするドローンに、強い興味を持っている。

先日、おもちゃのドローンを5000円で買って、この間、操縦の練習に部屋の中で飛ばしていた。やりながら、ドローンと人間というのは、なんだか笑える気がしてきた。ただ、コントローラーを持っているだけでは、面白くない。一番いいのは、プログラムで動くようにすることだ。C++とか、Javaて、動かせるのがいい。

簡単に見つかるだろうと思って、あちこち探したが、以外にこれが見つからない。そんなに世の中にないということは、間違いない。

結局、見つかったのはこれだ。

「Ryze Technologyのトイドローン Tello」

一年以上前に発売されたものだがいまだに人気があるそうだ。組み立てキットのようだが、アマゾンから出ているので、12800円と今のより、少し高いが、注文した。

仕組みは簡単だ。いくつかの記事をま 見たが、要は、ドローンと、wifi接続して、ポソコンなどからUDPでコマンドを送れば良いわけだ。動きを制御するコマンドだけではなく、ドローンの状態を得るためのコマンドもある。

こういうことであれば、Javaであろうが、C++であろうが、プログラムはなんで書いても良い。

二分木をどう作るか

基本的にKNPの構文解析に依存した形で作る。前は、KNPだけではなく接続詞や助詞などを考慮して二分木の構造を作っていたが、基本、KNPをベースにしその上で、他を顧慮することにする。

KNPは、係り受け解析なので、それをどう使うかである。

KNPは、文節、タグ、そして形態素解析の個々の要素という構造を持っている。文節とタグはそれぞれ独立した係の番号を持っている。ただし、相互に矛盾しているわけではない。その上で基本、文節の係り受けをもとにする。

ある文節mから開始するとしよう。再帰構造を前提にする。mのかかり先がm+1だった場合、リストにm+1を加え、次を調べる。次ではなくて、mの係先がm+kだった場合、それまでの文節リストとかかり先をセットにして保存する。次にm+1を調べる。

このm+1から順に調べて行って、その、最終的なかかり先がm+kよりも大きくなることはあり得る。しかし、最終的なかかり先が二つになることはない、

ということて、まず、mがm+kにかかっている場合。mまでを部分知識として登録する。m+1以降もそれを繰り返して、m+kまでの部分知識が、すべて確定したら、m+kからの分とそれにかかっているすべての部分知識を含めて、一つの部分知識とする。

このアルゴリズムでなんとかなりそうだが。

ただ、どこまで、KNPが、文法構造を正しく捉えているかがポイントだ。