JP7259269B2 - データ処理装置、データ処理方法 - Google Patents

データ処理装置、データ処理方法 Download PDF

Info

Publication number
JP7259269B2
JP7259269B2 JP2018208192A JP2018208192A JP7259269B2 JP 7259269 B2 JP7259269 B2 JP 7259269B2 JP 2018208192 A JP2018208192 A JP 2018208192A JP 2018208192 A JP2018208192 A JP 2018208192A JP 7259269 B2 JP7259269 B2 JP 7259269B2
Authority
JP
Japan
Prior art keywords
cooking
state
data
data processing
ingredients
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018208192A
Other languages
English (en)
Other versions
JP2020075301A (ja
Inventor
献太 河本
雅博 藤田
ミカエル シェグフリード シュプランガー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Sony Group Corp
Original Assignee
Sony Corp
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp, Sony Group Corp filed Critical Sony Corp
Priority to JP2018208192A priority Critical patent/JP7259269B2/ja
Priority to CN201980071475.0A priority patent/CN113168604A/zh
Priority to US17/287,031 priority patent/US11995580B2/en
Priority to EP19801122.3A priority patent/EP3877928A1/en
Priority to KR1020217011654A priority patent/KR20210089646A/ko
Priority to PCT/JP2019/041606 priority patent/WO2020095687A1/en
Publication of JP2020075301A publication Critical patent/JP2020075301A/ja
Application granted granted Critical
Publication of JP7259269B2 publication Critical patent/JP7259269B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • AHUMAN NECESSITIES
    • A23FOODS OR FOODSTUFFS; TREATMENT THEREOF, NOT COVERED BY OTHER CLASSES
    • A23LFOODS, FOODSTUFFS, OR NON-ALCOHOLIC BEVERAGES, NOT COVERED BY SUBCLASSES A21D OR A23B-A23J; THEIR PREPARATION OR TREATMENT, e.g. COOKING, MODIFICATION OF NUTRITIVE QUALITIES, PHYSICAL TREATMENT; PRESERVATION OF FOODS OR FOODSTUFFS, IN GENERAL
    • A23L5/00Preparation or treatment of foods or foodstuffs, in general; Food or foodstuffs obtained thereby; Materials therefor
    • A23L5/10General methods of cooking foods, e.g. by roasting or frying
    • AHUMAN NECESSITIES
    • A23FOODS OR FOODSTUFFS; TREATMENT THEREOF, NOT COVERED BY OTHER CLASSES
    • A23PSHAPING OR WORKING OF FOODSTUFFS, NOT FULLY COVERED BY A SINGLE OTHER SUBCLASS
    • A23P30/00Shaping or working of foodstuffs characterised by the process or apparatus
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47JKITCHEN EQUIPMENT; COFFEE MILLS; SPICE MILLS; APPARATUS FOR MAKING BEVERAGES
    • A47J36/00Parts, details or accessories of cooking-vessels
    • A47J36/32Time-controlled igniting mechanisms or alarm devices
    • A47J36/321Time-controlled igniting mechanisms or alarm devices the electronic control being performed over a network, e.g. by means of a handheld device
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0045Manipulators used in the food industry
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/12Hotels or restaurants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/41Higher-level, semantic clustering, classification or understanding of video scenes, e.g. detection, labelling or Markovian modelling of sport events or news items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/44Event detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Multimedia (AREA)
  • Food Science & Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Tourism & Hospitality (AREA)
  • Chemical & Material Sciences (AREA)
  • Polymers & Plastics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Marketing (AREA)
  • Databases & Information Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Nutrition Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Primary Health Care (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)

Description

本技術は、データ処理装置、データ処理方法に関し、特に、料理の画像やテキストを含むレシピデータに基づいて調理ロボットを制御することができるようにしたデータ処理装置、データ処理方法に関する。
料理のレシピを公開しているサービスが存在する。ユーザは、カテゴリから探したり、食材の名前をキーワードとして入力したりして好みのレシピを検索することができる。レシピには、完成した料理の写真、食材、調理工程などの各種の情報が記載される。
このようなサービスによって提供されるレシピは、当然、人が見るために用意されたものである。大まかな手順の説明しか記載されていない場合でも、人であれば、過去の経験や他の料理の知識などから詳細な手順を推定し、調理を行うことができる。
ところで、AI(Artificial Intelligence)やセンシング技術などの発達に伴い、調理を自動的に行うロボットである調理ロボットが注目されている。調理ロボットの中には、人と同じように2本のアームを使って調理を行うものがある。
特表2017-506169号公報
人が見るために用意されたレシピに基づいて調理ロボットを駆動させることができるとすれば便利である。レシピの記載の通りにアームなどを駆動させるためのプログラムを人が用意する必要がない。
本技術はこのような状況に鑑みてなされたものであり、料理の画像やテキストを含むレシピデータに基づいて調理ロボットを制御することができるようにするものである。
本技術の一側面のデータ処理装置は、料理の調理工程全体の状態シーケンスである調理全体シーケンスを、それぞれの調理工程に関するテキストデータと画像とを含むレシピデータに基づいて設定し、前記調理全体シーケンスを構成する状態間の状態シーケンスである個別シーケンスを予め用意されたデータベースの情報に基づいて設定し、アームを備える調理ロボットにそれぞれの前記個別シーケンスに応じた調理動作を実行させるための命令コマンドを生成するコマンド生成部を備える。
本技術の一側面においては、料理の調理工程全体の状態シーケンスである調理全体シーケンスが、それぞれの調理工程に関するテキストデータと画像とを含むレシピデータに基づいて設定され、前記調理全体シーケンスを構成する状態間の状態シーケンスである個別シーケンスが予め用意されたデータベースの情報に基づいて設定され、アームを備える調理ロボットにそれぞれの前記個別シーケンスに応じた調理動作を実行させるための命令コマンドが生成される。
本技術の一実施形態に係る制御システムの構成例を示す図である。 データ処理装置の配置例を示す図である。 調理ロボットの外観を示す斜視図である。 調理アームの様子を拡大して示す図である。 調理アームの外観を示す図である。 調理アームの各部の可動域の例を示す図である。 調理アームとコントローラの接続の例を示す図である。 レシピデータの例を示す図である。 レシピデータの例を示す図である。 データ処理装置が行う全体の処理の流れを示す図である。 状態の記述の例を示す図である。 ゴール状態の記述の具体例を示す図である。 状態シーケンスのプランニングの例を示す図である。 調理全体シーケンスの例を示す図である。 状態遷移の例を示す図である。 データベースの例を示す図である。 食材DBに格納される情報の例を示す図である。 調理方法DBの構成例を示す図である。 状態遷移DBに格納される情報の例を示す図である。 アクションDBに格納される情報の例を示す図である。 盛り付け方法DBに格納される情報の例を示す図である。 アクションの表現例を示す図である。 状態遷移を示す図である。 アクションの様子を示す図である。 データ処理装置のハードウェアの構成例を示すブロック図である。 データ処理装置の機能構成例を示すブロック図である。 調理ロボットの構成例を示すブロック図である。 データ処理装置の制御処理について説明するフローチャートである。 データ処理装置の制御処理について説明する、図28に続くフローチャートである。 アクションの選択の例を示す図である。 アクション候補の例を示す図である。 アクション候補の評価の例を示す図である。 命令コマンドの生成の例を示す図である。 調理ロボットの調理処理について説明するフローチャートである。 レシピデータの加工の例を示す図である。
以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
1.調理ロボットの制御システム
2.状態シーケンスのプランニングとアクション
3.各装置の構成と動作
4.変形例
<<調理ロボットの制御システム>>
<システム構成>
図1は、本技術の一実施形態に係る制御システムの構成例を示す図である。
図1に示すように、制御システムは、データ処理装置1と調理ロボット2から構成される。調理ロボット2は、調理アームなどの駆動系の装置、および、各種のセンサを有し、調理を行う機能を搭載したロボットである。調理ロボット2は、例えば家庭内に設置される。
データ処理装置1は、調理ロボット2を制御する装置である。データ処理装置1はコンピュータなどにより構成される。
図1の左端に示すように、データ処理装置1による調理ロボット2の制御は、料理毎に用意されるレシピデータに基づいて行われる。レシピデータには、完成した料理を撮影した画像である料理画像、料理の名前、食材の名前、調理工程を説明する文章などが記述される。レシピデータは、それによって表示されるレシピを見て、人が調理を行うためにも用いられる。
なお、料理は、調理を経て出来上がる成果物のことを意味する。調理は、料理を作る過程や、料理を作る行為(作業)のことを意味する。
データ処理装置1は、人による調理にも用いられるレシピデータに基づいて調理ロボット2を制御し、料理を作らせることになる。
矢印A1に示すように、例えば料理Xのレシピデータが入力された場合、データ処理装置1は、レシピデータの記述に基づいて、料理Xが完成するまでのプランニングを行う。
プランニングは、例えば、スタート状態からゴール状態までの状態遷移を設定するようにして行われる。スタート状態として、未調理の食材の状態が設定され、ゴール状態として、完成した料理Xの状態が設定される。状態の遷移は、調理ロボット2の動作などによって食材の状態が変化することにより生じることになる。
データ処理装置1は、現在状態から次の状態への遷移を生じさせるための動作を調理ロボット2にとらせるための命令コマンドを生成し、矢印A2に示すように調理ロボット2に出力する。
調理ロボット2は、データ処理装置1から供給された命令コマンドに従って調理アームなどの各部を駆動し、調理に関する動作を行う。命令コマンドには、調理アームに設けられたモータのトルク、駆動方向、駆動量を制御する情報などが含まれる。
ゴール状態に到達するまでの間、データ処理装置1から調理ロボット2に対して命令コマンドが順次出力される。命令コマンドに応じた動作を調理ロボット2がとることにより、最終的に、料理Xが完成することになる。
このように、データ処理装置1は、調理ロボット2にとっては不完全な情報といえるレシピデータを命令コマンドに変換し、調理ロボット2の動作を制御する装置として機能する。レシピデータは、人が見て調理工程などを確認するために用意された情報であるから、調理ロボット2を制御するための情報としては不完全な情報といえる。
人が調理を行うためのレシピデータに基づいて調理ロボット2を制御することができるから、例えば制御システムの管理者は、調理ロボット2を制御するためのプログラムを料理毎に用意する必要がない。
人が調理を行うためのレシピデータは、レシピを公開するサービスのために用意されるなどして大量に存在する。ユーザは、多くの料理の中から選択した料理を調理ロボット2に作らせることができる。例えば、レシピデータは、レシピを公開するサービスを提供しているサーバから、ユーザによる選択に応じて取得され、データ処理装置1に入力される。
図2は、データ処理装置1の配置例を示す図である。
図2のAに示すように、データ処理装置1は、例えば調理ロボット2の外部の装置として設けられる。図2のAの例においては、データ処理装置1と調理ロボット2は、インターネットなどのネットワーク3を介して接続される。
データ処理装置1から送信された命令コマンドは、ネットワーク3を介して調理ロボット2により受信される。調理ロボット2からデータ処理装置1に対しては、調理ロボット2のカメラにより撮影された画像、調理ロボット2に設けられたセンサにより測定されたセンサデータなどの各種のデータがネットワーク3を介して送信される。
1台のデータ処理装置1に対して1台の調理ロボット2が接続されるのではなく、1台のデータ処理装置1に対して複数台の調理ロボット2が接続されるようにしてもよい。
図2のBに示すように、データ処理装置1が調理ロボット2の筐体の内部に設けられるようにしてもよい。この場合、データ処理装置1が生成する命令コマンドに従って、調理ロボット2の各部の動作が制御される。
以下、主に、データ処理装置1が、調理ロボット2の外部の装置として設けられるものとして説明する。
<調理ロボットの構成>
図3は、調理ロボット2の外観を示す斜視図である。
図3に示すように、調理ロボット2は、横長直方体状の筐体11を有するキッチン型のロボットである。調理ロボット2の本体となる筐体11の内部に各種の構成が設けられる。
筐体11の背面側には、筐体11の上面から立設する形で調理補助システム12が設けられる。薄板状の部材で区切ることによって調理補助システム12に形成された各スペースは、冷蔵庫、オーブンレンジ、収納などの、調理アーム21-1乃至21-4による調理を補助するための機能を有する。
天板11Aには長手方向にレールが設けられており、そのレールに調理アーム21-1乃至21-4が設けられる。調理アーム21-1乃至21-4は、移動機構としてのレールに沿って位置を変えることが可能とされる。
調理アーム21-1乃至21-4は、円筒状の部材を関節部で接続することによって構成されるロボットアームである。調理に関する各種の作業が調理アーム21-1乃至21-4により行われる。
天板11Aの上方の空間が、調理アーム21-1乃至21-4が調理を行う調理空間となる。調理空間は、調理アーム21-1乃至21-4が調理を行う空間と完全に一致する空間だけでなく、そのような空間に包含される部分的な空間をも含む。
図3においては4本の調理アームが示されているが、調理アームの数は4本に限定されるものではない。以下、適宜、調理アーム21-1乃至21-4のそれぞれを区別する必要がない場合、まとめて調理アーム21という。
図4は、調理アーム21の様子を拡大して示す図である。
図4に示すように、調理アーム21の先端には、各種の調理機能を有するアタッチメントが取り付けられる。調理アーム21用のアタッチメントとして、食材や食器などを掴むマニピュレーター機能(ハンド機能)を有するアタッチメント、食材をカットするナイフ機能を有するアタッチメントなどの各種のアタッチメントが用意される。
図4の例においては、ナイフ機能を有するアタッチメントであるナイフアタッチメント31-1が調理アーム21-1に取り付けられている。ナイフアタッチメント31-1を用いて、天板11Aの上に置かれた肉の塊がカットされている。
調理アーム21-2には、食材を固定させたり、食材を回転させたりすることに用いられるアタッチメントであるスピンドルアタッチメント31-2が取り付けられている。
調理アーム21-3には、食材の皮をむくピーラーの機能を有するアタッチメントであるピーラーアタッチメント31-3が取り付けられている。
スピンドルアタッチメント31-2を用いて調理アーム21-2により持ち上げられているジャガイモの皮が、ピーラーアタッチメント31-3を用いて調理アーム21-3によりむかれている。このように、複数の調理アーム21が連携して1つの作業を行うことも可能とされる。
調理アーム21-4には、マニピュレーター機能を有するアタッチメントであるマニピュレーターアタッチメント31-4が取り付けられている。マニピュレーターアタッチメント31-4を用いて、チキンを載せたフライパンが、オーブン機能を有する調理補助システム12のスペースに運ばれている。
このような調理アーム21による調理は、作業の内容に応じてアタッチメントを適宜取り替えて進められる。アタッチメントの取り替えは、例えば調理ロボット2により自動的に行われる。
4本の調理アーム21のそれぞれにマニピュレーターアタッチメント31-4を取り付けるといったように、同じアタッチメントを複数の調理アーム21に取り付けることも可能とされる。
調理ロボット2による調理は、調理アーム用のツールとして用意された以上のようなアタッチメントを用いて行われるだけでなく、適宜、人が調理に使うツールと同じツールを用いて行われる。例えば、人が使うナイフをマニピュレーターアタッチメント31-4によって掴み、ナイフを用いて食材のカットなどの調理が行われる。
<調理アームの構成>
図5は、調理アーム21の外観を示す図である。
図5に示すように、調理アーム21は、全体的に、細い円筒状の部材を、関節部となるヒンジ部で接続することによって構成される。各ヒンジ部には、各部材を駆動させるための力を生じさせるモータなどが設けられる。
円筒状の部材として、先端から順に、着脱部材51、中継部材53、およびベース部材55が設けられる。着脱部材51は、中継部材53の長さの略1/5程度の長さを有する部材である。着脱部材51の長さと中継部材53の長さを合わせた長さが、ベース部材55の長さとほぼ同じ長さとなる。
着脱部材51と中継部材53はヒンジ部52によって接続され、中継部材53とベース部材55はヒンジ部54によって接続される。中継部材53の両端にはヒンジ部52とヒンジ部54が設けられる。
この例においては、3本の円筒状の部材によって調理アーム21が構成されているが、4本以上の円筒状の部材によって構成されるようにしてもよい。この場合、中継部材53が複数設けられる。
着脱部材51の先端には、アタッチメントが着脱される着脱部51Aが設けられる。着脱部材51は、各種のアタッチメントが着脱される着脱部51Aを有し、アタッチメントを動作させることによって調理を行う調理機能アーム部として機能する。
ベース部材55の後端には、レールに取り付けられる着脱部56が設けられる。ベース部材55は、調理アーム21の移動を実現する移動機能アーム部として機能する。
図6は、調理アーム21の各部の可動域の例を示す図である。
楕円#1で囲んで示すように、着脱部材51は、円形断面の中心軸を中心として回転可能とされる。楕円#1の中心に示す扁平の小円は、一点鎖線の回転軸の方向を示す。
円#2で囲んで示すように、着脱部材51は、ヒンジ部52との嵌合部51Bを通る軸を中心として回転可能とされる。また、中継部材53は、ヒンジ部52との嵌合部53Aを通る軸を中心として回転可能とされる。
円#2の内側に示す2つの小円はそれぞれの回転軸の方向(紙面垂直方向)を示す。嵌合部51Bを通る軸を中心とした着脱部材51の可動範囲と、嵌合部53Aを通る軸を中心とした中継部材53の可動範囲は、それぞれ例えば90度の範囲である。
中継部材53は、先端側の部材53-1と、後端側の部材53-2により分離して構成される。楕円#3で囲んで示すように、中継部材53は、部材53-1と部材53-2との連結部53Bにおいて、円形断面の中心軸を中心として回転可能とされる。
他の可動部も、基本的に同様の可動域を有する。
すなわち、円#4で囲んで示すように、中継部材53は、ヒンジ部54との嵌合部53Cを通る軸を中心として回転可能とされる。また、ベース部材55は、ヒンジ部54との嵌合部55Aを通る軸を中心として回転可能とされる。
ベース部材55は、先端側の部材55-1と、後端側の部材55-2により分離して構成される。楕円#5で囲んで示すように、ベース部材55は、部材55-1と部材55-2との連結部55Bにおいて、円形断面の中心軸を中心として回転可能とされる。
円#6で囲んで示すように、ベース部材55は、着脱部56との嵌合部55Cを通る軸を中心として回転可能とされる。
楕円#7で囲んで示すように、着脱部56は、円形断面の中心軸を中心として回転可能となるようにレールに取り付けられる。
このように、先端に着脱部51Aを有する着脱部材51、着脱部材51とベース部材55を連結する中継部材53、後端に着脱部56が接続されるベース部材55は、それぞれ、ヒンジ部により回転可能に接続される。各可動部の動きが、調理ロボット2内のコントローラにより命令コマンドに従って制御される。
図7は、調理アームとコントローラの接続の例を示す図である。
図7に示すように、調理アーム21とコントローラ61は、筐体11の内部に形成された空間11B内において配線を介して接続される。図7の例においては、調理アーム21-1乃至21-4とコントローラ61は、それぞれ、配線62-1乃至62-4を介して接続されている。可撓性を有する配線62-1乃至62-4は、調理アーム21-1乃至21-4の位置に応じて適宜撓むことになる。
このように、調理ロボット2は、調理アーム21を駆動させることにより調理に関する各種の作業を行うことが可能なロボットである。
<レシピデータ>
図8および図9は、レシピデータの例を示す図である。
図8および図9のレシピデータは、「ニース風サラダ」のレシピデータである。「ニース風サラダ」のレシピデータには、図8に示すように、完成した「ニース風サラダ」を撮影した料理画像である料理画像P1と、食材を示すテキストデータが含まれる。
図8の例においては、「レタス1/2個、玉ねぎ1個、アボガド1個、・・・」のテキストデータが、3~4人分の食材を示すテキストデータとして含まれている。料理の名前を示す「ニース風サラダ」のテキストデータも、「ニース風サラダ」のレシピデータに含まれる。
レシピデータには、通常、図9に示すような、大まかな調理工程を説明したテキストデータが、調理の様子を撮影した画像とともに含まれる。
図9の例においては、1ステップ目の作業に関する情報として、「トマトをカットし、レタスを一口サイズに手でちぎります。ツナ缶を開けておきます。」のテキストデータが画像P11とともに含まれる。画像P11は、1ステップ目の作業後の様子を撮影した画像である。
また、2ステップ目の作業に関する情報として、「キュウリをスライスし、玉ねぎを輪切りにします。ゆで卵を一口サイズにカットます。」のテキストデータが画像P12とともに含まれる。画像P12は、2ステップ目の作業後の様子を撮影した画像である。
3ステップ目の作業に関する情報として、「全ての材料をお皿に盛り、お好みのドレッシングをかけます。」のテキストデータが画像P13とともに含まれる。画像P13は、3ステップ目の作業後の様子として、完成した「ニース風サラダ」を撮影した画像である。画像P13と料理画像P1は同じ画像である。
このように、調理ロボット2の動作を制御するためにデータ処理装置1が用いるレシピデータには、画像とテキストデータが少なくとも含まれる。レシピデータに含まれる画像は、静止画像であってもよいし、動画像であってもよい。
図9の調理工程の説明については、レシピデータに含まれるようにしてもよいし、含まれないようにしてもよい。図9の調理工程の説明が含まれない場合、図8に示す、料理画像P1と食材を示すテキストデータに基づいて調理ロボット2の動作が制御される。
以下、「ニース風サラダ」のレシピデータに基づく処理等について説明する。他の料理のレシピデータに基づく処理も同様にして行われる。
<<状態シーケンスのプランニングとアクション>>
<レシピデータに基づくプランニング>
図10は、データ処理装置1が行う全体の処理の流れを示す図である。
「ニース風サラダ」のレシピデータが入力された場合、矢印A11,A12の先に示すように、データ処理装置1は、レシピデータに含まれる料理画像とテキストデータに基づいてゴール状態を設定する。
例えば、「ニース風サラダ」に必要な食材がテキストデータに基づいて推定される。また、「ニース風サラダ」の料理画像P1を解析することによって、レタス、玉ねぎ、アボガドなどの各食材の状態が推定される。各食材の状態には、食材に対してどのような調理が施されているのかといった調理の状態、調理済みの食材をどのように盛り付けているのかといった盛り付けの状態などが含まれる。料理画像P1に写る「ニース風サラダ」の状態が、ゴール状態として設定される。
図11は、ゴール状態を含む各状態の記述の例を示す図である。
図11に示すように、データ処理装置1が設定する各状態は、状態の識別子であるIDとパラメータセットとの組み合わせにより、離散的な状態として表される。
各状態は、適宜、IDとベクトルデータとの組み合わせや、IDとパラメータセットとベクトルデータとの組み合わせにより表される。
図12は、ゴール状態の記述の具体例を示す図である。
「ニース風サラダ」のゴール状態であるゴール状態Sには所定のIDが割り当てられる。
図12に示すように、ゴール状態Sを示すパラメータセットには、盛り付けに使う食器に関するパラメータが含まれる。食器に関するパラメータとして、食器のタイプを示すパラメータ、食器の数を示すパラメータが含まれる。
食器のタイプと食器の数は、例えば料理画像P1を解析することによって推定される。例えば、食器のタイプとして「大皿」、食器の数として「1」を示すパラメータが設定される。
ゴール状態Sを示すパラメータセットには、食材としてのトマトに関するパラメータが含まれる。トマトに関するパラメータとして、トマトのカットの仕方を示すパラメータ、カット後のトマトの数を示すパラメータ、カット後のトマトの向き/配置を示すパラメータが含まれる。
食材にトマトが含まれることは、例えば、食材のテキストデータに基づいて推定される。トマトのカットの仕方、カット後のトマトの数、カット後のトマトの向き/配置は、調理工程を説明したテキストデータに基づいて、または、料理画像P1を解析することによって推定される。図12の例においては、カット後のトマトの数が「6」であることを示すパラメータが設定されている。
ゴール状態Sを示すパラメータセットには、食材としてのたまごに関するパラメータが含まれる。たまごに関するパラメータとして、たまごの調理後の状態を示すパラメータ、たまごのカットの仕方を示すパラメータ、カット後のたまごの数を示すパラメータ、カット後のたまごの向き/配置を示すパラメータが含まれる。
食材にたまごが含まれることは、例えば、食材のテキストデータに基づいて推定される。たまごの調理後の状態、たまごのカットの仕方、カット後のたまごの数、カット後のたまごの向き/配置は、調理工程を説明したテキストデータに基づいて、または、料理画像P1を解析することによって推定される。図12の例においては、たまごの調理後の状態が「半熟」であり、たまごのカットの仕方が「ハーフカット」であることを示すパラメータが設定されている。
同様に、ゴール状態Sを示すパラメータセットには、トッピングに関するパラメータ、ドレッシングに関するパラメータ、温度に関するパラメータが含まれる。
「ニース風サラダ」のゴール状態Sは、レシピデータから推定されるこのようなパラメータのセットにより表される。スタート状態からゴール状態までの間の各状態も、IDとパラメータセットの組み合わせなどにより構成される。
図10の説明に戻り、このような記述により表されるゴール状態Sが設定された後、矢印A13の先に示すように、スタート状態からゴール状態までの状態シーケンスのプランニングが行われる。
状態シーケンスのプランニングは、矢印A14に示すように、レシピデータに含まれるテキストデータに基づいて行われる。状態シーケンスのプランニングには、適宜、料理画像P1や、調理工程の説明に含まれる画像などの画像データも用いられる。
状態シーケンスのプランニングが終わった場合、矢印A15の先に示すように、調理ロボット2の制御が行われる。調理ロボット2の制御にも、適宜、矢印A16に示すようにレシピデータの記述が用いられる。
状態シーケンスを構成する各状態間の遷移を生じさせるためのアクションを調理ロボット2に実行させるための制御が繰り返され、最終的に、矢印A17の先に示すように、ゴール状態Sとして設定された「ニース風サラダ」の状態に到達する。ゴール状態Sに到達するまでの間、適宜、矢印A18に示すように遷移シーケンスの変更が行われる。
図13は、スタート状態からゴール状態までの状態シーケンスのプランニングの例を示す図である。
右上に示す状態Sはスタート状態である。図13の例においては、状態Sのパラメータセットは、「まるごと1つ」の「トマト」を示すパラメータ、「3枚」の「レタス」を示すパラメータ、「1つ」の「ツナ缶」を示すパラメータなどにより構成される。
状態Sを示すパラメータセットは、例えば食材のテキストデータに基づいて設定される。食材のテキストデータに基づいて食材の準備が行われ、準備された食材を示す状態がスタート状態として設定されるようにしてもよい。
矢印A21の先に示す状態Sは、状態Sの次の状態である。状態Sのパラメータセットは、「6つ切り(くし型)」の「6個」の「トマト」を「皿1」に並べた状態を示すパラメータ、開いた「ツナ缶」を示すパラメータなどにより構成される。
状態Sを示すパラメータセットは、例えば、食材のテキストデータと、矢印A31に示す、調理工程の説明に含まれる1ステップ目の作業に関する情報とに基づいて設定される。図13の左側に示す調理工程は、図9を参照して説明した調理工程と同じものである。
上述したように、「ニース風サラダ」のレシピデータには、1ステップ目の作業に関する情報として、「トマトをカットし、レタスを一口サイズに手でちぎります。ツナ缶を開けておきます。」のテキストデータと、作業後の様子を示す画像P11が含まれる。
これらの情報を解析することにより、トマトをどのようにカットするのか、ツナ缶をどのような状態にしておくのかなどを推定することができ、状態Sのパラメータセットを設定することが可能となる。例えば画像P11には、6つ切りにした6個のトマトを小皿に並べた様子が写っている。また、画像P11には、開けたツナ缶の様子が写っている。
矢印A22の先に示す状態Sは、状態Sの次の状態である。状態Sのパラメータセットは、「ハーフカット」の「4個」の「半熟」の「たまご」を「皿3」に並べた状態を示すパラメータ、「3mm」厚にスライス済みの「キュウリ」を「皿4」に並べた状態を示すパラメータなどにより構成される。
状態Sを示すパラメータセットは、例えば、食材のテキストデータと、矢印A32に示す、調理工程の説明に含まれる1ステップ目と2ステップ目の作業に関する情報とに基づいて設定される。
上述したように、「ニース風サラダ」のレシピデータには、2ステップ目の作業に関する情報として、「キュウリをスライスし、玉ねぎを輪切りにします。ゆで卵を一口サイズにカットます。」のテキストデータと、作業後の様子を示す画像P12が含まれる。
これらの情報を解析することにより、キュウリをどのようにカットするのか、たまごをどのような状態にしておくのかなどを推定することができ、状態Sのパラメータセットを設定することが可能となる。
矢印A23の先に示すように、状態Sの次の状態はゴール状態Sである。ゴール状態Sを示すパラメータセットは、レシピデータに含まれる「ニース風サラダ」の料理画像P1、食材のテキストデータ、および、矢印A33に示す、調理工程に関する全ての情報に基づいて設定されたものである。
このように、スタート状態からゴール状態までの状態シーケンスのプランニングは、例えば、レシピデータに記述されている調理工程の各ステップの説明を状態表現にいわば翻訳し、各状態を順に繋ぐことによって行われる。状態Sをスタート状態として、状態S、状態Sを経由する状態遷移により、ゴール状態Sとしての「ニース風サラダ」に到達することが可能となる。
以下、適宜、レシピデータに基づいて設定される、スタート状態からゴール状態までの全体の状態シーケンスを、調理全体シーケンスという。
図14は、調理全体シーケンスの例を示す図である。
図14に示すように、「ニース風サラダ」のレシピデータに基づいて設定される調理全体シーケンスは、状態S、状態S、状態S、ゴール状態Sと、それぞれの状態間を結ぶエッジにより構成される。
各エッジに相当する状態遷移は、状態S、状態S、状態S、ゴール状態Sのそれぞれの状態の間を結ぶ状態シーケンスである個別シーケンスにより表される。調理全体シーケンスを構成するある状態から次の状態までの状態遷移を生じさせるためには、通常、複数の食材の状態を変化させる必要がある。それぞれの食材の状態を変化させるための調理が、個別シーケンスにより表される。
図14の白抜き矢印に示すように、状態Sと状態Sの間、状態Sと状態Sの間、状態Sとゴール状態Sの間のそれぞれの個別シーケンスは、個別シーケンス#0乃至#2として表される。個別シーケンス#0乃至#2のそれぞれも、複数の状態と、それぞれの状態間を結ぶエッジにより構成される。
例えば、現在状態が状態Sである場合において、個別シーケンス#0に従って状態遷移が行われることにより、状態Sに到達する。また、現在状態が状態Sである場合において、個別シーケンス#1に従って状態遷移が行われることにより、状態Sに到達する。現在状態が状態Sである場合において、個別シーケンス#2に従って状態遷移が行われることにより、ゴール状態Sに到達する。
調理全体シーケンスがレシピデータに基づいて設定されるのに対して、個別シーケンスは、基本的に、データベース(DB(Data Base))に用意されている情報に基づいて設定される。例えばデータ処理装置1には、調理全体シーケンスを構成する状態間を繋ぐためのシーケンスである個別シーケンスに関する情報が予め用意されている。
なお、スタート状態からゴール状態までの全体の状態シーケンスをレシピデータだけに基づいて完全にプランニングすることができる場合、個別シーケンスは不要となる。
図15は、状態遷移の例を示す図である。
個別シーケンスを構成する各状態間の遷移は、図15に示すように調理ロボット2のアクションにより生じる。状態遷移を生じさせるための調理ロボット2のアクションは、データ処理装置1が有するデータベースを参照して選択される。
図15の例においては、遷移前の状態である「ホールトマト」の状態から、遷移後の状態である「カット済みトマト」の状態までの遷移を生じさせるためのアクションとして、「カット」が選択されている。
データ処理装置1が有するデータベースには、遷移前の状態と遷移後の状態の2つの状態と、2つの状態間の遷移を生じさせるためのアクションとを対応付けた情報が格納されている。データ処理装置1が有するデータベースについては後述する。
なお、図15のアクションと状態は、説明の便宜上、簡略化して示したものである。実際には、切り方、力の入れ方などの仕様を指定した、より詳細なアクションが選択される。
図15に示すような1つの食材を対象とした状態遷移が複数繋がれることによって個別シーケンスが構成され、そのような個別シーケンスによって、調理全体シーケンスを構成する状態間が繋がれることになる。
<データベースの例>
図16は、個別シーケンスの設定とアクションの実行に用いられるデータベースの例を示す図である。
図16に示すように、食材DB101、調理方法DB102、および盛り付け方法DB103が用意される。各データベースは、例えばデータ処理装置1に設けられる。
データ処理装置1と調理ロボット2のいずれかに各データベースが設けられるようにしてもよいし、データ処理装置1と調理ロボット2の双方からアクセス可能なサーバに各データベースが設けられるようにしてもよい。食材DB101が調理ロボット2に設けられ、調理方法DB102と盛り付け方法DB103がデータ処理装置1に設けられるといったように、それぞれのデータベースが異なる装置に設けられるようにしてもよい。
矢印A51の先に示すように、レシピデータに基づいて食材の準備が行われる。食材の準備が食材DB101を参照して行われる。
食材DB101は、例えば所定の食材を対象としたアクションを行う場合において、対象となる食材を認識するために用いられる。食材の準備などのアクションを行うためには、食材の認識用の情報が用意されている必要がある。データベースに格納されている情報の詳細については後述する。
食材が準備された後、矢印A52に示すように、状態シーケンスに従って、食材を対象としたカットなどの調理が行われる。食材を対象とした調理が、調理方法DB102を複数回参照して行われる。調理方法DB102は、食材の調理に関するアクションを行う場合だけでなく、上述した個別シーケンスの設定を行う場合にも用いられる。
全ての食材の調理が終わった後、矢印A53に示すように、調理済みの食材の盛り付けが行われる。調理済みの食材の盛り付けが、盛り付け方法DB103を複数回参照して行われる。
・食材DB101
図17は、食材DB101に格納される情報の例を示す図である。
図17に示すように、食材DB101には、食材名と対応付けて食材の外観の画像データが格納される。
図17の例においては、「キュウリ」、「トマト」、「アボガド」、「ピーマン」のそれぞれの食材の画像データが示されている。食材の画像データとして、例えば、食材を撮影した画像を解析することによって抽出された、食材の特徴を示すデータが用意される。
図17においては1つの食材に対して1つの画像データが対応付けられているが、実際には、1つの食材に対して、大きさ、形状、色、柔らかさ、向きなどが異なる食材を撮影した複数の画像データが対応付けられる。
例えば状態シーケンスのプランニングには、どのような食材が用意されているのかなどの、現在状態の推定が必要となる。現在状態の推定時に、食材DB101に格納されている情報が用いられる。
データ処理装置1は、調理ロボット2のカメラにより撮影された画像を解析し、調理ロボット2の周りにあるそれぞれの食材の特徴を抽出する。データ処理装置1は、調理ロボット2の周りにある食材の特徴と、食材DB101に格納されている情報により表されるそれぞれの食材の特徴とのマッチングを行うことによって、調理ロボット2の周りにある食材を認識し、現在状態の推定を行う。
食材DB101に格納されている情報は、アクションの実行時にも用いられる。例えば「キュウリ」を準備する場合、データ処理装置1は、食材DB101を参照することによって、「キュウリ」の画像データを読み出す。データ処理装置1は、読み出した画像データを命令コマンドに含めて調理ロボット2に送信する。
調理ロボット2は、カメラにより撮影された画像を解析し、調理ロボット2の周りにあるそれぞれの食材の特徴を抽出する。調理ロボット2は、周りにある食材の特徴と、命令コマンドに含めてデータ処理装置1から送信されてきた「キュウリ」の画像データにより表される特徴とのマッチングを行うことによって、周りにある「キュウリ」の位置、向きなどを認識する。
これにより、調理ロボット2は、「キュウリ」を掴んだり、所定の位置に移動させたりすることが可能となる。他の食材の準備も同様にして行われる。
食材DB101に格納されている情報は、食材の準備だけでなく、適宜、食材を認識する必要がある各種のアクションの実行時にも参照される。
・調理方法DB102
図18は、調理方法DB102の構成例を示す図である。
図18に示すように、調理方法DB102は、状態遷移DB111とアクションDB112から構成される。
状態遷移DB111は、調理前の状態から調理後の状態までの状態遷移に関する情報を格納したデータベースである。状態遷移DB111には、そのような状態遷移に関する情報が、例えば、食材毎、調理の仕方毎といったように、様々な状態の組み合わせに応じて用意される。状態遷移DB111に格納されている情報に基づいて、上述した個別シーケンスが設定される。
一方、アクションDB112は、食材の状態遷移を生じさせるためのアクションの仕様に関する情報を格納したデータベースである。アクションDB112に格納されている情報に基づいて、食材の調理に関するアクションを実行させるための命令コマンドが生成される。
調理方法DB102においては、各食材の状態遷移に関する情報と、それぞれの状態遷移を生じさせるためのアクションの仕様に関する情報が対応付けて管理される。
図19は、状態遷移DB111に格納される情報の例を示す図である。
図19に示すように、状態遷移DB111には、食材名、調理の仕方、および、調理前の状態から調理後の状態までの状態遷移の各情報が対応付けて格納される。状態遷移を構成する各状態は、例えば、上述したようにIDとパラメータセットにより表される。
図19の例においては、「キュウリ」、「トマト」、「アボガド」のそれぞれの食材に対して、切り方(カットの仕方)と、カット前の状態からカット後の状態までの状態遷移が対応付けられている。「キュウリ」の切り方としては、「薄切り」、「細切り」、「乱切り」が設定されている。
例えば、「キュウリ」を「薄切り」にした状態を含む個別シーケンスを設定する場合、データ処理装置1は、「薄切り」にする前の状態から「薄切り」にした後の状態までの状態遷移に関する情報を状態遷移DB111から取得する。データ処理装置1は、取得した情報により表される状態遷移を含むように個別シーケンスを設定する。
レシピデータの調理工程の説明には、上述したように「キュウリをスライスし、・・・」などの記述が含まれていることがある。そのような記述に基づいて、「キュウリ」を「薄切り」にした状態を含む個別シーケンスが設定されるようにしてもよい。
他の食材についても同様に、調理の仕方毎の状態遷移に関する情報が状態遷移DB111に格納される。切り方以外にも、洗い方、皮のむき方、ゆで方、焼き方などの各種の調理の仕方の情報が格納される。
このように、状態遷移DB111には、各食材を様々な方法で調理した場合の、調理前の状態から調理後の状態までの状態遷移に関する情報が格納される。状態遷移DB111に格納される情報は、様々な方法で調理したときの食材の状態を、上述したようなパラメータセットを用いて表現することによって生成される。
状態遷移DB111に格納される情報の生成は、調理中の様子を撮影した動画を解析することによって所定の装置により行われるようにしてもよいし、データ処理装置1の管理者により手動で行われるようにしてもよい。
図20は、アクションDB112に格納される情報の例を示す図である。
図20に示すように、アクションDB112は、食材仕様情報のデータベースである食材Dynamics DB、調理道具仕様情報のデータベースである調理道具Dynamics DB、ロボット動作仕様情報のデータベースであるロボット動作Dynamics DBから構成される。
食材仕様情報、調理道具仕様情報、ロボット動作仕様情報は、状態遷移DB111に格納されている情報により表される状態遷移を生じさせるためのアクション毎に対応付けて格納される。
食材仕様情報は、アクションの対象となる食材の仕様に関する情報である。食材の仕様には、大きさ、形状、柔らかさなどの、食材の各種の状態が含まれる。
食材Dynamics DBには、例えば、アクションの実行中の各時刻における食材の状態を示す食材仕様情報が格納される。
調理道具仕様情報は、アクションに用いられるツール(調理道具)の仕様に関する情報である。ツールの仕様には、調理ロボット2が調理に使うアタッチメントなどの各種のツールの仕様、機能などが含まれる。アクションを行う際にツールの状態が変化する場合、その変化を示す情報が調理道具仕様情報に含まれる。
調理道具Dynamics DBには、例えば、アクションの実行中の各時刻におけるツールの仕様、機能、変化の状態を対応付けた調理道具仕様情報が格納される。
ロボット動作仕様情報は、アクションを行う際の、調理ロボット2の動作の仕様に関する情報である。調理ロボット2の動作の仕様には、アクションを実行する調理アーム21のレール上の位置、調理アーム21を構成する各モータのスピード、回転量、トルクなどが含まれる。調理ロボット2の動作の仕様には、アクションの実行中にフィードバックとして測定されるセンサデータも含まれる。
調理アーム21のレール上の位置、調理アーム21を構成する各モータのスピード、回転量、トルク、フィードバックとなるセンサデータを、例えば、ベクトル表現を用いて表した情報がロボット動作仕様情報として用意される。
調理アーム21以外のハードウェアを用いてアクションが行われる場合、それぞれのハードウェアの動作の仕様に関する情報もロボット動作仕様情報として用意される。
ロボット動作Dynamics DBには、例えば、アクションの実行中の各時刻における調理アーム21の動作の仕様を示すロボット動作仕様情報が格納される。
例えば、所定のツールを用いたアクションの実行時、対象となる食材の大きさによっては、アクションを実行する調理アーム21を構成するモータの駆動量などが異なる。アクションDB112には、様々な状態の食材を対象として、様々なツールを用いて調理する場合の、調理ロボット2の動作に関する情報が格納される。
すなわち、アクションを実行するために、どのような食材を対象として、どのようなツールのどのような機能を用いて、調理アーム21をどのように動作させればよいのか示す情報がアクションDB112に格納されることになる。
アクションDB112に格納される情報は、例えば、データ処理装置1の管理者が調理アーム21の動作を調整しながら、様々な状態の食材を、様々なツールを用いて調理することによって生成される。
様々な状態の食材を、様々なツールを用いて調理したときの様子を撮影した動画を解析することによって所定の装置により生成された情報がアクションDB112に格納されるようにしてもよい。
食材仕様情報、調理道具仕様情報、ロボット動作仕様情報のそれぞれが、適宜、他の情報から推定されることによって生成されるようにしてもよい。
例えば、ある状態の肉をナイフで2つに切り分けるというアクションを考えた場合、食材仕様情報と調理道具仕様情報が特定されていれば、おおよそのロボット動作仕様情報を推定することが可能となる。このようにして他の情報に基づいて推定された情報がアクションDB112に用意されるようにしてもよい。
このように、調理方法DB102には、食材と、状態遷移によって表される調理方法とを対応付けたデータセットである状態遷移DB111が用意される。また、調理方法DB102には、調理方法と対応付けた形で、食材の仕様、調理方法に従って調理(アクション)を行う際に用いるツールの仕様、および、調理ロボット2の動作の仕様のデータセットであるアクションDB112が用意される。
・盛り付け方法DB103
図21は、盛り付け方法DB103に格納される情報の例を示す図である。
図21に示すように、盛り付け方法DB103には、料理と対応付けて、料理を完成させるために必要な調理済みの食材の識別子である食材IDが格納される。
調理済みの食材に対しては、盛り付け位置に関する情報である盛り付け位置情報が設定される。盛り付け位置情報により、盛り付けに使われる食器における、各食材の平面上の位置と、レイヤ(階層)が表される。
図21の例においては、「ニース風サラダ」、「シーザーサラダ」、「ハンバーグ」のそれぞれの料理に関する情報が示されている。
「ニース風サラダ」に対しては、調理済みの食材の識別子として、カット済みのレタスを示すID1、カット済みのトマトを示すID2、カット済みのキュウリを示すID3が対応付けられている。
また、カット済みのレタスの位置を示す情報として「x1,y1,L0」が設定されている。「x1,y1」は、カット済みのレタスの平面上の位置を示し、「L0」は、最下層である1層目にカット済みのレタスを配置することを示す。
また、カット済みのトマトの位置を示す情報として「x2,y2,L3」が設定されている。「x2,y2」は、カット済みのトマトの平面上の位置を示し、「L3」は4層目にカット済みのトマトを配置することを示す。
カット済みのキュウリを含む他の食材についても同様に盛り付け位置を示す情報が設定される。
例えば、「ニース風サラダ」に必要な「レタス」、「トマト」、「キュウリ」、・・・のカットが終わった場合、データ処理装置1は、調理済みの食材の盛り付けに関する状態シーケンスを設定する。データ処理装置1は、状態シーケンスに従って、盛り付け位置情報により示される位置に各食材を配置するための命令コマンドを生成し、調理ロボット2に出力する。
このように、盛り付け方法DB103には、料理毎に、必要な食材と盛り付け位置を示すデータセットが格納される。盛り付け方法DB103に格納される情報は、例えば、レシピデータに含まれる料理画像を解析することによって生成される。
画像に写っていない食材とその盛り付け位置については、適宜、一般的な盛り付け方法の知識として予め用意された情報に基づいて生成される。盛り付け方法DB103に格納される情報が、データ処理装置1の管理者により手動で設定されるようにしてもよい。
食器における平面上の位置と階層位置の組み合わせを示す情報が盛り付け位置情報として用意されるものとしたが、食器における平面上の位置だけを示す情報、または、階層位置だけを示す情報が盛り付け位置情報として用意されるようにしてもよい。
また、食材を同一階層に所定のパターンで配置した平面配置パターンを示す情報や、食材を異なる階層に所定のパターンで配置した階層配置パターンを示す情報が盛り付け位置情報として用意されるようにしてもよい。
各データベースに格納されている情報が、調理ロボット2がアクションを実際に実行することに応じて適宜変更されるようにしてもよい。
<アクションの記述例>
調理ロボット2の動作が状態シーケンスにより表現されるものとしたが、木構造により表現されるようにしてもよい。
図22は、アクションの表現の例を示す図である。
図22に示すように、1つのアクションが木構造で表現されるようにしてもよい。木構造で表現される各種のアクションに関する情報が、データ処理装置1の所定のデータベースに用意される。図22に示す木構造は、1つのアクションである「Cut Method 1」を示す。
「Cut Method 1」は、状態S11としての「Select PickUp Tool」と、状態S12としての「Select Cut Tools」に分岐する。状態S11は、「Cut Method 1」のアクションを実行する調理アーム21-1の状態である。また、状態S12は、「Cut Method 1」のアクションを調理アーム21-1と連携して実行する調理アーム21-2の状態である。
「Select PickUp Tool」は、例えば、食材を掴んだりすることに用いられるツールであるマニピュレーターアタッチメントを用いて行われる状態である。また、「Select Cut Tools」は、例えば、食材のカットに用いられるツールであるナイフアタッチメントを用いて行われる状態である。
状態S11と状態S12の各状態が、リーフとなる複数の状態のシーケンスから構成される。
図22の例においては、状態S11は、状態S11-1としての「Find Target」、状態S11-2としての「Pick up Target」、状態S11-3としての「Move it The position」、状態S11-4としての「Fix The target」のシーケンスから構成される。
「Find Target」は、ターゲットとなる食材を探す状態であり、「Pick up Target」は、マニピュレーターアタッチメントにより食材を掴む状態である。「Move it The position」は、食材を所定の位置に移動させる状態であり、「Fix The target」は、マニピュレーターアタッチメントにより食材を固定する状態である。
一方、状態S12は、状態S12-1としての「Find Target」、状態S12-2としての「Place The Tool」、状態S12-3としての「Move The Tool」のシーケンスから構成される。
「Find Target」は、カットのターゲットとなる食材を探す状態であり、「Place The Tool」は、ナイフアタッチメントを食材の近くに動かす状態である。「Move it The position」は、食材の近くにあるナイフアタッチメントを食材に向けて動かすことによってカットを行う状態である。
リーフとなる各状態は、スタート状態からゴール状態に至る図23に示すような状態遷移により表される。
図24は、アクションの様子を示す図である。
図24の例においては、マニピュレーターアタッチメントが装着された調理アーム21-1により食材である肉の塊が固定され、ナイフアタッチメントが装着された調理アーム21-2により肉がカットされている。
マニピュレーターアタッチメントによって肉の塊を固定する調理アーム21-1の動作は、図22の記述に従って、「Select PickUp Tool」が実行されることによって実現される。また、ナイフアタッチメントによって肉をカットする調理アーム21-2の動作は、図22の記述に従って、「Select Cut Tools」が実行されることによって実現される。
以上のような木構造によって表現されるアクションを組み合わせることによって、調理ロボット2の動作が制御されるようにしてもよい。
木構造の表現を有するアクションが遷移前の状態と遷移後の状態に応じて選択され、個別シーケンスを構成する状態間のエッジとして設定されるようにしてもよい。この場合、状態シーケンスと木構造の表現を有するアクションとを組み合わせて用いることによって、調理ロボット2の動作が制御されることになる。
以上のように、調理ロボット2の制御は、状態遷移や木構造を用いて行われる。DNN(Deep Neural Network)、RNN(Recurrent Neural Network)などのNNを用いて調理ロボット2の制御が行われるようにしてもよい。
<<各装置の構成と動作>>
<各装置の構成>
・データ処理装置1の構成
図25は、データ処理装置1のハードウェアの構成例を示すブロック図である。
図25に示すように、データ処理装置1はコンピュータにより構成される。CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203は、バス204により相互に接続される。
バス204には、さらに、入出力インタフェース205が接続される。入出力インタフェース205には、キーボード、マウスなどよりなる入力部206、ディスプレイ、スピーカなどよりなる出力部207が接続される。
また、入出力インタフェース205には、ハードディスクや不揮発性のメモリなどよりなる記憶部208、ネットワークインタフェースなどよりなる通信部209、リムーバブルメディア211を駆動するドライブ210が接続される。
以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを入出力インタフェース205およびバス204を介してRAM203にロードして実行することにより、各種の処理が行われる。
図26は、データ処理装置1の機能構成例を示すブロック図である。
図26に示す機能部のうちの少なくとも一部は、図25のCPU201により所定のプログラムが実行されることによって実現される。
図26に示すように、データ処理装置1においてはコマンド生成部221が実現される。コマンド生成部221は、レシピデータ取得部231、レシピデータ解析部232、ロボット状態推定部233、状態制御部234、データベース管理部235、およびコマンド出力部236から構成される。
レシピデータ取得部231は、通信部209を制御し、レシピデータを管理するサーバと通信を行うなどしてレシピデータを取得する。レシピデータ取得部231が取得するレシピデータは、例えばユーザにより選択された料理のレシピデータである。
レシピデータのデータベースが記憶部208に設けられているようにしてもよい。この場合、記憶部208に設けられるデータベースからレシピデータが取得される。レシピデータ取得部231により取得されたレシピデータはレシピデータ解析部232に供給される。
レシピデータ解析部232は、レシピデータ取得部231により取得されたレシピデータに含まれる画像とテキストデータを解析する。レシピデータ解析部232による解析結果は状態制御部234に供給される。
ロボット状態推定部233は、通信部209を制御し、調理ロボット2から送信されてきた画像とセンサデータを受信する。調理ロボット2からは、調理ロボット2のカメラにより撮影された画像と、調理ロボット2の所定の位置に設けられたセンサにより測定されたセンサデータが所定の周期で送信されてくる。調理ロボット2のカメラにより撮影された画像には、調理ロボット2の周囲の様子が写っている。
ロボット状態推定部233は、調理ロボット2から送信されてきた画像とセンサデータを解析することによって、調理アーム21の状態、食材の状態などの、調理ロボット2の周囲の状態を推定する。ロボット状態推定部233により推定された調理ロボット2の周囲の状態を示す情報は、状態制御部234に供給される。
状態制御部234は、レシピデータ解析部232によるレシピデータの解析結果に基づいてゴール状態を設定する。状態制御部234は、ロボット状態推定部233により推定された状態を現在状態として、現在状態からゴール状態までの調理全体シーケンスのプランニングをレシピデータの解析結果に基づいて行う。
また、状態制御部234は、データベース管理部235が管理する調理方法DB102(状態遷移DB111)を参照し、調理全体シーケンスを構成する状態間を繋ぐための状態シーケンスである個別シーケンスを設定する。
状態制御部234は、遷移前の状態と遷移後の状態に応じたアクションを、調理方法DB102を参照して選択する。状態制御部234は、選択したアクションに関するロボット動作仕様情報をアクションDB112から読み出し、命令コマンドを生成する。
状態制御部234により生成される命令コマンドは、遷移前の状態と遷移後の状態に応じたアクションを、ロボット動作仕様情報により表される仕様の通りに調理ロボット2に実行させるためのコマンドとなる。このように、状態制御部234は、命令コマンドを生成する機能を有する。状態制御部234により生成された命令コマンドはコマンド出力部236に供給される。
なお、状態制御部234が生成する命令コマンドは、ある状態遷移を生じさせるためのアクション全体の実行を命令するコマンドであってもよいし、アクションの一部分の実行を命令するコマンドであってもよい。すなわち、1つのアクションが1つの命令コマンドに従って実行されるようにしてもよいし、複数の命令コマンドに従って実行されるようにしてもよい。
データベース管理部235は、食材DB101、調理方法DB102、盛り付け方法DB103を管理する。食材DB101、調理方法DB102、盛り付け方法DB103は例えば記憶部208に構築される。
コマンド出力部236は、通信部209を制御し、状態制御部234により生成された命令コマンドを調理ロボット2に送信する。
・調理ロボット2の構成
図27は、調理ロボット2の構成例を示すブロック図である。
調理ロボット2は、調理ロボット2の動作を制御する制御装置としてのコントローラ61(図7)に対して各部が接続されることによって構成される。図27に示す構成のうち、上述した構成と同じ構成には同じ符号を付してある。重複する説明については適宜省略する。
コントローラ61に対しては、調理アーム21の他に、カメラ251、センサ252、および通信部253が接続される。
コントローラ61は、CPU,ROM,RAM、フラッシュメモリなどを有するコンピュータにより構成される。コントローラ61は、CPUにより所定のプログラムを実行し、調理ロボット2の全体の動作を制御する。上述したように、コントローラ61によってデータ処理装置1が構成されるようにしてもよい。
例えば、コントローラ61は、通信部253を制御し、カメラ251により撮影された画像とセンサ252により測定されたセンサデータをデータ処理装置1に送信する。
コントローラ61においては、所定のプログラムが実行されることにより、命令コマンド取得部261、アーム制御部262が実現される。
命令コマンド取得部261は、データ処理装置1から送信され、通信部253において受信された命令コマンドを取得する。命令コマンド取得部261により取得された命令コマンドはアーム制御部262に供給される。
アーム制御部262は、命令コマンド取得部261により取得された命令コマンドに従って調理アーム21の動作を制御する。
カメラ251は、調理ロボット2の周囲の様子を撮影し、撮影によって得られた画像をコントローラ61に出力する。カメラ251は、調理補助システム12の正面、調理アーム21の先端などの様々な位置に設けられる。
センサ252は、温湿度センサ、圧力センサ、光センサ、距離センサ、人感センサ、測位センサ、振動センサなどの各種のセンサにより構成される。センサ252による測定は所定の周期で行われる。センサ252による測定結果を示すセンサデータはコントローラ61に供給される。
カメラ251とセンサ252が、調理ロボット2の筐体11から離れた位置に設けられるようにしてもよい。
通信部253は、無線LANモジュール、LTE(Long Term Evolution)に対応した携帯通信モジュールなどの無線通信モジュールである。通信部253は、データ処理装置1や、インターネット上のサーバなどの外部の装置との間で通信を行う。
また、通信部253は、ユーザが使うスマートフォンやタブレット端末などの携帯端末と通信を行う。料理の選択などの、調理ロボット2に対するユーザの操作が携帯端末上の操作によって入力されるようにしてもよい。
図27に示すように、調理アーム21にはモータ271とセンサ272が設けられる。
モータ271は、調理アーム21の各関節部に設けられる。モータ271は、アーム制御部262による制御に従って軸周りの回転動作を行う。モータ271の回転量を測定するエンコーダ、モータ271の回転をエンコーダによる測定結果に基づいて適応的に制御するドライバなども各関節部に設けられる。
センサ272は、例えばジャイロセンサ、加速度センサ、タッチセンサなどにより構成される。センサ272は、調理アーム21の動作中、各関節部の角速度、加速度などを測定し、測定結果を示す情報をコントローラ61に出力する。調理ロボット2からデータ処理装置1に対しては、適宜、センサ272の測定結果を示すセンサデータも送信される。
調理アーム21の数などの、調理ロボット2の能力に関する仕様に関する情報は、所定のタイミングで調理ロボット2からデータ処理装置1に提供される。データ処理装置1においては、調理ロボット2の能力に関する仕様に応じたデータベースの情報を参照するなどして、上述したプランニングが行われる。データ処理装置1において生成される命令コマンドも、調理ロボット2の能力に関する仕様に応じたものとなる。
<各装置の動作>
ここで、以上のような構成を有するデータ処理装置1と調理ロボット2の動作について説明する。
・データ処理装置1の動作
はじめに、図28、図29のフローチャートを参照して、調理ロボット2の動作を制御するデータ処理装置1の処理について説明する。
図28、図29の処理は、例えば、所定の料理を作ることがユーザにより選択されたときに開始される。
ステップS1において、レシピデータ取得部231はレシピデータを取得する。
ステップS2において、レシピデータ解析部232は、レシピデータ取得部231により取得されたレシピデータを解析する。
ステップS3において、状態制御部234は、レシピデータ解析部232による解析結果に基づいて、レシピデータに含まれる料理画像に写る料理の状態をゴール状態として設定する。ゴール状態は、上述したように例えばIDとパラメータセットにより表される。
ステップS4において、ロボット状態推定部233は、調理ロボット2から送信されてきた画像とセンサデータに基づいて現在状態を推定する。
ステップS5において、状態制御部234は、ゴール状態の補正が必要であるか否かを判定する。
ゴール状態の補正が必要であるとステップS5において判定した場合、ステップS6において、状態制御部234はゴール状態を補正する。
例えば、ゴール状態として設定された「ニース風サラダ」の食材として「トマト」が必要であるものの、「トマト」が調理ロボット2の周囲にない場合、ゴール状態の補正が必要であるとして判定される。「トマト」が調理ロボット2の周囲にないことは、ロボット状態推定部233による現在状態の推定結果により特定される。
この場合、状態制御部234は、例えば、「トマト」に関するパラメータをパラメータセットから削除することによって、ゴール状態を補正する。このように、調理に用いることが可能な食材の状態が、ゴール状態として設定された食材の状態を満たしていないといったように、到達することができない状態がゴール状態として設定されている場合、到達可能な状態になるようにゴール状態が補正される。食材を変更するようにゴール状態が補正されるのではなく、調理方法を変更するようにゴール状態が補正されるようにしてもよい。また、食材と調理方法の両方を変更するようにゴール状態が補正されるようにしてもよい。
調理に用いることが可能な食材の状態がゴール状態を満たしていない場合、調理に用いることが可能な食材で作ることができる料理が新たに選択され、違う料理を作るための処理が続けられるようにしてもよい。
ゴール状態の補正が必要ではないとステップS5において判定された場合、ステップS6の処理はスキップされる。
ステップS7において、状態制御部234は、現在状態からゴール状態までの調理全体シーケンスのプランニングをレシピデータの解析結果に基づいて行う。
図29のステップS8において、状態制御部234は、サブゴール状態を選択する。例えば、調理全体シーケンスを構成する状態のうち、現在状態を基準として次の状態がサブゴール状態として選択される。
ステップS9において、状態制御部234は、データベース管理部235が管理する状態遷移DB111を参照し、現在状態とサブゴール状態を繋ぐための個別シーケンスを設定する。
図19を参照して説明したように、状態遷移DB111には、各食材を様々な方法で調理したときの状態遷移に関する情報が格納されている。例えば、状態遷移DB111に格納されている情報により表される状態遷移を組み合わせることによって個別シーケンスが設定される。
個別シーケンスを設定する際に、アクションDB112に格納されている情報が参照されるようにしてもよい。
例えば、遷移前の状態sと遷移後の状態s’を繋ぐ“状態遷移T”が見つかっていないものとする。この場合、状態制御部234は、遷移元の状態集合S、遷移先の状態集合Sを設定する。状態集合Sには状態sが含まれ、状態集合Sには状態s’が含まれる。
状態制御部234は、状態集合Sに含まれる状態sを遷移元とする全てのアクションを、アクションDB112に情報が格納されているアクションの中から検索する。状態制御部234は、検索により見つかったアクションをそれぞれ状態sに適用し(順方向の状態遷移を仮想的に生じさせ)、遷移先の状態を状態集合Sに追加する。
状態集合Sに含まれる状態の中に、状態集合Sに追加した状態と同じ状態がある場合、状態制御部234は、状態sと、状態集合Sに追加された状態を繋ぐ状態遷移を“状態遷移T”として選択する。
また、状態集合Sに含まれる状態の中に、状態集合Sに追加した状態と同じ状態がない場合、状態制御部234は、状態集合Sに含まれる状態sを遷移先とする全てのアクションを、アクションDB112に情報が格納されているアクションの中から検索する。状態制御部234は、検索により見つかったアクションをそれぞれ状態sに適用し(逆方向の状態遷移を仮想的に生じさせ)、遷移元の状態を状態集合Sに追加する。
状態集合Sに含まれる状態の中に、状態集合Sに追加した状態と同じ状態がある場合、状態制御部234は、状態sと、状態集合Sに追加された状態を繋ぐ状態遷移を“状態遷移T”として選択する。
ステップS10において、状態制御部234は、調理方法DB102を参照し、現在状態から次の状態への状態遷移を生じさせるためのアクションを選択し、命令コマンドを生成する。アクションの選択の詳細については後述する。
ステップS11において、コマンド出力部236は、命令コマンドを調理ロボット2に送信し、状態制御部234により選択されたアクションを実行させる。
ステップS12において、ロボット状態推定部233は、調理ロボット2から送信されてきた画像とセンサデータに基づいて現在状態を推定する。
ステップS13において、状態制御部234は、ロボット状態推定部233により推定された現在状態に基づいて、次の状態までの状態遷移が完了したか否かを判定する。
状態遷移が完了していないとステップS13において判定した場合、ステップS14において、状態制御部234は、状態遷移が不可能な状態であるか否かを判定する。
状態遷移が不可能な状態ではないとステップS14において判定された場合、ステップS10に戻り、それ以降の処理が繰り返される。
一方、状態遷移が不可能な状態であるとステップS14において判定された場合、ステップS8に戻り、サブゴール状態が新たに選択される。
例えば、カットのアクションを実行した結果、カットの対象になっていた食材が天板11Aから落ちてしまい、その食材のカットを続けることが不可能な状態になったことがロボット状態推定部233により推定されたものとする。この場合、状態遷移が不可能な状態であると判定され、その後、例えばカットの対象になっていた食材を使わない状態が新たなサブゴール状態として選択される。
次の状態までの状態遷移が完了したとステップS13において判定した場合、ステップS15において、状態制御部234は、サブゴール状態に遷移したか否かを判定する。
サブゴール状態に遷移していないとステップS15において判定された場合、ステップS10に戻り、個別シーケンスに従って状態遷移を行うように以上の処理が繰り返される。
サブゴール状態に到達したとステップS15において判定した場合、ステップS16において、状態制御部234は、ゴール状態に到達したか否かを判定する。
ゴール状態に到達していないとステップS16において判定された場合、ステップS5に戻り、それ以降の処理が繰り返される。すなわち、1つのサブゴール状態に到達する毎に、ゴール状態の補正が必要であるか否かが判定され、適宜、ゴール状態を補正して処理が進められる。
ゴール状態が補正されることに連動して、調理全体シーケンスを構成する、ゴール状態までのそれぞれの状態が補正されるようにしてもよい。
ゴール状態に到達したとステップS16において判定された場合、処理は終了となる。このとき、現在状態は、ゴール状態として設定された料理が完成した状態となる。
以上のように、調理ロボット2の制御は、状態遷移が生じる毎に、ゴール状態を自律的に補正(変更)しながら進められる。到達可能な状態がゴール状態になるように補正が行われるから、料理が未完成のまま、処理が終了されることはない。
ロボットを対象とした制御の方法として、例えば、一度設定したゴール状態に到達できない状態になったときには、ゴール状態に到達することを諦め、処理を終了させる方法がある。
仮に、調理ロボット2の状態がゴール状態に到達できない状態になったことに応じて処理を終了させるとした場合、それまでに使った食材が無駄になってしまう。
ゴール状態を適宜補正しながら処理を進め、ゴール状態に必ず到達するように調理ロボット2を制御することにより、食材の無駄が生じるのを防ぐことが可能となる。
・アクションの選択
図30は、図29のステップS10において行われるアクションの選択の例を示す図である。
調理ロボット2に実行させるアクションの選択は、調理方法DB102を参照して行われる。上述したように、データベース管理部235が管理する調理方法DB102おいては、個別シーケンスを構成する状態遷移と、アクションの仕様とが対応付けて管理されている。
図30の左端に示すように、状態制御部234は、遷移前の状態のIDと遷移後の状態のIDとのペア(<from_state_id, to_state_id>)をキーとして調理方法DB102の検索を行う。検索を行うことにより、キーとしたIDのペアと対応付けて管理されているアクションがアクション候補として取得される。
例えば、現在状態を遷移前の状態とし、個別シーケンスにおいて現在状態の次の状態を遷移後の状態としたIDのペアに応じたアクション候補が取得される。状態を示すパラメータセットにも基づいてアクション候補が取得されるようにしてもよい。
状態制御部234は、複数のアクション候補が取得された場合、それぞれのアクション候補に応じたアクションを行った場合の状態遷移を評価する。状態遷移の評価に用いる評価器が、それぞれのアクション候補に紐付けた形で用意されている。
吹き出し#11に示すように、アクション候補の評価結果は、成功率、分散値、アクションの実行にかかる時間、アクション実行後の片付けにかかる負荷などにより表される。
状態制御部234は、例えば、評価結果が最もよい状態遷移を生じさせるアクション候補を、調理ロボット2に実行させるアクションとして選択する。例えば、成功率の高いアクション候補の方が、成功率の低いアクション候補より高い評価結果となる。状態遷移の評価には、適宜、現在状態に応じた制約、優先度なども用いられる。
図31は、アクション候補の例を示す図である。
図31に示すように、遷移前の状態が「whole tomato」であり、遷移後の状態が「1/8 tomato wedge」である場合、それらの状態のIDのペアをキーとして検索を行うことにより、「cut by a knife」のアクション候補が取得される。
他のアクション候補として、吹き出し#21に示すように「cut by scissors」、「cut by a slicer」、「tear by hands」が取得される。
図32は、アクション候補の評価の例を示す図である。
「cut by a knife」のアクション候補に紐付けられた評価器が用いられることにより、図32に示すように、「cut by a knife」のアクション候補の評価結果が出力される。図32の例においては、「cut by a knife」のアクション候補の成功率が99%であり、アクションの実行にかかる時間が20秒とされている。また、アクション実行後の片付けにかかる負荷が0.5とされている。
評価結果を構成するそれぞれの要素に対して重み付けが行われ、アクション候補の評価が行われるようにしてもよい。
図29のステップS10においては、例えば、このような評価に基づいて1つのアクションが選択される。
・命令コマンドの生成
調理ロボット2に実行させるアクションが選択された後、アクションDB112に格納されている情報に基づいて命令コマンドが生成されるものとしたが、NN(Neural Network)を用いて命令コマンドが生成されるようにしてもよい。
図33は、命令コマンドの生成の例を示す図である。
図33に示すように、命令コマンドの生成に用いられるNNがアクション毎に用意される。命令コマンドの生成に用いられるNNは、例えば、遷移前の状態と遷移後の状態のそれぞれの状態を示すパラメータセット、現在状態を示す情報などを入力として、命令コマンドを出力するNNである。
現在状態は、例えば、調理ロボット2により撮影された画像を変換して得られたベクトルデータ、調理ロボット2により計測されたセンサデータを変換して得られたベクトルデータなどにより表される。ベクトルデータの時系列などの様々な学習用データを用いた学習によってアクション毎のNNが予め生成され、例えばデータベース管理部235により管理されている。
図33のNNは「cut by a knife」のアクション用のNNである。「cut by a knife」のアクションが選択された場合、「cut by a knife」のアクション用のNNに対しては、矢印A101に示すように、調理ロボット2により撮影された画像Pが他の情報とともに入力される。画像Pは、「トマト」に「ナイフ」をあてた様子を撮影した画像である。
「cut by a knife」のアクション用のNNから出力された所定の命令コマンドが調理ロボット2に送信され、実行されることにより、矢印A102の先に示すように、次の状態に遷移するためのアクションが行われる。
・調理ロボット2の動作
次に、図34のフローチャートを参照して、調理ロボット2の調理処理について説明する。
図34に示す処理は、例えば、データ処理装置1から送信された命令コマンドが通信部253において受信されたときに開始される。
ステップS31において、命令コマンド取得部261は、データ処理装置1から送信されてきた命令コマンドを取得する。
ステップS32において、アーム制御部262は、命令コマンドに従って調理アーム21の動作を制御する。その後、ステップS31に戻り、データ処理装置1から命令コマンドが送信されてくる毎に以上の処理が繰り返される。
以上の一連の処理により、データ処理装置1は、レシピデータに含まれる画像とテキストデータから、料理に使う食材、それぞれの食材の調理方法、調理済みの食材の盛り付け方法を推定することができる。
食材の様々な状態に応じた調理方法に関する情報などがデータベースに用意されるため、データ処理装置1は、様々の状態に対応した形で調理を行わせることができる。データベースに用意されている情報は、人が持っている、調理に関する知識に相当する情報といえるものである。
上述したように、食材DB101には、人が持っている、食材の視覚情報に相当する画像が用意されている。また、調理方法DB102には、調理の種類、調理の進め方などの、調理方法の知識に相当する情報が用意されている。また、盛り付け方法DB103には、盛り付け方の知識に相当する情報が用意されている。
データ処理装置1は、レシピデータには表現されていない内容を、そのような知識に相当する情報でいわば補うことにより、様々の状態に対応した形で調理を行わせることが可能となる。
一方、調理ロボット2は、データ処理装置1による推定結果に基づいて、それぞれの食材を調理し、調理済みの食材を盛り付けることによって、料理を完成させることができる。状態遷移のプランニングが繰り返し行われるため、調理ロボット2は、どのような状態になった場合でも、料理を完成させることが可能となる。
このように、図1の制御システムにおいては、画像とテキストデータを含み、ロボットを制御するには不完全な情報といえるレシピデータに基づいて、調理ロボット2に調理を行わせるといったことが実現される。
<<変形例>>
レシピデータとデータベースに用意されている情報に基づいて調理のプランニングが行われるものとしたが、ユーザの嗜好をも考慮してプランニングが行われるようにしてもよい。例えば、ユーザの好きな食材を加えたり、嫌いな食材を除いたりしてプランニングが行われる。
調理に使うことが可能な食材の種類や数などの制約に応じて食材を変えたり、食材の量を変えたりしてプランニングが行われるようにしてもよい。
エンターテインメント性を有する調理が行われるようにしてもよい。例えば、カットを実行する前に、カットの仕方を音声で説明したり、料理が完成したときに音楽を再生したりする処理が調理ロボット2により行われることにより、調理ロボット2の調理にエンターテインメント性を持たせることが可能となる。
1つのレシピデータに基づいて1つの料理を作る場合について説明したが、複数のレシピデータがデータ処理装置1に入力され、複数のレシピデータに基づいて料理のプランニングなどが行われるようにしてもよい。複数のレシピデータが入力された場合、レシピデータを加工し、1つのレシピデータに組み合わせる処理がデータ処理装置1において行われる。
図35は、レシピデータの加工の例を示す図である。
複数種類の料理を作る場合、1種類ずつ順に作るのではなく、複数種類の料理を作るための調理が並行に進められる。
例えば料理Aと料理Bを作ることが選択された場合、状態制御部234は、図35に示すように、料理Aのレシピデータと料理Bのレシピデータを組み合わせ、料理Aと料理Bを作るためのレシピデータを生成する。
加工後のレシピデータにおいては、料理Aを作るための作業と料理Bを作るための作業が前後して組み合わされたものとなっている。
調理アーム21の数や利用可能なアタッチメントの種別によっては、料理Aを作るためのある作業中に、料理Bを作るための他の作業を行うことができることがある。
複数種類の料理を作る場合に、それぞれの料理を作るための作業が適宜並行して行われるようにレシピデータの記述内容を変更することにより、調理時間を短縮することが可能となる。
<コンピュータの構成例>
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、汎用のパーソナルコンピュータなどにインストールされる。
インストールされるプログラムは、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)や半導体メモリなどよりなる図25に示されるリムーバブルメディア211に記録して提供される。また、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供されるようにしてもよい。プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
なお、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
1 データ処理装置, 2 調理ロボット, 21-1乃至21-4 調理アーム, 61 コントローラ, 221 コマンド生成部, 231 レシピデータ取得部, 232 レシピデータ解析部, 233 ロボット状態推定部, 234 状態制御部, 235 データベース管理部, 236 コマンド出力部, 251 カメラ, 252 センサ, 253 通信部, 261 命令コマンド取得部, 262 アーム制御部

