以下に添付図面を参照しながら、本開示の一実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、理解を容易とするための例示にすぎず、特に断る場合を除き、本開示を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本開示に直接関係のない要素は図示を省略する。
図1は、アンローダ装置100の概要を説明する図である。図1に示すように、荷揚げ装置の一例としてのアンローダ装置100は、岸壁2に沿って敷設された一対のレール3上を、レール3の延在方向に走行可能である。アンローダ装置100は、岸壁2に停泊された船舶4の船庫5内に積載された積荷6を外部に搬出する。積荷6は、ばら荷が想定されており、一例として石炭が挙げられる。
図2は、アンローダ装置100の構成を説明する図である。なお、図2では、岸壁2および船舶4を断面で示している。図2に示すように、アンローダ装置100は、走行体102、旋回体104、ブーム106、トップフレーム108、エレベータ110、掻取部112、ブームコンベア114を含んで構成される。
走行体102は、不図示のアクチュエータが駆動することで、レール3上を走行可能である。走行体102には、位置センサ116が設けられる。位置センサ116は、例えばロータリーエンコーダである。位置センサ116は、走行体102の車輪の回転数に基づき、所定の原点位置に対する走行体102の水平面上の位置を計測する。
旋回体104は、走行体102の上部に、垂直軸を中心に旋回自在に設けられる。旋回体104は、不図示のアクチュエータが駆動することで、走行体102に対して旋回可能である。
ブーム106は、旋回体104の上部に、傾斜角度を変更可能に設けられる。ブーム106は、不図示のアクチュエータが駆動することで、旋回体104を基準とした傾斜角度を変更可能である。
旋回体104には、旋回角度センサ118および傾斜角度センサ120が設けられる。旋回角度センサ118および傾斜角度センサ120は、例えばロータリーエンコーダである。旋回角度センサ118は、走行体102に対する旋回体104の旋回角度を計測する。傾斜角度センサ120は、旋回体104に対するブーム106の傾斜角度を計測する。
トップフレーム108は、ブーム106の先端に設けられる。トップフレーム108には、エレベータ110を旋回させるアクチュエータが設けられる。
エレベータ110は、略円柱形状に形成される。エレベータ110は、中心軸を中心として旋回自在にトップフレーム108に支持される。トップフレーム108には、旋回角度センサ122が設けられる。旋回角度センサ122は、例えばロータリーエンコーダである。旋回角度センサ122は、トップフレーム108に対するエレベータ110の旋回角度を計測する。
掻取部112は、エレベータ110の下端に設けられる。掻取部112は、エレベータ110の旋回に伴って、エレベータ110と一体的に旋回する。このように、掻取部112は、垂直運搬機構部として機能するトップフレーム108およびエレベータ110によって旋回自在に保持される。
掻取部112は、複数のバケツ112aおよびチェーン112bが設けられる。複数のバケツ112aは、チェーン112bに連続的に配置される。チェーン112bは、掻取部112、および、エレベータ110の内部に架け渡される。
掻取部112は、不図示のリンク機構が設けられる。リンク機構は、可動することにより、掻取部112の底部の長さを可変させる。これにより、掻取部112は、船庫5内の積荷6と接するバケツ112aの数を可変させる。掻取部112は、チェーン112bを回動させることにより、底部のバケツ112aによって船庫5内の積荷6を掻き取る。そして、積荷6を掻き取ったバケツ112aは、チェーン112bの回動に伴ってエレベータ110の上部に移動する。
ブームコンベア114は、ブーム106の下方に設けられる。ブームコンベア114は、バケツ112aによってエレベータ110の上部に移動された積荷6を外部に搬出させる。
このような構成でなるアンローダ装置100は、走行体102によってレール3の延在方向に移動し、船舶4との長手方向の相対位置関係を調整する。また、アンローダ装置100は、旋回体104によって、ブーム106、トップフレーム108、エレベータ110および掻取部112を旋回させ、船舶4との短手方向の相対位置関係を調整する。また、アンローダ装置100は、ブーム106によって、トップフレーム108、エレベータ110および掻取部112を鉛直方向に移動させ、船舶4との鉛直方向の相対位置関係を調整する。また、アンローダ装置100は、トップフレーム108によってエレベータ110および掻取部112を旋回させる。これにより、アンローダ装置100は、掻取部112を任意の位置および角度に移動させることができる。
ここで、船舶4は、複数の船庫5が設けられる。船庫5は、上部にハッチコーミング7が設けられる。ハッチコーミング7は、鉛直方向に所定高さの壁面を有している。また、ハッチコーミング7は、船庫5における中央付近の水平断面に比べて、開口面積が小さい。つまり、船庫5は、ハッチコーミング7により開口が窄まった形状をしている。なお、ハッチコーミング7の上方には、ハッチコーミング7を開閉するハッチカバー8が設けられる。
アンローダ装置100には、測距センサ130~136が設けられる。測距センサ130~136は、例えば、測距可能なレーザセンサであり、Velodyne社製のVLP-16、VLP-32、Quanergy社製のM8等が適用される。測距センサ130~136は、例えば円柱形状の本体部の側面に、軸方向に沿って離隔した16のレーザー照射部が設けられる。レーザー照射部は、360度回転可能に本体部に設けられる。レーザー照射部は、互いに隣接して配置されたレーザー照射部との軸方向のレーザーの発射角度の差が1~2.5度間隔で均等となるようにそれぞれ配置される。つまり、測距センサ130~136は、本体部の周方向に360度の範囲でレーザーを照射可能である。また、測距センサ130~136は、本体部の軸方向に直交する平面を基準として、±15度の範囲でレーザーを発射可能である。また、測距センサ130~136は、レーザーを受信する受信部が本体部に設けられる。
測距センサ130~136は、レーザー照射部を回転させながら所定角度毎にレーザーを照射する。測距センサ130~136は、複数のレーザー照射部から照射(投影)されて物体(計測点)で反射したレーザーを受信部でそれぞれ受信する。そして、測距センサ130~136は、レーザーが照射されてから受信するまでの時間に基づいて、物体までの距離を導出する。つまり、測距センサ130~136は、1つのレーザー照射部によって、1つの計測ライン上で複数の計測点までの距離をそれぞれ計測する。また、測距センサ130~136は、複数のレーザー照射部によって、複数の計測ライン上での複数の計測点までの距離をそれぞれ計測する。
図3および図4は、測距センサ130~132の計測範囲を説明する図である。図3は、アンローダ装置100を上方から見た際の測距センサ130~132の計測範囲を説明する図である。図4は、アンローダ装置100を側方から見た際の測距センサ130~132の計測範囲を説明する図である。図3および図4において、測距センサ130~132の計測範囲を一点鎖線で示す。
測距センサ130~132は、主に、ハッチコーミング7を検出する際に用いられる。測距センサ130~132は、図3および図4に示すように、トップフレーム108の側面に取り付けられる。具体的には、測距センサ130~132は、エレベータ110の中心軸を基準として、周方向に互いに120度離して配置される。また、測距センサ130~132は、本体部の中心軸が、エレベータ110の径方向に沿うように配置される。なお、測距センサ130~132は、鉛直方向の上半分が不図示のカバーで覆われる。
したがって、測距センサ130~132は、図3および図4に示すように、計測方向として、水平面よりも下方であって、トップフレーム108の側面に接する接線を基準として±15度の範囲に存在する物体までの距離を計測することができる。
図5および図6は、測距センサ133~136の計測範囲を説明する図である。図5は、掻取部112を上方から見た際の測距センサ133~136の計測範囲を説明する図である。なお、図5では、アンローダ装置100のうち、掻取部112のみを図示している。また、図5では、船舶4について、掻取部112と鉛直方向の同位置での水平断面を示している。図6は、アンローダ装置100を側方から見た際の測距センサ133~136の計測範囲を説明する図である。図5および図6において、測距センサ133、134の計測範囲を一点鎖線で示す。また、図5および図6において、測距センサ135、136の計測範囲を二点鎖線で示す。
測距センサ133~136は、主に、船庫5内の積荷6、および、船庫5の壁面(側壁および底面)を検出する際に用いられる。測距センサ133は、図5および図6に示すように、掻取部112の側面112cに取り付けられる。測距センサ133は、本体部の中心軸が、掻取部112の側面112cに直交するように配置される。測距センサ134は、掻取部112の側面112dに取り付けられる。測距センサ134は、本体部の中心軸が、掻取部112の側面112dに直交するように配置される。測距センサ133、134は、鉛直方向の一部が不図示のカバーで覆われる。
したがって、測距センサ133、134は、計測方向として、掻取部112の側面112cおよび側面112dの上方側の一部および下方側であって、掻取部112の側面112cおよび側面112dと平行な位置を基準として±15度の範囲に存在する物体の距離を計測することができる。つまり、測距センサ133、134は、掻取部112を中心に互いに反対側(進行方向の前後)であって、水平より下向きに計測するように取り付けられる。なお、本実施形態の測距センサ133、134は、掻取部112の底部が位置する平面上において、少なくとも掻取部112の底部の最大長さ以上の範囲を計測できるように配置される。
測距センサ135は、掻取部112の側面112cに取り付けられる。測距センサ135は、本体部の中心軸が、掻取部112の底面と直交するように配置される。測距センサ136は、掻取部112の側面112dに取り付けられる。測距センサ136は、本体部の中心軸が、掻取部112の底面と直交するように配置される。
したがって、測距センサ135、136は、計測方向として、掻取部112の外方であって、掻取部112の側面112cおよび側面112dに直交する水平面(あるいは、本体部の中心軸と直交する平面)を基準として±15度の範囲に存在する物体の距離を計測することができる。
測距センサ130~136は、物体までの距離を計測すると、物体までの距離を示す計測データをアンローダ制御部140(図7参照)に送信する。
図7は、アンローダ装置100の電気的な構成を説明する図である。図7に示すように、アンローダ装置100には、アンローダ制御部140、記憶部142および表示部144が設けられる。
アンローダ制御部140は、位置センサ116、旋回角度センサ118、傾斜角度センサ120、旋回角度センサ122、測距センサ130~136、記憶部142および表示部144と接続される。アンローダ制御部140は、CPU(中央処理装置)を含む半導体集積回路で構成される。アンローダ制御部140は、ROMからCPU自体を動作させるためのプログラムやパラメータ等を読み出す。そして、アンローダ制御部140は、ワークエリアとしてのRAMや他の電子回路と協働して、アンローダ装置100全体を管理および制御する。
また、アンローダ制御部140は、駆動制御部150、領域生成部152、エッジ検出部154、計測データ取得部156、座標変換導出部158、データ蓄積部160、ノイズ除去部162、形状導出部164、積荷データ蓄積部166、積荷高さ導出部168、表示制御部170として機能する。データ蓄積部160は、上部データ蓄積部180および下部データ蓄積部182としても機能する。形状導出部164は、底面形状導出部190および側壁形状導出部192としても機能する。駆動制御部150は、アンローダ装置100の駆動を制御する。なお、アンローダ制御部140の他の機能部の詳細については後述する。
記憶部142は、ハードディスク、不揮発性メモリ等の記憶媒体である。記憶部142は、アンローダ装置100の3次元モデルのデータを記憶する。アンローダ装置100の3次元モデルのデータは、エレベータ110および掻取部112の少なくとも外形形状が示されるボクセルデータである。また、記憶部142は、詳しくは後述するように、形状導出部164により導出された船庫5の3次元形状が示される3次元モデルのデータを記憶する。なお、3次元モデルのデータは、アンローダ装置100および船庫5の3次元形状が把握可能なデータであればよく、ポリゴンデータ、輪郭(直線)や点群等であってもそれらを併用してもよい。また、船庫5の3次元モデルのデータは、船舶4ごとに、その船舶4に設けられる船庫5の数分だけ記憶部142に記憶される。
表示部144は、LEDディスプレイ、有機ELディスプレイ等である。表示部144には、船庫5の3次元モデルに対してアンローダ装置100の3次元モデルが配置された画像が表示される。
図8は、船庫5の3次元形状を導出する処理の流れを示すフローチャートである。なお、船庫5の3次元形状を導出する処理は、アンローダ装置100によって積荷6を初めて掻き取る(まだ船庫5の形状が明確ではない)船庫5に対して行われることを前提としている。したがって、同一の船庫5に対して2回目以降(船庫5の形状が明確になった後)に積荷6が掻き取られるときには、船庫5の3次元形状を導出する処理が行われない。
図8に示すように、船庫5の3次元形状を導出する処理を開始すると、まず、領域生成部152は、ハッチコーミング座標系320(図9、図10参照)を基準とした(船庫5を基準とした)作業領域400(図11参照)を作成する領域作成処理を行う(S100)。作業領域は、仮想的に生成した3次元空間に稠密に小領域群が配置されたものである。本実施形態では、立方格子状に立方体の小領域(ボクセル)が配列された空間(所謂ボクセル空間)を用いる。
図9および図10は、アンローダ装置100の座標系を説明する図である。図9は、アンローダ装置100を上方から見た図である。図10は、アンローダ装置100を側方から見た図である。ここで、アンローダ装置100は、3つの座標系、すなわち、地上座標系300、トップフレーム座標系310およびハッチコーミング座標系320を有する。
図9および図10に示すように、地上座標系300は、予め設定されたアンローダ装置100の初期位置を原点としている。地上座標系300は、レール3の延在方向および鉛直方向に直交する方向をXa軸方向とする。地上座標系300は、レール3の延在方向をYa軸方向とする。地上座標系300は、鉛直方向をZa軸方向とする。
トップフレーム座標系310は、エレベータ110の中心軸上であって、鉛直方向におけるトップフレーム108の下端を原点としている。トップフレーム座標系310は、ブーム106の下面の延在方向であって、ブーム106に沿った方向をXb軸方向とする。トップフレーム座標系310は、ブーム106の下面の延在方向であって、ブーム106に直交する方向をYb軸方向とする。トップフレーム座標系310は、エレベータ110の延在方向をZb軸方向とする。
ハッチコーミング座標系320は、船舶4のハッチコーミング7における船尾側の壁面の中心位置であって、ハッチコーミング7の上端を原点(特定位置)としている。ハッチコーミング座標系320は、船舶4の長手方向、つまり、船舶4に沿ったハッチコーミング7の延在方向をXc軸方向とする。ハッチコーミング座標系320は、船舶4の短手方向(幅方向)をYc軸方向とする。ハッチコーミング座標系320は、ハッチコーミング7の上端面に直交する上方向をZc軸方向とする。
図11は、複数の小領域402で構成される作業領域400を説明する図である。なお、図11では、船庫5を一点鎖線で図示している。図11に示すように、領域生成部152は、ハッチコーミング座標系320において、原点Oを基準として3次元に展開された複数の小領域(ボクセル)402を配置することで作業領域400を生成する。作業領域400は、複数の小領域402が、Xc軸方向、Yc軸方向およびZc軸方向に並んで配置される。より具体的には、領域生成部152は、Xc軸方向およびYc軸方向には、正方向および負方向の両方に小領域402を配置し、Zc軸方向には負方向にのみ小領域402を配置する。小領域402は、例えば1辺が0.2~1mの直方体である。
作業領域400は、全体として船庫5よりも大きければよく、小領域402の数および1辺の長さは適宜選択可能である。また、作業領域400は、全体としてZc軸方向を軸中心とした円筒形状であってもよく、その場合、小領域402のXY平面の断面が扇型となるように形成すればよい。
なお、領域生成部152は、同一の作業領域400を2つ作成する。また、小領域402には、詳しくは後述するように、それぞれ、計測点の数を示す投票回数、Xc軸方向における計測点の座標の総和、Yc軸方向における計測点の座標の総和、Zc軸方向における計測点の座標の総和、測距センサ133または134までの最小距離、計測点から測距センサ133または134に向かう計測方向ベクトルといった統計データが対応付けて記憶される。なお、統計データとしてここに記載される項目は一例であり、例えば分散値等の他の項目を蓄積してもよい。
図8に戻り、エッジ検出部154は、記憶部142に記憶されたハッチコーミング7の3次元モデル情報を記憶部142から読み出す(S102)。なお、ハッチコーミング7の3次元モデル情報は、ハッチコーミング座標系320によって表されるハッチコーミング7の3次元モデルである。ハッチコーミング7の3次元モデル情報は、掻取部112を初めて船庫5内に投入する際に、測距センサ130~132によって計測された計測点の計測データを用いて作成されてもよい。また、ハッチコーミング7の3次元モデル情報は、他の計測器により計測された計測データを用いて作成されてもよい。また、ハッチコーミング7の3次元モデル情報は、ハッチコーミング7の図面に基づいて作成されてもよい。いずれにしても、ハッチコーミング7の3次元モデル情報は、S102の処理が行われるまでに作成され記憶部142に記憶されていればよい。
続いて、計測データ取得部156は、測距センサ130~136で計測された計測点の計測データを随時取得する(S104)。なお、計測データ取得部156は、掻取部112が船庫5内の積荷6の掻き取り作業を開始してから、全ての積荷6を掻き取り終えるまでの間(例えば10時間)、各測距センサ130~136から計測データを1秒に1~5回の頻度で定期的に取得する。
そして、計測データ取得部156により測距センサ130~136から計測データが取得される度に、座標変換導出部158は、トップフレーム座標系310をハッチコーミング座標系320に変換するための変換パラメータを導出する座標変換処理を行う(S106)。
ここで、地上座標系300、トップフレーム座標系310は、アンローダ装置100の形状、および、アンローダ装置100の移動に基づいて変換が可能である。
例えば、測距センサ133~136は、掻取部112に取り付けられているため、掻取部112に対する位置は予め既知となっている。そして、エレベータ110の旋回角度に基づいて、トップフレーム座標系310の位置を導出することができる。
また、測距センサ130~132は、トップフレーム108に取り付けられているため、トップフレーム座標系310の位置が予め既知となっている。
ここで、トップフレーム座標系310と、ハッチコーミング座標系320とは、アンローダ装置100および船舶4の移動に伴って相対的な位置関係が変化する。例えば、船舶4が揺れたり、潮の満ち引きや積荷6の積載量によって船舶4が鉛直方向に移動したりすることで、トップフレーム座標系310と、ハッチコーミング座標系320とは、相対的な位置関係が変化する。
そこで、エッジ検出部154は、測距センサ130~132により測定される計測点の計測データに基づいてハッチコーミング7の上端のエッジを検出する。そして、座標変換導出部158は、検出したハッチコーミング7の上端のエッジに基づいて、トップフレーム座標系310をハッチコーミング座標系320に変換するための変換パラメータを導出する。つまり、ここでは、作業領域400において基準点となるハッチコーミング7と、測距センサ133あるいは134との位置関係を導出する。そして、その位置関係は、作業領域400内における小領域402への測距センサ133、134で計測される計測点の反映に用いる。
まず、エッジ検出部154は、測距センサ130~132の位置、および、測距センサ130~132により計測された計測点までの距離に基づいて、トップフレーム座標系310における計測点の3次元位置を導出する。
図12は、測距センサ130~132の計測点を説明する図である。なお、図12では、ハッチコーミング7上の測距センサ130~132の計測範囲を太線で示す。図12に示すように、測距センサ130~132は、水平面よりも下方であって、トップフレーム108に接する平面を基準として測距センサ130~132から±15度の範囲に存在する物体までの距離を計測する。
したがって、測距センサ130~132は、測距センサ130~132の鉛直下方(エレベータ110の回転中心)を基準として、前方側と後方側とで異なるハッチコーミング7のエッジが計測範囲となる。なお、前方側とは、1回の計測において(時系列の)前半に計測された計測範囲をいう。また、後方側とは、1回の計測において(時系列の)後半に計測された計測範囲をいう。
そこで、測距センサ130~132で計測された測定点を、測距センサ130~132の鉛直下方を基準として、前方側および後方側の2つに分割する。
図13は、エッジ点を検出する様子を示す図である。なお、図13において、計測点を黒丸で示す。図13では、測距センサ130~132の1つのレーザー照射部に照射されたレーザーによって計測された計測点を図示している。
エッジ検出部154は、1つのレーザー照射部により照射されて計測された1つの計測ラインの計測点群毎(前方側、後方側毎)に以下の処理を行う。エッジ検出部154は、1つのレーザー照射部により照射されて計測された各計測点のベクトル(方向)を導出する。なお、計測点のベクトルは、連続して計測される計測点のうち、1の計測点に対する、次に計測される計測点の方向(ベクトル)を、1の計測点のベクトルとして導出する。
そして、エッジ検出部154は、計測点のベクトルが鉛直方向とされる計測点を抽出する。これは、測距センサ130~132により計測されるハッチコーミング7の壁面(側面)が概ね鉛直方向に延在しているので、ハッチコーミング7の壁面に計測点がある場合、計測点のベクトルが鉛直方向となるからである。
そして、エッジ検出部154は、抽出された計測点のうち、連続して抽出された計測点が複数ある場合、鉛直方向における最も上方の点を抽出する。これは、ハッチコーミング7の上端のエッジを検出するため、連続して計測された計測点群においては、最も上方の点が、ハッチコーミング7の上端のエッジである可能性があるからである。
続いて、エッジ検出部154は、抽出された計測点のうち、トップフレーム座標系310におけるXb軸方向およびYb軸方向における最も原点に近い計測点を抽出する。つまり、エッジ検出部154は、エレベータ110の中心軸に最も近い計測点を抽出する。これは、ハッチコーミング7が船舶4の各構造物のうち、最もエレベータ110に近い位置にあるからである。
そして、エッジ検出部154は、抽出された計測点に対して、トップフレーム座標系310におけるXb軸方向およびYb軸方向の所定の範囲(例えば数十cmの範囲)に存在する計測点を再抽出する。ここでは、ハッチコーミング7上の計測点を抽出することになる。
そして、エッジ検出部154は、再抽出した計測点、つまり、ハッチコーミング7上の計測点のうち、鉛直方向における最も上方の計測点をハッチコーミング7のエッジ点として抽出する。
エッジ検出部154は、測距センサ130~132の1つのレーザー照射部により照射されて計測された計測点群毎に、前方側および後方側のエッジ点を抽出する。
そして、全てのエッジ点が抽出されると、エッジ検出部154は、ハッチコーミング7のエッジの直線を検出する。具体的には、エッジ検出部154は、測距センサ130の前方側でそれぞれ抽出されたエッジ点を1つのグループとする。同様に、エッジ検出部154は、測距センサ130の後方側でそれぞれ抽出されたエッジ点を1つのグループとする。さらに、エッジ検出部154は、測距センサ131、132の前方側および後方側でそれぞれ抽出されたエッジ点をそれぞれグループとする。
ここで、図12に示したように、測距センサ130~132の前方側および後方側でそれぞれ計測されるハッチコーミング7の上端のエッジの直線は、ハッチコーミング7の角を含む場合、2本計測されることになる。
そこで、エッジ検出部154は、グループごとに、抽出されたエッジ点間の線分のうち、最も多くの類似の線分をもつものを候補ベクトルとして導出する。そして、エッジ検出部154は、候補ベクトルに対して予め設定された範囲以内に存在するエッジ点を抽出する。そして、エッジ検出部154は、抽出したエッジ点を用いて直線を再計算する。
次に、エッジ検出部154は、抽出されなかったエッジ点を用いて上記した処理を繰り返し行う。ただし、抽出されたエッジ点の数が、予め設定された閾値未満である場合、直線を導出しない。これにより、ハッチコーミング7の角を含む場合であっても、2本のエッジの直線を導出することができる。
エッジ検出部154は、グループごとに、上記した処理を繰り返し行うことで、エッジの直線を導出する。
このように、エッジの直線は、1箇所で最大2個検出されるため、最大で12本検出されることになる。
そして、エッジ検出部154は、検出された直線のうち、各直線間におけるなす角を導出する。そして、エッジ検出部154は、なす角が予め決められた閾値以下である場合、同一の直線であるとして統合する。具体的には、なす角が予め決められた閾値以下である直線を構成するエッジ点を用いて、最小二乗近似により直線を再導出する。
続いて、エッジ検出部154は、検出したエッジの直線から、各辺の3次元方向ベクトル、各辺の3次元重心座標、各辺の長さ、各辺の端点の座標を含むエッジ辺情報を導出する。このように、船舶4の上方に設けられた測距センサ130~132を用いて、船庫5の上部に設けられたハッチコーミング7のエッジ辺情報を導出することで、船庫5の位置(姿勢)を精度よく容易に導出することが可能となる。
次に、座標変換導出部158は、S102で読み込んだ3次元モデル情報と、トップフレーム座標系310で表現されるエッジ辺情報(検出結果)とに基づいて、トップフレーム座標系310とハッチコーミング座標系320との変換パラメータを導出する座標変換処理を行う(図8のS106)。
座標変換導出部158は、ブーム106の旋回角度だけ、検出したハッチコーミング7のエッジの直線の向きを回転させることで大まかな補正を行う。また、座標変換導出部158は、検出したハッチコーミング7のエッジの直線と、3次元形状情報におけるハッチコーミング7の上端の辺とを、エッジの向きが最も近い直線同士を対応付ける。これにより、正しい対応付けがなされるため、安定して正解に近い解の変換パラメータが得られる。なお、対応付けにおいては、検出したハッチコーミング7のエッジの直線を3次元点群で表し、その3次元点群と、3次元モデル情報におけるハッチコーミング7の上端の辺との最短距離の平均値が近いもの同士を対応付けてもよい。また、エッジの向きおよび最短距離の平均値の双方を考慮して対応付けてもよい。
そして、座標変換導出部158は、変換パラメータである、Xb軸、Yb軸、Zb軸回りの回転角度α、β、γと、進行ベクトルt=(tx,ty,tz)とを例えばLM法により求める。LM法では、例えばエッジの直線を構成するエッジ点と、3次元形状情報に基づくハッチコーミング7の上端の辺との距離の差の二乗和を評価関数とし、その評価関数を最小にする変換パラメータを求める。具体的には、エッジの直線を構成するエッジ点と3次元形状情報に基づくハッチコーミング7の上端の辺との距離の合計、または、エッジの直線と3次元形状情報に基づくハッチコーミング7の上端の辺とにより形成される曲面の面積が最小となるように変換パラメータを求める。なお、変換パラメータを求める手法は、LM法に限らず、最急降下法、ニュートン法など他の手法であってもよい。
このようにして、座標変換導出部158は、トップフレーム座標系310をハッチコーミング座標系320に変換するための変換パラメータを導出する。
これにより、アンローダ装置100は、掻取部112に設けられた測距センサ133~136によって計測された計測点の3次元位置をハッチコーミング座標系320で表現することが可能となる。したがって、測距センサ133~136は、船庫5の計測点におけるハッチコーミング座標系320の3次元位置(位置情報)に関する計測データを計測しているとも言える。また、ハッチコーミング座標系320で表現することで、アンローダ装置100に対する船舶4の揺れ、位置の変化の影響を低減することができる。
データ蓄積部160は、測距センサ133および134により計測された計測点の3次元位置に基づいて、作業領域400に形成された小領域402に対して計測点の統計データを蓄積していく(図8のS108、S110)。
図14は、測距センサ133で計測される計測点を上部および下部に分割する様子を説明する図である。なお、図14において、測距センサ133の計測範囲を一点鎖線で示す。上記したように、測距センサ133は、鉛直方向の一部が不図示のカバーで覆われる。したがって、図14に示すように、測距センサ133は、エレベータ110の延在方向に直交する平面S1を基準として、相対的に上部(エレベータ110側)と、相対的に下部(掻取部112の底面側)とに存在する物体(計測点)までの距離を計測可能である。同様に、測距センサ134は、エレベータ110の延在方向に直交する平面S1を基準として、上部と下部とに存在する物体(計測点)までの距離を計測可能である。なお、上部および下部を分ける基準は、積荷6の表面が計測範囲に入らない高さで設定すればよい。
そして、掻取部112が船庫5内に挿入されている場合、測距センサ133および134は、主に、上部の計測点によって船庫5の側壁、船庫5内の構造物(これらを合わせて船庫5の側部とも呼ぶ)までの距離を計測し、下部の計測点によって船庫5の底面、船庫5の側壁、船庫5内の構造物、および、積荷6(これらを合わせて船庫5の底部とも呼ぶ)までの距離を計測することになる。
そこで、データ蓄積部160は、測距センサ133および134により計測された計測点の計測データを、上部の計測点の計測データと下部の計測点の計測データとに分けて、異なる作業領域400に形成された小領域402に対して統計データを蓄積していく。
上部データ蓄積部180は、測距センサ133および134により計測された計測点のうち、上部の計測点のトップフレーム座標系310の3次元位置を導出する。また、上部データ蓄積部180は、トップフレーム座標系310の3次元位置を、変換パラメータを用いてハッチコーミング座標系320の3次元位置に変換する。
そして、上部データ蓄積部180は、上部用の作業領域400を用いて、ハッチコーミング座標系320における計測点の3次元位置に対応する小領域402に統計データを蓄積する上部計測データ蓄積処理を行う(図8のS108)。具体的には、1点の計測データを受けて、上部データ蓄積部180は、対応する小領域402の投票回数(計測点の数)を1加算する。また、上部データ蓄積部180は、計測点のXc軸方向の位置(座標)を、Xc軸方向の座標の総和に加算する。また、上部データ蓄積部180は、計測点のYc軸方向の位置(座標)を、Yc軸方向の座標の総和に加算する。また、上部データ蓄積部180は、計測点のZc軸方向の位置(座標)を、Zc軸方向の総和に加算する。1回の計測で複数点の計測が行われるため、1回の計測で小領域402に複数回の加算が行われることもある。ここで、Xc軸方向の座標の総和を投票回数で除算することで、小領域402に含まれる計測点のXc軸方向の重心位置が導出可能である。したがって、投票回数、Xc軸方向の座標の総和、Yc軸方向の座標の総和、計測点のZc軸方向の位置(座標)を蓄積していくことで、小領域402の3次元の重心位置が導出可能となる。
また、上部データ蓄積部180は、計測点と、その計測点を計測したときの測距センサ133または134の位置との間の距離を導出する。なお、測距センサ133または134のトップフレーム座標系310の3次元位置は、変換パラメータを用いてハッチコーミング座標系320に変換される。なお、ここでは、ハッチコーミング座標系320に変換せずに、計測点と、その計測点を計測したときの測距センサ133または134の位置との間の距離を導出するようにしてもよい。
そして、上部データ蓄積部180は、導出した距離と、その小領域402について保持されている最小距離とを比較し、導出した距離の方が小さい値である場合、最小距離を、導出した距離に更新する。つまり、小領域402内に含まれる計測点のうち、測距センサ133または134までの距離が最も近い計測点と、その計測点が計測されたときの測距センサ133または134の位置との間の距離が最小距離として保持されることになる。
また、上部データ蓄積部180は、最小距離が更新された場合、その計測点から測距センサ133または134に向かうベクトルを導出し、導出したベクトルを計測方向ベクトルとして更新する。ここでは、最小距離となる計測点と、その計測点が測定されたときの測距センサ133または134の位置とのベクトルが計測方向ベクトルとして保持されることになる。
上部データ蓄積部180は、測距センサ133または134によって計測データが取得される度に、上部に属する全ての計測点について、対応する小領域402に統計データを蓄積していく。
同様に、下部データ蓄積部182は、測距センサ133および134により計測された計測点のうち、下部の計測点のトップフレーム座標系310の3次元位置を導出する。また、下部データ蓄積部182は、トップフレーム座標系310の3次元位置を、変換パラメータを用いてハッチコーミング座標系320の3次元位置に変換する。
そして、下部データ蓄積部182は、下部用の作業領域400を用いて、ハッチコーミング座標系320における計測点の3次元位置に対応する小領域402に統計データを蓄積する下部計測データ蓄積処理を行う(図8のS110)。具体的には、下部データ蓄積部182は、対応する小領域402の投票回数(計測点の数)を1加算する。また、下部データ蓄積部182は、計測点のXc軸方向の位置(座標)を、Xc軸方向の座標の総和に加算する。また、下部データ蓄積部182は、計測点のYc軸方向の位置(座標)を、Yc軸方向の座標の総和に加算する。また、下部データ蓄積部182は、計測点のZc軸方向の位置(座標)を、Zc軸方向の総和に加算する。
また、下部データ蓄積部182は、計測点と、その計測点が計測されたときの測距センサ133または134の位置との間の距離を導出する。そして、下部データ蓄積部182は、導出した距離と、その小領域402について蓄積されている最小距離とを比較し、導出した距離の方が小さい値である場合、最小距離を、導出した距離に更新する。なお、ここでは、ハッチコーミング座標系320に変換せずに、計測点と、その計測点を計測したときの測距センサ133または134の位置との間の距離を導出するようにしてもよい。
また、下部データ蓄積部182は、最小距離が更新された場合、その計測点から測距センサ133または134に向かうベクトルを導出し、導出したベクトルを計測方向ベクトルとして更新する。
下部データ蓄積部182は、アンローダ装置100によって船庫5内の積荷6の掻き取り作業が終了する直前の数十分~数時間の間に、測距センサ133または134によって計測された計測データが取得される度に、下部に属する全ての計測点について、対応する小領域402に統計データを蓄積していく。このように、下部の作業領域400に対しては、積荷6の掻き取り作業が終了する直前の数分間の間に取得された下部の計測点について統計データが蓄積される。これにより、積荷6が船庫5内にほとんど残っていないタイミングでの統計データが蓄積されることになる。したがって、下記で説明する船庫5の底面の形状を導出する際に、積荷6に対応する計測点をできる限り除外することができ、精度良く船庫5の底面の形状を導出することが可能となる。これにより、アンローダ装置100によって同一の船庫5内の積荷6を2回目以降に荷揚げする際に、導出した船庫5の底面の形状を用いることで、作業者は船庫5の底面の形状を容易に把握することができる。
データ蓄積部160は、全ての計測が終了したかを判定する(S112)。ここでは、例えば、掻取部112が船庫5から取り除かれる程度の上昇を確認したかによって行われる。ただし、作業者が所定の操作を行うことで全ての計測が終了したかを判定するようにしてもよい。
そして、全ての計測が終了したと判定した場合(S112のYES)、S114の処理に移る。一方、全ての計測が終了したと判定していない場合(S112のNO)、S104の処理に移り、全ての計測が終了するまで、S104~S110の処理を繰り返し行う。
全ての計測が終了したと判定した場合(S112のYES)、ノイズ除去部162は、ノイズ除去処理を行い(S114)、ノイズとされる小領域402に対して、船庫5の形状として抽出しないことを示す不採用フラグを立てる。ここで、ノイズ除去部162は、2つのノイズ除去処理を行う。
1つ目のノイズ除去処理では、ノイズ除去部162は、Zc軸方向の高さが同一(同一のXcYc平面)の小領域402について、投票頻度が低い(計測点が少ない)小領域402に不採用フラグを立てる。具体的には、ノイズ除去部162は、Zc軸方向が同じ小領域402の全ての投票回数を積算する。そして、ノイズ除去部162は、Zc軸方向が同じ小領域402の投票回数が、積算された値の0.01%未満である小領域402に不採用フラグを立てる。これにより、投票回数が極端に少ない小領域402が船庫5の形状として採用されることを抑制することができる。
2つ目のノイズ除去処理では、ノイズ除去部162は、1の小領域402に隣接する26の小領域402(3×3×3=27のキューブにおける中央の小領域402以外の小領域402)について投票回数が0回であった場合、1の小領域402に不採用フラグを立てる。これは、雨やチリなどの浮遊物が計測点として計測された場合に、その小領域402が船庫5の形状として採用されることを防止するためである。
ノイズ除去部162によってノイズ除去処理が行われると、形状導出部164は、船庫5の3次元形状を導出する(図8のS116、S118)。底面形状導出部190は、主に下部用の作業領域400(底面位置に所定の閾値を加算した高さ未満の小領域402)を用いて、船庫5の底面の3次元形状を導出する底面形状導出処理を行う(図8のS116)。側壁形状導出部192は、上部用の作業領域400(下部用の作業領域400における底面位置に所定の閾値を加算した高さ以上の小領域402を含む)を用いて、船庫5の側壁の3次元形状を導出する側壁形状導出処理を行う(図8のS118)。
図15は、底面形状導出処理を説明する図である。なお、図15では、計測点を黒丸で示し、抽出される小領域402を太線で示す。図15に示すように、底面形状導出部190は、下部用の作業領域400において、不採用フラグが立っていない小領域402の中から、Zc軸方向(上下方向)に並んだ小領域402のうち、Zc軸の値が最も小さい小領域402を抽出する。なお、小領域402において、統計データが一度も蓄積されていない場合、つまり、計測点が1個も含まれていない場合、その小領域402に対しては不採用フラグが立てられており、ここで抽出されることはない。
上記した下部計測データ蓄積処理では、船庫5内に積荷6が残っている状態での計測点についても各小領域402の統計データが蓄積される。このような場合、積荷6に対する計測点についても統計データに蓄積される。一方で、積荷6が減っていき、船庫5の底面が露出すると、船庫5の底面に対する計測点についての統計データが蓄積される。そこで、船庫5の底面が積荷6よりもZc軸方向の下方に位置することを利用し、Zc軸方向に並んだ小領域402のうち、Zc軸の値が最も小さい小領域402を抽出することで、船庫5の底面に対応する小領域402を抽出することができる。
そして、底面形状導出部190は、抽出した小領域402のZc軸方向の重心位置を代表高さとする。底面形状導出部190は、XcYc平面上の全ての位置の小領域402を抽出するとともに代表高さを導出する。そして、底面形状導出部190は、Zc軸方向に所定間隔(例えば、0.2~1m)で範囲を区切り、区切られた範囲毎に、代表高さが含まれる小領域402の数を導出する。なお、Zc軸方向の間隔と、XcYc方向の間隔は、異なっていてもよい。
続いて、底面形状導出部190は、代表高さが含まれる小領域402の数が最も多い範囲と、最も多い数の50%以上の数が導出された範囲とに含まれる小領域402の代表高さの平均を船庫5の底面の高さとして導出する。ここで、船庫5の底面は、Zc軸方向に常に一定ではなく、傾斜したり、一部が突出または窪んでいたりしている場合もある。そこで、代表高さが含まれる小領域402の数が最も多い範囲が底面の高さとして確からしいが、その数の50%以上の数が導出される範囲も抽出することで、船庫5の平均的な底面の高さを導出することができる。
続いて、底面形状導出部190は、XcYc平面上で同一の小領域402毎に、船庫5の底面の高さにある小領域402と、その小領域402とZc軸方向に隣接する小領域402との統計データを抽出する。そして、底面形状導出部190は、抽出した統計データについて項目ごとに加算し、3つの小領域402の重心位置を底面位置として導出する。ここでは、複数の小領域402に船庫5の底面が跨っている可能性があることを考慮し、Zc軸方向に隣接する小領域402についても抽出している。これにより、底面位置をより精度良く導出することができる。
底面形状導出部190は、XcYc平面上の全ての小領域402について、同様に、底面位置を導出する。これにより、底面形状導出部190は、複数の底面位置(重心位置)の点群により、船庫5の底面の形状(底部の形状)を導出したことになる。
図16は、側壁に対応する小領域402を導出する様子を説明する図である。側壁形状導出部192は、上部用の作業領域400の小領域402、および、下部用の作業領域400における底面位置に所定の閾値を加算した高さ以上の小領域402のうち、不採用フラグが立っていない小領域402の中から、底面形状導出部190により導出された底面の高さに対して所定の値を加算したZc軸方向の位置以上の小領域402を抽出する。
そして、側壁形状導出部192は、図16に示すように、任意の1の小領域402(図中、中央の小領域402)のXcYc平面上の周囲8個の小領域402を抽出する。そして、側壁形状導出部192は、8個の小領域402の中から、1の小領域402の計測方向ベクトルに対応する小領域402を比較対象小領域(図中、太線の小領域402)として抽出する。具体的には、側壁形状導出部192は、1の小領域402から8個の小領域402それぞれまでのベクトルのうち、計測方向ベクトルに最も近い(角度差が最も小さい)ベクトルに対応する小領域402を比較対象小領域として抽出する。その後、側壁形状導出部192は、1の小領域402の投票回数と、比較対象領域の投票回数とを比較する。また、側壁形状導出部192は、比較した結果、投票回数が少ない小領域402に対して不採用フラグを立てる。
側壁形状導出部192は、全ての小領域402に対して、同様に、比較対象領域の抽出、投票回数の比較、および、不採用フラグを立てる処理を実行する。
そして、側壁形状導出部192は、不採用フラグが立っていない、つまり、投票回数が多いと判定された小領域402の重心位置を側壁位置として導出する。換言すれば、側壁形状導出部192は、計測方向ベクトルに配列された小領域402間の統計データを比較して側壁(表面)に対応する小領域402を特定する。これにより、側壁形状導出部192は、複数の側壁位置(重心位置)の点群により、船庫5の側壁の形状(側部の形状)を導出したことになる。
ここで、計測方向ベクトルは、測距センサ133または134との距離が最小である計測点が計測されたときの方向を示すものである。したがって、計測方向ベクトルは、船庫5の中心方向を示すものであると言える。そして、計測方向ベクトルに沿った方向には、計測誤差によって計測点の数が異なる複数の小領域402が並ぶことになる。
そこで、1の小領域402と、計測方向に対応する比較対象小領域との投票回数を比較することで、側壁形状導出部192は、船庫5として最も確からしい位置の小領域402のみを残す(不採用フラグを立てない)ようにすることができる。これにより、側壁形状導出部192は、精度良く船庫5の側壁の形状を導出することができる。
形状導出部164は、船庫5の複数の底面位置(重心位置)の点群、および、複数の側壁位置(重心位置)の点群を導出すると、これら複数の底面位置(重心位置)の点群、および、複数の側壁位置(重心位置)の点群に基づいて、船庫5の3次元モデルを生成し、記憶部142に記憶する。なお、3次元モデルの生成方法は、例えば、底面位置および側壁位置それぞれを中心としたボクセルを配置することで3次元モデルを生成したり、隣接する底面位置および側壁位置を互いに結ぶ曲面を導き出すことで3次元モデルを生成したりしてもよく、その方法は問わない。
以上のように、アンローダ装置100は、船庫5を基準とした作業領域400を生成し、作業領域400の小領域402に対して計測点の統計データを蓄積するようにした。これにより、アンローダ装置100は、測距センサ133、134が船庫5に対して移動している場合であっても、常に船庫5を基準として統計データを蓄積することができる。かくして、アンローダ装置100は、統計データの蓄積精度を高くすることができ、精度良く船庫5の3次元形状を導出することができる。
また、アンローダ装置100は、同一の船庫5に対して積荷6の掻き取りを行う場合、船庫5の3次元モデルを表示部144に表示する。これにより、アンローダ装置100では、船庫5の形状を作業者に容易に把握させることができる。
また、アンローダ装置100は、測距センサ133、134で計測された計測点を上部と下部とに分けて統計データを蓄積していくようにした。また、アンローダ装置100は、垂直方向に延在する船庫5の側壁の形状は上部の統計データを用いて導出し、水平方向に延在する船庫5の底面の形状は下部の統計データを用いて導出した。これにより、アンローダ装置100は、船庫5の側壁および底面の形状をそれぞれ精度良く導出することができる。
図17は、積荷6の表面高さを表示する処理の流れを示すフローチャートである。図17に示すように、積荷6の表面高さを表示する処理を開始すると、まず、領域生成部152は、ハッチコーミング座標系320(図9、図10参照)を基準とした(船庫5を基準とした)作業領域400(図11参照)を作成する領域作成処理を行う(S200)。なお、ここでは、S100と同一の処理が行われる。
積荷データ蓄積部166は、記憶部142に記憶された船庫5の3次元モデルを読み込む(S202)。ここでは、上記した船庫5の3次元形状を導出する処理において記憶部142に記憶された3次元モデルが読み出される。なお、船庫5の3次元モデルは、他の計測器により計測された計測データを用いて作成されてもよい。また、船庫5の3次元モデルは、ハッチコーミング7の図面に基づいて作成されてもよい。いずれにしても、船庫5の3次元モデルは、S202の処理が行われるまでに作成され、記憶部142に記憶されていればよい。なお、船庫5の3次元モデルは、読み出されなくてもよい。
続いて、計測データ取得部156は、測距センサ130~136で計測された計測点の計測データを随時取得する(S204)。なお、計測データ取得部156は、掻取部112が船庫5内の積荷6の掻き取り作業を開始してから、全ての積荷6を掻き取り終えるまでの間(例えば10時間)、各測距センサ130~136から計測データを例えば1秒に2回~5回の頻度で定期的に取得する。
計測データ取得部156により計測点の計測データが取得されると、座標変換導出部158は、トップフレーム座標系310をハッチコーミング座標系320に変換するための変換パラメータを導出する座標変換処理を行う(S206)。なお、ここでは、図8で示した座標変換処理S106と同一の処理が行われる。
積荷データ蓄積部166は、測距センサ133および134により計測された計測点の3次元位置(計測データ)に基づいて、作業領域400に形成された小領域402に対して計測点の統計データを蓄積していく(S208)。具体的には、積荷データ蓄積部166は、測距センサ133および134により計測された計測点のうち、下部の計測点のトップフレーム座標系310の3次元位置を導出する。また、積荷データ蓄積部166は、トップフレーム座標系310の3次元位置を、変換パラメータを用いてハッチコーミング座標系320の3次元位置に変換する。
そして、積荷データ蓄積部166は、ハッチコーミング座標系320における計測点の3次元位置に対応する小領域402に統計データを蓄積する。より詳細には、積荷データ蓄積部166は、対応する小領域402の投票回数(計測点の数)を1加算する。また、下部データ蓄積部182は、計測点のXc軸方向の位置(座標)を、Xc軸方向の座標の総和に加算する。また、下部データ蓄積部182は、計測点のYc軸方向の位置(座標)を、Yc軸方向の座標の総和に加算する。また、下部データ蓄積部182は、計測点のZc軸方向の位置(座標)を、Zc軸方向の総和に加算する。
そして、所定期間(例えば5秒)に亘って積荷データ蓄積部166により小領域402に統計データが蓄積されると、ノイズ除去部162は、ノイズ除去処理を行い(S210)、ノイズとされる小領域402に対して、積荷6の表面形状として抽出しないことを示す不採用フラグを立てる。なお、ここでは、S114と同一の処理が行われる。
ノイズ除去部162によりノイズ除去処理が行われると、積荷高さ導出部168は、積荷6の表面高さを導出する積荷表面高さ導出処理を行う(S212)。
図18は、積荷表面高さ導出処理S212を説明する図である。なお、図18においては、図中左側に船庫5の積荷6の表面高さを示し、図中右側に同一のXcYc平面上におけるZc軸方向に並んだ小領域402を示す。また、図18では、時刻T1での積荷6の表面高さを実線で示し、時刻T2での積荷6の表面高さを破線で示し、時刻T3での積荷6の表面高さを一点鎖線で示す。また、図18では、時刻T1までに計測された計測点を黒丸で示し、時刻T1から時刻T2までに計測された計測点を白丸で示し、時刻T2から時刻T3までに計測された計測点を三角で示す。なお、時刻T2は、時刻T1よりも時間が経過している。また、時刻T3は、時刻T2よりも時間が経過している。
時刻T2における船庫5内の積荷6は、アンローダ装置100によって掻き取られているため、時刻T1よりも少なくなっている。同様に、時刻T3における船庫5内の積荷6は、アンローダ装置100によって掻き取られているため、時刻T2よりも少なくなっている。したがって、時刻T2における船庫5内の積荷6の表面高さは、時刻T1よりも低い。また、時刻T3における船庫5内の積荷6の表面高さは、時刻T2よりも低い。
一方、積荷データ蓄積部166は、掻取部112が船庫5内の積荷6の掻き取り作業を開始してから、小領域402(作業領域400)に統計データを随時蓄積している。したがって、小領域402(作業領域400)に蓄積される小領域の統計データは、時間が経過するほど増加する。時刻T1では、図18中、黒丸で示す計測点の統計データが小領域402に蓄積される。時刻T2では、図18中、黒丸および白丸で示す計測点の統計データが小領域402に蓄積される。時刻T3では、図18中、黒丸、白丸および三角で示す計測点の統計データが蓄積される。
ここで、測距センサ133、134は、積荷6に向かってレーザーを発射しているため、積荷6の表面までの距離を計測することになる(積荷6の表面に計測点が存在することになる)。そして、アンローダ装置100によって積荷6が掻き取られているため、積荷6の表面高さは、時間の経過とともに低下していく。したがって、測距センサ133、134により計測される計測点も、時間の経過とともにZc軸方向の値が小さくなっていく。
そして、時刻T1、T2、T3において、計測点が蓄積されている小領域402のうち、Zc軸方向の値が最も小さい小領域402に対応する高さが、積荷6の表面高さとなる。
そこで、積荷高さ導出部168は、XcYc平面上が同一の小領域402毎に、不採用フラグが立っていない小領域402の中から、Zc軸方向(上下方向)に並んだ小領域402のうち、Zc軸方向の値が最も小さい小領域402を抽出する。なお、小領域402において、統計データが一度も蓄積されていない場合、つまり、計測点が1個も含まれていない場合、その小領域402に対しては不採用フラグが立てられており、ここで抽出されることはない。したがって、Zc軸方向の値が最も小さい小領域402が、その時点の積荷6の表面高さに相当する。
また、積荷高さ導出部168は、XcYc平面上が同一の小領域402毎に、抽出した小領域402と、その小領域402とZc軸方向に隣接する小領域402との統計データを抽出する。そして、積荷高さ導出部168は、抽出した統計データについて項目ごとに加算し、3つの小領域402の重心位置を積荷高さとして導出する。ここでは、複数の小領域402に積荷6の表面が跨っている可能性があることを考慮し、Zc軸方向に隣接する小領域402についても抽出している。これにより、積荷6の表面高さをより精度良く導出することができる。
図19は、積荷高さ表示画像500の一例を説明する図である。積荷高さ導出部168により積荷高さが導出されると、表示制御部170は、図19に示す積荷高さ表示画像500を表示部144に表示する(S214)。
積荷高さ表示画像500は、積荷高さ凡例画像510が左側に表示され、積荷高さ画像520が右側に表示される。なお、積荷高さ凡例画像510は、必須でない。また、積荷高さ凡例画像510の表示位置は、積荷高さ表示画像500内において、どこに表示されていてもよい。
積荷高さ凡例画像510および積荷高さ画像520は、掻取部112の底面を基準にして、Xc軸方向における所定範囲ごとに異なる色で表示される。なお、図19においては、異なる色をハッチングの密度によって表している。
表示制御部170は、積荷高さ導出部168により積荷高さが導出されると、XcYc平面上における各領域(小領域402に対応する領域)での、掻取部112の底面に対する積荷高さの相対距離を導出する。まず、表示制御部170は、エレベータ110および掻取部112の現在の位置および形状に基づいて、トップフレーム座標系310における掻取部112の底面のXc軸方向の位置(高さ)を導出する。そして、表示制御部170は、トップフレーム座標系310における掻取部112の底面のXc軸方向の位置(高さ)を、変換パラメータを用いてハッチコーミング座標系320に変換する。
また、表示制御部170は、ハッチコーミング座標系320における掻取部112の底面のXc軸方向の位置から、各領域における積荷高さを減算することで、各領域における掻取部112の底面に対する積荷6の表面高さの相対距離を導出する。
そして、表示制御部170は、導出した相対距離に対応する範囲の色で、その領域を表した積荷高さ画像520を表示部144に表示する。また、表示制御部170は、掻取部112の3次元モデルを積荷高さ画像520内に重畳して表示する。
これにより、作業者は、積荷高さ表示画像500を確認することで、船庫5内の積荷6の分布(状況)を容易に把握することができる。例えば、作業者は、積荷6が高い部分、つまり、掻き取るべき場所を容易に把握することができる。また、積荷6の表面高さを掻取部112の底面との相対距離で表示することにより、掻取部112の移動量など、アンローダ装置100を操縦する際に必要となる情報を容易に確認させることができる。
また、測距センサ133、134は、掻取部112を中心に互いに反対側であって、水平より下向きに計測するように取り付けられる。これにより、進行方向の両側に測距センサ133、134が配置されることになり、掻き取り直後の積荷6の高さを直ぐに反映することができる。
以上、添付図面を参照しながら実施形態について説明したが、本開示はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に技術的範囲に属するものと了解される。
例えば、上記実施形態において、エッジ検出部154によるエッジの検出方法は一例に過ぎない。エッジ検出部154は、他の方法によりハッチコーミング7のエッジを抽出するようにしてもよい。
また、上記実施形態において、アンローダ装置100の移動に伴って測距センサ133、134を移動させるようにしたが、測距センサ133、134の向き等を変更可能にしてもよい。これにより、測距センサ133、134の計測範囲を広くし、早期に船庫5の形状を導出することができる。
また、上記実施形態において、側壁の形状を導出する際、投票回数を比較するようにした。しかしながら、データ蓄積部160は、蓄積データとして計測時期を蓄積(更新)していくようにしてもよい。そして、形状導出部164は、より早い時期に計測された計測点が含まれる小領域402に不採用フラグを立て、より遅い時期に計測された計測点を残すようにしてもよい。これにより、例えば、積荷6が掻き取られていくなど、環境が変化する場合において、最も新しく計測された計測点を採用することで、物体の形状を精度良く導出することができる。
また、上記実施形態において、側壁の形状を導出する際、1の小領域402と、隣接する小領域402との投票回数を比較するようにした。しかしながら、1の小領域402と、計測方向ベクトルに対応する複数の小領域402との投票回数を比較するようにしてもよい。この場合、最も投票回数が多い小領域402のみを残し、他の小領域402に不採用フラグを立ててもよい。また、最も投票回数が多い小領域402、および、最も多い投票回数の所定の割合(例えば50%)以上の投票回数がある小領域402を残すようにしてもよい。これにより、例えば、船庫5の側壁の近くに別の構造物がある場合、その構造物に対応する小領域402を残すことができる。
また、上記実施形態において、座標変換処理を毎回行うようにした。しかしながら、SLAM法を用いて、過去に計測された計測点と、今回計測された計測点とのマッチングを取ることにより、計測点のハッチコーミング座標系320の3次元位置を推定するようにしてもよい。
また、上記実施形態において、積荷6の表面高さを表示する処理では、1つの作業領域400を用いて、測距センサ133、134で計測された計測点の計測データを小領域402に随時蓄積するようにした。しかしながら、複数の作業領域400を用いて、測距センサ133、134で計測された計測点の計測データを、時間ごとに異なる作業領域400を用いて蓄積するようにしてもよい。つまり、積荷データ蓄積部166は、測距センサ133、134で計測された所定時間の計測点の計測データを蓄積するようにしてもよい。例えば、積荷データ蓄積部166は、1時間ごとに統計データを蓄積する作業領域400を変更すればよい。このとき、積荷データ蓄積部166は、統計データを蓄積する作業領域400をオーバーラップさせるとよい。具体的には、1つ目の作業領域400に統計データを蓄積し始めた後、30分が経過すると、1つ目の作業領域400と、2つ目の作業領域400に統計データを蓄積する。そして、1時間が経過すると、2つ目の作業領域400と、3つ目の作業領域400に統計データを蓄積する。そして、表示制御部170は、30分以上、統計データが蓄積された作業領域400に基づいて、積荷高さ表示画像500を表示部144に表示する。こうすることで、各作業領域400の最下部(作業領域400のうちZc軸方向の値が最も小さい小領域402)は、時間経過とともに船庫5の底面側(Zc軸方向の負方向)に降下していく。
これにより、測距センサ133、134により計測された計測点の計測データのうち、直近の計測点の統計データに基づいて、積荷高さ表示画像500を表示部144に表示することができる。そうすると、例えば、積荷6が船庫5内で崩れて積荷6の表面高さが高くなったとしても、積荷6の表面高さを精度良く表示することができる。
また、上記実施形態において、積荷6の表面高さを表示する処理では、測距センサ133、134で計測された計測点の計測データを小領域402に随時蓄積するようにした。しかしながら、計測点の計測データが取得された時間を記録しておき、予め設定された所定時間の経過に伴い、所定時間が経過した計測点の計測データを統計データから消去するようにしてもよい。これにより、測距センサ133、134により計測された計測点の計測データのうち、直近の計測点の統計データに基づいて、積荷高さ表示画像500を表示部144に表示することができる。そうすると、例えば、積荷6が船庫5内で崩れて積荷6の表面高さが高くなったとしても、積荷6の表面高さを精度良く表示することができる。
また、上記実施形態において、積荷6の表面高さを表示する処理では、測距センサ133、134で計測された計測点の計測データを小領域402に蓄積するようにした。しかしながら、測距センサ133、134により計測された計測点の計測データのうち、図14に示す方法と同様に平面S1より下の計測データのみを小領域402に蓄積するようにしてもよい。そうすることで、上側にせり出している壁面を計測したり、積荷6が計測されていない水平位置について、間違ってせり出している壁面の高さを表示したりすることを防ぐことができる。
また、上記実施形態において、領域生成部152が船庫5を基準として作業領域400を生成するようにした。しかしながら、領域生成部152は、船舶4のいずれかの特定位置を基準として作業領域400を生成するようにしてもよい。例えば、領域生成部152は、ハッチコーミング7およびハッチカバー8を含む開口部の特定位置を基準として作業領域400を生成するようにしてもよい。これにより、同一の船舶4であっても、船首側、中央付近、船尾側で船庫5付近の構造は異なるため、構造に合わせて作業領域400を生成することができる。
また、上記実施形態において、掻取部112を中心に互いに反対側となるよう、水平より下向きに計測するように2個の測距センサ133、134が取り付けられるようにした。しかしながら、測距センサは、掻取部112を中心に互いに反対側となるよう、水平より下向きに計測するように2個以上取り付けられるようにしてもよい。
また、上記実施形態において、荷揚げ装置の一例としてアンローダ装置100を例に挙げて説明した。しかしながら、荷揚げ装置は、連続アンローダ(バケット式、ベルト式、垂直スクリューコンベア式など)、ニューマチックアンローダ等であってもよい。