(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024163227
(43)【公開日】2024-11-21
(54)【発明の名称】行動制御装置および行動制御方法
(51)【国際特許分類】
G05D 1/24 20240101AFI20241114BHJP
G05D 1/242 20240101ALI20241114BHJP
G05D 1/243 20240101ALI20241114BHJP
G08G 5/00 20060101ALI20241114BHJP
G01C 21/20 20060101ALI20241114BHJP
【FI】
G05D1/24
G05D1/242
G05D1/243
G08G5/00 A
G01C21/20
【審査請求】有
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2024151434
(22)【出願日】2024-09-03
(62)【分割の表示】P 2021503966の分割
【原出願日】2020-02-21
(31)【優先権主張番号】P 2019040139
(32)【優先日】2019-03-06
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】多井 堅一郎
(72)【発明者】
【氏名】半田 正樹
(72)【発明者】
【氏名】元山 琢人
(72)【発明者】
【氏名】李 駿
(72)【発明者】
【氏名】豊吉 政彦
(57)【要約】
【課題】より適切な行動制御を実現する。
【解決手段】EKF処理部は、ドローンの位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の自己位置推定部の中からドローンが行動する際の指標となるウェイポイントに基づいて選択し、ドローンの状態を求める。そして、ナビゲータが、ドローンの状態に基づいて、予め作成された行動計画に従ってドローンの行動を制御する。本技術は、例えば、ドローンのミッション飛行を制御するミッション飛行制御装置に適用できる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求める状態特定部と、
前記移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って前記移動体の行動を制御する行動制御部と
を備え、
前記自己位置推定部には、画像センサから取得した情報を利用するVisionベース自己位置推定部と、Lidar(Light Detection And Ranging)センサから取得した情報を利用するLidarベース自己位置推定部とを含む
行動制御装置。
【請求項2】
移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求める状態特定部と、
前記移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って前記移動体の行動を制御する行動制御部と、
前記状態特定部により選択される前記自己位置推定部を、前記指標ごとに指定する指標指定部と
を備え、
前記指標指定部は、所定の前記指標における前記移動体の自己位置を前記自己位置推定部が推定する際に優先させる優先事項に従って、所定の前記指標ごとの前記自己位置推定部を指定し、
前記指標指定部は、前記優先事項が移動速度である場合、前記自己位置推定部が有効に機能することが可能な速度の有効範囲の範囲内で、最も高速な移動速度を得られる前記自己位置推定部を指定する
行動制御装置。
【請求項3】
前記指標指定部は、所定の前記指標における前記移動体の自己位置を前記自己位置推定部が推定する際に優先させる優先事項に従って、所定の前記指標ごとの前記自己位置推定部を指定する
請求項2に記載の行動制御装置。
【請求項4】
前記指標指定部は、前記優先事項が推定精度である場合、前記自己位置推定部が有効に機能することが可能な速度の有効範囲の範囲内で、最も高い推定精度を得られる前記自己位置推定部を指定する
請求項3に記載の行動制御装置。
【請求項5】
前記指標は、前記画像センサ又は前記Lidarセンサから取得した情報である
請求項1から4のいずれかに記載の行動制御装置。
【請求項6】
前記状態特定部は、
前記移動体が行動する際の指標のうち、前記移動体の行動に伴って最も近傍となる前記指標を選択する最近傍指標選択部と、
複数の前記自己位置推定部それぞれが前記移動体の位置を推定した結果として出力される複数の観測情報のうちの、前記最近傍指標選択部により選択された前記指標に基づいて指定されている前記自己位置推定部から出力される前記観測情報を選択する観測情報選択部と、
前記観測情報選択部により選択された前記観測情報に基づいて、前記移動体の最新の状態を求める状態更新部と
を有する
請求項1から5のいずれかに記載の行動制御装置。
【請求項7】
移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求める状態特定部と、
前記移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って前記移動体の行動を制御する行動制御部と、
前記状態特定部により選択される前記自己位置推定部を、前記指標ごとに指定する指標指定部と、
前記指標指定部により前記指標ごとに指定された前記自己位置推定部を視覚化するとともに、前記指標に従った経路ごとに使用される前記自己位置推定部を視覚化して表示する表示部と
を備え、
前記指標指定部では、前記行動タスクを指定するユーザによって、複数の前記指標が指定されるとともに、それぞれの前記指標ごとの前記自己位置推定部が指定される
行動制御装置。
【請求項8】
前記表示部は、所定の前記自己位置推定部が指定された前記指標に基づいて、その自己位置推定部が有効に機能することが可能な前記移動体の速度の有効範囲を表示し、前記有効範囲外について指定不可であることを視覚化して表示する
請求項7に記載の行動制御装置。
【請求項9】
前記表示部は、前記経路で使用される前記自己位置推定部の推定精度を、それぞれの経路に沿って視覚化して表示する
請求項7に記載の行動制御装置。
【請求項10】
前記表示部は、前記移動体の速度が指定されるのに応じて、その速度では有効に機能することができない前記自己位置推定部について指定不可であることを視覚化して表示する
請求項7に記載の行動制御装置。
【請求項11】
前記行動計画に従って前記移動体が移動しながら行う測距に基づいて、前記経路の近傍において障害物が存在する範囲を表す障害物マップを作成する障害物マップ作成部
をさらに備え、
前記表示部は、前記移動体を移動させる領域を表す地図に重畳させて前記障害物マップを表示し、
前記指標指定部では、前記地図上における前記指標の位置がユーザにより微調整されて再指定される
請求項7に記載の行動制御装置。
【請求項12】
前記表示部は、前記障害物マップを作成する際における測距の測距誤差に従って、前記障害物が存在する範囲に対する誤差範囲を前記地図に重畳して表示する
請求項11に記載の行動制御装置。
【請求項13】
前記表示部は、前記自己位置推定部の推定精度に基づく誤差範囲を表す誤差楕円を、前記地図に重畳して表示する
請求項12に記載の行動制御装置。
【請求項14】
移動体の行動を制御する行動制御装置が、
前記移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求めることと、
前記移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って前記移動体の行動を制御することと
を含み、
前記自己位置推定部には、画像センサから取得した情報を利用するVisionベース自己位置推定部と、Lidar(Light Detection And Ranging)センサから取得した情報を利用するLidarベース自己位置推定部とを含む
行動制御方法。
【請求項15】
移動体の行動を制御する行動制御装置が、
前記移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求めることと、
前記移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って前記移動体の行動を制御することと、
選択される前記自己位置推定部を、前記指標ごとに指定することと
を含み、
所定の前記指標における前記移動体の自己位置を前記自己位置推定部が推定する際に優先させる優先事項に従って、所定の前記指標ごとの前記自己位置推定部を指定し、
前記優先事項が推定精度である場合、前記自己位置推定部が有効に機能することが可能な高度および速度の有効範囲の範囲内で、最も高い推定精度を得られる前記自己位置推定部を指定する
行動制御方法。
【請求項16】
移動体の行動を制御する行動制御装置が、
前記移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求めることと、
前記移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って前記移動体の行動を制御することと、
選択される前記自己位置推定部を、前記指標ごとに指定することと
を含み、
所定の前記指標における前記自己位置推定部と前記移動体の速度とが指定された場合、その指定された前記自己位置推定部が有効に機能する最も低い高度を、所定の前記指標ごとに指定する
行動制御方法。
【請求項17】
移動体の行動を制御する行動制御装置が、
前記移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求めることと、
前記移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って前記移動体の行動を制御することと、
選択される前記自己位置推定部を、前記指標ごとに指定することと、
前記指標ごとに指定された前記自己位置推定部を視覚化するとともに、前記指標に従った経路ごとに使用される前記自己位置推定部を視覚化して表示することと
を含み、
前記行動計画の作成を指示するユーザによって、複数の前記指標が指定されるとともに、それぞれの前記指標ごとの前記自己位置推定部が指定される
行動制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、行動制御装置および行動制御方法に関し、特に、より適切な行動制御を実現することができるようにした行動制御装置および行動制御方法に関する。
【背景技術】
【0002】
従来、いわゆるドローンと称される無人航空機(UAV:Unmanned Aerial Vehicle)などの移動体は、例えば、ユーザの操作に応じて飛行する他、予め指定されたウェイポイントを通過するというミッションに従って飛行すること(以下、ミッション飛行と称する)ができる。
【0003】
このようなミッション飛行を実現するには、ドローンが、自己の位置を推定するための自己位置推定システムを備える必要がある。例えば、自己位置推定システムには、GPS(Global Positioning System)センサを利用して自己の位置を推定する手法や、ビジョンセンサを利用して自己の位置を推定する手法などが主に用いられ、その他にも様々な手法を用いることができる。
【0004】
例えば、GPSセンサを利用した自己位置推定システムは、GPSを広範囲で利用することができるメリットがある一方で、自己位置を推定する精度が低い(例えば、数メートル程度の誤差)というデメリットがある。また、ビジョンセンサを利用した自己位置推定システムは、自己位置を推定する精度が高い(例えば、数センチ程度の誤差)というメリットがある一方で、ビジョンが有効に利用できる範囲が狭く、一様な見た目や遠景などにおいては利用することができないというデメリットがある。
【0005】
また、特許文献1には、複数の位置情報を取得して移動範囲の情報を設定することによって、移動する経路または範囲を、より正確に設定することが可能な移動体が開示されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、従来のドローンでは、例えば、ミッション飛行の全体に亘って同一の自己位置推定システムを利用するように構成されていたため、自己位置を推定する際の推定精度を変えながら、状況に応じた適切な飛行制御を行うことは困難であった。例えば、あるウェイポイントでは高精度で自己位置を推定しながら飛行させたり、あるウェイポイントでは低精度であっても高速で飛行させたりするというようなミッション飛行を行うことが実現されていなかった。
【0008】
本開示は、このような状況に鑑みてなされたものであり、より適切な行動制御を実現することができるようにするものである。
【課題を解決するための手段】
【0009】
本開示の一側面の行動制御装置は、移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求める状態特定部と、前記移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って前記移動体の行動を制御する行動制御部とを備え、前記自己位置推定部には、画像センサから取得した情報を利用するVisionベース自己位置推定部と、Lidarセンサから取得した情報を利用するLidarベース自己位置推定部とを含む。
【0010】
本開示の一側面の行動制御方法は、移動体の行動を制御する行動制御装置が、前記移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求めることと、前記移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って前記移動体の行動を制御することとを含み、前記自己位置推定部には、画像センサから取得した情報を利用するVisionベース自己位置推定部と、Lidarセンサから取得した情報を利用するLidarベース自己位置推定部とを含む。
【0011】
本開示の一側面においては、移動体の行動を制御する行動制御装置によって、移動体の位置を推定するのに使用する自己位置推定部が、推定精度の異なる複数の自己位置推定部の中から指標に基づいて選択されて、移動体の状態が求めされ、移動体の状態に基づいて、指定された行動タスクによって作成された行動計画に従って移動体の行動が制御される。そして、自己位置推定部には、画像センサから取得した情報を利用するVisionベース自己位置推定部と、Lidarセンサから取得した情報を利用するLidarベース自己位置推定部とが含まれる。
【図面の簡単な説明】
【0012】
【
図2】本技術を適用したミッション飛行制御装置の第1の実施の形態の構成例を示すブロック図である。
【
図4】ミッション飛行設定画面の一例を示す図である。
【
図5】自己位置推定システムの切り替えについて説明する図である。
【
図6】ミッション飛行制御処理を説明するフローチャートである。
【
図7】EKF処理を説明するフローチャートである。
【
図8】高度および速度の有効範囲を視覚化したユーザインタフェースの一例を示す図である。
【
図9】推定精度を視覚化したユーザインタフェースの一例を示す図である。
【
図10】自己位置推定システムごとの高度および速度についての有効範囲を説明する図である。
【
図11】Visionベース自己位置推定が選択不可であることを視覚化したユーザインタフェースの一例を示す図である。
【
図12】高精度優先でウェイポイントWPを自動的に選択するウェイポイント設定処理を説明するフローチャートである。
【
図13】速度優先でウェイポイントWPを自動的に選択するウェイポイント設定処理を説明するフローチャートである。
【
図14】速度および自己位置推定システムの指定に応じて、ウェイポイントWPごとの高度を自動的に選択するウェイポイント設定処理を説明するフローチャートである。
【
図15】ミッション飛行制御装置での位置合わせについて説明する図である。
【
図16】障害物の位置に基づいて、障害物を回避するようにミッション飛行をカスタマイズする方法について説明する図である。
【
図17】障害物マップを利用したウェイポイントの微調整について説明する図である。
【
図18】本技術を適用したミッション飛行制御装置の第2の実施の形態の構成例を示すブロック図である。
【
図19】ミッション飛行をカスタマイズする処理を説明するフローチャートが示されている。
【
図20】障害物の測距精度を視覚化したユーザインタフェースの一例を示す図である。
【
図21】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0014】
<ミッション飛行について>
図1を参照して、ドローンのミッション飛行について説明する。
【0015】
例えば、
図1に示すように、6カ所のウェイポイントWP1乃至WP6が指定されている場合、スタート位置であるウェイポイントWP1からゴール位置であるウェイポイントWP6まで順番に、ウェイポイントWP2乃至WP5を通過するような経路で行動計画が作成される。この場合、ドローン1は、
図1において2点鎖線で示されるような経路に沿って飛行するミッション飛行を実行することができる。
【0016】
なお、本実施の形態では、ドローン1が通過する際の指標としてウェイポイントWPを利用するミッション飛行について説明するが、ウェイポイントWPを利用する以外に、例えば、ドローン1の行動タスク(撮像を行うや、物品を搬送するなど)を指定して行動計画を作成してもよい。即ち、ユーザがウェイポイントWPを指定することに限らず、行動タスクの内容に従ってウェイポイントWPが指定されるようにしてもよい。なお、ウェイポイントWPの位置は、例えば、ドローン1が事前飛行を行う際にGPSに従って取得される位置情報または領域情報に基づいて特定することができる。
【0017】
<ミッション飛行制御装置の第1の構成例>
図2は、本技術を適用したミッション飛行制御装置の第1の実施の形態の構成例を示すブロック図である。
【0018】
図2に示すように、ミッション飛行制御装置11は、パーソナルコンピュータ12、行動計画作成部13、画像センサ14、慣性計測装置15、Visionベース自己位置推定部16、GPSベース自己位置推定部17、フライト制御部18、および、駆動部19を備えて構成される。また、フライト制御部18は、EKF(Extended Kalman Filter)処理部21、ナビゲータ22、および、駆動制御部23を備えて構成される。
【0019】
例えば、
図1のドローン1に、画像センサ14、慣性計測装置15、Visionベース自己位置推定部16、GPSベース自己位置推定部17、フライト制御部18、および、駆動部19が内蔵されるように、ミッション飛行制御装置11を構成することができる。
【0020】
パーソナルコンピュータ12は、例えば、後述する
図4に示すようなミッション飛行設定画面41を表示する表示部、および、マウスやキーボードなどの操作部を有しており、ユーザが、ウェイポイントWPを指定するのに用いられる。そして、パーソナルコンピュータ12は、ユーザにより指定されたウェイポイントWPを、行動計画作成部13に供給するとともに、フライト制御部18のEKF処理部21に供給する。
【0021】
行動計画作成部13は、パーソナルコンピュータ12から供給されるウェイポイントWPを通過するようにドローン1を飛行させるための行動計画(Path plan)を作成して、フライト制御部18のナビゲータ22に供給する。
【0022】
画像センサ14は、例えば、CCD(Charge Coupled Device)やCMOS(Complementary Metal-Oxide-Semiconductor)イメージセンサなどの固体撮像素子を有している。そして、画像センサ14は、ドローン1の周囲を固体撮像素子で撮像することにより得られる画像の画像データ(Image data)を、Visionベース自己位置推定部16に供給する。
【0023】
慣性計測装置15は、例えば、3軸のジャイロセンサなどから構成されるIMU(Inertial Measurement Unit)である。そして、慣性計測装置15は、ドローン1の飛行に伴って計測される加速度および角速度を、慣性計測データ(IMU data)としてVisionベース自己位置推定部16に供給するとともに、フライト制御部18のEKF処理部21に供給する。
【0024】
Visionベース自己位置推定部16は、画像センサ14から供給される画像データ、および、慣性計測装置15から供給される慣性計測データを用いて、ドローン1の位置を推定する自己位置推定(Visual Inertial Odometry)を行う。例えば、Visionベース自己位置推定部16には、SLAM(Simultaneous Localization and Mapping)を利用することができる。そして、Visionベース自己位置推定部16は、画像データに基づいて自己位置推定を行った結果として得られる姿勢および速度(Pose/Velocity)を、Visionベースの観測情報としてフライト制御部18のEKF処理部21に供給する。
【0025】
GPSベース自己位置推定部17は、例えば、GPSを利用して、ドローン1の位置を推定する自己位置推定を行う。そして、GPSベース自己位置推定部17は、GPSに基づいて自己位置推定を行った結果として得られるNED(North-East-Down)座標上での姿勢(Pose in NED)を、GPSベースの観測情報としてフライト制御部18のEKF処理部21に供給する。
【0026】
フライト制御部18は、行動計画作成部13から供給される行動計画に従ってドローン1が飛行するように駆動部19を制御し、ドローン1の飛行制御を実行する。
【0027】
駆動部19は、例えば、複数のロータを駆動するモータにより構成され、それらのロータにより発生する推力により、ドローン1を飛行させる。
【0028】
EKF処理部21は、慣性計測装置15から供給される慣性計測データ、Visionベース自己位置推定部16から供給されるVisionベースの観測情報、および、GPSベース自己位置推定部17から供給されるGPSベースの観測情報に基づいて、ドローン1の状態(位置および姿勢)を求めるEKF処理を行う。そして、EKF処理部21は、EKF処理を行った結果得られるEKF処理結果として、ドローン1の状態を示す状態情報を、ナビゲータ22および駆動制御部23に供給する。なお、EKF処理部21の詳細な構成については、
図2を参照して後述する。
【0029】
ナビゲータ22は、行動計画作成部13から供給される行動計画に従ってドローン1が飛行するように、EKF処理部21から供給される状態情報に基づいて、駆動制御部23に対し、現在のドローン1の状態から経路に沿った飛行に必要な指示を行う。
【0030】
駆動制御部23は、EKF処理部21から供給される状態情報に基づいて、ナビゲータ22からの指示に従ってドローン1を飛行させるために、駆動部19に対する駆動制御(例えば、位置制御(Position Control)および姿勢制御(Attitude Control))を行う。
【0031】
以上のようにミッション飛行制御装置11は構成されており、例えば、ユーザは、パーソナルコンピュータ12を用いてウェイポイントWPを指定する際に、ウェイポイントWPごとに自己位置推定システムを指定することができる。即ち、ミッション飛行制御装置11では、ウェイポイントWPごとの自己位置推定システムとして、Visionベース自己位置推定部16またはGPSベース自己位置推定部17が指定され、いずれか一方の観測情報を用いた飛行制御が行われる。なお、ミッション飛行制御装置11では、ウェイポイントWPごとに、Visionベース自己位置推定部16およびGPSベース自己位置推定部17の両方の観測情報を組み合わせて、例えば、複数の観測情報を選択的に用いて飛行制御を行ってもよい。
【0032】
従って、EKF処理部21は、最近傍のウェイポイントWPにおける自己位置推定システムとしてVisionベース自己位置推定部16が指定されている場合には、Visionベースの観測情報を選択してEKF処理を行う。一方、EKF処理部21は、最近傍のウェイポイントWPにおける自己位置推定システムとしてGPSベース自己位置推定部17が指定されている場合には、GPSベースの観測情報を選択してEKF処理を行う。
【0033】
図3は、EKF処理部21の構成例を示すブロック図である。
【0034】
図3に示すように、EKF処理部21は、EKF状態予測部31、最近傍ウェイポイント選択部32、観測情報選択部33、およびEKF状態更新部34を備えて構成される。
【0035】
EKF状態予測部31には、EKF処理部21から周期的に出力される、最新のドローン1の状態を示す状態情報がEKF状態更新部34から供給される。そして、EKF状態予測部31は、その最新の状態情報から、
図2の慣性計測装置15から供給される慣性計測データ(IMU data)に基づいて、次に状態情報を出力するタイミングにおけるドローン1の状態を予測する。そして、EKF状態予測部31は、予測したドローン1の状態を示す予測状態情報を、最近傍ウェイポイント選択部32およびEKF状態更新部34に供給する。例えば、予測状態情報は、EKFの状態変数であり、ドローン1の位置および姿勢や、慣性計測装置15が有するセンサのバイアス値などである。
【0036】
最近傍ウェイポイント選択部32は、パーソナルコンピュータ12から供給された複数のウェイポイントWPの中から、EKF状態予測部31から供給される予測状態情報に基づくドローン1の位置に最も近い最近傍ウェイポイントを選択する。例えば、最近傍ウェイポイント選択部32は、NED座標系でのユークリッド距離が最短になるウェイポイントWPを、最近傍ウェイポイントとして選択する。そして、最近傍ウェイポイント選択部32は、最近傍ウェイポイントについて、Visionベース自己位置推定部16およびGPSベース自己位置推定部17のうち、どちらが自己位置推定システムとして指定されているかを示す指定情報を、観測情報選択部33に供給する。
【0037】
観測情報選択部33は、最近傍ウェイポイント選択部32から供給される指定情報に従って、Visionベース自己位置推定部16から供給されるVisionベースの観測情報(Pose/Velocity)、および、GPSベース自己位置推定部17から供給されるGPSベースの観測情報(Pose in NED)のうち、いずれか一方を選択する。例えば、観測情報選択部33は、最近傍ウェイポイントにおける自己位置推定システムとしてVisionベース自己位置推定部16が指定されている場合、Visionベースの観測情報を選択して、EKF状態更新部34に供給する。一方、観測情報選択部33は、最近傍ウェイポイントにおける自己位置推定システムとしてGPSベース自己位置推定部17が指定されている場合、GPSベースの観測情報を選択して、EKF状態更新部34に供給する。
【0038】
EKF状態更新部34は、観測情報選択部33が選択した観測情報に基づいて、EKF状態予測部31から供給される予測状態情報を更新し、最新の観測情報に基づいたドローン1の状態を求める。例えば、EKF状態更新部34は、観測情報に示される推定された位置に従って、EKF状態予測部31により予測されたドローン1の状態が、より正確なものとなるように更新する。そして、EKF状態更新部34は、ドローン1の状態を示す状態情報を、EKF処理部21におけるEKF処理結果として出力するとともに、EKF状態予測部31に供給する。
【0039】
以上のように、EKF処理部21は、最近傍ウェイポイントにおける自己位置推定システムを選択することができ、ウェイポイントWPごとの状況に応じた推定精度で、ドローン1の状態を求めることができる。
【0040】
従って、ミッション飛行制御装置11では、ウェイポイントWPごとに自己位置を推定する際の推定精度を変えながら、状況に応じた適切な飛行制御によってドローン1のミッション飛行を行うことができる。
【0041】
また、本実施の形態のように、最近傍ウェイポイントについて、いずれかの自己位置推定システムが指定される構成の他、例えば、ウェイポイントWPに替えて、地図上の位置に応じていずれかの自己位置推定システムが指定される構成を採用してもよい。また、地図上の領域に応じていずれかの自己位置推定システムが指定される構成であってもよい。
【0042】
なお、本実施の形態では、自己位置推定システムとしてVisionベース自己位置推定部16およびGPSベース自己位置推定部17を利用しているが、この2つを利用する構成に限定されることはない。例えば、ミッション飛行制御装置11は、高度センサや地磁気センサ、その他自己位置推定システム(UWB(Ultra Wide Band),wifi SLAM,OptiTrack、近距離無線通信ベースなど)を利用し、それらを切り替えて使用するような構成としてもよい。
【0043】
図4は、ミッション飛行設定画面の一例を示す図である。
【0044】
例えば、ミッション飛行設定画面41は、パーソナルコンピュータ12のGUI(Graphical User Interface)を利用して、ミッション飛行を行うのに必要な各種の指示を入力するのに用いられる。図示するように、ミッション飛行設定画面41は、マップ表示領域42および指示GUI表示領域43からなる。
【0045】
マップ表示領域42には、例えば、ドローン1を飛行させる領域の地図が表示される。そして、マップ表示領域42に表示されている地図を利用してユーザがウェイポイントWP1乃至WP6を指示すると、その地図に重畳するようにウェイポイントWP1乃至WP6が表示される。
【0046】
このとき、ウェイポイントWP1乃至WP6は、それぞれに対して指定されている自己位置推定システムを視覚化するように表示される。即ち、
図4に示す例では、ウェイポイントWP1乃至WP3およびWP6が実線で表されており、自己位置推定システムとしてVisionベース自己位置推定部16が指定されていることが視覚化されている。また、ウェイポイントWP4およびWP5が破線で表されており、自己位置推定システムとしてGPSベース自己位置推定部17が指定されていることが視覚化されている。
【0047】
また、マップ表示領域42では、ウェイポイントWP1乃至WP6を順番に接続する経路についても、それぞれの経路をドローン1が飛行する際に用いられる自己位置推定システムを視覚化するような表示が行われる。
【0048】
例えば、
図4に示す例では、自己位置推定システムとしてVisionベース自己位置推定部16が指定されているウェイポイントWP1乃至WP3を接続する経路は実線で表されており、その経路をドローン1が飛行する際にVisionベース自己位置推定部16が用いられることが視覚化されている。同様に、自己位置推定システムとしてGPSベース自己位置推定部17が指定されているウェイポイントWP4およびWP5を接続する経路は破線で表されており、その経路をドローン1が飛行する際にGPSベース自己位置推定部17が用いられることが視覚化されている。
【0049】
さらに、ウェイポイントWP3およびWP4を接続する経路では、その経路をドローン1が飛行する際にVisionベース自己位置推定部16からGPSベース自己位置推定部17に切り替えられて用いられることが、実線から破線へ変化することで視覚化されている。同様に、ウェイポイントWP5およびWP6を接続する経路では、その経路をドローン1が飛行する際にGPSベース自己位置推定部17からVisionベース自己位置推定部16に切り替えられて用いられることが、破線から実線へ変化することで視覚化されている。
【0050】
指示GUI表示領域43には、例えば、
図5を参照して後述するように、ウェイポイントWPごとの自己位置推定システムを指示するのに利用されるGUIが表示される。
【0051】
図5を参照して、ウェイポイントWPに対して指定される自己位置推定システムの切り替えについて説明する。
図5には、ウェイポイントWP4に対して指定される自己位置推定システムを、GPSベース自己位置推定部17からVisionベース自己位置推定部16に切り替える例が示されている。
【0052】
図5の上側に示すように、マップ表示領域42において、自己位置推定システムの切り替えの対象となるウェイポイントWP4を指定すると、指示GUI表示領域43に、自己位置推定システムを指定するためのチェックボックスが表示される。即ち、GPSベース自己位置推定部17を指定するためのチェックボックスと、Visionベース自己位置推定部16を指定するためのチェックボックスとが表示される。
【0053】
このとき、GPSベース自己位置推定部17を指定するためのチェックボックスにチェックマークが表示されており、ウェイポイントWP4に対してGPSベース自己位置推定部17が指定されていることが視覚化されている。
【0054】
そして、ユーザが、Visionベース自己位置推定部16を指定するためのチェックボックスに対する操作を行うと、
図5の下側に示すように、Visionベース自己位置推定部16を指定するためのチェックボックスにチェックマークが表示される。これにより、マップ表示領域42において、ウェイポイントWP4の表示が破線から実線となるように変化する。さらに、ウェイポイントWP3およびWP4を接続する経路は実線で表され、ウェイポイントWP4およびWP5を接続する経路は破線から実線へ変化するように表される。
【0055】
例えば、GPSベース自己位置推定部17の推定精度でドローン1を飛行させていた個所において、より高精度にドローン1を飛行させたい場合に、Visionベース自己位置推定部16に設定を切り替える操作が行われる。このように、ユーザは、ウェイポイントWPを通過する際に要求される推定精度に基づいて、自己位置推定システムを指定することができる。
【0056】
<ミッション飛行制御処理>
図6に示すフローチャートを参照して、ミッション飛行制御装置11において実行されるミッション飛行制御処理について説明する。なお、ミッション飛行を行うのに必要な情報、例えば、ドローン1を飛行させる領域の地図や地形などの情報は、事前に低精度で飛行することによって取得されているものとする。
【0057】
ステップS11において、ユーザは、パーソナルコンピュータ12を利用し、
図4に示したミッション飛行設定画面41のマップ表示領域42に表示されている地図上にウェイポイントWPを指定する。これに応じて、パーソナルコンピュータ12は、ユーザにより指定されたウェイポイントWPを、行動計画作成部13に供給する。
【0058】
ステップS12において、ユーザは、パーソナルコンピュータ12を利用し、ステップS11で指定したウェイポイントWPごとの自己位置推定システムとして、Visionベース自己位置推定部16またはGPSベース自己位置推定部17を指定する。これに応じて、パーソナルコンピュータ12は、ユーザにより指定されたウェイポイントWPごとの自己位置推定システムを、フライト制御部18のEKF処理部21に供給する。
【0059】
ステップS13において、行動計画作成部13は、ステップS11で指定されたウェイポイントWPを通過するようなドローン1の行動計画を作成し、フライト制御部18のナビゲータ22に供給する。
【0060】
ステップS14において、ユーザがドローン1に対する飛行開始を指示すると、その指示に応じてフライト制御部18が飛行制御を行う。これにより、ドローン1は、例えば、
図1に示したスタート位置であるウェイポイントWP1に向かって飛行し、ステップS13で作成された行動計画に従った飛行を開始する。
【0061】
ステップS15において、Visionベース自己位置推定部16は、画像センサ14から供給される画像データ、および、慣性計測装置15から供給される慣性計測データに基づいてドローン1の位置を推定し、Visionベースの観測情報を取得する。また、GPSベース自己位置推定部17は、GPSを利用してドローン1の位置を推定し、GPSベースの観測情報を取得する。
【0062】
ステップS16において、EKF処理部21は、慣性計測装置15から供給される慣性計測データ、Visionベース自己位置推定部16から供給されるVisionベースの観測情報、および、GPSベース自己位置推定部17から供給されるGPSベースの観測情報に基づいて、ドローン1の状態を求めるEKF処理を行う。なお、EKF処理については、
図7を参照して後述する。
【0063】
ステップS17において、フライト制御部18は、ドローン1を経路に沿って飛行させる飛行制御を行う。即ち、ナビゲータ22は、ステップS13で行動計画作成部13により作成された行動計画に従ってドローン1が飛行するように、EKF処理部21から供給される状態情報に基づいて、駆動制御部23に対する指示を行う。そして、駆動制御部23は、EKF処理部21から供給される状態情報に基づいて、ナビゲータ22からの指示に従ってドローン1を飛行させるように、駆動部19に対する駆動制御を行う。
【0064】
ステップS18において、ナビゲータ22は、例えば、
図1に示したゴール位置であるウェイポイントWP6までドローン1が飛行したか否かを判定する。
【0065】
ステップS18において、ナビゲータ22が、ゴール位置までドローン1が飛行していないと判定した場合、処理はステップS15に戻り、以下、同様の処理が繰り返して行われる。一方、ステップS18において、ナビゲータ22が、ゴール位置までドローン1が飛行したと判定した場合、処理はステップS19に進む。
【0066】
ステップS19において、フライト制御部18は、ドローン1が飛行の終了に伴う所定動作、例えば、ホバリングなどを行うように飛行制御を行い、その後、ミッション飛行制御処理は終了される。
【0067】
図7は、
図6のステップS16で行われるEKF処理を説明するフローチャートである。
【0068】
ステップS21において、EKF状態予測部31は、
図2の慣性計測装置15から供給される慣性計測データに基づいて、ドローン1の状態(位置および姿勢)を予測する。
【0069】
ステップS22において、最近傍ウェイポイント選択部32は、ステップS21でEKF状態予測部31により予測されたドローン1の位置に最も近い最近傍ウェイポイントを選択する。そして、最近傍ウェイポイント選択部32は、最近傍ウェイポイントに対して指定されている自己位置推定システムを示す指定情報を、観測情報選択部33に供給する。
【0070】
ステップS23において、観測情報選択部33は、ステップS22で最近傍ウェイポイント選択部32から供給された指定情報に従って、観測情報を選択してEKF状態更新部34に供給する。例えば、観測情報選択部33は、最近傍ウェイポイントに対する自己位置推定システムとして、Visionベース自己位置推定部16が指定されている場合にはVisionベースの観測情報を選択し、GPSベース自己位置推定部17が指定されている場合にはGPSベースの観測情報を選択する。
【0071】
ステップS24において、EKF状態更新部34は、ステップS23で観測情報選択部33から供給される観測情報に基づいて、ステップS21でEKF状態予測部31により予測されたドローン1の状態を更新する。そして、ドローン1の状態を示す状態情報を出力した後、EKF処理は終了される。
【0072】
以上のようなミッション飛行制御処理およびEKF処理によって、ミッション飛行制御装置11は、ウェイポイントWPごとに自己位置推定システムを選択して、それぞれの推定精度で、ドローン1の適切な飛行制御を実現することができる。
【0073】
<自己位置推定システムの指定に必要な情報の視覚化>
図8乃至
図11を参照して、自己位置推定システムの指定に必要な情報の視覚化について説明する。
【0074】
図8には、高度および速度の有効範囲を視覚化したユーザインタフェースの一例が示されている。
【0075】
例えば、
図8に示すように、ウェイポイントWP3における自己位置推定システムとしてVisionベース自己位置推定部16を指定したとき、高度および速度の有効範囲が視覚化して提示される。即ち、Visionベース自己位置推定部16を利用する場合、所定の精度以上で自己位置を推定することが可能な高度および速度が決められており、
図8に示す例では、その高度および速度以上となる範囲がグレーアウトとなっている。
【0076】
これにより、ユーザは、高度および速度の有効範囲を参考にして、自己位置推定システムとしてVisionベース自己位置推定部16を指定するかどうかを判断することができる。
【0077】
図9には、推定精度を視覚化したユーザインタフェースの一例が示されている。
【0078】
例えば、
図9示すように、自己位置を推定する精度に基づく誤差範囲を表す誤差楕円が、一点鎖線の円形で提示される。即ち、Visionベース自己位置推定部16は高精度で自己位置を推定することができ、Visionベース自己位置推定部16を利用する経路には、誤差範囲が小さなことを表す小さな円形が一定間隔で表示される。一方、GPSベース自己位置推定部17は低精度で自己位置を推定することになり、GPSベース自己位置推定部17を利用する経路には、誤差範囲が大きいことを表す大きな円形が一定間隔で表示される。
【0079】
例えば、誤差範囲を表す円形は、Visionベース自己位置推定部16およびGPSベース自己位置推定部17が利用するセンサのスペックから定数で指定したり、ユーザが指定したりすることができる。
【0080】
これにより、ユーザは、ドローン1が利用する自己位置推定システムの推定精度を、地図上で経路に沿って容易に把握することができ、例えば、障害物とのマージンを確認することができる。
【0081】
図10および
図11を参照して、選択不可となる自己位置推定システムの視覚化について説明する。
【0082】
例えば、
図10に示すように、自己位置推定システムごとに、ドローン1の高度および速度についての有効範囲が求められる。
【0083】
即ち、
図10のAに示すように、ドローン1において下向きのステレオカメラを用いたSLAMを利用するVisionベース自己位置推定部16では、
図10のBに示すように、SLAMのビジョンが有効な範囲として求められる。つまり、ステレオ視差有効限界以下となり、かつ、フレーム(時刻)間共通視野限界およびステレオ共通視野限界以上となる高度および速度が、SLAMのビジョンが有効な範囲となる。そして、ステレオ視差有効限界より高い高度、および、フレーム(時刻)間共通視野限界より低い高度では、慣性計測装置15のみが用いられる。さらに、ステレオ共通視野限界より低い高度では、慣性計測装置15および近接測距センサが用いられる。
【0084】
例えば、ドローン1が速度X[m/s2]で飛行する場合、フレーム(時刻)間共通視野限界であるH1からステレオ視差有効限界である高度H2までが、Visionベース自己位置推定部16を利用できる高度の有効範囲として求められる。
【0085】
従って、ミッション飛行制御装置11では、ウェイポイントWPにおける高度および速度が指定されるのに基づいて、Visionベース自己位置推定部16の有効範囲内であるか否かを判定することができる。そして、例えば、指定された高度および速度が、Visionベース自己位置推定部16の有効範囲内ではないと判定された場合、即ち、Visionベース自己位置推定部16の有効範囲外である場合、Visionベース自己位置推定部16の選択が自動的に不可となる。
【0086】
従って、
図11に示すように、指定された高度および速度が、Visionベース自己位置推定部16の有効範囲外である場合、指示GUI表示領域43において、Visionベース自己位置推定部16を選択するためのチェックボックスがグレーアウトとなる。即ち、Visionベース自己位置推定部16が選択不可であることが視覚化されている。
【0087】
これにより、ユーザは、高度および速度に基づいて選択することができる自己位置推定システムを認識することができ、状況に応じた自己位置推定システムの選択を容易に行うことができる。
【0088】
<指標に基づく自動設定処理>
図12乃至
図14を参照して、優先事項に基づいて、ウェイポイントWPごとに自己位置推定システムや高度などを自動的に設定する自動設定処理について説明する。
【0089】
図12は、高精度優先でウェイポイントWPを自動的に選択するウェイポイント設定処理を説明するフローチャートである。例えば、
図12に示すウェイポイント設定処理は、
図6のステップS12に替えて実行することができる。
【0090】
例えば、
図6のステップS11の処理後、ステップS31において、ユーザは、パーソナルコンピュータ12を利用し、ステップS11で指定したウェイポイントWPごとに、高度および速度を指定する。
【0091】
ステップS32において、ユーザは、パーソナルコンピュータ12を利用し、ウェイポイントWPごとの自己位置推定システムを精度優先で、自動的に設定する処理を開始することを指示する。
【0092】
ステップS33において、例えば、パーソナルコンピュータ12は、スタート位置であるウェイポイントWPから順に自己位置推定システムを設定する対象とし、その対象のウェイポイントWPについて、最も高精度の自己位置推定システムを仮設定する。
【0093】
ステップS34において、パーソナルコンピュータ12は、ステップS31で指定された高度および速度が、現時点で仮設定されている自己位置推定システムを用いることができる有効範囲内であるか否かを判定する。
【0094】
ステップS34において、パーソナルコンピュータ12が、高度および速度が有効範囲内でないと判定した場合、即ち、高度および速度が有効範囲外である場合、処理はステップS35に進む。
【0095】
ステップS35において、パーソナルコンピュータ12は、現時点で仮設定されている自己位置推定システムの次に高精度の自己位置推定システムを仮設定する。その後、処理はステップS34に戻り、以下、同様の処理が繰り返して行われる。
【0096】
一方、ステップS34において、高度および速度が有効範囲内であると判定した場合、処理はステップS36に進む。
【0097】
ステップS36において、パーソナルコンピュータ12は、現時点で仮設定されている自己位置推定システムを、対象のウェイポイントWPに対して設定する。
【0098】
ステップS37において、パーソナルコンピュータ12は、
図6のステップS11でユーザにより指定された全てのウェイポイントWPについて自己位置推定システムを設定したか否かを判定する。
【0099】
ステップS37において、パーソナルコンピュータ12が、全てのウェイポイントWPについて自己位置推定システムを設定していないと判定した場合、次のウェイポイントWPを対象として、処理はステップS33に戻る。そして、以下、同様の処理が繰り返して行われる。
【0100】
一方、ステップS37において、パーソナルコンピュータ12が、全てのウェイポイントWPについて自己位置推定システムを設定したと判定した場合、ウェイポイント設定処理は終了し、
図6のステップS13に進む。
【0101】
以上のようなウェイポイント設定処理によって、ミッション飛行制御装置11は、ウェイポイントWPごとに高精度優先で自己位置推定システムを自動的に設定して、より高精度で飛行するように、ドローン1の適切な飛行制御を実現することができる。
【0102】
図13は、速度優先でウェイポイントWPを自動的に選択するウェイポイント設定処理を説明するフローチャートである。例えば、
図13に示すウェイポイント設定処理は、
図6のステップS12に替えて実行することができる。
【0103】
例えば、
図6のステップS11の処理後、ステップS41において、ユーザは、パーソナルコンピュータ12を利用し、ステップS11で指定したウェイポイントWPごとに、高度および速度を指定する。
【0104】
ステップS42において、ユーザは、パーソナルコンピュータ12を利用し、ウェイポイントWPごとの自己位置推定システムを速度優先で、自動的に設定する処理を開始することを指示する。
【0105】
ステップS43において、例えば、パーソナルコンピュータ12は、スタート位置であるウェイポイントWPから順に自己位置推定システムを設定する対象とし、その対象のウェイポイントWPについて、最も高速度の自己位置推定システムを仮設定する。
【0106】
ステップS44において、パーソナルコンピュータ12は、ステップS41で指定された高度および速度が、現時点で仮設定されている自己位置推定システムを用いることができる有効範囲内であるか否かを判定する。
【0107】
ステップS44において、パーソナルコンピュータ12が、高度および速度が有効範囲内でないと判定した場合、即ち、高度および速度が有効範囲外である場合、処理はステップS45に進む。
【0108】
ステップS45において、パーソナルコンピュータ12は、現時点で仮設定されている自己位置推定システムの次に高速度の自己位置推定システムを仮設定する。その後、処理はステップS44に戻り、以下、同様の処理が繰り返して行われる。
【0109】
一方、ステップS44において、高度および速度が有効範囲内であると判定した場合、処理はステップS46に進む。
【0110】
ステップS46において、パーソナルコンピュータ12は、現時点で仮設定されている自己位置推定システムを、対象のウェイポイントWPに対して設定する。
【0111】
ステップS47において、パーソナルコンピュータ12は、
図6のステップS11でユーザにより指定された全てのウェイポイントWPについて自己位置推定システムを設定したか否かを判定する。
【0112】
ステップS47において、パーソナルコンピュータ12が、全てのウェイポイントWPについて自己位置推定システムを設定していないと判定した場合、次のウェイポイントWPを対象として、処理はステップS43に戻る。そして、以下、同様の処理が繰り返して行われる。
【0113】
一方、ステップS47において、パーソナルコンピュータ12が、全てのウェイポイントWPについて自己位置推定システムを設定したと判定した場合、ウェイポイント設定処理は終了し、
図6のステップS13に進む。
【0114】
以上のようなウェイポイント設定処理によって、ミッション飛行制御装置11は、ウェイポイントWPごとに速度優先で自己位置推定システムを自動的に設定して、より高速度で飛行するように、ドローン1の適切な飛行制御を実現することができる。
【0115】
図14は、速度および自己位置推定システムの指定に応じて、ウェイポイントWPごとの高度を自動的に選択するウェイポイント設定処理を説明するフローチャートである。例えば、
図12に示すウェイポイント設定処理は、
図6のステップS12に替えて実行することができる。
【0116】
例えば、
図6のステップS11の処理後、ステップS51において、ユーザは、パーソナルコンピュータ12を利用し、ステップS11で指定したウェイポイントWPごとに、自己位置推定システムおよび速度を指定する。
【0117】
ステップS52において、ユーザは、パーソナルコンピュータ12を利用し、ウェイポイントWPごとの高度を、自動的に設定する処理を開始することを指示する。
【0118】
ステップS53において、例えば、パーソナルコンピュータ12は、スタート位置であるウェイポイントWPから順に自己位置推定システムを設定する対象とし、その対象のウェイポイントWPについて、自己位置推定システムが有効な最も低い高度を算出する。
【0119】
ステップS54において、パーソナルコンピュータ12は、ステップS53で算出された高度が、対象のウェイポイントWPに対して設定されている自己位置推定システムを用いたときの有効範囲内であるか否かを判定する。
【0120】
ステップS54において、パーソナルコンピュータ12が、高度が有効範囲内でないと判定した場合、即ち、高度が有効範囲外である場合、処理はステップS55に進む。
【0121】
ステップS55において、対象のウェイポイントWPに対して指定された自己位置推定システムおよび速度が指定不可であることを示すエラー表示を行い、ウェイポイント設定処理は終了される。即ち、この場合、ウェイポイントWPごとの高度を自動的に選択する処理が中止されることになる。
【0122】
一方、ステップS54において、パーソナルコンピュータ12が、高度が有効範囲内であると判定した場合、処理はステップS56に進む。
【0123】
ステップS56において、パーソナルコンピュータ12は、ステップS53で算出された高度を、対象のウェイポイントWPに対して設定する。
【0124】
ステップS57において、パーソナルコンピュータ12は、
図6のステップS11でユーザにより指定された全てのウェイポイントWPについて高度を設定したか否かを判定する。
【0125】
ステップS57において、パーソナルコンピュータ12が、全てのウェイポイントWPについて高度を設定していないと判定した場合、次のウェイポイントWPを対象として、処理はステップS53に戻り、以下、同様の処理が繰り返して行われる。
【0126】
一方、ステップS57において、パーソナルコンピュータ12が、全てのウェイポイントWPについて高度を設定したと判定した場合、ウェイポイント設定処理は終了し、
図6のステップS13に進む。
【0127】
以上のようなウェイポイント設定処理によって、ミッション飛行制御装置11は、ウェイポイントWPごとに高度を自動的に設定して、より低い高度で飛行するように、ドローン1の適切な飛行制御を実現することができる。
【0128】
<ビジョンだけのときの地図上の位置表示方法>
図15を参照して、ビジョンだけのときの地図上の位置表示方法について説明する。
【0129】
例えば、
図4のマップ表示領域42に表示される地図上に、ドローン1の位置を表示するには、ドローン1の実際の位置と地図上の位置との位置合わせを行う必要がある。この位置合わせを行う方法としては、以下で説明する2つの方法が提案される。
【0130】
第1の方法としては、
図15において外部からデータをパーソナルコンピュータ12に向かう破線の矢印のように、ユーザがパーソナルコンピュータ12にデータを入力する方法が用いられる。即ち、ユーザが、ドローン1が離陸する位置の緯度や経度、方位角を示すデータをパーソナルコンピュータ12に入力することで、それらのデータを地図上で位置合わせすることができる。
【0131】
第2の方法としては、
図15においてGPSベース自己位置推定部17からデータをパーソナルコンピュータ12に向かう破線の矢印のように、GPSベース自己位置推定部17からデータをパーソナルコンピュータ12にデータを入力する方法が用いられる。即ち、ドローン1に搭載されているGPSベース自己位置推定部17から出力されるGPSベースの観測情報をパーソナルコンピュータ12に入力することで、ドローン1が離陸する位置の緯度や経度、方位角を示すデータを、地図上で位置合わせすることができる。
【0132】
<ミッション飛行制御装置の第2の構成例>
図16乃至
図20を参照して、ミッション飛行制御装置の第2の構成例について説明する。
【0133】
例えば、ミッション飛行制御装置11は、障害物の位置に基づいて、障害物を回避するようにミッション飛行をカスタマイズすることができる。
【0134】
まず、
図16の上段に示すように、マップ表示領域42に表示される地図上で、障害物に当たらない範囲でウェイポイントWPが指定される。そして、そのウェイポイントWPに沿った経路でドローン1を飛行させることにより、
図16の中段に示すような視点画像および障害物マップが取得される。
【0135】
視点画像は、例えば、ドローン1に搭載されているカメラにより飛行する方向に向かって撮像された画像である。障害物マップは、例えば、ドローン1に搭載されているビジョンセンサによる測距に基づく障害物を3次元的に表現したマップ(Occupancy map)であり、
図16の中段には、視点画像に対応する障害物マップの一例が示されている。
【0136】
その後、ユーザは、障害物マップを参照して、ウェイポイントWPの位置を微調整するように、例えば、
図16の下段に示すようにウェイポイントWP5を、障害物を回避しつつ、障害物の近傍まで近づけるように、ミッション飛行の経路をカスタマイズすることができる。
【0137】
このとき、例えば、
図17に示すように、ミッション飛行制御装置11は、3次元的に表現されている障害物マップに重畳させて、ウェイポイントWPおよび経路を表示させることができる。このような障害物マップを利用することで、より詳細に、例えば、障害物の高度を参照して、ウェイポイントWPの微調整を行うことができる。または、微調整の対象となっているウェイポイントWPの高度での障害物を、等高線を用いて表現した地図を利用してもよい。
【0138】
図18は、ミッション飛行制御装置の第2の実施の形態の構成例を示すブロック図である。なお、
図18に示すミッション飛行制御装置11Aにおいて、
図2のミッション飛行制御装置11と共通する構成については、同一の符号を付し、その詳細な説明は省略する。
【0139】
即ち、ミッション飛行制御装置11Aは、パーソナルコンピュータ12、行動計画作成部13、画像センサ14、慣性計測装置15、Visionベース自己位置推定部16、GPSベース自己位置推定部17、フライト制御部18、および、駆動部19を備えて構成される点で、
図2のミッション飛行制御装置11と共通する。
【0140】
そして、ミッション飛行制御装置11Aは、障害物マップ作成部20を備える点で、
図2のミッション飛行制御装置11と異なる構成となっている。
【0141】
障害物マップ作成部20には、画像センサ14から画像データ(Image data)が供給されるとともに、Visionベース自己位置推定部16からVisionベースの観測情報(Pose/Velocity)が供給される。そして、障害物マップ作成部20は、画像データおよびVisionベースの観測情報に基づいて、
図16に示したような障害物マップを作成して、パーソナルコンピュータ12に供給する。
【0142】
これにより、ユーザは、
図16および
図17に示したような障害物マップを利用してウェイポイントWPの微調整を行い、障害物を回避するようにミッション飛行をカスタマイズすることができる。
【0143】
図19には、ミッション飛行をカスタマイズする処理を説明するフローチャートが示されている。
【0144】
ステップS61において、ユーザは、パーソナルコンピュータ12を利用し、ミッション飛行設定画面41のマップ表示領域42に表示されている地図上で、ドローン1が障害物に当たらない範囲でウェイポイントWPを指定する。
【0145】
ステップS62において、ユーザがドローン1に対する飛行開始を指示すると、その指示に応じてフライト制御部18が飛行制御を行って、ドローン1は、障害物マップを作成するための障害物マップ作成飛行を開始する。
【0146】
ステップS63において、障害物マップ作成部20は、ドローン1の障害物マップ作成飛行中に、画像センサ14から供給される画像データ、および、Visionベース自己位置推定部16から供給されるVisionベースの観測情報に基づいて測距を行う。そして、障害物マップ作成部20は、ステップS61で指定されたウェイポイントWPに基づく経路において障害物が存在する範囲を表す障害物マップを作成する。
【0147】
ステップS64において、フライト制御部18は、ステップS61で指定されたウェイポイントWPに基づく経路を全て通過して、障害物マップ作成飛行が終了した後、スタート位置でドローン1を待機させる。
【0148】
ステップS65において、パーソナルコンピュータ12は、障害物マップ作成部20により作成された障害物マップを表示部に表示する。このとき、
図16に示したように、マップ表示領域42に表示される地図に障害物ゾーンを重畳させて障害物マップを表示してもよいし、
図17に示したように、ドローン1の視点から見て3次元的に表現されている障害物マップを表示してもよい。
【0149】
ステップS66において、ユーザは、パーソナルコンピュータ12を利用し、障害物マップを参照してウェイポイントWPの位置を微調整する。
【0150】
その後、ユーザがウェイポイントWPの微調整を終了すると、行動計画作成部13がドローン1の行動計画を更新し、以下、
図6のステップS14以降で説明したのと同様の処理が行われ、微調整されたウェイポイントWPに基づく飛行制御が行われる。
【0151】
図20を参照して、障害物の測距精度の視覚化について説明する。
【0152】
図20のAに示すように、マップ表示領域42には、障害物マップを作成する際における測距の測距誤差に従い、障害物ゾーンに対して、測距誤差込みの障害物ゾーンを地図に重畳して表示することができる。
【0153】
さらに、
図20のBに示すように、マップ表示領域42には、上述した
図9と同様に、自己位置推定システムの推定精度に基づく誤差範囲を表す誤差楕円を、測距誤差込みの障害物ゾーンが表示されている地図に重畳して表示することができる。
【0154】
例えば、ステレオカメラを利用した障害物の測距では、測距誤差を算出することが可能である。
【0155】
即ち、測距誤差ΔZc[m]は、測距奥行Zc[m]、最小視差単位Δd[pixel]、ベースライン距離b[m]、およびフォーカス距離f[pixel]を用いて、次の式(1)に従って求めることができる。
【0156】
【0157】
例えば、式(1)に基づき、障害物までの距離を表す測距奥行Zcが大きくなるほど、測距誤差ΔZcは大きくなる。
【0158】
<本技術の適用について>
本技術は、上述したようなドローン1がウェイポイントWPを通過するような飛行制御以外に適用することができる。
【0159】
例えば、ドローン1が、画像センサ、GPSセンサ、下方に向かうToF(Time of Flight)センサを備えて構成されるとき、利用するセンサの切り替えに適用することができる。例えば、ToFセンサは、テクスチャがない場所や、暗い場所などでの計測が可能であり、画像センサより高精度というメリットがある一方で、自発光する近赤外光が届く距離しか計測できず、自発光のため消費電力が高いというデメリットがある。
【0160】
そこで、ドローン1が着陸する着陸モードのときは、下方に向かうToFセンサをオンにして、着陸できそうな平坦な場所を探すために、近辺の形状をToFセンサで計測する。このとき、ToFセンサは、テクスチャが少ない場所でも形状を計測することができるので、画像センサより有効に平坦な場所を探すことができる。
【0161】
これに対し、ドローン1が離陸するときやミッション飛行中には、下方に向かうToFセンサをオフにする。即ち、ToFセンサの特性上、ToFセンサから近距離しか計測できないため、ドローン1は、ToFセンサをオフにすることで消費電力を抑制することができる。
【0162】
また、本技術は、例えば、自動走行を行うロボット掃除機に適用することができる。
【0163】
例えば、ロボット掃除機は、画像センサおよびToFセンサを備えて構成され、給電ポートから掃除開始するものとする。この場合、ロボット掃除機が掃除を実行する掃除モードのとき、ToFセンサをオンにし、ロボット掃除機は、自己位置と近辺の障害物を高精度に探すために、ToFセンサおよび画像センサで計測する。同時に、ロボット掃除機は、給電ポートからの地図を作成する。
【0164】
これに対し、ロボット掃除機の電圧が低下して、給電ポート帰還モードとなったとき、ToFセンサをオフにする。この場合、ロボット掃除機は、給電ポートからの地図を保持しているので、ToFセンサでの追加の障害物検知は不要であり、画像センサだけで自己位置を検出し、給電ポートに帰還することができる。また、ロボット掃除機は、ToFセンサをオフにすることで消費電力を抑制することができる。そして、ロボット掃除機が給電ポートの近傍まで移動した後、給電ポートとの高精度な位置合わせのために、ToFセンサをオンにする。
【0165】
なお、本技術においてタスクに応じて指定されるセンサには、ToFセンサ以外の能動型センサ、例えば、LidarやSonarなどにも、ToFセンサと同様に適用することができる。また、自動走行を行うロボットであれば、ロボット掃除機以外にも、例えば、工場用搬送ロボットなどにも適用することができる。
【0166】
さらに、本技術は、ドローン1の飛行制御の他、例えば、自動運転の車両における運転制御に適用することができる。例えば、自動運転の車両が一般の道路を走行する際は、GPSベース自己位置推定部17を用いる一方で、自動運転の車両が駐車場に駐車する際は、Visionベース自己位置推定部16を用いる構成とすること、または、各種のレーダやToFセンサなどの能動型センサを利用した自己位置推定部を用いる構成とすることができる。
【0167】
<コンピュータの構成例>
次に、上述した一連の処理(情報処理方法)は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0168】
図21は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
【0169】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
【0170】
あるいはまた、プログラムは、ドライブ109によって駆動されるリムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウェアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【0171】
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【0172】
コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
【0173】
CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。
【0174】
これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
【0175】
なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【0176】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
【0177】
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0178】
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0179】
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0180】
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0181】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0182】
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0183】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0184】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【0185】
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求める状態特定部と、
前記移動体の状態に基づいて、予め作成された行動計画に従って前記移動体の行動を制御する行動制御部と
を備える行動制御装置。
(2)
前記指標は、GPS(Global Positioning System)から取得した位置情報または領域情報である
上記(1)に記載の行動制御装置。
(3)
前記状態特定部は、
前記移動体が行動する際の指標のうち、前記移動体の行動に伴って最も近傍となる前記指標を選択する最近傍指標選択部と、
複数の前記自己位置推定部それぞれが前記移動体の位置を推定した結果として出力される複数の観測情報のうちの、前記最近傍指標選択部により選択された前記指標に基づいて指定されている前記自己位置推定部から出力される前記観測情報を選択する観測情報選択部と、
前記観測情報選択部により選択された前記観測情報に基づいて、前記移動体の最新の状態を求める状態更新部と
を有する
上記(1)または(2)に記載の行動制御装置。
(4)
前記状態特定部により選択される前記自己位置推定部を、前記指標ごとに指定する指定部
をさらに備える上記(1)から(3)のいずれかに記載の行動制御装置。
(5)
前記指定部は、所定の前記指標における前記移動体の自己位置を前記自己位置推定部が推定する際に優先させる優先事項に従って、所定の前記指標ごとの前記自己位置推定部を指定する
上記(4)に記載の行動制御装置。
(6)
前記指定部は、前記優先事項が推定精度である場合、前記自己位置推定部が有効に機能することが可能な高度および速度の有効範囲の範囲内で、最も高い推定精度を得られる前記自己位置推定部を指定する
上記(5)に記載の行動制御装置。
(7)
前記指定部は、前記優先事項が移動速度である場合、前記自己位置推定部が有効に機能することが可能な高度および速度の有効範囲の範囲内で、最も高速な移動速度を得られる前記自己位置推定部を指定する
上記(5)に記載の行動制御装置。
(8)
前記指定部は、所定の前記指標における前記自己位置推定部と前記移動体の速度とが指定された場合、その指定された前記自己位置推定部が有効に機能する最も低い高度を、所定の前記指標ごとに指定する
上記(4)に記載の行動制御装置。
(9)
前記指定部では、前記行動計画の作成を指示するユーザによって、複数の前記指標が指定されるとともに、それぞれの前記指標ごとの前記自己位置推定部が指定される
上記(4)に記載の行動制御装置。
(10)
前記指定部により前記指標ごとに指定された前記自己位置推定部を視覚化するとともに、前記指標に従った経路ごとに使用される前記自己位置推定部を視覚化して表示する表示部
をさらに備える上記(9)に記載の行動制御装置。
(11)
前記表示部は、所定の前記自己位置推定部が指定された前記指標に基づいて、その自己位置推定部が有効に機能することが可能な前記移動体の高度および速度の有効範囲を表示し、前記有効範囲外について指定不可であることを視覚化して表示する
上記(10)に記載の行動制御装置。
(12)
前記表示部は、前記経路で使用される前記自己位置推定部の推定精度を、それぞれの経路に沿って視覚化して表示する
上記(10)に記載の行動制御装置。
(13)
前記表示部は、前記移動体の高度および速度が指定されるのに応じて、その高度および速度では有効に機能することができない前記自己位置推定部について指定不可であることを視覚化して表示する
上記(10)に記載の行動制御装置。
(14)
前記行動計画に従って前記移動体が移動しながら行う測距に基づいて、前記経路の近傍において障害物が存在する範囲を表す障害物マップを作成する障害物マップ作成部
をさらに備え、
前記表示部は、前記移動体を移動させる領域を表す地図に重畳させて前記障害物マップを表示し、
前記指定部では、前記地図上における前記指標の位置がユーザにより微調整されて再指定される
上記(10)に記載の行動制御装置。
(15)
前記表示部は、前記障害物マップを作成する際における測距の測距誤差に従って、前記障害物が存在する範囲に対する誤差範囲を前記地図に重畳して表示する
上記(14)に記載の行動制御装置。
(16)
前記表示部は、前記自己位置推定部の推定精度に基づく誤差範囲を表す誤差楕円を、前記地図に重畳して表示する
上記(15)に記載の行動制御装置。
(17)
移動体の行動を制御する行動制御装置が、
前記移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求めることと、
前記移動体の状態に基づいて、予め作成された行動計画に従って前記移動体の行動を制御することと
を含む行動制御方法。
(18)
移動体の行動を制御する行動制御装置のコンピュータに、
前記移動体の位置を推定するのに使用する自己位置推定部を、推定精度の異なる複数の前記自己位置推定部の中から指標に基づいて選択して、前記移動体の状態を求めることと、
前記移動体の状態に基づいて、予め作成された行動計画に従って前記移動体の行動を制御することと
を含む情報処理を実行させるためのプログラム。
【0186】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【符号の説明】
【0187】
11 ミッション飛行制御装置, 12 パーソナルコンピュータ, 13 行動計画作成部, 14 画像センサ, 15 慣性計測装置, 16 Visionベース自己位置推定部, 17 GPSベース自己位置推定部, 18 フライト制御部, 19 駆動部, 20 障害物マップ作成部, 21 EKF処理部, 22 ナビゲータ, 23 駆動制御部, 31 EKF状態予測部, 32 最近傍ウェイポイント選択部, 33 観測情報選択部, 34 EKF状態更新部, 41 ミッション飛行設定画面, 42 マップ表示領域, 43 指示GUI表示領域