JP2019114008A - 飛行装置、飛行装置の制御方法及びプログラム - Google Patents

飛行装置、飛行装置の制御方法及びプログラム Download PDF

Info

Publication number
JP2019114008A
JP2019114008A JP2017246302A JP2017246302A JP2019114008A JP 2019114008 A JP2019114008 A JP 2019114008A JP 2017246302 A JP2017246302 A JP 2017246302A JP 2017246302 A JP2017246302 A JP 2017246302A JP 2019114008 A JP2019114008 A JP 2019114008A
Authority
JP
Japan
Prior art keywords
flight
image
unit
flight device
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017246302A
Other languages
English (en)
Inventor
真志 鳥越
Shinji Torigoe
真志 鳥越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2017246302A priority Critical patent/JP2019114008A/ja
Publication of JP2019114008A publication Critical patent/JP2019114008A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Image Analysis (AREA)

Abstract

【課題】自律飛行する飛行装置の制御技術に関し、地面又は床面方向を撮影して得られる画像から水平移動量を算出する場合の計算量を削減する。【解決手段】処理部は、フライトセンサ部が検出した飛行装置の高度が所定の高度閾値に比較して高い場合には、撮影部が撮影した地面又は床面の方向の画像に対して画角を狭くするトリミング処理を実行する。また、処理部は、飛行装置の高度が所定の高度閾値に比較して低い場合には、上記画像に対して画角は変えずに画像サイズを小さくする縮小処理を実行する。処理部は、トリミング処理又は縮小処理の後の画像から飛行装置の水平移動量を算出する。処理部は、算出した水平移動量に基づいて、飛行装置が空中でホバリングを維持するように飛行装置の飛行推進部を制御する。地面又は床面方向を撮影して得られる画像から水平移動量を算出する場合の計算量が、飛行装置の高度によらずほぼ一定となるように制御することが可能となる。【選択図】図4

Description

