(57)【要約】【課題】  商品にある商品特定情報を読み取る作業を省力化することができる商品読取システムを提供する。【解決手段】  実施形態によれば、商品読取システムは、カメラと、可動スキャナと、コントローラとを有する。カメラは、商品が置かれる台を上方から撮影する。可動スキャナは、移動可能な読取位置において商品の外観に存在する商品特定情報を読み取る。コントローラは、前記台に置かれた状態での商品の高さが所定高を超える場合、前記カメラが撮影する画像に基づいて前記可動スキャナの読取位置を前記商品の高さ方向における下側半分の側面と上側半分の側面とに沿ってそれぞれ半周分ずつ移動させて、前記可動スキャナに前記商品の商品特定情報を読み取らせる。【選択図】図２
2019185565.tif 000002
【特許請求の範囲】
【請求項１】
商品が置かれる台を上方から撮影するカメラと、
移動可能な読取位置において商品の外観に存在する商品特定情報を読み取る可動スキャナと、
前記台に置かれた状態での商品の高さが所定高を超える場合、前記カメラが撮影する画像に基づいて前記可動スキャナの読取位置を前記商品の高さ方向における下側半分の側面と上側半分の側面とに沿ってそれぞれ半周分ずつ移動させて、前記可動スキャナに前記商品の商品特定情報を読み取らせるコントローラと、
を有する商品読取システム。
【請求項２】
前記コントローラは、前記台に置かれた状態での商品の高さが所定高以内である場合、前記可動スキャナの読取位置を前記商品の側面に沿って１周分移動させて前記可動スキャナに前記商品の商品特定情報を読み取らせる、
請求項１に記載の商品読取システム。
【請求項３】
前記コントローラは、前記台に置かれた状態での商品の高さが所定高を超える場合、前記可動スキャナの読取位置を前記商品の高さ方向における下側半分の側面を第１方向に半周分移動させた後に前記商品の高さ方向における上側半分の側面を第１方向に半周分移動させ、前記商品の高さ方向における下側半分の側面を第１の方向とは逆の第２方向に半周分移動させた後に前記商品の高さ方向における上側半分の側面を第１の方向に半周分移動させる、
請求項１又は２の何れか１項に記載の商品読取システム。
【請求項４】
商品を把持する把持機構を有するアームと、
固定の読取位置において商品特定情報を読み取る固定スキャナと、
前記カメラが撮影した画像に写る前記台上の商品が前記把持機構で把持できない筒状であるか把持できる形状であるかを判定するプロセッサと、さらに有し、
前記コントローラは、前記商品が把持できる形状であると判断された場合には、前記アームの把持機構で前記商品を把持させ、前記アームが把持機構で把持する前記商品を前記固定スキャナの読取位置に移動させる、
請求項１乃至３の何れか１項に記載の商品読取システム。
【請求項５】
前記商品の商品特定情報を前記商品の精算処理を行う精算装置へ出力する通信装置を有する、
請求項１乃至４の何れか１項に記載の商品読取システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、商品読取システムに関する。
【背景技術】
【０００２】
従来、コンビニエンスストアやスーパーマーケットなどの小売店では、精算装置にバーコードなどの商品特定情報を読み取らせてから当該商品の精算処理を実施している。精算装置は、小売店の係員が操作し、係員の手作業によって商品に印刷されているバーコードを読取るものが多い。近年では、人手不足などから精算装置が精算の対象とする商品を読み取らせる作業（商品読取業務）を省力化することが要望されている。
【０００３】
従来の技術としては、商品などの物品を把持するためのロボットアームを備える装置が提案されている。しかしながら、従来の装置が備えるロボットアームは、把持した物品を所定の場所に移動させたり、把持した物品を袋や箱などの収納部に入れたりするものである。このため、従来の技術では、商品のバーコードなどを読み取る商品読取業務を省力化することはできない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１６７２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記した課題を解決するために、商品にある商品特定情報を読み取る作業を省力化することができる商品読取システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態によれば、商品読取システムは、カメラと、可動スキャナと、コントローラとを有する。カメラは、商品が置かれる台を上方から撮影する。可動スキャナは、移動可能な読取位置において商品の外観に存在する商品特定情報を読み取る。コントローラは、前記台に置かれた状態での商品の高さが所定高を超える場合、前記カメラが撮影する画像に基づいて前記可動スキャナの読取位置を前記商品の高さ方向における下側半分の側面と上側半分の側面とに沿ってそれぞれ半周分ずつ移動させて、前記可動スキャナに前記商品の商品特定情報を読み取らせる。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態に係る商品読取システム（商品読取の支援システム）の外観構成を概略的に示す模式図である。
【図２】図２は、実施形態に係る商品読取システムとしてのロボット１の制御系の構成例を示すブロック図である。
【図３】図３は、実施形態に係る商品読取システムとしてのロボットの動作例を説明するためのフローチャートである。
【図４】図４は、実施形態に係る商品読取システムとしてのロボットの動作例を説明するためのフローチャートである。
【図５】図５は、実施形態に係る商品読取システムが袋状の商品をアームで把持する場合の動作例を説明するための図である。
【図６】図６は、実施形態に係る商品読取システムが箱状の商品をアームで把持した状態の例を説明するための図である。
【図７】図７は、実施形態に係る商品読取システムにおけるアームスキャナによるバーコードの読取処理の動作例を説明するためのフローチャートである。
【図８】図８は、実施形態に係る商品読取システムにおいて筒状の商品の高さが所定高以内である場合のアームスキャナの動作例を説明するための図である。
【図９】図９は、実施形態に係る商品読取システムにおいて筒状の商品の高さが所定高を超える場合のアームスキャナの動作例を説明するための図である。
【図１０】図１０は、実施形態に係る商品読取システムにおけるカメラの撮影画像に対する商品認識処理の動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら実施形態について説明する。  
図１は、実施形態に係る商品読取システムとしての商品読取の支援システム（ロボット）１の外観構成を概略的に示す模式図である。  
商品読取の支援システム（以下、単にロボットとも称する）１は、商品を特定する情報（商品特定情報）を取得（読取）するための装置である。図１に示す構成例において、ロボット１は、精算装置（レジ）２で代金を精算すべき商品を特定する情報を取得するレジ業務を支援する。たとえば、ロボット１は、利用者が利用しやすいように、人物の上半身を模した人型の外観を有する。
【０００９】
ロボット１は、商品の代金などを精算する精算装置２に接続する。ロボット１と精算装置２とは、商品の精算業務を行う取引システムを構成する。ロボット１および精算装置２を含む取引システムは、たとえば、コンビニエンスストアやスーバーマーケットなどの小売店などに設置される。取引システムにおいて、ロボット１は、精算装置２を設置する精算用のレジ台３の近傍に設ける。利用者は、ロボット１の手前にあるレジ台３に精算装置２で代金を精算する精算対象の商品を置く。ロボット１は、利用者がレジ台３に置いた商品から商品特定情報を読み取り、読取った商品特定情報を精算装置２へ供給する。
【００１０】
商品特定情報は、商品の外観から読み取れる情報であれば良い。商品特定情報は、商品のパッケージに印刷されているバーコードである。また、商品特定情報は、商品を識別可能な数字や文字などの文字列でも良いし、商品に添付されたラベルの画像でも良いし、商品全体のシルエットなどであっても良い。ロボット１は、商品の外観にあるバーコードなどの商品特定情報がスキャナやカメラで読み取れるように、レジ台３上の商品を持ち上げて動かす。また、ロボット１は、持ち上げられない商品に沿ってスキャナを動かしてバーコードなどの商品特定情報を読み取る機能も有する。
【００１１】
図１に示す構成例において、ロボット（本体）１は、センサ１１、カメラ１２、スキャナ１３、第１アーム１４、第２アーム１５、アームスキャナ１６、スピーカ１７、マイク１８、表示器１９などを有する。  
センサ１１は、レジ台３に接近してきた人物、または、レジ台３に商品が置かれたことを検知するセンサである。たとえば、センサ１１は、赤外線を用いて人物または商品を検知する赤外線センサである。センサ１１は、人物または商品の有無を検知できるセンサであれば良い。
【００１２】
カメラ１２は、レジ台３周辺の画像を撮影する。カメラ１２は、撮影方向あるいは撮影距離などを調整することにより撮影領域を変更する機能を有する。たとえば、カメラ１２は、レジ２を利用者する人物（又はレジ台３に商品を置いた人物）を撮影するための撮影領域を設定し、レジ台３の近傍にいる人物を撮影する機能を有する。また、カメラ１２は、レジ台３に置かれた商品を撮影するための撮影領域を設定し、レジ台３上の画像を撮影する機能も有する。
【００１３】
スキャナ１３は、商品の外観から商品特定情報を読み取る。スキャナ１３は、所定の読取位置において商品特定情報としてバーコードを読取る固定スキャナである。本実施形態において、スキャナ１３は、商品特定情報として、商品のパッケージの一部に印刷されたバーコードを読取るバーコードスキャナであるものとする。なお、スキャナ１３は、商品の外観から商品特定情報であれば良く、２次元バーコードや文字列などを読み取るビデオカメラなどで構成しても良い。
【００１４】
第１アーム１４および第２アーム１５は、レジ台３に置かれた商品に対して相対的に動作する。第１アーム１４および第２アーム１５は、アーム部１４ａ、１５ａと把持機構１４ｂ、１５ｂとを有する。アーム部１４ａ、１５ａは、ロボット１本体に取り付けられた多関節のロボットアームである。把持機構１４ｂ、１５ｂは、商品を把持する機構である。アーム部１４ａ、１５ａは、把持機構１４ｂ、１５ｂによる把持位置を３次元的に自在に移動させるものであれば良い。たとえば、第１アーム１４および第２アーム１５において、把持機構１４ｂ、１５ｂは、それぞれアーム部１４ａ、１５ａの先端部分に設けられる。すなわち、第１アーム１４および第２アーム１５は、把持機構１４ｂ、１５ｂで商品を把持した状態でアーム部１４ａ、１５ａを動かして当該商品を持ち上げたり、回転させたりする。
【００１５】
把持機構１４ｂ、１５ｂは、レジ台３上の商品を挟持したり摘まんだり吸着したりするように構成する。たとえば、把持機構１４ｂ、１５ｂは、複数の指（２つの挟持部材、又は３〜５本の指など）で構成される。また、把持機構１４ｂ、１５ｂは、複数の指で構成するものに限定されるものではなく、商品の一部を吸着させる機構であっても良い。また、把持機構１４ｂ、１５ｂは、複数の指、挟持部材、および、吸着させる機構などを組み合わせて構成しても良い。
【００１６】
また、アームスキャナ１６は、第１アーム１４の動作によって読取位置が移動するスキャナである。アームスキャナ１６は、移動可能な読取位置において商品特定情報としてバーコードを読取る可動スキャナである。たとえば、アームスキャナ１６は、第１アーム１４の先端部分に設けられ、第１アーム１４の動作によって読取位置が移動する。本実施形態において、アームスキャナ１６は、第１アーム１４によって移動される読取位置において商品の外観から商品特定情報としてのバーコードを読み取るものとする。なお、アームスキャナ１６は、第２アーム１５に設けても良いし、第１アーム１４および第２アーム１５の両方に設けても良い。また、アームスキャナ１６は、第１アーム１４および第２アーム１５とは別に設けても良い。
【００１７】
スピーカ１７は、音声を出力する。スピーカ１７は、利用者に対して案内などの音声を出力する。マイク１８は、音声を入力する。マイク１８は、利用者が発した音声を入力する。スピーカ１７およびマイク１８は、利用者と対話形式で音声の入出力を行う対話装置を構成するものとしても良い。表示器１９は、画像を表示する。たとえば、表示器１９は、画像またはテキストなどによる利用者に対する案内を表示する。スピーカ１７、マイク１８および表示器１９は、ユーザインターフェースとして機能する。
【００１８】
次に、実施形態に係る商品読取装置としてのロボット１における制御系の構成について説明する。  
図２は、実施形態に係る商品読取システム（商品読取の支援システム）としてのロボット１の制御系の構成例を示すブロック図である。  
ロボット１は、システムコントローラ（制御装置）２１、商品読取装置（商品リーダ）２２、アーム装置２３、対話装置（ユーザインターフェース）２４、通信装置（通信モジュール）２５などを有する。
【００１９】
システムコントローラ２１は、ロボットにおける各装置を統括的に制御する。図２に示す構成例において、システムコントローラ２１は、プロセッサ３１、メモリ３２、インターフェース（Ｉ／Ｆ）３３を有する。  
プロセッサ３１は、プログラムを実行することにより各種の処理を実現する。プロセッサ３１は、たとえば、ＣＰＵである。メモリ３２は、ＲＯＭ、ＲＡＭおよび書換え可能な不揮発性メモリなどのメモリで構成する。たとえば、メモリ３２は、プログラムおよび制御データなどを記憶する不揮発性のメモリを含む。また、メモリ３２は、データを一時的に格納するためのＲＡＭなどのワーキングメモリを含む。
【００２０】
メモリ３２が記憶するプログラムには、基本プログラム（ＯＳ）の他、各種のアプリケーションプログラムが含まれる。アプリケーションプログラムには、後述する各種の処理を実行するためのプログラムなどが含まれる。プロセッサ３１は、メモリ３２が記憶する各種のプログラムを実行することにより後述する各種の処理を実現する。
【００２１】
インターフェース（Ｉ／Ｆ）３３は、ロボット１にける各装置と通信するためのインターフェースである。  
プロセッサ３１は、インターフェース３３を介して各装置に制御指示を与えたり、各装置からの情報を取得したりする。たとえば、プロセッサ３１は、商品読取装置２２から商品特定情報の読取結果や人物の検知結果などを示す情報を取得する。また、プロセッサ３１は、第１アーム１４および第２アーム１５を用いて商品を把持することをアーム装置２３へ指示する。
【００２２】
次に、商品読取装置２２の制御系の構成例について説明する。  
商品読取装置２２は、商品から商品特定情報を読み取るものである。また、商品読取装置２２は、人物や商品などを検知する機能を有する。図２に示す構成例において、商品読取装置２２は、プロセッサ４１、メモリ４２、インターフェース（Ｉ／Ｆ）４３、画像メモリ４４、カメラ駆動機構４５、センサ１１、カメラ１２およびスキャナ１３などを有する。
【００２３】
プロセッサ４１は、プログラムを実行することにより各種の処理を実現する。プロセッサ４１は、たとえば、ＣＰＵである。メモリ４２は、ＲＯＭ、ＲＡＭおよび書換え可能な不揮発性メモリなどのメモリで構成する。たとえば、メモリ４２は、プログラムおよび制御データなどを記憶する不揮発性のメモリを含む。また、メモリ４２は、データを一時的に格納するためのＲＡＭなどのワーキングメモリを含む。
【００２４】
インターフェース（Ｉ／Ｆ）４３は、システムコントローラ２１と通信するためのインターフェースである。  
画像メモリ４４は、カメラ１２が撮影した画像を記憶する。カメラ駆動機構４５は、カメラ１２を制御する。カメラ駆動機構４５は、カメラ１２の向きなどを移動させてカメラ１２が撮影する領域を制御するようにしても良い。
【００２５】
プロセッサ４１は、メモリ４２の記憶領域４２ａ〜４２ｅに記憶するプログラムを実行することにより種々の処理を実現する。たとえば、記憶領域４２ａは、人物および物を特定する処理を実行するためのプログラムを格納するものとする。プロセッサ４１は、記憶領域４２ａが記憶するプログラムを実行することにより、人物特定部あるいは物特定部として機能する。たとえば、プロセッサ４１は、人物特定部として、カメラ１２が撮影した画像を用いて利用者がレジ２の前（レジ台３の前）にいるかを確認する。また、プロセッサ４１は、カメラ１２が撮影した画像から利用者の特徴（性別、年齢など）を推測するようにしても良い。また、プロセッサ４１は、物特定部として、レジ台３の上に商品があるかを確認するようにしても良い。
【００２６】
記憶領域４２ｂは、物品の大きさおよび形状などを認識する処理を行うためのプログラムを格納するものとする。プロセッサ４１は、記憶領域４２ｂが記憶するプログラムを実行することにより、物の大きさおよび形状などを認識する外観認識部として機能する。たとえば、プロセッサ４１は、カメラ１２が撮影した画像から、レジ台３上にある商品の大きさおよび形状などの特徴を示す情報を認識する。本実施形態において、プロセッサ４１は、外観認識部として、商品が袋状の商品か箱状の形状を有する商品か、筒状の形状を有する商品か、袋状の外観を有する商品かを確認する。
【００２７】
記憶領域４２ｃは、位置を検出する処理を実行するためのプログラムを格納するものとする。プロセッサ４１は、記憶領域４２ｃが記憶するプログラムを実行することにより、位置を検出する位置検出部として機能する。たとえば、プロセッサ４１は、カメラ１２が撮影した画像に基づいてレジ台３上にある商品の位置を検出する。
【００２８】
記憶領域４２ｄは、商品特定情報としてのバーコードを検出する処理を実行するためのプログラムを格納するものとする。プロセッサ４１は、記憶領域４２ｄが記憶するプログラムを実行することにより商品に付されているバーコードを検出するバーコード検出部として機能する。たとえば、プロセッサ４１は、スキャナ１３またはアームスキャナ１６が読取る画像からレジ台３上にある商品に付されたバーコードを検出する。
【００２９】
記憶領域４２ｅは、商品特定情報としての文字を認識する処理を実行するためのプログラムを格納するものとする。プロセッサ４１は、記憶領域４２ｅが記憶するプログラムを実行することにより商品に付されている文字を認識する文字認識部（ＯＣＲ処理部）として機能する。たとえば、プロセッサ４１は、カメラ１２が撮影する画像からレジ台３上にある商品に付された商品特定情報としての文字を認識する。
【００３０】
次に、アーム装置２３の制御系の構成例について説明する。  
アーム装置２３は、第１アーム１４および第２アーム１５を動作させるものである。図２に示す構成例において、アーム装置２３は、プロセッサ５１、メモリ５２、インターフェース（Ｉ／Ｆ）５３、アーム駆動機構５４、第１アーム１４、第２アーム１５およびアームスキャナ１６などを有する。
【００３１】
プロセッサ５１は、プログラムを実行することにより各種の処理を実現する。プロセッサ５１は、たとえば、ＣＰＵである。メモリ５２は、ＲＯＭ、ＲＡＭおよび書換え可能な不揮発性メモリなどのメモリで構成する。たとえば、メモリ５２は、プログラムおよび制御データなどを記憶する不揮発性のメモリを含む。また、メモリ５２は、データを一時的に格納するためのＲＡＭなどのワーキングメモリを含む。  
インターフェース（Ｉ／Ｆ）５３は、システムコントローラ２１と通信するためのインターフェースである。
【００３２】
アーム駆動機構５４は、第１アーム１４および第２アーム１５の動きを制御する。たとえば、アーム駆動機構５４は、システムコントローラ２１からの動作指示に応じて第１アーム１４および第２アーム１５をそれぞれ動かす。たとえば、アーム駆動機構５４は、システムコントローラ２１からの指示に応じてレジ台３上にある商品を把持する。また、アーム駆動機構５４は、指示に応じて把持した商品を動かす。さらに、アーム駆動機構５４は、指示に応じて第１アーム１４を動かしてアームスキャナ１６による読取位置を移動させる。
【００３３】
次に、対話装置２４の制御系の構成例について説明する。  
対話装置２４は、ユーザインターフェースとして機能する。対話装置２４は、ユーザに音声や画像などで情報を提供する。また、対話装置２４は、ユーザからの情報を入力し、入力した情報に対する応答としての情報を出力する。図２に示す構成例において、対話装置２４は、プロセッサ６１、メモリ６２、インターフェース（Ｉ／Ｆ）６３、スピーカ１７、マイク１８、表示器１９などを有する。
【００３４】
プロセッサ６１は、プログラムを実行することにより各種の処理を実現する。プロセッサ６１は、たとえば、ＣＰＵである。メモリ６２は、ＲＯＭ、ＲＡＭおよび書換え可能な不揮発性メモリなどのメモリで構成する。インターフェース（Ｉ／Ｆ）６３は、システムコントローラ２１と通信するためのインターフェースである。
【００３５】
プロセッサ６１は、システムコントローラ２１からの指示などに応じてスピーカ１７から音声を出力する。また、プロセッサ６１は、マイク１８に入力された音声情報をシステムコントローラ２１へ供給する。これにより、プロセッサ６１は、スピーカ１７およびマイク１８を用いて利用者との対話形式による音声の入出力を行う。また、プロセッサ６１は、システムコントローラ２１からの指示などに応じて表示器１９に情報を表示する。
【００３６】
次に、通信装置２５の制御系の構成例について説明する。  
通信装置２５は、外部装置と通信するための通信インターフェースである。本実施形態において、通信装置２５は、精算装置２と通信する。図２に示す構成例において、通信装置２５は、プロセッサ７１、メモリ７２、インターフェース（Ｉ／Ｆ）７３、通信部７４などを有する。
【００３７】
プロセッサ７１は、プログラムを実行することにより各種の処理を実現する。プロセッサ７１は、たとえば、ＣＰＵである。メモリ７２は、ＲＯＭ、ＲＡＭおよび書換え可能な不揮発性メモリなどのメモリで構成する。インターフェース（Ｉ／Ｆ）７３は、システムコントローラ２１と通信するためのインターフェースである。通信部７４は、外部装置と通信するためのインターフェースである。図２に示す構成例では、通信部７４は、精算装置２と通信するためのインターフェースを含む。
【００３８】
なお、商品読取システムとしてのロボット１は、精算装置２と一体的に構成しても良い。また、ロボット１には、商品の代金を精算する機能を具備しても良い。たとえば、ロボット１には、クレジットカードあるいは電子マネーなどでの決済機能を設けても良い。この場合、ロボット１は、商品特定情報の読取りだけでなく、商品特定情報に基づくクレジットカードあるいは電子マネー等での決済も可能となる。
【００３９】
次に、実施形態に係る商品読取装置としてのロボット１による商品読取業務の支援処理（商品読取処理）の動作について説明する。  
図３及び図４は、実施形態に係るロボット１の動作例を説明するためのフローチャートである。  
待機状態において、商品読取装置２２のプロセッサ４１は、レジ台３の近傍を検知範囲として人物を検知するセンサ１１を用いて人物の有無を監視する（ＡＣＴ１１）。センサ１１が人物を検知すると（ＡＣＴ１１、ＹＥＳ）、プロセッサ４１は、撮影領域をレジ台３の近傍となる人物検出用の撮影領域にセットしたカメラ１２で画像を撮影する（ＡＣＴ１２）。人物検出用の撮影領域は、センサ１１が検知した人物、あるいは、商品の精算などでレジ台３の手前に現れた人物を撮影できるような撮影領域であれば良い。
【００４０】
たとえば、プロセッサ４１は、カメラ駆動機構４５によりレジ台３の手前の空間を含む領域を人物検出用の撮影範囲としてカメラ１２に設定する。また、プロセッサ４１は、センサ１１が検知した人物の位置を推定し、推定した人物の位置に応じてカメラ１２の向きや位置などを制御しても良い。なお、プロセッサ４１は、カメラ１２が撮影した画像を画像メモリ４４に保存する。また、プロセッサ４１は、連続的に複数の画像をカメラ１２で撮影し、撮影した複数の画像を画像メモリ４４に保存しても良い。
【００４１】
カメラ１２によりレジ台３近傍の画像を撮影すると、プロセッサ４１は、カメラ１２が撮影した撮影画像に人物が存在するかを判断する（ＡＣＴ１３）。これにより、プロセッサ４１は、カメラ１２が撮影する撮影画像からレジ台３の近傍にいる人物（利用者）を検出できる。プロセッサ４１は、撮影画像からの人物の検出結果に基づいてレジ台３の近傍に利用者がいるか否かを判断する。利用者がいると判断できない場合（ＡＣＴ１３、ＮＯ）、プロセッサ４１は、ＡＣＴ１１へ戻り、上述の処理を再度実行する。
【００４２】
利用者がいると判断した場合（ＡＣＴ１３、ＹＥＳ）、プロセッサ４１は、コントローラ２１へ利用者を検知した旨を通知する。利用者を検知した旨の通知を受けると、システムコントローラ２１は、対話装置２４を用いた当該利用者に対する案内を行う（ＡＣＴ１４）。たとえば、システムコントローラ２１は、対話装置２４に対して音声指示を出力することにより、スピーカ１７から「いらっしゃいませ」などの挨拶の音声を出力する。また、システムコントローラ２１は、音声案内とともに表示器１９に案内を表示するようにしても良い。
【００４３】
また、利用者を検知した場合、プロセッサ４１は、撮影領域としてレジ台３上の商品配置位置を含む商品検出用の撮影領域をセットしたカメラ１２で画像を撮影する（ＡＣＴ１５）。商品検出用の撮影領域は、レジ台３上に置かれた精算（登録）対象の商品が置かれる領域を含むものであれば良い。たとえば、商品検出用の撮影領域は、レジ台３上の商品が載置可能な領域、あるいは、レジ台３上に設けた商品の配置位置を含む領域であっても良い。ここで、プロセッサ４１は、カメラ１２が撮影する商品検出用の撮影領域の画像を画像メモリ４４に保存するようにしても良い。
【００４４】
カメラ１２により商品検出用の撮影領域を撮影すると、プロセッサ４１は、カメラ１２が撮影した画像（商品検出用の撮影画像）に商品が存在するかを判断する（ＡＣＴ１６）。これにより、商品読取装置２２は、レジ台３上に置かれた商品を検出できる。なお、プロセッサ４１は、カメラ１２の撮影画像から商品を検出する手法以外の手法でレジ台３上の商品の有無を判断するようにしても良い。
【００４５】
レジ台３上に商品がないと判断した場合（ＡＣＴ１６、ＮＯ）、プロセッサ４１は、ＡＣＴ１５へ戻り、上述の処理を再度実行する。すなわち、商品が検出できなければ、プロセッサ４１は、対話装置２４を用いてレジ台３に商品を置くことを促す案内を音声や表示などで行う。たとえば、プロセッサ４１は、対話装置２４のスピーカ１７から「商品をレジ台の上に置いて下さい」と発話するようにしても良い。このような案内と共に、プロセッサ４１は、レジ台３上の画像撮影と商品検出とを繰り返し実行する。
【００４６】
レジ台３上に商品があると判断した場合（ＡＣＴ１６、ＹＥＳ）、プロセッサ４１は、レジ台３上にある商品がアーム装置２３で把持すべきものであるかを判定する。すなわち、プロセッサ４１は、レジ台３上にある商品の形状を特定する（ＡＣＴ１７）。本実施形態において、プロセッサ４１は、商品の形状が、袋状、箱状、筒状の何れであるかを特定するものとする。
【００４７】
ここで、袋状の商品とは、所定の把持サイズ以内であれば、アーム装置２３が把持できるものであり、外観の形状が変形するものとする。袋状の商品は、所定の大きさ以内であれば、アーム装置２３が把持した状態で持ち上げたり回転させたりできる形状であれば良い。また、箱状の商品とは、所定の把持サイズ以内であれば、アーム装置２３が把持できる形状を有する固形の物品であるものとする。箱状の商品は、６面体の形状に限定されるものではなく、所定の大きさ以内であれば、アーム装置２３が把持した状態で持ち上げたり回転させたりできる形状であれば良い。
【００４８】
なお、袋状の商品または箱状の商品が把持できるか否かは、把持サイズではなく、当該商品の重さで判定しても良い。この場合、レジ台３上の商品の重さは、レジ台３に設けた重量センサなどで計測するようにすれば良い。
【００４９】
また、筒状の商品とは、袋状および箱状以外のものであり、アーム装置２３で把持できない（把持すべきでない）形状を有する物品であるものとする。筒状の商品としては、円筒形状の物品に限らず、多角柱、円錐、角錐などのアーム装置２３で把持できない形状の物品も含むものとする。たとえば、筒状の商品は、ペットボトル、缶、瓶、カップなどの物品を想定する。
【００５０】
レジ台３上にある商品の形状が袋状であると判断した場合（ＡＣＴ１８、ＹＥＳ）、プロセッサ４１は、当該商品のサイズが袋の把持サイズ以内であるかを判断する（ＡＣＴ１９）。本実施形態において、アーム装置２３は、袋の把持サイズを超えるサイズの袋状の商品を把持できない（把持すべきでない）ものとする。なお、袋状の商品が把持できるか否かは、当該商品の重さで判定するようにしても良い。
【００５１】
商品が袋状であると判断した場合、プロセッサ４１は、当該商品を把持するか（把持できるか）どうかを当該商品の大きさで判断する。プロセッサ４１は、レジ台３上を撮影した画像（商品検出用の撮影画像）における当該商品の画像領域から当該商品の大きさを特定（推定）する。本実施形態において、袋状の商品の大きさは、商品検出用の撮影画像において検出する当該商品のエッジ位置から特定する対角線の長さとする。ただし、袋状の商品の大きさは、当該商品の画像領域の画素数や当該商品の画像領域の面積の推定値などで定義しても良い。
【００５２】
たとえば、プロセッサ４１は、商品検出用の撮影画像において当該商品の画像領域とする矩形領域のエッジとなる４点を検出する。プロセッサ４１は、検出した４点からなる矩形の対角線の長さを当該商品の大きさとする。この場合、袋の把持サイズとしては、２つのアーム１４，１５で両端を摘まんで持ち上げられる商品の大きさ（対角線の長さ）の最大値が設定される。たとえば、袋の把持サイズを５００ｍｍすれば、プロセッサ４１は、撮影画像における商品のエッジから特定する対角線の長さが５００ｍｍ以内であるか否かを判定する。
【００５３】
袋状と判定した当該商品の大きさが袋の把持サイズを超えると判断した場合（ＡＣＴ１９、ＮＯ）、プロセッサ４１は、当該商品をアーム装置２３で把持できないと判断する。当該商品をアーム装置２３で把持できないと判断した場合、プロセッサ４１は、ＡＣＴ２４へ進み、アームスキャナ１６による商品特定情報の読取処理を行う。
【００５４】
袋状と判定した当該商品が袋の把持サイズ以内であると判断した場合（ＡＣＴ１９、ＹＥＳ）、プロセッサ４１は、当該商品をアーム装置２３で把持することをシステムコントローラ２１に指示する。当該商品をアーム装置２３で把持することをシステムコントローラ２１に指示する。プロセッサ４１は、レジ台３上を撮影した撮影画像に基づき、当該商品の位置を示す位置情報と、形状、大きさ、中心、向き等の当該商品の形状を示す形状情報とを特定する。プロセッサ４１は、撮影画像から特定した商品の位置情報および形状情報を当該商品が把持対象である旨とともにシステムコントローラ２１へ通知する。
【００５５】
システムコントローラ２１のプロセッサ３１は、商品読取装置２２からの情報に基づいて当該商品をアーム装置２３で把持するための把持設定を行う（ＡＣＴ２０）。当該商品が袋状である場合、プロセッサ３１は、袋状の商品を把持するためのアルゴリズムと当該商品の位置情報と形状情報とに基づいて当該商品に対する把持設定を行う。ここで、プロセッサ３１は、２つのアーム１４，１５が袋状の商品の両端を摘まむように把持するようにアーム装置２３に対する把持設定を行うものとする。
【００５６】
図５は、袋状の商品Ｐ１を２つのアーム１４および１５で把持する場合の動作例を説明するための図である。  
アーム装置２３は、各アーム部１４ａ，１５ａの先端部に設けた把持機構１４ｂ，１５ｂが袋状の商品の両端をそれぞれ摘まむように各アーム１４，１５を動かす。各アーム１４，１５は、把持機構１４ｂ、１５ｂが商品の両端の外側から商品の中心に向かって商品と平行にレジ台３の上面をこするように動かす。アーム装置２３は、一方のアーム１４（１５）の把持機構１４ｂ（１５ｂ）が商品の長手方向の一端を摘まんだ後、他方のアーム１５（１４）の把持機構１５ｂ（１４ｂ）が当該商品の長手方向の反対側の一端を摘まむように動かす。
【００５７】
図５に示す例では、第１アーム１４が把持機構１４ｂで商品Ｐ１の一端を摘まんだ後、第２アーム１５が、把持機構１５ｂを矢印ａ方向に動かす。第２アーム１５は、把持機構１５ｂの把持位置が当該商品の端部に到達すると、把持機構１５ｂが当該商品の端部を摘まむ。これにより、把持機構１４ｂと１５ｂとは、商品の長手方向における両端を摘まむことができる。  
システムコントローラ２１のプロセッサ３１は、アーム装置２３を上述の動作で商品の両端を把持できるように当該商品の位置情報および形状情報に応じて把持設定を行う。
【００５８】
また、レジ台３上にある商品の形状が箱状であると判断した場合（ＡＣＴ２１、ＹＥＳ）、プロセッサ４１は、箱状の商品のサイズが箱の把持サイズ以内であるかを判断する（ＡＣＴ２２）。本実施形態において、アーム装置２３は、箱の把持サイズを超える幅を有する箱状の商品を把持できない（把持すべきでない）ものとする。すなわち、商品が箱状であると判断した場合、プロセッサ４１は、当該商品を把持するか（把持できるか）どうかを当該商品の幅で判断する。
【００５９】
たとえば、プロセッサ４１は、レジ台３上を撮影した画像（商品検出用の撮影画像）から当該商品の幅を特定（推定）する。商品検出用の撮影画像はレジ台３を上方から撮影した画像であるので、商品検出用の撮影画像にはレジ台３上に置かれた箱状の商品が矩形の画像として撮影される。プロセッサ４１は、商品検出用の撮影画像における当該商品の矩形領域のエッジとなる４点を検出する。また、箱状と判定した商品が完全な矩形の画像として撮影されない場合、プロセッサ４１は、当該商品の画像領域に外接する矩形領域のエッジとなる４点を検出しても良い。
【００６０】
プロセッサ４１は、商品検出用の撮影画像から検出した当該商品の矩形領域のエッジとする４点から当該商品の幅を推定する。商品の幅は、把持機構１４ｂ、１５ｂが把持する部分の幅であるものとする。この場合、箱の把持サイズとしては、アーム１４、１５の把持機構１４ｂ、１５ｂが商品の側面から挟持できる商品の幅の最大値が設定される。たとえば、箱の把持サイズを１００ｍｍすれば、プロセッサ４１は、商品検出用の撮影画像から検出した箱状の商品の幅が１００ｍｍ以内であるか否かを判定する。なお、箱状の商品が把持できるか否かは、当該商品の重さで判定するようにしても良い。
【００６１】
プロセッサ４１は、レジ台３上にある箱状の商品の幅が箱の把持サイズを超えると判断した場合（ＡＣＴ２２、ＮＯ）、当該商品をアーム装置２３で把持できないと判断する。当該商品を把持できないと判断した場合、プロセッサ４１は、ＡＣＴ２４へ進み、アームスキャナ１６を用いた商品特定情報の読取処理を行う。
【００６２】
当該商品の幅が箱の把持サイズ以内であると判断した場合（ＡＣＴ２２、ＹＥＳ）、プロセッサ４１は、当該商品をアーム装置２３で把持することをシステムコントローラ２１に指示する。プロセッサ４１は、レジ台３上を撮影した撮影画像に基づき、当該商品の位置を示す位置情報と、形状、大きさ、中心、向き等の当該商品の形状を示す形状情報とを特定する。プロセッサ４１は、当該商品の位置情報および形状情報を当該商品が把持対象である旨とともにシステムコントローラ２１へ通知する。
【００６３】
システムコントローラ２１のプロセッサ３１は、商品読取装置２２からの情報に基づいて、当該商品をアーム装置２３で把持するための把持設定を行う（ＡＣＴ２２）。当該商品が箱状である場合、プロセッサ３１は、箱状の商品を把持するためのアルゴリズムと当該商品の位置情報と形状情報とに基づいて当該商品に対する把持設定を行う。
【００６４】
図６は、箱状の商品Ｐ２を２つのアーム１４および１５で把持した状態の例を説明するための図である。  
図６に示す例において、アーム装置２３は、各アーム部１４ａ、１５ａの先端部に設けた把持機構１４ｂ、１５ｂで箱状の商品の両側を把持するものとする。たとえば、アーム装置２３は、商品に対して垂直方向の上方からレジ台３に向かって各アーム部１４ａ、１５ａの先端部（把持機構１４ｂ、１５ｂ）を動かして商品の両側を把持する。プロセッサ３１は、アーム装置２３が上述したような動作で商品の両側を把持できるように、当該商品の位置情報および形状情報に応じた把持設定を行う。
【００６５】
また、レジ台３上にある商品の形状が筒状であると判断した場合（ＡＣＴ２１、ＮＯ）、プロセッサ４１は、当該商品をアーム装置２３で把持できない形状であると判断する。当該商品をアーム装置２３で把持できないと判断した場合、プロセッサ４１は、ＡＣＴ２４へ進み、アームスキャナ１６による商品特定情報の読取処理を行う。
【００６６】
システムコントローラ２１による商品の把持設定が実施されると、アーム装置２３のプロセッサ５１は、把持設定に従って各アーム１４．１５を駆動させて商品を把持する（ＡＣＴ３０）。  
たとえば、袋状の商品を把持する場合、プロセッサ５１は、把持設定に従って把持機構１４ｂを商品の外側から当該商品の中心に向かって動かして商品の一端を摘まむ。把持機構１４ｂが商品の一端を摘まんだ後、プロセッサ５１は、図５に示すように、第２アーム１５を把持設定に従って動かして把持機構１５ｂで当該商品の反対側の一端を摘まむ。これにより、アーム装置２３は、２つのアーム１４、１５で商品の両端を摘まむように把持する。
【００６７】
また、箱状の商品を把持する場合、プロセッサ５１は、把持設定で指定される位置に基づいてアーム１４、１５の先端部（把持機構）をレジ台３の上方から当該商品の両側に動かす。プロセッサ５１は、アーム１４で商品の一端部を上から把持し、アーム１５で当該商品の他端部を把持する。これにより、アーム装置２３は、図６に示すように、２つのアーム１４、１５で商品の両側をそれぞれ把持する。
【００６８】
アーム１４、１５が商品を把持すると、プロセッサ５１は、システムコントローラ２１の指示に応じて、把持した商品を持ち上げてスキャナ１３の読取位置までに移動させる（ＡＣＴ３１）。持ち上げた商品をスキャナ１３の読取位置まで移動させると、プロセッサ５１は、当該商品をスキャナ１３の読取位置において所定の方向および角度で回転させる（ＡＣＴ３２）。プロセッサ５１は、システムコントローラ２１が指定する回転手順でアーム１４、１５が把持する商品を回転させる。
【００６９】
たとえば、プロセッサ５１は、商品を前方向（スキャナ１３に向かって下方向）に９０回転させた後、前方向とは逆の後方向に１８０℃回転させる。なお、商品が箱状であれば、システムコントローラ２１は、箱の側面がスキャナ１３で読み取れるように前方向及び後方向とは直交する横方向に回転させても良い。
【００７０】
アーム装置２３により商品を回転させるとともに、システムコントローラ２１のプロセッサ３１は、当該商品の商品特定情報（バーコード）の読取りを商品読取装置２２へ指示する。これに応じて、商品読取装置２２のプロセッサ４１は、スキャナ１３を用いてアーム装置２３が回転させる商品からバーコードを読み取る読取処理を行う（ＡＣＴ３３）。本実施形態では、スキャナ１３が読取る商品特定情報がバーコードであるものとしている。
【００７１】
すなわち、プロセッサ４１は、アーム装置２３が商品の回転させている間、スキャナ１３によるバーコードの読取処理を実行する。スキャナ１３は、アーム１４、１５によって読取位置で回転される商品の外観からバーコードを読取る。これにより、プロセッサ４１は、スキャナ１３が商品特定情報としてのバーコードを読取ったか否かを判断する（ＡＣＴ３４）。
【００７２】
スキャナ１３によりバーコードが読取れた場合（ＡＣＴ３４、ＹＥＳ）、プロセッサ４１は、バーコードとして読取った商品特定情報を読取結果として出力する（ＡＣＴ４３）。たとえば、商品からバーコードが読取ると、プロセッサ４１は、スキャナ１３で読取ったバーコードで特定される商品を示す情報を通信装置２５を介して精算装置２へ出力する。
【００７３】
また、スキャナ１３によりバーコードが読み取れなかった場合（ＡＣＴ３４、ＮＯ）、プロセッサ４１は、所定の条件に基づいてバーコードの読取処理をリトライするか否かを判断する（ＡＣＴ３５）。たとえば、プロセッサ４１は、上述したアーム装置２３による商品の回転を２回実行し、バーコードの読取りを試みるものとする。  
スキャナ１３によるバーコードの読取処理をリトライすると判断した場合（ＡＣＴ３５、ＹＥＳ）、プロセッサ４１は、ＡＣＴ３２へ戻り、上述した処理を繰り返す。
【００７４】
また、リトライしないと判断した場合（ＡＣＴ３５、ＮＯ）、プロセッサ４１は、商品のパッケージを引き伸ばした状態でスキャナ１３による商品特定情報（パーコード）の読取処理（引き伸ばし状態での読取処理）を実行するか否かを判断する（ＡＣＴ３６）。商品のパッケージを引き伸ばした状態とは、当該商品の両端を把持している２つのアーム１４、１５が把持位置間を引っ張った状態である。
【００７５】
商品パッケージの引き伸ばしは、商品のパッケージにおける折れやしわ等が原因でパッケージに印刷されているバーコードが読取れない場合であることを想定している。つまり、パッケージの両端（２つのアームによる把持位置間）を引っ張ってバーコードが読取れる可能性がある商品が引き伸ばしの対象となる。本実施形態では、袋状の商品に対して、引き伸ばし状態でのバーコードの読取処理を実行するものとする。この場合、プロセッサ４１は、当該商品が袋状あるか否かにより、当該商品に対して引き伸ばし状態での読取処理を行うか否かを判断する。
【００７６】
引き伸ばし状態での読取処理を実行すると判断した場合（ＡＣＴ３６、ＹＥＳ）、プロセッサ４１は、システムコントローラ２１に対して引き伸ばし状態での読取処理を実行する旨を指示する。引き伸ばし状態の読取処理の指示を受けると、システムコントローラ２１のプロセッサ３１は、アーム装置２３に対して当該商品のパッケージを引き伸ばす指示を送る（ＡＣＴ３７）。
【００７７】
アーム装置２３は、システムコントローラ２１からの指示に応じて、両アーム１４、１５が把持している商品の両端を互いに引っ張るように動作させる。ここで、第１アーム１４の把持機構１４ｂと第２アーム１５の把持機構１５ｂとは、それぞれ商品の両端を把持している。このため、プロセッサ５１は、把持機構１４ｂ（第１アーム１４の把持位置）と把持機構１５ｂ（第２アーム１５の把持位置）とを互いに反対向きに一定の動力で動かすように制御する。つまり、プロセッサ５１は、各アーム１４、１５の把持位置間を一定の力で引っ張るように、アーム駆動機構５４でアーム部１４ａとアーム部１５ａとを動作させる。把持位置間を一定の力で引っ張ると、アーム１４、１５は、商品のパッケージを引き伸ばした状態で当該商品の両端を把持するものとなる。
【００７８】
把持位置間を引っ張ると、プロセッサ５１は、把持位置間を引っ張った状態（パッケージを引き伸ばした状態）のままで把持する商品をスキャナ１３の読取位置で回転させる（ＡＣＴ３８）。たとえば、アーム装置２３のプロセッサ５１は、把持位置間を引っ張った状態で当該商品をスキャナ１３の読取位置に持ち上げる。スキャナ１３の読取位置に当該商品を持ち上げた後、プロセッサ５１は、当該商品をスキャナ１３の読取位置において所定の方向および角度で回転させる。アーム１４、１５が引っ張った状態で把持する商品を回転させる回転手順は、上記ＡＣＴ３２と同様な手順であっても良い。
【００７９】
アーム装置２３に引き伸ばした状態の商品を回転させるとともに、システムコントローラ２１のプロセッサ３１は、当該商品のバーコード（商品特定情報）の読取りを商品読取装置２２へ指示する。これに応じて、商品読取装置２２のプロセッサ４１は、スキャナ１３を用いてアーム装置２３が回転させる商品から商品特定情報としてのバーコードを読み取る処理を行う（ＡＣＴ３９）。
【００８０】
すなわち、プロセッサ４１は、アーム装置２３が引き伸ばした状態の商品の回転させている間、スキャナ１３によるバーコードの読取処理を実行する。スキャナ１３は、アーム１４、１５によって読取位置で回転される商品の外観からバーコードを読取る。これにより、プロセッサ４１は、スキャナ１３が商品特定情報としてのバーコードを読取ったか否かを判断する（ＡＣＴ４０）。
【００８１】
スキャナ１３によりバーコードが読取れた場合（ＡＣＴ４０、ＹＥＳ）、プロセッサ４１は、バーコードとして読取った商品特定情報を読取結果として出力する（ＡＣＴ４３）。たとえば、商品からバーコードを読取ると、プロセッサ４１は、スキャナ１３で読取ったバーコードで特定される商品を示す情報を通信装置２５を介して精算装置２へ出力する。
【００８２】
また、スキャナ１３が商品特定情報を読み取れなかった場合（ＡＣＴ４０、ＮＯ）、プロセッサ４１は、所定の条件に基づいて引き伸ばした状態での読取処理をリトライするか否かを判断する（ＡＣＴ４１）。引き伸ばした状態でのバーコードの読取処理をリトライすると判断した場合（ＡＣＴ３５、ＹＥＳ）、プロセッサ４１は、ＡＣＴ３８へ戻り、上述した処理を繰り返す。
【００８３】
リトライしないと判断した場合（ＡＣＴ４１、ＮＯ）、プロセッサ４１は、カメラ１２が撮影する撮影画像による商品認識処理（商品特定情報の読取処理）を実行する（ＡＣＴ４２）。カメラ１２の撮影画像による商品認識処理は、汚れなどでバーコードが読取れなかった商品を処理対象として想定する。商品認識処理において、プロセッサ４１は、アーム装置２３が把持する商品をカメラ１２で撮影し、カメラ１２が撮影した撮影画像から商品を認識する。商品認識処理については、後で詳細説明するものとする。
【００８４】
プロセッサ４１は、商品認識処理による認識結果を商品特定情報の読取結果として出力する（ＡＣＴ４３）。たとえば、商品認識処理で商品が認識できなかった場合、プロセッサ４１は、通信装置２５を介して商品特定情報が読取れなった旨を精算装置２へ出力する。商品認識処理で商品が認識できた場合、プロセッサ４１は、通信装置２５を介して認識した商品を示す情報を精算装置２へ出力する。
【００８５】
次に、アームスキャナ１６によるバーコードの読取処理について説明する。  
図７は、アームスキャナ１６によるバーコードの読取処理の動作例を説明するためのフローチャートである。  
上述した動作例によれば、本システムは、形状が袋状又は箱状でない商品、或は、サイズが規定値を超える商品をアームスキャナ１６による読取処理の対象とする。アームスキャナ１６は、アーム１４の先端部に設けられ、アーム１４の移動によって読取位置が動作する。アームスキャナ１６による読取処理では、レジ台３に置かれた商品に沿ってアーム１４の先端部を動かすことによりアームスキャナ１６で商品面をスキャンする。
【００８６】
商品読取装置２２のプロセッサ４１は、商品がアームスキャナ１６による読取処理の対象と判断すると、システムコントローラ２１へアームスキャナ１６による読取処理を要求する。また、プロセッサ４１は、カメラ１２が撮影した商品検出用の画像から特定した種々の情報（商品の形状、商品の中心位置、商品のエッジ位置など）をシステムコントローラ２１へ供給する。アームスキャナ１６による読取処理を実行する場合、システムコントローラ２１のプロセッサ３１は、当該商品の形状を確認する。
【００８７】
当該商品が袋状と判断した場合（ＡＣＴ６１、ＹＥＳ）、システムコントローラ２１のプロセッサ３１は、商品の上面をスキャナするようにアームスキャナ１６を動かすことをアーム装置２３へ指示する。たとえば、プロセッサ３１は、当該商品のエッジ位置に基づいてアームスキャナ１６がスキャンする位置（移動経路）を決定する。
【００８８】
たとえば、プロセッサ３１は、当該商品の４隅と推定される４つのエッジを結ぶようにロの字型にアームスキャナ１６を移動させる第１経路を設定する。さらに、プロセッサ３１は、第１経路でバーコードが読取れなかった場合に４つのエッジからなる対角線に沿ってアームスキャナ１６を移動させる第２経路を設定する。これにより、アームスキャナ１６は、レジ台３上に置かれた商品の上面を全体的にスキャナすることが可能となる。また、第１経路と第２経路とを設定することで、アームスキャナ１６は、第１経路で商品の外周付近を先にスキャナした後に第２経路で商品全体をスキャナできる。
【００８９】
アーム装置２３のプロセッサ５１は、システムコントローラ２１からの指示に従ってアームスキャナ１６を移動させて袋状の商品の上面をスキャンする（ＡＣＴ６２）。プロセッサ５１は、アーム駆動機構５４によりシステムコントローラ２１から指示される経路をアームスキャナ１６が移動するようにアーム１４を駆動させる。アームスキャナ１６は、アーム１４によってスキャン位置を移動しながらレジ台３上に置かれた袋状の商品の上面からバーコードをスキャンする。
【００９０】
アーム装置２３のプロセッサ５１は、アームスキャナ１６による読取り結果をシステムコントローラ２１へ供給する。システムコントローラ２１のプロセッサ３１は、アーム装置２３からのバーコードの読取結果を商品特定情報の読取結果として通信装置２５を介して精算装置２へ出力する。
【００９１】
また、当該商品が箱状と判断した場合（ＡＣＴ６３、ＹＥＳ）、システムコントローラ２１のプロセッサ３１は、商品の上面をスキャナするようにアームスキャナ１６を動かすことをアーム装置２３へ指示する。たとえば、プロセッサ３１は、当該商品のエッジ位置に基づいてアームスキャナ１６がスキャンする位置（移動経路）を決定する。たとえば、プロセッサ３１は、上述した例と同様、商品の４隅と推定される４つのエッジを結ぶロの字型の第１経路と４つのエッジの対角線に沿う第２経路とを設定する。
【００９２】
アーム装置２３のプロセッサ５１は、システムコントローラ２１からの指示に従ってアームスキャナ１６を移動させて箱状の商品の上面をスキャンする（ＡＣＴ６４）。プロセッサ５１は、アーム駆動機構５４によりシステムコントローラ２１から指示される経路をアームスキャナ１６が移動するようにアーム１４を駆動させる。アームスキャナ１６は、アーム１４によってスキャン位置を移動しながらレジ台３上に置かれた箱状の商品の上面からバーコードをスキャンする。
【００９３】
アーム装置２３のプロセッサ５１は、アームスキャナ１６によるバーコードの読取結果をシステムコントローラ２１へ供給する。システムコントローラ２１のプロセッサ３１は、アーム装置２３からの読取結果によってアームスキャナ１６が当該商品の上面からバーコードを読み取れたか否かを判断する（ＡＣＴ６５）。商品の上面からバーコードが読取れた場合（ＡＣＴ６５、ＮＯ）、プロセッサ３１は、バーコードの読取結果を通信装置２５を介して精算装置２へ出力する。
【００９４】
商品の上面からバーコードが読取れなかった場合（ＡＣＴ６５、ＹＥＳ）、プロセッサ３１は、当該商品の側面をアームスキャナ１６でスキャンすることをアーム装置２３へ指示する。たとえば、プロセッサ３１は、当該商品のエッジ位置に基づいてアームスキャナ１６が当該商品の側面をスキャンするための経路を設定する。
【００９５】
アーム装置２３のプロセッサ５１は、システムコントローラ２１からの指示に従ってアームスキャナ１６を移動させて箱状の商品の側面をスキャンする（ＡＣＴ６６）。プロセッサ５１は、アーム駆動機構５４によりアームスキャナ１６をレジ台３上の商品の側面に沿って移動させながら当該商品の側面からバーコードをスキャンする。システムコントローラ２１のプロセッサ３１は、アーム装置２３からのバーコードの読取結果を商品特定情報の読取結果として通信装置２５を介して精算装置２へ出力する。
【００９６】
当該商品が筒状（袋状でも箱状でもない）と判断した場合（ＡＣＴ６３、ＮＯ）、システムコントローラ２１のプロセッサ３１は、レジ台３上の商品の高さが所定高（たとえば、高さ１００ｍｍ）以内であるか否かを判断する（ＡＣＴ７０）。ここで、商品の高さとは、レジ台３の上面（商品の載置面）からレジ台３に置かれた状態の商品の最上部までの高さである。商品の高さは、たとえば、カメラ１２が撮影する撮影画像から推定する。また、商品の高さを検知する高さ検知用のセンサを設けても良い。所定高は、アーム１４を商品の上方で動かせるかを判断する閾値である。つまり、アーム１４は、所定高よりも低い位置では自在に動くことができ、所定高以上の高さでは自在に動けないものとする。
【００９７】
商品の高さが所定高以内である場合（ＡＣＴ７０、ＹＥＳ）、プロセッサ３１は、アーム１４を商品の上方で動かすことによりアームスキャナ１６で商品の周面からバーコードを読取る（ＡＣＴ７１）。すなわち、筒状の高さが所定高以内の商品に対しては、アーム部１４ａを商品の上方で円を描くように動かしてアームスキャナ１６で商品の周面を読取る。
【００９８】
図８は、筒状の商品Ｐ３の高さが所定高以内である場合のアームスキャナ１６の動作例を説明するための図である。  
本実施形態において、アーム１４は、所定高以内の低い位置では自在に動くことができるものとしている。このため、商品の高さが所定高以内であれば、アーム１４は、商品の上方を自在に移動できる。この結果、アーム部１４ａを商品の上方で動かして商品の上方から延びるアーム部１４ａの先端部に設けたアームスキャナ１６が商品の周面を自在に移動できることとなる。図８に示す例では、アーム部１４ａは、商品の上方を含む空間において、矢印ｂ１で示すように動かす。アーム部１４ａの先端部に設けたアームスキャナ１６は、矢印ｂ２で示すように、商品の上方を含む空間を動くアーム部１４ａの動作に伴って商品の周面に沿って移動する。
【００９９】
システムコントローラ２１のプロセッサ３１は、アームスキャナ１６を商品の周面において所定の角度分（たとえば３６０度）動かてばバーコードをスキャンするようアーム装置２３に指示する。ただし、商品の周面においてスキャナ１３に対向する面のバーコードは、スキャナ１３が読取れるものとしても良い。この場合、アームスキャナ１６は、商品の周面に沿って２７０度程度移動するものとしても良い。
【０１００】
アーム装置２３のプロセッサ５１は、システムコントローラ２１からの指示に従ってアームスキャナ１６が商品の周面に沿って移動するようにアーム駆動機構５４によりアーム１４を駆動させる。これにより、アームスキャナ１６は、レジ台３上に置かれた商品の周面に沿って移動しながら商品の周面に印刷されているバーコードをスキャンする。
【０１０１】
アーム装置２３のプロセッサ５１は、アームスキャナ１６によるバーコードの読取結果をシステムコントローラ２１へ供給する。システムコントローラ２１のプロセッサ３１は、アーム装置２３からのバーコードの読取結果を当該商品の商品特定情報として通信装置２５を介して精算装置２へ出力する。
【０１０２】
また、商品の高さが所定高を超える場合（ＡＣＴ７０、ＹＥＳ）、プロセッサ３１は、アーム１４を商品の側方で動かすことによりアームスキャナ１６で商品の周面からバーコードを読取る。アーム１４を商品の側方で動かす場合、アームスキャナ１６を３６０度回転させることは難しい。このため、プロセッサ３１は、商品の周面を幾つかの領域ごとに分けてバーコードのスキャンを実施する。本実施形態では、商品を上部と下部とに分けて下部および上部をそれぞれ半周分ずつスキャンする動作例について説明する。
【０１０３】
図９は、筒状の商品Ｐ４の高さが所定高を超える場合のアームスキャナ１６の動作例を説明するための図である。  
図９に示す例では、アーム１４の先端に設けたアームスキャナ１６で、筒状の商品Ｐ４の下部の周面と上部の周面とを半周分ずつスキャンする様子を示す。たとえば、アームスキャナ１６は、矢印ｃ１に示すように、商品Ｐ４の下部の初期位置から時計まわりに周面を半周してバーコードをスキャンする。これでバーコードが読取れなければ、アームスキャナ１６は、矢印ｃ２に示すように、商品Ｐ４の上部の初期位置へ移動して商品の周面を時計まわりに半周してバーコードをスキャンする。
【０１０４】
これでもバーコードが読取れなければ、アームスキャナ１６は、再度、商品Ｐ４の下部の初期位置へ移動して商品Ｐ４の周面を反時計まわり（点線の矢印ｃ３）に半周してバーコードをスキャンする。これでもバーコードが読取れなければ、アームスキャナ１６は、再度、商品Ｐ４の上部の初期位置へ移動して商品Ｐ４の周面を反時計まわりに半周してバーコードをスキャンする。これらの動作によって、アーム１４は、商品Ｐ４の側方からアームスキャナ１６を動かすことで、商品Ｐ４の周面全体をアームスキャナ１６でスキャンする。
【０１０５】
まず、プロセッサ３１は、アームスキャナ１６を商品の下部の初期位置から商品の周面に沿って時計周りに半周分移動させてバーコードをスキャンすることをアーム装置２３へ指示する。アーム装置２３のプロセッサ５１は、アーム１４を動作させてアームスキャナ１６を商品の下部の初期位置へ移動させる。アームスキャナ１６を商品の下部の初期位置に移動させると、プロセッサ５１は、アーム１４を当該商品の側方で動作させてアームスキャナ１６を商品の周面に沿って時計周りに半周分移動させる（ＡＣＴ７２）。これにより、アームスキャナ１６は、商品の下部における半周分の周面にあるバーコードをスキャンする。
【０１０６】
商品の下部における半周分の周面からバーコードが読取れなかった場合（ＡＣＴ７３、ＹＥＳ）、プロセッサ３１は、商品の上部の半周面を時計周りにスキャンすることをアーム装置２３へ指示する。アーム装置２３のプロセッサ５１は、システムコントローラ２１からの指示に応じてアーム１４を動作させてアームスキャナ１６を商品の上部の初期位置へ移動させる。アームスキャナ１６が商品の上部の初期位置に移動すると、プロセッサ５１は、アーム１４を商品の側方で動作させることで、アームスキャナ１６を商品の周面に沿って時計周りに半周分移動させる（ＡＣＴ７４）。これにより、アームスキャナ１６は、商品の上部における半周分の周面にあるバーコードをスキャンする。
【０１０７】
商品の上部における半周分の周面からバーコードが読取れなかった場合（ＡＣＴ７５、ＹＥＳ）、プロセッサ３１は、商品の下部の残りの半周面をスキャンすることをアーム装置２３へ指示する。アーム装置２３のプロセッサ５１は、システムコントローラ２１からの指示に応じてアーム１４を動作させてアームスキャナ１６を商品の下部の初期位置へ移動させる。アームスキャナ１６が商品の下部の初期位置に移動すると、プロセッサ５１は、アーム１４を商品の側方で動作させることで、アームスキャナ１６を商品の周面に沿って反時計周りに半周分移動させる（ＡＣＴ７６）。これにより、アームスキャナ１６は、商品の下部における残りの半周分の周面にあるバーコードをスキャンする。
【０１０８】
商品の下部における残りの半周分の周面からもバーコードが読取れなかった場合（ＡＣＴ７７、ＹＥＳ）、プロセッサ３１は、商品の上部の残りの半周面をスキャンすることをアーム装置２３へ指示する。アーム装置２３のプロセッサ５１は、システムコントローラ２１からの指示に応じてアーム１４を動作させてアームスキャナ１６を商品の上部の初期位置へ移動させる。アームスキャナ１６が商品の上部の初期位置に移動すると、プロセッサ５１は、アーム１４を商品の側方で動作させることで、アームスキャナ１６を商品の周面に沿って反時計周りに半周分移動させる（ＡＣＴ７８）。これにより、アームスキャナ１６は、商品の上部における残りの半周分の周面にあるバーコードをスキャンする。
【０１０９】
システムコントローラ２１のプロセッサ３１は、上記のように動作させるアーム装置２３からアームスキャナ１６によるバーコードの読取結果を取得する。システムコントローラ２１のプロセッサ３１は、アーム装置２３からのバーコードの読取結果を当該商品の商品特定情報として通信装置２５を介して精算装置２へ出力する。
【０１１０】
次に、カメラ１２が撮影する撮影画像に対する商品認識処理について説明する。  
図１０は、カメラ１２が撮影する撮影画像に対する商品認識処理の動作例を説明するためのフローチャートである。  
上述した図３及び図４に示す動作例において、システムコントローラ２１は、スキャナ１３でバーコードが読取れない場合にカメラ１２の撮影画像による商品認識処理を実行する。システムコントローラ２１は、カメラ１２の撮影画像による商品認識処理を行う場合、カメラ１２の撮影位置へ商品を移動するようにアーム装置２３へ指示する。アーム装置２３のプロセッサ５１は、システムコントローラ２１からの指示に従ってアーム１４、１５が把持する商品をカメラ１２の撮影位置へ移動させる（ＡＣＴ８１）。
【０１１１】
商品がカメラ１２の撮影位置へ移動すると、システムコントローラ２１は、商品特定情報を含む画像を撮影するため、アーム１４、１５が把持する商品を回転させる。システムコントローラ２１は、アーム装置２３で商品を回転させながら商品読取装置２２でカメラ１２が撮影する撮影画像から商品特定情報の画像を検出するものとする。
【０１１２】
本実施形態では、商品をカメラ１２に向かって前後方向（前方（手前）とその逆の後方）に所定角度（たとえば、１５度）ずつ回転させてカメラ１２が撮影する画像から商品特定情報の画像を検出するものとする。また、本実施形態では、汚れ等によってスキャナ１３でバーコードが読取れなかった場合を想定し、バーコード領域においてバーコードの下側に付記される数字列によって商品を認識するものとする。このため、以下の処理では、商品読取装置は、商品特定情報の画像としてバーコード領域の画像（バーコード画像）を検出し、バーコード画像における数字列から商品を認識するものとする。
【０１１３】
すなわち、システムコントローラ２１は、アーム１４、１５が把持する商品の回転させる角度を決定し、決定した角度での商品の回転をアーム装置２３へ指示する。アーム装置２３は、システムコントローラ２１からの指示に応じてアーム１４、１５が把持する商品を回転させる（ＡＣＴ８２）。たとえば、システムコントローラ２１は、商品を前方（手前）に所定角度（たとえば、１５度）ずつ回転させる。前方への回転角度が９０度に達すると、システムコントローラ２１は、当該商品を後方に所定角度（たとえば、１５度）ずつ回転させ、後方への回転角度が１８０度に達するまで商品を回転させる。
【０１１４】
アーム装置２３が商品を回転させると、システムコントローラ２１は、商品読取装置２２にカメラ１２による撮影画像からの商品特定情報の画像（バーコード画像）の検出を指示する。商品読取装置２２のプロセッサ４１は、システムコントローラ２１からの指示に応じてカメラ１２により画像を撮影する（ＡＣＴ８３）。カメラ１２が画像を撮影すると、商品読取装置２２のプロセッサ４１は、カメラ１２が撮影した撮影画像からバーコード画像を検出する（ＡＣＴ８４）。商品読取装置２２のプロセッサ４１は、バーコード画像の検出の有無を示す情報をシステムコントローラ２１へ通知する。
【０１１５】
カメラ１２の撮影画像からバーコード画像が検出されなかった場合（ＡＣＴ８５、ＮＯ）、システムコントローラ２１は、さらに商品を回転させてバーコード画像の検出を行うかを判断する（ＡＣＴ８６）。さらに商品を回転させてバーコード画像を検出すると判断した場合（ＡＣＴ８６、ＮＯ）、システムコントローラ２１は、ＡＣＴ８２へ戻り、上述した処理を再度実行する。バーコード画像の検出を終了すると判断した場合（ＡＣＴ８６、ＹＥＳ）、システムコントローラ２１は、カメラ１２の撮影画像による商品認識が失敗したものとし、処理を終了する。
【０１１６】
また、カメラ１２の撮影画像からバーコード画像が検出できた場合（ＡＣＴ８５、ＮＯ）、システムコントローラ２１は、商品の向きを調整して商品認識処理用の画像をカメラ１２で撮影する。たとえば、システムコントローラ２１は、商品をカメラ１２に向かって左右方向に所定角度（たとえば、５度）ずつ回転させた（傾けた）状態でカメラ１２が撮影する撮影画像を取得する。この場合、システムコントローラ２１は、アーム１４、１５が把持する商品を右に５度ずつ回転させてカメラ１２で画像を撮影させる。右への回転角が４５度になると、システムコントローラ２１は、商品を元の角度に戻した後、商品を左に５度ずつ回転させてカメラ１２で画像を撮影させる。左への回転角が４５度になると、システムコントローラ２１は、各角度で撮影した撮影画像に基づく商品認識を商品読取装置２２に実行させる。
【０１１７】
すなわち、システムコントローラ２１は、アーム１４、１５が把持する商品の向きを決定し、決定した商品の向きをアーム装置２３へ指示する。アーム装置２３は、システムコントローラ２１からの指示に応じてアーム１４、１５が把持する商品の向きを調整させる（ＡＣＴ８７）。たとえば、システムコントローラ２１は、右への回転角度が４５度に達するまで、商品を右に５度回転させることをアーム装置２３に指示する。また、システムコントローラ２１は、右への回転角度が４５度に達すると、商品を元の角度に戻した後に商品を左に５度回転させることをアーム装置２３に指示する。
【０１１８】
アーム装置２３が商品の向きを調整すると、システムコントローラ２１は、商品読取装置２２に商品認識用の画像の撮影を指示する。商品読取装置２２は、システムコントローラ２１からの指示に応じてカメラ１２により画像を撮影する（ＡＣＴ８８）。商品読取装置２２は、カメラ１２が撮影した撮影画像を商品認識用の画像として画像メモリ４４に保存する（ＡＣＴ８９）。
【０１１９】
カメラ１２で撮影した画像を商品認識用の画像として保存すると、システムコントローラ２１は、カメラ１２による商品認識用の画像の撮影を終了するか否かを判断する（ＡＣＴ９０）。カメラ１２による撮影を終了しないと判断した場合（ＡＣＴ９０、ＮＯ）、システムコントローラ２１は、ＡＣＴ８７へ戻り、上述した処理を再度実行する。
【０１２０】
カメラ１２による撮影を終了すると判断した場合（ＡＣＴ９０、ＮＯ）、システムコントローラ２１は、画像処理による商品認識を商品読取装置２２へ指示する。商品読取装置２２のプロセッサ４１は、画像メモリ４４に保存したカメラ１２の撮影画像（商品認識処理用の画像）に基づいて商品認識処理を実行する（ＡＣＴ９１）。商品読取装置２２のプロセッサ４１は、文字認識用のプログラムを実行することにより、カメラ１２による複数の撮影画像を元にバーコード下にある数字を認識する。
【０１２１】
たとえば、プロセッサ４１は、各撮影画像からバーコード画像を抽出し、バーコード画像からバーコードの下にある数字を検出する。バーコードの下にある全ての数字を検出すると、プロセッサ４１は、検出した数字を認識し、認識した数字を並べた数字情報を商品認識結果とする。プロセッサ４１は、商品認識結果をシステムコントローラ２１へ通知する。システムコントローラ２１は、商品認識装置からの商品認識結果を通信装置２５を介して精算装置２へ送信する。精算装置２は、バーコードの下の数字情報から当該商品を識別し、当該商品の精算処理を実行する。
【０１２２】
以上のように、本実施形態に係る商品読取システムは、カメラ、アームと、読取位置が移動可能なアームスキャナ、および、コントローラなどを有する。カメラは、レジ台に置かれた商品を撮影する。プロセッサはカメラが撮影した画像からレジ台上の商品がアーム装置で把持可能な大きさであるかを判定する。コントローラは、商品の高さが所定高を超える場合、アームスキャナの読取位置を前記商品の高さ方向における下側半分の側面と上側半分の側面とに沿ってそれぞれ半周分ずつ移動させるようにアームを動かす。アームスキャナは、アームによって移動する読取位置でバーコードを読み取る。
【０１２３】
これにより、本実施形態に係る商品読取システムは、高さが所定高を超える商品に対しては、アームスキャナで商品の下側と上側とで半周分ずつ側面をスキャンすることで、商品の高さに応じてアームを効率良く動かすことができ、アームスキャナによるバーコードの読取りを確実かつ高速に行うことができる。
【０１２４】
また、本実施形態に係る商品読取システムのコントローラは、レジ台に置かれた状態での商品の高さが所定高以内である場合、アームスキャナの読取位置を商品の側面に沿って１周分移動させる。アームスキャナは、商品の側面に沿って１周してバーコードをスキャンする。これにより、本実施形態に係る商品読取システムは、高さが所定高以内の商品に対してはアームスキャナが商品の側面に沿って１周分を連続的にスキャンすることで、商品の高さに応じてアームを効率良く動かすことができ、アームスキャナによるバーコードの読取りを確実かつ高速に行うことができる。
【０１２５】
また、本実施形態に係る商品読取システムのコントローラは、レジ台に置かれた状態での商品の高さが所定高を超える場合、アームスキャナの読取位置を商品の下側半分の側面を時計周りに半周分移動させた後に上側半分の側面を時計周り半周分移動させ、さらに、前記商品の下側半分の側面を反時計周りに半周分移動させた後に前記上側半分の側面を反時計周りに半周分移動させる。これにより、本実施形態に係る商品読取システムは、高さが所定高以内の商品に対してはアームスキャナが商品の上下部分を半周ごとに順番にスキャンすることができ、アームを効率良く動かしてアームスキャナによるバーコードの読取りを確実かつ高速に行うことができる。
【０１２６】
また、本実施形態に係る商品読取システムは、固定の読取位置において商品特定情報を読み取る固定スキャナとプロセッサとさらに有する。プロセッサは、カメラが撮影した画像に写る商品がアームに設けた把持機構で把持できない筒状であるか把持できる形状であるかを判定する。コントローラは、商品が把持できる形状であると判断された場合には商品をアームの把持機構で把持させて固定スキャナの読取位置に移動させる。
【０１２７】
これにより、本実施形態に係る商品読取システムは、把持できない筒状の商品については高さに応じてアームスキャナを動かしてバーコードを読取ることでき、把持できる形状の商品については商品を把持して固定スキャナにバーコードを読み取らせることができる。この結果、商品読取システムは、商品の形状および高さに応じて固定スキャナとアームスキャナとを使い分けてバーコードの読取りを確実かつ高速に行うことができる。
【０１２８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２９】
１…商品読取システム（ロボット）、２…精算装置（レジ）、３…レジ台（台）、１１…センサ、１２…カメラ、１３…スキャナ（固定スキャナ）、１４…第１アーム、１５…第２アーム、１４ｂ、１５ｂ…把持機構、１６…アームスキャナ（可動スキャナ）、２１…システムコントローラ（制御装置）、２２…商品読取装置（商品リーダ）、２３…アーム装置、２５…通信装置、３１、４１、５１、６１、７１…プロセッサ。
【図１】
2019185565.tif 000003
【図２】
2019185565.tif 000004
【図３】
2019185565.tif 000005
【図４】
2019185565.tif 000006
【図５】
2019185565.tif 000007
【図６】
2019185565.tif 000008
【図７】
2019185565.tif 000009
【図８】
2019185565.tif 000010
【図９】
2019185565.tif 000011
【図１０】
2019185565.tif 000012