残念ですが、高度を取得することはできないようです。
質問者さんが既に利用されているTelloPy ですが、ソースコード TelloPy/tellopy/_internal/tello.py を見ると、
get_alt_limit
, set_alt_limit
と言うメソッドがあり、コード中のログ出力部分に以下のような記述があります。
Python3
1def get_alt_limit(self):
2 ''' ... '''
3 self.log.debug('get altitude limit (cmd=0x%02x seq=0x%04x)' % (
4 ALT_LIMIT_MSG, self.pkt_seq_num))
5 pkt = Packet(ALT_LIMIT_MSG)
6 pkt.fixup()
7 return self.send_packet(pkt)
Tello自体には10メートルの上昇高度制限がありますが、これらのメソッドはどうも、Telloの高度制限の設定値取得と、セットにあたるもののようです。他に高度に関するメソッドは見当たりませんでした。
Telloの機体自体の仕様は以下に簡単に記載されていますが、
RYZE - TELLOスペック
これと併せて一般的なドローンの内部の動作を踏まえると、高度は気圧からソフトウェアで換算していると考えられます。
Telloに関しては、「高度制限」と言う機能で利用しているはずの「高度」と言う値をAPIで公開する必要は無いと言う判断から、公開していないのでしょう。まずこの線で考えると、Telloのプログラミングとして直接、高度の値を得るのは不可能そうです。
有志の方々がTelloについてハック(<良い意味です)して得た情報を公開しているTelloPilots と言うサイトがあります。そちらを覗いてみると、Tello内部で使っている低レベルメッセージの一覧があります。
TelloPilots - Low-Level Protocol
これによると、高度(Altitude)のみならず、気圧(Barometric pressure)に関するものも見当たりません。
気圧から自力で高度を計算しようとするのも無理そうです。つまり、ここでも不可能と言えそうです。
結論として、現状得られる情報から「高度を得るのは不可能」なようです。
私自身はTelloではない200g未満のトイドローンを飛ばす程度の経験しかありませんが、Tello、プログラミングして飛ばしたら面白そうですよね。「高度」に関しては残念でしたが、他の部分で愉しみましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/18 01:33