本発明は、自律飛行する飛行装置、その制御方法及びプログラムに関する。
モータで駆動されるロータブレードによる駆動推進装置を搭載して自律飛行を行う、いわゆる「ドローン」又は「マルチコプター」と総称される小型無人飛行装置(以下「ドローン」と呼ぶ)が知られている(例えば、特許文献1、2)。
このような無人飛行機を移動状態から空中で停止するいわゆるホバリング状態に自動制御するときに、水平方向に移動(並進)したことを検知してその並進量を補正するために従来、オプティカルフローと呼ばれる技術が知られている(例えば特許文献3)。オプティカルフロー技術では、下向きのカメラにより撮影した画像から適切な特徴点が抽出され、画像の連続するフレーム間の特徴点の位置の差分から動きを表すベクトルが推定され、その動きベクトルに基づいて水平移動量が算出される。そして、この水平移動量を補正するように、無人飛行機の飛行推進装置の推力がサーボ制御される。
特許第5432277号 特開2013−129301号公報 特許第5854655号公報
無人飛行機の水平移動量を上述したオプティカルフローを用いて算出する場合には、画像から適切な特徴点を抽出するための演算処理が必要となる。しかし、無人飛行機における下向き画像は、無人飛行機の高度によって撮影範囲が変わるため、オプティカルフローを算出するために画像内に写る特徴点の範囲も変わってくる。このため、無人飛行機の高度が例えば高い場合には、オプティカルフローを算出するための計算量が増加してしまうという課題があった。
本発明は、地面又は床面方向を撮影して得られる画像から水平移動量を算出する場合の計算量を削減することを目的とする。
態様の一例は、飛行推進部と処理部とを備える飛行装置であって、地面又は床面の方向の画像を撮影する下向き撮影部と、飛行装置の少なくとも姿勢及び高度を検出するフライトセンサ部と、を備え、処理部は、フライトセンサ部が検出した飛行装置の姿勢及び高度に応じて、撮影部が撮影した画像に対してトリミング処理又は縮小処理を実行し、トリミング処理又は縮小処理の後の画像から飛行装置の水平移動量を算出する。
本発明は、地面又は床面方向を撮影して得られる画像から水平移動量を算出する場合の計算量を削減することが可能となる。
本実施形態による飛行装置の構造例を示す横断面図である。 本実施形態による飛行装置の構造例を示す上面図である。 本実施形態による飛行装置のシステムの例を示すブロック図である。 本実施形態の動作説明図(その1)である。 本実施形態の動作説明図(その2)である。 コントローラがロータモータドライバ及びベーンモータドライバを制御する場合の基本的な制御機構を示すブロック図である。 コントローラによる水平移動量算出のための制御処理例を示すフローチャートである。
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。本実施形態では、処理部は、フライトセンサ部が検出した飛行装置の高度が所定の高度閾値に比較して高い場合には、撮影部が撮影した地面又は床面の方向の画像に対して画角を狭くするトリミング処理を実行する。また、処理部は、飛行装置の高度が所定の高度閾値に比較して低い場合には、上記画像に対して画角は変えずに画像サイズを小さくする縮小処理を実行する。この場合、処理部は、フライトセンサ部内のジャイロセンサによって飛行装置の姿勢を検出し、検出した姿勢に基づいて飛行装置の地面又は床面に対する傾きを算出し、その傾きに従って画像の画角内で地面又は床面に対して垂直な点の座標を算出し、その垂直な点の座標を中心座標として上述のトリミング処理を実行する。処理部は、上述のトリミング処理又は縮小処理の後の画像から飛行装置の水平移動量を算出する。そして、処理部は、算出した水平移動量に基づいて、飛行装置が空中でホバリングを維持するように飛行装置の飛行推進部を制御する。
このような制御処理により、地面又は床面方向を撮影して得られる画像から水平移動量を算出する場合の計算量が、飛行装置の高度によらずほぼ一定となるように制御することが可能となる。この結果、飛行装置を自動でホバリングさせるときに、補正のための水平移動量を計算する際の演算量を減らすことができるため、処理時間の短縮につながり、消費電力の低減に効果がある。また、少ないプロセッサ負荷で水平移動量を計算できるため、専用のハードウェアを備ける必要がなく、計算能力の低いプロセッサのみでも処理が可能となる。
更に、ジャイロセンサにより地面又は床面方向を撮影した画像の画角内に地面又は床面に対して垂直な点を中心座標を設定し、トリミング処理を行うことで、飛行装置の傾きに対する影響を排除することが可能となる。
図1及び図2はそれぞれ、本実施形態による飛行装置100の構造例を示す横断面図及び上面図である。図2(a)は図1の破線枠Aの部分を飛行装置100の上方から下方を見た場合の上面図、図2(b)は図1の破線枠Bの部分を飛行装置100の上方から下方を見た場合の上面図である。なお、破線枠A及びBは、説明のために付加した線である。
本体部である筒状のフレーム101は、上方(空側)と下方(地面又は床面側)にそれぞれ開口部を有する。上方の開口部内には、図1及び図2(a)に示されるように、バッテリ104と、バッテリ104により駆動されるロータモータ102と、ロータモータ102の回転軸が接続されロータモータ102によって回転させられるロータ103が設置される。ロータモータ102及びロータ103は、飛行推進部の一部である。
フレーム101の内部には、ステータ107の中央部から降ろされたロッド108と、図2(b)に示されるように、フレーム101の4カ所に設置された#1から#4のベーンモータ106の各回転軸とで支持される#1から#4のベーン105が設置される。各ベーン105は、それぞれに接続されたベーンモータ106の回転軸の回転によってそれぞれの羽の角度が制御されることにより、ロータ103から送風されてきて各ベーン105間の4カ所の間隙を流れる空気の各流入量を制御する流入弁の役割を有する。#1から#4のベーン105とベーンモータ106の組は、飛行推進部の一部である。
図1に示されるように、ステータ107の中央から降ろされたロッドの最下部(ベーン105の下側)には、フライトセンサ109(フライトセンサ部)及び下向きカメラユニット112(撮影部)が設置される。フライトセンサ109は例えば、ジャイロセンサ(角速度センサ)、加速度センサ、地磁気センサ(方位センサ)、GPS(全地球測位システム)センサ、気圧センサ、超音波センサ、レーザドップラセンサ、等を含む。下向きカメラユニット112は、地面又は床面方向を撮影するデジタルカメラユニットである。
フレーム101の外側表面には、情報撮影用のデジタルカメラユニット110と、制御部である回路ボックス111が設置される。デジタルカメラユニット110は、風景や人物等の画像を撮像する。回路ボックス111には、図1又は図2のロータモータ102、#1から#4のベーンモータ106、フライトセンサ109、デジタルカメラユニット110、及びバッテリ104を制御するための回路群が格納される。
図3は、図1の回路ボックス111内の回路とそれらの回路に接続される周辺装置からなるシステムの例を示すブロック図である。回路ボックス111内には、コントローラ301(処理部)、ロータモータドライバ302、#1から#4のベーンモータドライバ303、及びパワーセンサ304が格納される。
ロータモータドライバ302は、コントローラ301からの指示に基づいて図1のロータモータ102を駆動する。#1から#4のベーンモータドライバ303はそれぞれ、コントローラ301からの指示に基づいて、図1又は図2(b)の#1から#4のベーンモータ106を駆動する。
パワーセンサ304は、バッテリ104の電圧をモニタしながら、ロータモータドライバ302及び#1から#4のベーンモータドライバ303に電力を供給する。なお、特には図示しないが、バッテリ104の電力の一部は、コントローラ301のほか、図1のフライトセンサ109、下向きカメラユニット112、及びデジタルカメラユニット110にも供給される。
コントローラ301は、フライトセンサ109中のジャイロセンサから、飛行装置100の機体の位置及び姿勢に関する情報を取得する。また、コントローラ301は、フライトセンサ109中の超音波センサから、地面(室内の場合は床面)に対する高度をリアルタイムで取得する。また、コントローラ301は、パワーセンサ306を介して、バッテリ104の電圧をモニタしながら、ロータモータドライバ302及び#1から#4のベーンモータドライバ303にそれぞれ、パルス幅変調に基づくデューティ比による電力指示信号を送信する。これにより、ロータモータドライバ302はロータモータ102の回転速度を制御し、#1から#4のロータモータドライバ302はそれぞれ#1から#4のロータモータ102の回転角度を制御する。また、コントローラ301は、デジタルカメラユニット110(図1)による撮影動作を制御する。
このとき特に、コントローラ301は、下向きカメラユニット112が撮影した地面又は床面方向の画像を取得し、この画像とフライトセンサ109中の超音波センサから得ている高度のデータとから、水平移動量を算出する。そして、コントローラ301は、この水平移動量を補正するような制御信号を、#1から#4のロータモータドライバ302に対して与える。
図4及び図5は、上述の水平移動量の算出処理の詳細を説明するための本実施形態の動作説明図である。本実施形態では、コントローラ301は、図4(a)に示されるように、フライトセンサ109中の超音波センサ401が検出する高度が所定の閾値404(高度閾値)に比較して高い場合には、下向きカメラユニット112が撮影した画像403に対してトリミング処理を実行する。このトリミング処理により、例えば横640pix(ピクセル)×縦480pixの画像403において、解像度は変えられずに、例えば横80pix×60pixの画角の範囲のみが切り出される。
一方、コントローラ301は、図4(b)に示されるように、超音波センサ401が検出する高度が所定の閾値404に比較して低い場合には、下向きカメラユニット112が撮影した画像403に対して縮小処理を実行する。この縮小処理により、例えば横640pix×縦480pixの画像403が、画角は変えられずに解像度が低下させられることにより、例えば横80pix×60pixのサイズの画像に変換される。
ここで、コントローラ301は、上述のトリミング処理を実行する際に、図5に示されるように、フライトセンサ109中のジャイロセンサ402によって飛行装置100の姿勢(図5の方向B)を検出し、検出した姿勢に基づいて飛行装置の地面又は床面に対する傾きを算出し、その傾きに従って画像403の画角内で地面又は床面に対して垂直な点の座標A(図5)を算出し、その垂直な点の座標Aを中心座標として上述のトリミング処理を実行する。このとき、コントローラ301は例えば、飛行装置100の姿勢をヨー軸、ロール軸、及びピッチ軸まわりを基準として算出する。
コントローラ301は、上述のようにしてトリミング処理又は縮小処理を行って得られる画像に対して、既存のオプティカルフロー処理による水平移動量の算出処理を実行する。コントローラ301は、算出した水平移動量に基づいて、飛行装置100が空中でホバリングを維持するように、#1から#4のベーンモータドライバ303を制御する。
このような水平移動量算出のための制御処理により、画像403から水平移動量を算出する場合の計算量が、飛行装置の高度によらずほぼ一定となるように制御することが可能となる。図4(a)及び(b)の例では、画角及び解像度がほぼ一定の縦80pix×横60pixの画像に対してオプティカルフローの処理が実行されることになる。この結果、飛行装置を自動でホバリングさせるときに、補正のための水平移動量を計算する際の演算量を減らすことができるため、処理時間の短縮につながり、消費電力の低減に効果がある。また、少ないプロセッサ負荷で水平移動量を計算できるため、専用のハードウェアを備ける必要がなく、計算能力の低いプロセッサのみでも処理が可能となる。
更に、現在の姿勢から算出される地面又は床面に対して垂直な点Aを中心としてトリミング処理を行うことで、飛行装置100の傾きに対する影響を排除することが可能となる
次に、本実施形態において、上述の水平移動量による補正も含めて、コントローラ301がロータモータドライバ302及び#1から#4のベーンモータドライバ303を制御する場合の、基本的な制御原理について説明する。本実施形態では、下記(1)式で示されるPID制御(Proportional−Integral−Differential Controller)と呼ばれるフィードバック制御が用いられる。
上記(1)式において、e(t)は、時刻tにおいて、後述するコントローラ301の制御処理で算出される目標値からフライトセンサ109より得られる現在の制御量を減算して得られる偏差である。また、u(t)は、時刻tにおいて、ロータモータドライバ302又は#1から#4のベーンモータドライバ303に対して与えられるべき操作量である。
上記(1)式で示されるPID制御は、上記偏差に関する比例動作、積分動作、及び微分動作を組み合わせたフィードバック制御方法である。即ち、(1)式の右辺第1項で、操作量を制御量と目標値の偏差e(t)の一次関数として操作量u(t)を制御する比例制御(P制御:Proportional Controller)が実行される。この第1項で乗算される係数Kp は比例ゲイン(Pゲイン)と呼ばれる。このP制御により、操作量u(t)が目標値と現在の制御量との偏差e(t)に比例した大きさで徐々に調節されることになり、操作量u(t)を目標値にきめ細かく近づけることが可能となる。
また(1)式の右辺第2項で、偏差e(t)の時間積分に比例して操作量u(t)を制御する積分制御(I制御:Integral Controller)が実行される。この第2項で乗算される係数Ki は、積分ゲイン(Iゲイン)と呼ばれる。上記P制御のみだと、現在の制御量が目標値に近づくと操作量u(t)が小さくなりすぎ、それ以上細かくは制御できない状態が発生し、目標値に極めて近い現在の制御量の状態で安定した状態になってしまう。この僅かな誤差は「残留偏差」と呼ばれる。そこで、P制御に上記I制御を加えたPI制御により、残留偏差を時間的に累積し、或る大きさになった所で操作量u(t)を増加させて残留偏差を無くすように動作させることが可能となる。
更に、(1)式の右辺第3項で、上記偏差e(t)の微分に比例して操作量u(t)を制御する微分制御(D制御:Differential Controller)が実行される。この第3項で乗算される係数Kd は、微分ゲイン(Dゲイン)と呼ばれる。上記PI制御により現在の制御量を目標値に近づける制御が実現される。しかし、この制御には一定の時間(時定数)が必要となり、この時定数が大きいと外乱があった時の応答性能が悪くなり、すぐには元の目標値には戻せないという状態が発生する。そこで、PI制御に上記D制御を加えたPID制御により、偏差e(t)に関して前回偏差との差、即ち微分値が大きい時には操作量を多くすることにより、急激に起きる外乱に対して機敏に反応するようなフィードバック制御が可能となる。
このように、操作量u(t)を偏差e(t)に関する比例項、積分項、及び微分項からなる3項の和として制御するPID制御によって、ロータモータドライバ302及び#1から#4のベーンモータドライバ303において、それぞれの制御量を目標値に滑らかに到達させることができ、精度が高く、かつ応答性能の良い制御が可能となる。
コントローラ301は、上述のPID制御を、例えばプログラム制御により実現する。この場合、コントローラ301は、一定時間間隔の離散時刻毎に、フライトセンサ109から得られる制御量の離散値から算出される偏差を用いて、下記(2)式及び(3)式に従って、今回の離散時刻における操作量を算出する。そして、コントローラ301は、このPID制御をベースとするフィードバック制御処理により算出された各操作量を、ロータモータドライバ302及び#1から#4のベーンモータドライバ303に与えて、ロータモータ102及び#1から#4のベーンモータ106を駆動させる。
上記(2)式において、u(n)は今回の離散時刻nにおいて算出されるべき操作量、u(n−1)は前回の離散時刻n−1において算出されている操作量、Δu(n)は今回の離散時刻nにおいて算出されるべき操作量差分値である。また、この操作量差分値Δu(n)を算出する演算を示す上記(3)式において、e(n)は目標値から今回の離散時刻nにおける制御量を減算して得られる今回の離散時刻nにおける偏差、e(n−1)は目標値から前回の離散時刻n−1における制御量を減算して得られている前回の離散時刻n−1における偏差、e(n−2)は目標値から前々回の離散時刻n−2において得られている制御量を減算して得られる前々回の離散時刻n−2における偏差である。
上記(3)式において、右辺第1項の比例制御の演算は、目標値から今回の離散時刻nにおける制御量を減算して得られる今回の離散時刻nにおける偏差e(n)から前回の離散時刻n−1において算出されている偏差e(n−1)を減算して得られる結果にPゲインKp を乗算するという簡単な演算で算出できる。また、右辺第2項の積分制御の演算は、今回の離散時刻nにおける偏差e(n)にIゲインKi を乗算するという簡単な演算で算出できる。更に、右辺第3項の微分制御の演算は、今回の離散時刻nにおいて算出される偏差e(n)から前回の離散時刻n−1において算出されている偏差e(n−1)を減算した結果から、前記の離散時刻n−1において算出されている偏差e(n−1)から前々回の離散時刻n−2において算出されている偏差e(n−2)を減算した結果を減算した結果にDゲインKd を乗算するという簡単な演算で算出できる。このようにして、コントローラ301は、目標値から今回の離散時刻nにおいてフライトセンサ109から得られる制御量を減算して得られる偏差e(n)と、前回及び前々回の各離散時刻n−1及びn−2でそれぞれ算出されている偏差e(n−1)及びe(n−2)と、予め算出されているPゲインKp 、IゲインKi 、及びDゲインKd とを用いて、PID制御の離散時間演算を高速に実行することが可能となる。
図6は、コントローラ301がロータモータドライバ302及び#1から#4のベーンモータドライバ303を制御する場合の、上述のPID制御を用いた基本的な制御機構を示すブロック図である。
コントローラ301が、後述する水平移動量算出のための制御処理等のアルゴリズム601において、飛行装置100の位置を変更する、例えば水平移動量を補正する要求が発生した場合には、まず、アルゴリズム601に、フライトセンサ109中の例えばGPSセンサ及び気圧センサから、現在の位置を示す現在位置611が入力される。現在位置611は、GPSセンサから得られる緯度データ、経度データ、及び気圧センサから得られる高度データとからなる。アルゴリズム601においては、変更要求後の位置と上記現在位置611とから、、目標軌道610が決定される。目標軌道610は例えば、上記現在位置611から、下向きカメラユニット112から得られる画像から決定されるホバリング位置までの飛行軌道である。次に、アルゴリズム601は、目標軌道610に対応する目標位置612と目標高さ613を出力する。目標位置612は、緯度データ及び経度データとからなる。
アルゴリズム601から出力される目標位置612は、差分演算部605に入力する。差分演算部605には、また、現在位置611が入力する。この現在位置611は例えば、フライトセンサ109中のGPSセンサから出力される緯度データと経度データ、又はフライトセンサ109中のジャイロセンサ(角速度センサ)の出力を累算しその累算結果をフライトセンサ109中の加速度センサの出力で補正したデータである。差分演算部605は、コントローラ301が制御プログラム中で目標位置612と現在位置611の差分を演算する処理を実行することにより実現される機能である。差分演算部605は、前述した離散時刻n毎に、目標位置612と現在位置611の差分を演算することにより、位置偏差616を算出する。この離散時刻n毎に算出される位置偏差616は、前述した(3)式における離散時刻nにおける偏差e(n)として、PID制御部602に入力する。PID制御部602は、コントローラ301が制御プログラム中で前述した(3)式及び(2)式のPID制御演算を実行することにより実現される機能である。PID制御部602は、前述したように、離散時刻nにおいて差分演算部605で算出される位置偏差616である偏差e(n)と、前回及び前々回の各離散時刻n−1及びn−2でそれぞれ算出されている位置偏差616である偏差e(n−1)及びe(n−2)と、予め算出されているPゲインKp 、IゲインKi 、及びDゲインKd と、前回の離散時刻n−1において算出されている操作量u(n−1)とを用いて、前述した(3)式及び(2)式で示される演算を実行することで、今回の離散時刻nにおける操作量u(n)を算出する。コントローラ301は、PID制御部602で算出された操作量u(n)を算出し、更に、その操作量u(n)に対応する目標姿勢617を出力する。
上記出力される目標姿勢617は、差分演算部606に入力する。差分演算部606には、また、上記1つのベーン105に対応する現在姿勢618が入力する。この現在姿勢618は例えば、フライトセンサ109中のジャイロセンサ402(図4参照)の出力データである。差分演算部606は、コントローラ301が制御プログラム中で目標姿勢617と現在姿勢618の差分を演算する処理を実行することにより実現される機能である。差分演算部606は、前述した離散時刻n毎に、目標姿勢617と現在姿勢618の差分を演算することにより、姿勢偏差619を算出する。この離散時刻n毎に算出される姿勢偏差619は、前述した(3)式における離散時刻nにおける偏差e(n)として、PID制御部603に入力する。PID制御部603は、PID制御部602と同様の、コントローラ301が制御プログラム中で前述した(3)式及び(2)式のPID制御演算を実行することにより実現される機能である。PID制御部603は、前述したように、離散時刻nにおいて差分演算部606で算出される姿勢偏差619である偏差e(n)と、前回及び前々回の各離散時刻n−1及びn−2でそれぞれ算出されている姿勢偏差619である偏差e(n−1)及びe(n−2)と、予め算出されているPゲインKp 、IゲインKi 、及びDゲインKd と、前回の離散時刻n−1において算出されている操作量u(n−1)とを用いて、前述した(3)式及び(2)式で示される演算を実行することで、今回の離散時刻nにおける操作量u(n)を算出する。コントローラ301は、PID制御部603で算出された操作量u(n)を、位置・姿勢操作量625として出力する。
操作量変換部623は、上記位置・姿勢操作量625に基づいて、#1から#4のベーンモータ106(図1、図2(b)参照)を駆動するための#1から#4のベーンモータ回転角621を生成し、それぞれ#1から#4のベーンモータドライバ303(図3参照)に出力する。
アルゴリズム601から出力される目標高さ613は、差分演算部607に入力する。差分演算部607には、また、現在高さ615が入力する。この現在高さ615は例えば、フライトセンサ109中の超音波センサ401(図4参照)の出力データである。差分演算部607は、コントローラ301が制御プログラム中で目標高さ613から現在高さ615を減算する処理を実行することにより実現される機能である。差分演算部607は、前述した離散時刻n毎に、目標高さ613から現在高さ615を減算することにより、高さ偏差620を算出する。この離散時刻n毎に算出される高さ偏差620は、前述した(3)式における離散時刻nにおける偏差e(n)として、PID制御部604に入力する。PID制御部604は、PID制御部602等と同様の、コントローラ301が制御プログラム中で前述した(3)式及び(2)式のPID制御演算を実行することにより実現される機能である。PID制御部604は、前述のように、離散時刻nにおいて差分演算部607で算出される高さ偏差620である偏差e(n)と、前回及び前々回の各離散時刻n−1及びn−2でそれぞれ算出されている高さ偏差620である偏差e(n−1)及びe(n−2)と、予め算出されているPゲインKp 、IゲインKi 、及びDゲインKd と、前回の離散時刻n−1において算出されている操作量u(n−1)とを用いて、前述した(3)式及び(2)式で示される演算を実行することで、今回の離散時刻nにおける操作量u(n)を算出する。コントローラ301は、PID制御部604で算出された操作量u(n)を、ロータモータ回転数622として出力する。このロータモータ回転数622は、ロータモータドライバ302に供給される。
アルゴリズム601において更に目標位置610の変更が必要ならば、上述と同様のPID制御をベースとするフィードバック制御処理が繰り返し実行される。
図7は、図3のコントローラ301が実行する水平移動量算出のための制御処理例を示すフローチャートである。この処理は、コントローラ301が内蔵するCPUが、同じく内蔵する特には図示しないメモリに記憶された制御プログラムを実行する処理として実現することができる。この制御処理は、下向きカメラユニット112が撮影する動画像のフレーム期間毎に繰り返し起動されて実行される。
コントローラ301はまず、下向きカメラユニット112から、現在のフレームの画像403(図4、図5参照)(現画像)を入力する(ステップS701)。
次に、図5を用いて前述したように、コントローラ301は、フライトセンサ109中のジャイロセンサ402によって飛行装置100の姿勢(図5の方向B)を検出する(ステップS702)。
更に、コントローラ301は、ステップS702で算出した姿勢から、下向きカメラユニット112により撮影された画像403から、飛行装置100の地面又は床面に対して垂直となる座標点A(図5参照)を算出する(ステップS703)。
コントローラ301は、ステップS703で算出した座標Aが、画像403の画角内に入っているか否かを判定する(ステップS704)。
座標Aが画角から外れた場合(ステップS704の判定がNOの場合)は、コントローラ301は、飛行装置100がホバリング中では無いと判定し、今回のフレームにおける図7のフローチャートで示される水平移動量算出のための制御処理を終了する。
座標Aが画角内にある場合(ステップS704の判定がYESの場合)は、コントローラ301は、フライトセンサ109中の超音波センサ401(図4参照)によって、飛行装置100の高度を検出する(ステップS705)。
次に、コントローラ301は、ステップS705で検出した高度が、閾値404(図4参照)に比較して高いか低いかを判定する(ステップS706)。
コントローラ301は、ステップS706で上記高度が閾値404に比較して高いと判定した場合は、図4(a)を用いて前述したように、ステップS703で算出した座標Aを中心とする所定の画像範囲(図4(a)の横80pix×縦60pixの範囲)を設定する(ステップS707)。
そして、コントローラ301は、ステップS707で設定した画像範囲で、ステップS701で入力した画像403の現画像に対してトリミングを行う(ステップS708)。
飛行装置100の高度が高い場合に、下向きカメラユニット112が撮影した画像403そのものに対してオプティカルフローの処理を実行すると、飛行装置100の水平移動量に対して画像の変化が少ないため、縮小してぼやけてしまうと、注目すべき特徴や、また画像403の連続するフレーム間の画像の差分が小さくなり、水平移動量を算出するための特徴点をうまく抽出できない場合がある。そこで、飛行装置100の高度が高い場合には、画像403に対してトリミング処理を実行して切り出した狭い範囲に対してオプティカルフロー処理を実行することにより、特徴量を適切に抽出することが可能となる。
一方、コントローラ301は、ステップS706で高度が閾値404に比較して低いと判定した場合は、図4(b)を用いて前述したように、ステップS701で入力した画像403の現画像に対して縮小する倍率(横640pix×縦480pixから横80pix×縦60pixへの8分の1の縮小)を設定する(ステップS709)。
そして、コントローラ301は、ステップS709で設定した倍率で、ステップS701で入力した画像403の現画像に対して縮小を行う(ステップS710)。縮小処理は例えば、各画素の周囲8近傍画素の平均加算処理である。
飛行装置100の高度が低い場合に、下向きカメラユニット112が撮影した画像403そのものに対してオプティカルフローの処理を実行すると、水平移動量に対して画像の変化が大きすぎ、画像403の連続するフレーム間で特徴点の対応付けができなくなる可能性がある。そこで、飛行装置100の低い場合には、画像403に対して縮小処理を実行して得た小サイズの画像に対してオプティカルフロー処理を実行することにより、特徴量を適切に対応付けることが可能となる。
次に、コントローラ301は、ステップS708でトリミング処理又はステップS710で縮小処理した画像を入力し、その画像から特徴点を抽出する(ステップS712)。特徴点は例えば、画像エッジに対するベクトル情報である。
コントローラ301は、ステップS712で特徴点が抽出できたか否かを判定する(ステップS713)。
ステップS713の判定がNOの場合(特徴点が抽出できなかった場合)には、コントローラ301はそのまま、今回のフレームにおける図7のフローチャートで示される水平移動量算出のための制御処理を終了する。
ステップS713の判定がYESの場合(特徴点が抽出できた場合)には、コントローラ301は、1フレーム前の後述するステップ716で保存されている処理済みの画像を入力する(ステップS714)。
そして、コントローラ301は、ステップS711で入力した現在のフレームの画像とステップS714で入力した1フレーム前の画像とで、フレーム間で特徴点の対応付け及びオプティカルフロー(動きベクトル)の算出を行い、全体的な水平移動量を算出する(ステップS715)。オプティカルフロー処理は、連続するフレーム間で動きベクトルを算出するための一般的な処理であるため、その詳細は省略する。
コントローラ301は、ステップS711で入力した現在のフレームの処理済みの現画像を、次のフレームのステップS714で使用される1フレーム前の処理済み画像として保存する(ステップS716)。なお、コントローラ301は、ステップS712で算出した特徴点についても、次のフレームにおけるステップS715で参照される1フレーム前の特徴点として保存する。その後、コントローラ301は、図7のフローチャートで示される今回のフレームにおける水平移動量算出のための制御処理を終了する。
以上説明した実施形態において、コントローラ301は、画像403又はフライトセンサ109中の超音波センサ401の出力に基づいて地面又は床面の高度に対して所定閾値以上高度の異なる物体である障害物を検知すると、障害物から水平方向に所定距離離れるように飛行装置100を水平移動させるような制御を行う、又はトリミング処理した後の画像に障害物が含まれなくなるように飛行装置100を水平移動させる制御を行ってもよい。
また、上述の実施形態は、コントローラ301が全体の動作を制御しているが、処理の一部分を受け持つ専用のハードウェア又はプロセッサを設けてもよい。例えば専用のPID制御回路や水平移動量算出回路を設けることもできる。
上述の実施形態は、ロータモータ102を1つ搭載し、ベーンモータ106を#1から#4の4個搭載した、いわゆるダクテッドファン型の装置であるが、このほか、ロータモータ102を複数(4個又は6個等)搭載したマルチコプター型の装置であってもよい。或いは、空気圧やエンジン出力により推進される機構により飛行推進部が実現されてもよい。
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
飛行推進部と処理部とを備える飛行装置であって、
地面又は床面の方向の画像を撮影する下向き撮影部と、
前記飛行装置の少なくとも姿勢又は、地面もしくは床面に対する高度を検出するフライトセンサ部と、
を備え、
前記処理部は、
前記フライトセンサ部が検出した前記飛行装置の姿勢及び高度に応じて、前記撮影部が撮影した前記画像に対してトリミング処理又は縮小処理を実行し、
前記トリミング処理又は縮小処理の後の前記画像から前記飛行装置の水平移動量を算出する
ことを特徴とする飛行装置。
(付記2)
前記処理部は、前記算出した水平移動量に基づいて、前記飛行装置が空中で定置するように前記飛行推進部を制御する、
ことを特徴とする付記1に記載の飛行装置。
(付記3)
前記フライトセンサ部はジャイロセンサを含み、
前記処理部は、
前記ジャイロセンサによって前記飛行装置の姿勢を検出し、
前記検出した姿勢に基づいて前記飛行装置の前記地面又は床面に対する傾きを算出し、
前記傾きに従って前記画像の画角内で前記地面又は床面に対して垂直な点の座標を算出し、
前記垂直な点の座標を中心座標として前記トリミング処理又は縮小処理を実行する、
ことを特徴とする付記1又は2に記載の飛行装置。
(付記4)
前記処理部は、
前記フライトセンサ部が検出する高度が所定の高度閾値に比較して高い場合には、前記画像に対して前記トリミング処理を実行し、
前記フライトセンサ部が検出する高度が所定の高度閾値に比較して低い場合には、前記画像に対して前記縮小処理を実行する、
ことを特徴とする付記1乃至3の何れかに記載の飛行装置。
(付記5)
前記処理部は、前記画像又は前記フライトセンサ部の出力に基づいて前記地面又は床面の高度に対して所定閾値以上高度の異なる物体である障害物を検知すると、前記障害物から水平方向に所定距離離れるように前記飛行装置を水平移動させ、又は前記トリミング処理した後の前記画像に前記障害物が含まれなくなるように前記飛行装置を水平移動させる、
ことを特徴とする付記1乃至4の何れかに記載の飛行装置。
(付記6)
前記処理部は、前記飛行装置の姿勢をヨー軸、ロール軸、及びピッチ軸まわりで制御する、ことを特徴とする付記1乃至5の何れかに記載の飛行装置。
(付記7)
飛行推進部と、地面又は床面の方向の画像を撮影する下向き撮影部と、少なくとも姿勢及び高度を検出するフライトセンサ部とを備える飛行装置の処理部が、
前記フライトセンサ部が検出した前記飛行装置の姿勢及び高度に応じて、前記撮影部が撮影した前記画像に対してトリミング処理又は縮小処理を実行し、
前記トリミング処理又は縮小処理の後の前記画像から前記飛行装置の水平移動量を算出し、
ことを特徴とする飛行装置の制御方法。
(付記8)
飛行推進部と、地面又は床面の方向の画像を撮影する下向き撮影部と、少なくとも姿勢及び高度を検出するフライトセンサ部とを備える飛行装置を制御するコンピュータに、
前記フライトセンサ部が検出した前記飛行装置の姿勢及び高度に応じて、前記撮影部が撮影した前記画像に対してトリミング処理又は縮小処理を実行するステップと、
前記トリミング処理又は縮小処理の後の前記画像から前記飛行装置の水平移動量を算出するステップと、
を実行させるためのプログラム。
100 飛行装置
101 フレーム
102 ロータモータ
103 ロータ
104 バッテリ
105 ベーン
106 ベーンモータ
107 ステータ
108 ロッド
109 フライトセンサ
110 デジタルカメラユニット
111 回路ボックス
112 下向きカメラユニット
301 コントローラ
302 ロータモータドライバ
303 ベーンモータドライバ
304 パワーセンサ
401 超音波センサ
402 ジャイロセンサ
403 画像
601 アルゴリズム
602、603、604 PID制御部
605、606、607 差分演算部
610 目標軌道
611 現在位置
612 目標位置
613 目標高さ
615 現在高さ
616 位置偏差
617 目標姿勢
618 現在姿勢
619 姿勢偏差
620 高さ偏差
621 ベーンモータ回転角
622 ロータモータ回転数
623、624 操作量変換部
625 位置・姿勢操作量
626 高さ操作量