Claims (20)

  1. 料理の調理工程全体の状態シーケンスである調理全体シーケンスを、それぞれの調理工程に関するテキストデータと画像とを含むレシピデータに基づいて設定し、
    前記調理全体シーケンスを構成する状態間の状態シーケンスである個別シーケンスを予め用意されたデータベースの情報に基づいて設定し、
    アームを備える調理ロボットにそれぞれの前記個別シーケンスに応じた調理動作を実行させるための命令コマンドを生成する
    コマンド生成部を備える
    データ処理装置。
  2. 前記コマンド生成部は、食材食材の調理方法とを対応付けた情報を含む調理データセットを参照して、前記命令コマンドを生成する
    請求項1に記載のデータ処理装置。
  3. 前記調理データセットは、前記調理方法と、前記調理方法に従って前記調理動作を行う際に用いる調理道具とを対応付けた情報である
    請求項2に記載のデータ処理装置。
  4. 前記調理データセットは、前記調理方法と、前記調理方法に従って前記調理動作を行う際に用いる調理道具と、前記調理道具の仕様とを対応付けた情報である
    請求項2に記載のデータ処理装置。
  5. 前記コマンド生成部は、前記調理ロボットの能力に関する仕様と前記調理データセットを参照して、前記命令コマンドを生成する
    請求項2に記載のデータ処理装置。
  6. 前記コマンド生成部は、調理済みの食材の盛り付け方法に関する情報を含む盛り付けデータセットを参照して、前記命令コマンドを生成する
    請求項1に記載のデータ処理装置。
  7. 前記盛り付けデータセットは、食材の識別子と、盛り付けに使われる食器における食材の位置を示す位置データとを対応付けた情報である
    請求項6に記載のデータ処理装置。
  8. 前記位置データは、食材の平面位置と食材の階層位置のうちの少なくともいずれかを示す情報である
    請求項7に記載のデータ処理装置。
  9. 前記位置データは、食材の平面位置として、食材を同一階層に所定のパターンで配置した平面配置パターンを示し、食材の階層位置として、食材を異なる階層に所定のパターンで配置した階層配置パターンを示す情報である
    請求項8に記載のデータ処理装置。
  10. 前記画像は、前記料理を撮影した静止画像、または、前記料理の調理工程を撮影した動画像である
    請求項1に記載のデータ処理装置。
  11. 前記レシピデータには、前記テキストデータとして、食材の名称を示すテキストデータ、および、それぞれの調理工程の説明となるテキストデータのうちの少なくともいずれかが含まれる
    請求項1に記載のデータ処理装置。
  12. 前記コマンド生成部は、前記レシピデータに含まれる料理画像に写る前記料理の状態をゴール状態とした前記調理全体シーケンスを設定する
    請求項1に記載のデータ処理装置。
  13. 前記コマンド生成部は、調理に用いることが可能な食材の状態が、前記ゴール状態として設定された食材の状態を満たしていない場合、調理に用いることが可能な食材の状態に応じて前記ゴール状態を補正する
    請求項12に記載のデータ処理装置。
  14. 前記コマンド生成部は、前記料理を提供するユーザの嗜好に応じて前記調理全体シーケンスを設定する
    請求項12に記載のデータ処理装置。
  15. 前記コマンド生成部は、前記個別シーケンスに応じた前記調理動作が実行される毎に、前記調理動作の状態に応じて、前記ゴール状態を補正する
    請求項12に記載のデータ処理装置。
  16. 前記コマンド生成部は食材と前記調理工程のうちの少なくともいずれかを変更することによって前記ゴール状態を補正する
    請求項15に記載のデータ処理装置。
  17. 前記コマンド生成部は、食材食材の調理方法とを対応付けた情報を含む調理データセットを複数回参照しながら前記個別シーケンスを設定する
    請求項12に記載のデータ処理装置。
  18. 前記コマンド生成部は、前記調理ロボットにより調理された食材の盛り付け方法に関する情報を含む盛り付けデータセットを複数回参照しながら前記個別シーケンスを設定する
    請求項12に記載のデータ処理装置。
  19. 前記コマンド生成部は、複数の前記レシピデータを組み合わせた組み合わせレシピデータに基づいて、前記命令コマンドを生成する
    請求項1に記載のデータ処理装置。
  20. データ処理装置が、
    料理の調理工程全体の状態シーケンスである調理全体シーケンスを、それぞれの調理工程に関するテキストデータと画像とを含むレシピデータに基づいて設定し、
    前記調理全体シーケンスを構成する状態間の状態シーケンスである個別シーケンスを予め用意されたデータベースの情報に基づいて設定し、
    アームを備える調理ロボットにそれぞれの前記個別シーケンスに応じた調理動作を実行させるための命令コマンドを生成する
    データ処理方法。
