(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023179149
(43)【公開日】2023-12-19
(54)【発明の名称】異常検知装置及び車両
(51)【国際特許分類】
B66F 9/24 20060101AFI20231212BHJP
G06N 20/00 20190101ALI20231212BHJP
【FI】
B66F9/24 L
G06N20/00
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022092265
(22)【出願日】2022-06-07
(71)【出願人】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(71)【出願人】
【識別番号】301021533
【氏名又は名称】国立研究開発法人産業技術総合研究所
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】前 伸一
(72)【発明者】
【氏名】小出 幸和
(72)【発明者】
【氏名】岡本 浩伸
(72)【発明者】
【氏名】佐川 立昌
【テーマコード(参考)】
3F333
【Fターム(参考)】
3F333AA02
3F333AE02
3F333BA02
3F333BA08
3F333BB01
3F333BD02
3F333BE02
3F333FA09
3F333FA11
3F333FA12
3F333FA13
3F333FD13
3F333FD14
3F333FD15
3F333FE04
3F333FE05
3F333FE10
(57)【要約】
【課題】車両に関する異常状態を特定すること。
【解決手段】異常検知装置は、制御装置と、補助記憶装置と、を備える。補助記憶装置は、写像データと、対応データと、を記憶している。制御装置は、操作値データを取得する。制御装置は、カメラから画像データを取得する。制御装置は、操作値データ、及び画像データを入力データとして写像データで規定される写像に入力することによって状態IDを取得する。制御装置は、状態IDに車両に関する異常状態を対応付けた対応データから車両に関する異常状態を特定する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
車両に関する異常を検知する異常検知装置であって、
前記異常検知装置は、
制御装置と、
記憶装置と、を備え、
前記記憶装置は、
前記車両の操作値データ及び画像データが入力データとして入力されることによって、前記車両に関する異常状態に応じた状態IDを出力データとして出力する写像を規定する写像データと、
前記状態IDに前記車両に関する異常状態を対応付けた対応データと、を記憶しており、
前記制御装置は、
前記操作値データを取得し、
前記車両が備えるカメラから前記画像データを取得し、
前記操作値データ、及び前記画像データを前記入力データとして前記写像に入力することによって前記状態IDを取得し、
前記写像から取得した前記状態ID及び前記対応データから前記車両に関する異常状態を特定する、異常検知装置。
【請求項2】
前記車両は荷役車両であり、
前記車両に関する異常状態は、荷役動作に関する異常状態を含む、請求項1に記載の異常検知装置。
【請求項3】
前記写像データは、機械学習済みのモデルであり、
前記モデルは、
前記入力データから特徴量ベクトルを抽出する特徴量抽出部と、
前記特徴量ベクトルを、前記状態IDに紐付く離散値に変換する離散化層と、を備える、請求項1又は請求項2に記載の異常検知装置。
【請求項4】
前記車両は、前記車両に搭乗した操作者によって操作される車両であり、
前記写像は、前記操作値データ、前記画像データ及び前記操作者の姿勢に関する姿勢データが前記入力データとして入力されることによって、前記状態IDを前記出力データとして出力し、
前記制御装置は、
前記車両が備える姿勢センサから前記姿勢データを取得し、
前記操作値データ、前記画像データ、及び前記姿勢データを前記入力データとする、請求項1又は請求項2に記載の異常検知装置。
【請求項5】
請求項1に記載の異常検知装置を備える車両。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、異常検知装置及び車両に関する。
【背景技術】
【0002】
特許文献1には、自律走行を行う車両としてフォークリフトが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
車両の動作中に、車両に異常が生じる場合がある。車両に異常が生じた場合に、異常を検知することが求められる。
【課題を解決するための手段】
【0005】
上記課題を解決する異常検知装置は、車両に関する異常を検知する異常検知装置であって、前記異常検知装置は、制御装置と、記憶装置と、を備え、前記記憶装置は、前記車両の操作値データ及び画像データが入力データとして入力されることによって、前記車両に関する異常状態に応じた状態IDを出力データとして出力する写像を規定する写像データと、前記状態IDに前記車両に関する異常状態を対応付けた対応データと、を記憶しており、前記制御装置は、前記操作値データを取得し、前記車両が備えるカメラから前記画像データを取得し、前記操作値データ、及び前記画像データを前記入力データとして前記写像に入力することによって前記状態IDを取得し、前記写像から取得した前記状態ID及び前記対応データから前記車両に関する異常状態を特定する。
【0006】
制御装置は、操作値データ及び画像データを入力データとして写像に入力することで状態IDを取得することができる。制御装置は、状態IDと対応データから、車両に関する異常状態を特定できる。
【0007】
上記異常検知装置について、前記車両は荷役車両であり、前記車両に関する異常状態は、荷役動作に関する異常状態を含んでいてもよい。
上記異常検知装置について、前記写像データは、機械学習済みのモデルであり、前記モデルは、前記入力データから特徴量ベクトルを抽出する特徴量抽出部と、前記特徴量ベクトルを、前記状態IDに紐付く離散値に変換する離散化層と、を備えていてもよい。
【0008】
上記異常検知装置について、前記車両は、前記車両に搭乗した操作者によって操作される車両であり、前記写像は、前記操作値データ、前記画像データ及び前記操作者の姿勢に関する姿勢データが前記入力データとして入力されることによって、前記状態IDを前記出力データとして出力し、前記制御装置は、前記車両が備える姿勢センサから前記姿勢データを取得し、前記操作値データ、前記画像データ、及び前記姿勢データを前記入力データとしてもよい。
【0009】
上記課題を解決する車両は、上記異常検知装置を備える。
制御装置は、状態IDと対応データから、車両に関する異常状態を特定できる。
【発明の効果】
【0010】
本発明によれば、車両に関する異常状態を特定できる。
【図面の簡単な説明】
【0011】
【
図8】異常検知装置の変更例を示す概略構成図である。
【発明を実施するための形態】
【0012】
異常検知装置及び車両の一実施形態について説明する。
図1に示すように、荷役車両10は、リーチ式のフォークリフトである。荷役車両10は、車両である。荷役車両10は、荷役車両10に搭乗した操作者による手動での動作と、自動での動作とを切り替え可能に構成されている。以下の説明において、前後左右は、荷役車両10を基準とした場合の前後左右である。
【0013】
荷役車両10は、車体11と、リーチレグ12と、前輪13と、後輪14と、荷役装置21と、操作部40と、を備える。
リーチレグ12は、左右方向に互いに離間して2つ設けられている。リーチレグ12は、車体11から前方に延びている。
【0014】
前輪13は、各リーチレグ12に1つずつ設けられている。後輪14は、車体11に設けられている。後輪14は、操舵輪である。後輪14は、駆動輪である。
荷役装置21は、車体11の前方に設けられている。荷役装置21は、マスト22と、リフトブラケット25と、フォーク26と、リフトシリンダ31と、ティルトシリンダ32と、リーチシリンダ33と、を備える。
【0015】
マスト22は、多段式のマストである。マスト22は、アウタマスト23と、インナマスト24と、を備える。インナマスト24は、アウタマスト23に対して昇降可能に設けられている。
【0016】
フォーク26は、リフトブラケット25に固定されている。フォーク26は、左右方向に互いに離間して2つ設けられている。
リフトシリンダ31は、油圧シリンダである。リフトブラケット25は、リフトシリンダ31への作動油の給排によって昇降する。フォーク26は、リフトブラケット25とともに昇降する。
【0017】
ティルトシリンダ32は、油圧シリンダである。リフトブラケット25は、ティルトシリンダ32への作動油の給排によって前後方向に傾動する。フォーク26は、リフトブラケット25とともに傾動する。
【0018】
リーチシリンダ33は、油圧シリンダである。マスト22は、リーチシリンダ33への作動油の給排によって前後方向に移動する。フォーク26は、マスト22とともに前後方向に移動する。
【0019】
図2に示すように、操作部40は、ディレクション操作部41と、リフト操作部42と、ティルト操作部43と、リーチ操作部44と、を含む。操作部40は、荷役車両10を手動で動作させる際に、操作される。
【0020】
ディレクション操作部41は、レバーである。ディレクション操作部41は、中立位置から前傾又は後傾する。ディレクション操作部41は、荷役車両10を走行させる際に操作される。ディレクション操作部41によって荷役車両10の進行方向を決定することができる。ディレクション操作部41によって荷役車両10の速度を調整可能である。荷役車両10の進行方向は、前進方向、又は後進方向である。
【0021】
リフト操作部42はレバーである。リフト操作部42は、中立位置から前傾又は後傾する。リフト操作部42は、フォーク26を昇降させる際に操作される。リフト操作部42によってフォーク26の昇降方向を決定することができる。リフト操作部42によってフォーク26の昇降速度を調整可能である。
【0022】
ティルト操作部43はレバーである。ティルト操作部43は、中立位置から前傾又は後傾する。ティルト操作部43は、フォーク26を傾動させる際に操作される。ティルト操作部43によってフォーク26の傾動方向を決定することができる。ティルト操作部43によってフォーク26の傾動速度を調整可能である。
【0023】
リーチ操作部44はレバーである。リーチ操作部44は、中立位置から前傾又は後傾する。リーチ操作部44は、フォーク26を前後方向に移動させる際に操作される。リーチ操作部44によってフォーク26の移動方向を決定することができる。リーチ操作部44によってフォーク26の移動速度を調整可能である。
【0024】
荷役車両10は、センサ50と、自動運転用センサ56と、カメラ57と、駆動機構61と、油圧機構62と、車両制御装置63と、異常検知装置70と、を備える。
センサ50は、ディレクションセンサ51と、リフトセンサ52と、ティルトセンサ53と、リーチセンサ54と、タイヤ角センサ55と、を含む。
【0025】
ディレクションセンサ51は、ディレクション操作部41の操作値を検知する。ディレクションセンサ51は、ディレクション操作部41の操作値に応じた電気信号を車両制御装置63に出力する。
【0026】
リフトセンサ52は、リフト操作部42の操作値を検知する。リフトセンサ52は、リフト操作部42の操作値に応じた電気信号を車両制御装置63に出力する。
ティルトセンサ53は、ティルト操作部43の操作値を検知する。ティルトセンサ53は、ティルト操作部43の操作値に応じた電気信号を車両制御装置63に出力する。
【0027】
リーチセンサ54は、リーチ操作部44の操作値を検知する。リーチセンサ54は、リーチ操作部44の操作値に応じた電気信号を車両制御装置63に出力する。
タイヤ角センサ55は、操舵輪の操舵角を検知する。本実施形態であれば、タイヤ角センサ55は、後輪14の操舵角を検知する。タイヤ角センサ55は、操舵角に応じた電気信号を車両制御装置63に出力する。
【0028】
自動運転用センサ56は、荷役車両10を自動で動作させる際に用いられるセンサである。自動運転用センサ56は、例えば、荷役車両10の自己位置推定に用いられる外界センサ、及びフォーク26と荷役対象との位置合わせに用いられる距離計を含む。自動運転用センサ56は、検知結果を車両制御装置63に出力する。荷役対象は、例えば、荷役装置21による荷取りの対象となる荷、及び荷役装置21による荷置きの対象となる場所である。荷置きの対象となる場所としては、例えば、トラック、及び棚を挙げることができる。荷とは、パレット、及びパレットに積まれた積荷を含む。
【0029】
カメラ57は、デジタルカメラである。カメラ57は、撮像素子を備える。撮像素子としては、例えば、CCDイメージセンサ(Charge Coupled Device image sensor)、及びCMOSイメージセンサ(Complementary Metal Oxide Semiconductor image sensor)を挙げることができる。カメラ57は、単眼カメラである。カメラ57としては、例えば、RGBカメラ、赤外線カメラ、グレースケールカメラ、及び可視光カメラを挙げることができる。カメラ57は、操作者が荷役車両10を操作している場合に操作者が視認する範囲を撮像できるように配置されている。カメラ57は、例えば、運転席から前方に向かう範囲を撮像できるように配置されている。カメラ57は、撮像によって得られた画像データを異常検知装置70に出力する。
【0030】
駆動機構61は、荷役車両10を走行動作させるための部材である。駆動機構61は、後輪14を駆動させるための駆動源及び後輪14を操舵するための操舵機構を含む。駆動源をモータとする荷役車両10であれば、駆動機構61はモータドライバを含む。駆動源をエンジンとする荷役車両10であれば、駆動機構61は燃料噴射装置を含む。
【0031】
油圧機構62は、油圧機器への作動油の給排を制御するための部材である。油圧機器は、リフトシリンダ31、ティルトシリンダ32、及びリーチシリンダ33を含む。油圧機構62は、作動油を吐出するポンプ、及び油圧機器への作動油の給排を制御するコントロールバルブを含む。
【0032】
車両制御装置63は、走行動作に関する制御、及び荷役動作に関する制御を行う。車両制御装置63は、プロセッサ64と、記憶部65と、を備える。プロセッサ64としては、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又はDSP(Digital Signal Processor)が用いられる。記憶部65は、RAM(Random Access Memory)及びROM(Read Only Memory)を含む。記憶部65には、荷役車両10を動作させるためのプログラムが記憶されている。記憶部65は、処理をプロセッサ64に実行させるように構成されたプログラムコードまたは指令を格納しているといえる。記憶部65、すなわち、コンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。車両制御装置63は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェア回路によって構成されていてもよい。処理回路である車両制御装置63は、コンピュータプログラムに従って動作する1つ以上のプロセッサ、ASICやFPGA等の1つ以上のハードウェア回路、或いは、それらの組み合わせを含み得る。
【0033】
<手動での動作時に車両制御装置が行う制御>
荷役車両10の手動での動作時には、車両制御装置63は、ディレクションセンサ51の検知結果に応じて荷役車両10に走行動作を行わせる。車両制御装置63は、ディレクションセンサ51の検知結果から、ディレクション操作部41の操作値を認識する。車両制御装置63は、ディレクション操作部41の操作値に応じた進行方向に、ディレクション操作部41の操作値に応じた速度で荷役車両10が走行するように駆動機構61を制御する。
【0034】
荷役車両10の手動での動作時には、車両制御装置63は、リフトセンサ52、ティルトセンサ53、及びリーチセンサ54の検知結果に応じて荷役車両10に荷役動作を行わせる。車両制御装置63は、リフトセンサ52の検知結果から、リフト操作部42の操作値を認識する。車両制御装置63は、リフト操作部42の操作値に応じた昇降方向に、リフト操作部42の操作値に応じた速度でフォーク26が昇降するように油圧機構62を制御する。車両制御装置63は、ティルトセンサ53の検知結果から、ティルト操作部43の操作値を認識する。車両制御装置63は、ティルト操作部43の操作値に応じた傾動方向に、ティルト操作部43の操作値に応じた速度でフォーク26が傾動するように油圧機構62を制御する。車両制御装置63は、リーチセンサ54の検知結果から、リーチ操作部44の操作値を認識する。車両制御装置63は、リーチ操作部44の操作値に応じた移動方向に、リーチ操作部44の操作値に応じた速度でフォーク26が移動するように油圧機構62を制御する。
【0035】
<自動での動作時に車両制御装置が行う制御>
荷役車両10の自動での動作時には、車両制御装置63は、自動運転用センサ56を用いて自己位置を推定しつつ、経路を生成する。車両制御装置63は、荷役車両10が経路を追従するように駆動機構61を制御する。この際、車両制御装置63は、走行動作に関する指令値を生成することによって指令値に応じて駆動機構61を制御する。走行動作に関する指令値は、荷役車両10の進行方向、及び荷役車両10の速度に関する指令である。指令値は、ディレクション操作部41の仮想的な操作値といえる。
【0036】
荷役車両10の自動での動作時には、車両制御装置63は、自動運転用センサ56を用いて荷役対象とフォーク26との位置を認識しつつ、フォーク26の位置合わせを行う。この際、車両制御装置63は、荷役動作に関する指令値を生成することによって指令値に応じて油圧機構62を制御する。荷役動作に関する指令値は、フォーク26の昇降方向及びフォーク26の昇降速度に関する指令値と、フォーク26の傾動方向及びフォーク26の傾動速度に関する指令値と、フォーク26の移動方向及びフォーク26の移動速度に関する指令値と、を含む。フォーク26の昇降方向及びフォーク26の昇降速度に関する指令値は、リフト操作部42の仮想的な操作値といえる。フォーク26の傾動方向及びフォーク26の傾動速度に関する指令値は、ティルト操作部43の仮想的な操作値といえる。フォーク26の移動方向及びフォーク26の移動速度に関する指令値は、リーチ操作部44の仮想的な操作値といえる。
【0037】
<異常検知装置>
異常検知装置70は、制御装置71と、補助記憶装置74と、を備える。
制御装置71は、例えば、車両制御装置63と同様のハードウェア構成を備える。制御装置71は、プロセッサ72と、記憶部73と、を備える。カメラ57が出力した画像データは、制御装置71に入力される。制御装置71と車両制御装置63は、車両用の通信プロトコルによって互いに情報を取得可能である。
【0038】
補助記憶装置74は、制御装置71が読み取り可能な情報を記憶している。補助記憶装置74としては、例えば、ハードディスクドライブ、及びソリッドステートドライブを挙げることができる。補助記憶装置74は、写像データであるモデル81を記憶している。補助記憶装置74は、対応データ88を記憶している。補助記憶装置74は、記憶装置である。
【0039】
モデル81は、入力データが入力されることによって荷役車両10に関する状態に応じた状態IDを出力データとして出力する写像を規定している。
対応データ88は、状態IDと荷役車両10に関する状態とを対応付けている。荷役車両10に関する状態の一例として、アプローチ状態、傾斜状態、パレットの干渉状態、遠距離状態、奥行き方向に荷が存在する状態、及び積荷の干渉状態を挙げることができる。アプローチ状態とは、荷役車両10が荷取り対象となる荷に対して接近している状態を示す。傾斜状態とは、荷が置かれている場所、又は荷置き対象となる場所の傾斜角度が過剰に大きい状態を示す。パレットの干渉状態とは、隣り合うパレット同士が接触している状態を示す。遠距離状態とは、荷取りを行える位置まで荷役車両10を近付けることができない状態を示す。遠距離状態の一例としては、トラックの荷台に積まれた荷を荷取りする状況が挙げられる。トラックの荷台に積まれた荷を荷取りする場合、荷役車両10はトラックに近付く。荷役車両10は、トラックと接触しない範囲でトラックに近付く必要があるため、荷台に置かれた荷を荷取りできる位置まで荷役車両10を近付けることができない場合がある。奥行き方向に荷が存在する状態は、荷置きをする場所の奥行き方向に荷が存在しており、荷置き対象となる荷と奥行き方向に存在する荷とが接触するおそれがある状態を含む。奥行き方向に荷が存在する状態は、荷取り対象となる荷の奥行き方向に荷が存在しており、荷取り対象となる荷と奥行き方向に存在する荷とが接触するおそれがある状態を含む。積荷の干渉状態は、積荷が、当該積荷が置かれたパレットとは異なるパレットに接触している状態を含む。積荷の干渉状態は、積荷が、当該積荷が置かれたパレットとは異なるパレットに置かれた積荷に接触している状態を含む。
【0040】
アプローチ状態、傾斜状態、パレットの干渉状態、遠距離状態、奥行き方向に荷が存在する状態、及び積荷の干渉状態は、荷役動作に関する状態である。傾斜状態、パレットの干渉状態、遠距離状態、奥行き方向に荷が存在する状態、及び積荷の干渉状態の場合、荷役車両10による荷役動作が阻害されるおそれがある。これらの状態は、荷役動作に関する異常状態である。対応データ88は、状態IDと荷役車両10に関する異常状態とを対応付けているといえる。
【0041】
<異常検知制御>
制御装置71は、異常検知制御を実行する。異常検知制御は、例えば、荷役車両10の起動中に所定の制御周期で繰り返し実行される。荷役車両10が自動で動作している場合に行われる異常検知制御について説明する。
【0042】
図3に示すように、ステップS1において、制御装置71は、荷役車両10の操作値データを取得する。操作値データは、ディレクション操作部41の操作値を示すデータ、リフト操作部42の操作値を示すデータ、ティルト操作部43の操作値を示すデータ、リーチ操作部44の操作値を示すデータ、及び操舵角を示すデータを含む。ディレクション操作部41の操作値を示すデータ、リフト操作部42の操作値を示すデータ、ティルト操作部43の操作値を示すデータ、及びリーチ操作部44の操作値を示すデータは、それぞれ車両制御装置63が生成する指令値である。操舵角を示すデータは、タイヤ角センサ55の検知結果である。制御装置71は、車両制御装置63から、各操作値を示す指令値、及びタイヤ角センサ55の検知結果を取得する。操作値データとは、仮に、操作者が荷役車両10を手動で動作させる場合に、操作者による操作が反映される操作値を示すデータである。言い換えれば、操作者による意志によって変化し得る値を示すデータである。操作部40の操作値を示すデータは、操作者による操作部40の操作量によって変化する。操舵角を示すデータは、操作者によるステアリングハンドルの操作量によって変化する。従って、これらは操作値データである。
【0043】
次に、ステップS2において、制御装置71は、カメラ57から画像データを取得する。
次に、ステップS3において、制御装置71は、操作値データ、及び画像データに対して前処理を行う。前処理では、同期取り、特徴量抽出、及び操作値データと画像データとの結合が行われる。
【0044】
図4に示すように、制御装置71は、操作値データD1と、画像データD2とのサンプリングレートを揃えることによって操作値データD1と、画像データD2との同期取りを行う。
【0045】
制御装置71は、画像データD2から特徴量を抽出する。画像データD2からの特徴量の抽出は、深層学習モデルを用いて行われる。本実施形態において、制御装置71は、畳み込みニューラルネットワーク(Convolution Neural Network)を用いて画像データD2からの特徴量の抽出を行う。
【0046】
制御装置71は、操作値データD1と画像データD2から得られた特徴量を結合することによって入力データD3を生成する。
図5に示すように、入力データD3は、最新データを追加した分、最も古いデータを削除することによって一定時間の時系列データになるように生成される。
【0047】
図3に示すように、次に、ステップS4において、制御装置71は、入力データD3をモデル81によって規定される写像に入力する。モデル81は、機械学習によって学習を行った学習済みのモデルである。写像は、操作値データD1によって示される操作値、及び画像データの画素値を入力変数とし、状態IDを出力変数とする。
【0048】
図6に示すように、モデル81は、入力部82と、特徴量抽出部83と、状態推定部86と、を備える。
入力部82には、入力データD3が入力される。入力部82は、入力データD3を分割してトークンを作成する。
【0049】
特徴量抽出部83は、位置埋め込み層(Position Embedding Layer)84と、自己注意層(Self-Attention Layer)85と、を備える。
位置埋め込み層84は、トークンに位置情報を付加する。詳細にいえば、位置埋め込み層84は、トークンの位置に応じた固有ベクトルを位置情報としてトークンに付加する。
【0050】
自己注意層85は、入力データD3から注目箇所を算出する。自己注意層85は、Query、Key、Valueの3つのベクトルを算出する。自己注意層85は、QueryとKeyとの内積を算出してソフトマックスを適用することによってQueryとKeyとの関連度を算出する。自己注意層85は、QueryとKeyとの関連度に応じてValueの重み付き和を計算する。これにより、特徴量抽出部83は、各トークンの特徴量である特徴量ベクトルを抽出することができる。
【0051】
状態推定部86は、特徴量ベクトルから状態IDを推定する。状態推定部86は、離散化層87を備える。離散化層87は、特徴量ベクトルと状態ベクトルとの距離を算出する。離散化層87は、特徴量ベクトルと状態ベクトルとの距離が最も小さくなる状態ベクトルを特定する。状態ベクトルは、離散値である。離散化層87は、特徴量ベクトルを離散値に変換することができる。離散化層87は、状態IDマップから状態ベクトルに紐付けられた状態IDを導出する。状態IDマップは、状態ベクトルを状態IDに紐付けたマップである。状態推定部86は、特徴量ベクトルとの距離が最も小さくなる状態ベクトルを特定し、当該状態ベクトルに紐付いた状態IDを現在の状態IDとして出力する。
【0052】
図3に示すように、次に、ステップS5において、制御装置71は、ステップS4で得られた状態IDに対応付けられた荷役車両10に関する状態を、対応データ88から特定する。これにより、制御装置71は、荷役車両10に関する現在の状態を特定できる。対応データ88で状態ID「0」にアプローチ状態が対応付けられているとする。ステップS4で得られた状態IDが「0」の場合、制御装置71は、荷役車両10に関する現在の状態がアプローチ状態であると特定する。対応データ88で状態ID「1」に傾斜状態が対応付けられているとする。ステップS4で得られた状態IDが「1」の場合、制御装置71は、荷役車両10に関する現在の状態が傾斜状態であると特定する。
【0053】
次に、ステップS6において、制御装置71は、荷役車両10に関する現在の状態から、荷役車両10が異常状態か否かを判定する。荷役車両10に関する状態を異常状態と正常状態に分類しておくことによって制御装置71は、荷役車両10が正常状態か異常状態かを判定できる。前述した例であれば、荷役車両10に関する状態がアプローチ状態であれば、制御装置71は、荷役車両10が正常状態であると判定できる。荷役車両10に関する状態が、パレットの干渉状態、遠距離状態、奥行き方向に荷が存在する状態、又は積荷の干渉状態であれば、制御装置71は、荷役車両10が異常状態であると判定できる。これにより、異常検知装置70は、荷役車両10に関する異常を検知する。
【0054】
制御装置71が、荷役車両10が異常状態であると判定した場合、その後の制御は任意である。車両制御装置63が、異常状態に対応した動作を荷役車両10に行わせることができる場合、異常状態に応じた制御を車両制御装置63が行うようにしてもよい。車両制御装置63は、荷役車両10を停止させてもよい。車両制御装置63又は制御装置71は、上位制御装置に、荷役車両10が異常状態であることを通知してもよい。
【0055】
荷役車両10が手動で動作している場合、操作値データD1としてセンサ50から得られた操作値を用いればよい。このように、荷役車両10が自動で動作している場合であっても、荷役車両10が手動で動作している場合であっても、荷役車両10に関する状態を特定できる。
【0056】
荷役車両10が手動で動作している場合、制御装置71によって荷役車両10が異常状態であると判定された場合、操作者に通知が行われてもよい。通知は、例えば、操作者が視認可能な表示部に表示を行うことで行われてもよいし、ランプの点灯やブザーの作動によって行われてもよい。
【0057】
<モデルの生成方法>
モデル81の生成方法について説明する。モデル81は、自己教師あり学習によって生成されている。一例として学習モデルとしてVQ-VAE(Vector Quantized-Variational Auto Encoder)を用いる場合を例に挙げて説明を行う。
【0058】
図7に示すように、学習モデル90は、エンコーダ91と、デコーダ93と、を備える。学習モデル90は、学習データD4から特徴量である状態ベクトルを抽出し、当該状態ベクトルから学習データD4の再構成を行うことで、状態推定部92を構成する。状態推定部92は、状態ベクトルが属する潜在空間である。
【0059】
エンコーダ91には、学習データD4が入力される。エンコーダ91は、学習データD4から特徴量である潜在変数を抽出する。
状態推定部92は、状態IDマップに潜在変数をマッピングすることによって潜在変数を有限個の離散値に変換する。離散値は、状態ベクトルである。状態IDマップは、状態IDと状態ベクトルとを紐付けている。状態推定部92は、潜在変数を距離が最も近い状態ベクトルに置き換える。
【0060】
デコーダ93は、状態ベクトルから学習データD4を再構成する。
学習データD4は、操作者が荷役車両10を操作する際の操作値データD5、操作者が荷役車両10を操作する際の視覚データD6、及び操作者が荷役車両10を操作する際の姿勢データD7を含む。学習データD4は、荷役車両10と同一仕様の荷役車両を用いて取得することができる。同一仕様の荷役車両とは、周辺環境が同一の状態で同一の操作値が入力された場合に、同一の動作が同一の速度で行われる行われる荷役車両である。一例として、荷役車両10を用いて学習データD4を取得する場合を例に挙げて説明を行う。
【0061】
操作者が荷役車両10を操作する際の操作値データD5は、ディレクションセンサ51、リフトセンサ52、ティルトセンサ53、リーチセンサ54、及びタイヤ角センサ55から取得することができる。操作者が荷役車両10を操作する際の視覚データD6は、操作者の視点の場所を示すデータである。視覚データD6は、視線計測を行うアイトラッカーを操作者に装着することによって、当該アイトラッカーから得ることができる。操作者が荷役車両10を操作する際の姿勢データD7は、操作者の姿勢に関するデータである。詳細にいえば、姿勢データD7は、操作者が荷役車両10を操作する際の操作者の姿勢角や関節座標を示すデータである。姿勢データD7は、姿勢センサを用いることで取得することができる。姿勢センサは、例えば、操作者を撮像するカメラ、又は深度センサである。
【0062】
荷役車両10に関する状態と、操作値データD5には相関がある。例えば、荷役車両10に関する状態が「アプローチ状態」の場合、ディレクション操作部41の操作値は、荷役車両10の前進を指示する値になると想定できる。荷役車両10に関する状態が「傾斜状態」の場合、荷役車両10の操作者がフォーク26の傾斜角度を調整することでティルト操作部43の操作値が変化する場合がある。荷役車両10に関する状態が「パレットの干渉状態」の場合、パレット同士が接触している状態を解除するために操舵角を変更する場合がある。このように、操作値データD5から、荷役車両10に関する状態がどのような状態だったかを把握することができる。
【0063】
操作者の視点の場所は、荷役車両10に関する状態によって変化する。例えば、荷役車両10に関する状態が「アプローチ状態」の場合、操作者の視点の場所はパレットになると想定できる。荷役車両10に関する状態が「傾斜状態」の場合、操作者の視点の場所は、傾斜している場所、即ち、パレットが置かれている場所、又は荷置き対象となる場所になると想定できる。荷役車両10に関する状態が「パレットの干渉状態」の場合、操作者の視点の場所は、パレット同士が接触している箇所になると想定できる。このように、視覚データD6から、操作者が注目していた場所を把握することができる。
【0064】
操作者の姿勢は、荷役車両10に関する状態によって変化する。例えば、荷役車両10に関する状態が「パレットの干渉状態」や「遠距離状態」の場合、パレットの状態を把握するため、操作者が荷役車両10の前方に身を乗り出すような姿勢になると想定できる。また、荷役装置21によって操作者の視覚が遮られる場合には、荷役車両10の左右方向からパレットを覗き込むような姿勢になることも想定できる。
【0065】
上記したように、学習データD4として、操作値データD5と、視覚データD6とを用いることで、荷役車両10に関する状態がどのような状態の場合に、荷役車両10の操作者がどのような場所に注目していたかをモデル81に反映できる。即ち、荷役車両10に関する状態がどのような状態の場合に、画像データD2のどの箇所に注目して特徴量ベクトルを抽出すればよいかを学習できる。また、学習データD4として、姿勢データD7を用いることで、荷役車両10に関する状態がどのような状態の場合に、荷役車両10の操作者がどのような姿勢だったかをモデル81に反映できる。モデル81は、操作値データD1、画像データD2、及び姿勢データが入力データとして入力されることによって、荷役車両10に関する状態に応じた状態IDを出力データとして出力する写像を規定するといえる。
【0066】
学習データD4によって学習を行った後には、学習モデル90のうちエンコーダ91、及び状態推定部92をモデル81として用いる。
<対応データの生成方法>
対応データ88の生成は、モデル81を生成した後に行われる。上記したようにモデル81を生成することによって、状態ベクトルに状態IDを対応付けた状態IDマップを得ることができる。この状態IDは、荷役車両10に関する状態に応じた固有のIDである。状態IDが、荷役車両10に関する状態のうち、どのような状態に対応するかは、例えば、人が学習データD4を確認することによって把握できる。そして、状態IDに、当該状態IDに対応する荷役車両10に関する状態を対応付けることで、対応データ88を生成することができる。
【0067】
[本実施形態の作用]
車両の動作中には、車両自体や車両の周辺環境に応じて車両に関する状態が変化する。特に、荷役車両10の荷役動作中には、荷役対象によって異常状態が生じるおそれがある。荷役車両10の操作者であれば、これらの異常状態に気付き得る。本実施形態では、異常状態が生じている場合に、荷役車両10の操作者がどのような場所に注目しているかを利用して異常状態の特定を行っている。操作値データD5及び視覚データD6は、荷役車両10に関する状態との相関がある。これらを学習データD4として得られたモデル81は、操作者がどのような場所に注目して、荷役車両10に関する状態を把握したかを表しているといえる。
【0068】
操作値データD1及び画像データD2を入力データD3とすることで、制御装置71は、荷役車両10に関する状態に応じた状態IDを取得できる。特に、上記のように生成されたモデル81を用いることによって、操作値データD1と画像データD2の位置との関連度に基づいて特徴量ベクトルを抽出することができる。即ち、画像データD2のうち、荷役車両10に関する状態との関連度が高い場所に注目して特徴量ベクトルを抽出することができる。
【0069】
[本実施形態の効果]
(1)制御装置71は、操作値データD1、及び画像データD2を入力データD3として写像に入力している。これにより、制御装置71は、荷役車両10に関する状態に応じた状態IDを出力データとして得ることができる。対応データ88は、状態IDと荷役車両10に関する状態とを対応付けている。制御装置71は、状態IDと対応データ88から、荷役車両10に関する異常状態を特定できる。
【0070】
(2)荷役車両10は、港湾、商業施設、又は工場等、多様な場所で使用される。また、パレットの種類や積荷の種類もユーザーによって異なり得る。このため、入力データD3として未知のデータが入力されやすい。機械学習済みのモデル81によって規定される写像を用いて状態IDを出力することによって、入力データD3として未知のデータが入力された場合であっても、荷役車両10に関する異常状態を特定することができる。
【0071】
(3)モデル81は、離散化層87を備える。離散化層87は、特徴量ベクトルを離散値である状態ベクトルに変換する。時系列データである入力データD3を離散値に変換することができる。これにより、時系列データを荷役車両10に関する状態に対応する状態IDに分類することができる。
【0072】
(4)モデル81は、自己教師あり学習によって生成されている。教師あり学習によってモデルを生成する場合、学習データD4にラベル付けをする必要がある。これに対して、自己教師あり学習であれば、状態IDに荷役車両10に関する状態を対応付ければよいため、ラベル付けをする場合に比べて、手間を低減できる。
【0073】
(5)操作者による手動での動作が行われている場合であっても、制御装置71は、荷役車両10に関する異常状態を特定できる。制御装置71が操作者に異常状態であることの通知を行う場合、操作者は、荷役車両10に関する異常状態を見落としている場合であっても、異常状態を認識できる。
【0074】
[変更例]
実施形態は、以下のように変更して実施することができる。実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0075】
○車両は荷役車両10とは異なっていてもよい。例えば、車両は、乗用車、牽引車、搬送車であってもよい。荷役車両10は、カウンタ式のフォークリフトであってもよい。このように、車両の種類は、適宜変更してもよい。この場合、車両の種類毎に、個別のモデル81を生成する。例えば、カウンタ式のフォークリフトであれば、ディレクションセンサ51に代えてアクセルセンサの操作値を示すデータ用いてモデルを生成すればよい。
【0076】
○荷役車両10は、アタッチメントを備えていてもよい。この場合、荷役車両10がアタッチメントを操作するアタッチメント操作部を備える場合、アタッチメント操作部の操作値を示すデータを学習データD4に含めることが好ましい。アタッチメントとしては、例えば、フォーク26を左右方向に移動させるサイドシフト装置、及び円筒状の荷をクランプするクランプ装置を挙げることができる。
【0077】
○異常検知装置70を備える荷役車両10は、自動での動作のみが行える荷役車両であってもよい。この場合、学習データD4の取得は、操作部40及びセンサ50を備える荷役車両を用いて行えばよく、異常検知装置70を備える荷役車両10は、操作部40及びセンサ50を備えていなくてもよい。
【0078】
○異常検知装置70を備える荷役車両10は、手動での動作のみが行える荷役車両であってもよい。
○
図8に示すように、荷役車両10は、姿勢センサ58を備えていてもよい。姿勢センサ58としては、例えば、操作者を撮像するカメラ、又は深度センサを用いることができる。姿勢センサ58は、姿勢データを検知する。姿勢データは、姿勢データD7と同様のデータである。異常検知制御を実行する際には、制御装置71は、操作値データD1、画像データD2、及び姿勢センサ58から取得した姿勢データを入力データD3とする。この場合、荷役車両10は、荷役車両10に搭乗した操作者によって操作される。即ち、実施形態に記載の荷役車両10、あるいは、手動での動作のみが行える荷役車両である。入力データD3として姿勢データを用いることで、異常検知装置70が異常状態を特定する精度を向上させることができる。
【0079】
○荷役車両10のユーザーに応じて追加学習を行ったモデル81を用いてもよい。荷役車両10は、港湾、商業施設、又は工場等、多様な場所で使用される。また、パレットの種類や積荷の種類もユーザーによって異なり得る。このため、荷役車両10には、ユーザーによる独自の異常状態が生じ得る。学習データD4として、ユーザーが荷役車両10を使用した際の操作値データD5、視覚データD6、及び姿勢データD7を用いて追加学習を行うことで、ユーザーに応じたモデル81を得ることができる。
【0080】
○荷役車両10に関する状態として、走行動作に関する状態が含まれていてもよい。走行動作に関する状態としては、例えば、障害物によって荷役車両10が走行不能である等の走行動作に関する異常状態が含まれていてもよい。荷役車両10が、特定条件が成立した場合に車速制限を行う場合、走行動作に関する状態として、車速制限状態が含まれていてもよい。特定条件としては、例えば、荷役車両10が特定の場所を走行していることや、特定の障害物を検知していることを挙げることができる。特定の障害物としては、例えば、人を挙げることができる。
【0081】
○学習データD4は、操作値データD5、及び視覚データD6のみであってもよい。この場合、モデル81は、操作値データD1、及び画像データD2が入力データとして入力されることによって、荷役車両10に関する状態に応じた状態IDを出力データとして出力する写像を規定する。
【0082】
○モデル81は、教師なし学習によって生成されていてもよい。例えば、学習データD4からグループ構造を抽出するアルゴリズムを用いて、学習データD4をグループに分類すればよい。このグループを状態IDとし、対応データ88によって状態IDと荷役車両10に関する状態とを対応付ければよい。
【0083】
○カメラ57は、異常検知制御とは異なる用途に兼用されてもよい。例えば、車両制御装置63が荷役車両10の自動での動作を行う際に、画像データD2を用いて制御を行ってもよい。例えば、車両制御装置63は、画像データD2を用いてパレットとフォーク26との位置合わせを行ってもよい。
【0084】
○荷役車両10は、遠隔操作されるものであってもよい。この場合、操作者は、荷役車両10から離れた遠隔地で荷役車両10の操作を行う。操作者は、荷役車両10に設けられたカメラによって撮像された画像を視認しながら、荷役車両10の操作を行う。この際のカメラとして、カメラ57を用いてもよい。
【0085】
○対応データ88は、状態IDと荷役車両10に関する異常状態とを対応付けたものであればよい。従って、対応データ88によって状態IDに対応付けられる状態は、正常状態を含んでいなくてもよい。
【0086】
○補助記憶装置74に代えて、記憶部73にモデル81、及び対応データ88を記憶してもよい。この場合、記憶部73が記憶装置である。制御装置71が、異常検知装置70である。モデル81及び対応データ88のうち一方が記憶部73に記憶され、他方が補助記憶装置74に記憶されてもよい。この場合、記憶部73及び補助記憶装置74が記憶装置である。
【0087】
○異常検知装置は、荷役車両10が備えていなくてもよい。例えば、異常検知装置は、荷役車両10が運用される場所、あるいは、荷役車両10が運用される場所から離れた遠隔地に設けられていてもよい。この場合、荷役車両10及び異常検知装置のそれぞれは、通信装置を備える。通信装置は、無線LAN、Zigbee(登録商標)、LPWA(Low Power Wide Area)、又は移動通信システム等、任意の無線通信方式で通信を行うことが可能な通信機器である。この場合、車両制御装置63は、操作値データ、及び画像データを通信装置によって異常検知装置に送信する。異常検知装置は、操作値データ、及び画像データを通信装置で受信することによって操作値データ、及び画像データを取得する。そして、異常検知装置は、荷役車両10から取得した操作値データ、及び画像データを用いてステップS3~ステップS6の処理を実行する。この場合、異常検知装置は、検知結果を荷役車両10に送信してもよい。
【0088】
○異常検知装置は、荷役車両10が備える第1装置と、荷役車両10が運用される場所、あるいは、荷役車両10が運用される場所から離れた遠隔地に設けられた第2装置と、を備えていてもよい。第1装置、及び第2装置のそれぞれは、例えば、実施形態の異常検知装置と同様のハードウェア構成を備える。第1装置、及び第2装置のそれぞれは、通信装置を備える。第1装置は、ステップS3~ステップS5のうち一部の処理を行う。第2装置は、第1装置が行った処理以降の処理を行う。例えば、第1装置は、ステップS1~ステップS3の処理を行うことで入力データD3を生成する。第1装置は、入力データD3を通信装置によって第2装置に送信する。第2装置は、通信装置によって入力データD3を受信する。第2装置は、入力データD3を用いてステップS4~ステップS6の処理を行う。この場合、第2装置は、検知結果を第1装置に送信してもよい。
【符号の説明】
【0089】
D1…操作値データ、D2…画像データ、D3…入力データ、10…車両としての荷役車両、57…カメラ、58…姿勢センサ、70…異常検知装置、71…制御装置、74…記憶装置である補助記憶装置、81…モデル、83…特徴量抽出部、87…離散化層、88…対応データ。