Claims (8)

  1. 飛行推進部と処理部とを備える飛行装置であって、
    地面又は床面の方向の画像を撮影する下向き撮影部と、
    前記飛行装置の少なくとも姿勢又は、地面若しくは床面に対する高度を検出するフライトセンサ部と、
    を備え、
    前記処理部は、
    前記フライトセンサ部が検出した前記飛行装置の姿勢又は高度に応じて、前記撮影部が撮影した前記画像に対してトリミング処理又は縮小処理を実行し、
    前記トリミング処理又は縮小処理の後の前記画像から前記飛行装置の水平移動量を算出する、
    ことを特徴とする飛行装置。
  2. 前記処理部は、前記算出した水平移動量に基づいて、前記飛行装置が空中で定置するように前記飛行推進部を制御する、
    ことを特徴とする請求項1に記載の飛行装置。
  3. 前記フライトセンサ部はジャイロセンサを含み、
    前記処理部は、
    前記ジャイロセンサによって前記飛行装置の姿勢を検出し、
    前記検出した姿勢に基づいて前記飛行装置の前記地面又は床面に対する傾きを算出し、
    前記傾きに従って前記画像の画角内で前記地面又は床面に対して垂直な点の座標を算出し、
    前記垂直な点の座標を中心座標として前記トリミング処理又は縮小処理を実行する、
    ことを特徴とする請求項1又は2に記載の飛行装置。
  4. 前記処理部は、
    前記フライトセンサ部が検出する高度が所定の高度閾値に比較して高い場合には、前記画像に対して前記トリミング処理を実行し、
    前記フライトセンサ部が検出する高度が所定の高度閾値に比較して低い場合には、前記画像に対して前記縮小処理を実行する、
    ことを特徴とする請求項1乃至3の何れかに記載の飛行装置。
  5. 前記処理部は、前記画像又は前記フライトセンサ部の出力に基づいて前記地面又は床面の高度に対して所定閾値以上高度の異なる物体である障害物を検知すると、前記障害物から水平方向に所定距離離れるように前記飛行装置を水平移動させ、又は前記トリミング処理した後の前記画像に前記障害物が含まれなくなるように前記飛行装置を水平移動させる、
    ことを特徴とする請求項1乃至4の何れかに記載の飛行装置。
  6. 前記処理部は、前記飛行装置の姿勢をヨー軸、ロール軸、及びピッチ軸まわりで制御する、ことを特徴とする請求項1乃至5の何れかに記載の飛行装置。
  7. 飛行推進部と、地面又は床面の方向の画像を撮影する下向き撮影部と、少なくとも姿勢及び高度を検出するフライトセンサ部とを備える飛行装置の処理部が、
    前記フライトセンサ部が検出した前記飛行装置の姿勢又は、地面若しくは床面に対する高度に応じて、前記撮影部が撮影した前記画像に対してトリミング処理又は縮小処理を実行し、
    前記トリミング処理又は縮小処理の後の前記画像から前記飛行装置の水平移動量を算出する、
    ことを特徴とする飛行装置の制御方法。
  8. 飛行推進部と、地面又は床面の方向の画像を撮影する下向き撮影部と、少なくとも姿勢及び高度を検出するフライトセンサ部とを備える飛行装置を制御するコンピュータに、
    前記フライトセンサ部が検出した前記飛行装置の姿勢又は、地面若しくは床面に対する高度に応じて、前記撮影部が撮影した前記画像に対してトリミング処理又は縮小処理を実行するステップと、
    前記トリミング処理又は縮小処理の後の前記画像から前記飛行装置の水平移動量を算出するステップと、
    を実行させるためのプログラム。
