JP7188279B2 - 機械学習方法および移動ロボット - Google Patents

機械学習方法および移動ロボット Download PDF

Info

Publication number
JP7188279B2
JP7188279B2 JP2019100532A JP2019100532A JP7188279B2 JP 7188279 B2 JP7188279 B2 JP 7188279B2 JP 2019100532 A JP2019100532 A JP 2019100532A JP 2019100532 A JP2019100532 A JP 2019100532A JP 7188279 B2 JP7188279 B2 JP 7188279B2
Authority
JP
Japan
Prior art keywords
obstacle
mobile robot
route
learning
destination
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
JP2019100532A
Other languages
English (en)
Other versions
JP2020194432A (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.)
Toyota Motor Corp
Original Assignee
Toyota Motor 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 Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2019100532A priority Critical patent/JP7188279B2/ja
Priority to DE102020111325.0A priority patent/DE102020111325A1/de
Priority to CN202010355422.6A priority patent/CN112015172A/zh
Priority to US16/868,089 priority patent/US11703872B2/en
Publication of JP2020194432A publication Critical patent/JP2020194432A/ja
Application granted granted Critical
Publication of JP7188279B2 publication Critical patent/JP7188279B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0234Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons
    • G05D1/0236Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using optical markers or beacons in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4061Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0005Manipulators having means for high-level communication with users, e.g. speech generator, face recognition means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/003Controls for manipulators by means of an audio-responsive input
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0003Home robots, i.e. small robots for domestic use
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/162Mobile manipulator, movable base with manipulator arm mounted on it
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0214Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0223Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • G05D1/024Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors in combination with a laser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0251Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/22Command input arrangements
    • G05D1/228Command input arrangements located on-board unmanned vehicles
    • G05D1/2285Command input arrangements located on-board unmanned vehicles using voice or gesture commands
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • G05D1/24Arrangements for determining position or orientation
    • G05D1/246Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM]
    • G05D1/2464Arrangements for determining position or orientation using environment maps, e.g. simultaneous localisation and mapping [SLAM] using an occupancy grid
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/617Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
    • G05D1/622Obstacle avoidance
    • G05D1/633Dynamic obstacles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/644Optimisation of travel parameters, e.g. of energy consumption, journey time or distance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39082Collision, real time collision avoidance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39091Avoid collision with moving obstacles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39271Ann artificial neural network, ffw-nn, feedforward neural network
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39315Art ann classifier and input selector, bam ann to retrieve collision free path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40411Robot assists human in non-industrial environment like home or office
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2101/00Details of software or hardware architectures used for the control of position
    • G05D2101/10Details of software or hardware architectures used for the control of position using artificial intelligence [AI] techniques
    • G05D2101/15Details of software or hardware architectures used for the control of position using artificial intelligence [AI] techniques using machine learning, e.g. neural networks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2105/00Specific applications of the controlled vehicles
    • G05D2105/30Specific applications of the controlled vehicles for social or care-giving applications
    • G05D2105/31Specific applications of the controlled vehicles for social or care-giving applications for attending to humans or animals, e.g. in health care environments
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2107/00Specific environments of the controlled vehicles
    • G05D2107/60Open buildings, e.g. offices, hospitals, shopping areas or universities
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2109/00Types of controlled vehicles
    • G05D2109/10Land vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Optics & Photonics (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Manufacturing & Machinery (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Description

本発明は、機械学習方法および移動ロボットに関する。
目標地点まで自律的に移動する移動ロボットが知られている。移動ロボットは、環境地図を用いて目標地点までの経路を決定し、その経路に沿って移動する。例えば、特許文献1は、移動経路において障害物と衝突する可能性を評価する技術を開示する。
特開2009-291540号公報 特開2017-204145号公報
移動ロボットが目的地まで自律的に移動する場合には、地図情報を解析して移動経路を生成する場合が多い。しかし、地図情報は、例えば人や他の移動ロボットなど環境内で動作する障害物の情報を含んでおらず、静止した障害物の情報が記述されているに過ぎない。したがって、生成された移動経路に沿って移動する場合であっても、動作する障害物を検知するたびにその障害物を回避する回避経路を解析的に生成する必要があった。
すなわち、移動経路の生成も回避経路の生成も解析的に行うので演算に時間がかかり、移動ロボットの移動性能を制限するものであった。そこで、解析的な演算を回避するために、学習済みニューラルネットワークを利用することが考えられる。しかし、静止した障害物と動作する障害物のあらゆる配置や状態およびその組み合わせに対する経路生成をニューラルネットワークに機械学習させることは、現実的には困難である。
本発明は、このような問題を解決するためになされたものであり、移動ロボットの円滑な自律移動を実現するための実用的なニューラルネットワークの機械学習方法と、その機械学習方法によって学習した学習済みニューラルネットワークを利用して自律移動する移動ロボットとを提供するものである。
本発明の第1の態様における機械学習方法は、与えられた地図情報と検出された移動体情報に基づいて、目的地までの移動ロボットの経路を出力するようコンピュータを機能させるためのニューラルネットワークの機械学習方法であって、当該ニューラルネットワークが移動ロボットに実装される前の段階において、シミュレーションを利用して、設定された空間に静止した第1障害物を配置し、出発地から第1障害物を回避して目的地まで到達する経路を、第1障害物の配置を異ならせて繰り返し学習する第1学習ステップと、当該ニューラルネットワークが移動ロボットに実装された後の段階において、移動ロボットが移動する空間内で移動ロボットが周囲で動作する第2障害物を認識した場合に、第2障害物を回避して目的地まで到達する経路を、第2障害物を認識するごとに繰り返し学習する第2学習ステップとを有する。
このように機械学習を二段階に分けることにより、実装対象となる移動ロボットが自律移動する作業空間に適応した学習済みニューラルネットワークを迅速に作成することができる。すなわち、様々な作業空間で利用されるそれぞれの移動ロボットに実装される各ニューラルネットワークは、静止した障害物を回避して目的地まで到達する経路の学習を共通に学習し、一方で、作業空間の性質に大きく依存する動作障害物の回避については、それぞれの移動ロボットに実装されてから個別に学習することにより、学習の効率化と、各移動ロボットに対する適応性の向上を図っている。
上記の機械学習方法において第2学習ステップは、使用者によって示される経路を目的地まで到達する経路の少なくとも一部として学習することができる。動作する障害物に対してどのように回避する経路を生成するかを使用者に示してもらえば、より簡便に教師データを得ることができる。
この場合、使用者によって示される経路を使用者が発する音声に基づいて取得しても良い。例えば、使用者の「右へ避けろ」との音声をマイクで取得した場合には、障害物の位置と動作速度を把握した上で、当該障害物を右へ避ける経路を生成する。同様に、使用者によって示される経路を使用者が示す動作に基づいて取得しても良い。例えば、使用者が右へ指さすジェスチャーをカメラで取得した場合には、障害物の位置と動作速度を把握した上で、当該障害物を右へ避ける経路を生成する。さらに、使用者によって示される経路を使用者が移動ロボットに加える力に基づいて取得しても良い。例えば、使用者が移動ロボットを右側へ押す力を検知した場合には、障害物の位置と動作速度を把握した上で、当該障害物を右へ避ける経路を生成する。いずれにしても、使用者は、複雑な作業を行うことなく簡単に、障害物を回避する経路を移動ロボットへ示すことができる。
また、第2学習ステップは、仮想的な第2障害物を発生させて移動ロボットに認識させる場合を含んでも良い。移動する障害物の典型的な具体例をある程度取得した後は、同様の障害物を仮想的に様々な場所に発生させ、その仮想的な障害物を回避する経路を学習すれば、多くの教師データを得ることができる。
上記の機械学習方法において設定された空間における移動ロボットの移動平面は、m×n(n、mは2以上の自然数)のセルで表わされ、第1障害物および第2障害物は、セルを占有する障害物として移動ロボットに認識されると良い。このようなデータ構造を採用することにより、移動ロボットが自律移動する様々な空間に対応することができ、また、単純なデータ構造から演算量の軽減にも寄与する。
本発明の第2の態様における移動ロボットは、上記の機械学習方法によって学習した学習済みニューラルネットワークが実装された移動ロボットであって、第1障害物が記述された地図情報および目的地を取得する取得部と、周囲で動作する第2障害物を検知する検知部と取得部が取得した地図情報および目的地と検知部が検知した第2障害物の検知情報とを学習済みニューラルネットワークに入力して目的地まで到達する経路を演算する演算部と、演算部が演算した経路に沿って移動するように制御する移動制御部とを備える。
このように制御される移動ロボットは、移動すべき経路を迅速に決定できるので、滑らかな自律移動を行うことができる。この場合、演算部は、検知部が第2障害物を検知するごとに経路を更新しても良い。このように更新すれば、状況に応じた最適経路を選択することができる。
本発明により、移動ロボットの円滑な自律移動を実現するための実用的なニューラルネットワークの機械学習方法と、その機械学習方法によって学習した学習済みニューラルネットワークを利用して自律移動する移動ロボットとを提供することができる。
本実施形態に係る機械学習方法が行われるシステムの全体を説明するための概念図である。 移動ロボットの外観を示す斜視図である。 移動ロボットの制御ブロック図である。 シミュレーションPCの制御ブロック図である。 対象空間を記述するデータ構造について説明する概念図である。 第1学習ステップにおける教師データの生成について説明する説明図である。 第1学習ステップの学習の概念を説明する概念図である。 第2学習ステップにおける学習の様子を示す概念図である。 第2学習ステップにおける教師データの生成について説明する説明図である。 第2学習ステップの学習の概念を説明する概念図である。 本実施形態に係る機械学習方法のうち、主に第1学習ステップの処理について説明するフロー図である。 本実施形態に係る機械学習方法のうち、主に第2学習ステップの処理について説明するフロー図である。 本実施形態に係る学習済みニューラルネットワークが実装された移動ロボットの自律移動処理について説明するフロー図である。
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
図1は、本実施形態に係る機械学習方法が行われるシステムの全体を説明するための概念図である。システムは、全体として、ニューラルネットワークの機械学習を行う機械学習装置として機能する。本実施形態において機械学習を行うニューラルネットワークは、与えられた地図情報と検出された移動体情報等を入力すると、移動ロボットが移動すべき目的地までの経路を出力するようコンピュータを機能させる経路生成ニューラルネットワーク(以下、経路生成NNと呼ぶ)である。
システムは、経路生成NNの第1学習ステップまでを行うシミュレーションPC300と、その後の第2学習ステップを行う移動ロボット100を含む。移動ロボット100は、無線ユニット700を介してインターネット600と接続されている。また、シミュレーションPC300およびシステムサーバ500も、インターネット600と接続されている。
ここでは、第1学習ステップを行う環境と第2学習ステップを行う環境とが離れた場所であって、インターネット600を介して互いに接続され得る環境を想定している。具体的には、シミュレーションPCで第1学習ステップまで学習した経路生成NNは、システムサーバ500を経由して移動ロボット100へ実装される。なお、インターネット600を介さず、着脱可能なメモリを利用して、経路生成NNをシミュレーションPC300から移動ロボット100へ移す構成であっても構わない。また、第1学習ステップを行う環境と第2学習ステップを行う環境とが近ければ、近接無線通信を利用することもできる。
第2学習ステップが行われる環境は、移動ロボット100が実際に運用される環境、あるいはそれに近い環境であることが望ましい。例えば、複数の移動ロボット100のそれぞれを別々の環境で運用することを予定している場合は、まず、シミュレーションPC300で一括して経路生成NNに第1学習ステップの学習を行わせる。そして、各移動ロボット100へ当該経路生成NNを実装し、それぞれが運用される環境で第2学習ステップの学習を行わせると良い。
図2は、経路生成NNが実装される移動ロボットの一例である移動ロボット100の外観を示す斜視図である。移動ロボット100は、大きく分けて台車部110と本体部120によって構成される。台車部110は、円筒形状の筐体内に、それぞれが走行面に接地する2つの駆動輪111と1つのキャスター112とを支持している。2つの駆動輪111は、互いに回転軸芯が一致するように配設されている。それぞれの駆動輪111は、不図示のモータによって独立して回転駆動される。キャスター112は、従動輪であり、台車部110から鉛直方向に延びる旋回軸が車輪の回転軸から離れて車輪を軸支するように設けられており、台車部110の移動方向に倣うように追従する。
台車部110は、上面の周縁部にレーザスキャナ133を備える。レーザスキャナ133は、水平面内の一定の範囲をステップ角ごとにスキャンして、それぞれの方向に障害物が存在するか否かを出力する。さらに、障害物が存在する場合には、その障害物までの距離を出力する。移動ロボット100は、レーザスキャナ133の連続する出力を解析することにより、障害物が動作しているか否か、動作している場合にはその動作方向およびその速度を把握することができる。
本体部120は、主に、台車部110の上面に搭載された胴部121、胴部121の上面に載置された頭部122、胴部121の側面に支持されたアーム123、およびアーム123の先端部に設置されたハンド124を備える。アーム123とハンド124は、不図示のモータを介して駆動され、様々な物体を制御された姿勢で把持する。胴部121は、不図示のモータの駆動力により、台車部110に対して鉛直軸周りに回転することができる。胴部121の上部には、円周方向に押圧ユニット143が設けられている。押圧ユニット143は、円周方向に沿って複数の押圧スイッチが整列された円環状の押圧スイッチ群である。押圧ユニット143は、胴部121に対して放射方向のどの方向から押されたかを検出する。
頭部122は、主に、ステレオカメラ131、マイク132および表示パネル141を備える。ステレオカメラ131は、同じ画角を有する2つのカメラユニットが互いに離間して配置された構成を有し、それぞれのカメラユニットで撮像された撮像信号を出力する。マイク132は、周辺環境で発生する音や使用者の声を音声信号に変換する。表示パネル141は、例えば液晶パネルであり、設定されたキャラクターの顔をアニメーションで表示したり、移動ロボット100に関する情報をテキストやアイコンで表示したりする。
頭部122は、不図示のモータの駆動力により、胴部121に対して鉛直軸周りに回転することができる。したがって、ステレオカメラ131は、任意の方向の対象物を撮像することができ、また、表示パネル141は、任意の方向へ向けて表示内容を呈示することができる。移動ロボット100は、ステレオカメラ131で撮像された撮像信号を解析することによっても、周囲の障害物までの距離や方向、障害物が動作する場合にはその動作方向およびその速度を把握することができる。
図3は、移動ロボット100の制御ブロック図である。制御部150は、例えばCPUであり、例えば胴部121に備えられたコントロールユニットに格納されている。台車駆動ユニット145は、駆動輪111と駆動輪111を駆動するための駆動回路やモータを含む。制御部150は、台車駆動ユニット145へ駆動信号を送ることにより、駆動輪の回転制御を実行する。また、制御部150は、台車駆動ユニット145からエンコーダ等のフィードバック信号を受け取って、台車部110の移動方向や移動速度を把握する。
上体駆動ユニット146は、アーム123およびハンド124を含む把持部、胴部121および頭部122と、これらを駆動するための駆動回路やモータを含む。制御部150は、上体駆動ユニット146へ駆動信号を送ることにより、把持動作や姿勢変更を実現する。また、制御部150は、上体駆動ユニット146からエンコーダ等のフィードバック信号を受け取って、アーム123およびハンド124の位置や移動速度、胴部121および頭部122の向きや回転速度を把握する。
表示パネル141は、制御部150が生成した画像信号を受信して表示する。制御部150は、上述のように、キャラクター等の画像信号を生成して、表示パネル141へ表示させる。表示パネル141がタッチパネルを備える場合には、表示パネル141は、タッチ信号を制御部150へ送信する。
ステレオカメラ131は、制御部150からの要求に従って周辺環境を撮像し、撮像信号を制御部150へ引き渡す。制御部150は、撮像信号を用いて画像処理を実行する。マイク132は、周辺環境で発生する音や使用者の声を音声信号に変換して制御部150へ引き渡す。レーザスキャナ133は、制御部150からの要求に従って移動方向に障害物が存在するか否かを検出し、その結果である検出信号を制御部150へ引き渡す。ステレオカメラ131およびレーザスキャナ133は、移動ロボット100の周囲で動作する障害物を検知する検知部としての機能も担う。
メモリ180は、不揮発性の記憶媒体であり、例えばソリッドステートドライブが用いられる。メモリ180は、移動ロボット100を制御するための制御プログラムや第2学習ステップを実行するための機械学習プログラムの他にも、制御や演算に用いられる様々なパラメータ値、関数、ルックアップテーブル等を記憶している。メモリ180は、特に、自律移動することが予定されている空間を記述した地図情報のデータベースである地図DB181と、学習中のあるいは学習済みの経路生成NN200の記憶領域を含む。
地図DB181は、例えばシステムサーバ500から送られてくる地図情報を蓄積する。制御部150は、移動ロボット100が存在する地図情報を地図DB181から読み出して参照する。経路生成NN200は、第2学習ステップの機械学習を開始するに当たり、上述のようにシステムサーバ500から送られてきたものである。あるいは、移動ロボット100の運用段階においては、他の移動ロボット100により同一環境で第2学習ステップの機械学習が行われた、学習済みの経路生成NNのコピーであっても良い。制御部150は、学習段階において第2学習ステップの機械学習を行う場合、および運用段階において目的地までの経路を決定する場合に、経路生成NN200をメモリ380から読み出して後述する演算を行う。
押圧ユニット143は、円環状に配置された複数の押圧スイッチのうち、どのスイッチが押圧されたかを示す押圧信号を出力する。制御部150は、受け取った押圧信号から、押圧ユニット143が放射方向のどの方向から押されたかを認識する。通信ユニット190は、例えば無線LANユニットであり、無線ユニット700との間で無線通信を行う。通信ユニット190は、システムサーバ500から送られてくる地図情報や経路生成NN200を制御部150へ引き渡す。
制御部150は、メモリ180から読み出した制御プログラムや機械学習プログラムを実行することにより移動ロボット100全体の制御と処理とを実行する。制御部150は、制御と処理に関わる様々な演算を実行する機能演算部としての役割も担う。学習部151および演算部152は、機能演算部の例である。学習部151は、メモリ380から学習中の経路生成NN200を読み出して、第2学習ステップの機械学習を実行する。演算部152は、メモリ380から学習済みの経路生成NN200を読み出して、目的地まで到達する経路を演算する。
図4は、シミュレーションPC300の制御ブロック図である。演算部350は、例えばCPUであり、シミュレーションPC300の全体を制御する。ディスプレイ341は、例えば液晶パネルであり、演算部350が生成した画像信号を表示する。入力ユニット342は、例えばディスプレイ341に重畳されたタッチパネルや、キーボードやマウスであり、使用者の操作入力を電気信号に変換して演算部350へ引き渡す。
メモリ380は、不揮発性の記憶媒体であり、例えばソリッドステートドライブが用いられる。メモリ380は、移動ロボット100を制御するための制御プログラムや第1学習ステップを実行するための機械学習プログラムの他にも、制御や演算に用いられる様々なパラメータ値、関数、ルックアップテーブル等を記憶している。メモリ380は、特に、学習中あるいは学習前の経路生成NN200の記憶領域を含む。演算部350は、メモリ380から学習中または学習前の経路生成NN200を読み出して、第1学習ステップの機械学習を実行する。
通信ユニット390は、例えば有線LANユニットであり、インターネット600への接続を実現する。通信ユニット390は、第1学習ステップの学習を終えた経路生成NN200をシステムサーバ500へ引き渡す。
次に、地図情報について説明する。地図情報は、対象空間の様子を記述するデータ構造を含む。図5は、対象空間を記述するデータ構造について説明する概念図である。
移動ロボット100が移動する対象空間は、移動ロボットが移動する移動平面として、複数のセルに区分されて二次元的に表現される。図の例では、移動平面は、横m個(mは2以上の自然数)、縦n個(nは2以上の自然数)の正方セルで区分されている。各セルは、移動平面の全体に対する位置を表わすアドレスが個別に割り当てられている。
図の例において、斜線で示されたセルは、対象空間において静止した障害物(以下、第1障害物と呼ぶ場合がある)が存在することを表わしている。すなわち、移動ロボット100は、斜線で示されたセルを通過できない。また、移動中に移動ロボット100の一部が斜線で示されたセルと干渉することも許されない。例えば、部屋の中央付近に置かれたテーブルや、壁際に設置されている棚や、部屋の四方の柱などは、第1障害物として、その位置と大きさに合わせて対応するセルが斜線にされている。
このようなデータ構造で表現された対象空間の移動平面に対して、移動ロボットの出発地(菱形のマーク)と目的地(星形のマーク)が与えられる。出発地を表わす菱形のマークは、移動ロボット(本実施形態では移動ロボット100)が占有する移動平面上での面積を考慮して、その大きさが定められる。すなわち、出発地にある菱形のマークを、その外形が斜線のセルに掛かることなく星形のマークの位置まで掃引できる経路のすべてが、移動経路の候補となる。そのような移動経路の候補のうち、どの経路が最適であるかを、使用者が決めて入力する。
使用者がこの作業を繰り返すごとに、経路生成NN200の第1学習ステップのための教師データが生成される。すなわち、第1学習ステップのための教師データは、m×n個のセルに区分された移動平面に配置された第1障害物のレイアウトと、設定された出発地および目的地とを入力値とし、使用者によって決定された移動経路を正解の出力値とするものである。
図6は、第1学習ステップにおける教師データの生成について具体的に説明する説明図であり、シミュレーションPC300のディスプレイ341の様子を表わしている。
演算部350は、m×n個のセルに区分された移動平面に対して第1障害物をランダムに配置する。このとき、配置する第1障害物は、現実的に存在し得る障害物を想定して、その大きさや個数を予め制限しても良い。例えば、対象空間がオフィスであるときには、机やキャビネットなどの障害物が想定でき、工場内であるときには、工作機械や搬送装置などの障害物が想定できる。演算部350は、移動平面の枠内に第1障害物を斜線で描いて表示する。
演算部350は、更に、出発地と目的地の位置をランダムに決定して菱形のマーク(出発地)と星形のマーク(目的地)を表示する。出発地は、第1障害物が配置されていないセルから選択されて決定され、目的地は、第1障害物が配置されていないセルおよび第1障害物の周縁部のセルから選択されて決定される。上述のように、菱形のマーク大きさは、経路生成NN200が実装される移動ロボットの面積に対応して定められる。なお、移動平面の大きさ、第1障害物の制限、移動ロボットの大きさ等の基礎条件は、予め使用者によって指定される。
入力ユニット342としてディスプレイ341にタッチパネルが重畳されている。使用者は、図示するように「出発地から目的地までの経路を入力して下さい」などと促されると、菱形のマークをディスプレイ341上でドラッグして星形のマークまで移動させる。ドラッグにより生成された軌跡は、ラインとして表示される。演算部350は、決定ボタンがタッチされたら、この軌跡を使用者によって決定された移動経路の正解として記録する。なお、演算部350は、ドラッグ中に菱形のマークが斜線で表わされた第1障害物と接触した場合には、再試行を使用者に要求する。
演算部350は、このように生成された第1障害物のレイアウト、出発地、目的地および正解の移動経路のセットを一つの教師データとしてメモリ380に記録する。演算部350は、予め定められた数の教師データが揃うまで、あるいは使用者が打ち切りを指示するまでこの作業を繰り返し使用者に行わせる。
図7は、第1学習ステップのうち経路生成NN200が教師データを用いて学習する学習の概念を説明する図である。図6で示す作業を繰り返して教師データが準備されたら、経路生成NN200を教師あり学習により学習させる。ここで経路生成NN200に与える入力値は、上述のように、m×n個のセルに区分された移動平面に配置された第1障害物のレイアウトと、設定された出発地および目的地であり、動作する障害物は存在しないものとする。演算部350は、学習中の経路生成NN200が出力する移動経路と、正解の移動経路との誤差を評価し、当該誤差が減るように誤差逆伝播法を用いて各エッジの重みを更新する。誤差の評価は、例えば、出発地と目的地の間に等間隔で設けられる基準点同士の距離の総和で行い、当該総和が小さいほど正解に近い移動経路と評価する。
上述の例では、教師データが一定数揃ってから纏めて経路生成NN200の学習を行ったが、演算部350は、教師データが生成されるたびに経路生成NN200の学習を行っても良い。第1学習ステップを終えた経路生成NN200は、上述のようにインターネット600を経由して、移動ロボット100に実装される。
図8は、第2学習ステップにおける学習の様子を示す概念図である。第2学習ステップが行われる環境は、上述のように、移動ロボット100が実際に運用される環境、あるいはそれに近い環境であることが望ましい。すなわち、第2学習ステップは、移動ロボット100の将来の運用に合わせて、実際の環境あるいは類似する環境において、現実に発生し得る動作する障害物(以下、第2障害物と呼ぶ場合がある)への対処を学習するステップである。なお、第2学習ステップを行う使用者は、第1学習ステップを行った使用者と異なっていても構わない。
移動ロボット100は、第2学習ステップを行う空間の地図情報を取得している。すなわち、m×n個のセルに区分された移動平面に、実際に配置されているテーブルや柱などの第1障害物が記述された地図情報を、地図DB181に有している。例えば、図示されているテーブル900は、第1障害物として地図情報に記述されている。
学習部151は、現在地を出発地とし、第1障害物が配置されていないセルおよび第1障害物の周縁部のセルからランダムに選択したセルを目的地として設定する。そして、経路生成NN200を用いて目的地までの移動経路を生成する。移動経路を生成したら、台車駆動ユニット145へ駆動信号を送信し、当該移動経路に沿って移動ロボット100を移動させる。
例えば、目的地が図中の容器910の近傍に対応するセルである場合に、地図情報に記述されていない第2障害物が環境中に存在しなければ、移動ロボット100は、経路生成NN200が決定した移動経路に沿った点線の白抜き矢印方向へ進む。しかし、ステレオカメラ131またはレーザスキャナ133によって移動方向に動作する並存者を検出した場合には、学習部151は、その旨を指示者である使用者に知らせて、進むべき方向の指示を仰ぐ。なお、並存者は、移動ロボット100が移動する環境中に並存し得る人物であり、移動ロボット100にとっては第2障害物の一つである。
使用者は、状況を認識した上で、移動ロボット100が第2障害物と接触しないように、回避すべき方向を移動ロボット100へ示す。ここでは、使用者は、回避すべき方向へ向かって押圧ユニット143を押すことにより、移動ロボット100へ当該方向を示す。学習部151は、押圧ユニット143が押された方向を取得して、例えば実線の白抜き矢印で示すように、回避すべき方向を認識する。学習部151は、認識した回避方向に基づいて、第2障害物を回避して目的地に到達する移動経路を計算する。
使用者は、このように押圧ユニット143を回避方向へ押すことにより、直接的あるいは間接的に目的地に到達するまでの移動経路の少なくとも一部を示していると言える。使用者による移動経路の少なくとも一部の示し方は、押圧ユニット143の押圧に限らず、様々な方法を採用し得る。例えば、学習部151は、ステレオカメラ131の出力画像から使用者が示す動作を解析してその方向を認識することもできる。一例としては、学習部151は、使用者が指を差した方向や、ジェスチャーで示した方向を回避方向と認識する。あるいは、学習部151は、マイク132が出力する音声信号から使用者が発する音声を解析してその方向を認識することもできる。一例としては、学習部151は、「45度右へ旋回しろ」などの音声から回避方向と認識する。
また、移動ロボット100が押圧力とその方向を検出できるグリップを備えるような場合には、学習部151は、使用者が当該グリップを把持して移動ロボット100に加える力とその方向を解析して回避方向と認識することもできる。このようなグリップを備えて使用者の押圧方向を継続して検出する場合や、音声やジェスチャーを継続して解析する場合には、学習部151は、単に回避方向を認識するだけでなく、使用者によって示される回避経路として認識することもできる。
第2障害物は、環境中に並存し得る人物に限らず、他の移動ロボットや屋内モビリティ、ロボットアーム、環境によっては動物なども対象になり得る。すなわち、移動ロボット100は、将来運用される環境において認識すべき第2障害物に合わせて第2学習ステップを実行することができる。
図9は、第2学習ステップにおける教師データの生成について説明する説明図である。図9(a)は、第1学習ステップを終えた経路生成NN200によって生成された出発地から目的地までの移動経路を太線で表わす。上述のように、出発地は菱形のマークで示され、目的地は星形のマークで示されている。この段階においては、第2障害物は考慮されていない。
図9(b)は、移動ロボット100が二重丸のマークで示す第2障害物を認識した時点の様子を表わす。点線の経路は既に移動を終えた経路である。二重丸のマークは、第2障害物が存在する位置に対応するセルに重ねて描かれている。黒い矢印は第2障害物の動作ベクトルを示し、移動ロボット100が認識した時点における第2障害物の動作方向とその速度を表現している。すなわち、学習部151は、第2障害物を検出した場合には、自機との相対的な位置、動作方向および動作速度を認識する。
白抜き矢印は、使用者によって示された回避方向を示す。学習部151は、使用者によって示された回避方向に合致する回避経路を、既存のアルゴリズムを用いて生成する。回避経路は、第2障害物を発見した発見地点から、当該第2障害物を回避して、迅速かつ円滑に図9(a)の移動経路に復帰する経路である。図9(c)は、そのようにして生成した回避経路と、復帰後の元の移動経路とを接続した移動経路である。
学習部151は、図9(c)の太線で示す第2障害物を認識した認識地点から目的地までの移動経路を、図9(b)の太線で示す元の移動経路、第2障害物の相対的な位置、動作方向およびその動作速度を入力値とした場合の正解としてメモリ180に記録する。すなわち、このような入力値に対する正解のセットを一つの教師データとして記録する。なお、図9(b)の太線で示す元の移動経路は、第2障害物を発見した地点から目的地までの移動経路である。学習部151は、予め定められた数の教師データが揃うまで、あるいは使用者が打ち切りを指示するまでこの作業を繰り返し使用者に行わせる。
図10は、第2学習ステップのうち経路生成NN200が教師データを用いて学習する学習の概念を説明する概念図である。図9で示す作業を繰り返して教師データが準備されたら、経路生成NN200を教師あり学習により学習させる。
正解ラベルは、上述のように、第2障害物を回避する回避経路と復帰後の元の移動経路とを接続した移動経路であるが、第2障害物の状況によっては、元の移動経路に復帰することなく目的地に到達する移動経路であっても良い。学習部151は、学習中の経路生成NN200が出力する移動経路と、正解の移動経路との誤差を評価し、当該誤差が減るように誤差逆伝播法を用いて各エッジの重みを更新する。誤差の評価は、例えば、認識地点と目的地の間に等間隔で設けられる基準点同士の距離の総和で行い、当該総和が小さいほど正解に近い移動経路と評価する。
上述の例では、教師データが一定数揃ってから纏めて経路生成NN200の学習を行ったが、学習部151は、教師データが生成されるたびに経路生成NN200の学習を行っても良い。第2学習ステップを終えた経路生成NN200は、現に第2学習ステップを実行した移動ロボット100において運用に供される。あるいは、同様の環境で自律移動する移動ロボットに移されて運用に供される。
次に、本実施形態に係る機械学習方法の処理についてフローを用いて説明する。図11は、本実施形態に係る機械学習方法のうち、主に第1学習ステップの処理について説明するフロー図である。第1学習ステップは、上述のように、シミュレーションPC300で行われる。ここでは、教師データを得るたびに経路生成NN200の学習を行う手法について説明する。
シミュレーションPC300の演算部350は、ステップS101で、これから学習を行う経路生成NN200が学習後に実装される予定の移動ロボットの移動空間を想定して、当該空間に関する設定を行う。具体的には、移動平面の広さを定義するために一つのセルの大きさやm×nのセルの区分数を、使用者の指定に従って設定する。そして、未学習の経路生成NN200を生成する。また、この段階において、演算部350は、第1障害物の大きさや個数の制限、移動ロボットの大きさ等の基礎条件を受け付けても良い。基礎条件を受け付けた場合には、後の処理における処理条件として用いられる。
演算部350は、ステップS102で、設定された移動平面に対して静止障害物、出発地、目的地をランダムに生成する。そして、図6に示すような映像信号に変換して、ディスプレイ341に表示する。ステップS103へ進み、演算部350は、使用者に指定された正解の移動経路を受け付ける。例えば、使用者が入力ユニット342を操作して出発地に表示された菱形のマークを目的地の星形のマークまでドラッグした軌跡を正解の移動経路として取得する。このとき、演算部350は、例えばスプライン補間などの処理によって滑らかな曲線に修正しても良い。また、基礎条件として入力された移動ロボットの条件に対して移動不可能な軌跡であれば、再度の入力を促しても良い。
ステップS104へ進み、演算部350は、ステップS102とステップS104によって生成された教師データを学習中の経路生成NN200に与えて、上述の学習演算を実行する。そして、ステップS105へ進み、当該教師データによる学習演算によって、これまでに実行された学習演算の回数が予定された繰り返し回数を達成したか否かを確認する。すなわち、予め定められた教師データ数の学習を終えたか否かを確認する。終えていなければ、ステップS102へ戻って一連の処理を繰り返す。終えていればステップS106へ進む。
演算部350は、ステップS106で、第1学習ステップを終えた経路生成NN200を、通信ユニット190を介して移動ロボット100へ引き渡す。第1学習ステップを終えた経路生成NN200は、移動平面に配置された第1障害物のレイアウトと、設定された出発地および目的地とを入力すれば、第1障害物を回避した移動経路を出力する能力を有する。移動ロボット100の制御部150は、当該経路生成NN200をメモリ180へ取り込んで、第2学習ステップを実行するための機械学習プログラムが利用可能なように実装する。
第1学習ステップを終えた経路生成NN200の実装が完了したら、移動ロボット100で第2学習ステップを行う。図12は、本実施形態に係る機械学習方法のうち、主に第2学習ステップの処理について説明するフロー図である。ここでは、教師データを得るたびに経路生成NN200の学習を行う手法について説明する。
学習部は、ステップS107で、移動ロボット100がこれから第2学習ステップを行う空間の地図情報を取得する。ここで取得する地図情報は、ステップS101で設定された空間に対応する。すなわち、第2学習ステップを行う空間の移動平面は、第1学習ステップで学習を行った移動平面と同等の広さであり、取得する地図情報は、図5を用いて説明したデータ構造を有する。なお、他の表現形式を採用する地図情報を取得した場合には、制御部150がデータ変換を行ってデータ構造を一致させる。また、対象とする移動平面の広さが互いに異なる複数の経路生成NN200がメモリ180に存在する場合には、これから第2学習ステップを行う空間の移動平面に対応する経路生成NN200を選択する。
学習部151は、ステップS108で、移動ロボット100の現在地を取得する。すなわち、学習部151は、ステップS107で取得した地図情報に対して移動ロボット100がどこに存在するかを同定する。例えば、ステレオカメラ131で取得した画像から解析した周囲の環境と地図情報とを比較して、移動ロボット100の現在地を同定する。
続いて学習部151は、ステップS109で、取得した地図情報に対して第1障害物が配置されていないセルおよび第1障害物の周縁部のセルからランダムに選択したセルを目的地として設定する。そして、ステップS110へ進み、学習部151は、経路生成NN200を用いて目的地までの移動経路を生成する。なお、この段階における経路生成NN200への入力値は、取得した地図情報に示された第1障害物のレイアウトと、出発地(現在地)および目的地であり、第2障害物に関する情報は与えない。移動経路を生成したら、台車駆動ユニット145へ駆動信号を送信し、当該移動経路に沿って移動ロボット100を移動させる。
学習部151は、移動中に、動作する障害物である第2障害物が周囲に存在するかを監視する。具体的には、ステレオカメラ131の画像や、レーザスキャナ133の出力信号を周期的に解析して、周囲に存在する第2障害物を検知する。ステップS111で、第2障害物を検知していないと判断したらステップS115へ進み、検知したと判断したらステップS112へ進む。
学習部151は、ステップS112へ進むと、図8を用いて説明したように、検知した第2障害物に対する正解としての回避経路あるいは回避方向を使用者から受け付ける。そして、ステップS113で、図9を用いて説明したように、目的地までの移動経路を修正する。学習部151は、このように修正した移動経路を、元の移動経路、第2障害物の相対的な位置、動作方向およびその動作速度を入力値とした場合の正解として、教師データを整える。教師データを整えたらステップS114へ進み、経路生成NN200を教師あり学習により学習させる。当該教師データによる学習を終えたら、ステップS115へ進む。
ステップS115へ進むと、学習部151は、ステップS109で設定された目的地に移動ロボット100が到達したか否かを判断する。到達していないと判断したら、ステップS111へ戻り、目的地までの移動を継続する。到達したと判断したら、ステップS116へ進む。ステップS116へ進むと、学習部151は、これまでに実行されたステップS114の学習演算の回数が予定された繰り返し回数を達成したか否かを確認する。すなわち、予め定められた教師データ数の学習を終えたか否かを確認する。終えていなければ、ステップS108へ戻って一連の処理を繰り返す。終えていれば第2学習ステップを終了する。
次に、このように学習された学習済みの経路生成NN200が、移動ロボット100においてどのように利用されるかについて説明する。図13は、学習済みの経路生成NN200が実装された移動ロボット100の自律移動処理について説明するフロー図である。
移動ロボット100の制御部150は、ステップS201で、これから自律移動を行う空間の地図情報を取得する。取得する地図情報は、第2学習ステップのステップS107で取得した地図情報と同様に第1障害物が記述された地図情報であり、ステップS107で取得した地図情報がそのまま利用できるのであれば、ステップS201をスキップしても良い。ステップS202へ進み、制御部150は、第2学習ステップのステップS108と同様に、現在地を取得する。ステップS203へ進み、制御部150は、目的地を取得する。具体的には、使用者から目的地の入力を受け付けたり、与えられたタスクを実行するために移動すべき地点を当該タスクから抽出して目的地と定めたりする。なお、地図情報をサーバ500から地図DB181へ取り込むときの通信ユニット190は、制御部150と協働して、地図情報を取得する取得部として機能する。また、使用者が目的地を入力する場合やタスクを入力する場合の入力ユニットは、制御部150と協働して、目的地を取得する取得部として機能する。
ステップS204へ進むと、制御部150は、メモリ180から学習済みの経路生成NN200を読み出す。そして、演算部152は、読み出された経路生成NN200を用いて目的地までの移動経路を生成する。なお、この段階における経路生成NN200への入力値は、取得した地図情報に示された第1障害物のレイアウトと、出発地(現在地)および目的地であり、第2障害物に関する情報は与えない。ただし、移動開始前に既に第2障害物を検知している場合には、当該第2障害物の相対的な位置、動作方向およびその動作速度を入力値に加えても良い。演算部152が移動経路を生成したら、制御部150は、台車駆動ユニット145へ駆動信号を送信し、当該移動経路に沿って移動ロボット100を移動させる。
制御部150は、移動中に、動作する障害物である第2障害物が周囲に存在するかを監視する。具体的には、ステレオカメラ131の画像や、レーザスキャナ133の出力信号を周期的に解析して、周囲に存在する第2障害物を検知する。ステップS205で、第2障害物を検知していないと判断したらステップS207へ進み、検知したと判断したらステップS206へ進む。
ステップS206へ進むと、演算部152は、再び経路生成NN200を用いて目的地までの移動経路を更新する。このときの入力値は、元の移動経路、検知した第2障害物の相対的な位置、動作方向およびその動作速度である。移動経路が更新されたら、制御部150は、台車駆動ユニット145へ駆動信号を送信し、更新された移動経路に沿って移動ロボット100を移動させる。
ステップS207へ進むと、制御部150は、ステップS203で取得した目的地に移動ロボット100が到達したか否かを判断する。到達していないと判断したら、ステップS205へ戻り、目的地までの移動を継続する。到達したと判断したら、一連の移動処理を終了する。
なお、上述のフローにおいては、ステップS205で第2障害物を検知するごとにステップS206で経路の更新を行っているが、検知した第2障害物が元の移動経路に沿った移動に対して影響を与えないと判断する場合には、経路の更新を行わなくても良い。例えば、第2障害物が移動ロボット100の移動経路から遠ざかる方向へ動作している場合には、経路の更新を行わない。
以上説明した本実施形態においては、第2学習ステップにおいて、現実の環境下で動作する障害物(第2障害物)を検知することにより、第2障害物に対する教師データを生成したが、仮想的な第2障害物に対する教師データを含ませても良い。例えば、学習部151は、現実の第2障害物を検知したときに取得した当該第2障害物の動作速度と同じ速度で動作する仮想的な第2障害物を、様々な相対位置に様々な動作方向に発生させる。学習部151は、このような仮想的な第2障害物を、現実の第2障害物と同様に認識したものとして扱う。そして、学習部151は、その仮想的な第2障害物を、例えば表示パネル141にCGで表示する。使用者は、表示パネル141に表示されたCGによる第2障害物を確認し、それを回避する回避経路あるいは回避方向を移動ロボット100へ与える。このようにして、仮想的な第2障害物に対しても教師データを生成すれば、経路生成NN200の学習効果を高めることができる。
また、以上説明した本実施形態においては、使用者が正解の移動経路を与える教師あり学習により学習をおこなったが、例えば予め定められた評価基準に対してコストが最小となる移動経路を見出す強化学習により学習を行っても良い。強化学習によれば、使用者による作業が省けるので、迅速に学習を行うことができる。
100 移動ロボット、110 台車部、111 駆動輪、112 キャスター、120 本体部、121 胴部、122 頭部、123 アーム、124 ハンド、131 ステレオカメラ、132 マイク、133 レーザスキャナ、141 表示パネル、143 押圧ユニット、145 台車駆動ユニット、146 上体駆動ユニット、150 制御部、151 学習部、152 演算部、180 メモリ、181 地図DB、190 通信ユニット、200 経路生成NN、300 シミュレーションPC、341 ディスプレイ、342 入力ユニット、350 演算部、380 メモリ、390 通信ユニット、500 システムサーバ、600 インターネット、700 無線ユニット、900 テーブル、910 容器

Claims (9)

  1. 与えられた地図情報と検出された移動体情報に基づいて、目的地までの移動ロボットの経路を出力するようコンピュータを機能させるためのニューラルネットワークの機械学習方法であって、
    前記ニューラルネットワークが前記移動ロボットに実装される前の段階において、シミュレーションを利用して、設定された空間に静止した第1障害物を配置し、出発地から前記静止した第1障害物を回避して目的地まで到達する経路を、前記静止した第1障害物の配置を異ならせて繰り返し学習する第1学習ステップと、
    前記ニューラルネットワークが前記移動ロボットに実装された後の段階において、前記移動ロボットが移動する空間内で前記移動ロボットが周囲で動作する第2障害物を認識した場合に、前記動作する第2障害物を回避して前記目的地まで到達する経路を、前記動作する第2障害物を認識するごとに繰り返し学習する第2学習ステップと
    の二段階に分けて機械学習を行う、
    機械学習方法。
  2. 前記第2学習ステップは、使用者によって示される経路を前記目的地まで到達する経路の少なくとも一部として学習する請求項1に記載の機械学習方法。
  3. 前記第2学習ステップは、前記使用者によって示される前記経路を前記使用者が発する音声に基づいて取得する請求項2に記載の機械学習方法。
  4. 前記第2学習ステップは、前記使用者によって示される前記経路を前記使用者が示す動作に基づいて取得する請求項2または3に記載の機械学習方法。
  5. 前記第2学習ステップは、前記使用者によって示される前記経路を前記使用者が前記移動ロボットに加える力に基づいて取得する請求項2から4のいずれか1項に記載の機械学習方法。
  6. 前記第2学習ステップは、仮想的な前記第2障害物を発生させて前記移動ロボットに認識させる場合を含む請求項1から5のいずれか1項に記載の機械学習方法。
  7. 前記設定された空間における前記移動ロボットの移動平面は、m×n(n、mは2以上の自然数)のセルで表わされ、前記第1障害物および前記第2障害物は、前記セルを占有する障害物として前記移動ロボットに認識される請求項1から6のいずれか1項に記載の機械学習方法。
  8. 請求項1から7のいずれか1項に記載の機械学習方法によって学習した学習済みニューラルネットワークが実装された移動ロボットであって、
    前記第1障害物が記述された地図情報および目的地を取得する取得部と、
    周囲で動作する前記第2障害物を検知する検知部と、
    前記取得部が取得した前記地図情報および前記目的地と、前記検知部が検知した前記第2障害物の検知情報とを前記学習済みニューラルネットワークに入力して前記目的地まで到達する経路を演算する演算部と、
    前記演算部が演算した前記経路に沿って移動するように制御する移動制御部と
    を備える移動ロボット。
  9. 前記演算部は、前記検知部が前記第2障害物を検知するごとに前記経路を更新する請求項8に記載の移動ロボット。
JP2019100532A 2019-05-29 2019-05-29 機械学習方法および移動ロボット Active JP7188279B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019100532A JP7188279B2 (ja) 2019-05-29 2019-05-29 機械学習方法および移動ロボット
DE102020111325.0A DE102020111325A1 (de) 2019-05-29 2020-04-27 Verfahren für maschinelles Lernen und mobiler Roboter
CN202010355422.6A CN112015172A (zh) 2019-05-29 2020-04-29 机器学习方法及移动机器人
US16/868,089 US11703872B2 (en) 2019-05-29 2020-05-06 Machine learning method and mobile robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019100532A JP7188279B2 (ja) 2019-05-29 2019-05-29 機械学習方法および移動ロボット

Publications (2)

Publication Number Publication Date
JP2020194432A JP2020194432A (ja) 2020-12-03
JP7188279B2 true JP7188279B2 (ja) 2022-12-13

Family

ID=73264439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019100532A Active JP7188279B2 (ja) 2019-05-29 2019-05-29 機械学習方法および移動ロボット

Country Status (4)

Country Link
US (1) US11703872B2 (ja)
JP (1) JP7188279B2 (ja)
CN (1) CN112015172A (ja)
DE (1) DE102020111325A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7221839B2 (ja) * 2019-10-08 2023-02-14 国立大学法人静岡大学 自律移動ロボットおよび自律移動ロボットの制御プログラム
WO2023013126A1 (ja) * 2021-08-02 2023-02-09 ソニーグループ株式会社 情報処理装置、学習モデル、及び情報処理方法
WO2023223570A1 (ja) * 2022-05-18 2023-11-23 三菱電機株式会社 制御装置、ロボットシステム、学習装置、ロボットの制御方法およびプログラム
WO2024057800A1 (ja) * 2022-09-12 2024-03-21 株式会社島津製作所 移動体の制御方法、搬送装置、および作業システム
CN117452955B (zh) * 2023-12-22 2024-04-02 珠海格力电器股份有限公司 清扫设备的控制方法、控制装置和清扫系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006185438A (ja) 2004-12-03 2006-07-13 Matsushita Electric Ind Co Ltd ロボット制御装置
JP2007316799A (ja) 2006-05-24 2007-12-06 Tottori Univ 学習機能をもつ自律移動ロボット
JP2017151687A (ja) 2016-02-24 2017-08-31 本田技研工業株式会社 移動体の経路計画生成装置
JP2018018146A (ja) 2016-07-25 2018-02-01 国立大学法人豊橋技術科学大学 自律走行装置
US20180133895A1 (en) 2016-11-17 2018-05-17 Samsung Electronics Co., Ltd. Mobile robot system, mobile robot, and method of controlling the mobile robot system
WO2018158248A2 (de) 2017-03-02 2018-09-07 RobArt GmbH Verfahren zur steuerung eines autonomen,mobilen roboters
JP2019005834A (ja) 2017-06-22 2019-01-17 株式会社デンソー 学習システム及び学習方法
JP2019008431A (ja) 2017-06-22 2019-01-17 株式会社日立製作所 経路探索装置および経路探索方法
US20190120640A1 (en) 2017-10-19 2019-04-25 rideOS Autonomous vehicle routing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0850548A (ja) * 1994-08-05 1996-02-20 Nikon Corp 経路学習方法及び装置
JPH08326025A (ja) * 1995-05-31 1996-12-10 Tokico Ltd 清掃ロボット
JP5215740B2 (ja) 2008-06-09 2013-06-19 株式会社日立製作所 移動ロボットシステム
DE102014018192A1 (de) * 2014-12-09 2015-06-18 Daimler Ag Verfahren zum Anfahren eines Parkplatzes durch ein Fahrzeug
JP6747044B2 (ja) 2016-05-11 2020-08-26 株式会社豊田中央研究所 走行経路生成装置、モデル学習装置、及びプログラム
CN105955280A (zh) * 2016-07-19 2016-09-21 Tcl集团股份有限公司 移动机器人路径规划和避障方法及系统
US10272828B2 (en) * 2016-08-16 2019-04-30 Irobot Corporation Light indicator system for an autonomous mobile robot
CN106527424B (zh) * 2016-09-20 2023-06-09 深圳银星智能集团股份有限公司 移动机器人及移动机器人的导航方法
CN108536135B (zh) * 2017-03-06 2023-10-27 苏州宝时得电动工具有限公司 路径控制方法、装置及清洁机器人
DE102017204983B4 (de) * 2017-03-24 2021-12-02 Audi Ag Verfahren zum Vorgeben einer Fahrbewegung in einer auf maschinellem Lernen basierten Autopiloteinrichtung eines Kraftfahrzeugs sowie Steuervorrichtung, Kraftfahrzeug und Trainingsvorrichtung für eine Autopiloteinrichtung
CN108407805B (zh) * 2018-03-30 2019-07-30 中南大学 一种基于dqn的车辆自动泊车方法
WO2019232803A1 (zh) * 2018-06-08 2019-12-12 珊口(深圳)智能科技有限公司 移动控制方法、移动机器人及计算机存储介质
CN109255442B (zh) * 2018-09-27 2022-08-23 北京百度网讯科技有限公司 基于人工智能的控制决策模块的训练方法、设备及可读介质
CN109376664B (zh) * 2018-10-29 2021-03-09 百度在线网络技术(北京)有限公司 机器学习训练方法、装置、服务器和介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006185438A (ja) 2004-12-03 2006-07-13 Matsushita Electric Ind Co Ltd ロボット制御装置
JP2007316799A (ja) 2006-05-24 2007-12-06 Tottori Univ 学習機能をもつ自律移動ロボット
JP2017151687A (ja) 2016-02-24 2017-08-31 本田技研工業株式会社 移動体の経路計画生成装置
JP2018018146A (ja) 2016-07-25 2018-02-01 国立大学法人豊橋技術科学大学 自律走行装置
US20180133895A1 (en) 2016-11-17 2018-05-17 Samsung Electronics Co., Ltd. Mobile robot system, mobile robot, and method of controlling the mobile robot system
WO2018158248A2 (de) 2017-03-02 2018-09-07 RobArt GmbH Verfahren zur steuerung eines autonomen,mobilen roboters
JP2019005834A (ja) 2017-06-22 2019-01-17 株式会社デンソー 学習システム及び学習方法
JP2019008431A (ja) 2017-06-22 2019-01-17 株式会社日立製作所 経路探索装置および経路探索方法
US20190120640A1 (en) 2017-10-19 2019-04-25 rideOS Autonomous vehicle routing

Also Published As

Publication number Publication date
JP2020194432A (ja) 2020-12-03
DE102020111325A1 (de) 2020-12-03
US11703872B2 (en) 2023-07-18
CN112015172A (zh) 2020-12-01
US20200379473A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
JP7188279B2 (ja) 機械学習方法および移動ロボット
JP7124797B2 (ja) 機械学習方法および移動ロボット
US20200046169A1 (en) Robot system and control method of the same
US10759051B2 (en) Architecture and methods for robotic mobile manipulation system
CN103128729B (zh) 机器人装置和控制该机器人装置的方法
US20200016767A1 (en) Robot system and control method of the same
EP3585569B1 (en) Systems, apparatus, and methods for robotic learning and execution of skills
JP7221839B2 (ja) 自律移動ロボットおよび自律移動ロボットの制御プログラム
CN114516060A (zh) 用于控制机器人装置的设备和方法
KR102573687B1 (ko) 원격 조작 시스템 및 원격 조작 방법
Pedersen et al. Intuitive skill-level programming of industrial handling tasks on a mobile manipulator
CN112975950B (zh) 远程操作系统及远程操作方法
JP7452657B2 (ja) 制御装置、制御方法及びプログラム
Al-Shanoon et al. Learn to grasp unknown objects in robotic manipulation
Lewis et al. An adjustable autonomy paradigm for adapting to expert-novice differences
Pichler et al. Towards robot systems for small batch manufacturing
Iossifidis et al. Anthropomorphism as a pervasive design concept for a robotic assistant
WO2023286138A1 (ja) ロボット制御システム、ロボットシステム、ロボット制御方法、およびロボット制御プログラム
Zhao et al. A robot demonstration method based on LWR and Q-learning algorithm
CN108594657A (zh) 一种基于神经网络的机械臂自适应控制方法
JP7548970B2 (ja) ドッペルゲンガー遠隔ロボットシステム
Kubota et al. Tele-operation of robot partners through iPod touche
US20240075628A1 (en) Remote control system, remote control method, and control program
WO2023067972A1 (ja) 動作指令生成装置および動作指令生成方法
Suomela et al. Novel interactive control interface for centaur-like service robot

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210729

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220804

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: 20221101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221114

R151 Written notification of patent or utility model registration

Ref document number: 7188279

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151