本出願に係る複数の実施形態を、図面を参照しつつ詳細に説明する。以下の説明において、同様の構成要素について同一の符号を付すことがある。さらに、重複する説明は省略することがある。また、本出願に係る実施形態を説明する上で密接に関連しない事項は、説明及び図示を省略することがある。
図1は、実施形態に係る飛行装置の外観構成の一例を示す図である。図1は、実施形態に係る飛行装置100の平面図V1及び正面図V2を含む。以下の説明において、飛行装置100は、モータその他の動力機構により駆動する回転翼が生み出す揚力及び推進力により飛行する。
図1に示すように、飛行装置100は、本体110と、連結フレーム130と、回転翼150a〜150dと、脚部170a,170bと、カメラ190とを備える。飛行装置100は、複数の連結フレーム130が、本体110及び回転翼150a〜150dとの間を相互に連結して構成される。本体110は端末装着ユニット111を有する。飛行装置100は、飛行中ではないとき、脚部170a,170bを接地させた状態で待機する。
図1に示す飛行装置100の外観構成は一例であって、本体110、連結フレーム130、回転翼150a〜150d、及び脚部170a,170bにより形作られる外観、及び連結フレーム及び回転翼などの構成部品の数など、必ずしも図1に示す例に限定される必要はない。
図2は、実施形態に係る飛行装置に対する携帯端末の装着方法の一例を示す図である。図2に示すように、携帯端末1は、例えば、携帯端末1の正面が、飛行装置100の平面側(z軸プラス方向)を向くように、端末装着ユニット111に着脱可能に装着される。携帯端末1が端末装着ユニット111に装着されたとき、携帯端末1の筐体(以下、「ハウジング」と表記する)の一部(以下に説明するサイドフェイス1Cの一部)は、端末装着ユニット111が有する突起部111a,111bと隙間なく接触する。突起部111a,111bは、適度な弾性を有する弾性材料で構成されてよい。
図2に示すように、携帯端末1を飛行装置100に装着したものが飛行体100Fである。飛行体100Fは、携帯端末1と、携帯端末1が着脱可能に接続される飛行装置100とを含む。携帯端末1が飛行装置100に着脱可能に接続されるとは、例えば、携帯端末1が飛行装置100に着脱可能に装着されることを含む。携帯端末1が飛行装置100に着脱可能に接続されるとは、例えば、携帯端末1が飛行装置100とともに飛行可能な状態になったことを含む。携帯端末1が飛行装置100に着脱可能に接続されるとは、例えば、携帯端末1が飛行装置100に装着されて飛行装置100の飛行動力を制御可能となったことを含む。以下の説明において、携帯端末1が装着されていない飛行装置100を飛行体100Fと呼ぶこともある。
携帯端末1の正面は、携帯端末1を利用するユーザと対面する、あるいはユーザに接する面であり、以下の説明おいて「正面」又は「表示面」と記載する場合がある。以下の説明において、「正面」とは逆側の面を「背面」と記載する場合がある。携帯端末1は、「携帯電子機器」の一例である。
図3から図5は、実施形態に係る携帯端末の外観構成の一例を示す図である。図3から図5に示すように、携帯端末1は、ハウジング1Hを有する。ハウジング1Hの表面をなす面には、フロントフェイス1Aと、フロントフェイス1Aの背面に相当するバックフェイス1Bと、フロントフェイス1Aとバックフェイス1Bとを接続するサイドフェイス1C1〜1C4とが含まれる。なお、以下では、サイドフェイス1C1〜1C4を、どの面であるかを特定することなく、サイドフェイス1Cと総称することがある。
携帯端末1は、タッチスクリーン2Bと、ボタン3A〜3Cと、照度センサ4と、近接センサ5と、レシーバ7と、マイク8と、カメラ12とをフロントフェイス1Aに有する。携帯端末1は、スピーカ11と、カメラ13とをバックフェイス1Bに有する。携帯端末1は、ボタン3D〜3Fと、コネクタ14とをサイドフェイス1Cに有する。以下の説明において、ボタン3A〜3Fを、どのボタンであるかを特定することなく、ボタン3と総称することがある。
携帯端末1は、サイドフェイス1C3及びサイドフェイス1C4に沿って配置された圧力センサ19を有する。圧力センサ19は、サイドフェイス1C3及びサイドフェイス1C4に対する圧力を検知できる。圧力センサ19は、例えば、携帯端末1が飛行装置100の端末装着ユニット111に装着されたときに、突起部111a,111bがサイドフェイス1C3及びサイドフェイス1C4に対して及ぼす圧力を感知できる。
図6は、実施形態に係る携帯端末の機能構成の一例を示す図である。図6に示すように、携帯端末1は、タッチスクリーンディスプレイ2と、ボタン3と、照度センサ4と、近接センサ5と、通信ユニット6と、レシーバ7と、マイク8と、ストレージ9と、コントローラ10と、スピーカ11と、カメラ(インカメラ)12と、カメラ(アウトカメラ)13と、コネクタ14と、加速度センサ15と、方位センサ16と、角速度センサ17と、気圧センサ18と、圧力センサ19と、GPS受信機20と、バッテリー21と、充電部22と、プロジェクタ23とを含む。
タッチスクリーンディスプレイ2は、ディスプレイ2Aと、タッチスクリーン2Bとを有する。ディスプレイ2A及びタッチスクリーン2Bは、例えば、重なって位置してよいし、並んで位置してよいし、離れて位置してよい。ディスプレイ2Aとタッチスクリーン2Bとが重なって位置する場合、例えば、ディスプレイ2Aの1ないし複数の辺は、タッチスクリーン2Bのいずれの辺とも沿っていなくてもよい。
ディスプレイ2Aは、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機ELディスプレイ(OELD:Organic Electro−Luminescence Display)、又は無機ELディスプレイ(IELD:Inorganic Electro−Luminescence Display)等の表示デバイスを含む。ディスプレイ2Aは、文字、画像、記号、及び図形等のオブジェクトを画面内に表示する。ディスプレイ2Aが表示するオブジェクトを含む画面は、ロック画面と呼ばれる画面、ホーム画面と呼ばれる画面、アプリケーションの実行中に表示されるアプリケーション画面を含む。ホーム画面は、デスクトップ、待受画面、アイドル画面、標準画面、アプリ一覧画面又はランチャー画面と呼ばれることもある。
タッチスクリーン2Bは、タッチスクリーン2Bに対する指、ペン、又はスタイラスペン等の接触又は近接を検出する。タッチスクリーン2Bは、複数の指、ペン、又はスタイラスペン等がタッチスクリーン2Bに接触又は近接したときのタッチスクリーン2B上の位置を検出することができる。以下の説明において、タッチスクリーン2Bが検出する複数の指、ペン、及びスタイラスペン等がタッチスクリーン2Bに接触又は近接した位置を「検出位置」と表記する。タッチスクリーン2Bは、タッチスクリーン2Bに対する指の接触又は近接を、検出位置とともにコントローラ10に通知する。タッチスクリーン2Bは、検出位置の通知をもって接触又は近接の検出をコントローラ10に通知してよい。タッチスクリーン2Bが行える動作を、タッチスクリーン2Bを有するタッチスクリーンディスプレイ2は実行できる。言い換えると、タッチスクリーン2Bが行う動作は、タッチスクリーンディスプレイ2が行ってもよい。
コントローラ10は、タッチスクリーン2Bにより検出された接触又は近接、検出位置、検出位置の変化、接触又は近接が継続した時間、接触又は近接が検出された間隔、及び接触が検出された回数の少なくとも1つに基づいて、ジェスチャの種別を判別する。コントローラ10が行える動作を、コントローラ10を有する携帯端末1は実行できる。言い換えると、コントローラ10が行う動作は、携帯端末1が行ってもよい。ジェスチャは、指を用いて、タッチスクリーン2Bに対して行われる操作である。タッチスクリーン2Bに対して行われる操作は、タッチスクリーン2Bを有するタッチスクリーンディスプレイ2により行われてもよい。コントローラ10が、タッチスクリーン2Bを介して判別するジェスチャには、例えば、タッチ、ロングタッチ、リリース、スワイプ、タップ、ダブルタップ、ロングタップ、ドラッグ、フリック、ピンチイン、及びピンチアウトが含まれるが、これらに限定されない。
タッチスクリーン2Bの検出方式は、静電容量方式、抵抗膜方式、表面弾性波方式、赤外線方式、及び荷重検出方式等の任意の方式でよい。
ボタン3は、ユーザからの操作入力を受け付ける。ボタン3は、例えば、ボタン3A〜ボタン3Fを有する。ボタン3の数は、任意の数であってよい。コントローラ10はボタン3と協働することによってボタン3に対する操作を検出する。ボタン3に対する操作は、例えば、クリック、ダブルクリック、トリプルクリック、プッシュ、及びマルチプッシュを含むが、これらに限定されない。
ボタン3A〜3Cは、例えば、ホームボタン、バックボタンまたはメニューボタンである。ボタン3Dは、例えば、携帯端末1のパワーオン/オフボタン(電源ボタン)である。ボタン3Dは、スリープ/スリープ解除ボタンを兼ねてもよい。ボタン3E及び3Fは、例えば、音量ボタンである。
照度センサ4は、照度を検出する。照度は、照度センサ4の測定面の単位面積に入射する光束の値である。照度センサ4は、例えば、ディスプレイ2Aの輝度の調整に用いられる。
近接センサ5は、近隣の物体の存在を非接触で検出する。近接センサ5は、赤外線を照射する発光素子と、発光素子から照射された赤外線の反射光を受光する受光素子を有する。照度センサ4及び近接センサ5は、1つのセンサとして構成されていてもよい。
通信ユニット6は、無線により通信する。通信ユニット6によってサポートされる無線通信規格には、例えば、2G、3G、4G、5G等のセルラーフォンの通信規格と、近距離無線の通信規格とが含まれる。セルラーフォンの通信規格としては、例えば、LTE(Long Term Evolution)、W−CDMA(登録商標)(Wideband Code Division Multiple Access)、CDMA2000、PDC(Personal Digital Cellular)、GSM(登録商標)(Global System for Mobile communications)、PHS(Personal Handy−phone System)等がある。近距離無線の通信規格としては、例えば、WiMAX(登録商標)(Worldwide interoperability for Microwave Access)、IEEE802.11、Bluetooth(登録商標)、IrDA(Infrared Data Association)、NFC(登録商標)(Near Field Communication)、WPAN(Wireless Personal Area Network)等が含まれる。通信ユニット6は、上述した通信規格の1つ又は複数をサポートしていてもよい。
レシーバ7は、コントローラ10から送出される音信号を音として出力する。マイク8は、入力されるユーザの声等を音信号へ変換してコントローラ10へ送信する。
ストレージ9は、プログラム及びデータを記憶する。ストレージ9は、コントローラ10の処理結果を一時的に記憶する作業領域として利用されてもよい。ストレージ9は、半導体記憶媒体、及び磁気記憶媒体等の任意の非一過的(non−transitory)な記憶媒体を含んでよい。ストレージ9は、複数の種類の記憶媒体を含んでよい。ストレージ9は、メモリカード、光ディスク、又は光磁気ディスク等の記憶媒体と、記憶媒体の読み取り装置との組み合わせを含んでよい。ストレージ9は、RAM(Random Access Memory)等の一時的な記憶領域として利用される記憶デバイスを含んでよい。
ストレージ9に記憶されるプログラムには、フォアグランド又はバックグランドで実行されるアプリケーションと、アプリケーションの動作を支援する支援プログラム(図示略)とが含まれる。アプリケーションは、例えば、フォアグランドで実行される場合、当該アプリケーションに係る画面を、ディスプレイ2Aに表示する。支援プログラムには、例えば、OS(Operating System)が含まれる。プログラムは、通信ユニット6による無線通信又は非一過的な記憶媒体を介してストレージ9にインストールされてもよい。
ストレージ9は、制御プログラム9A、飛行体連携プログラム9B、ユーザ探索用データ9C、画像認証用データ9D、音声認証用データ9E、メールアプリケーション9F、ナビゲートアプリケーション9G、算出アプリケーション9H、及び設定データ9Zなどを記憶できる。
制御プログラム9Aは、携帯端末1の各種動作に関する処理を実現するための機能をそれぞれ提供できる。制御プログラム9Aが提供する機能は、照度センサ4の検出結果に基づいて、ディスプレイ2Aの輝度を調整する機能を含む。制御プログラム9Aが提供する機能は、近接センサ5の検出結果に基づいて、タッチスクリーン2Bに対する操作を無効とする機能を含む。制御プログラム9Aが提供する機能は、通信ユニット6、レシーバ7、及びマイク8等を制御することによって、通話を実現させる機能を含む。制御プログラム9Aが提供する機能は、カメラ12、及びカメラ13の撮影処理を制御する機能を含む。制御プログラム9Aが提供する機能は、コネクタ14を介して接続される外部機器との間の通信を制御する機能を含む。制御プログラム9Aが提供する機能は、タッチスクリーン2Bの検出結果に基づいて判別したジェスチャに応じて、ディスプレイ2Aに表示されている情報を変更する等の各種制御を行う機能を含む。制御プログラム9Aが提供する機能は、加速度センサ15の検出結果に基づいて、携帯端末1を携帯するユーザの移動、停止等を検出する機能を含む。制御プログラム9Aが提供する機能は、GPS受信機20より取得する信号に基づいて、現在位置に基づく処理を実行する機能を含む。
制御プログラム9Aは、飛行装置100に携帯端末1(以下、適宜「自機」と表記する)が装着されたかを判定する機能を提供できる。制御プログラム9Aは、例えば、圧力センサ19の検出結果に基づいて、飛行装置100に自機が装着されたかを判定できる。制御プログラム9Aは、例えば、サイドフェイス1Cに作用する圧力の範囲(分布)が、端末装着ユニット111の突起部111aとサイドフェイス1C3との接触面積、及び突起部111bとサイドフェイス1C3との接触面積と略一致する場合、飛行装置100に自機が装着されたという判定結果を導出してもよい。
制御プログラム9Aは、飛行装置100との通信が可能な状態にペアリングするための機能を提供できる。制御プログラム9Aは、飛行装置100に対する自機の装着を確認できると、飛行体連携プログラム9Bに対して、飛行装置100との自機とのペアリング指示を送出する。
制御プログラム9Aは、気圧センサ18の検出結果に基づいて、自機が装着されている飛行装置100が飛行中であるかを判定するための機能を提供できる。制御プログラム9Aは、自機が飛行装置100に携帯端末1が装着されたときに、気圧センサ18のゼロ点調整を実行するための機能を提供できる。
制御プログラム9Aは、電話着信に対し、飛行装置100に対する所定の操作が検出されたことを示す通知を飛行装置100から受信していることを条件として、通常通話を開始するための機能を提供できる。通常通話は、マイク8に送話音声の入力し、レシーバ7から受話音声を出力する通話に該当する。
制御プログラム9Aは、画像認証用データ9Dを参照して、画像認識を実行する機能を提供できる。制御プログラム9Aは、例えば、飛行装置100から受信する画像データ、若しくは携帯端末1が取得する画像データの画像認識を実行し、画像認識の結果に基づいて、携帯端末1のユーザにより行われたジェスチャが所定のジェスチャであるかを認識できる。所定のジェスチャは、電話着信に対して応答する意思表示として、携帯端末1のユーザが飛行装置100に向かって行うハンドサインなどに該当し、タッチスクリーンディスプレイ2に対して実行される上記の各ジェスチャとは異なる。
制御プログラム9Aは、音声認証用データ9Eを参照して、音声認識を実行する機能を提供できる。制御プログラム9Aは、例えば、飛行装置100から受信する音声データ、若しくは自機が音声データの音声認識を実行し、音声認識の結果に基づいて、携帯端末1のユーザにより入力された音声が所定の音声であるかを認識できる。所定の音声は、電話着信に対して応答する意思表示として、携帯端末1のユーザが飛行装置100に向かって発声するセリフなどに該当する。
制御プログラム9Aは、電話着信に対して、上記所定のジェスチャが認識された場合、又は上記所定の音声が認識された場合、スピーカ通話を開始する機能を提供できる。スピーカ通話は、マイク8に送話音声を入力し、スピーカ11から受話音声を出力する通話に該当する。
飛行体連携プログラム9Bは、制御プログラム9Aと連携することにより、飛行装置100と協働して各種処理を実現するための機能を提供できる。なお、飛行体連携プログラム9Bは、例えば、飛行装置100に対する各種命令を飛行装置100自身が翻訳して実行可能なコードに変換した上で飛行装置100に送信できる。
飛行体連携プログラム9Bは、例えば、制御プログラム9Aからの指示を受けて、例えば、Bluetooth(登録商標)を用いて、飛行装置100との間の近距離無線接続を確立することにより、自機と飛行装置100とをペアリングできる。飛行体連携プログラム9Bは、例えば、飛行装置100との間に確立された近距離無線通信により、飛行装置100との間で各種データを送受信することができる。飛行体連携プログラム9Bは、例えば、電話着信が検出されると、所定距離範囲内までユーザに接近することを指示する命令及びユーザ探索用データ9Cに含まれる識別子のデータを飛行装置100に送信できる。飛行体連携プログラム9Bは、例えば、通話の終了が検出されると、飛行装置100に帰還指示を送信できる。
ユーザ探索用データ9Cは、自機のユーザを認証する際に参照される。ユーザ探索用データ9Cは、例えば、自機のユーザが装着するウェアラブル端末などに一意に付与される識別子のデータを含む。
画像認証用データ9Dは、自機のユーザが着信に対する応答の意思表示として実行する所定のジェスチャを認識するための参照用データである。画像認証用データ9Dは、例えば、パターンマッチングにより所定のハンドサインを認識するためのテンプレート、或いは所定のハンドサインを認識することを目的として多層ニューラルネットワークを利用した機械学習によって予め構築されたデータベースなどを含む。
音声認証用データ9Eは、自機のユーザが着信に対する応答の意思表示として入力する所定の音声を認識するための参照用データである。音声認証用データ9Eは、例えば、携帯端末1のユーザ自身の音声情報である。音声情報は、どのようなセリフを発話するものであってもよいし、特定のセリフを発話するものであってもよい。
メールアプリケーション9Fは、メールの作成、送信、受信、及び表示等のためのメール機能を提供する。ナビゲートアプリケーション9Gは、道案内等のためのナビゲーション機能を提供する。算出アプリケーション9Hは、利用者の歩数、消費量等を算出する機能を提供できる。
設定データ9Zは、携帯端末1の動作に関する各種設定の情報を含む。設定データ9Zは、例えば、所定のジェスチャが認識されたとき、又は所定の音声が認識されたときに実行するコマンド(例えば、着信への応答)を含む。
携帯端末1は、通信ユニット6を介してクラウドストレージと連携し、当該クラウドストレージが記憶するファイル及びデータにアクセスしてもよい。クラウドストレージは、ストレージ9に記憶されるプログラム及びデータの一部又は全部を記憶してもよい。
コントローラ10は、演算処理装置を含む。演算処理装置は、例えば、CPU(Central Processing Unit)、SoC(System−on−a−Chip)、MCU(Micro Control Unit)、FPGA(Field−Programmable Gate Array)、およびコプロセッサを含むが、これらに限定されない。コントローラ10は、携帯端末1の動作を統括的に制御して各種の機能を実現する。
具体的には、コントローラ10は、ストレージ9に記憶されているデータを必要に応じて参照しつつ、ストレージ9に記憶されているプログラムに含まれる命令を実行する。そして、コントローラ10は、データ及び命令に応じて機能部を制御し、それによって各種機能を実現する。機能部は、例えば、ディスプレイ2A、通信ユニット6、マイク8、スピーカ11及びGPS受信機20を含むが、これらに限定されない。コントローラ10は、検出部の検出結果に応じて、制御を変更することがある。検出部は、例えば、タッチスクリーン2B、ボタン3、照度センサ4、近接センサ5、マイク8、カメラ12、カメラ13、加速度センサ15、方位センサ16、角速度センサ17、気圧センサ18及び圧力センサ19を含むが、これらに限定されない。
コントローラ10は、制御プログラム9Aを実行することにより、自機の動作に関する各種制御を実現できる。コントローラ10は、例えば、照度センサ4の検出結果に基づいて、ディスプレイ2Aの輝度を調整する処理を実現できる。コントローラ10は、例えば、近接センサ5の検出結果に基づいて、タッチスクリーン2Bに対する操作を無効とする処理を実現できる。コントローラ10は、例えば、通信ユニット6、レシーバ7、及びマイク8等を制御することによって、通話を実現させる処理を実現できる。コントローラ10は、例えば、カメラ12及びカメラ13の撮影処理を制御する処理を実現できる。コントローラ10は、例えば、コネクタ14を介して接続される外部機器との間の通信を制御する処理を実現できる。コントローラ10は、例えば、タッチスクリーン2Bの検出結果に基づいて判別したジェスチャに応じて、ディスプレイ2Aに表示されている情報を変更する等の各種制御を行う処理を実現できる。コントローラ10は、例えば、加速度センサ15の検出結果に基づいて、自機を携帯するユーザの移動、停止等を検出する処理を実現できる。コントローラ10は、例えば、GPS受信機20より取得する信号に基づいて、現在位置に基づく処理を実現できる。
コントローラ10は、制御プログラム9Aを実行することにより、圧力センサ19の検出結果に基づいて、飛行装置100に自機が装着されたかを判定する処理を実現できる。
コントローラ10は、制御プログラム9A及び飛行体連携プログラム9Bを実行することにより、飛行装置100との通信が可能な状態にペアリングする処理を実現できる。
コントローラ10は、制御プログラム9A及び飛行体連携プログラム9Bを実行することにより、電話着信の発生に応じて、一定距離までユーザに接近することを指示する命令及びユーザ探索用データ9Cに含まれる識別子を飛行装置100に送信する処理を実現できる。
コントローラ10は、制御プログラム9Aを実行することにより、ユーザが着信に対して応答することを指示する所定のジェスチャが行われたかを判定する画像認識処理を実現できる。
コントローラ10は、制御プログラム9Aを実行することにより、ユーザが着信に対して応答することを指示する音声入力が行われたかを判定する音声認識処理を実現できる。
スピーカ11は、コントローラ10から送出される音信号を音として出力する。スピーカ11は、例えば、着信音及び音楽を出力するために用いられる。レシーバ7及びスピーカ11の一方が、他方の機能を兼ねてもよい。
カメラ12及びカメラ13は、撮影した画像を電気信号へ変換する。カメラ12は、ディスプレイ2Aに面している物体を撮影するインカメラである。カメラ13は、ディスプレイ2Aの反対側の面に面している物体を撮影するアウトカメラである。カメラ12及びカメラ13は、インカメラ及びアウトカメラを切り換えて利用可能なカメラユニットとして、機能的及び物理的に統合された状態で携帯端末1に実装されてもよい。
コネクタ14は、他の装置が接続される端子である。コネクタ14は、USB(Universal Serial Bus)、HDMI(登録商標)(High−Definition Multimedia Interface)、MHL(Mobile High−difinition Link)、ライトピーク(Light Peak)、サンダーボルト(登録商標)(Thunderbolt)、LANコネクタ(Local Area Network connector)、イヤホンマイクコネクタのような汎用的な端子であってもよい。コネクタ14は、Dockコネクタのような専用に設計された端子でもよい。コネクタ14に接続される装置は、例えば、飛行体、充電器、外部ストレージ、スピーカ、通信装置、及び情報処理装置を含むが、これらに限定されない。
加速度センサ15は、携帯端末1に作用する加速度の方向及び大きさを検出できる。実施形態の1つの例として、X軸方向、Y軸方向、及びZ軸方向の加速度を検出する3軸型の加速度センサ15を採用できる。加速度センサ15は、ピエゾ抵抗型、静電容量型、圧電素子型(圧電式)、熱検知型によるMEMS(Micro Electro Mechanical Systems)式、動作させた可動コイルをフィードバック電流により元に戻すサーボ式、あるいは歪みゲージ式などにより構成することができる。加速度センサ15は、検出結果をコントローラ10に送出する。コントローラ10は、加速度センサ15の検出結果に基づいて各種制御を実行できる。例えば、携帯端末1に作用している重力が加速度として加速度センサ15から出力されると、コントローラ10は、携帯端末1に作用する重力方向を反映した制御を実行できる。
方位センサ16は、地磁気の向きを検出できる。方位センサ16は、検出結果をコントローラ10に送出する。コントローラ10は、方位センサ16の検出結果に基づいて各種制御を実行できる。例えば、コントローラ10は、地磁気の向きから携帯端末1の向き(方位)を特定し、特定した携帯端末1の方位を反映した制御を実行できる。
角速度センサ17は、携帯端末1の角速度を検出できる。角速度センサ17は、検出結果をコントローラ10に送出する。コントローラ10は、角速度センサ17の検出結果に基づいて各種制御を実行できる。例えば、コントローラ10は、角速度センサ17から出力される角速度の有無に基づいて、携帯端末1の回転を反映した制御を実現できる。
コントローラ10は、加速度センサ15、方位センサ16、及び角速度センサ17の各検出結果を個別に利用する場合に限定されず、各検出結果を組み合わせて利用することもできる。
気圧センサ18は、携帯端末1に作用する気圧を検出できる。気圧センサ18の検出結果は、単位時間あたりの気圧変化量を含んでよい。気圧変化量は、絶対値もしくはスカラー量を累積した値であってよい。単位時間は、任意の時間を設定してよい。気圧センサ18は、検出結果をコントローラ10に送出する。
圧力センサ19は、携帯端末1に作用する圧力を検出できる。圧力センサ19は、複数の感圧素子を備えてよい。圧力センサ19は、コントローラ10が、圧力センサ19の検出結果に基づいて、携帯端末1に作用している圧力の範囲(例えば、分布)を特定するための情報を取得することもできる。
GPS受信機20は、GPS衛星からの所定の周波数帯の電波信号を受信できる。GPS受信機20は、受信した電波信号の復調処理を行って、処理後の信号をコントローラ10に送出する。
バッテリー21は、充電可能な電池を含む。バッテリー21は、例えば、Qi(ワイヤレス給電の国際標準規格)に対応したバッテリーを含む。バッテリー21は、蓄電された電力をコントローラ10、携帯端末1において電力を必要とする各部等に供給する。コントローラ10、各部等は、バッテリー21から供給される電力によって作動する。
充電部22は、バッテリー21の充電動作を制御する。充電部22は、充電用コイルを用いて非接触で、Qiに対応した充電器から電力を受け取り、当該電力をバッテリー21に充電できる。充電部22は、コネクタ14を介して外部電源からバッテリー21に充電できる。
プロジェクタ23は、画像を投影する画像投影機構を含む。プロジェクタ23は、画像を投影する光射出部を有する。携帯端末1は、プロジェクタの光射出部から画像を投影する、つまり画像を構成する光を射出することで、壁面、スクリーン、道路等に画像を投影することができる。プロジェクタ23は、コントローラ10により動作が制御され、コントローラ10から送られる種々の画像、映像等を投影して表示させる。
プロジェクタ23は、光源と、画像データに応じて、光源から射出された光を投影するか否かを切り換える光学系とで構成されている。例えば、プロジェクタ23には、ハロゲンライトや、LED光源、LD光源を光源とし、LCDや、DMD(Digital Micro−mirror Device)を光学系とした構成のプロジェクタを用いることができる。この場合は、光学系を各画素に対応して投影領域の全面に配置し、光源から射出された光を画像に合わせて光学系をオンオフさせることで画像を投影領域の全面に投影させることができる。また、プロジェクタ23には、レーザ光を光源とし、光源から射出された光を透過させるか否かを切り換える切り換え素子と、切り換え素子を通過した光をラスター走査させるミラーとで構成される光学系とした構成のプロジェクタを用いることもできる。この場合は、ミラーによってレーザ光から射出された光の角度を変えて、投影領域の全面に光源から照射された光を走査させることで、投影領域に画像を投影させることができる。
携帯端末1は、バイブレータを備えてもよい。バイブレータは、携帯端末1の一部又は全体を振動させる。バイブレータは、振動を発生させるために、例えば、圧電素子、又は偏心モータなどを有する。携帯端末1は、上述のセンサの他、温度センサ、湿度センサ、などを備えてもよい。携帯端末1は、自機の機能を維持するために当然に用いられる機能部、及び携帯端末1の制御を実現するために当然に用いられる検出部を実装する。
携帯端末1は、通信ユニット6を介してクラウド上の記憶サーバにアクセスし、各種プログラム及びデータを取得してもよい。
図6においてストレージ9が記憶するプログラム及びデータの一部又は全部は、通信ユニット6による無線通信で他の装置からダウンロードされてもよい。図6においてストレージ9が記憶するプログラム及びデータの一部又は全部は、ストレージ9に含まれる読み取り装置が読み取り可能な非一過的な記憶媒体に記憶されていてもよい。図6においてストレージ9が記憶するプログラム及びデータの一部又は全部は、コネクタ14に接続される読み取り装置が読み取り可能な非一過的な記憶媒体に記憶されていてもよい。非一過的な記憶媒体は、例えば、CD(登録商標)、DVD(登録商標)、Blu−ray(登録商標)等の光ディスク、光磁気ディスク、磁気記憶媒体、メモリカード、及びソリッドステート記憶媒体を含むが、これらに限定されない。
図6に示した携帯端末1の構成は一例であり、本発明の要旨を損なわない範囲において適宜変更してよい。図6に示した例では、携帯端末1が2つのカメラを備えるが、携帯端末1は、1つのカメラのみを備えてもよいし、カメラを備えなくてもよい。図6に示した例では、携帯端末1が位置及び姿勢を検出するために複数のセンサを備えるが、携帯端末1は、このうちいくつかのセンサを備えなくてもよい。あるいは、携帯端末1は、位置及び姿勢の少なくとも1つを検出するための他の種類のセンサを備えてもよい。図6に示した携帯端末1は、プロジェクタ23を備えるが、プロジェクタ23を備えなくてもよい。飛行装置100がプロジェクタを備える場合、携帯端末1は、飛行装置100のプロジェクタから画像を投影させてもよい。
図7は、実施形態に係る飛行装置が有する機能構成の一例を示す図である。図7に示すように、飛行装置100の本体110は、通信部121と、接続部122と、撮影制御部123と、動力制御部124と、センサユニット125と、記憶部126と、制御ユニット127とを備える。
通信部121は、携帯端末1との間で各種データのやり取りに関する通信を実行する。通信部121は、例えば、携帯端末1との間で確立される近距離無線接続を介して通信する。
接続部122は、他の装置が接続される端子である。接続部122は、USBのような汎用的な端子であってよい。
撮影制御部123は、カメラ190を用いた画像の撮影を制御する。撮影制御部123による制御は、カメラ190の撮影方向の制御を含む。
動力制御部124は、モータ140a〜140dの駆動力を制御する。モータ140aは回転翼150aの回転数を制御し、モータ140bは回転翼150bの回転数を制御し、モータ140cは回転翼150cの回転数を制御し、モータ140dは回転翼150dの回転数を制御する。
センサユニット125は、飛行装置100の飛行及び飛行装置100に備えられる機器の制御などに用いるデータを検知する複数のセンサを含む。センサユニット125は、タッチセンサ125a及び距離画像センサ125bを含む。タッチセンサ125aは、静電容量方式、抵抗膜方式、表面弾性波方式、超音波方式、赤外線方式、電磁誘導方式、又は荷重検出方式等の任意の方式のセンサを含む。飛行装置100は、タッチセンサ125aにより、飛行装置100が携帯端末1のユーザに掴まれたことを検知できる。タッチセンサ125aは、例えば、飛行装置100の本体110の外周部分または連結フレーム130に位置するとよい。また、ユーザが飛行装置100を掴むための取手を飛行装置100に設け、当該取手にタッチセンサ125aを配置してもよい。タッチセンサ125aは、タッチセンサ125aの設置部分を挟みこむように位置するとよい。タッチセンサ125aが設置部分を挟みこむように位置するためには、シート状のタッチセンサ125aを当該設置部分に巻きつけるように固定してもよいし、少なくとも2つのタッチセンサ125aをそれぞれ、当該設置部分を挟む位置に配置させてもよい。飛行装置100は、タッチセンサ125aにおいて、前記設置部分を挟む位置でユーザの接触を検出する場合に、ユーザに掴まれたと検知してよい。距離画像センサ125bは、対象物に対してレーザ光などの光が対象物体に反射して戻るまでの時間に基づいて対象物との距離を計測できる。距離画像センサ125bは、レーザ光を放射状に照射して、飛行装置100の周囲にある物体の方向及び物体までの距離を計測してもよい。
記憶部126は、プログラム及びデータを記憶できる。記憶部126は、半導体記憶媒体、及び磁気記憶媒体等の任意の非一過的な記憶媒体を含んでよい。記憶部126は、メモリカード、光ディスク、又は光磁気ディスク等の記憶媒体と、記憶媒体の読み取り装置との組み合わせを含んでよい。記憶部126は、RAMなどの一時的な記憶領域として利用される記憶デバイスを含んでよい。
記憶部126は、制御プログラム126a、制御用データ126b及び識別子データ126cを記憶できる。制御プログラム126aは、飛行装置100の各種動作に関する処理を実現するための機能をそれぞれ提供できる。制御プログラム126aにより提供される機能は、飛行装置100に備えられる機器の制御に関する機能を含む。機器の制御に関する機能は、通信部121と携帯端末1との間で近距離無線接続を確立してペアリングする機能、通信部121を介して携帯端末1と通信するための機能、撮影制御部123を介してカメラ190の画像撮影を制御するための機能を含む。携帯端末1と通信するための機能は、飛行装置100に対して所定の接触が検出されたことを携帯端末1に通知することを含む。
制御プログラム126aにより提供される機能は、飛行装置100の飛行制御に関する各種機能を含む。飛行制御に関する機能は、センサユニット125の検出結果に基づいてモータ140a〜140dの駆動力を制御するための機能を含む。例えば、モータ140a〜140dの駆動力を制御するための機能は、タッチセンサ125aの検出結果に基づいて、飛行装置100に対する所定の操作が検出された場合、モータ140a〜140dを停止させることを含む。所定の操作は、例えば、連結フレーム130の少なくとも1箇所を掴むことを含む。飛行制御に関する機能は、センサユニット125の検出結果に基づいて飛行装置100の飛行姿勢を調整するための機能を含む。飛行制御に関する機能は、携帯端末1から指示に従い、識別子データ126cに基づいて携帯端末1のユーザを探索し、距離画像センサ125bの計測結果に基づいて携帯端末1のユーザから所定距離範囲内まで接近する機能を含む。飛行制御に関する機能は、携帯端末1から指示に従い、待機ステーションに帰還する機能を含む。飛行制御に関する機能は、携帯端末1から指示に従い、充電器に移動する機能を含む。
飛行制御に関する機能は、距離画像センサ125bの計測結果に基づいて、飛行装置100の周囲にある物体との位置関係を示す情報を取得する機能、センサユニット125の検出結果に基づいて飛行装置100の機首が向く方向のなす角度(方位)に関する方位情報、回転翼150a〜150dの中心位置を通る鉛直線を中心とする回転角に関する回転角度情報などを検出する機能を含んでよい。
制御用データ126bは、飛行装置100の各種動作に関する処理を実行するために参照される。
識別子データ126cは、携帯端末1のユーザがウェアラブル端末に一意に割り当てられる識別子のデータである。識別子データ126cは、携帯端末1が記憶するユーザ探索用データ9Cに含まれる識別子のデータに対応する。識別子データ126cは、携帯端末1から受信され、記憶部126に格納される。
制御ユニット127は、1又は複数の演算装置を含む。演算装置は、例えば、CPU(Central Processing Unit)、SoC(System−on−a−Chip)、MCU(Micro Control Unit)、FPGA(Field−Programmable Gate Array)、およびコプロセッサを含むが、これらに限定されない。制御ユニット127は、制御プログラム126aを演算装置に実行させることにより、飛行装置100の各種動作に関する処理を実現する。制御ユニット127は、制御プログラム126aにより提供される機能の少なくとも1部を専用のIC(Integrated Circuit)により実現してもよい。
携帯端末1の表示機能の一例について説明する。
図8を参照しながら、携帯端末1によって表示機能を変更する一例について説明する。図8は、携帯端末1の画面40A,40Bの一例を示す図である。画面40A,40Bは、ホーム画面を含む。ホーム画面は、デスクトップ、又は待受画面と呼ばれることもある。画面40A,40Bは、ディスプレイ2Aに表示される。画面40A,40Bは、携帯端末1にインストールされているアプリケーションのうち、どのアプリケーションを実行するかを利用者に選択させる画面である。携帯端末1は、画面40A,40Bで選択されたアプリケーションをフォアグランドで実行する。フォアグランドで実行されるアプリケーションは、画面40A,40Bとは異なる画面をディスプレイ2Aに表示させる。
携帯端末1は、画面40A,40Bにアイコンを配置することができる。図8に示す画面40A,40Bには、複数のアイコン50が配置されている。それぞれのアイコン50は、携帯端末1にインストールされている特定のアプリケーションと予め対応付けられている。携帯端末1は、アイコン50に対する特定のジェスチャ(例えば、タップ)、音声による要求等を検出すると、そのアイコン50に対応付けられているアプリケーションを実行する。例えば、携帯端末1は、メールアプリケーション9Fに対応付けられたアイコン50に対するタップが検出されると、メールアプリケーション9Fを実行する。
アイコン50は、画像と文字列を含む。アイコン50は、画像に代えて、記号又は図形を含んでもよい。アイコン50は、画像又は文字列のいずれか一方を含まなくてもよい。アイコン50は、所定の規則に従って配置される。アイコン50の背後には、壁紙41が表示される。壁紙41は、フォトスクリーン又はバックスクリーンと呼ばれることもある。携帯端末1は、任意の画像を壁紙41として用いることができる。画像は、例えば、利用者の設定に従って壁紙41として決定される。
画面40Aは、飛行装置100が浮遊していない場合にディスプレイ2Aに表示される。画面40Bは、飛行装置100が浮遊している場合にディスプレイ2Aに表示される。画面40Bは、画面40Aのアイコン50の数よりも少ない数のアイコン50が配置されている。画面40Bのアイコン50は、画面40Aのアイコン50よりも大きなサイズとなっている。
例えば、画面40Bは、画面40Aの複数のアイコン50のうち、利用率の高いアイコン50が優先的に配置されてもよい。例えば、画面40Bは、画面40Aの複数のアイコン50のうち、飛行装置100が浮遊中に利用可能なアイコン50のみが配置されてもよい。画面40Bは、飛行装置100が浮遊中に利用できないアイコン50が配置されていない。図8に示す例では、画面40Bは、アイコン50の画像及び文字列が画面40Aのアイコン50のものよりも大きくなっている。
飛行装置100に装着される携帯端末1による画面40A,40Bの表示機能を変更する一例を、以下に説明する。
図8のステップS11では、携帯端末1は、飛行装置100に装着され、飛行装置100が浮遊していない状態となっている。携帯端末1は、画面40Aをタッチスクリーンディスプレイ2に表示させる。その後、携帯端末1は、飛行装置100に対して飛行開始を指示している。この場合、飛行装置100は、携帯端末1からの指示に応じてモータ140a〜140dを起動し、浮遊を開始する。飛行装置100の浮遊は、例えば、飛行装置100の浮上、飛行、ホバリング等を含む。
ステップS12では、携帯端末1は、飛行装置100が浮遊を開始すると、画面40Bをタッチスクリーンディスプレイ2に表示させる。その結果、携帯端末1は、タッチスクリーンディスプレイ2に表示された画面40Aを、飛行装置100の浮遊時に対応した画面40Bに変更させる。飛行装置100で浮遊している携帯端末1のタッチスクリーンディスプレイ2には、画面40Bが表示される。
例えば、携帯端末1は、タッチスクリーンディスプレイ2を介して利用者のアイコン50に対するジェスチャ、ハンドサイン等を検出した場合、当該アイコン50に対応するアプリケーションを実行できる。例えば、携帯端末1は、マイク8を介して入力された音声に基づいて、利用者が選択するアイコン50を特定し、当該アイコン50に対応するアプリケーションを実行できる。例えば、携帯端末1は、カメラで撮影した画像から予め定められた利用者のジェスチャを検出した場合に、当該ジェスチャ、ハンドサイン等に対応したアイコン50のアプリケーションを実行できる。例えば、携帯端末1は、飛行装置100によって連結フレーム130をユーザが掴む操作を検出した場合に、所定のアイコン50のアプリケーションを実行できる。
携帯端末1は、飛行装置100と利用者との距離が離れていても、画面40Bのアイコン50の大きさが画面40Aのアイコン50よりも大きいため、浮遊時における利用者による視認性の低下を抑制しかつ操作性を向上させることができる。
ステップS12において、携帯端末1は、飛行装置100に対して飛行終了を指示している。携帯端末1は、飛行装置100が浮遊を終了すると、ステップS11に示すように、画面40Aをタッチスクリーンディスプレイ2Aに表示させる。携帯端末1は、飛行装置100が浮遊しているか否かに基づいて、画面40A,40Bを切り替えて表示することができる。その結果、携帯端末1は、利用者が画面40A,40Bの切り替え操作をする必要がなくなるので、飛行装置100に装着された場合の操作性を向上させることができる。
図9は、携帯端末1による画面40A,40Bの表示制御に関する処理手順の一例を示すフローチャートである。図9に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図9に示す処理手順は、コントローラ10によって繰り返し実行される。図9に示す処理手順は、携帯端末1が飛行装置100に装着され、ディスプレイ2Aに画面40Aを表示している場合に実行される。
図9に示すように、携帯端末1のコントローラ10は、飛行装置100が浮遊を開始しているか否かを判定する(ステップS101)。例えば、コントローラ10は、飛行装置100に浮遊開始を指示した場合に、飛行装置100が浮遊を開始していると判定する。例えば、コントローラ10は、気圧センサ18、加速度センサ15等の検出結果に基づいて飛行装置100の浮遊開始を判別してもよい。コントローラ10は、飛行装置100が浮遊を開始していないと判定した場合(ステップS101でNo)、図9に示す処理手順を終了させる。コントローラ10は、飛行装置100が浮遊を開始していると判定した場合(ステップS101でYes)、処理をステップS102に進める。
コントローラ10は、ディスプレイ2Aに表示している画面40Aを飛行装置100が浮遊時の画面40Bに変更させる(ステップS102)。コントローラ10は、ディスプレイ2Aに画面40Bが表示されると、処理をステップS103に進める。
コントローラ10は、飛行装置100が浮遊を終了したか否かを判定する(ステップS103)。例えば、コントローラ10は、飛行装置100に浮遊終了を指示した場合に、飛行装置100が浮遊を終了していると判定する。例えば、コントローラ10は、気圧センサ18、加速度センサ15等の検出結果に基づいて飛行装置100の浮遊終了を判別してもよい。コントローラ10は、飛行装置100が浮遊を終了していないと判定した場合(ステップS103でNo)、飛行装置100が浮遊を継続しているため、処理を既に説明したステップS103に戻す。コントローラ10は、飛行装置100が浮遊を終了していると判定した場合(ステップS103でYes)、処理をステップS104に進める。
コントローラ10は、ディスプレイ2Aに表示している画面40Bを飛行装置100が浮遊していない時の画面40Aに変更させる(ステップS104)。コントローラ10は、ディスプレイ2Aに画面40Bが表示されると、図9に示す処理手順を終了させる。
携帯端末1の充電機能の一例について説明する。
制御プログラム9Aは、バッテリー21の残量が所定の残量よりも低下した場合に、利用者に携帯端末1の充電を促す機能を提供できる。制御プログラム9Aは、バッテリー21の残量が所定の残量よりも低下した場合に、携帯端末1を飛行装置100によって充電器に移動させて自動的に充電する機能を提供できる。充電器は、例えば、非接触充電置き台、非接触充電器等を含む。
設定データ9Zは、携帯端末1が飛行装置100に装着されている場合に、自動で充電を行う機能を有効にするか、無効にするかを示すデータを含む。設定データ9Zは、充電器を設置した位置を示す位置情報を含む。
例えば、携帯端末1は、バッテリー21の残量が所定の残量よりも低下した場合、自機が飛行装置100に装着されていないとき、バッテリー21の残量の低下を報知する機能を実行する。携帯端末1は、バッテリー21の残量が所定の残量よりも低下した場合、自機が飛行装置100に装着されているとき、バッテリー21の残量の低下を報知する機能を変更する。例えば、携帯端末1は、バッテリー21の残量の低下を報知する機能から、バッテリー21を自動的に充電する機能に変更する。バッテリー21を自動的に充電する機能は、携帯端末1が飛行装置100の飛行動力を制御し、飛行装置100に自機を充電器まで移動させる機能を含む。
図10は、携帯端末1の充電機能に関する動作の一例を示す図である。図10のステップS21では、携帯端末1は、飛行装置100に装着された状態で、バッテリー残量が所定の残量よりも低下したことを検出している。携帯端末1は、飛行装置100に対して浮上を指示する。
ステップS22では、飛行装置100は、携帯端末1の指示によってモータ140a〜140dを起動し、浮上している。携帯端末1は、自機のカメラ12,13または飛行装置100のカメラ190、自機のGPS受信機20等を用いて、自機の周囲の充電器300を捜索する。充電器300の捜索は、例えば、充電器300の画像を用いた画像認識を用いた捜索、予め設定された充電器300の位置情報を用いた捜索等を含む。ステップS22に示す例では、携帯端末1は、充電器300の位置を特定している。携帯端末1は、特定した充電器300までの移動方向及び移動距離に基づく飛行を飛行装置100に指示する。
ステップS23では、飛行装置100は、充電器300の上方まで飛行し、充電器300に向かって着陸する。携帯端末1は、飛行装置100の着陸によって充電部22が充電器300の近くに位置付けられる。携帯端末1は、充電器300と充電部22とが非接触でバッテリー21に充電する。
携帯端末1は、飛行装置100に接続された状態で、バッテリー21の残量が所定の残量よりも低下した場合、飛行装置100を浮遊させて充電器300まで移動し、バッテリー21に充電することができる。飛行装置100に接続された状態は、例えば、携帯端末1と飛行装置100とがペアリングされた状態、携帯端末1と飛行装置100とがケーブル等で電気的に接続された状態を含む。その結果、携帯端末1は、咄嗟の外出などで利用者が自機を利用する際の充電忘れを防止できるため、利便性を向上することができる。
図11は、携帯端末1によるバッテリー21の残量に関する制御の一例の処理手順を示すフローチャートである。図11に示す処理手順は、コントローラ10が制御プログラム9A及び飛行体連携プログラム9Bを実行することによって実現される。図11に示す処理手順は、コントローラ10によって繰り返し実行される。
図11に示すように、携帯端末1のコントローラ10は、バッテリー21の残量が所定の残量よりも低下したか否かを判定する(ステップS201)。例えば、所定の残量は、予め設定された充電を行うか否かを判定する残量、利用者等によって設定された残量等を含む。コントローラ10は、バッテリー21の残量が所定の残量よりも低下していないと判定した場合(ステップS201でNo)、図11に示す処理手順を終了させる。コントローラ10は、バッテリー21の残量が所定の残量よりも低下していると判定した場合(ステップS201でYes)、処理をステップS202に進める。
コントローラ10は、自機が飛行装置100に接続されているか否かを判定する(ステップS202)。自機が飛行装置100に接続されているとは、例えば、自機が装着された飛行装置100との通信が確立していること、自機が装着された飛行装置100と通信が可能となっていること等を含む。
コントローラ10は、自機が飛行装置100に接続されていないと判定した場合(ステップS202でNo)、処理をステップS203に進める。コントローラ10は、バッテリー残量の低下を報知する(ステップS203)。例えば、コントローラ10は、バッテリー残量の低下を報知する報知画面をディスプレイ2Aに表示させる。その結果、携帯端末1は、バッテリー残量の低下を報知画面の表示によって利用者に報知することができる。コントローラ10は、報知を行うと、図11に示す処理手順を終了させる。
コントローラ10は、自機が飛行装置100に接続されていると判定した場合(ステップS202でYes)、処理をステップS204に進める。コントローラ10は、飛行装置100に浮上を指示する制御情報を送信する(ステップS204)。例えば、コントローラ10は、浮上する高さ等を含む制御情報を、通信ユニット6を介して飛行装置100に送信する。その結果、飛行装置100は、携帯端末1を装着した状態で所定の高さまで浮上する。その後、コントローラ10は、処理をステップS205に進める。
コントローラ10は、カメラで撮影した画像に基づき、充電器300の位置を特定する特定処理を実行する(ステップS205)。例えば、特定処理を実行したコントローラ10は、飛行装置100を浮上した位置で回動させながら、自機又は飛行装置100のカメラで自機の周囲を撮影する。コントローラ10は、撮影した画像と、予め用意された充電器300の画像とを比較し、充電器300が存在するか否かを判定する。コントローラ10は、充電器300が存在しない場合、充電器300の位置を特定できなかったことを結果としてストレージ9に記憶する。コントローラ10は、充電器300が存在した場合、自機の現在位置、近接センサ5、距離センサ等で測定した物体までの距離等の情報に基づいて充電器300の位置を算出する。コントローラ10は、特定処理が終了すると、処理をステップS206に進める。
コントローラ10は、充電器300の位置を特定できたか否かを判定する(ステップS206)。コントローラ10は、充電器300の位置を特定できていないと判定した場合(ステップS206でNo)、処理をステップS207に進める。
コントローラ10は、飛行装置100に飛行終了を指示する制御情報を送信する(ステップS207)。例えば、コントローラ10は、着陸を指示する制御情報を、通信ユニット6を介して飛行装置100に送信する。その結果、飛行装置100は、携帯端末1を装着した状態で着陸する。コントローラ10は、既に説明したステップS203を実行し、バッテリー残量の低下を報知する。コントローラ10は、報知を行うと、図11に示す処理手順を終了させる。
コントローラ10は、充電器300の位置を特定できたと判定した場合(ステップS206でYes)、処理をステップS208に進める。コントローラ10は、自機の現在位置から充電器300までの移動方向、移動距離を算出する(ステップS208)。コントローラ10は、算出した移動方向及び移動距離、移動開始位置の情報をストレージ9に記憶する(ステップS209)。コントローラ10は、算出した移動方向及び移動距離に基づいた飛行を指示する制御情報を飛行装置100に送信する(ステップS210)。その結果、飛行装置100は、携帯端末1を装着した状態で指示された移動方向に移動距離だけ飛行し、その位置で充電器300に向かって着陸する。コントローラ10は、制御情報を飛行装置100に送信すると、処理をステップS211に進める。
コントローラ10は、バッテリー21の充電を報知する(ステップS211)。例えば、コントローラ10は、バッテリー21の充電中の画面をディスプレイ2Aに表示させる。例えば、コントローラ10は、充電器300が起動していない場合、通信ユニット6を介して、充電器300を起動させる情報を送信できる。コントローラ10は、バッテリー21の充電を報知すると、図11に示す処理手順を終了させる。
上記の携帯端末1は、バッテリー21の充電が終了した場合、充電器300から元の場所(飛行を開始した位置)まで飛行装置100によって自動で戻る機能を追加してもよい。例えば、携帯端末1は、バッテリー21の充電の終了を検出すると、ストレージ9に記憶している移動方向及び移動距離、移動開始位置等の情報に基づいて帰還ルートを算出し、当該帰還ルートの飛行を飛行装置100に指示すればよい。
上記の携帯端末1は、バッテリー21の残量が所定の残量に近づいた場合、利用者が自機を利用しない時間帯に、飛行装置100で飛行して自動充電を行ってもよい。利用者が自機を利用しない時間帯は、例えば、利用者の行動パターンを携帯端末1が学習したり、利用者に設定させたりすればよい。携帯端末1は、電気料金が安い時間帯に、飛行装置100で飛行して自動充電を行うことで、電気料金の低減に貢献することができる。
図12は、携帯端末1によるバッテリー21の残量に関する制御の他の一例の処理手順を示すフローチャートである。図12に示す処理手順は、コントローラ10が制御プログラム9A及び飛行体連携プログラム9Bを実行することによって実現される。図12に示す処理手順は、コントローラ10によって繰り返し実行される。
図12に示す例では、ステップS201からステップS203及びステップS209からステップS211の処理は、図11に示すステップS201からステップS203及びステップS209からステップS211の処理と同一であるため、異なる部分のみを説明し、同一部分の説明は省略する。
図12に示すように、携帯端末1のコントローラ10は、ステップS201からステップS203の処理を実行する。コントローラ10は、自機が飛行装置100に接続されていると判定した場合(ステップS202でYes)、処理をステップS221に進める。コントローラ10は、充電器300の位置情報が登録されているか否かを判定する(ステップS221)。例えば、コントローラ10は、充電器300の位置情報が設定データ9Zに設定されている場合に、充電器300の位置情報が登録されていると判定する。
コントローラ10は、充電器300の位置情報が登録されていないと判定した場合(ステップS221でNo)、処理を既に説明したステップS203に進める。コントローラ10は、既に説明したステップS203を実行し、バッテリー残量の低下を報知する。コントローラ10は、報知を行うと、図12に示す処理手順を終了させる。
コントローラ10は、充電器300の位置情報が登録されていると判定した場合(ステップS221でYes)、処理をステップS222に進める。コントローラ10は、GPS受信機20を用いて、自機の現在位置を取得する(ステップS222)。コントローラ10は、充電器300が飛行装置100で移動可能な範囲にあるか否かを判定する(ステップS223)。例えば、コントローラ10は、自機から充電器300までの距離が所定の距離よりも小さい場合に、充電器300が飛行装置100で移動可能な範囲にあると判定する。
コントローラ10は、充電器300が飛行装置100で移動可能な範囲にないと判定した場合(ステップS223でNo)、処理を既に説明したステップS203に進める。コントローラ10は、既に説明したステップS203を実行し、バッテリー残量の低下を報知する。コントローラ10は、報知を行うと、図12に示す処理手順を終了させる。
コントローラ10は、充電器300が飛行装置100で移動可能な範囲にあると判定した場合(ステップS223でYes)、処理をステップS224に進める。コントローラ10は、自機の現在位置から充電器300の位置までの移動方向、移動距離を算出し(ステップS224)、処理を既に説明したステップS209に進める。
コントローラ10は、算出した移動方向及び移動距離、移動開始位置の情報をストレージ9に記憶する(ステップS209)。コントローラ10は、算出した移動方向及び移動距離に基づいた飛行を指示する制御情報を飛行装置100に送信する(ステップS210)。その結果、飛行装置100は、携帯端末1を装着した状態で指示された移動方向に移動距離だけ飛行し、その位置で充電器300に向かって着陸する。コントローラ10は、制御情報を飛行装置100に送信すると、処理をステップS211に進める。
コントローラ10は、バッテリー21の充電を報知する(ステップS211)。例えば、コントローラ10は、充電器300が起動していない場合、通信ユニット6を介して、充電器300を起動させる情報を送信できる。コントローラ10は、バッテリー21の充電を報知すると、図12に示す処理手順を終了させる。
図12に示す処理手順では、コントローラ10は、充電器300の位置情報が登録されていないと判定した場合(ステップS221でNo)、処理を既に説明したステップS203に進める場合について説明するが、これに限定されない。例えば、図12に示す処理手順は、ステップS221でNoの場合、図11のステップS204以降の処理を実行し、充電器300を捜索する処理手順としてもよい。
携帯端末1の通知機能の一例について説明する。
制御プログラム9Aは、携帯端末1の移動状態(言い換えると、携帯端末1を携帯する利用者の移動状態)を判別する機能を提供できる。携帯端末1は、制御プログラム9Aを実行することによって、加速度センサ15、方位センサ16及び角速度センサ17の検出結果と判別データとに基づいて、携帯端末1の移動状態を判別する。例えば、携帯端末1の複数の移動状態は、停止状態、静止状態、歩行状態、走行状態、乗り物での移動状態、自転車での移動状態を含む。停止状態は、自機を携帯している利用者が停止している状態を含む。静止状態は、自機が置かれた状態を含む。歩行状態は、自機を携帯している利用者が歩行している状態を含む。走行状態は、自機を携帯している利用者が走行している状態を含む。乗り物での移動状態は、自機を携帯している利用者が乗り物で移動している状態を含む。乗り物は、例えば、自動車、電車、バス、飛行機、バイク等を含む。自転車での移動状態は、自機を携帯している利用者が自転車で移動している状態を含む。
例えば、携帯端末1は、飛行装置100に接続された状態で、所定の条件を満たすとき、通知機能を変更する。通知機能は、例えば、電話の着信、メールの受信、緊急情報の受信等を通知する機能を含む。所定の条件は、例えば、飛行装置100に接続された状態で、自機の移動状態が乗り物での移動状態であるとの条件を含む。携帯端末1は、飛行装置100に接続された状態で、所定の条件を満たすとき、飛行装置100を浮上させずに、飛行装置100に接続された状態で、通知機能による通知を行う。携帯端末1は、飛行装置100に接続された状態で、所定の条件を満たさないとき、飛行装置100を利用者の近くに浮遊させ、飛行装置100によって浮遊した状態で通知機能による通知を行う。
携帯端末1は、自機の移動状態の変化に応じて、利用者に対する通知の多様化を図ることができる。携帯端末1は、飛行装置100に接続された自機が乗り物による移動状態である場合、乗り物内で飛行装置100を浮遊させないため、飛行装置100を用いた通知における安全性を向上させることができる。
図13は、携帯端末1による通知機能に関する制御の一例の処理手順を示すフローチャートである。図13に示す処理手順は、コントローラ10が制御プログラム9A及び飛行体連携プログラム9Bを実行することによって実現される。図13に示す処理手順は、コントローラ10によって繰り返し実行される。
図13に示すように、携帯端末1のコントローラ10は、所定のイベントが発生したか否かを判定する(ステップS301)。所定のイベントは、例えば、メール及び通知情報の受信、電話の着信等のイベントを含む。コントローラ10は、所定のイベントが発生していないと判定した場合(ステップS301でNo)、図13に示す処理手順を終了させる。コントローラ10は、所定のイベントが発生していると判定した場合(ステップS301でYes)、処理をステップS302に進める。
コントローラ10は、自機の移動状態を判別する(ステップS302)。例えば、コントローラ10は、加速度センサ15が検出した加速度パターンと判別データの状態ごとの加速度パターンとを比較し、一致する判別データの加速度パターンに対応した状態を、自機の状態として判別する。コントローラ10は、自機の移動状態を判別すると、処理をステップS303に進める。
コントローラ10は、ステップS302の判別結果に基づいて、乗り物での移動状態であるか否かを判定する。コントローラ10は、乗り物での移動状態であると判定した場合(ステップS303でYes)、処理をステップS304に進める。コントローラ10は、飛行装置100を浮遊させずに、所定のイベントの発生を通知する処理を実行する(ステップS304)。例えば、コントローラ10は、所定のイベントの発生を示す通知画面をディスプレイ2Aに表示させる。例えば、コントローラ10は、所定のイベントの発生を報知する報知音をスピーカ11から出力させる。その結果、携帯端末1は、飛行装置100をせずに、所定のイベントの発生を通知する。コントローラ10は、所定のイベントの発生を通知すると、図13に示す処理手順を終了させる。
コントローラ10は、乗り物での移動状態ではないと判定した場合(ステップS303でNo)、処理をステップS305に進める。コントローラ10は、飛行装置100に浮上を指示する制御情報を送信する(ステップS305)。例えば、コントローラ10は、浮上する高さ等を含む制御情報を、通信ユニット6を介して飛行装置100に送信する。その結果、飛行装置100は、携帯端末1を装着した状態で所定の高さまで浮上する。その後、コントローラ10は、処理をステップS306に進める。
コントローラ10は、カメラで撮影した画像に基づき、利用者の位置を特定する特定処理を実行する(ステップS306)。例えば、特定処理を実行したコントローラ10は、飛行装置100を浮上した位置で回動させながら、自機又は飛行装置100のカメラで自機の周囲を撮影する。コントローラ10は、撮影した画像と、予め用意された利用者の画像とを比較し、利用者が存在するか否かを判定する。コントローラ10は、利用者が存在しない場合、利用者の位置を特定できなかったことを結果としてストレージ9に記憶する。コントローラ10は、利用者が存在した場合、自機の現在位置、近接センサ5、距離センサ等で測定した利用者までの距離等の情報に基づいて利用者の位置を算出する。コントローラ10は、特定処理が終了すると、処理をステップS307に進める。
コントローラ10は、自機の現在位置から利用者までの移動方向、移動距離を算出する(ステップS307)。コントローラ10は、算出した移動方向及び移動距離に基づいた飛行を指示する制御情報を飛行装置100に送信する(ステップS308)。その結果、飛行装置100は、携帯端末1を装着した状態で指示された移動方向に移動距離だけ飛行する。
コントローラ10は、飛行装置100が利用者に接近したか否かを判定する(ステップS309)。例えば、コントローラ10は、近接センサ5等によって検出された利用者までの距離が所定の距離よりも小さい場合に、飛行装置100が利用者に接近したと判定する。コントローラ10は、飛行装置100が利用者に接近していないと判定した場合(ステップS309でNo)、処理を既に説明したステップS306に戻す。コントローラ10は、飛行装置100が利用者に接近していると判定した場合(ステップS309でYes)、処理をステップS310に進める。
コントローラ10は、飛行装置100を浮遊させた状態で、所定のイベントの発生を通知する処理を実行する(ステップS310)。例えば、コントローラ10は、所定のイベントの発生を示す通知画面をディスプレイ2Aに表示させる。その結果、携帯端末1は、所定のイベントの発生に応じて飛行装置100によって利用者の近くに浮遊された状態で、所定のイベントの発生を通知する。
コントローラ10は、所定のイベントの発生を通知すると、飛行装置100に浮遊の終了を指示する(ステップS311)。例えば、コントローラ10は、浮遊の終了(例えば、着陸)を指示する制御情報を、通信ユニット6を介して飛行装置100に送信する。その結果、飛行装置100は、携帯端末1を装着した状態で着陸する。その後、コントローラ10は、図13に示す処理手順を終了させる。
携帯端末1の入力機能の一例について説明する。
制御プログラム9Aは、飛行装置100に接続された場合に、所定の条件を満たすか否かに応じて、文字入力の機能を変更する機能を提供できる。所定の条件は、例えば、飛行装置100に接続された場合に、飛行装置100が浮遊しているとの条件を含む。
設定データ9Zは、携帯端末1が飛行装置100に装着されている場合に、所定の条件に応じて文字入力を変更する機能を有効にするか、無効にするかを示すデータを含む。携帯端末1は、設定データ9Zの設定によって、所定の条件に応じて文字入力を変更する機能を有効にするか否かを判定できる。
例えば、携帯端末1は、飛行装置100に接続された場合に、飛行装置100が浮遊していないとき、キーによる入力画面をディスプレイ2Aに表示し、入力画面のキーに対する操作に応じて入力データを受け付ける入力機能を提供できる。携帯端末1は、飛行装置100に接続された場合に、飛行装置100が浮遊しているとき、音声入力による入力画面をディスプレイ2Aに表示し、マイク8によって入力された音声データを入力データとして受け付ける入力機能を提供できる。
図14は、携帯端末1による入力機能に関する制御の一例の処理手順を示すフローチャートである。図14に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図14に示す処理手順は、コントローラ10によって繰り返し実行される。
図14に示すように、携帯端末1のコントローラ10は、文字入力のイベントが発生したか否かを判定する(ステップS401)。文字入力のイベントは、例えば、テキスト、メール、電話、ブラウザ等のアプリケーションの実行時に発生する文字入力のイベントを含む。コントローラ10は、文字入力のイベントが発生していないと判定した場合(ステップS401でNo)、図14に示す処理手順を終了させる。コントローラ10は、文字入力のイベントが発生していると判定した場合(ステップS401でYes)、処理をステップS402に進める。
コントローラ10は、飛行装置100が浮遊しているか否かを判定する(ステップS402)。例えば、コントローラ10は、飛行装置100に浮遊を指示した場合に、飛行装置100が浮遊していると判定する。例えば、コントローラ10は、気圧センサ18、加速度センサ15等の検出結果に基づいて飛行装置100が浮遊しているか否かを判定してもよい。
コントローラ10は、飛行装置100が浮遊していないと判定した場合(ステップS402でNo)、処理をステップS403に進める。コントローラ10は、キーによる入力画面に基づく入力処理を実行する(ステップS403)。キーによる入力画面に基づく入力処理は、キーを含む入力画面をディスプレイ2Aに表示させ、当該キーに対する入力操作を検出した場合に、当該キーに対応した文字を入力データとして受け付ける処理を含む。キーによる入力画面に基づく入力処理は、例えば、終了操作等を検出するまで処理が実行される。コントローラ10は、入力が終了すると、入力画面をディスプレイ2Aから消去する(ステップS405)。コントローラ10は、入力画面を消去すると、図14に示す処理手順を終了させる。
コントローラ10は、飛行装置100が浮遊していると判定した場合(ステップS402でYes)、処理をステップS404に進める。コントローラ10は、音声による入力画面に基づく入力処理を実行する(ステップS404)。音声による入力画面に基づく入力処理は、音声の入力を促す入力画面をディスプレイ2Aに表示させ、マイク8を介して入力された音声に対応した文字または文字列を入力データとして受け付ける処理を含む。音声による入力画面に基づく入力処理は、例えば、終了の音声等を検出するまで処理が実行される。コントローラ10は、音声による入力が終了すると、入力画面をディスプレイ2Aから消去する(ステップS405)。コントローラ10は、入力画面を消去すると、図14に示す処理手順を終了させる。また、コントローラ10は、飛行装置100が浮遊していると判定した場合、入力画面を表示させずに、音声による入力処理のみを行わせてもよい。この場合、コントローラ10は、表示しない入力画面の入力内容を音声によりスピーカ11から出力させ、ユーザが音声により所定の入力を行うための補助をしてもかまわない。
例えば、飛行装置100に接続された携帯端末1が浮遊している場合、利用者は、当該携帯端末1に対してタッチ、フリック等のジェスチャを行うことが困難な場合がある。携帯端末1は、飛行装置100に接続された場合に、飛行装置100が浮遊しているとき、キーによる入力から音声入力に切り替えることで、非接触での入力を可能となり、操作性の低下を抑制することができる。携帯端末1は、飛行装置100によって浮遊した状態で入力を受け付けることができるため、斬新な演出を利用者に提供できる。
携帯端末1のメールの表示機能の一例について説明する。
メールアプリケーション9Fは、自機が飛行装置100に接続された場合に、所定の条件を満たすか否かに応じて、メールを表示する機能を変更する機能を提供できる。所定の条件は、例えば、自機が飛行装置100に接続された場合に、飛行装置100が浮遊しているとの条件を含む。
設定データ9Zは、携帯端末1が飛行装置100に装着されている場合に、所定の条件に応じてメールの表示を変更する機能を有効にするか、無効にするかを示すデータを含む。携帯端末1は、設定データ9Zの設定によって、所定の条件に応じてメールの表示機能を変更するか否かを判定できる。
図15は、携帯端末1によってメールの表示機能を切り替える一例を示す図である。図15のステップS51に示すように、携帯端末1は、飛行装置100に接続された場合に、飛行装置100が浮遊していないとき、メール画面45Aをタッチスクリーンディスプレイ2に表示する。メール画面45Aは、メールの標題、差出人、本文を所定の文字サイズで表示する。所定の文字サイズは、例えば、携帯端末1で予め設定され、飛行装置100が浮遊していない場合の文字サイズを含む。図15のステップS52に示すように、携帯端末1は、飛行装置100に接続された場合に、飛行装置100が浮遊しているとき、メール画面45Bをタッチスクリーンディスプレイ2に表示する。メール画面45Bは、メールの標題、差出人、本文を、メール画面45Aの文字サイズよりも大きなサイズで表示する。
図15に示す例では、携帯端末1は、メール画面45Bの標題、差出人、本文の文字サイズをメール画面45Aよりも大きくする場合について説明するが、これに限定されない。例えば、携帯端末1は、メール画面45Bの標題、差出人、本文の文字の少なくとも一つの文字サイズをメール画面45Aよりも大きくしてもよい。
例えば、飛行装置100が浮遊している場合、当該飛行装置100に接続された携帯端末1と利用者との距離が離れたり、飛行装置100が揺れて安定しなかったりする可能性がある。携帯端末1は、自機が接続された飛行装置100が浮遊している場合、タッチスクリーンディスプレイ2に表示するメールの文字サイズを大きくすることで、飛行装置100が浮遊している場合の視認性の低下を抑制することができる。
図16は、携帯端末1によるメールの表示機能に関する制御の一例の処理手順を示すフローチャートである。図16に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図16に示す処理手順は、コントローラ10によって繰り返し実行される。
図16に示すように、携帯端末1のコントローラ10は、メールの表示イベントが発生したか否かを判定する(ステップS501)。メールの表示イベントは、例えば、メールの受信一覧でメールが選択された場合に発生する。コントローラ10は、メールの表示イベントが発生していないと判定した場合(ステップS501でNo)、図16に示す処理手順を終了させる。コントローラ10は、メールの表示イベントが発生していると判定した場合(ステップS501でYes)、処理をステップS502に進める。
コントローラ10は、飛行装置100が浮遊しているか否かを判定する(ステップS502)。例えば、コントローラ10は、飛行装置100に浮遊を指示した場合に、飛行装置100が浮遊していると判定する。例えば、コントローラ10は、気圧センサ18、加速度センサ15等の検出結果に基づいて飛行装置100が浮遊しているか否かを判定してもよい。
コントローラ10は、飛行装置100が浮遊していないと判定した場合(ステップS502でNo)、処理をステップS503に進める。コントローラ10は、指定されたメールを所定の文字サイズでディスプレイ2Aに表示させる(ステップS503)。コントローラ10は、メールを表示すると、処理をステップS505に進める。
コントローラ10は、飛行装置100が浮遊していると判定した場合(ステップS502でYes)、処理をステップS504に進める。コントローラ10は、指定されたメールの文字サイズを拡大してディスプレイ2Aに表示させる(ステップS504)。例えば、コントローラ10は、メールの文字サイズを所定のサイズよりも大きな文字サイズに拡大する。コントローラ10は、メールを表示すると、処理をステップS505に進める。
コントローラ10は、表示イベントを終了するか否かを判定する(ステップS505)。コントローラ10は、表示イベントを終了しないと判定した場合(ステップS505でNo)、処理を既に説明したステップS505に戻す。コントローラ10は、表示イベントを終了すると判定した場合(ステップS505でYes)、処理をステップS506に進める。コントローラ10は、指定されたメールの表示を終了する(ステップS506)。コントローラ10は、ディスプレイ2Aに表示していたメールを消去すると、図16に示す処理手順を終了する。
携帯端末1のマップの表示機能の一例について説明する。
ナビゲートアプリケーション9Gは、道案内等のためのナビゲーション機能を提供する。ナビゲートアプリケーション9Gは、飛行装置100に接続された場合に、所定の条件を満たすか否かに応じて、マップの表示機能を変更する機能を提供できる。所定の条件は、例えば、飛行装置100に接続された場合に、飛行装置100が浮遊しているとの条件を含む。ナビゲートアプリケーション9Gは、飛行装置100に接続された場合に、飛行装置100を利用者の前方に浮遊させた状態でナビゲートする機能を提供できる。
設定データ9Zは、携帯端末1が飛行装置100に装着されている場合に、所定の条件に応じてマップの表示を変更する機能を有効にするか、無効にするかを示すデータを含む。携帯端末1は、設定データ9Zの設定によって、所定の条件に応じてマップの表示機能を変更するか否かを判定できる。
図17は、携帯端末1によってマップの表示機能を切り替える一例を示す図である。図17のステップS71に示すように、携帯端末1は、飛行装置100に接続された場合に、飛行装置100が浮遊していないとき、マップ画面47Aをタッチスクリーンディスプレイ2に表示する。マップ画面47Aは、マップの画像を所定の表示サイズで表示する画面である。図17のステップS72に示すように、携帯端末1は、飛行装置100に接続された場合に、飛行装置100が浮遊しているとき、マップ画面47Bをタッチスクリーンディスプレイ2に表示する。マップ画面47Bは、マップ画面47Aと同一の画面のマップの画像を拡大したマップを表示する画面である。
例えば、飛行装置100が浮遊している場合、当該飛行装置100に接続された携帯端末1と利用者との距離が離れたり、飛行装置100が揺れて安定しなかったりする可能性がある。携帯端末1は、自機が接続された飛行装置100が浮遊している場合、タッチスクリーンディスプレイ2に表示するマップを拡大することで、飛行装置100が浮遊している場合の視認性の低下を抑制することができる。携帯端末1は、利用者にマップの表示機能の切り替えを操作させる必要がないため、飛行装置100で浮遊しても、利便性の低下を抑制することができる。
図18は、携帯端末1によるマップの表示機能に関する制御の一例の処理手順を示すフローチャートである。図18に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図18に示す処理手順は、コントローラ10によって繰り返し実行される。
図18に示すように、携帯端末1のコントローラ10は、マップの表示イベントが発生したか否かを判定する(ステップS601)。マップの表示イベントは、例えば、ナビゲーションの画面の変更時、切り替え時等に発生する。コントローラ10は、マップの表示イベントが発生していないと判定した場合(ステップS601でNo)、図18に示す処理手順を終了させる。コントローラ10は、マップの表示イベントが発生していると判定した場合(ステップS601でYes)、処理をステップS602に進める。
コントローラ10は、飛行装置100が浮遊しているか否かを判定する(ステップS602)。例えば、コントローラ10は、飛行装置100に浮遊を指示した場合に、飛行装置100が浮遊していると判定する。例えば、コントローラ10は、気圧センサ18、加速度センサ15等の検出結果に基づいて飛行装置100が浮遊しているか否かを判定してもよい。
コントローラ10は、飛行装置100が浮遊していないと判定した場合(ステップS602でNo)、処理をステップS603に進める。コントローラ10は、指定されたマップを所定の表示サイズでディスプレイ2Aに表示させる(ステップS603)。コントローラ10は、マップを所定の表示サイズで表示させると、処理をステップS605に進める。
コントローラ10は、飛行装置100が浮遊していると判定した場合(ステップS602でYes)、処理をステップS604に進める。コントローラ10は、指定された所定の表示サイズのマップを拡大してディスプレイ2Aに表示させる(ステップS604)。コントローラ10は、マップを所定の表示サイズよりも拡大して表示させると、処理をステップS605に進める。
コントローラ10は、表示イベントを終了するか否かを判定する(ステップS605)。コントローラ10は、表示イベントを終了しないと判定した場合(ステップS605でNo)、処理を既に説明したステップS605に戻す。コントローラ10は、表示イベントを終了すると判定した場合(ステップS605でYes)、処理をステップS606に進める。コントローラ10は、指定されたマップの表示を終了する(ステップS606)。コントローラ10は、ディスプレイ2Aに表示していたマップを消去させると、図18に示す処理手順を終了する。
図19は、携帯端末1によってマップの表示機能を切り替える他の一例を示す図である。図19に示すように、携帯端末1は、飛行装置100に接続された場合に、飛行装置100が浮遊しているとき、携帯端末1のプロジェクタ23の投影領域Eにマップの画像を投影する。投影領域Eは、プロジェクタ23が投影可能な領域である。投影領域Eは、利用者の近くの地面の領域である。投影領域Eは、自機が歩行状態である場合、利用者の進行方向の地面の領域とすることができる。
例えば、飛行装置100が浮遊している場合、当該飛行装置100に接続された携帯端末1と利用者との距離が離れたり、飛行装置100が揺れて安定しなかったりする可能性がある。携帯端末1は、自機が接続された飛行装置100が浮遊している場合、プロジェクタ23によってマップの画像を地面等に表示することで、飛行装置100が浮遊している場合の視認性の低下を抑制することができる。携帯端末1は、歩行中の利用者に地面に投影されたマップを参照させることで、飛行装置100による移動中の視認性の向上を図ることができる。
図20は、携帯端末1によるマップの表示機能に関する制御の他の一例の処理手順を示すフローチャートである。図20に示す処理手順は、コントローラ10が制御プログラム9Aを実行することによって実現される。図20に示す処理手順は、コントローラ10によって繰り返し実行される。
図20に示すように、携帯端末1のコントローラ10は、マップの表示イベントが発生したか否かを判定する(ステップS601)。コントローラ10は、マップの表示イベントが発生していないと判定した場合(ステップS601でNo)、図20に示す処理手順を終了させる。コントローラ10は、マップの表示イベントが発生していると判定した場合(ステップS601でYes)、処理をステップS602に進める。
コントローラ10は、飛行装置100が浮遊しているか否かを判定する(ステップS602)。例えば、コントローラ10は、飛行装置100に浮遊を指示した場合に、飛行装置100が浮遊していると判定する。例えば、コントローラ10は、気圧センサ18、加速度センサ15等の検出結果に基づいて飛行装置100が浮遊しているか否かを判定してもよい。
コントローラ10は、飛行装置100が浮遊していないと判定した場合(ステップS602でNo)、処理をステップS603に進める。コントローラ10は、指定されたマップを所定の表示サイズでディスプレイ2Aに表示させる(ステップS603)。コントローラ10は、マップを所定の表示サイズで表示すると、処理をステップS614に進める。
コントローラ10は、飛行装置100が浮遊していると判定した場合(ステップS602でYes)、処理をステップS611に進める。コントローラ10は、カメラで撮影した画像に基づき、利用者の位置を特定する特定処理を実行する(ステップS611)。例えば、特定処理を実行したコントローラ10は、飛行装置100を浮上した位置で回動させながら、自機又は飛行装置100のカメラで自機の周囲を撮影する。コントローラ10は、撮影した画像と、予め用意された利用者の画像とを比較し、利用者が存在するか否かを判定する。コントローラ10は、利用者が存在しない場合、利用者の位置を特定できなかったことを結果としてストレージ9に記憶する。コントローラ10は、利用者が存在した場合、自機の現在位置、近接センサ5、距離センサ等で測定した利用者までの距離等の情報に基づいて利用者の位置を算出する。コントローラ10は、特定処理が終了すると、処理をステップS612に進める。
コントローラ10は、特定した利用者の位置に基づいて投影領域Eを特定する(ステップS612)。例えば、コントローラ10は、利用者の位置と自機と利用者の位置とプロジェクタ23の投影角度とに基づいて、利用者の近くの物体表面の領域を投影領域Eとして特定する。コントローラ10は、特定した投影領域Eに所定の表示サイズのマップをプロジェクタ23から投影させる(ステップS613)。その結果、携帯端末1は、利用者の近くにマップの画像をプロジェクタ23から投影することができる。
コントローラ10は、表示イベントを終了するか否かを判定する(ステップS614)。コントローラ10は、表示イベントを終了しないと判定した場合(ステップS614でNo)、処理を既に説明したステップS614に戻す。コントローラ10は、表示イベントを終了すると判定した場合(ステップS614でYes)、処理をステップS615に進める。コントローラ10は、終了処理を実行する(ステップS615)。終了処理は、プロジェクタ23による投影を終了させる処理を含む。終了処理は、ディスプレイ2Aに表示していたマップを消去する処理を含む。コントローラ10は、終了処理を終了すると、図20に示す処理手順を終了する。
携帯端末1のナビゲート機能の一例について説明する。
携帯端末1は、ナビゲートアプリケーション9Gの実行によるナビゲート機能を所定の条件に応じて変更することができる。例えば、携帯端末1は、表示による誘導の要求を検出した場合、ナビゲート情報の表示によるナビゲート機能を提供する。例えば、携帯端末1は、飛行装置100に接続され、飛行装置100の浮遊によるナビゲートの要求を検出した場合、飛行装置100の浮遊によるナビゲート機能へ機能を変更する。
図21は、携帯端末1によるナビゲートの機能に関する制御の一例の処理手順を示すフローチャートである。図21に示す処理手順は、コントローラ10が制御プログラム9A、飛行体連携プログラム9B及びナビゲートアプリケーション9Gを実行することによって実現される。図21に示す処理手順では、飛行装置100の周囲の人や障害物との衝突回避に関する制御を省略している。
図21に示すように、携帯端末1のコントローラ10は、設定された目的地までのルートを特定する(ステップS701)。例えば、携帯端末1は、自機の現在位置と目的地の位置と地図情報とに基づいてルートを特定する。コントローラ10は、飛行装置100による誘導であるか否かを判定する(ステップS702)。例えば、コントローラ10は、利用者が飛行装置100による誘導を要求した場合に、飛行装置100による誘導であると判定する。
コントローラ10は、飛行装置100による誘導ではないと判定した場合(ステップS702でNo)、携帯端末1の表示による誘導であると判定し、処理をステップS703に進める。コントローラ10は、飛行装置100を飛行させずに、誘導画面の表示による誘導処理を実行する(ステップS703)。誘導処理は、目的地に到着するまで誘導情報をディスプレイ2Aに表示する処理を含む。誘導処理は、自機の現在位置が誘導条件を満たすと、利用者を誘導するための情報を通知する処理を含む。誘導条件は、例えば、左折または右折する箇所に接近したことを検出、ランドマークに接近したことを検出、目的地に接近していることを検出等の条件を含む。誘導処理は、目的地に到着した場合に終了する。コントローラ10は、誘導処理が終了すると、図21に示す処理手順を終了させる。
コントローラ10は、飛行装置100による誘導であると判定した場合(ステップS702でYes)、処理をステップS704に進める。コントローラ10は、飛行装置100に浮上を指示する制御情報を送信する(ステップS704)。例えば、コントローラ10は、浮上する高さ等を含む制御情報を、通信ユニット6を介して飛行装置100に送信する。その結果、飛行装置100は、携帯端末1を装着した状態で所定の高さまで浮上する。その後、コントローラ10は、処理をステップS705に進める。
コントローラ10は、飛行装置100の飛行速度と飛行方向と飛行距離とを決定する(ステップS705)。例えば、コントローラ10は、目的地までのルートと自機の現在位置と利用者の移動速度と利用者までの距離とに基づいて、飛行装置100と利用者との距離が一定の間隔を保つように、飛行装置100の飛行速度、飛行方向、飛行距離等を決定する。例えば、コントローラ10は、飛行装置100から利用者までの距離が離れた場合、その場所で移動せずに停止飛行するための飛行速度、飛行方向、飛行距離等を決定する。その後、コントローラ10は、処理をステップS706に進める。
コントローラ10は、飛行速度と飛行方向と飛行距離とを指示する制御情報を送信する(ステップS706)。例えば、コントローラ10は、飛行速度と飛行方向と飛行距離とを含む制御情報を、通信ユニット6を介して飛行装置100に送信する。その結果、飛行装置100は、制御情報に基づいて、携帯端末1を装着した状態で指示された位置まで飛行する、またはその場でホバリングする。その後、コントローラ10は、処理をステップS707に進める。
コントローラ10は、自機の現在位置に基づいて、飛行装置100が目的地に到着したか否かを判定する(ステップS707)。コントローラ10は、飛行装置100が目的地に到着していないと判定した場合(ステップS707でNo)、処理を既に説明したステップS705に戻す。コントローラ10は、飛行装置100が目的地に到着したと判定した場合(ステップS707でYes)、処理をステップS708に進める。
コントローラ10は、飛行装置100に飛行終了を指示する制御情報を送信する(ステップS708)。例えば、コントローラ10は、着陸を指示する制御情報を、通信ユニット6を介して飛行装置100に送信する。その結果、飛行装置100は、携帯端末1を装着した状態で着陸する。その後、コントローラ10は、図21に示す処理手順を終了させる。
携帯端末1は、飛行させた飛行装置100によって利用者を目的地に誘導することによって、ディスプレイ2Aを見ながらの歩行が不要となり、誘導すべき利用者の安全性を向上させることができる。例えば、携帯端末1は、飛行させた飛行装置100によって利用者を目的地に誘導する場合に、マップの画像、誘導情報等をプロジェクタ23から利用者の前方の投影領域Eに投影することで、利便性を向上させることができる。
携帯端末1のヘルス機能の一例について説明する。
制御プログラム9Aは、加速度センサ15が検出した加速度の値に基づいて、自機を所持している利用者が所定の移動方法で移動しているかを判定するための機能を提供する。
算出アプリケーション9Hは、例えば、利用者のエネルギー消費量を算出するために用いられる。算出アプリケーション9Hは、例えば、利用者の移動速度(歩数)とエネルギー消費量との関係式に、利用者の移動速度を当てはめて、利用者の消費量を算出するための機能を提供する。この利用者のエネルギー消費量は、利用者の移動方法を考慮して算出してもよい。例えば、利用者が同じ歩数を歩いた場合に、算出アプリケーション9Hは、利用者が歩きおよび走行のいずれかに応じて、エネルギー消費量の関係式を変更してもよい。この利用者のエネルギー消費量は、利用者の移動環境を考慮して算出してもよい。例えば、利用者が同じ歩数を歩いた場合に、算出アプリケーション9Hは、利用者が歩いている道が平坦であるか、上り坂であるかに応じて、エネルギー消費量の関係式を変更してもよい。このエネルギー消費量としては、例えば、日本国の計量法に基づいて「人若しくは動物が摂取する物の熱量又は人若しくは動物が代謝により消費する熱量の計量」として熱力学カロリー(cal)が採用される。エネルギー消費量の計量はこれに限られるものではなく、CGPM(Conference General des Poids et Mesures)に基づいてジュール(J)が採用されてもよい。
算出アプリケーション9Hが算出する対象は、利用者のエネルギー消費量に限定されるものではなく、利用者のエクササイズ、歩行によって移動した際の歩数などを算出してもよい。「エクササイズ」とは、身体活動の量を表す単位である。エクササイズは、後述するメッツに身体活動の実施時間を乗じて算出される運動の量である。このメッツとは、身体活動の強さを表す単位である。この身体活動の強さは、身体活動の種類ごとに異なる。メッツは、例えば使用者の移動方法ごとに設定される。メッツは、活動量を示す活動ファクタであるエネルギー消費量の演算に用いてもよい。メッツでは、安静時の身体活動の強さに対する比として表される。例えば、座って安静にしている状態が1メッツ、普通歩行が3メッツに相当するとされる。つまり、普通歩行の身体活動の強さは、安静時の身体活動の強さに対して、3倍であることを意味する。
携帯端末1は、自機の移動状態が歩行状態または走行状態である場合、算出アプリケーション9Hによって利用者の歩数、消費量等を算出するヘルス機能を提供できる。携帯端末1は、飛行装置100に接続された自機が所定の条件を満たすとき、自機のヘルス機能を変更する。
例えば、携帯端末1は、飛行装置100に装着されている場合、利用者の移動による振動に基づいて移動速度を検出していると、その振動を検出することができない。そのため、携帯端末1は、所定の条件が飛行装置100に装着されている場合かつ飛行装置100の浮遊中であるとき、利用者が自機を携帯している場合のヘルス機能を変更する。携帯端末1は、飛行装置100の移動量に基づいて利用者の移動速度(歩数)、消費量等を推測することができる。携帯端末1は、飛行装置100に接続された状態で飛行による移動しているときも、利用者の移動速度(歩数)、消費量等を推測できるため、利便性の低下を抑制することができる。その結果、携帯端末1は、利用者が自機を身に付けなくても、歩数、消費量等の活動ログを残すことができる。携帯端末1は、自機を飛行装置100に接続して利用する利用者の機会を増加させることが可能となり、斬新なサービスを提供することができる。
図22は、飛行中の携帯端末1によるヘルス機能の制御の一例の処理手順を示すフローチャートである。図22に示す処理手順は、コントローラ10が制御プログラム9A及び算出アプリケーション9Hを実行することによって実現される。図22に示す処理手順は、携帯端末1が飛行装置100に装着された場合に、コントローラ10によって繰り返し実行される。
図22に示すように、携帯端末1のコントローラ10は、飛行装置100が浮遊を開始しているか否かを判定する(ステップS801)。飛行装置100の浮遊は、例えば、飛行装置100の浮上、飛行等を含む。例えば、コントローラ10は、飛行装置100に浮遊開始を指示した場合に、飛行装置100が浮遊を開始していると判定する。例えば、コントローラ10は、気圧センサ18、加速度センサ15等の検出結果に基づいて飛行装置100の浮遊開始を判別してもよい。コントローラ10は、飛行装置100が浮遊を開始していないと判定した場合(ステップS801でNo)、図22に示す処理手順を終了させる。コントローラ10は、飛行装置100が浮遊を開始していると判定した場合(ステップS801でYes)、処理をステップS802に進める。
コントローラ10は、浮遊する飛行体に装着された自機の位置情報を取得する(ステップS802)。例えば、コントローラ10は、近接センサ5等の検出結果に基づいて飛行装置100と利用者との距離が所定の距離より近い場合に、GPS受信機20で受信した位置情報を取得する。その結果、コントローラ10は、利用者の位置に近い現在位置を取得することができる。コントローラ10は、取得した位置情報を時系列的にストレージ9に記憶する(ステップS803)。コントローラ10は、ストレージ9の位置情報に基づいて、飛行装置100が浮遊している場合の移動量を算出する(ステップS804)。例えば、コントローラ10は、飛行装置100が移動を開始してから現在までのストレージ9の位置情報に基づいて、移動量を算出する。コントローラ10は、算出した移動量に基づいて、ストレージ9に記憶している移動量を更新する(ステップS805)。その後、コントローラ10は、処理をステップS806に進める。
コントローラ10は、飛行装置100が浮遊を終了したか否かを判定する(ステップS806)。例えば、コントローラ10は、飛行装置100に浮遊終了を指示した場合に、飛行装置100が浮遊を終了していると判定する。例えば、コントローラ10は、気圧センサ18、加速度センサ15等の検出結果に基づいて飛行装置100の浮遊終了を判別してもよい。コントローラ10は、飛行装置100が浮遊を終了していないと判定した場合(ステップS806でNo)、飛行装置100が浮遊を継続しているため、処理を既に説明したステップS802に戻す。コントローラ10は、飛行装置100が浮遊を終了していると判定した場合(ステップS806でYes)、処理をステップS807に進める。
コントローラ10は、飛行装置100の浮遊開始から浮遊終了までの移動量と利用者の歩幅等とに基づいて利用者の歩数を推測する(ステップS807)。例えば、コントローラ10は、推測した利用者の歩数とエネルギー消費量との関係式に、利用者の歩数を当てはめて、利用者の消費量を算出してもよい。コントローラ10は、推測した利用者の歩数をストレージ9に記憶する(ステップS808)。例えば、コントローラ10は、推測した歩数を、飛行装置100が浮遊している場合の利用者の歩数としてストレージ9に記憶してもよい。例えば、コントローラ10は、推測した歩数を、利用者が自機を携帯している場合の歩数に加算してもよい。その後、コントローラ10は、図22に示す処理手順を終了させる。
上記の実施形態では、携帯電子機器の例として、携帯端末1について説明したが、添付の請求項に係る携帯電子機器は、携帯端末1に限定されない。添付の請求項に係る携帯電子機器は、携帯端末1以外の携帯電子機器であってもよい。携帯電子機器は、例えば、モバイルフォン、スマートフォン、スマートウォッチ、携帯型パソコン、ヘッドマウントディスプレイ、デジタルカメラ、メディアプレイヤ、電子書籍リーダ、ナビゲータ、及びゲーム機を含むが、これに限定されない。
添付の請求項に係る技術を完全かつ明瞭に開示するために特徴的な実施形態に関し記載してきた。しかし、添付の請求項は、上記実施形態に限定されるべきものでなく、本明細書に示した基礎的事項の範囲内で当該技術分野の当業者が創作しうるすべての変形例及び代替可能な構成を具現化するように構成されるべきである。