特許法第30条第2項適用 https://tech.nikkeibp.cp.jp/atcl/nxt/mag/rob/18/012600001/00008/?ST 掲載日 平成30年9月10日 日経Robotics、2018年10月号、頁5~16,日経BP社 発行日 平成30年9月10日 「GTC Japan 2018『強化学習を活用した実機制御方法の獲得』」、グランドプリンスホテル新高輪 国際館パミール(東京都港区高輪3丁目13-1) 開催日 平成30年9月14日 日本ディープラーニング協会著,「ディープラーニング活用の教科書」,日経BP社,平成30年10月29日,第196~200頁 発行日 平成30年10月29日 https://trend.nikkeibp.co.jp/atcl/contents/18/00049/00021/?i_cid=nbpnxr_index 掲載日 平成30年11月9日 「TECH PLAY『〔エンジニア向け〕ディープラーニングは油圧建機を自動化できるか。』」、TECH PLAY SHIBUYA 東京都渋谷区宇田川町20-17 NMF 渋谷公園通りビル8F、https://techplay.jp/event/708850 開催日 平成30年12月17日 「Morning Pitch Special Edition 2019」、大手町サンケイプラザホール(東京都千代田区大手町1-7-2 東京サンケイビル4階)、http://morningpitch.com/15453/ 開催日 平成31年1月11日 「2018年度NEDO AI ベンチャーコンテスト」、丸ビル ホール&コンファレンススクエア(東京都千代田区丸の内2-4-1 丸ビル8階)、http://entrepedia.jp/en/helpful_informations/1017 開催日 平成31年1月18日 「株式会社ビジネス・ブレークスルー主催セミナー『企業がイノベーション力を高めるために必要なこと』」、ATAMIせかいえ(静岡県熱海市伊豆山269-1) 開催日 平成31年2月2日
特許法第30条第2項適用 「Tech Sirius 2019『ディープラーニングを活用したこれまでにない機械自動化技術』」、三井住友銀行 東館 ライジング・スクエア3階(東京都千代田区丸の内1丁目3-2)、https://mirai.ventures/event/event-1526/ 開催日 平成31年2月14日 「最先端人工知能技術が拓く新ビジネス創出セミナー2019『人工知能であらゆる機械を自動化する』」、みなとパーク芝浦 1階リーブラホール(東京都港区芝浦1-16-1) https://www.camp uscreate.com/artificial-intelligence/ 開催日 平成31年2月20日 「TECH PLAY『深層学習の現在と未来』」、奈良先端科学技術大学院大学 情報科学研究科棟L2セミナー(奈良県生駒市高山町8916-5)、htpps://techplay.jp/event/718080 開催日 平成31年2月27日 「TECH PLAY『〔実機制御向けディープラーニングライブラリをリリース〕DeepX Tech Talk‐ディープラーニングを駆使した機械自動化の実態』」、TECH PLAY SHIBUYA 東京都渋谷区宇田川町20-17 NMF 渋谷公園通りビル8F、https://techplay.jp/event/719734 開催日 平成31年3月18日
以下に、本発明の実施形態について図面に基づいて詳細に説明する。なお、本発明は、以下の実施形態の記載に限定されるものではない。また、以下の実施形態における構成要素には、当業者が置換可能且つ容易なもの、あるいは実質的に同一のものが含まれる。また、以下に記載した構成要素は発明の趣旨を逸脱しない範囲で種々の改変を行ってもよい。さらに、以下に記載した構成要素は適宜組み合わせることが可能である。なお、以下の実施形態の説明において、同一構成には同一符号を付し、異なる構成には異なる符号を付すものとする。
図1は、自動操縦システム1の主要構成を示すブロック図である。自動操縦システム1は、撮像装置10と、操縦装置20と、情報処理装置30とを備える。自動操縦システム1は、建設機械100を自動的に操縦するシステムである。撮像装置10及び操縦装置20は、建設機械100に着脱可能に設けられる。情報処理装置30は、撮像装置10及び操縦装置20と通信可能に設けられる。情報処理装置30は、建設機械100に設けられてもよいし、建設機械100の外部に設けられてもよい。
まず、建設機械100及び建設機械100に設けられる構成について説明する。図2は、撮像装置10が設けられた建設機械100の一例であるバックホウの主要構成を示す模式図である。バックホウは、アーム部110と、走行部130と、ボディ140とを備える。
アーム部110は、第1アーム111と、第2アーム112と、ショベル113と、アクチュエータ121,122,123とを備える。第1アーム111は、ボディ140に対して回動可能に連結されている。第1アーム111と第2アーム112とは、回動可能に連結されている。第2アーム112とショベル113とは、回動可能に連結されている。アクチュエータ121は、ボディ140に対する第1アーム111の回動角度を変更可能に駆動制御される。アクチュエータ122は、第1アーム111と第2アーム112との回動角度を変更可能に駆動制御される。アクチュエータ123は、第2アーム112とショベル113との回動角度を変更可能に駆動制御される。
走行部130は、例えばボディ140の下側に設けられた無限軌道であり、建設機械100を走行可能に支持する。また、走行部130とボディ140とは旋回機構135を介して連結されている。旋回機構135は、走行部130に対するボディ140の水平方向の回転角度を変更可能に駆動制御される。
ボディ140は、アクチュエータ121,122,123、走行部130、旋回機構135等を駆動するためのエンジン等を内蔵する。また、ボディ140には操縦席150が設けられている。
撮像装置10は、例えば操縦席150の屋根部上側に設けられる。撮像装置10は、撮像部11と、通信部12とを備える。撮像部11は、例えばCCD(Charge Coupled Device)イメージセンサ又はCMOSイメージセンサ(Complementary Metal Oxide Semiconductor)のような撮像素子、撮像素子に外光を導くレンズ、撮像素子からの出力に基づいて画像データを生成する画像生成回路、画像データを記憶するフラッシュメモリー等の記憶素子、撮像素子、画像生成回路等を動作させる電池等を備える所謂デジタルカメラである。撮像部11は、アーム部110及びアーム部110によって掘削される地面が撮像範囲内に入るよう配置される。通信部12は、NIC(Network interface controller)として機能する通信回路等を有し、情報処理装置30と通信を行う。通信部12は、撮像部11の撮像によって得られた画像データを情報処理装置30に送信する。
図3は、操縦席150内の構成例を示す模式図である。操縦席150内には、走行レバー151,152と、作業レバー153,154と、シート155とが設けられている。走行レバー151,152は、走行部130による建設機械100の走行、旋回(信地旋回又は超信地旋回)、停止の制御を行うためのレバーである。作業レバー153,154は、アーム部110の動作制御及び旋回機構135による旋回を行うためのレバーである。走行レバー151,152は、シート155に対してアーム部110側に設けられる。作業レバー153,154は、シート155の両脇側前方寄りに設けられる。
走行レバー151,152は、前後方向の回動角度を操作可能なレバーである。前後方向とは、シート155とアーム部110との対向方向である。作業レバー153,154は、前後方向及び左右方向の回動角度を操作可能なレバーである。左右方向とは、前後方向に直交し、かつ、シート155が固定される操縦席150の床板に沿う方向である。
実施形態では、シート155に操縦装置20が設けられる。図4は、操縦装置20の主要構成例を示す模式図である。操縦装置20は、アクチュエータ21,22,23,24,25,26、通信部27、制御部28等を備える。
アクチュエータ21,22,23,24は、例えば直動型のアクチュエータである。アクチュエータ21の可動部の先端211は、走行レバー151に連結される。アクチュエータ22の可動部の先端221は、走行レバー152に連結される。アクチュエータ23の可動部の先端231は、作業レバー153に連結される。アクチュエータ24の可動部の先端241は、作業レバー154に連結される。アクチュエータ21,22,23,24の動作によって先端211,221,231,241の前後方向の位置が変化することで、走行レバー151,152,作業レバー153,154の前後方向の回動角度が変化する。
アクチュエータ25,26は、例えば回動型のアクチュエータである。アクチュエータ25の回動出力軸は、アクチュエータ23の基部232に連結される。基部232は、先端231を直動可能に支持する。アクチュエータ26の回動出力軸は、アクチュエータ24の基部242に連結される。基部242は、先端241を直動可能に支持する。アクチュエータ25,26の回動出力軸は、例えば床板に直交する。アクチュエータ25の動作によって基部232の回動角度が変化することでアクチュエータ23が左右方向に回動し、先端231の左右方向の位置が変化する。アクチュエータ26の動作によって基部242の回動角度が変化することでアクチュエータ24が左右方向に回動し、先端241の左右方向の位置が変化する。
このように、走行レバー151,152、作業レバー153,154の前後方向の回動角度の制御は、アクチュエータ21,22,23,24の直動制御によって行える。また、作業レバー153,154の左右方向の回動角度の制御は、アクチュエータ25,26の回動制御によって行える。
通信部27は、NICとして機能する通信回路等を有し、情報処理装置30と通信を行う。制御部28は、通信部27を介して情報処理装置30から受信したデータに応じてアクチュエータ21,22,23,24,25,26の動作を制御する。具体的には、制御部28は、例えば、PLC(Programmable Logic Controller)、サーボコントローラ、サーボ弁、コンプレッサ、切替弁、ポジションセンサ等を含む。PLCは、情報処理装置30から受信したデータに応じてサーボコントローラや切替弁等の動作を制御することで、アクチュエータ21,22,23,24,25,26の動作を制御する。サーボコントローラは、サーボ弁の開度を制御する。コンプレッサは、圧縮空気等、アクチュエータ21,22,23,24,25,26を動作させるための駆動力を与える。切替弁は、アクチュエータ21,22,23,24,25,26のうち、コンプレッサが接続される対象を切り替える。切替弁は、コンプレッサがアクチュエータ21,22,23,24,25,26毎に個別に設けられている場合には省略可能である。サーボ弁は、開度の制御によって、切替弁が設けられた経路を介して供給された駆動力がアクチュエータ(アクチュエータ21,22,23,24,25,26のいずれか)を動作させる度合いを決定可能に設けられる。ポジションセンサは、アクチュエータ(アクチュエータ21,22,23,24,25,26のいずれか)の動作位置を検出する。ポジションセンサの検出結果は、PLCやサーボコントローラにフィードバックされ、ポジションセンサが設けられたアクチュエータの動作制御に利用される。少なくとも、ポジションセンサ及びサーボ弁はアクチュエータ21,22,23,24,25,26に個別に設けられる。
なお、操縦装置20の具体的態様は、図4を参照して説明した構成例に限られない。例えば、先端231に左右方向の位置の変化を与えるための構成として、アクチュエータ25に代えて直動型のアクチュエータを設けてもよい。この場合、アクチュエータ25の回動出力軸と同じ方向の回動軸を中心として回動可能に基部232を支持する回動部が設けられる。また、当該回動部を挟んで、先端231の反対側に位置する基部232の端部と、アクチュエータ25に代えて設けられた直動型のアクチュエータの可動部とが連結される。当該連結は、例えば鎖等の連結部材を介して行われる。これにより、当該直動型のアクチュエータの直動動作に応じて基部232の端部が回動部を中心として左右方向に回動し、当該回動部を挟んで当該端部の反対側で先端231の左右方向の位置が変化する。同様の仕組みで、先端241に左右方向の位置の変化を与えるための構成として、アクチュエータ26に代えて直動型のアクチュエータを設けてもよい。
また、通信部27、制御部28の具体的形態についても、適宜変更可能である。例えば、通信部27が設けられている位置に、通信部27と制御部28とを統合した統合機能ボックスを設けてもよい。また、コンプレッサ等、上述の説明で制御部28の一部として説明されている構成を当該統合機能ボックスとは別体のサーボボックスとし、図4における制御部28の位置に設けてもよい。
次に、情報処理装置30について説明する。図1に示すように、情報処理装置30は、通信部31、演算部32、記憶部33等を備え、実施形態における制御装置として機能する。通信部31は、NICとして機能する通信回路等を有し、撮像装置10の撮像部11及び操縦装置20のアクチュエータ21と通信を行う。撮像部11と通信部31との間及びアクチュエータ21と通信部31との間の通信回線の具体的形態は、有線、無線及び有線と無線が混在した形態のいずれであってもよい。また、撮像部11と通信部31との間及びアクチュエータ21と通信部31との間の通信回線に、インターネット等の公衆通信網が含まれていてもよい。
演算部32は、CPU(Central Processing Unit)等の演算回路を有し、記憶部33に記憶されているプログラム、データを読み出して実行処理し、操縦装置20の動作制御に関する各種の処理を行う。演算部32は、操縦装置20の動作制御に関する各種の処理に際して、撮像部11によって撮像され、通信部12によって送信され、通信部31を介して受信された画像データを利用する。演算部32は、操縦装置20の動作制御内容を示すデータを通信部31に送信させる。通信部31は、演算部32の制御下で、操縦装置20の動作制御内容を示すデータを操縦装置20に送信する。操縦装置20は、通信部27を介して受信したデータに応じて、制御部28がアクチュエータ(例えば、アクチュエータ21,22,23,24,25,26)の動作制御を行って建設機械100を操縦する。
記憶部33は、ハードディスクドライブ(HDD:Hard Disk Drive)、ソリッドステートドライブ(SSD:Solid State Drive)、フラッシュメモリーその他の記憶装置のいずれかを有し、各種のソフトウェア・プログラム(以下、単にプログラムと記載)及びデータを記憶する。記憶部33は、例えば、関節角推定モデルデータ331、状態推定プログラム332、重機操作モデルデータ333、動作算出プログラム334等を記憶する。その他、図示しないが、記憶部33は、OS(Operating System)等、情報処理装置30の動作に必要なプログラム等を記憶する。
関節角推定モデルデータ331は、撮像装置10によって撮像されたアーム部110の画像に基づいてアーム部110の回動角度を推定するための教師データである。具体的には、実施形態の関節角推定モデルデータ331は、建設機械100の操縦を経験済みの操縦者(ヒト)による建設機械100の操縦に伴って撮像された複数の画像データと、当該複数の画像データの各々が得られたタイミングにおけるアーム部110の回動角度を示すデータとを含む。関節角推定モデルデータ331において、複数の画像データの各々と当該複数の画像データの各々が得られたタイミングにおけるアーム部110の回動角度を示すデータとは対応付けられている。当該複数の画像データは、撮像装置10と同様の設置条件で設けられた撮像装置による画像データである。すなわち、当該複数の画像データの各々には、アーム部110の画像が含まれる。当該複数の画像データの各々は、静止画像データであってもよいし、動画像データに含まれるフレーム画像データであってもよい。
図5は、撮像装置10によって撮像された画像の一例を示す模式図である。撮像装置10の撮像部11が撮像を行うことで、例えば図5に示すような画角でアーム部110及び地面を含む画像が得られる。関節角推定モデルデータ331に含まれる複数の画像データの各々も、図5に示すような画角でアーム部110及び地面を含む画像のデータである。
図6は、図5の撮像が行われた建設機械100の側面図である。図7は、図6のアーム部110の回動角度の推定イメージを例示した図である。例えば、図5の画像が撮像されるタイミングに建設機械100を側方から見た場合、アーム部110は、図6のようになっている。図6におけるアーム部110の回動角度を模式化すると、例えば図7及び後述する図10のように第1アーム111、第2アーム112、ショベル113を線分で表現した線分L111、線分L112、線分L113で表現可能である。図5の状態において、ボディ140に対する第1アーム111の回動角度(θ1)が回動角度θ1aである。また、図5の状態において、第1アーム111と第2アーム112との回動角度(θ2)が回動角度θ2aである。また、図5の状態において、第2アーム112とショベル113との回動角度(θ3)が回動角度θ3aである。
なお、線分L111は、例えばボディ140に対する第1アーム111の回動連結部114と、第1アーム111と第2アーム112との回動連結部115とを結ぶ線分である。線分L112は、回動連結部115と、第2アーム112とショベル113との回動連結部116とを結ぶ線分である。線分L113は、回動連結部116と、ショベル113のショベル先端部117とを結ぶ線分である。これらの線分L111,L112,L113の設定例はあくまで一例であってこれに限られるものでなく、適宜変更可能である。
また、アーム部110の回動角度が推定されることで、走行部130が接地する地面Gに対するアーム部110の各部の位置も推定可能である。また、図7及び後述する図10では図示を省略しているが、自動操縦システム1の動作により掘削された孔Hとアーム部110との位置関係についても、図5及び後述する図8のような撮像画像に基づいて推定可能である。
図8は、撮像装置10によって撮像された画像の他の一例を示す模式図である。図9は、図8の撮像が行われた建設機械100の側面図である。図10は、図9のアーム部110の回動角度の推定イメージを例示した図である。撮像装置10によって撮像されるアーム部110の画像や関節角推定モデルデータ331に含まれる画像データにおけるアーム部110の画像は、図5を参照して説明した例に限られない。例えば図8のように、図5とは異なる状態のアーム部110が撮像されうる。無論、アーム部110の画像は、図5及び図8の例に限られず、アーム部110の可動範囲内であらゆる状態のアーム部110が撮像されうる。従って、撮像装置10によって画像が撮像されるタイミングにおける建設機械100の状態及びアーム部110の回動角度についても、図6及び図7を参照して説明した例に限られず、例えば図9及び図10のような建設機械100の状態及びアーム部110の回動角度もありうる。図8の状態において、ボディ140に対する第1アーム111の回動角度(θ1)が回動角度θ1bである。また、図8の状態において、第1アーム111と第2アーム112との回動角度(θ2)が回動角度θ2bである。また、図8の状態において、第2アーム112とショベル113との回動角度(θ3)が回動角度θ3bである。
図5が関節角推定モデルデータ331に含まれる画像データである場合、アーム部110の回動角度を示すデータとして、図7における回動角度θ1a,θ2a,θ3aを示すデータが当該画像データと対応付けられる。図8が関節角推定モデルデータ331に含まれる画像データである場合、アーム部110の回動角度を示すデータとして、図10における回動角度θ1b,θ2b,θ3bを示すデータが当該画像データと対応付けられる。以下、アーム部110の回動角度と記載した場合、回動角度θ1,θ2,θ3を全て含むものとする。
状態推定プログラム332は、関節角推定モデルデータ331と撮像装置10によって撮像されたアーム部110の画像に基づいてアーム部110の回動角度を推定するためのプログラムである。具体的には、状態推定プログラム332は、演算部32が画像照合処理と回動角度推定処理とを行うためのプログラムである。画像照合処理は、撮像装置10によって撮像されたアーム部110の画像と、関節角推定モデルデータ331に含まれる複数の画像データの各々におけるアーム部110の画像とのパターンマッチングを行い、撮像装置10によって撮像されたアーム部110の画像に類似するアーム部110の画像を含む画像データを関節角推定モデルデータ331に含まれる複数の画像データから抽出する処理である。回動角度推定処理は、画像照合処理によって抽出された画像データと対応付けられたアーム部110の回動角度を示すデータに基づいて、アーム部110の回動角度を算出する。
状態推定プログラム332を実行した演算部32は、画像照合処理を行い、関節角推定モデルデータ331に含まれる複数の画像データから1つ以上の画像データを抽出する。画像照合処理で抽出される画像データは1つであってもよいし、複数であってもよい。
画像照合処理で抽出される画像データが1つである場合、演算部32は、当該1つの画像データと対応付けられたデータが示すアーム部110の回動角度を、回動角度推定処理において推定されたアーム部110の回動角度とする。例えば、演算部32は、画像照合処理で図5に対応する画像データを抽出した場合、回動角度推定処理で回動角度θ1a,θ2a,θ3aをアーム部110の回動角度として導出する。また、演算部32は、画像照合処理で図8に対応する画像データを抽出した場合、回動角度推定処理で回動角度θ1b,θ2b,θ3bをアーム部110の回動角度として導出する。
画像照合処理で抽出される画像データが複数である場合、演算部32は、撮像装置10によって撮像されたアーム部110の画像との類似の度合いで関節角推定モデルデータ331に含まれる複数の画像データの一部又は全部に対して重み付け処理を行う。一例を挙げると、重み付け処理では、撮像装置10によって撮像されたアーム部110の画像により類似するアーム部110の画像を含む画像データと対応付けられているアーム部110の回動角度を示すデータの反映の度合いが大きくなるよう、複数の画像データの一部又は全部に対する点数の付与が行われる。演算部32は、回動角度推定処理で、例えば当該点数を係数として、以下の式(1)、式(2)、式(3)に基づいてアーム部110の回動角度を算出する。式(1)、式(2)、式(3)では、画像照合処理で抽出される画像データの数がnである。nは、2以上の自然数である。抽出されたn個の画像データの各々に重み付けで付与される点数に対応する係数α1,α2,…,αnは、0から1の範囲内で設定された実数であり、かつ、α1からαnまでの係数を足し合わせた値が1である。撮像装置10によって撮像されたアーム部110の画像により類似するアーム部110の画像を含む画像データほど、1に近い点数(係数)が付与される。θ1n,θ2n及びθ3nはそれぞれ、抽出されたn個の画像データの各々と対応付けられたアーム部110の回動角度に含まれる回動角度θ1,θ2,θ3である。なお、当然であるが、n=2の場合、式(1)における「…+αn(θ1n)」、式(2)における「…+αn(θ2n)」及び式(3)における「…+αn(θ3n)」は省略されることになる。このように、演算部32は、状態推定プログラム332を実行中の処理において複数のデータに基づいた平均化処理を行ってもよい。
θ1={α1(θ11)+α2(θ12)+…+αn(θ1n)}/n…(1)
θ2={α1(θ21)+α2(θ22)+…+αn(θ1n)}/n…(2)
θ3={α1(θ31)+α2(θ32)+…+αn(θ1n)}/n…(3)
重機操作モデルデータ333は、操縦装置20の動作を制御するための教師データである。具体的には、実施形態の重機操作モデルデータ333は、建設機械100の操縦を経験済みの操縦者(ヒト)による建設機械100の操縦に伴って測定されたアーム部110の回動角度を示すデータと、当該回動角度を示すデータが得られたタイミングにおける操縦装置20のアクチュエータ(例えば、アクチュエータ21,22,23,24,25,26)の動作位置を示すデータとを含む。関節角推定モデルデータ331及び重機操作モデルデータ333に含まれるデータは、建設機械100を利用して行われる一連の作業(例えば、地面の掘削作業)」中に含まれる複数回のタイミングで取得されたデータであり、当該一連の作業の開始から終了までのデータを含む。重機操作モデルデータ333において、各タイミングのアーム部110の回動角度を示す複数のデータの各々と、各タイミングにおける操縦装置20のアクチュエータの動作位置を示すデータとは対応付けられている。以下、一連の作業と記載した場合、建設機械100を利用して行われる一連の作業をさす。重機操作モデルデータ333では、一連の作業に含まれる各タイミングのデータは、時系列に沿ったデータの前後関係を把握可能に設けられている。例えば、一連の作業に含まれるm回(mは、自然数)のタイミングの各々に対応するデータのうち、時間的に最初(1回目)のタイミングのデータの後に2回目のタイミングのデータが続き、mが3以上である場合にはその後に3回目のデータのタイミングが続く。このように、m回目までデータの前後関係を把握可能な状態のデータが重機操作モデルデータ333として記憶されている。
なお、関節角推定モデルデータ331及び重機操作モデルデータ333に含まれるデータは、一連の作業1回分のデータに限られない。関節角推定モデルデータ331及び重機操作モデルデータ333の少なくとも一方は、複数回行われた一連の作業の各々のデータを含んでいてもよい。また、複数回行われた一連の作業は、同一の操縦者(ヒト)によるものでなくともよく、複数の操縦者(ヒト)によるものであってもよい。
動作算出プログラム334は、状態推定プログラム332の実行処理によって推定されたアーム部110の回動角度と重機操作モデルデータ333に基づいて操縦装置20の動作を制御するためのプログラムである。具体的には、動作算出プログラム334は、演算部32が現状抽出処理と動作命令生成処理とを行うためのプログラムである。
現状抽出処理は、状態推定プログラム332の実行処理によって推定されたアーム部110の回動角度と重機操作モデルデータ333に含まれるアーム部110の回動角度を示すデータとの比較対照を行う。現状抽出処理は、一連の作業のうちどのタイミングにおけるアーム部110の回動角度が状態推定プログラム332の実行処理によって推定されたかを抽出する。
動作命令生成処理は、現状抽出処理で抽出されたデータを含む一連の作業のデータのうち、当該抽出されたデータのタイミングの次のタイミングにおけるアーム部110の回動角度を示すデータと対応付けられている操縦装置20のアクチュエータ(例えば、アクチュエータ21,22,23,24,25,26)の動作位置を抽出する。動作命令生成処理は、抽出された動作位置に基づいて操縦装置20のアクチュエータの動作位置を制御するための命令を含むデータを生成する。演算部32は、動作命令生成処理で生成されたデータを操縦装置20の動作制御内容を示すデータとして通信部31に送信させる。制御部28は、通信部27を介して当該操縦装置20の動作制御内容を示すデータを受信し、当該命令に応じて操縦装置20のアクチュエータの動作位置を制御する。
なお、動作算出プログラム334の実行処理においても、状態推定プログラム332の画像照合処理と回動角度算出処理との関係と同様、抽出されるデータが1つであってもよいし、複数であってもよく、複数である場合に平均化処理を行うようにしてもよい。
例えば、現状抽出処理において、状態推定プログラム332の実行処理によって推定されたアーム部110の回動角度と完全に一致する1つのデータ(又はそうみなせる程度に近似する1つのデータ)が重機操作モデルデータ333に含まれている場合を想定する。この場合、演算部32は、当該1つのデータを含む一連の作業のデータのうち、当該1つのデータのタイミングの次のタイミングにおけるアーム部110の回動角度を示すデータと対応付けられている操縦装置20のアクチュエータ(例えば、アクチュエータ21,22,23,24,25,26)の動作位置を示すデータを抽出する。演算部32は、抽出された操縦装置20のアクチュエータの動作位置とするための命令を含むデータを生成する。
一方、上述の回動角度推定処理で説明した平均化処理と同様の考え方で、演算部32は、動作算出プログラム334の実行処理においても、現状抽出処理で複数のデータを抽出して重み付けするようにしてもよい。この場合、演算部32は、当該複数のデータの各々の次のタイミングの次のタイミングにおけるアーム部110の回動角度を示すデータと対応付けられている操縦装置20のアクチュエータ(例えば、アクチュエータ21,22,23,24,25,26)の動作位置を示すデータを個別に抽出する。演算部32は、抽出された操縦装置20のアクチュエータの動作位置を示す複数のデータに重み付けに対応する係数を適用した平均化処理を行い、次のタイミングの操縦装置20のアクチュエータの動作位置を算出する。演算部32は、算出された動作位置とするよう操縦装置20のアクチュエータを制御するための命令を含むデータを生成する。
なお、実施形態では、記憶部33に記憶されているデータを読み出して行う演算部32の処理では、ニューラルネットワークを利用した重み付け処理によって求めるデータ(出力)を得られる。
例えば、画像照合処理では、演算部32は、撮像装置10からの画像を入力とし、撮像装置10による画像の撮像タイミングにおける腕部の動作状態(アーム部110の回動角度)を示すデータを第1出力としたニューラルネットワークを生成する。当該ニューラルネットワークは、撮像装置10からの画像と、関節角推定モデルデータ331に含まれる複数の画像データの各々との類似の度合いに基づいて上述の式(1)、式(2)、式(3)を参照して説明した係数に対応する点数の決定(重み付け)を行う。ここで、式(1)、式(2)、式(3)の係数は、関節角推定モデルデータ331に含まれる腕部の動作状態(アーム部110の回動角度)を示すデータと第1出力との関係性の強さの度合いを示す。従って、状態推定プログラム332を読み出して行われる演算部32の実行処理は、関節角推定モデルデータ331に含まれる腕部の動作状態(アーム部110の回動角度)を示すデータの各々と第1出力との相関を決定する処理(第1重み付け処理)である。また、状態推定プログラム332を読み出して行われる演算部32の実行処理において、関節角推定モデルデータ331は、第1教師データとして機能する。
また、現状抽出処理では、演算部32は、上述の第1出力を入力とし、撮像装置10による画像の撮像タイミング後の複数のアクチュエータ(例えば、アクチュエータ21,22,23,24,25,26)の動作制御内容を示すデータを第2出力としたニューラルネットワークを生成する。当該ニューラルネットワークは、第1出力と重機操作モデルデータ333に含まれる複数パターンの腕部の動作状態(アーム部110の回動角度)を示すデータの各々との類似の度合いに基づいて点数の決定(重み付け)を行う。当該点数は、上述の式(1)、式(2)、式(3)を参照して説明した係数に対応する点数と同様、関係性の強さの度合いを示す。当該点数で示される関係性の強さは、重機操作モデルデータ333に含まれる複数のアクチュエータの各動作制御内容(動作位置を示すデータ)と第2出力との関係性の強さである。従って、動作算出プログラム334を読み出して行われる演算部32の実行処理は、重機操作モデルデータ333に含まれる複数のアクチュエータの各動作制御内容(動作位置を示すデータ)の各々と第2出力との相関を決定する処理(第2重み付け処理)である。また、動作算出プログラム334を読み出して行われる演算部32の実行処理において、重機操作モデルデータ333は、第2教師データとして機能する。
このように、演算部32は、記憶部33に記憶されているプログラム及びデータに基づいて、ニューラルネットワークを生成する所謂AI(Artificial Intelligence)のような振る舞いをする。当該AIによるアーム部110の操縦の精度は、関節角推定モデルデータ331、重機操作モデルデータ333に含まれるデータの量が多く、含まれるデータの元になったアーム部110の操縦の精度が高いほど高まる傾向がある。上述の説明では、関節角推定モデルデータ331、重機操作モデルデータ333に含まれるデータが、ヒトである操縦者による建設機械100の操縦に基づいたデータであるが、これに限られるものでない。例えば、本実施形態の自動操縦システム1の動作によって行われた建設機械100の操縦に伴い、撮像装置10によって撮像された複数の画像と、複数の画像の撮像タイミングの各々におけるアーム部110の回動角度と、複数のアクチュエータ(例えば、アクチュエータ21,22,23,24,25,26)の動作位置を示すデータとを関節角推定モデルデータ331、重機操作モデルデータ333に含ませるようにしてもよい。これにより、自動操縦システム1の実施によって自動操縦システム1の動作の精度をより高めるための機械学習を深化させることができる。なお、上述のニューラルネットワークとして、より発展的なディープラーニングを採用してもよい。
図11は、自動操縦システム1の動作の流れの一例を示すフローチャートである。まず、撮像装置10によって画像が撮像され(ステップS1)、画像データが撮像装置10から情報処理装置30に送信される。演算部32は、状態推定プログラム332を読み出して実行処理し、ステップS1で撮像された画像と関節角推定モデルデータ331に含まれる複数の画像に基づいて画像照合処理を行う(ステップS2)。演算部32は、ステップS2の処理結果に基づいて状態推定処理を行い(ステップS3)、ステップS1の処理で撮像されたアーム部110の動作状態(アーム部110の回動角度)を推定する。
演算部32は、動作算出プログラム334を読み出して実行処理し、ステップS3の処理で推定されたアーム部110の動作状態(アーム部110の回動角度)と、重機操作モデルデータ333に含まれる複数パターンの腕部の動作状態(アーム部110の回動角度)を示すデータとに基づいて現状抽出処理を行う(ステップS4)。演算部32は、ステップS4の処理結果に基づいて動作命令生成処理を行い(ステップS5)、ステップS1の処理のタイミング(撮像タイミング)後の操縦装置20の動作制御内容を示すデータを生成する。演算部32は、通信部31を介して、ステップS5の処理で生成されたデータを操縦装置20に送信する。操縦装置20の制御部28は、通信部27を介して、ステップS5の処理で生成されたデータを受信し、当該命令に応じて操縦装置20の動作制御を行う(ステップS6)。
演算部32は、建設機械100を用いた一連の作業が終了したか判定する(ステップS7)。具体的には、演算部32は、例えば、ステップS1の処理で撮像された画像が、建設機械100を用いた一連の作業における作業終了時の画像として関節角推定モデルデータ331に含まれている画像と類似するか判定する。ステップS7の判定で、一連の作業が終了したと判定された場合(ステップS7;Yes)、自動操縦システム1は動作を終了する。ステップS7の判定で、一連の作業が終了していないと判定された場合(ステップS7;No)、ステップS1の処理に移行する。
以上説明したように、本実施形態の自動操縦システム1は、建設機械100の操作レバー(例えば、走行レバー151,152,作業レバー153,154)を動作させる複数のアクチュエータ(例えば、アクチュエータ21,22,23,24,25,26)を備える操縦装置20と、建設機械100に設けられ、アーム部110を撮像範囲に含む画像を撮像する撮像装置10と、操縦装置20の動作を制御する制御装置(例えば、情報処理装置30)とを備える。制御装置は、アーム部110の動作パターンに関する第1教師データ(例えば、関節角推定モデルデータ331)及び当該動作パターンをアーム部110に行わせる建設機械100の操作パターンに関する第2教師データ(例えば、重機操作モデルデータ333)を記憶する記憶部33と、撮像装置10によって撮像されたアーム部110を撮像範囲に含む画像と第1教師データに基づいて、当該画像の撮像タイミングにおけるアーム部110の動作状態(例えば、アーム部110の回動角度)を推定し、推定されたアーム部110の動作状態と第2教師データに基づいて撮像タイミング後の建設機械100の操作内容を決定する演算部32と、当該操作内容を示すデータ(例えば、操縦装置20の動作制御内容を示すデータ)を操縦装置に送信する通信部31とを備え、操縦装置20は、当該操作内容を示すデータに基づいて複数のアクチュエータの動作を制御する制御部28を備える。
これにより、撮像装置10が撮像した画像に基づいて、制御装置としての情報処理装置30が自動的に操縦装置20の動作制御内容を決定できる。従って、自動操縦システム1は、センサを用いずに建設機械100による作業を自動化できる。
また、演算部32は、撮像装置10からの画像を入力とし、撮像装置10による画像の撮像タイミングにおける腕部の動作状態(アーム部110の回動角度)を示すデータを第1出力としたニューラルネットワークを生成する。これにより、情報処理装置30が行うAIのような振る舞いによる機械学習に基づいた操縦装置20の自動的な動作制御が可能になる。
また、演算部32は、上述の第1出力を入力とし、撮像装置10による画像の撮像タイミング後の複数のアクチュエータ(例えば、アクチュエータ21,22,23,24,25,26)の動作制御内容を示すデータを第2出力としたニューラルネットワークを生成する。これにより、情報処理装置30が行うAIのような振る舞いによる機械学習に基づいた操縦装置20の自動的な動作制御が可能になる。
また、建設機械100は、バックホウであり、一連の作業は、バックホウによる地面の掘削である。これにより、バックホウによる作業を自動化できる。
以上、本発明の実施形態を説明したが、この実施形態の内容によって実施形態が限定されるものではない。例えば、アクチュエータ21,22,23,24等の直動式のアクチュエータは空圧で動作するアクチュエータに限定されるものでなく、油圧で動作するアクチュエータであってもよいし、電動機であってもよい。
また、建設機械100はバックホウに限られない。例えば、ケーブル式ローディングショベルや、ケーブル式ドラグショベルのショベル位置及びケーブルによるショベルの吊り下げ長等についても、上述のアーム部110の動作制御と同様の仕組みで制御可能である。その他、繰り返し動作を行う腕部を有する建設機械の可動部の動作制御についても、上述のアーム部110の動作制御と同様の仕組みで制御可能である。