JP2017246302A 2017-12-22 2017-12-22 飛行装置、飛行装置の制御方法及びプログラム Pending JP2019114008A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017246302A JP2019114008A (ja) 2017-12-22 2017-12-22 飛行装置、飛行装置の制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017246302A JP2019114008A (ja) 2017-12-22 2017-12-22 飛行装置、飛行装置の制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2019114008A true JP2019114008A (ja) 2019-07-11

Family

ID=67223694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017246302A Pending JP2019114008A (ja) 2017-12-22 2017-12-22 飛行装置、飛行装置の制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2019114008A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158388A (zh) * 2020-01-19 2020-05-15 沈阳无距科技有限公司 多旋翼无人机悬停控制方法、装置、多旋翼无人机及存储介质
CN116300623A (zh) * 2023-03-15 2023-06-23 横川机器人(深圳)有限公司 飞拍控制方法、装置、系统及存储介质
WO2024067473A1 (zh) * 2022-09-29 2024-04-04 影石创新科技股份有限公司 飞行器的速度监测方法、装置、存储介质及飞行器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111158388A (zh) * 2020-01-19 2020-05-15 沈阳无距科技有限公司 多旋翼无人机悬停控制方法、装置、多旋翼无人机及存储介质
CN111158388B (zh) * 2020-01-19 2023-08-18 沈阳无距科技有限公司 多旋翼无人机悬停控制方法、装置、多旋翼无人机及存储介质
WO2024067473A1 (zh) * 2022-09-29 2024-04-04 影石创新科技股份有限公司 飞行器的速度监测方法、装置、存储介质及飞行器
CN116300623A (zh) * 2023-03-15 2023-06-23 横川机器人(深圳)有限公司 飞拍控制方法、装置、系统及存储介质
CN116300623B (zh) * 2023-03-15 2024-03-22 横川机器人(深圳)有限公司 飞拍控制方法、装置、系统及存储介质

