以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、図面において、同一または類似の部分には同一の参照番号を付して、重複する説明を省く場合がある。
(作業機械120の概要)
まず、図1及び図2を用いて、作業機械120の概要が説明される。本実施形態においては、作業機械120の代表点30を原点とする直交座標系(ロボット座標系と称される場合がある。)を用いて、作業機械120の詳細が説明される。本実施形態において、ロボット座標系は、x軸32、y軸34及びz軸36を含む。x軸32及びy軸34は、作業機械120が水平な面の上に配された場合に、水平方向に平行な軸である。x軸32は、作業機械120の前方122から後方124の側に延伸する。一方、z軸36は、作業機械120が水平な面の上に配された場合に、鉛直方向に平行な軸である。
図1は、作業機械120の一例を概略的に示す。本実施形態において、作業機械120は、作業者20の作業を支援する。作業機械120は、自律移動機能を有してもよい。例えば、作業者20が作業順路の方向(順路方向と称される場合がある。)に沿って作業を実施する場合、作業機械120は、順路方向において作業者20の略前方に位置する。作業機械120の停止中に、作業者20が、作業機械120の後方124の側から作業機械120に接近すると、作業機械120は、作業機械120の前方122の側に移動する(先行移動と称される場合がある)。
なお、作業機械120の動作モードによっては、作業機械120は、先行する作業者20の後ろを追従するように移動する(追従移動と称される場合がある)こともできる。作業機械120が追従移動する場合、作業機械120の移動先は、作業者20の近傍の位置に設定され得る。一方、作業機械120が先行移動する場合、作業機械120の移動先を決定することが難しい。
そこで、本実施形態において、作業機械120は、定期的に、又は、予め定められたタイミングで、作業者20の身体の予め定められた部位と、作業機械120の予め定められた部位との位置関係(作業者20及び作業機械120の位置関係、現在の位置関係などと称される場合がある。)を決定する。例えば、作業機械120は、作業者20の身体の一部に設けられた判定対象22と、作業機械120の代表点30との位置関係を決定する。
一実施形態において、作業者20及び作業機械120の位置関係は、作業機械120に搭載された機器が撮像又は取得した作業者20の画像、ステレオ画像、距離画像、点群データの少なくとも1つに基づいて決定される。上記の機器としては、カメラ、ステレオカメラ、LiDARなどが例示される。
他の実施形態において、作業者20及び作業機械120の位置関係は、作業順路の近傍に配された機器が撮像又は取得した、作業者20及び作業機械120の画像、ステレオ画像、距離画像、及び、点群データの少なくとも1つに基づいて決定される。上記の機器としては、カメラ、ステレオカメラ、LiDARなどが例示される。上記の機器は、土地又は建物に対して固定されていてもよく、移動可能に構成されていてよい。上記の機器は、ドローンなどの自律飛行装置、他の作業機械120などに搭載されていてもよい。
さらに他の実施形態において、作業者20及び作業機械120の位置関係は、作業者20及び作業機械120の位置データに基づいて決定される。作業者20の位置データは、例えば、作業者20が所持するGPS電波受信装置により取得される。作業機械120の位置データは、例えば、作業機械120に搭載されたGPS電波受信装置により取得される。
判定対象22としては、頭部、胴体、これらの一部などが例示される。判定対象22は、手又は足以外の部位であることが好ましい。例えば、作業者20が、収穫された農産物を作業機械120に搭載された箱に収納する作業を実施する場合、作業者20の手又は足と、作業機械120の代表点30との距離が非常に小さくなる可能性がある。そのため、作業者20の手又は足が判定対象22として設定されている場合、作業者20の意に反して、作業機械120の先行移動が開始される可能性がある。上記の「手」は、手先から手首であってよい。上記の「足」は、足先から足首までであってよい。
判定対象22は、手又は足であってもよい。作業者20の手又は足が判定対象22として設定される場合、作業機械120が先行移動を開始するための閾値は、作業者20の頭部又は胴体が判定対象22として設定される場合の閾値と比較して小さくてよい。
なお、作業者20の身体の予め定められた部位は、判定対象22に限定されない。作業機械120の予め定められた部位は、代表点30に限定されない。
また、本実施形態において、作業機械120は、現在の位置関係が、作業者20及び作業機械120の位置関係に関する予め定められた条件(位置条件と称される場合がある。)に合致しているか否かを判定する。現在の位置関係が位置条件に合致する場合、作業機械120は、先行移動の目的位置を探索するための処理(探索処理と称される場合がある。)を実行する。
上記の位置条件は、(a)作業者20の身体の予め定められた部位と、作業機械120の予め定められた部位との距離が、第1閾値以下であるという条件であってよい。上記の位置条件は、(b)(i)作業者20の身体の予め定められた部位と、作業機械120の予め定められた部位との距離が、第2閾値以下であり、且つ、(ii)x軸32の延伸方向と、作業機械120の代表点30から作業者20の身体の予め定められた部位に向かう方向とのなす角の大きさの絶対値が、第3閾値以下であるという条件であってよい。上記の位置条件は、これらの組み合わせであってもよい。
第1閾値及び第2閾値は、同一であってもよく、異なってもよい。第1閾値及び第2閾値が異なる場合、第1閾値は、第2閾値以上であってもよく、第2閾値より大きくてもよい。
探索処理においては、例えば、単位期間における作業者20の移動態様、予め定められた作業機械120の移動経路、作業機械120の停止が許可されている複数の地点の位置などに基づいて、先行移動の目的位置が決定される。これにより、作業機械120を先行移動させるための制御装置又は制御プログラム、先行移動が可能な作業機械120などが提供され得る。
(作業機械120の各部の概要)
図1に示されるとおり、本実施形態において、作業機械120は、例えば、ベースユニット130と、1又は複数の(単に、1以上と称される場合がある。)移動ユニット132と、1以上の前方センサ134と、1以上の後方センサ136と、1以上の作業ユニット138と、制御ユニット140とを有する。各部の詳細は後述される。
(作業機械120の各部の具体的な構成)
作業機械120の各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよく、ハードウエア及びソフトウエアにより実現されてもよい。作業機械120の各部は、その少なくとも一部が、単一のサーバによって実現されてもよく、複数のサーバによって実現されてもよい。作業機械120の各部は、その少なくとも一部が、仮想マシン上又はクラウドシステム上で実現されてもよい。作業機械120の各部は、その少なくとも一部が、パーソナルコンピュータ又は携帯端末によって実現されてもよい。携帯端末としては、携帯電話、スマートフォン、PDA、タブレット、ノートブック・コンピュータ又はラップトップ・コンピュータ、ウエアラブル・コンピュータなどが例示され得る。作業機械120の各部は、ブロックチェーンなどの分散型台帳技術又は分散型ネットワークを利用して、情報を格納してよい。
作業機械120を構成する構成要素の少なくとも一部がソフトウエアにより実現される場合、当該ソフトウエアにより実現される構成要素は、一般的な構成の情報処理装置において、当該構成要素に関する動作を規定したソフトウエア又はプログラムを起動することにより実現されてよい。上記の一般的な構成の情報処理装置は、(i)CPU、GPUなどのプロセッサ、ROM、RAM、通信インタフェースなどを有するデータ処理装置と、(ii)キーボード、ポインティングデバイス、タッチパネル、カメラ、音声入力装置、ジェスチャ入力装置、各種センサ、GPS受信機などの入力装置と、(iii)表示装置、音声出力装置、振動装置などの出力装置と、(iv)メモリ、HDD、SSDなどの記憶装置(外部記憶装置を含む。)とを備えてよい。
上記の一般的な構成の情報処理装置において、上記のデータ処理装置又は記憶装置は、上記のソフトウエア又はプログラムを記憶してよい。上記のソフトウエア又はプログラムは、プロセッサによって実行されることにより、上記の情報処理装置に、当該ソフトウエア又はプログラムによって規定された動作を実行させる。上記のソフトウエア又はプログラムは、非一時的なコンピュータ可読記録媒体に格納されていてもよい。上記のソフトウエア又はプログラムは、コンピュータを、作業機械120又はその一部として機能させるためのプログラムであってよい。上記のソフトウエア又はプログラムは、コンピュータに、作業機械120又はその一部における情報処理を実行させるためのプログラムであってよい。
一実施形態において、上記の情報処理方法は、自律移動機能を有する移動体の移動を制御するための制御方法であってよい。上記の制御方法は、例えば、移動体のユーザが、移動体の一方の側から前移動体に接近した場合に、移動体の駆動装置を制御して、移動体を移動体の他方の側に 移動させる制御段階を有する。上記の制御方法において、制御段階は、例えば、ユーザの身体の予め定められた部位と、移動体の予め定められた部位との位置関係が、位置関係に関する予め定められた条件である位置条件に合致するか否かを判定する位置判定段階を含む。制御段階は、例えば、位置関係が位置条件に合致する場合に、制御段階において移動体を移動体の他方の側に移動させる場合の目的位置を決定する目的位置決定段階を含む。上記の情報処理方法の各段階の動作主体は、コンピュータであってよい。
作業者20は、移動体のユーザの一例であってよい。作業機械120は、移動体の一例であってよい。作業機械120の前方122は、移動体の他方の一例であってよい。作業機械120の後方124は、移動体の一方の一例であってよい。移動ユニット132は、駆動装置の一例であってよい。制御ユニット140は、制御装置又は制御部の一例であってよい。先行移動の目的位置は、制御装置が移動体を移動体の他方の側に移動させる場合の目的位置の一例であってよい。
(別実施形態の一例)
本実施形態においては、作業機械120の代表点30を原点とする直交座標系を用いて、作業機械120の自律移動が制御される場合を例として、作業機械120の一例が説明された。しかしながら、作業機械120の制御に用いられる座標系は、本実施形態に限定されない。他の実施形態において、直交座標系以外の各種の座標系が用いられる。例えば、極座標系が用いられる。さらに他の実施形態において、テンソル又はテンソル場が用いられる。
本実施形態においては、特定の作業機械120の制御ユニット140が、(i)作業者20の身体の予め定められた部位と、当該特定の作業機械120の予め定められた部位との位置関係が、予め定められた位置条件に合致するか否かを判定し、(ii)当該位置関係が当該位置条件に合致する場合に、当該特定の作業機械120の目的位置を決定する場合を例として、作業機械120及び制御ユニット140の一例が説明された。しかしながら、作業機械120及び制御ユニット140は、本実施形態に限定されない。
他の実施形態において、特定の作業機械120の制御ユニット140における上記の情報処理が、当該特定の作業機械120の外部に配された他の情報処理装置により実行されてよい。他の情報処理装置としては、(i)特定の作業機械120とは異なる他の作業機械120に配された他の制御ユニット140、(ii)通信ネットワークを介して特定の作業機械120と情報を送受可能に構成されたコンピュータ、サーバなどが例示される。この場合において、特定の作業機械120の制御ユニット140は、例えば、通信ネットワークを介して、当該特定の作業機械120の目的位置を示す情報を、上記の他の情報処理装置から取得する。また、特定の作業機械120の制御ユニット140は、他の情報処理装置から取得した目的位置を示す情報に基づいて、当該特定の作業機械120の移動を制御する。
図2は、作業機械120のシステム構成の一例を概略的に示す。図1に関連して説明されたとおり、本実施形態において、作業機械120は、ベースユニット130と、移動ユニット132と、前方センサ134と、後方センサ136と、作業ユニット138と、制御ユニット140とを有する。図2に示されるとおり、本実施形態において、作業機械120は、1以上の電源ユニット230と、1以上のセンサユニット240と、1以上の制振ユニット250と、1以上のバランス調整ユニット280とをさらに備える。
本実施形態において、作業機械120は、任意の作業を実施する作業機械であってよい。作業機械120は、例えば、各種の農作業、監視作業などを実施する。作業機械120は、固定式であってもよく、移動式であってもよい。作業機械120は、自律走行機能又は自律航行機能を有してもよく、遠隔操作により操縦されてもよく、作業機械120に乗り込んだ作業者により操縦されてもよい。作業機械120は、自律走行機能又は自律航行機能を有する、無人作業機械であることが好ましい。
作業機械120は、小型のロボットであってよい。例えば、作業機械120の1台当たりの体積は、2m3以下であってよく、1m3以下であってよく、0.5m3以下であってよく、0.25m3以下であってもよい。これにより、作業機械120は、生産現場を自由に移動することができる。その結果、例えば、作業機械120は、人間では観察が難しいアングルからでも生産中の商品を観察することができる。
本実施形態において、ベースユニット130は、移動ユニット132、前方センサ134、後方センサ136、作業ユニット138、制御ユニット140、電源ユニット230、センサユニット240、制振ユニット250、及び、バランス調整ユニット280を保持する。本実施形態において、ベースユニット130は、移動ユニット132、前方センサ134、後方センサ136、作業ユニット138、制御ユニット140、電源ユニット230、センサユニット240、制振ユニット250、及び、バランス調整ユニット280の少なくとも1つを着脱可能に保持する。これにより、作業機械120は、複数の異なる種類の作業に対応することができる。
本実施形態において、ベースユニット130は、制御ユニット140及び電源ユニット230を有する。制御ユニット140及び電源ユニット230は、ベースユニット130に内蔵されてもよい。制御ユニット140及び電源ユニット230の少なくとも一方は、ベースユニット130に着脱可能に配されてもよい。一実施形態において、制御ユニット140及び電源ユニット230の少なくとも一方は、ベースユニット130の内部に着脱可能に配される。他の実施形態において、制御ユニット140及び電源ユニット230の少なくとも一方は、ベースユニット130の外部に着脱可能に配される。
本実施形態において、移動ユニット132は、作業機械120を駆動する。例えば、移動ユニット132は、作業機械120を移動させる。移動ユニット132の動力は、電力であってもよく、内燃機関であってもよく、蒸気機関であってもよい。例えば、移動ユニット132は、電源ユニット230から供給された電力を動力に変換して、作業機械120を移動させる。本実施形態において、移動ユニット132は、電源ユニット230から供給された電力を利用して動力を発生させる動力源を内蔵してもよい。動力源としては、モータ、アクチュエータなどが例示され得る。
一実施形態において、移動ユニット132は、陸上で移動するための車輪と、当該車輪を駆動する動力源とを備える。他の実施形態において、移動ユニット132は、陸上で移動するための無限軌道と、当該無限軌道を駆動する動力源とを備える。さらに他の実施形態において、移動ユニット132は、水上又は水中で移動するためのスクリューと、当該スクリューを駆動する動力源とを備えてよい。移動ユニット132は、浮力を得るための浮力材をさらに備えてもよい。さらに他の実施形態において、移動ユニット132は、空中で移動するためのプロペラと、当該プロペラを駆動する動力源とを備えてよい。移動ユニット132は、空中に浮遊するためのバルーン又は気嚢をさらに備えてもよい。
本実施形態において、前方センサ134は、作業機械120の前方122に配された地物を検出する。例えば、前方センサ134は、作業機械120の前方122に配された障害物、路面の凹凸などを検出する。前方センサ134は、作業機械120の前方122に位置する作業者20を検出してもよい。前方センサ134は、作業機械120の前方122に位置する作業者20の身体の予め定められた部位を検出してもよい。前方センサ134は、作業機械120の前方122からの作業者20の接近を検出してもよい。前方センサ134としては、カメラ、ステレオカメラ、LiDAR、人感センサなどが例示される。カメラは、可視光カメラであってもよく、赤外線カメラであってもよい。
前方センサ134は、測定結果又は検出結果を示すデータを制御ユニット140に出力する。前方センサ134が出力したデータは、作業機械120の記憶装置に記憶されてもよく、通信ネットワークを介して外部の情報処理装置に送信されてもよい。
本実施形態において、後方センサ136は、作業機械120の後方124に配された地物を検出する。例えば、前方センサ134は、作業機械120の後方124に配された障害物、路面の凹凸などを検出する。前方センサ134は、作業機械120の後方124に位置する作業者20を検出してもよい。後方センサ136は、作業機械120の後方124に位置する作業者20の身体の予め定められた部位を検出してもよい。後方センサ136は、作業機械120の後方124からの作業者20の接近を検出してもよい。後方センサ136としては、カメラ、ステレオカメラ、LiDAR、人感センサなどが例示される。カメラは、可視光カメラであってもよく、赤外線カメラであってもよい。
後方センサ136は、測定結果又は検出結果を示すデータを制御ユニット140に出力する。後方センサ136が出力したデータは、作業機械120の記憶装置に記憶されてもよく、通信ネットワークを介して外部の情報処理装置に送信されてもよい。
本実施形態において、作業ユニット138は、特定の作業に特化したアタッチメントであってよい。本実施形態によれば、用途に応じた作業ユニット138が、ベースユニット130に取り付けられる。これにより、作業機械120は、複数の異なる種類の作業を実施することができる。
作業者20の作業対象が農産物である場合、又は、作業者20の作業が農作業である場合、作業ユニット138は、農作業用のアタッチメントであってよい。本実施形態において、作業ユニット138は、1又は複数の農作業に特化したユニットであってよい。作業ユニット138としては、害虫駆除用の薬液散布装置、肥料を散布する肥料散布装置、ガスを散布するガス散布装置、畝立て装置、苗投下装置、種蒔き装置、耕うん装置、不要な枝葉を摘要するための治具を有するマニピュレータ、農産物を摘果するための治具を有するマニピュレータ、草刈り装置(例えば、放置された田畑用の草刈り装置である。)、散水装置、鳥獣威嚇装置(例えば、音声、光により鳥獣を威嚇する装置である。)、間引き装置、摘花装置、果樹摘果装置、袋掛け装置(例えば、果樹用の袋掛け装置である。)などが例示される。
本実施形態において、作業ユニット138は、ベースユニット130に着脱可能に保持される。作業ユニット138は、電源ユニット230から供給された電力を利用して、作業ユニット138を駆動するための動力を発生させる動力源を内蔵してもよい。動力源としては、モータ、アクチュエータなどが例示される。
本実施形態において、作業ユニット138は、ファームウエアを実行し、作業ユニット138を制御する情報処理装置を備えてよい。上記の情報処理装置は、CPU、GPUなどのプロセッサであってもよい。上記の情報処理装置は、(i)CPU、GPUなどのプロセッサ、ROM、RAM、通信インタフェースなどを有するデータ処理装置と、(ii)キーボード、ポインティングデバイス、タッチパネル、カメラ、音声入力装置、ジェスチャ入力装置、各種センサ、GPS受信機などの入力装置と、(iii)表示装置、音声出力装置、振動装置などの出力装置と、(iv)メモリ、HDD、SSDなどの記憶装置(外部記憶装置を含む。)とを備えてもよい。
上記のファームウエアは、適切なタイミングで更新されてよい。例えば、制御ユニット140は、通信回線を介して外部の情報処理装置にアクセスし、最新のファームウエアを取得する。制御ユニット140は、作業ユニット138に配された情報処理装置と協働して、ファームウエアの更新処理を実行する。
本実施形態において、制御ユニット140は、作業機械120を制御する。制御ユニット140は、作業機械120の各部の動作を制御してよい。例えば、制御ユニット140は、移動ユニット132の動作を制御して、任意の目的位置に向かって作業機械120を移動させる。制御ユニット140の詳細は後述される。
本実施形態において、電源ユニット230は、作業機械120の各部に、電力を供給する。電源ユニット230は、制振ユニット250、前方センサ134、後方センサ136及び制御ユニット140の少なくとも1つに、電力を供給してよい。
本実施形態において、センサユニット240は、各種の物理量を測定する。例えば、センサユニット240は、作業者20作業機械120に関する物理量、作業機械120の周辺の地物に関する物理量、作業者20に関する物理量、及び、作業者20の作業対象に関する物理量の少なくとも1つを測定する。
一実施形態において、センサユニット240は、ベースユニット130の外部に脱着可能に配される。他の実施形態において、センサユニット240は、他のユニットに配される。例えば、センサユニット240は、作業ユニット138に組み込まれる。センサユニット240は、制御ユニット140に組み込まれてもよい。
センサユニット240は、1以上のセンサを含んでよい。センサユニット240は、1以上の種類のセンサを含んでよい。前方センサ134及び後方センサ136は、センサユニット240を構成する1以上のセンサの一部であってよい。センサユニット240は、1以上のセンサの測定結果又は検出結果を示す情報を制御ユニット140に出力してよい。センサユニット240が出力したデータは、作業機械120の記憶装置に記憶されてもよく、通信ネットワークを介して外部の情報処理装置に送信されてもよい。
本実施形態において、制振ユニット250は、振動を制御する。制振ユニット250は、作業機械120の各部の振動を抑制してよい。例えば、制振ユニット250は、前方センサ134、後方センサ136、作業ユニット138及びセンサユニット240の少なくとも1つの振動を制御する。制振ユニット250は、制御ユニット140からの命令にしたがって、振動を制御してよい。制振ユニット250は、電源ユニット230から供給された電力を利用して、制振ユニット250を駆動するための動力を発生させる動力源を有してよい。動力源としては、モータ、アクチュエータなどが例示される。
本実施形態において、バランス調整ユニット280は、重りを有する。バランス調整ユニット280は、ベースユニット130に着脱可能に保持される。ベースユニット130に装着されるユニットの重さ及びその重心の位置によっては、作業機械120の重量バランスが悪くなり、作業機械120が不安定になる。そこで、ベースユニット130の適切な位置にバランス調整ユニット280を装着することにより、作業機械120の重量バランスが調整され得る。
図3は、作業者20及び作業機械120の位置関係の一例を概略的に示す。本実施形態においては、説明を簡単にすることを目的として、二次元空間上における両者の位置関係の一例が説明される。なお、本実施形態の記載に接した当業者であれば、二次元空間上における両者の位置関係を、三次元空間上における両者の位置関係に容易に拡張することができる。
本実施形態において、時刻t1における作業者20の判定対象22の位置310は、ロボット座標系において(x1、y1)で表され、時刻t2における作業者の判定対象22の位置310は、ロボット座標系において(x2、y2)で表される。
このとき、時刻t1において、代表点30から作業者20の判定対象22の位置310に向かう方向は、ベクトル312により表される。同様に、時刻t2において、代表点30から作業者20の判定対象22の位置320に向かう方向は、ベクトル322により表される。また、ベクトル312と、x軸32とのなす角は、角314であり、ベクトル322と、x軸32とのなす角は、角324である。
時刻t1から時刻t2までの期間(上述された単位期間の一例であってよい。)における作業者20の移動を表すベクトル(移動ベクトルと称される場合がある。)は、移動ベクトル332で表される。時刻t1から時刻t2の間に作業者20が移動した方向(ユーザ移動方向と称される場合がある。)は、移動ベクトル332の方向として表される。時刻t1から時刻t2の間に作業者20が移動した距離(ユーザ移動距離と称される場合がある。)は、移動ベクトル332の大きさとして表される。
時刻t1は、第1時刻の一例であってよい。時刻t2は、第2時刻の一例であってよい。
図4は、作業機械120における情報処理の一例を概略的に示す。図4を用いて、制御ユニット140が作業機械120を先行移動させる場合における情報処理の一例が説明される。
本実施形態によれば、ステップ412(ステップがSと略記される場合がある。)において、制御ユニット140が、定期的に、又は、予め定められたタイミングで、作業者20及び作業機械120の位置関係を決定する。また、制御ユニット140は、作業者20及び作業機械120の位置関係が決定されるたびに、当該位置関係が上述された位置条件に合致するか否かを判定する。
上記の位置関係が位置条件に合致しないと判定された場合(S412のNoの場合)、制御ユニット140は、S412の処理を繰り返す。一方、上記の位置関係が位置条件に合致すると判定された場合(S412のYesの場合)、S414において、制御ユニット140が、先行移動の目的位置の候補となる位置(候補位置と称される場合がある。)を決定する。
次に、S420において、制御ユニット140は、作業機械120が上記の候補位置に到達することができるか否かを判定する。例えば、作業機械120の現在位置と、上記の候補位置の間に、障害物、深い溝、傾斜の大きな坂道などが配されている場合、作業機械120は、当該候補位置に到達することができない。
作業機械120が上記の候補位置に到達することができると判定された場合(S420のYesの場合)、S422において、制御ユニット140は、上記の候補位置を、作業機械120の目的位置として決定する。また、S424において、制御ユニット140は、移動ユニット132を制御して、作業機械120を上記の目的位置まで移動させる。作業機械120が上記の目的位置に到達すると、制御ユニット140は、移動ユニット132を制御して、作業機械120を停止させる。その後、制御ユニット140は、S412の処理に戻る。
一方、作業機械120が上記の候補位置に到達することができないと判定された場合(S420のNoの場合)、S430において、制御ユニット140は、上記の候補位置を変更することができるか否かを判定する。上記の候補位置を変更することができると判定された場合(S430のYesの場合)、制御ユニットは、S422の処理を実行する。
一方、上記の候補位置を変更することができないと判定された場合(S430のNoの場合)、S432において、制御ユニットは、作業機械120を移動させないことを決定する。また、S434において、制御ユニット140は、作業者20に対して警告を出力することを決定し、処理を終了する。
図5は、位置条件の一例を概略的に示す。図5において、点線520は、作業機械120の代表点30からの距離が予め定められた値の位置を示す。また、点線542及び点線544は、x軸32とのなす角の大きさの絶対値が予め定められた値となる位置を示す。
一実施形態において、作業者20の判定対象22の位置(作業者20の位置と称される場合がある。)が点線520の内側の領域に配される場合、作業者20及び作業機械120の位置関係が位置条件に合致すると判定される。他の実施形態において、作業者20の位置が、点線520、点線542及び点線544で囲まれた領域であって、xの値が正である領域の内側に配される場合、作業者20及び作業機械120の位置関係が位置条件に合致すると判定される。
図6は、候補位置の決定方法の一例を概略的に示す。本実施形態において、制御ユニット140は、移動ベクトル332により示されるユーザ移動方向と略平行な方向に、作業機械120を移動させることを決定する。この場合、代表点30から候補位置630に向かうベクトル632の方向は、移動ベクトル332の方向と略一致する。また、ベクトル632と、x軸32とのなす角は、角634として表される。
一実施形態において、ベクトル632の大きさが、移動ベクトル332の大きさと略一致するように、候補位置630が決定される。この場合、作業機械120の現在位置を基準として、ユーザ移動方向と略平行な方向にユーザ移動距離と略同一の距離だけ進んだ位置が、候補位置として決定される。
他の実施形態において、ベクトル632の大きさが予め定められた値となるように、候補位置630が決定される。この場合、作業機械120の現在位置を基準として、ユーザ移動方向と略平行な方向に予め定められた距離だけ進んだ位置が、候補位置として決定される。
図7は、候補位置の決定方法の一例を概略的に示す。本実施形態において、作業機械120は、予め定められた経路700に沿って移動する。経路700は、例えば、複数の地点702により表される。本実施形態において、経路700上における作業機械120の現在位置から候補位置730までの距離が、ベクトル632の経路700に沿った方向の成分の大きさLrと略一致するように、候補位置730が決定される。本実施形態において、移動ベクトルの大きさをLmとし、角634の角度をθとすると、Lrは、Lr=-Lm×cosθとして算出され得る。
図8は、候補位置の決定方法の一例を概略的に示す。本実施形態において、作業機械120は、予め定められた経路700に沿って移動する。本実施形態において、経路700上における作業機械120の現在位置から候補位置730までの距離が、ベクトル632の大きさ(つまり、移動ベクトル332の大きさLmである。)と略一致するように、候補位置830が決定される。なお、他の実施形態において、経路700上における作業機械120の現在位置から候補位置730までの距離が予め定められた値となるように、候補位置830が決定されてもよい。
図9は、候補位置の決定方法の一例を概略的に示す。本実施形態において、作業機械120の停止が許可される位置(停止位置と称される場合がある。)が予め定められている。複数の停止位置のそれぞれには、順番が付与されていてもよい。図9においては、停止位置900、停止位置902、停止位置904及び停止位置906がこの順に配置されている。作業機械120の現在位置が停止位置900である場合に、作業者20及び作業機械120の位置関係が位置条件に合致すると、例えば、次の停止位置である停止位置902が、候補位置930として決定される。
図10は、候補位置の変更方法の一例を概略的に示す。本実施形態においては、作業機械120の現在位置と、候補位置1030との間に障害物50が配されており、作業機械120は、候補位置1030に到達することができない。この場合、制御ユニット140は、候補位置を変更するための処理を実行する。
一実施形態において、変更後の候補位置1032において、作業機械120と、障害物50との距離が予め定められた値dよりも大きく、作業機械120の現在位置から候補位置1032までの距離(図中、Lra及びLrbの和として表される。)が、ベクトル632の大きさLrと略一致するように、変更後の候補位置1032が決定される。他の実施形態において、制御ユニット140は、作業機械120が到達可能な位置まで、代表点30を中心としてベクトル632を回転させることで、変更後の候補位置1032を決定してよい。
図11は、制御ユニット140の内部構成の一例を概略的に示す。本実施形態において、制御ユニット140は、例えば、位置判定部1120と、駆動制御部1140とを備える。本実施形態において、位置判定部1120は、例えば、ユーザ認識部1122と、判定部位検出部1124と、第1条件判定部1126と、第2条件判定部1128とを有する。駆動制御部1140は、例えば、候補位置決定部1142と、到達判定部1144と、候補位置変更部1146と、目的位置決定部1148とを有する。
本実施形態において、位置判定部1120は、作業者20及び作業機械120の位置関係を決定する。また、位置判定部1120は、作業者20及び作業機械120の位置関係が位置条件に合致するか否かを判定する。
本実施形態において、ユーザ認識部1122は、作業者20を認識する。例えば、ユーザ認識部1122は、後方センサ136が出力したデータを解析して、作業者20を認識する。本実施形態において、判定部位検出部1124は、認識された作業者20のデータを解析して、作業者20の判定対象22を検出する。
本実施形態において、第1条件判定部1126は、作業者20の判定対象22と、作業機械120の代表点30との位置関係を決定する。上記の位置関係としては、上述されたベクトル312、角314、ベクトル322、角324などが例示される。第1条件判定部1126は、作業者20の判定対象22と、作業機械120の代表点30との距離が第1閾値以下であるという条件の成否を判定する。第1条件判定部1126は、判定結果を駆動制御部1140に出力する。
本実施形態において、第2条件判定部1128は、作業者20の判定対象22と、作業機械120の代表点30との位置関係を決定する。上記の位置関係としては、上述されたベクトル312、角314、ベクトル322、角324などが例示される。第2条件判定部1128は、(i)作業者20の判定対象22と、作業機械120の代表点30との距離が第1閾値以下であり、且つ、(ii)x軸32の正方向と、作業機械120の代表点30から作業者20の判定対象22に向かう方向とのなす角の大きさの絶対値が、第3閾値以下であるという条件の成否を判定する。第2条件判定部1128は、判定結果を駆動制御部1140に出力する。
本実施形態において、駆動制御部1140は、作業機械120の移動を制御する。例えば、駆動制御部1140は、移動ユニット132を制御して、作業機械120を特定の位置に移動させる。作業者20及び作業機械120の位置関係が位置条件に合致する場合、駆動制御部1140は、移動ユニット132を制御して、作業機械120を作業機械120の前方122の側に移動させてよい。
本実施形態において、候補位置決定部1142は、上述された候補位置を決定する。候補位置決定部1142の詳細は後述される。
本実施形態において、到達判定部1144は、作業機械120が候補位置に到達することの可否を判定する。一実施形態において、候補位置決定部1142は、二次元平面上で、上記の到達の可否を判定する。他の実施形態において、候補位置決定部1142は、三次元空間上で、上記の到達の可否を判定する。例えば、候補位置決定部1142は、作業機械120及び作業機械120の周囲に配された地物の三次元モデルを含む仮想空間を構築する。また、候補位置決定部1142は、仮想空間上における干渉の有無又は程度に基づいて、作業機械120が候補位置に到達することの可否を判定する、
本実施形態において、候補位置変更部1146は、作業機械120が、候補位置決定部1142により決定された候補位置に到達することができない場合に、当該候補位置を変更する。候補位置変更部1146は、例えば、図10に関連して説明された手順により、候補位置を変更する。
本実施形態において、目的位置決定部1148は、上述された目的位置を決定する。一実施形態において、目的位置決定部1148は、候補位置決定部1142が決定した候補位置を目的位置として決定する。他の実施形態において、目的位置決定部1148は、候補位置変更部1146が変更した候補位置を目的位置として決定する。
作業機械120の制御ユニット140に配された位置判定部1120は、位置判定部の一例であってよい。第1条件判定部1126は、位置判定部の一例であってよい。第2条件判定部1128は、位置判定部の一例であってよい。作業機械120の制御ユニット140に配された目的位置決定部1148は、目的位置決定部の一例であってよい。作業機械120の制御ユニット140に配された候補位置決定部1142は、候補位置決定部の一例であってよい。作業機械120の制御ユニット140に配された到達判定部1144は、到達判定部の一例であってよい。
(別実施形態の一例)
本実施形態においては、特定の作業機械120の目的位置を決定するための位置判定部1120及び駆動制御部1140が、当該特定の作業機械120の制御ユニット140に配される場合を例として、作業機械120及び制御ユニット140の一例が説明された。しかしながら、作業機械120及び制御ユニット140は、本実施形態に限定されない。
他の実施形態において、位置判定部1120又はその一部における情報処理が、当該特定の作業機械120の外部に配された他の情報処理装置により実行されてよい。位置判定部1120又はその一部が、上記の他の情報処理装置に配されてもよい。さらに他の実施形態において、駆動制御部1140又はその一部における情報処理が、当該特定の作業機械120の外部に配された他の情報処理装置により実行されてよい。駆動制御部1140又はその一部、上記の他の情報処理装置に配されてもよい。他の情報処理装置としては、(i)特定の作業機械120とは異なる他の作業機械120に配された他の制御ユニット140、(ii)通信ネットワークを介して特定の作業機械120と情報を送受可能に構成されたコンピュータ、サーバなどが例示される。
図12は、候補位置決定部1142の内部構成の一例を概略的に示す。本実施形態において、候補位置決定部1142は、例えば、設定情報格納部1222と、経路情報格納部1224と、停止位置情報格納部1226とを備える。本実施形態において、候補位置決定部1142は、例えば、動作モード決定部1232と、移動ベクトル導出部1234とを備える。本実施形態において、候補位置決定部1142は、例えば、第1モード決定部1242と、第2モード決定部1244と、第3モード決定部1246とを備える。
本実施形態において、設定情報格納部1222は、各種の設定情報を格納する。各種の設定情報としては、作業機械120の動作モード、上述された各種の情報処理における閾値又は設定値などが例示される。
本実施形態において、経路情報格納部1224は、上述された作業機械120の経路を示す情報を格納する。本実施形態において、停止位置情報格納部1226は、上述された作業機械120の停止位置を示す情報を格納する。
本実施形態において、動作モード決定部1232は、作業機械120の動作モードを決定する。例えば、作業機械120の動作モードに応じて、目的位置の決定手順が決定される。
本実施形態において、移動ベクトル導出部1234は、各単位期間における移動ベクトル322を導出する。これにより、各単位期間におけるユーザ移動方向及びユーザ移動距離が決定される。
本実施形態において、第1モード決定部1242は、作業機械120の現在位置を基準として、ユーザ移動方向と平行な方向にユーザ移動距離と略同一の距離進んだ位置を、候補位置として決定する。第1モード決定部1242は、作業機械120の現在位置を基準として、ユーザ移動方向と平行な方向に予め定められた距離進んだ位置を、候補位置として決定してもよい。
本実施形態において、第2モード決定部1244は、作業機械120の移動経路を示す情報を取得し、移動経路上の位置を、候補位置として決定する。第2モード決定部1244は、各単位期間におけるユーザ移動方向を決定してよい。第2モード決定部1244は、ユーザ移動方向に基づいて、移動経路上の位置を候補位置として決定してよい。
第2モード決定部1244は、各単位期間におけるユーザ移動距離を決定してよい。第2モード決定部1244は、作業機械120の現在位置を基準として、移動経路上をユーザ移動距離と略同一の距離進んだ位置を、候補位置として決定してよい。第2モード決定部1244は、作業機械120の現在位置を基準として、移動経路上を予め定められた距離進んだ位置を、候補位置として決定してよい。
本実施形態において、第3モード決定部1246は、複数の停止位置のそれぞれの位置を示す情報を取得する。第3モード決定部1246は、複数の停止位置の中から、候補位置を決定してよい。
図13は、本発明の複数の態様が全体的又は部分的に具現化されてよいコンピュータ3000の一例を示す。作業機械120の少なくとも一部は、コンピュータ3000により実現されてよい。例えば、作業機械120の制御ユニット140が、コンピュータ3000により実現される。
コンピュータ3000にインストールされたプログラムは、コンピュータ3000に、本発明の実施形態に係る装置に関連付けられるオペレーション又は当該装置の1又は複数の「部」として機能させ、又は当該オペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ3000に、本発明の実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ3000に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU3012によって実行されてよい。
本実施形態によるコンピュータ3000は、CPU3012、RAM3014、GPU3016、及びディスプレイデバイス3018を含み、それらはホストコントローラ3010によって相互に接続されている。コンピュータ3000はまた、通信インタフェース3022、ハードディスクドライブ3024、DVD-ROMドライブ3026、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ3020を介してホストコントローラ3010に接続されている。コンピュータはまた、ROM3030及びキーボード3042のようなレガシの入出力ユニットを含み、それらは入出力チップ3040を介して入出力コントローラ3020に接続されている。
CPU3012は、ROM3030及びRAM3014内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。GPU3016は、RAM3014内に提供されるフレームバッファ等又はそれ自体の中に、CPU3012によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス3018上に表示されるようにする。
通信インタフェース3022は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ3024は、コンピュータ3000内のCPU3012によって使用されるプログラム及びデータを格納する。DVD-ROMドライブ3026は、プログラム又はデータをDVD-ROM3001から読み取り、ハードディスクドライブ3024にRAM3014を介してプログラム又はデータを提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
ROM3030はその中に、アクティブ化時にコンピュータ3000によって実行されるブートプログラム等、及び/又はコンピュータ3000のハードウエアに依存するプログラムを格納する。入出力チップ3040はまた、様々な入出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ3020に接続してよい。
プログラムが、DVD-ROM3001又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもあるハードディスクドライブ3024、RAM3014、又はROM3030にインストールされ、CPU3012によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ3000に読み取られ、プログラムと、上記様々なタイプのハードウエアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ3000の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
例えば、通信がコンピュータ3000及び外部デバイス間で実行される場合、CPU3012は、RAM3014にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース3022に対し、通信処理を命令してよい。通信インタフェース3022は、CPU3012の制御の下、RAM3014、ハードディスクドライブ3024、DVD-ROM3001、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
また、CPU3012は、ハードディスクドライブ3024、DVD-ROMドライブ3026(DVD-ROM3001)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM3014に読み取られるようにし、RAM3014上のデータに対し様々なタイプの処理を実行してよい。CPU3012は次に、処理されたデータを外部記録媒体にライトバックしてよい。
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU3012は、RAM3014から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM3014に対しライトバックする。また、CPU3012は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU3012は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ3000上又はコンピュータ3000近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それにより、上記のプログラムを、ネットワークを介してコンピュータ3000に提供する。
本実施形態においては、記憶装置、記録媒体又はコンピュータ可読記憶媒体の一例である外部記録媒体として、ハードディスクドライブ3024、DVD-ROMドライブ3026(DVD-ROM3001)、ICカード等が用いられる場合を例として、コンピュータ3000の一例が説明された。しかしながら、各種の記録媒体又は記憶装置は、本実施形態に限定されない。他の実施形態において、記録媒体又は記憶装置として、SSD、eMMC、SDカードなどが用いられてよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。また、技術的に矛盾しない範囲において、特定の実施形態について説明した事項を、他の実施形態に適用することができる。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。