JP2018208192A 2018-11-05 2018-11-05 データ処理装置、データ処理方法 Active JP7259269B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2018208192A JP7259269B2 (ja) 2018-11-05 2018-11-05 データ処理装置、データ処理方法
CN201980071475.0A CN113168604A (zh) 2018-11-05 2019-10-24 数据处理装置和数据处理方法
US17/287,031 US11995580B2 (en) 2018-11-05 2019-10-24 Data processing device and data processing method
EP19801122.3A EP3877928A1 (en) 2018-11-05 2019-10-24 Data processing device and data processing method
KR1020217011654A KR20210089646A (ko) 2018-11-05 2019-10-24 데이터 프로세싱 디바이스 및 데이터 프로세싱 방법
PCT/JP2019/041606 WO2020095687A1 (en) 2018-11-05 2019-10-24 Data processing device and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018208192A JP7259269B2 (ja) 2018-11-05 2018-11-05 データ処理装置、データ処理方法

Publications (2)

Publication Number Publication Date
JP2020075301A JP2020075301A (ja) 2020-05-21
JP7259269B2 true JP7259269B2 (ja) 2023-04-18

Family

ID=68501985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018208192A Active JP7259269B2 (ja) 2018-11-05 2018-11-05 データ処理装置、データ処理方法