Similar Documents

Publication Publication Date Title
CN109074168B (zh) 无人机的控制方法、设备和无人机
JP6207746B2 (ja) 航空機姿勢制御方法及び装置
CN104335128B (zh) 用于用侧风和加速度计偏差估计和补偿来控制多旋翼的旋翼无人机的方法
Hui et al. Autonomous takeoff, tracking and landing of a UAV on a moving UGV using onboard monocular vision
De Plinval et al. Visual servoing for underactuated VTOL UAVs: a linear, homography‐based framework
JP6665318B2 (ja) 無人航空機、及び、無人航空機を制御するための方法
JP2023090817A (ja) 飛行体制御装置、飛行体制御方法、及びプログラム
JP2019114008A (ja) 飛行装置、飛行装置の制御方法及びプログラム
JP2017504881A5 (ja)
CN111367318A (zh) 一种基于视觉语义信息的动态障碍环境导航方法和装置
JP6791365B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
US20210009270A1 (en) Methods and system for composing and capturing images
US20190196476A1 (en) Flying device, method of controlling flying device, and storage medium
McGuire et al. Local histogram matching for efficient optical flow computation applied to velocity estimation on pocket drones
WO2019183789A1 (zh) 无人机的控制方法、装置和无人机
JP4617990B2 (ja) 自動飛行制御装置、自動飛行制御方法及び自動飛行制御プログラム
CN116149193B (zh) 一种基于视觉的旋翼无人机抗扰动控制方法及系统
WO2020042159A1 (zh) 一种云台的转动控制方法、装置及控制设备、移动平台
JP6900029B2 (ja) 無人航空機、位置推定装置、飛行制御装置、位置推定方法、制御方法及びプログラム
JP5888115B2 (ja) 追尾装置および追尾方法
JP7251414B2 (ja) 制御装置および制御方法
CN114326766A (zh) 一种车机协同自主跟踪与降落方法
Guo et al. A ground moving target tracking system for a quadrotor in GPS-denied environments
WO2020144936A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP2019114007A (ja) 空中定置装置、空中定置装置の制御方法及びプログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190415