(57)【要約】  実施形態は、メインコントローラからの制御信号が失われるときに、ロボットビークルの制御を維持するためデバイスおよび方法を含む。検出器回路は、有効な制御信号の喪失を検出するために、メインコントローラから電子速度コントローラ（ＥＳＣ）への信号を監視し得る。検出器回路は、有効な制御信号の喪失を検出したことに応答して、補助コントローラに、ＥＳＣへのモータ制御信号を出すことを開始させ得る。補助コントローラは、モータ制御命令のあらかじめロードされたセットに従って、モータ制御信号をＥＳＣに出し得る。モータ制御命令のあらかじめロードされたセットは、メインコントローラから受信され得、かつ／または、ロボットビークルにセーフ動作モードに入らせる、または特定の操作を実行させる方式でモータを制御する、ＥＳＣへのモータ制御信号を補助コントローラに出させるように構成され得る。
2021510870.tif 000002
【特許請求の範囲】
【請求項１】
メインコントローラからの制御信号が失われるときに、ロボットビークルの制御を維持するための方法であって、
検出器回路が、電子速度コントローラ（ＥＳＣ）への有効な制御信号の喪失を検出するために、前記ロボットビークルのメインコントローラから前記ＥＳＣへの制御信号を監視するステップと、
前記ＥＳＣへの有効な制御信号の喪失を検出したことに応答して、前記ロボットビークルの制御を維持するように１以上のモータを制御するために、補助コントローラに前記ＥＳＣへのモータ制御信号を出すことを開始させるステップとを備える、方法。
【請求項２】
前記ＥＳＣへの前記メインコントローラからの有効な制御信号の喪失を検出したことに応答して、補助コントローラに前記ＥＳＣへのモータ制御信号を出すことを開始させるステップが、前記メインコントローラを前記ＥＳＣに結合する第１の信号経路を切断するステップと、前記補助コントローラを前記ＥＳＣに結合する第２の信号経路を接続するステップとを備える、請求項１に記載の方法。
【請求項３】
前記メインコントローラが前記ＥＳＣへの有効な制御信号の送信を再開することが可能であるかどうかを決定するステップと、
前記メインコントローラが前記ＥＳＣへの有効な制御信号の送信を再開することが可能であるとの決定に応答して、前記補助コントローラに前記ＥＳＣへのモータ制御信号の送信を停止させるステップとをさらに備える、請求項１に記載の方法。
【請求項４】
前記メインコントローラが前記ＥＳＣへの有効な制御信号の送信を再開することが可能であるかどうかを決定するステップが、前記メインコントローラがリブートプロセスを完了したことを検出するステップを備える、請求項３に記載の方法。
【請求項５】
前記補助コントローラが、前記ロボットビークルの制御を維持するように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように、メモリに記憶されているモータ制御命令によって構成される、請求項１に記載の方法。
【請求項６】
前記メモリに記憶されている前記モータ制御命令が、前記ロボットビークルにセーフ動作モードを引き受けさせるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように前記補助コントローラを構成する、請求項５に記載の方法。
【請求項７】
前記補助コントローラによって、有効な制御信号の前記喪失の前に前記メインコントローラからモータ制御命令を受信するステップと、
前記補助コントローラによって、前記受信されたモータ制御命令を前記メモリに記憶するステップとをさらに備える、請求項５に記載の方法。
【請求項８】
前記メインコントローラから受信された前記モータ制御命令が、有効な制御信号の前記喪失の前に、前記ロボットビークルに前記ロボットビークルの姿勢、方向、または速度を維持させるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように前記補助コントローラを構成する、請求項７に記載の方法。
【請求項９】
前記補助コントローラによって、前記ロボットビークルの制御を維持するように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すステップが、
前記ロボットビークルに操作を実行させるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すためのモータ制御命令のセットを実行するステップと、
モータ制御命令の前記セットが完了したかどうかを決定するステップと、
モータ制御命令の前記セットが完了したとの決定に応答して、前記ロボットビークルにセーフ動作モードを引き受けさせるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すステップとを備える、請求項１に記載の方法。
【請求項１０】
前記ＥＳＣへの有効な制御信号の喪失を検出するとタイマーを初期化するステップと、
モータ制御命令の前記セットが完了していないとの決定に応答して、前記タイマーが時間切れになったかどうかを決定するステップと、
前記タイマーが時間切れになったとの決定に応答して、前記ロボットビークルにセーフ動作モードを引き受けさせるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すステップとをさらに備える、請求項９に記載の方法。
【請求項１１】
前記補助コントローラの試験を実行するステップと、
前記補助コントローラの障害が検出されるかどうかを決定するステップと、
前記補助コントローラの障害を検出したことに応答して、前記ロボットビークルを保護するための行動をとるステップとをさらに備える、請求項１に記載の方法。
【請求項１２】
ロボットビークルであって、
モータと、
モータに結合された電子速度コントローラ（ＥＳＣ）と、
前記ＥＳＣに結合されたメインコントローラと、
前記ＥＳＣへの有効な制御信号の喪失を検出するために、前記ＥＳＣへの前記メインコントローラからの制御信号を監視するように構成される検出器回路と、
前記ＥＳＣへの前記メインコントローラからの有効な制御信号の喪失を前記検出器回路が検出したことに応答して、前記ロボットビークルの制御を維持するように前記モータを制御するために、前記ＥＳＣにモータ制御信号を出すように構成される補助コントローラとを備える、ロボットビークル。
【請求項１３】
前記検出器回路および前記補助コントローラに接続されたスイッチであって、前記ＥＳＣへの前記メインコントローラからの有効な制御信号の喪失を前記検出器回路が検出したことに応答して、前記補助コントローラに前記ＥＳＣへの前記モータ制御信号を出すことを開始させるために、前記メインコントローラを前記ＥＳＣに結合する第１の信号経路を切断し、前記補助コントローラを前記ＥＳＣに結合する第２の信号経路を接続するように構成される、スイッチをさらに備える、請求項１２に記載のロボットビークル。
【請求項１４】
前記検出器回路がさらに、前記メインコントローラが前記ＥＳＣへの有効な制御信号の送信を再開することが可能であるかどうかを決定するように構成される、請求項１２に記載のロボットビークル。
【請求項１５】
前記検出器回路および前記補助コントローラに接続されたスイッチであって、前記メインコントローラが前記ＥＳＣへの有効な制御信号の送信を再開することが可能であるとの前記検出器回路による決定に応答して、前記補助コントローラに前記ＥＳＣへのモータ制御信号の送信を停止させるために前記補助コントローラを前記ＥＳＣに結合する信号経路を切断し、前記メインコントローラを前記ＥＳＣに結合する信号経路を接続するように構成される、スイッチをさらに備える、請求項１４に記載のロボットビークル。
【請求項１６】
前記検出器回路がさらに、前記メインコントローラがリブートプロセスを完了したことを検出したことに応答して、前記メインコントローラが前記ＥＳＣへの有効な制御信号の送信を再開することが可能であると決定するように構成される、請求項１４に記載のロボットビークル。
【請求項１７】
前記補助コントローラが、前記ロボットビークルの制御を維持するように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように、メモリに記憶されているモータ制御命令によって構成される、請求項１２に記載のロボットビークル。
【請求項１８】
前記メモリに記憶されている前記モータ制御命令が、前記ロボットビークルにセーフ動作モードを引き受けさせるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように前記補助コントローラを構成する、請求項１７に記載のロボットビークル。
【請求項１９】
前記補助コントローラが、
有効な制御信号の前記喪失の前に前記メインコントローラからモータ制御命令を受信し、
前記受信されたモータ制御命令を前記メモリに記憶するように構成される、請求項１７に記載のロボットビークル。
【請求項２０】
前記メインコントローラから受信された前記モータ制御命令が、有効な制御信号の前記喪失の前に、前記ロボットビークルに前記ロボットビークルの姿勢、方向、または速度を維持させるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように前記補助コントローラを構成する、請求項１９に記載のロボットビークル。
【請求項２１】
前記補助コントローラがさらに、
前記ロボットビークルに操作を実行させるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すためのモータ制御命令のセットを実行し、
モータ制御命令の前記セットが完了したかどうかを決定し、
モータ制御命令の前記セットが完了したとの決定に応答して、前記ロボットビークルにセーフ動作モードを引き受けさせるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように構成される、請求項１２に記載のロボットビークル。
【請求項２２】
前記補助コントローラがさらに、
前記ＥＳＣへの前記メインコントローラからの有効な制御信号の喪失を検出するとタイマーを初期化し、
モータ制御命令の前記セットが完了していないとの決定に応答して、前記タイマーが時間切れになったかどうかを決定し、
前記タイマーが時間切れになったとの決定に応答して、前記ロボットビークルにセーフ動作モードを引き受けさせるように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように構成される、請求項２１に記載のロボットビークル。
【請求項２３】
前記メインコントローラが、プロセッサ実行可能命令を用いて、
前記補助コントローラの試験を実行し、
前記補助コントローラの障害が検出されるかどうかを決定し、
前記補助コントローラの障害を検出したことに応答して、前記ロボットビークルを保護するための行動をとる
ように構成される、請求項１２に記載のロボットビークル。
【請求項２４】
前記検出器回路が前記補助コントローラ内の構成要素である、請求項１２に記載のロボットビークル。
【請求項２５】
前記補助コントローラが前記ＥＳＣ内の構成要素である、請求項１２に記載のロボットビークル。
【請求項２６】
ロボットビークルにおいて使用するための補助コントローラであって、
電子速度コントローラ（ＥＳＣ）へのメインコントローラからの有効な制御信号の喪失を検出器回路が検出したことに応答して、前記ロボットビークルの制御を維持するように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように構成される、補助コントローラ。
【請求項２７】
前記メインコントローラを前記ＥＳＣに結合する第１の信号経路を切断し、前記補助コントローラを前記ＥＳＣに結合する第２の信号経路を接続するように前記検出器回路がスイッチを制御したことに応答して、前記補助コントローラがさらに、前記ＥＳＣにモータ制御信号を出すように構成される、請求項２６に記載の補助コントローラ。
【請求項２８】
前記補助コントローラがさらに、
前記メインコントローラが前記ＥＳＣの制御を再開することが可能であるかどうかを決定し、
前記メインコントローラが前記ＥＳＣの制御を再開することが可能であるとの前記検出器回路による決定に応答して、前記ＥＳＣへのモータ制御信号の送信を停止するように構成される、請求項２６に記載の補助コントローラ。
【請求項２９】
前記補助コントローラが、前記ロボットビークルの制御を維持するように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すように、メモリに記憶されているモータ制御命令によって構成される、請求項２６に記載の補助コントローラ。
【請求項３０】
ロボットビークルであって、
前記ロボットビークルのメインコントローラから電子速度コントローラ（ＥＳＣ）への有効な制御信号の喪失を監視するための手段と、
前記ＥＳＣへの前記メインコントローラからの有効な制御信号の喪失の検出に応答して、前記ロボットビークルの制御を維持するように１以上のモータを制御するために、前記ＥＳＣにモータ制御信号を出すための手段とを備える、ロボットビークル。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許出願は、本出願の譲受人に譲渡され、参照によって本明細書に明確に組み込まれる、２０１８年１月１５日に出願された「Managing Limited Safe Mode Operations Of A Robotic Vehicle」という表題の米国特許出願第１５／８７１，３３２号の優先権を主張する。
【背景技術】
【０００２】
ロボットビークル（たとえば、「ＵＡＶ」または「ドローン」）は、ますます複雑になっているハードウェアおよびソフトウェアを用いて構成される。ロボットビークルは、飛行制御および航法、センサデータ（たとえば、カメラ、ソナー、ジャイロスコープ、加速度計などからの入力）の処理、ＧＰＳ信号の受信および処理、通信のための無線の制御などの、ロボットビークルの多数の機能を扱うメインコントローラによって制御される。これらの構成要素の複雑さおよび任務の機能が高まるにつれて、ハードウェアまたはソフトウェアがメインコントローラの「クラッシュ」およびリブートを引き起こす可能性も高まる。
【０００３】
メインコントローラは、メインコントローラのソフトウェアクラッシュの際、ハード再起動を実行する。ハード再起動を実行するとき、メインコントローラは、ビークルのロータ、車輪、プロペラなどを駆動するモータなどの、ビークルの推進のためにモータを制御する電子速度コントローラ（ＥＳＣ）へのシグナリングを停止する。したがって、ハード再起動の間、メインコントローラにはビークルの推進に対する制御権がなく、これにより、ＥＳＣがロータ、車輪、プロペラなどへの電力供給を停止し、ロボットビークルが一時的に制御不能になり得る。
【発明の概要】
【課題を解決するための手段】
【０００４】
様々な実施形態は、メインコントローラからの信号が失われるときに、ロボットビークルの制御を維持するために、ロボットビークルのプロセッサ上で実施され得る方法を含む。様々な実施形態は、検出器回路によって、電子速度コントローラ（ＥＳＣ）への有効な制御信号の喪失を検出するために、ロボットビークルのメインコントローラからＥＳＣへの制御信号を監視するステップと、ＥＳＣへの有効な制御信号の喪失を検出したことに応答して、ロボットビークルの制御を維持するように１以上のモータを制御するために、補助コントローラにＥＳＣへのモータ制御信号を出すことを開始させるステップとを含み得る。
【０００５】
いくつかの実施形態では、ＥＳＣへのメインコントローラからの有効な制御信号の喪失を検出したことに応答して、補助コントローラにＥＳＣへのモータ制御信号を出すことを開始させるステップは、メインコントローラをＥＳＣに結合する第１の信号経路を切断するステップと、補助コントローラをＥＳＣに結合する第２の信号経路を接続するステップとを含み得る。
【０００６】
いくつかの実施形態はさらに、メインコントローラがＥＳＣへの有効な制御信号の送信を再開することが可能であるかどうかを決定するステップと、メインコントローラがＥＳＣへの有効な制御信号の送信を再開することが可能であるとの決定に応答して、補助コントローラにＥＳＣへのモータ制御信号の送信を停止させるステップとを含み得る。そのような実施形態では、メインコントローラがＥＳＣへの有効な制御信号の送信を再開することが可能であるかどうかを決定するステップは、メインコントローラがリブートプロセスを完了したことを検出するステップを含み得る。
【０００７】
いくつかの実施形態では、補助コントローラは、ロボットビークルの制御を維持するように１以上のモータを制御するために、ＥＳＣにモータ制御信号を出すように、メモリに記憶されているモータ制御命令によって構成され得る。そのような実施形態では、メモリに記憶されているモータ制御命令は、ロボットビークルにセーフ動作モードを引き受け(assume)させるように１以上のモータを制御するために、ＥＳＣにモータ制御信号を出すように補助コントローラを構成し得る。
【０００８】
いくつかの実施形態はさらに、補助コントローラによって、有効な制御信号の喪失の前にメインコントローラからモータ制御命令を受信するステップと、補助コントローラによって、受信されたモータ制御命令をメモリに記憶するステップとを含み得る。そのような実施形態では、メインコントローラから受信されたモータ制御命令は、有効な制御信号の喪失の前に、ロボットビークルにロボットビークルの姿勢、方向、または速度を維持させるように１以上のモータを制御するために、ＥＳＣにモータ制御信号を出すように補助コントローラを構成し得る。
【０００９】
いくつかの実施形態では、補助コントローラによって、ロボットビークルの制御を維持するように１以上のモータを制御するために、ＥＳＣにモータ制御信号を出すステップは、ロボットビークルに操作を実行させるように１以上のモータを制御するために、ＥＳＣにモータ制御信号を出すためのモータ制御命令のセットを実行するステップと、モータ制御命令のセットが完了したかどうかを決定するステップと、モータ制御命令のセットが完了したとの決定に応答して、ロボットビークルにセーフ動作モードを引き受けさせるように１以上のモータを制御するために、ＥＳＣにモータ制御信号を出すステップとを含み得る。そのような実施形態はさらに、ＥＳＣへの有効な制御信号の喪失を検出するとタイマーを初期化するステップと、モータ制御命令のセットが完了していないとの決定に応答して、タイマーが時間切れになったかどうかを決定するステップと、タイマーが時間切れになったとの決定に応答して、ロボットビークルにセーフ動作モードを引き受けさせるように１以上のモータを制御するために、ＥＳＣにモータ制御信号を出すステップとを含み得る。
【００１０】
いくつかの実施形態はさらに、補助コントローラの試験を実行するステップと、補助コントローラの障害が検出されるかどうかを決定するステップと、補助コントローラの障害を検出したことに応答して、ロボットビークルを保護するための行動をとるステップとを含み得る。
【００１１】
さらなる実施形態は、少なくとも１つのモータと、モータに結合されたＥＳＣと、メインコントローラと、検出器回路と、補助コントローラとを有する、ロボットビークルを含み得、検出器回路および補助コントローラは、上で説明された方法の動作を実行するように構成される。いくつかの実施形態では、検出器回路は補助コントローラに含まれ得る。いくつかの実施形態では、補助コントローラはＥＳＣに含まれ得る。さらなる実施形態は、上で説明された方法の動作を実行するように構成される、ロボットビークルにおいて使用するための補助コントローラを含み得る。さらなる実施形態は、上で説明された方法の機能を実行するための手段を含むロボットビークルを含み得る。
【００１２】
本明細書に組み込まれ本明細書の一部を構成する添付の図面は、例示的な実施形態を示し、上記の全般的な説明および以下で与えられる詳細な説明とともに、様々な実施形態の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１３】
【図１】様々な実施形態とともに使用するのに適した通信システム内で動作するロボットビークルのシステムブロック図である。
【図２】実施形態とともに使用するのに適したロボットビークルの構成要素を示す構成要素ブロック図である。
【図３】ロボットビークルとともに使用するのに適したコントローラの構成要素を示す構成要素ブロック図である。
【図４】従来のロボットビークルの構成要素を示す構成要素ブロック図である。
【図５】実施形態とともに使用するのに適したロボットビークルの構成要素を示す構成要素ブロック図である。
【図６】実施形態とともに使用するのに適したロボットビークルの構成要素を示す構成要素ブロック図である。
【図７】様々な実施形態による、ロボットビークルの動作を管理する方法を示すプロセスフロー図である。
【図８】様々な実施形態による、ロボットビークルの動作を管理する方法を示すプロセスフロー図である。
【図９】様々な実施形態による、ロボットビークルの動作を管理する方法を示すプロセスフロー図である。
【発明を実施するための形態】
【００１４】
添付の図面を参照して、様々な実施形態を詳細に説明する。可能な限り、同一または同様の部分を指すために、図面全体にわたって同じ参照番号が使用される。特定の例および実施形態に対してなされる言及は、例示を目的としており、特許請求の範囲を限定するものではない。
【００１５】
様々な実施形態は、ロボットビークルのメインコントローラがＥＳＣへの制御信号の送信を停止する際、限られた長さの時間の間ＥＳＣにモータ制御信号を出すことによってロボットビークルの安定した動作を維持するように構成される、分散型の機能が限定された補助コントローラを提供することによって、ロボットビークルの機能および信頼性を改善する。ロボットビークルに安全な動作または安定した動作の構成を引き受けさせるように構成されるモータ制御信号をＥＳＣに出すことによって、ロボットビークルを損傷または喪失から保護することができ、一方でメインコントローラが完全な再起動を完了してＥＳＣの制御権を取り戻す。
【００１６】
ロボットビークルのメインコントローラは通常、飛行制御および航法、センサデータ（たとえば、カメラ、ソナー、ジャイロスコープ、加速度計などからの入力）の処理、ＧＰＳ信号の受信および処理、通信のための無線の制御などの、ロボットビークルの多数の機能を制御することが可能なロバスト処理デバイスである。メインコントローラは、メモリ、データインターフェース、アビオニクスセンサおよびプロセッサを有するロバストプロセッサと、ロボットビークルの様々な構成要素および機能を監視して制御するように構成された他の構成要素と、を含み得る。メインコントローラは、「システムオンチップ」（ＳＯＣ）として実装され得、メインコントローラは、１以上のプロセッサ、メモリ、通信インターフェース、およびストレージメモリインターフェースを、通常は、しかし非排他的に含む、単一のパケットまたはアセンブリ内の相互接続される電子回路のセットである。ロボットビークルは、ますます複雑になっているハードウェア構成要素およびソフトウェアベースの構成要素を含むことにより、そのようなメインコントローラの能力を活用する。ロボットビークルの構成要素の複雑さおよび機能が高まるにつれて、ハードウェアまたはソフトウェアの障害によりメインコントローラのリブートが必要になる確率も高まる。
【００１７】
動作の間の予定されないメインコントローラのリブートの結果は、プロセッサがメインプロセッサおよび他の構成要素のハード再起動を実行する間に様々な構成要素への制御信号が中断されるので、ロボットビークルにとって致命的である可能性がある。具体的には、メインコントローラのハード再起動は、ビークルの推進と操作（たとえば、飛行制御）のためにビークルのロータ、車輪、またはプロペラを駆動するようにモータを制御する、ＥＳＣへの制御信号を中断する。ＥＳＣへの制御信号が中断すると、モータは停止し、これは、ロボットビークルの制御の喪失につながり、これにより、ロボットビークルが近くの物体と衝突し、または墜落し得る。したがって、メインコントローラがリブートの完了の後で機能し続けても、ロボットビークルは無効にされ、または失われ得る。
【００１８】
様々な実施形態は、メインコントローラからの有効な制御信号の喪失の際、ロボットビークルの１以上のモータを制御する構成要素、方法、およびシステムを提供する。様々な実施形態は、自律的な路上ビークル、水中ビークル、および空中輸送期間（固定翼および回転翼機）を含む、様々なロボットビークルに適用可能である。いくつかの実施形態では、メインコントローラが制御信号の送信を停止する際（たとえば、メインコントローラのハード再起動または障害の際）、ロボットビークルには、各ＥＳＣに結合され、またはそれと関連付けられ、ＥＳＣの制御権を引き継ぐように構成される、１以上の小型の補助コントローラが備えられ得る。補助コントローラは、メインコントローラより強力ではなく、ロボットビークルに対する限られた操作制御権を維持するのに十分な、関連するＥＳＣの限定「セーフモード」制御権を提供するように構成され得る。
【００１９】
いくつかの実施形態では、ＥＳＣと関連付けられる検出器回路は、メインコントローラがＥＳＣへの制御信号の送信を停止したときを検出し得る。いくつかの実施形態では、検出器回路は、メインコントローラからの有効な制御信号の喪失を検出するように構成され得る。いくつかの実施形態では、検出器回路は、範囲外にある（たとえば、破損している、または意味不明な信号である）値を含む制御信号などの、無効な制御信号をメインコントローラがＥＳＣに送信するときを検出するように構成され得る。いくつかの実施形態では、検出器回路は、メインコントローラからのハートビート信号の喪失を検出するように構成され得、ハートビート信号は、メインコントローラが普通に動作していることを示す。様々な実施形態では、検出器回路は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せで実装され得る。
【００２０】
様々な実施形態において、検出器回路は、メインコントローラがＥＳＣへの制御信号の送信を停止したことを検出したことに応答して、関連するＥＳＣの制御権を引き継ぐ（すなわち、それに制御信号を送信する）ように補助コントローラを制御し得る。いくつかの実施形態では、検出器回路は、メインコントローラを各ＥＳＣに接続することから、各々のそれぞれのＥＳＣを補助コントローラに接続することへと、信号経路を切り替え得る。
【００２１】
いくつかの実施形態では、補助コントローラは、ロボットビークルの動作の「セーフモード」を維持するために、制御信号を関連するＥＳＣに提供し得る。いくつかの実施形態では、補助コントローラは、メインコントローラがリブートする（たとえば、ハード再起動を実行する）間、短期間ＥＳＣの制御を引き受けるように構成され得る。いくつかの実施形態では、セーフ動作モードは、補助コントローラが限定セーフモード動作を実行するように関連するＥＳＣを制御することを含み得る。限定セーフモード動作の例は、空中ロボットビークルに対するホバリング、水中ロボットビークルに対する低速浮上、および自律的な路上ロボットビークルに対する最後の既知の操舵角の保持を含み得る。
【００２２】
いくつかの実施形態では、補助コントローラは、メインコントローラから以前に受信されたモータ制御命令の限られたセットを複製する制御信号を出し得る。たとえば、通常の動作の間、補助コントローラは、メインコントローラからモータ制御命令の小さいセット（たとえば、次の１０秒〜１５秒に対する命令）を定期的に監視して記憶し得るので、補助コントローラは、ロボットビークルに以前の経過を続けさせる制御信号をＥＳＣに出すことができる。
【００２３】
いくつかの実施形態では、補助コントローラは、あらかじめロードされたモータ制御命令の限られたセットを複製する制御信号を出し得、この限られたセットは、工場であらかじめロードされることがあり（たとえば、安定したホバリングを維持するための命令）、または、メインコントローラから定期的に受信されるモータ制御命令のセット（たとえば、ある方式で飛行するための命令）であり得る。いくつかの実施形態では、あらかじめロードされるモータ制御命令の限られたセットは、単一の命令または単一の動作モードを超え得、２つ以上のモータ制御命令のセットを含み得る。いくつかの実施形態では、あらかじめロードされたモータ制御命令の限られたセットは、特定の環境条件および／またはロボットビークルの条件を決定したことに応答して実行されるべき操作などの、任意選択の操作を含み得る。
【００２４】
いくつかの実施形態では、補助コントローラは、限定セーフモード動作を実行するために、かつ／または、あらかじめロードされたモータ制御命令の限られたセットを単独で、もしくは何らかの組合せで実行するために、モータ制御命令を出し得る。たとえば、補助コントローラは、ある期間、あらかじめロードされたモータ制御命令の限られたセットの１以上の態様を実行し得（たとえば、１０〜１５秒の命令など）、次いで、補助コントローラは、限定セーフモード動作を実行することに切り替え得る（たとえば、「フォールバックし得る」）。
【００２５】
いくつかの実施形態では、検出器回路は、メインコントローラがＥＳＣの制御を再開することが可能であることを検出し得る。いくつかの実施形態では、検出器回路は、メインコントローラのリブートプロセスを監視し得、メインコントローラがリブートプロセスを完了したとき（たとえば、メインコントローラがオンラインに戻ったこと）を検出し得る。いくつかの実施形態では、検出器回路は、メインコントローラからの制御信号（たとえば、メインコントローラからの制御信号の再開）を検出し得る。いくつかの実施形態では、メインコントローラがＥＳＣの制御を再開することが可能であることを検出したことに応答して、検出器回路は、各ＥＳＣの制御権を放棄するように補助コントローラを制御し得る。いくつかの実施形態では、メインコントローラがＥＳＣの制御を再開することが可能であることを検出したことに応答して、検出器回路は、メインコントローラと各ＥＳＣとの間の信号経路を再接続し得る。
【００２６】
様々な実施形態が、様々な通信システム１００内で動作するロボットビークル内で実装され得、その例を図１に示す。図１を参照すると、通信システム１００は、ロボットビークル１０２、基地局１０４、アクセスポイント１０６、通信ネットワーク１０８、およびネットワーク要素１１０を含み得る。
【００２７】
基地局１０４およびアクセスポイント１０６は、有線通信バックホール１１６および／またはワイヤレス通信バックホール１１８を介してそれぞれ通信ネットワーク１０８にアクセスするために、ワイヤレス通信を提供し得る。基地局１０４は、広いエリア（たとえば、マクロセル）にわたるワイヤレス通信、ならびに、マイクロセル、フェムトセル、ピコセル、および他の同様のネットワークアクセスポイントを含み得るスモールセルにわたるワイヤレス通信を提供するように構成される、基地局を含み得る。アクセスポイント１０６は、比較的小さいエリアにわたるワイヤレス通信を提供するように構成され得る。基地局およびアクセスポイントの他の例も可能である。
【００２８】
ロボットビークル１０２は、様々なロボットビークル、たとえば、空中ロボットビークル１０２ａ、地上ロボットビークル１０２ｂ、および水上ロボットビークル１０２ｃのいずれかを含み得る。他の例も可能である。ロボットビークル１０２は、ワイヤレス通信リンク１１２を介して基地局１０４と、およびワイヤレス通信リンク１１４を介してアクセスポイント１０６と通信し得る。ワイヤレス通信リンク１１２および１１４は、複数のキャリア信号、周波数、または周波数帯域を含み得、これらの各々が複数の論理チャネルを含み得る。ワイヤレス通信リンク１１２および１１４は、１以上の無線アクセス技術（ＲＡＴ）を利用し得る。ワイヤレス通信リンクにおいて使用され得るＲＡＴの例は、3GPP Long Term Evolution（ＬＴＥ）、３Ｇ、４Ｇ、５Ｇ、Global System for Mobility（ＧＳＭ）、符号分割多元接続（ＣＤＭＡ）、広帯域符号分割多元接続（ＷＣＤＭＡ）、Worldwide Interoperability for Microwave Access（ＷｉＭＡＸ）、時分割多元接続（ＴＤＭＡ）、および他のモバイル電話通信技術セルラーＲＡＴを含む。通信システム１００内の様々なワイヤレス通信リンクの１以上において使用され得るＲＡＴのさらなる例は、Ｗｉ−Ｆｉ、ＬＴＥ−Ｕ、ＬＴＥ−Ｄｉｒｅｃｔ、ＬＡＡ、ＭｕＬＴＥｆｉｒｅなどの中距離プロトコル、ならびに、Ｚｉｇｂｅｅ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、およびBluetooth Low Energy（ＬＥ）（登録商標）などの比較的短距離のＲＡＴを含む。
【００２９】
ネットワーク要素１１０は、ネットワークサーバまたは別の同様のネットワーク要素を含み得る。ネットワーク要素１１０は、通信リンク１２２を開始して通信ネットワーク１０８と通信し得る。ロボットビークル１０２およびネットワーク要素１１０は、通信ネットワーク１０８を介して通信し得る。ネットワーク要素１１０は、航法情報、気象情報、環境条件についての情報、動き制御命令、および、ロボットビークル１０２の動作に関連する他の情報、命令、またはコマンドなどの、様々な情報をロボットビークル１０２に提供し得る。
【００３０】
様々な実施形態では、ロボットビークルは、翼のある、または回転翼のある、空中ロボットビークルの種類を含み得る。図２は、飛び立ち（すなわち離陸）、ならびに、他の空中の動き（たとえば、前方への進行、上昇、下降、横方向への移動、傾斜、回転など）をもたらすために、対応するモータによって駆動される複数のロータ２０２を利用する、空中ロボットビークル２００の例を示す。ロボットビークル２００は、様々な実施形態を利用し得るロボットビークルの例として示されているが、様々な実施形態が空中ロボットビークルまたは回転翼ロボットビークルに限定されることを示唆または要求するものではない。様々な実施形態が、翼のあるロボットビークル、地上の自律的なビークル、および水上の自律的なビークルについて使用され得る。
【００３１】
図１および図２を参照すると、ロボットビークル２００はロボットビークル１０２と同様であり得る。ロボットビークル２００は、いくつかのロータ２０２、フレーム２０４、および着陸柱２０６または滑走部を含み得る。フレーム２０４は、ロータ２０２と関連付けられるモータを構造的に支持し得る。着陸柱２０６は、ロボットビークル２００の構成要素の組合せに対する最大の負荷重量、およびいくつかの場合には、有効荷重を支持し得る。説明および例示を簡単にするために、配線、フレーム構造の相互接続、または当業者に公知の他の特徴などの、ロボットビークル２００のいくつかの詳細な態様を省略する。たとえば、ロボットビークル２００は、いくつかの支持部材またはフレーム構造を有するフレーム２０４を有するものとして示されており説明されるが、ロボットビークル２００は、成形されたフレームを使用して構築されてよく、このとき、成形された構造を通じて支持体が得られる。示されるロボットビークル２００は４つのロータ２０２を有するが、これは例にすぎず、様々な実施形態は４つより多数または少数のロータ２０２を含み得る。
【００３２】
ロボットビークル２００はさらに、ロボットビークル２００に電力供給してその動作を制御するために使用される、様々な回路およびデバイスを収容し得る制御ユニット２１０を含み得る。制御ユニット２１０は、メインコントローラ２２０、電力モジュール２３０、センサ２４０、１以上のカメラ２４４、出力モジュール２５０、入力モジュール２６０、および無線２７０を含み得る。
【００３３】
メインコントローラ２２０は、ロボットビークル２００の操作および他の動作を制御するようにプロセッサ実行可能命令を用いて構成される、ロバストプロセッサ２２１を含み得る。
ロバストプロセッサ２２１は、マルチコアプロセッサまたはマルチコアアセンブリであり得る。メインコントローラ２２０はまた、すべてがロバストプロセッサ２２１に結合される、航法ユニット２２２、メモリ２２４、慣性センサ／ジャイロ／加速度計ユニット２２６（これは、加速度計、ジャイロスコープ、磁力計、慣性測定ユニット、および他の同様の構成要素を含み得る）、およびアビオニクスモジュール２２８を含む（たとえば、ＳＯＣとして）ことがあり、またはそれらに結合されることがある。メインコントローラ２２０および／または航法ユニット２２２は、航法に有用なデータを受信するためにワイヤレス接続（たとえば、セルラーデータネットワーク）を通じてサーバと通信し、リアルタイムの測位報告を提供し、データを評価するように構成され得る。
【００３４】
アビオニクスモジュール２２８は、ロバストプロセッサ２２１および／または航法ユニット２２２に結合されることがあり、全地球測位システム（ＧＮＳＳ）測位の更新と更新の間のデッドレコニングなどの、航法目的で航法ユニット２２２が使用し得る高度、姿勢、対気速度、進行方向、および同様の情報などの、制御関連情報の操作を提供するように構成され得る。ジャイロ／加速度計ユニット２２６は、加速度計、ジャイロスコープ、慣性センサ、または他の同様のセンサを含み得る。アビオニクスモジュール２２８は、航法および測位の計算において使用され得るロボットビークル２００の方位および加速に関するデータを提供するとともに、画像を処理するために様々な実施形態において使用されるデータを提供する、ジャイロ／加速度計ユニット２２６からのデータを含み、または受信し得る。
【００３５】
メインコントローラ２２０はさらに、イメージセンサまたは光学センサ（たとえば、可視光、赤外光、紫外光、および／または他の波長の光を感知することが可能なセンサ）などのセンサ２４０から追加の情報を受信し得る。センサ２４０はまた、高周波（ＲＦ）センサ、気圧計、湿度センサ、ソナー放出器／検出器、レーダー放出器／検出器、マイクロフォンまたは別の音響センサ、ライダーセンサ、time-of-flight（ＴＯＦ）３−Ｄカメラ、または、動きの操作、航法および測位の計算、ならびに環境条件の決定のためにメインコントローラ２２０によって使用可能な情報を提供し得る別のセンサを含み得る。センサ２４０はまた、温度計、サーミスタ、熱電対、正温度係数センサ、および他のセンサ構成要素など、ロボットビークルうちの１以上の構成要素によって生成される温度を検出するように構成される１以上のセンサを含み得る。
【００３６】
電力モジュール２３０は、メインコントローラ２２０、センサ２４０、１以上のカメラ２４４、出力モジュール２５０、入力モジュール２６０、および無線２７０を含む、様々な構成要素に電力を提供し得る。加えて、電力モジュール２３０は、再充電可能な電池などの、エネルギー貯蔵構成要素を含み得る。メインコントローラ２２０は、充電制御回路を使用して充電制御アルゴリズムを実行することなどによって、電力モジュール２３０の充電（すなわち、得られたエネルギーの貯蔵）を制御するようにプロセッサ実行可能命令を用いて構成され得る。代わりに、または加えて、電力モジュール２３０は、それ自体の充電を管理するように構成され得る。メインコントローラ２２０は、出力モジュール２５０に結合され得、出力モジュール２５０は、ロータ２０２および他の構成要素を駆動する、モータを管理するための制御信号を出力し得る。
【００３７】
ロボットビークル２００は、ロボットビークル２００が目的地に向かって進む際に、ロータ２０２の個々のモータの制御を通じて制御され得る。メインコントローラ２２０は、航法ユニット２２２からデータを受信し、ロボットビークル２００の現在地および方位、ならびに、目的地または中間地点への適切な進路を決定するために、そのようなデータを使用し得る。様々な実施形態において、航法ユニット２２２は、ロボットビークル２００がＧＮＳＳ信号を使用して進行することを可能にする、ＧＮＳＳ受信機システム（たとえば、１以上の全地球測位システム（ＧＰＳ）受信機）を含み得る。代わりに、または加えて、航法ユニット２２２は、航法ビーコン（たとえば、超短波（ＶＨＦ）全方向式無線標識（ＶＯＲ）ビーコン）、Ｗｉ−Ｆｉアクセスポイント、セルラーネットワークサイト、無線局、リモートコンピューティングデバイス、他のロボットビークルなどの、無線ノードから航法ビーコンまたは他の信号を受信するための無線航法受信機を備え得る。
【００３８】
無線２７０は、航空航法施設などからの信号などの航法信号を受信し、ロボットビークルの航法を助けるためにそのような信号をロバストプロセッサ２２１および／または航法ユニット２２２に提供するように構成され得る。様々な実施形態において、航法ユニット２２２は、地上の認識可能なＲＦ放出器（たとえば、ＡＭ／ＦＭ無線局、Ｗｉ−Ｆｉアクセスポイント、およびセルラーネットワーク基地局）から受信される信号を使用し得る。
【００３９】
航法ユニット２２２は、ボリュメトリック空間内でのロボットビークルの移動の経路を計画する（「経路計画」）ために計算を実行し得る計画の適用を含み得る。いくつかの実施形態では、計画の適用は、ロボットビークルによって実行されるべき任務の態様についての情報、環境条件についての情報、任務を実行する際にロボットビークルの１以上の構成要素によって生成され得る熱の量、ならびに１以上の熱的な制約を含む情報を使用して経路計画を実行し得る。
【００４０】
無線２７０は、モデム２７４および送信／受信アンテナ２７２を含み得る。無線２７０は、様々なワイヤレス通信デバイス（たとえば、ワイヤレス通信デバイス（ＷＣＤ）２９０）とのワイヤレス通信を行うように構成され得、それらのワイヤレス通信デバイスの例には、ワイヤレス電話基地局または中継塔（たとえば、基地局１０４）、ネットワークアクセスポイント（たとえば、アクセスポイント１０６）、ビーコン、スマートフォン、タブレット、またはロボットビークル２００が通信し得る別のコンピューティングデバイス（ネットワーク要素１１０など）がある。メインコントローラ２２０は、無線２７０のモデム２７４およびアンテナ２７２ならびにワイヤレス通信デバイス２９０の送信／受信アンテナ２９２を介して、双方向ワイヤレス通信リンク２９４を確立し得る。いくつかの実施形態では、無線２７０は、異なる無線アクセス技術を使用して異なるワイヤレス通信デバイスとの複数の接続をサポートするように構成され得る。
【００４１】
様々な実施形態において、ワイヤレス通信デバイス２９０は、中間アクセスポイントを通じてサーバに接続され得る。ある例では、ワイヤレス通信デバイス２９０は、ロボットビークルの運用者のサーバ、サードパーティのサービス（たとえば、荷物配達、課金など）、またはサイト通信アクセスポイントであり得る。ロボットビークル２００は、ワイドエリアネットワーク（たとえば、インターネット）または他の通信デバイスに結合されるワイヤレス電話ネットワークなどの、１以上の中間通信リンクを通じてサーバと通信し得る。いくつかの実施形態では、ロボットビークル２００は、他のロボットビークルとのメッシュ接続、または他の情報リソースへの接続（たとえば、気象情報もしくは他のデータ回収情報を収集および／または分配するための、バルーンまたは他の局）などの、他の形態の無線通信を含み、利用し得る。
【００４２】
様々な実施形態において、制御ユニット２１０は、様々な用途に使用され得る入力モジュール２６０を装備し得る。たとえば、入力モジュール２６０は、機内カメラ２４４もしくはセンサから画像またはデータを受信し得る、または、他の構成要素から電子信号（たとえば、ペイロード）を受信し得る。
【００４３】
制御ユニット２１０の様々な構成要素は別個の構成要素として示されているが、構成要素（たとえば、メインコントローラ２２０、出力モジュール２５０、無線２７０、および他のユニット）の一部またはすべてが、単一のデバイス、回路基板、またはＳＯＣなどのモジュールに一緒に統合され得る。
【００４４】
図３はさらに、ＳＯＣとして統合されるロボットビークルメインコントローラ２２０内の構成要素を示す。図１〜図３を参照すると、メインコントローラ２２０内のロバストプロセッサ２２１は、１以上のプロセッサまたはプロセッサコア３１４、ワーキングメモリ３１６、通信インターフェース３１８、およびストレージメモリインターフェース３２０を含み得る。ストレージメモリインターフェース３２０は、プロセッサ３１４がストレージメモリ２２４にデータを記憶してそこからデータを取り出すことを可能にするように構成され得、ストレージメモリ２２４は、示されるようにメインコントローラ２２０のＳＯＣ内に統合されることがあり、または別個の構成要素として接続され得る。ＳＯＣとして構成されるメインコントローラ２２０は、ワイヤレス通信リンクなどを確立するためにアンテナ２７２に接続するように構成される、ワイヤレスモデム２７４と無線２７０を統合し得る、通信構成要素３２２を含み得る。
【００４５】
ＳＯＣとして統合されるメインコントローラ２２０はさらに、ロバストプロセッサ２２１が、航法モジュール２２２、慣性センサ／ジャイロスコープ／加速度計モジュール２２６、およびアビオニクスモジュール２２８とインターフェースすること、ならびにロボットビークルの様々な構成要素と通信してそれを制御することを可能にするように構成される、ハードウェアインターフェース３２８を含み得る。いくつかの実施形態では、以下でさらに説明されるように、ハードウェアインターフェース３２８はまた、航法モジュール２２２、慣性センサ／ジャイロスコープ／加速度計モジュール２２６、および／またはアビオニクスモジュール２２８から、補助コントローラに出力３３０を提供し得る。航法モジュール２２２、慣性センサ／ジャイロスコープ／加速度計モジュール２２６、および／またはアビオニクスモジュール２２８から補助コントローラへの出力３３０は、ロバストプロセッサ２２１とは独立であり得るので、補助コントローラは、ロバストプロセッサ２２１が制御信号の送信を停止する場合であっても、航法モジュール２２２、慣性センサ／ジャイロスコープ／加速度計モジュール２２６、および／またはアビオニクスモジュール２２８からデータを受信し得る。いくつかの実施形態では、以下でさらに説明されるように、ロバストプロセッサ２２１は、モータ制御命令の限られたセットの定期的な更新を、出力３３０を介して補助コントローラに送信し得る。
【００４６】
ロバストプロセッサ２２１は、汎用プロセッサ、中央処理装置（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、グラフィクス処理装置（ＧＰＵ）、加速処理装置（ＡＰＵ）、カメラサブシステムのためのイメージプロセッサまたはディスプレイのためのディスプレイプロセッサ、補助プロセッサ、シングルコアプロセッサ、およびマルチコアプロセッサなどの処理デバイスの特定の構成要素のサブシステムプロセッサなどの、様々な異なるタイプのプロセッサ３１４およびプロセッサコアを含み得る。ロバストプロセッサ２２１はさらに、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、他のプログラマブル論理デバイス、個別ゲート論理、トランジスタ論理、性能監視ハードウェア、ウォッチドッグハードウェア、および時間基準などの、他のハードウェアおよびハードウェアの組合せを具現化し得る。集積回路は、集積回路の構成要素がシリコンなどの単体の半導体材料上に存在するように構成され得る。
【００４７】
メインコントローラ２２０は、２つ以上のロバストプロセッサ２２１を含み、それによって、プロセッサ３１４およびメインコントローラ２２０内のプロセッサコアの数を増やすことができる。メインコントローラ２２０はまた、ロバストプロセッサ２２１内にない他のプロセッサ（図示されない）を含み得る。１以上のプロセッサ３１４は各々、ロバストプロセッサ２２１またはメインコントローラ２２０の他のプロセッサ３１４と同じであり得るまたは異なり得る特定の目的のために構成され得る。同じまたは異なる構成のプロセッサ３１４およびプロセッサコアのうちの１以上は、一緒にグループ化され得る。
【００４８】
ロバストプロセッサ２２１のワーキングメモリ３１６は、プロセッサ３１４によるアクセスのためにデータおよびプロセッサ実行可能命令を記憶するために構成された、揮発性または不揮発性のメモリであり得る。メインコントローラ２２０および／またはロバストプロセッサ２２１は、任務関連のデータ（たとえば、ビデオデータ、航法地図、任務計画など）を含む、様々な目的のためにデータを記憶するように構成される、１以上のストレージメモリ２２４を含み得る。ワーキングメモリ３１６は、ランダムアクセスメモリ（ＲＡＭ）もしくはメインメモリ、およびキャッシュメモリなどの、揮発性メモリを含み得る。
【００４９】
メインコントローラ２２０およびロバストプロセッサ２２１の構成要素の一部またはすべては、依然として様々な態様の機能を果たしながら、異なるように構成され、かつ／または組み合わされ得る。メインコントローラ２２０およびロバストプロセッサ２２１は、構成要素の各々のうちの１つに限定されなくてもよく、各構成要素の複数のインスタンスが様々な構成に含まれ得る。
【００５０】
図４は、従来のロボットビークル４００の構成要素を示す構成要素ブロック図である。図１および図４を参照すると、ロボットビークル４００はロボットビークル１０２、２００と同様であり得る。ロボットビークル４００は、ロボットビークルの例として示されているが、様々な実施形態が空中ロボットビークルまたは回転翼ロボットビークルに限定されることを示唆または要求するものではない。様々な実施形態が、翼のあるロボットビークル、地上の自律的なビークル、および水上の自律的なビークルについて使用され得る。
【００５１】
従来のロボットビークル４００は、制御ユニット２１０に結合される従来の電子速度コントローラ（ＥＳＣ）４０２を含み得る。ＥＳＣ４０２は、対応するモータ４０４によってロータ４０６の各々の動作の態様を制御することを含む機能を扱い得る。ＥＳＣ４０２は電力モジュール２３０に結合され得る。電力モジュール２３０（たとえば、機内電池）は、（たとえばＥＳＣ４０２を介して）モータ４０４に、およびメインコントローラ２２０に結合され得る。各モータ４０４は、それぞれのモータドライバ４０２ｂおよびデコーダ４０２ａと関連付けられ得る。各デコーダ４０２ａは、対応するモータドライバ４０２ｂに向けられる、メインコントローラ２２０からの制御信号などの信号を復号し得る。
【００５２】
メインコントローラ２２０は、ＥＳＣ４０２を介して、ロータ４０６の各々を駆動するためにモータ４０４への電力を制御し得る。メインコントローラ２２０は、ＥＳＣ４０２を介して、モータ４０４の個々の速度を制御するために使用され得る。ＥＳＣ４０２は、可変の量の補助推進力を生成するために異なる回転数で「前方に」、または、可変の量の混合空気力を生み出すために「後方に」、モータ４０４を駆動し得る。ロータ４０６の各々に対応する個々のモータ４０４の制御を通じて、ロボットビークル４００は、ロボットビークル４００が目的地に向かって進むにつれて、および／または様々な飛行モードで動作するにつれて、飛行中に制御され得る。
【００５３】
メインコントローラ２２０は通常、ＥＳＣ４０２を介してモータ４０４の制御などのロボットビークルの多数の機能を制御すること、ならびに、飛行制御、センサデータの処理、ＧＰＳ信号の受信および処理、通信のための無線の制御などを含む、他の動作を制御することが可能な、ロバスト処理デバイスである。上で述べられたように、空中ロボットビークルの飛行動作の間のメインコントローラの障害またはリブートの結果は、メインコントローラ２２０がＥＳＣ４０２へのシグナリングを停止して、それによりＥＳＣがモータ４０４への電力供給を停止するので、致命的であり得る。
【００５４】
図５は、様々な実施形態による、ロボットビークル５００の構成要素を示す構成要素ブロック図である。図１〜図５を参照すると、ロボットビークル５００はロボットビークル１０２、２００と同様であり得る。ロボットビークル５００は、様々な実施形態を利用し得るロボットビークルの例として示されているが、様々な実施形態が空中ロボットビークルまたは回転翼ロボットビークルに限定されることを示唆または要求するものではない。様々な実施形態が、翼のあるロボットビークル、地上の自律的なビークル、および水上の自律的なビークルについて使用され得る。
【００５５】
様々な実施形態において、ロボットビークル５００は、メインコントローラ２２０に結合されるＥＳＣ５０２を含み得る。ＥＳＣ５０２はまた、メインコントローラ２２０とは独立な経路によって電力モジュール２３０に結合され得る。ＥＳＣ５０２は、１以上の補助コントローラ５０４、１以上の検出器回路５０６、および１以上のモータドライバ５０８を含み得る。補助コントローラ５０４はメモリ５０４ａと結合され得る。様々な実施形態において、検出器回路５０６は、専用回路としてハードウェアで、（専用プロセッサであり得る）プロセッサ内で実行されるソフトウェアで、またはハードウェアとソフトウェアの組合せ（たとえば、ソフトウェアで実施されるプロセスを惹起する検出回路）で実装され得る。たとえば、検出器回路５０６は、メモリ５０４ａに記憶され補助コントローラ５０４によって実行され得る、プロセッサ実行可能またはコントローラ実行可能命令で実装され得る。別の例として、検出器回路５０６は、ＥＳＣ５０２の１以上のハードウェア構成要素において実装され得る。別の例として、検出器回路５０６は、ＥＳＣ５０２の独立したハードウェア構成要素に記憶されそこで実行される、プロセッサ実行可能命令において実装され得る。前述のものの変形および／または組合せを含む、検出器回路５０６の他の実装形態も可能である。
【００５６】
通常動作の間、メインコントローラ２２０は、第１の信号経路５１２に沿ってモータドライバ５０８を介して制御信号の流れをモータ４０４に提供し得る。いくつかの実施形態では、第１の信号経路５１２は、スイッチ５１０を介して（およびいくつかの実施形態では、検出器回路５０６を介して）メインコントローラ２２０を各モータドライバ５０８に結合し得る。
【００５７】
様々な実施形態において、検出器回路５０６は、メインコントローラ２２０が（たとえば、メインコントローラ２２０のリブートまたは障害の結果として）ＥＳＣ５０２の制御を停止するときを検出するために、第１の信号経路５１２を監視し得る。いくつかの実施形態では、検出器回路５０６は、メインコントローラ２２０からの制御信号の喪失を検出するように構成され得る。いくつかの実施形態では、検出器回路５０６は、メインコントローラ２２０からの制御信号が劣化しているとき、または有効ではない（たとえば、閾値のレベルのエラーレートを超えている）ときを検出するように構成され得る。そのような実施形態では、検出器回路５０６は、メインコントローラ２２０が有効な制御信号を送信するのを停止したときを検出するように構成され得る。いくつかの実施形態では、検出器回路５０６は、範囲外にある（たとえば、破損している、または意味不明な信号である）値をメインコントローラ２２０からの制御信号が含むときを検出するように構成され得る。いくつかの実施形態では、検出器回路５０６は、メインコントローラ２２０からの制御信号の喪失を検出するように構成され得る。いくつかの実施形態では、検出器回路５０６は、メインコントローラ２２０からのハートビート信号または同様の信号の喪失を検出するように構成され得る。いくつかの実施形態では、メインコントローラ２２０は、メインコントローラが普通に動作していることを示すためにハートビート信号を送信し得る。様々な実施形態において、メインコントローラ２２０は、連続的に、定期的に、または１つまたは他の時間間隔で、そのようなハートビート信号を送信し得る。いくつかの実施形態では、ハートビート信号は、ＥＳＣ制御信号とは別個に提供され得る。
【００５８】
様々な実施形態において、メインコントローラ２２０が有効な制御信号をＥＳＣ５０２に送信するのを停止したことを検出したことに応答して、検出器回路５０６は、補助コントローラ５０４にＥＳＣ５０２の制御権を引き継がせる（ＥＳＣ５０２へのモータ制御信号を出すことを開始させる）ように構成され得る。いくつかの実施形態では、メインコントローラ２２０がＥＳＣ５０２への制御信号の送信を停止したことを検出したことに応答して、検出器回路５０６は、メインコントローラを各ＥＳＣに接続する第１の信号経路５１２を、各々のそれぞれの補助コントローラ５０４をそれぞれのモータドライバ５０８に（いくつかの実施形態では、検出器回路５０６を介して）接続する第２の信号経路５１４に変更する、スイッチ５１０を（たとえば、制御信号５０６ａを介して）制御するように構成され得る。いくつかの実施形態では、第１の信号経路５１２から第２の信号経路５１４への切り替えは、第１の信号経路５１２を切断し、補助コントローラ５０４をそれぞれのモータドライバ５０８に結合する第２の信号経路５１４を接続することを含み得る。
【００５９】
いくつかの実施形態では、補助コントローラ５０４は、第２の信号経路５１４がスイッチ５１０によって接続されるとき、ＥＳＣ５０２の限定「セーフモード」制御を引き受け得る。そのような実施形態では、補助コントローラ５０４は、限定セーフモード動作を達成するために、モータ制御信号をモータドライバ５０８に提供し得る。いくつかの実施形態では、セーフ動作モードは、限定セーフモード動作を達成するためにモータ制御信号をそれぞれのモータドライバ５０８に提供する補助コントローラ５０４を含み得る。様々な実施形態において、限定セーフモード制御は、メインコントローラによって提供されるものよりかなり少ない、ロボットビークルに対する操作制御を含む。限定セーフモード動作の例は、空中ロボットビークルに対するホバリング、水中ロボットビークルに対する低速浮上、または自律的な路上ロボットビークルに対する最後の既知の操舵角の保持を含み得る。いくつかの実施形態では、補助コントローラ５０４は、メインコントローラがリブートプロセスを完了すること（たとえば、ハード再起動を実行すること）を可能にするのに十分長い、短い期間の間、モータ制御信号をモータドライバ５０８に提供するように構成され得る。
【００６０】
いくつかの実施形態では、検出器回路５０６は、スイッチ５１０から信号を受信するように構成され得る。いくつかの実施形態では、検出器回路５０６は、各スイッチ５１０とそれぞれのモータドライバ５０８との間に配置され、制御ユニット２１０からの信号経路５１２および補助コントローラ５０４からの信号経路５１４の障害監視を実行するように構成され得る。たとえば、検出器回路５０６は、信号経路に沿ってスイッチ５１０とモータドライバ５０８との間に配設され得る。いくつかの実施形態では、検出器回路５０６は、各スイッチ５１０とそれぞれのモータドライバ５０８との間の信号経路を監視し得るが、信号経路に沿って配設される必要はない。そのような実施形態では、スイッチ５１０が第２の信号経路５１４を接続するように制御されるとき、検出器回路５０６は、補助コントローラ５０４が適切なモータ制御信号を提供していることを検証し得る。
【００６１】
いくつかの実施形態では、補助コントローラ５０４は、メインコントローラ２２０からの有効な制御信号の喪失の前に存在していたロボットビークルの軌跡および方位を継続するために、メインコントローラ２２０から以前に受信されたモータ制御命令の限られたセットを実行し得る。いくつかの実施形態では、補助コントローラ５０４は、メモリにあらかじめロードされた、またはメインコントローラ２２０から受信された、あらかじめロードされたモータ制御命令の限られたセットを実行し得る。モータ制御命令の限られたセットは、補助コントローラ５０４のメモリ５０４ａに記憶され得る。いくつかの実施形態では、通常の動作の間、補助コントローラ５０４は、メインコントローラ２２０からモータ制御命令の限られたセットの定期的な更新（たとえば、約１０〜１５秒に対する命令）を受信して記憶し得る。いくつかの実施形態では、あらかじめロードされるモータ制御命令の限られたセットは、単一の命令または単一の動作モードを超え得、２つ以上のモータ制御命令のセットを含み得る。いくつかの実施形態では、あらかじめロードされたモータ制御命令の限られたセットは、特定の環境条件および／またはロボットビークルの条件を決定したことに応答して実行されるべき操作などの、任意選択の操作をロボットビークルに実行させるモータ制御信号を含み得る。
【００６２】
いくつかの実施形態では、補助コントローラ５０４は、限定セーフモード動作を可能にするために、および／または、あらかじめロードされたモータ制御信号の限られたセットを単独で、もしくは任意の組合せで出すために、モータ制御信号をモータドライバ５０８に出し得る。たとえば、補助コントローラは、ある期間、あらかじめロードされたモータ制御命令の限られたセットの１以上の態様を出し得（たとえば、１０〜１５秒の命令など）、次いで、補助コントローラ５０４は、ロボットビークルにセーフ動作モードに入らせるために、モータ制御信号をモータドライバ５０８に出すことに切り替え得る（たとえば、「フォールバックし得る」）。
【００６３】
様々な実施形態において、各補助コントローラ５０４は、ロボットビークル５００の１以上のセンサ（たとえば、センサ２４０、２２６）から入力５１６を受信し得る。たとえば、各補助コントローラ５０４は、慣性センサ、ジャイロスコープ、および加速度計から（たとえば、慣性／ジャイロ／加速度計モジュール２２６から）、またはロボットビークル５００の別のセンサから入力５１６を受信し得る。補助コントローラ５０４の各々は、それぞれのモータドライバ５０８を介してそれぞれのモータ４０４を制御するのに適切なモータ制御信号を決定するために、センサからの入力５１６を使用し得る。たとえば、補助コントローラ５０４の各々は、センサから受信された入力５１６に基づいて制御信号を生成するために独立に動作し得、補助コントローラ５０４の各々は、生成された制御信号をそれぞれのモータドライバ５０８に送信し得る。いくつかの実施形態では、補助コントローラ５０４の各々は、セーフ動作モードを達成するために、かつ／またはあらかじめロードされたモータ制御信号の限られたセットを実行するために、それぞれのモータドライバ５０８およびモータ４０４を制御するように独立に動作し得る。いくつかの実施形態では、補助コントローラ５０４の各々は、メインコントローラ２２０からの制御信号が失われている場合であっても、入力５１６を受信し得る。いくつかの実施形態では、各ＥＳＣ５０２は、補助コントローラ５０４がそれぞれのモータドライバ５０８への制御信号を生成するために使用し得る情報を補助コントローラ５０４に提供し得る、１以上の独立のセンサ（たとえば、慣性センサ、ジャイロスコープ、加速度計など）を含み得る。
【００６４】
いくつかの実施形態では、検出器回路５０６は、メインコントローラ２２０がＥＳＣ５０２の制御を再開することが可能であることを検出し得る。いくつかの実施形態では、検出器回路５０６は、メインコントローラ２２０のリブートプロセスを監視し得、メインコントローラ２２０がリブートプロセスを完了したとき（たとえば、メインコントローラがオンラインに戻ったこと）を検出し得る。いくつかの実施形態では、メインコントローラ２２０がＥＳＣ５０２の制御を再開することが可能であることを検出したことに応答して、検出器回路５０６は、メインコントローラ２２０と各ＥＳＣ５０２との間の第１の信号経路５１２を再接続し得る。
【００６５】
図６は、様々な実施形態による、ロボットビークル６００の構成要素を示す構成要素ブロック図である。図１〜図６を参照すると、ロボットビークル６００はロボットビークル１０２、２００と同様であり得る。ロボットビークル６００は、様々な実施形態を利用し得るロボットビークルの例として示されているが、様々な実施形態が空中ロボットビークルまたは回転翼ロボットビークルに限定されることを示唆または要求するものではない。様々な実施形態が、翼のあるロボットビークル、地上の自律的なビークル、および水上の自律的なビークルについて使用され得る。
【００６６】
様々な実施形態において、ロボットビークル６００は、メインコントローラ２２０に結合されるＥＳＣ６０２を含み得る。ＥＳＣ６０２はまた、メインコントローラ２２０とは独立な経路によって電力モジュール２３０に結合され得る。ＥＳＣ６０２は、補助コントローラ６０４、検出器回路６０６、それぞれの１以上のモータドライバ６０８に結合された１以上のデコーダ６１６を含み得る。補助コントローラ６０４はメモリ６０４ａに結合され得る。様々な実施形態では、検出器回路６０６は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せで実装され得る。たとえば、検出器回路６０６は、メモリ６０４ａに記憶され補助コントローラ６０４によって実行され得る、プロセッサ実行可能またはコントローラ実行可能命令で実装され得る。別の例として、検出器回路６０６は、ＥＳＣ６０２の１以上のハードウェア構成要素において実装され得る。別の例として、検出器回路６０６は、ＥＳＣ６０２の独立したハードウェア構成要素に記憶されそこで実行される、プロセッサ実行可能命令として実装され得る。前述のものの変形および／または組合せを含む、検出器回路６０６の他の実装形態も可能である。
【００６７】
通常動作の間、メインコントローラ２２０は、第１の信号経路６１２に沿ってデコーダ６１６を介して一連の制御信号をモータドライバ６０８に提供し得る。いくつかの実施形態では、第１の信号経路６１２は、スイッチ６１０を介してメインコントローラ２２０を各デコーダ６１６および各モータドライバ６０８に結合し得る。各デコーダ６１６は、メインコントローラ２２０（または補助コントローラ６０４）からの制御信号を復号し、復号された制御信号をそれぞれのモータドライバ６０８に提供し得る。いくつかの実施形態では、各デコーダ６１６はメインコントローラ２２０または補助コントローラ６０４から受信された制御信号がそれぞれのモータドライバ６０８に対するものであるかどうかを決定し得る。
【００６８】
様々な実施形態において、検出器回路６０６は、メインコントローラ２２０が（たとえば、メインコントローラ２２０のプロセッサのリブートまたは障害の結果として）ＥＳＣ６０２への制御信号の送信を停止するときを検出するために、第１の信号経路６１２を監視するように構成され得る。いくつかの実施形態では、検出器回路６０６は、メインコントローラ２２０からの制御信号の喪失を検出するように構成され得る。いくつかの実施形態では、検出器回路６０６は、メインコントローラ２２０からの制御信号が劣化しているとき、または有効ではない（たとえば、閾値のレベルのエラーレートを超えている）ときを検出するように構成され得る。そのような実施形態では、検出器回路６０６は、メインコントローラ２２０が有効な制御信号を送信するのを停止したときを検出するように構成され得る。いくつかの実施形態では、検出器回路６０６は、範囲外にある（たとえば、破損している、または意味不明な信号である）値をメインコントローラ２２０からの制御信号が含むときを検出するように構成され得る。いくつかの実施形態では、検出器回路６０６は、メインコントローラ２２０からの制御信号の喪失を検出するように構成され得る。いくつかの実施形態では、検出器回路６０６は、メインコントローラ２２０からのハートビート信号または別の同様の信号の喪失を検出するように構成され得る。いくつかの実施形態では、メインコントローラ２２０は、メインコントローラが普通に動作していることを示すためにハートビート信号を提供し得る。様々な実施形態において、メインコントローラ２２０は、連続的に、定期的に、または１つまたは他の時間間隔で、ハートビート信号を提供し得る。いくつかの実施形態では、ハートビート信号は、１以上の他の制御信号とは別個に提供され得る。
【００６９】
様々な実施形態において、メインコントローラ２２０が有効な制御信号をＥＳＣ６０２に送信するのを停止したことを検出したことに応答して、検出器回路６０６は、ＥＳＣ６０２の制御権を引き継ぐように補助コントローラ６０４を制御するように構成され得る。いくつかの実施形態では、メインコントローラ２２０がＥＳＣ６０２への制御信号の送信を停止したことを検出したことに応答して、検出器回路６０６は、メインコントローラ２２０をＥＳＣ６０２に接続する第１の信号経路６１２から、ＥＳＣ６０２を補助コントローラ６０４に接続する第２の信号経路６１４に切り替えるために、（たとえば、制御信号６０６ａを介して）スイッチ６１０を制御するように構成され得る。いくつかの実施形態では、第１の信号経路６１２から第２の信号経路６１４への切り替えは、第１の信号経路６１２を切断し、補助コントローラ６０４をデコーダ６１６に結合する第２の信号経路６１４を接続することを含む。
【００７０】
いくつかの実施形態では、補助コントローラ６０４は、第２の信号経路６１４がスイッチ６１０によって接続されるとき、ロボットビークルを「セーフモード」にする方式で各モータ４０４を動作させる、モータ制御信号をモータドライバ６０８に（たとえば、各々のそれぞれのデコーダ６１６を介して）出し得る。いくつかの実施形態では、補助コントローラ６０４は、たとえばメインコントローラがリブートを完了すること（たとえば、ハード再起動を実行すること）を可能にするのに十分長い、短い期間の間、ＥＳＣ６０２の制御を引き受けるように構成され得る。いくつかの実施形態では、補助コントローラ６０４は、モータが限定セーフ動作モードに従って動作するように、モータドライバ６０８の各々を制御するために、モータ制御信号をそれぞれのデコーダ６１６に出し得る。説明されたように、限定セーフモード動作は、空中ロボットビークルに対するホバリング、水中ロボットビークルに対する低速浮上、または自律的な路上ロボットビークルに対する最後の既知の操舵角の保持を含み得る。いくつかの実施形態では、補助コントローラ６０４は、モータドライバ６０８の各々の制御信号を独立に監視し、それにより、それぞれのデコーダ６１６およびモータドライバ６０８を介して各モータ４０４の独立な制御を達成し得る。いくつかの実施形態では、補助コントローラ６０４は、メインコントローラ２２０からの制御信号が失われている場合であっても、入力６１８を受信し得る。いくつかの実施形態では、ＥＳＣ６０２は、補助コントローラ６０４が１以上のモータドライバ６０８への制御信号を生成するために使用し得る情報を補助コントローラ６０４に提供し得る、１以上の独立のセンサ（たとえば、慣性センサ、ジャイロスコープ、加速度計など）を含み得る。
【００７１】
いくつかの実施形態では、検出器回路６０６は、スイッチ６１０から信号を受信するように構成され得る。いくつかの実施形態では、検出器回路６０６は、スイッチ６１０とモータドライバ６０８との間に配置され、制御ユニット２１０からの信号経路６１２および補助コントローラ６０４からの信号経路６１４の障害監視を実行するように構成され得る。たとえば、検出器回路６０６は、信号経路に沿ってスイッチ６１０とデコーダ６１６との間に配設され得る。いくつかの実施形態では、検出器回路６０６は、スイッチ６１０と検出器回路６０６との間の信号経路を監視し得るが、信号経路に沿って配設される必要はない。そのような実施形態では、スイッチ６１０が第２の信号経路６１４を接続するように制御されるとき、検出器回路６０６は、補助コントローラ６０４がモータ制御信号をデコーダ６１６に提供していることを検証し得る。
【００７２】
いくつかの実施形態では、補助コントローラ６０４は、工場であらかじめロードされた、またはメインコントローラ２２０から受信された、あらかじめロードされたモータ制御命令の限られたセットを実行し得る。モータ制御命令の限られたセットは、補助コントローラ６０４のメモリ６０４ａに記憶され得る。いくつかの実施形態では、通常の動作の間、補助コントローラ６０４は、メインコントローラ２２０からモータ制御命令の限られたセットの定期的な更新（たとえば、約１０秒〜１５秒に対する命令）を受信して記憶し得る。いくつかの実施形態では、あらかじめロードされるモータ制御命令の限られたセットは、単一の命令または単一の動作モードを超え得、２つ以上のモータ制御命令のセットを含み得る。いくつかの実施形態では、あらかじめロードされた命令の限られたセットは、メインコントローラからの有効な制御信号の喪失の直前にロボットビークルによって実行されていた操作をロボットビークルに継続させる、モータ制御信号を含み得る。たとえば、補助コントローラ６０４は、メインコントローラからの有効な制御信号の喪失の直前にたどられていた移動の経路に沿った移動をロボットビークルに継続させる、モータ制御信号を出し得る。別の例として、補助コントローラ６０４は、メインコントローラからの有効な制御信号の喪失の直前にＥＳＣに送信されたモータ制御信号を繰り返す、または模倣するモータ制御信号を出し得、これにより、ロボットビークルは、メインコントローラがリブートを完了する間、姿勢、進行方向、および／または速度を維持し得る。いくつかの実施形態では、あらかじめロードされたモータ制御命令の限られたセットは、特定の環境条件および／またはロボットビークルの条件を決定したことに応答して（たとえば、以下でさらに説明されるように、ロボットビークルの１以上のセンサから受信された入力に基づいて）実行されるべき操作などの、任意選択の操作を支持し得る。
【００７３】
いくつかの実施形態では、補助コントローラ６０４は、限定セーフモード動作を可能にするために、および／または、あらかじめロードされたモータ制御信号の限られたセットを単独で、もしくは任意の組合せで出すために、それぞれのデコーダ６１６を介してモータ制御信号を１以上のモータドライバ６０８に出し得る。たとえば、補助コントローラは、ある期間、あらかじめロードされたモータ制御命令の限られたセットの１以上の態様を出し得（たとえば、１０〜１５秒の命令など）、次いで、補助コントローラは、ロボットビークルにセーフモード動作に入らせるために、それぞれのデコーダ６１６を介してモータ制御信号をモータドライバ６０８に出すことに切り替え得る（たとえば、「フォールバックし得る」）。
【００７４】
様々な実施形態において、補助コントローラ６０４は、ロボットビークル６００の１以上のセンサ（たとえば、センサ２４０、２２６）からの入力６１８、たとえば、慣性センサ、ジャイロスコープ、および加速度計からの（たとえば、慣性／ジャイロ／加速度計モジュール２２６からの）、またはロボットビークル６００の別のセンサからの入力を受信し得る。補助コントローラ６０４は、それぞれのモータドライバ６０８を介してモータ４０４の各々を制御するために適切なモータ制御信号を決定するために、センサからの入力６１８を使用し得る。たとえば、補助コントローラ６０４は、入力６１８に基づいて、モータドライバ６０８の各々に対する異なるモータ制御信号を生成し得、補助コントローラ６０４は、それぞれのデコーダ６１６を介して、生成された制御信号をそれぞれのモータドライバ６０８に送信し得る。いくつかの実施形態では、補助コントローラ６０４は、セーフ動作モードを達成するために、かつ／またはあらかじめロードされたモータ制御命令の限られたセットを実行するために、それぞれのデコーダ６１６およびモータドライバ６０８を介してモータ４０４の各々を独立に制御し得る。
【００７５】
いくつかの実施形態では、検出器回路６０６は、メインコントローラ２２０がＥＳＣ６０２の制御を再開することが可能であることを検出し得る。いくつかの実施形態では、検出器回路６０６は、メインコントローラ２２０のリブートプロセスを監視し得、メインコントローラ２２０がリブートプロセスを完了したとき（たとえば、メインコントローラがオンラインに戻ったこと）を検出し得る。いくつかの実施形態では、メインコントローラ２２０がＥＳＣ６０２の制御を再開することが可能であることを検出したことに応答して、検出器回路６０６は、メインコントローラ２２０と各ＥＳＣ６０２との間の第１の信号経路６１２を再接続し得る。
【００７６】
図７は、様々な実施形態による、ロボットビークルの動作を管理する方法７００を示す。図１〜図７を参照すると、方法７００は、ロボットビークル（たとえば、１０２、２００）のハードウェア構成要素および／またはソフトウェア構成要素において実施され得、それらの動作は、１以上の検出器回路（たとえば、５０６、６０６など）およびロボットビークルの補助コントローラ（たとえば、５０４、６０４など）によって制御され得る。
【００７７】
ブロック７０２において、検出器回路は第１の信号経路（たとえば、５１２、６１２）を監視し得、第１の信号経路によって、ロボットビークルのメインコントローラ（たとえば、２２０）は、モータドライバ（たとえば、５０８、６０８）を介して１以上の制御信号をモータ（たとえば、４０４）に提供し得る。
【００７８】
決定ブロック７０４において、検出器回路は、メインコントローラがロボットビークルのＥＳＣ（たとえば、５０２、６０２）への制御信号の送信を停止したかどうかを決定し得る。いくつかの実施形態において、検出器回路は、メインコントローラが、たとえば、メインコントローラのリブートまたは障害の結果として、ＥＳＣの制御を停止するときを検出し得る。
【００７９】
メインコントローラがＥＳＣへの制御信号の送信を停止しなかったとの決定に応答して（すなわち、決定ブロック７０４＝「Ｎｏ」）、検出器回路は、ブロック７０２において第１の信号経路の監視を継続し得る。
【００８０】
メインコントローラがＥＳＣへの制御信号の送信を停止したとの決定に応答して（すなわち、決定ブロック７０４＝「Ｙｅｓ」）、検出器回路は、ブロック７０６において関連するＥＳＣの制御権を引き継ぐように補助コントローラを制御し得る。いくつかの実施形態では、検出器回路は、メインコントローラを１以上のＥＳＣに接続する第１の信号経路から、１以上のＥＳＣを１以上の補助コントローラに接続する第２の信号経路に切り替えるように、ブロック７０６においてスイッチ（たとえば、５１０、６１０）を制御し得る。
【００８１】
ブロック７０８において、１以上の補助コントローラは、ロボットビークルがセーフ動作モードに入るようにモータを制御するように構成される、モータ制御信号をＥＳＣに出し得る。限定セーフモード動作の例は、空中ロボットビークルに対するホバリング、水中ロボットビークルに対する低速浮上、または自律的な路上ロボットビークルに対する最後の既知の操舵角の保持を含む。
【００８２】
ブロック７１０において、検出器回路は、メインコントローラがＥＳＣの制御を再開することが可能であるかどうかを決定し得る。いくつかの実施形態では、検出器回路は、メインコントローラがＥＳＣへの有効な制御信号の送信を再開することが可能であるかどうかを決定し得る。たとえば、検出器回路は、メインコントローラがリブートのプロセスを完了したときを、またはメインコントローラがオンラインに戻ったことを決定し得る。いくつかの実施形態では、検出器回路は、メインコントローラからのモータ制御信号を検出し得る。
【００８３】
メインコントローラがＥＳＣの制御を引き受けることが可能ではないとの決定に応答して（すなわち、決定ブロック７１０＝「Ｎｏ」）、１以上の補助コントローラは、ブロック７０８においてモータ制御信号をＥＳＣに出し続け得る。いくつかの実施形態では、検出器回路は、メインコントローラがＥＳＣの制御を再開することが可能ではないとの決定に応答して、第２の信号経路の接続を維持し得る。
【００８４】
メインコントローラがＥＳＣの制御を引き受けることが可能であるとの決定に応答して（すなわち、決定ブロック７１０＝「Ｙｅｓ」）、検出器回路は、各々の関連するＥＳＣの制御権をメインコントローラに譲渡するように１以上の補助コントローラを制御し得る。いくつかの実施形態では、メインコントローラがＥＳＣの制御を再開することが可能であるとの決定に応答して、検出器回路は、第２の信号経路を切断し、メインコントローラと各ＥＳＣとの間の第１の信号経路を再接続し得る。
【００８５】
プロセッサは、ブロック７０２において第１の信号経路の監視を続け得る。
【００８６】
図８は、様々な実施形態による、ロボットビークルの動作を管理する方法８００を示す。図１〜図８を参照すると、方法８００は、ロボットビークル（たとえば、１０２、２００）のハードウェア構成要素および／またはソフトウェア構成要素において実施され得、それらの動作は、ロボットビークルの１以上のプロセッサ（たとえば、コントローラ２２０、５０４、６０４など）によって制御され得る。ブロック７０２〜７１２において、ロボットビークルのプロセッサは、説明されたように方法７００の同様の番号のブロックの動作を実行し得る。
【００８７】
ブロック８０２において、補助コントローラ（たとえば、５０４、６０４）は、メインコントローラ（たとえば、２２０）からモータ制御命令の限られたセットの定期的な更新を受信して記憶し得る。いくつかの実施形態では、モータ制御命令の限られたセットは、比較的短い期間に対する命令（たとえば、約１０〜１５秒に対する命令）であり得る。いくつかの実施形態では、モータ制御命令の限られたセットは、２つ以上のモータ制御命令のセットを含み得る。いくつかの実施形態では、モータ制御命令の限られたセットは、特定の環境条件および／またはロボットビークルの条件を決定したことに応答して実行されるべき操作などの、任意選択の操作をロボットビークルに実行させるモータ制御を含み得る。モータ制御命令の限られたセットは、補助コントローラと関連付けられるメモリに記憶され得る。
【００８８】
任意選択のブロック８０４において、ブロック７０６で１以上の補助コントローラがモータ制御信号をＥＳＣに出すのを開始した後で、プロセッサが、以下でさらに使用され得るタイマーを初期化し得る。
【００８９】
ブロック８０６において、補助コントローラは、ＥＳＣへのモータ制御信号を生成して出すために、モータ制御命令の小さいセットを実行し得る。
【００９０】
決定ブロック８０８において、検出器回路は、メインコントローラがＥＳＣの制御を再開することが可能であるかどうかを決定し得る。
【００９１】
メインコントローラがＥＳＣの制御を引き受けることが可能であるとの決定に応答して（すなわち、決定ブロック８０８＝「Ｙｅｓ」）、検出器回路は、ブロック７１２において、関連するＥＳＣの制御権を放棄するように補助コントローラを制御し得る。
【００９２】
メインコントローラがＥＳＣの制御を引き受けることが可能ではないとの決定に応答して（すなわち、決定ブロック８０８＝「Ｎｏ」）、補助コントローラは、決定ブロック８１０において、モータ制御命令の限られたセットが完了したかどうかを決定し得る。
【００９３】
モータ制御命令の小さいセットが完了していないとの決定に応答して（すなわち、決定ブロック８１０＝「Ｎｏ」）、補助コントローラは、任意選択の決定ブロック８１２において、タイマーが時間切れになったかどうかを決定し得る。
【００９４】
タイマーが時間切れになっていないとの決定に応答して（すなわち、任意選択の決定ブロック８１２＝「Ｎｏ」）、補助コントローラは、ブロック８０６において、モータ制御命令の限られたセットを実行することを続け得る。
【００９５】
モータ制御命令の限られたセットが完了したとの決定に応答して（すなわち、決定ブロック８１０＝「Ｙｅｓ」）、または任意選択の決定ブロック８１２においてタイマーが時間切れになったとの決定に応答して（すなわち、任意選択の決定ブロック８１２＝「Ｙｅｓ」）、補助コントローラは、ブロック７０８において、ロボットビークルに限定セーフ動作モードを実行させるモータ制御信号をＥＳＣに出すのを開始し得る。
【００９６】
図９は、様々な実施形態による、ロボットビークルの動作を管理する方法９００を示す。図１〜図９を参照すると、方法９００は、ロボットビークル（たとえば、１０２、２００）のハードウェア構成要素および／またはソフトウェア構成要素において実施され得、それらの動作は、ロボットビークルの１以上のプロセッサ（たとえば、コントローラ２２０、５０４、６０４など）によって制御され得る。ブロック７０２〜７１２および８０２〜８１２において、ロボットビークルのプロセッサは、説明されたように方法７００および８００の同様の番号のブロックの動作を実行し得る。
【００９７】
様々な実施形態において、ロボットビークルのプロセッサは、時々様々な補助コントローラ（たとえば、５０４、６０４）の動作を試験し得、補助コントローラの障害が検出される際に、ロボットビークルを保護するための行動をとり、またはそのための操作を実行し得る。補助コントローラに障害を検出することは、メインコントローラに障害がある際に、またはメインコントローラがリブートを開始する際に、ロボットビークルが脆弱である（たとえば、墜落する可能性がある）ことを示し得る。したがって、補助コントローラの機能について補助コントローラを試験することは、飛行前試験の一部として、かつ／または、ロボットビークルの安全な動作を確保することの一部として動作の間に定期的に実行され得る。
【００９８】
ブロック９０２において、補助コントローラおよび／またはメインコントローラ（たとえば、２２０）は、各補助コントローラが適切に機能しているかどうか、または適切に機能することが可能であるかどうかを決定するように構成される、補助コントローラの試験を実行し得る。たとえば、そのような試験は、補助コントローラの１以上のパラメータが、適切に機能していることを示す閾値のレベルの性能および／または基準を満たすかどうかを決定するために、応答のシグナリングおよび／または分析を伴い得る。たとえば、補助コントローラは、試験信号をメインコントローラに送信し得、補助コントローラからの試験信号に基づいて、メインコントローラは、補助コントローラが適切に機能しているかどうかを決定し得る。いくつかの実施形態では、補助コントローラからの試験信号に応答して、メインコントローラは応答信号を送信し得、応答信号に基づいて、補助コントローラは、メインコントローラが適切に機能しているかどうかを決定し得る。別の例として、メインコントローラは、試験信号を補助コントローラに送信し得る。いくつかの実施形態では、メインコントローラからの試験信号に基づいて、補助コントローラは、メインコントローラが適切に機能しているかどうか、または適切に機能することが可能であるかどうかを決定し得る。いくつかの実施形態では、メインコントローラからの試験信号に応答して、補助コントローラは応答信号を送信し得、応答信号に基づいて、メインコントローラは、補助コントローラが適切に機能しているかどうか、または適切に機能することが可能であるかどうかを決定し得る。
【００９９】
決定ブロック９０４において、ロボットビークルのプロセッサ（たとえば、メインコントローラおよび／または補助コントローラ）は、補助コントローラの障害が検出されるかどうかを決定し得る。
【０１００】
補助コントローラの障害が検出されないとの決定に応答して（すなわち、決定ブロック９０４＝「Ｎｏ」）、方法７００の決定ブロック７０４の動作は説明されるように実行され得る。
【０１０１】
補助コントローラの障害を検出したことに応答して（すなわち、決定ブロック９０４＝「Ｙｅｓ」）、プロセッサは、ブロック９０６において、ロボットビークルに、ロボットビークルを保護するための行動をとらせ、またはそのための安全操作を実行させ得る。安全操作の例として、空中ロボットビークルは、飛行中に障害が検出される場合に着陸し得、水中ロボットビークルは浮上し得、陸上ロボットビークルは安全な位置（たとえば、道路の脇）へと移動し得る。安全操作の別の例として、任意のタイプのロボットビークルが基地に帰り得る。さらなる例として、動作前試験の間に障害が検出される場合、ロボットビークルの動作は禁止され得る。
【０１０２】
図示および説明された様々な実施形態は、特許請求の範囲の様々な特徴を示すための例として提供されるにすぎない。しかしながら、任意の所与の実施形態に関して図示および説明された特徴は、必ずしも関連する実施形態に限定されるとは限らず、図示および説明されている他の実施形態とともに使用され得る、またはそれらと組み合わされ得る。さらに、特許請求の範囲は、いかなる例示的な一実施形態によっても限定されないものとする。たとえば、方法７００および８００の動作の１以上は、方法７００および８００の１以上の動作と置換され、または組み合わされ得、その逆も可能であり得る。
【０１０３】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供され、様々な実施形態の動作が提示された順序で実行されなければならないことを要求または暗示するものではない。当業者によって理解されるように、上記の実施形態における動作の順序は、任意の順序で実行され得る。「その後」、「次いで」、「次に」などの語は、動作の順序を限定するものではなく、これらの語は、方法の説明を通じて読者を導くために使用される。さらに、たとえば、冠詞「ａ」、「ａｎ」または「ｔｈｅ」を使用する単数形での請求項要素へのいかなる言及も、要素を単数形に限定するものとして解釈されるべきではない。
【０１０４】
本明細書で開示された実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズム動作は、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実装され得る。ハードウェアおよびソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路および動作は、全般にそれらの機能に関して上で説明された。そのような機能がハードウェアとして実装されるかまたはソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装し得るが、そのような実装決定は、特許請求の範囲からの逸脱を引き起こすものとして解釈されるべきではない。
【０１０５】
本明細書で開示される態様に関して説明された様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて、実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、受信機スマートオブジェクトの組合せ、たとえば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと組み合わせた１以上のマイクロプロセッサ、または他のそのような任意の構成として実装され得る。代わりに、いくつかの動作または方法は、所与の機能に固有の回路によって実行され得る。
【０１０６】
１以上の態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアにおいて実装される場合、機能は、非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体上に１以上の命令またはコードとして記憶され得る。本明細書で開示される方法またはアルゴリズムの動作は、非一時的コンピュータ可読記憶媒体上または非一時的プロセッサ可読記憶媒体上に存在し得る、プロセッサ実行可能ソフトウェアモジュールまたはプロセッサ実行可能命令において具現化され得る。非一時的コンピュータ可読またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であり得る。限定ではなく例として、そのような非一時的コンピュータ可読記憶媒体または非一時的プロセッサ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶スマートオブジェクト、または、命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得かつコンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)（ＣＤ）、レーザーディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)（ＤＶＤ）、フロッピーディスク(disk)（登録商標）およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体および非一時的プロセッサ可読媒体の範囲に含まれる。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品内に組み込まれ得る、非一時的プロセッサ可読記憶媒体および／または非一時的コンピュータ可読記憶媒体上のコードおよび／または命令の１つまたは任意の組合せもしくはセットとして存在し得る。
【０１０７】
開示された実施形態の前述の説明は、任意の当業者が特許請求の範囲を製作または使用することを可能にするために提供される。これらの実施形態に対する様々な修正は、当業者に容易に明らかになり、本明細書で定義される一般原理は、特許請求の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。したがって、本開示は、本明細書で示される実施形態に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示された原理および新規の特徴に一致する最大の範囲を与えられるものである。
【符号の説明】
【０１０８】
１００  通信システム、１０２  ロボットビークル、１０２ａ  空中ロボットビークル、１０２ｂ  地上ロボットビークル、１０２ｃ  水上ロボットビークル、１０４  基地局、１０６  アクセスポイント、１０８  通信ネットワーク、１１０  ネットワーク要素、１１２  ワイヤレス通信リンク、１１４  ワイヤレス通信リンク、１１６  ワイヤレス通信バックホール、１１８  ワイヤレス通信バックホール、１２２  通信リンク、２００  ロボットビークル、２０２  複数のロータ、２０４  フレーム、２０６  着陸柱、２１０  制御ユニット、２２０  メインコントローラ、２２１  ロバストプロセッサ、２２２  航法ユニット、２２４  メモリ、２２６  慣性センサ／ジャイロ／加速度計ユニット、２２８  アビオニクスモジュール、２３０  電力モジュール、２４０  センサ、２４４  カメラ、２５０  出力モジュール、２６０  入力モジュール、２７０  無線、２７２  送信／受信アンテナ、２７４  モデム、２９０  ＷＣＤ、２９２  送信／受信アンテナ、２９４  双方向ワイヤレス通信リンク、３１４  プロセッサ、３１６  メモリ、３１８  通信インターフェース、３２０  ストレージメモリインターフェース、３２２  通信構成要素、３２８  ハードウェアインターフェース、３３０  補助コントローラへの出力、４００  ロボットビークル、４０２  ＥＳＣ、４０２ａ  デコーダ、４０２ｂ  モータドライバ、４０４  モータ、４０６  ロータ、５００  ロボットビークル、５０２  ＥＳＣ、５０４  補助コントローラ、５０４ａ  メモリ、５０６  検出器回路、５０６ａ  制御信号、５０８  モータドライバ、５１０  スイッチ、５１２  第１の信号経路、５１４  第２の信号経路、５１６  センサからの入力、６００  ロボットビークル、６０２  ＥＳＣ、６０４  補助コントローラ、６０４ａ  メモリ、６０６  検出器回路、６０６ａ  制御信号、６０８  モータドライバ、６１０  スイッチ、６１２  第１の信号経路、６１４  第２の信号経路、６１６  デコーダ、６１８  センサからの入力
【図１】
2021510870.tif 000003
【図２】
2021510870.tif 000004
【図３】
2021510870.tif 000005
【図４】
2021510870.tif 000006
【図５】
2021510870.tif 000007
【図６】
2021510870.tif 000008
【図７】
2021510870.tif 000009
【図８】
2021510870.tif 000010
【図９】
2021510870.tif 000011
【国際調査報告】
2021510870.tif 000012
2021510870.tif 000013