Country Status (6)

Country Link
US (1) US11995580B2 (ja)
EP (1) EP3877928A1 (ja)
JP (1) JP7259269B2 (ja)
KR (1) KR20210089646A (ja)
CN (1) CN113168604A (ja)
WO (1) WO2020095687A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116507459A (zh) 2020-11-11 2023-07-28 索尼集团公司 信息处理设备和烹饪系统
US20220172107A1 (en) * 2020-12-01 2022-06-02 X Development Llc Generating robotic control plans
US20230030633A1 (en) * 2021-07-28 2023-02-02 Bear Robotics, Inc. Method, system, and non-transitory computer-readable recording medium for controlling a serving robot

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058771A (ja) 2001-08-09 2003-02-28 Matsushita Electric Ind Co Ltd 投稿レシピ記憶方法及び投稿レシピ提供方法
JP2005504259A (ja) 2001-09-29 2005-02-10 暁林 張 料理法の全情報記録システム及びロボットによる自動料理システム
JP2008123131A (ja) 2006-11-09 2008-05-29 Toshiba Corp 調理レシピ抽出装置および方法、並びに調理レシピ抽出プログラム
JP2017536247A (ja) 2014-09-02 2017-12-07 エムビーエル リミテッド 電子小規模操作ライブラリを用いて計装環境内でドメイン特定アプリケーションを実行するためのロボット操作方法及びシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745815B1 (ko) * 2006-01-26 2007-08-02 엘지전자 주식회사 조리기기의 가족별 메뉴관리방법과 장치
JP2017506169A (ja) 2014-02-20 2017-03-02 マーク オレイニク ロボット調理キッチン内の食品調製のための方法及びシステム
JP6561562B2 (ja) * 2014-06-30 2019-08-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 加熱調理装置、情報表示装置、制御方法、調理器具、およびコンピュータプログラム
TR201708738T4 (tr) * 2014-09-01 2018-11-21 Vorwerk Co Interholding Tarif kontrollü çok-fonksiyonlu pişirme aygıtı.
WO2017197018A2 (en) * 2016-05-10 2017-11-16 Trustees Of Tufts College Systems and methods enabling online one-shot learning and generalization by intelligent systems of task-relevant features and transfer to a cohort of intelligent systems
CN106647475A (zh) * 2016-12-08 2017-05-10 美的集团股份有限公司 实现智能烹饪的控制方法及装置
US20210030199A1 (en) * 2017-03-06 2021-02-04 Miso Robotics, Inc. Augmented reality-enhanced food preparation system and related methods
EP4099880A1 (en) * 2020-02-06 2022-12-14 Mark Oleynik Robotic kitchen hub systems and methods for minimanipulation library

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003058771A (ja) 2001-08-09 2003-02-28 Matsushita Electric Ind Co Ltd 投稿レシピ記憶方法及び投稿レシピ提供方法
JP2005504259A (ja) 2001-09-29 2005-02-10 暁林 張 料理法の全情報記録システム及びロボットによる自動料理システム
JP2008123131A (ja) 2006-11-09 2008-05-29 Toshiba Corp 調理レシピ抽出装置および方法、並びに調理レシピ抽出プログラム
JP2017536247A (ja) 2014-09-02 2017-12-07 エムビーエル リミテッド 電子小規模操作ライブラリを用いて計装環境内でドメイン特定アプリケーションを実行するためのロボット操作方法及びシステム

Also Published As

Publication number Publication date
CN113168604A (zh) 2021-07-23
EP3877928A1 (en) 2021-09-15
US11995580B2 (en) 2024-05-28
KR20210089646A (ko) 2021-07-16
JP2020075301A (ja) 2020-05-21
WO2020095687A1 (en) 2020-05-14
US20210379766A1 (en) 2021-12-09

Similar Documents

Publication Publication Date Title
JP7259269B2 (ja) データ処理装置、データ処理方法
AU2020226988B2 (en) Robotic manipulation methods and systems for executing a domain-specific application in an instrumented environment with electronic minimanipulation libraries
AU2018306475A1 (en) Systems and methods for operations a robotic system and executing robotic interactions
EP3107429B1 (en) Methods and systems for food preparation in a robotic cooking kitchen
EP3389955A2 (en) Robotic kitchen including a robot, a storage arrangement and containers therefor
JP7259270B2 (ja) 調理ロボット、調理ロボット制御装置、制御方法
US20230031545A1 (en) Robotic kitchen systems and methods in an instrumented environment with electronic cooking libraries
WO2021065609A1 (ja) データ処理装置、データ処理方法、調理ロボット
WO2021024830A1 (ja) 情報処理装置、情報処理方法、調理ロボット、調理方法、および調理器具
US20230092168A1 (en) Information processing device, information processing terminal, and information processing method
US20220338671A1 (en) Information processing device, information processing method, cooking robot, cooking method, and cooking equipment
WO2021200308A1 (ja) 制御装置、制御方法
KR20240072447A (ko) 지식과 학습이 결합된 계층적 로봇 작업 프레임워크

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230320

R151 Written notification of patent or utility model registration

Ref document number: 7259269

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151