JP2020021351A - Robot, robot control program and robot control method - Google Patents

Robot, robot control program and robot control method Download PDF

Info

Publication number
JP2020021351A
JP2020021351A JP2018145769A JP2018145769A JP2020021351A JP 2020021351 A JP2020021351 A JP 2020021351A JP 2018145769 A JP2018145769 A JP 2018145769A JP 2018145769 A JP2018145769 A JP 2018145769A JP 2020021351 A JP2020021351 A JP 2020021351A
Authority
JP
Japan
Prior art keywords
robot
agent
movement
task
plan
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.)
Granted
Application number
JP2018145769A
Other languages
Japanese (ja)
Other versions
JP7317436B2 (en
Inventor
聡 佐竹
Satoshi Satake
聡 佐竹
神田 崇行
Takayuki Kanda
崇行 神田
昌裕 塩見
Masahiro Shiomi
昌裕 塩見
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.)
ATR Advanced Telecommunications Research Institute International
Original Assignee
ATR Advanced Telecommunications Research Institute International
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 ATR Advanced Telecommunications Research Institute International filed Critical ATR Advanced Telecommunications Research Institute International
Priority to JP2018145769A priority Critical patent/JP7317436B2/en
Publication of JP2020021351A publication Critical patent/JP2020021351A/en
Application granted granted Critical
Publication of JP7317436B2 publication Critical patent/JP7317436B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

To enable efficient performance of coordination of movement plans between robots that move for different tasks.SOLUTION: A system 10 includes a plurality of robots 12, each transmitting and receiving action information. The action information includes position information of the current positions of the robots, task information on tasks being executed, and benefit functions for the tasks. Each robot selects a combination that maximizes a mutual benefit based on a benefit when the robot itself selects a certain movement candidate point, and a benefit when another robot selects a certain movement candidate point, and creates a route plan. At this time, the priority of each task is considered. When performing a task, the robot moves according to the created route plan. That is, by sharing the benefit function and the priority of each task among a plurality of robots, the plurality of robots can mutually calculate the movement plans in a distributed manner, and can determine and execute the movement plans in cooperation with one another.SELECTED DRAWING: Figure 1

Description

この発明はロボット、ロボット制御プログラムおよびロボット制御方法に関し、特にたとえば、日常空間においてサービスを提供する、ロボット、ロボット制御プログラムおよびロボット制御方法に関する。   The present invention relates to a robot, a robot control program, and a robot control method, and more particularly to, for example, a robot, a robot control program, and a robot control method that provide services in a daily space.

この種の従来のネットワークロボットシステムの一例が特許文献1に開示されている。この特許文献1に開示されるネットワークロボットシステムは、ロボットを含み、ロボットはサービスの提供に係る移動経路の生成要求の要求メッセージをロボット制御装置に送信する。ロボット制御装置は、要求メッセージを受けて、ロボット同士が衝突しないように、当該要求メッセージについての移動経路を生成する。そして、ロボット制御装置は、移動経路のうちの一定時間分の移動経路についての移動経路データをロボットに送信する。   An example of this type of conventional network robot system is disclosed in Patent Document 1. The network robot system disclosed in Patent Literature 1 includes a robot, and the robot transmits a request message of a request for generating a movement route for providing a service to the robot control device. Upon receiving the request message, the robot control device generates a movement path for the request message so that the robots do not collide with each other. Then, the robot control device transmits, to the robot, moving route data on a moving route for a predetermined time in the moving route.

特開2010−231698号JP 2010-231698 A

上記の特許文献1のネットワークロボットシステムでは、ロボット制御装置が複数のロボットの移動を制御することにより、ロボット同士の衝突を防止している。このため、ロボットの数が増加するにつれてロボット制御装置の処理負荷が増大する。つまり、複数のロボットが複数の異なるタイプの移動を伴う行動を行う場合に、効率的にロボット間の移動計画を調整するのが困難であった。   In the network robot system of Patent Document 1, the robot control device controls the movement of a plurality of robots, thereby preventing collision between the robots. Therefore, as the number of robots increases, the processing load on the robot controller increases. That is, when a plurality of robots perform actions involving a plurality of different types of movement, it has been difficult to efficiently adjust a movement plan between the robots.

それゆえに、この発明の主たる目的は、新規な、ロボット、ロボット制御プログラムおよびロボット制御方法を提供することである。   Therefore, a main object of the present invention is to provide a novel robot, a robot control program, and a robot control method.

また、この発明の他の目的は、異なるタスクの移動を行うロボット間の移動計画の協調を効率的に実施することができる、ロボット、ロボット制御プログラムおよびロボット制御方法を提供することである。   It is another object of the present invention to provide a robot, a robot control program, and a robot control method that can efficiently cooperate with a movement plan between robots that move different tasks.

第1の発明は、移動手段を備えるロボットであって、実行中のタスクについての第1タスク情報を含む第1行動情報をロボットの周囲に存在する他のロボットに送信する送信手段、他のロボットが実行中のタスクについての第2タスク情報を含む第2行動情報を受信する受信手段、ロボットが第1移動計画を選択した場合の第1利益を算出する第1利益算出手段、他のロボットが第2移動計画を選択した場合の第2利益を算出する第2利益算出手段、第1タスク情報の優先度と第2タスク情報の優先度を考慮した第1利益と第2利益に基づく相互利益が最大となる第1移動計画および第2移動計画の組み合わせを選択することにより、ロボットが移動する経路計画を作成する作成手段、および作成手段によって作成された経路計画に従って移動するように移動手段を制御する制御手段を備える、ロボットである。   A first invention is a robot provided with a moving unit, wherein the transmitting unit transmits first action information including first task information on a task being executed to another robot existing around the robot, and another robot. Receiving means for receiving second action information including second task information on the task being executed, first profit calculating means for calculating a first profit when the robot selects the first movement plan, and other robots A second profit calculating means for calculating a second profit when the second movement plan is selected, a mutual profit based on the first profit and the second profit considering the priority of the first task information and the priority of the second task information; Is selected by selecting the combination of the first movement plan and the second movement plan that maximizes the distance, and the moving means is prepared in accordance with the path plan prepared by the preparing means for preparing the path plan for the robot to move. A control means for controlling the moving means so as to a robot.

第2の発明は、第1の発明に従属し、第1行動情報は、ロボットの現在位置についての現在位置情報をさらに含み、第2行動情報は、他のロボットの現在位置についての現在位置情報をさらに含む。   A second invention is according to the first invention, wherein the first action information further includes current position information on a current position of the robot, and the second action information is current position information on a current position of another robot. Further included.

第3の発明は、第1または第の発明に従属し、第1タスク情報は、ロボットの目的地についての目的地情報をさらに含み、第2タスク情報は、他のロボットの目的地についての目的地情報をさらに含む。   A third invention is according to the first or the first invention, wherein the first task information further includes destination information of a destination of the robot, and the second task information is a destination of the destination of another robot. Further includes geographic information.

第4の発明は、第2の発明に従属し、第1利益算出手段は、所定時間毎に、ロボットが存在可能な各位置への第1移動計画を選択した場合の第1利益をそれぞれ算出し、第2利益算出手段は、所定時間毎に、他のロボットが存在可能な各位置への第2移動計画を選択した場合の第2利益のそれぞれを算出し、相互利益算出手段は、所定時間毎に、ロボットが存在可能な各位置と他のロボットが存在可能な各位置についてのすべての組み合わせについて相互利益を算出し、作成手段は、所定時間毎に、相互利益が最大となる第1移動計画および第2移動計画の組み合わせを選択することにより、ロボットが移動する経路計画を作成する。   A fourth invention is according to the second invention, wherein the first profit calculating means calculates the first profit when the first movement plan to each position where the robot can exist is selected at predetermined time intervals. Then, the second profit calculating means calculates each of the second profits when the second movement plan to each position where another robot can exist is selected at predetermined time intervals, and the mutual profit calculating means calculates At each time, the mutual benefit is calculated for every combination of each position where a robot can exist and each position where another robot can exist. By selecting a combination of the movement plan and the second movement plan, a path plan in which the robot moves is created.

第5の発明は、第2の発明に従属し、第1利益算出手段は、所定時間毎に、ロボットが存在可能な各位置への第1移動計画を選択した場合の第1利益をそれぞれ算出し、第2利益算出手段は、複数の他のロボットの各々について、所定時間毎に、当該他のロボットが存在可能な各位置への第2移動計画を選択した場合の第2利益のそれぞれを算出し、相互利益算出手段は、所定時間毎に、ロボットが存在可能な各位置と複数の他のロボットの各々が存在可能な各位置についてのすべての組み合わせについて相互利益を算出し、作成手段は、所定時間毎に、相互利益が最大となる第1移動計画および複数の第2移動計画の組み合わせを選択することにより、ロボットが移動する経路計画を作成する。   A fifth invention is according to the second invention, wherein the first profit calculating means calculates the first profit when the first movement plan to each position where the robot can exist is selected at predetermined time intervals. Then, the second profit calculation means calculates, for each of the plurality of other robots, at every predetermined time, each of the second profits when the second movement plan to each position where the other robot can exist is selected. The mutual benefit calculation means calculates the mutual benefit for every combination of each position where the robot can exist and each position where each of the plurality of other robots can exist, at predetermined time intervals, and the creation means For each predetermined time, a path plan for the robot to move is created by selecting a combination of the first movement plan and the plurality of second movement plans that maximize mutual benefit.

第6の発明は、第1から第5までのいずれかに従属し、作成手段は、ロボットと他のロボットが衝突する組み合わせについては選択肢から除外する。   A sixth invention is according to any one of the first to fifth inventions, and the creating unit excludes a combination in which the robot collides with another robot from options.

第7の発明は、第1から第6までのいずれかに従属し、作成手段は、第1移動計画および第2移動計画の組み合わせと同じ組み合わせについては選択肢から除外する。   A seventh invention is dependent on any one of the first to sixth inventions, and the creating unit excludes the same combination as the combination of the first movement plan and the second movement plan from the options.

第8の発明は、移動手段を備えるロボットのロボット制御プログラムであって、ロボットのプロセッサに、実行中のタスクについての第1タスク情報を含む第1行動情報をロボットの周囲に存在する他のロボットに送信する送信ステップ、他のロボットが実行中のタスクについての第2タスク情報を含む第2行動情報を受信する受信ステップ、ロボットが第1移動計画を選択した場合の第1利益を算出する第1利益算出ステップ、他のロボットが第2移動計画を選択した場合の第2利益を算出する第2利益算出ステップ、第1タスク情報の優先度と第2タスク情報の優先度を考慮した第1利益と第2利益に基づく相互利益が最大となる第1移動計画および第2移動計画の組み合わせを選択することにより、ロボットが移動する経路計画を作成する作成ステップ、および作成ステップにおいて作成した経路計画に従って移動するように移動手段を制御する制御ステップを実行させる、ロボット制御プログラムである。   An eighth invention is a robot control program for a robot provided with a moving unit, wherein the processor of the robot transmits first behavior information including first task information on a task being executed to another robot existing around the robot. Transmitting, transmitting the second behavior information including the second task information about the task being executed by the other robot, receiving the second behavior information, and calculating the first profit when the robot selects the first movement plan. (1) a profit calculating step, a second profit calculating step of calculating a second profit when another robot selects the second movement plan, and a first profit considering the priority of the first task information and the priority of the second task information. Create a path plan for the robot to move by selecting a combination of the first movement plan and the second movement plan that maximize the mutual benefit based on the benefit and the second benefit That creation step, and a control step for controlling the moving means so as to move according to the path plan created in the creation step, a robot control program.

第9の発明は、移動手段を備えるロボットのロボット制御方法であって、(a)実行中のタスクについての第1タスク情報を含む第1行動情報をロボットの周囲に存在する他のロボットに送信するステップ、(b)他のロボットが実行中のタスクについての第2タスク情報を含む第2行動情報を受信するステップ、(c)ロボットが第1移動計画を選択した場合の第1利益を算出するステップ、(d)他のロボットが第2移動計画を選択した場合の第2利益を算出するステップ、(e)第1タスク情報の優先度と第2タスク情報の優先度を考慮した第1利益と第2利益に基づく相互利益が最大となる第1移動計画および第2移動計画の組み合わせを選択することにより、ロボットが移動する経路計画を作成するステップ、および(f)ステップ(e)において作成した経路計画に従って移動するように移動手段を制御するステップを含む、ロボット制御方法である。   A ninth invention is a robot control method for a robot including a moving unit, wherein (a) transmitting first action information including first task information on a task being executed to another robot existing around the robot. (B) receiving second action information including second task information about a task being executed by another robot, and (c) calculating a first profit when the robot selects the first movement plan. (D) calculating a second profit when another robot selects the second movement plan; (e) a first task information considering the priority of the first task information and the priority of the second task information. Creating a path plan for the robot to move by selecting a combination of the first movement plan and the second movement plan that maximizes the mutual benefit based on the benefit and the second benefit; and (f) step Comprising the step of controlling the moving means so as to move according to the path plan created in (e), a robot control method.

この発明によれば、異なるタスクの移動を行うロボット間の移動計画の協調を効率的に実施することができる。   According to the present invention, coordination of a movement plan between robots that move different tasks can be efficiently performed.

この発明の上述の目的、その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。   The above and other objects, features and advantages of the present invention will become more apparent from the following detailed description of embodiments with reference to the drawings.

図1はこの発明の一実施例を示すシステムの概要を示す図である。FIG. 1 is a diagram showing an outline of a system showing an embodiment of the present invention. 図2は図1に示すロボットの外観を正面から見た図である。FIG. 2 is a front view of the appearance of the robot shown in FIG. 図3は図1および図2に示すロボットの電気的な構成を示すブロック図である。FIG. 3 is a block diagram showing an electrical configuration of the robot shown in FIGS. 図4は優先度テーブルの一例を示す図である。FIG. 4 is a diagram illustrating an example of the priority table. 図5(A)は2台のロボットが目的地まで移動する行動についてのタスクを実行する場合において、狭い幅の通路の一方の端に一方のロボットが位置し、他方の端に他方のロボットが位置する状態を示す図であり、図5(B)は図5(A)に示す状態から、一方のロボットが狭い幅の通路を通行する状態に変化したことを示す図である。FIG. 5A shows a case where two robots perform a task of an action of moving to a destination, and one robot is located at one end of a narrow path and the other robot is located at the other end. FIG. 5B is a diagram showing a state where the robot is located, and FIG. 5B is a diagram showing that one robot has changed from a state shown in FIG. 図6(A)は図5(B)に示す状態から、一方のロボットが狭い幅の通路を通行し終えた状態に変化したことを示す図であり、図6(B)は図6(A)に示す状態から、一方のロボットが狭い幅の通路から去った後に、他方のロボットが狭い幅の通路を通行する状態に変化したことを示す図である。FIG. 6A is a diagram showing a change from the state shown in FIG. 5B to a state in which one of the robots has passed through a narrow passage, and FIG. FIG. 7 is a diagram showing that one robot has left the narrow path and then changed to a state in which the other robot passes through the narrow path from the state shown in FIG. 図7はロボットが配置される環境における展示物の配置位置を示す図である。FIG. 7 is a diagram illustrating the arrangement position of the exhibits in the environment where the robot is arranged. 図8は経路計画を作成する方法を説明するための図である。FIG. 8 is a diagram for explaining a method of creating a route plan. 図9(A)はロボットの移動候補を説明するための図であり、図9(B)は移動候補点を説明するための図である。FIG. 9A is a diagram for explaining a movement candidate of the robot, and FIG. 9B is a diagram for explaining a movement candidate point. 図10は図3に示すメモリのメモリマップの一例を示す図解図である。FIG. 10 is an illustrative view showing one example of a memory map of the memory shown in FIG. 3; 図11は図3に示すCPUのロボット制御処理の一部を示すフロー図である。FIG. 11 is a flowchart showing a part of the robot control process of the CPU shown in FIG. 図12は図3に示すCPUのロボット制御処理の他の一部であって、図11に後続するフロー図である。FIG. 12 is a flowchart showing another part of the robot control process of the CPU shown in FIG. 3 and subsequent to FIG. 図13は図3に示すCPUの経路計画の作成処理の一部を示すフロー図である。FIG. 13 is a flowchart showing a part of the route plan creation processing of the CPU shown in FIG. 図14は図3に示すCPUの経路計画の作成処理の他の一部であって、図13に後続するフロー図である。FIG. 14 is a flowchart showing another part of the route plan creation process of the CPU shown in FIG. 3 and subsequent to FIG. 図15は図3に示すCPUの経路計画の作成処理のその他の一部であって、図14に後続するフロー図である。FIG. 15 is a flowchart showing another part of the process of creating the route plan by the CPU shown in FIG. 3 and subsequent to FIG.

図1を参照して、この実施例のシステム10は、複数のコミュニケーションロボット(以下、単に「ロボット」という。)12で構成される。各ロボット12は、音声および身体動作(ジェスチャ)の少なくとも一方を用いて、人間や他のロボット12(ロボット12以外のロボットでもよい)とコミュニケーションを行うことができる。また、各ロボット12は、他のロボット12と無線通信することができる。   Referring to FIG. 1, a system 10 of this embodiment includes a plurality of communication robots (hereinafter simply referred to as “robots”) 12. Each robot 12 can communicate with humans and other robots 12 (robots other than the robot 12) using at least one of voice and body movement (gesture). Further, each robot 12 can wirelessly communicate with another robot 12.

なお、図1では、3台のロボット12を図示するが、ロボット12は、2台以上であれば、4台以上であってもよい。   Although three robots 12 are illustrated in FIG. 1, four or more robots 12 may be used as long as the number of the robots is two or more.

また、図1では省略するが、操作者は、端末(PCなどの汎用のコンピュータである)を用いてロボット12にコマンドを送信することにより、遠隔でロボット12を操作することもできる。以下、この明細書において、ロボット12を遠隔で操作する操作者を「ユーザ」と呼ぶことにする。また、この「ユーザ」に対して、ロボット12またはロボット12のユーザのコミュニケーション対象を「人間」または「人」と呼ぶことにする。   Although not shown in FIG. 1, the operator can remotely operate the robot 12 by transmitting a command to the robot 12 using a terminal (a general-purpose computer such as a PC). Hereinafter, in this specification, an operator who remotely operates the robot 12 is referred to as a “user”. Also, with respect to this "user", the communication target of the robot 12 or the user of the robot 12 is called "human" or "person".

なお、遠隔に設けられた端末を用いてロボット12を操作等することは既に周知であり、また、本願の本質的な内容ではないため、この明細書においては、ユーザが使用する端末および遠隔操作についての詳細な説明は省略する。   The operation of the robot 12 using a remote terminal is well known, and is not an essential content of the present application. Therefore, in this specification, the terminal used by the user and the remote operation A detailed description of is omitted.

この実施例のロボット12は、自律行動型のロボットであり、地下街、ショッピングモール、イベント会場、遊園地および美術館などの不特定多数の人間が存在する環境または日常空間に配置され、人間の道案内または誘導を行ったり、荷物を運搬したりするなどの様々なサービスを提供する。このロボット12は、自身が配置される環境について予め記憶した地図(間取り図)の情報および自身に備わる各種センサからの情報に基づいて自律的に行動する(移動および動作する)ことができる。ただし、この実施例では、図1に示す複数のロボット12は、同じ環境または日常空間に配置される。以下、ロボット12の構成について具体的に説明する。   The robot 12 of this embodiment is an autonomous robot, and is disposed in an environment or an everyday space where an unspecified number of people exist, such as an underground shopping mall, an event hall, an amusement park, and a museum, and guides humans. Or, it provides various services such as providing guidance and carrying luggage. The robot 12 can act autonomously (move and operate) based on information of a map (floor plan) stored in advance about an environment in which the robot 12 is placed and information from various sensors provided in the robot 12. However, in this embodiment, the plurality of robots 12 shown in FIG. 1 are arranged in the same environment or everyday space. Hereinafter, the configuration of the robot 12 will be specifically described.

図2を参照して、ロボット12のハードウェアの構成について説明する。図2は、この実施例のロボット12の外観を示す正面図である。ロボット12は台車30を含み、台車30の下面にはロボット12を自律移動させる2つの車輪32および1つの従輪34が設けられる。2つの車輪32は車輪モータ36(図3参照)によってそれぞれ独立に駆動され、台車30すなわちロボット12を前後左右の任意方向に動かすことができる。また、従輪34は車輪32を補助する補助輪である。したがって、ロボット12は、配置された空間内を自律制御によって移動可能である。   The hardware configuration of the robot 12 will be described with reference to FIG. FIG. 2 is a front view showing the appearance of the robot 12 of this embodiment. The robot 12 includes a carriage 30, and two wheels 32 and one driven wheel 34 for autonomously moving the robot 12 are provided on a lower surface of the carriage 30. The two wheels 32 are independently driven by wheel motors 36 (see FIG. 3), and can move the cart 30, that is, the robot 12, in any of the front, rear, left, and right directions. The driven wheel 34 is an auxiliary wheel for assisting the wheel 32. Therefore, the robot 12 can move in the arranged space by autonomous control.

台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の赤外線距離センサ40が取り付けられる。これらの赤外線距離センサ40は、センサ取り付けパネル38すなわちロボット12の周囲の物体(人間や障害物など)との距離を測定するものである。   A cylindrical sensor mounting panel 38 is provided on the carriage 30, and a number of infrared distance sensors 40 are mounted on the sensor mounting panel 38. These infrared distance sensors 40 measure a distance from a sensor mounting panel 38, that is, an object (a person, an obstacle, or the like) around the robot 12.

なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、超音波距離センサやミリ波レーダなどを用いることもできる。   In this embodiment, an infrared distance sensor is used as the distance sensor, but an ultrasonic distance sensor or a millimeter wave radar may be used instead of the infrared distance sensor.

センサ取り付けパネル38の上には、胴体42が直立するように設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した赤外線距離センサ40がさらに設けられ、ロボット12の前方の主として人間との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、全方位カメラ46が設けられる。全方位カメラ46は、ロボット12の周囲を撮影するものであり、後述する眼カメラ70とは区別される。この全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ40および全方位カメラ46の設置位置は、当該部位に限定されず適宜変更され得る。   On the sensor mounting panel 38, a body 42 is provided so as to stand upright. Further, the infrared distance sensor 40 described above is further provided at the upper front center of the torso 42 (at a position corresponding to the chest of a person), and measures the distance to a person mainly in front of the robot 12. Further, the body 42 is provided with a column 44 extending from substantially the center of the upper end portion on the side surface, and an omnidirectional camera 46 is provided on the column 44. The omnidirectional camera 46 captures an image of the periphery of the robot 12, and is distinguished from an eye camera 70 described later. As the omnidirectional camera 46, for example, a camera using a solid-state imaging device such as a CCD or a CMOS can be adopted. In addition, the installation positions of the infrared distance sensor 40 and the omnidirectional camera 46 are not limited to the parts and can be appropriately changed.

胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。   An upper arm 50R and an upper arm 50L are provided at upper ends of both sides of the torso 42 (at positions corresponding to the shoulders of the person) by shoulder joints 48R and 48L, respectively. Although not shown, the shoulder joint 48R and the shoulder joint 48L each have three orthogonal degrees of freedom. That is, the shoulder joint 48R can control the angle of the upper arm 50R around each of the three orthogonal axes. One axis (yaw axis) of the shoulder joint 48R is an axis parallel to the longitudinal direction (or axis) of the upper arm 50R, and the other two axes (pitch axis and roll axis) are orthogonal to the axes from different directions. It is the axis to do. Similarly, the shoulder joint 48L can control the angle of the upper arm 50L around each of the three orthogonal axes. One axis (yaw axis) of the shoulder joint 48L is an axis parallel to the longitudinal direction (or axis) of the upper arm 50L, and the other two axes (pitch axis and roll axis) are orthogonal to the axes from different directions. It is the axis to do.

また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lを介して、前腕54Rおよび前腕54Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。   Further, a forearm 54R and a forearm 54L are provided at the respective distal ends of the upper arm 50R and the upper arm 50L via the elbow joint 52R and the elbow joint 52L. Although not shown, the elbow joint 52R and the elbow joint 52L each have one degree of freedom, and the angles of the forearm 54R and the forearm 54L can be controlled around the axis (pitch axis).

前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当する球体56Rおよび球体56Lがそれぞれ設けられる。ただし、指や掌の機能が必要な場合には、人間の手に酷似した形状および機能を持たせた「手」を設けることも可能である。   A sphere 56R and a sphere 56L corresponding to a human hand are provided at the distal ends of the forearm 54R and the forearm 54L, respectively. However, when the function of a finger or a palm is required, a “hand” having a shape and a function very similar to a human hand can be provided.

また、図示は省略するが、台車30の前面、肩関節48Rと肩関節48Lとを含む肩に相当する部位、上腕50R、上腕50L、前腕54R、前腕54L、球体56Rおよび球体56Lには、それぞれ、接触センサ58(図3で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、ロボット12は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止してロボット12の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。なお、接触センサ58の設置位置は、当該部位に限定されず、適宜な位置(人の胸、腹、脇、背中および腰に相当する位置)に設けられてもよい。   Although not shown, the front surface of the bogie 30, a portion corresponding to the shoulder including the shoulder joint 48R and the shoulder joint 48L, the upper arm 50R, the upper arm 50L, the forearm 54R, the forearm 54L, the sphere 56R, and the sphere 56L are respectively provided. , A contact sensor 58 (shown generically in FIG. 3). The contact sensor 58 on the front of the cart 30 detects contact of the cart 30 with a human or other obstacle. Therefore, when there is a contact with an obstacle during the movement of the robot 12 itself, the robot 12 can detect the contact and immediately stop the driving of the wheels 32 to quickly stop the movement of the robot 12. The other contact sensors 58 detect whether or not the respective parts have been touched. In addition, the installation position of the contact sensor 58 is not limited to the part, and may be provided at an appropriate position (a position corresponding to a person's chest, abdomen, side, back, and waist).

胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット12の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。   A neck joint 60 is provided at the upper center (a position corresponding to the neck of a person) of the torso 42, and a head 62 is further provided thereon. Although not shown, the neck joint 60 has three degrees of freedom and can be angle-controlled around each of the three axes. A certain axis (yaw axis) is an axis directed directly above (vertically upward) the robot 12, and the other two axes (pitch axis and roll axis) are axes orthogonal to each other in different directions.

頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、ロボット12が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66ということがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象(以下、「コミュニケーション対象」ということある)である人間の声を取り込む。さらに、人の目に相当する位置には、眼球部68Rおよび眼球部68Lが設けられる。眼球部68Rおよび眼球部68Lは、それぞれ眼カメラ70Rおよび眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68ということがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70ということがある。   A speaker 64 is provided on the head 62 at a position corresponding to the mouth of a person. The speaker 64 is used by the robot 12 to communicate by voice or sound with humans around it. A microphone 66R and a microphone 66L are provided at positions corresponding to human ears. Hereinafter, the right microphone 66R and the left microphone 66L may be collectively referred to as a microphone 66. The microphone 66 captures surrounding sounds, particularly human voices that are targets for communication (hereinafter, also referred to as “communication targets”). Further, an eyeball part 68R and an eyeball part 68L are provided at positions corresponding to human eyes. The eyeball unit 68R and the eyeball unit 68L include an eye camera 70R and an eye camera 70L, respectively. Hereinafter, the right eyeball 68R and the left eyeball 68L may be collectively referred to as the eyeball 68. In addition, the right eye camera 70R and the left eye camera 70L may be collectively referred to as an eye camera 70.

眼カメラ70は、ロボット12に接近した人間の顔または人間の他の部分或いは物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。   The eye camera 70 captures an image of a human face approaching the robot 12 or another part or object of the human, and captures a video signal corresponding thereto. Further, as the eye camera 70, a camera similar to the omnidirectional camera 46 described above can be used. For example, the eye camera 70 is fixed in the eyeball unit 68, and the eyeball unit 68 is attached to a predetermined position in the head 62 via an eyeball support (not shown). Although not shown, the eyeball support has two degrees of freedom, and the angle can be controlled around each of these axes. For example, one of the two axes is an axis (yaw axis) in a direction toward the top of the head 62, and the other is orthogonal to the one axis and orthogonal to the front side (face) of the head 62. Axis (pitch axis). By rotating the eyeball support around each of these two axes, the eyeball 68 or the tip (front) side of the eye camera 70 is displaced, and the camera axis, that is, the line of sight is moved. In addition, the installation positions of the above-described speaker 64, microphone 66, and eye camera 70 are not limited to the parts, and may be provided at appropriate positions.

このように、この実施例のロボット12は、車輪20の独立2軸駆動,肩関節48の3自由度(左右で6自由度),肘関節52の1自由度(左右で2自由度),首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。   As described above, the robot 12 of this embodiment has two independent driving of the wheels 20, three degrees of freedom of the shoulder joint 48 (six degrees of freedom in the left and right), one degree of freedom of the elbow joint 52 (two degrees of freedom in the left and right), It has a total of 17 degrees of freedom, 3 degrees of freedom of the neck joint 60 and 2 degrees of freedom of the eyeball support (4 degrees of freedom on the left and right).

図3はロボット12の電気的な構成を示すブロック図である。この図3を参照して、ロボット12は、CPU80を含む。CPU80は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。   FIG. 3 is a block diagram showing an electrical configuration of the robot 12. As shown in FIG. Referring to FIG. 3, robot 12 includes CPU 80. The CPU 80 is also called a microcomputer or a processor, and is connected to a memory 84, a motor control board 86, a sensor input / output board 88, and a voice input / output board 90 via a bus 82.

メモリ84は、図示は省略をするが、ROM、HDDおよびRAMを含む。ROMおよびHDDには、ロボット12の行動を制御(タスクを実行)するための制御プログラム(ロボット制御プログラム)が予め記憶される。たとえば、ロボット制御プログラムは、各センサの出力(センサ情報)を検知するための検知プログラムや、他のロボット12およびユーザの端末などの外部コンピュータとの間で必要なデータおよびコマンドを送受信するための通信プログラムなどを含む。また、RAMは、CPU80のワークメモリおよびバッファメモリとして用いられる。   Although illustration is omitted, the memory 84 includes a ROM, an HDD, and a RAM. A control program (robot control program) for controlling the behavior of the robot 12 (executing a task) is stored in the ROM and the HDD in advance. For example, the robot control program includes a detection program for detecting an output (sensor information) of each sensor, and a necessary program and data for transmitting and receiving necessary data and commands to and from another robot 12 and an external computer such as a user terminal. Including communication programs. The RAM is used as a work memory and a buffer memory of the CPU 80.

さらに、この実施例では、ロボット12は、人間とのコミュニケーションをとるために発話したり、ジェスチャしたりできるように構成されているが、メモリ84に、このような発話およびジェスチャのための辞書(発話/ジェスチャ辞書)のデータが記憶されている。   Furthermore, in this embodiment, the robot 12 is configured to be able to speak and make gestures for communicating with humans. Utterance / gesture dictionary) is stored.

モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ96」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ98」と示す)の回転角度を制御する。   The motor control board 86 is composed of, for example, a DSP, and controls driving of each axis motor such as each arm and neck joint. That is, the motor control board 86 receives the control data from the CPU 80 and receives a total of four motors of three motors for controlling the angles of the three orthogonal axes of the shoulder joint 48R and one motor for controlling the angle of the elbow joint 52R. The rotation angles of the two motors (referred to collectively as “right arm motor 96” in FIG. 3) are controlled. Similarly, the motor control board 86 receives the control data from the CPU 80, and controls the three motors for controlling the respective angles of the three orthogonal axes of the shoulder joint 48L and the one motor for controlling the angle of the elbow joint 52L. The rotation angles of a total of four motors (in FIG. 3, collectively referred to as “left arm motor 98”) are controlled.

さらに、モータ制御ボード86は、CPU80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ100」と示す)の回転角度を制御する。そして、モータ制御ボード86は、CPU80からの制御データを受け、車輪32を駆動する2つのモータ(図3では、まとめて「車輪モータ36」と示す)の回転角度を制御する。   Further, the motor control board 86 receives control data from the CPU 80, and controls three motors for controlling the respective angles of the three orthogonal axes of the neck joint 60 (in FIG. 3, they are collectively indicated as "head motor 100"). To control the rotation angle. Then, the motor control board 86 receives the control data from the CPU 80 and controls the rotation angles of two motors that drive the wheels 32 (collectively shown as “wheel motors 36” in FIG. 3).

なお、この実施例では、車輪モータ36を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ36と同様に直流モータを用いるようにしてもよい。また、ロボット12の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、たとえば、他の実施例では、エアアクチュエータが適用されてもよい。   In this embodiment, a stepping motor (that is, a pulse motor) is used as the motor except for the wheel motor 36 in order to simplify the control. However, a DC motor may be used similarly to the wheel motor 36. Further, the actuator that drives the body part of the robot 12 is not limited to a motor that uses electric current as a power source, and may be appropriately changed. For example, in another embodiment, an air actuator may be applied.

センサ入力/出力ボード88は、モータ制御ボード86と同様に、DSPで構成され、各センサからの信号を取り込んでCPU80に与える。すなわち、赤外線距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてCPU80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからCPU80に入力される。眼カメラ70からの映像信号も、同様にして、CPU80に入力される。また、上述した複数の接触センサ58(図3では、まとめて「接触センサ58」と示す)からの信号がセンサ入力/出力ボード88を介してCPU80に与えられる。   Like the motor control board 86, the sensor input / output board 88 is constituted by a DSP, and takes in signals from each sensor and supplies them to the CPU 80. That is, data on the reflection time from each of the infrared distance sensors 40 is input to the CPU 80 through the sensor input / output board 88. The video signal from the omnidirectional camera 46 is input to the CPU 80 after being subjected to predetermined processing by the sensor input / output board 88 as necessary. The video signal from the eye camera 70 is similarly input to the CPU 80. Further, signals from the above-described plurality of contact sensors 58 (collectively referred to as “contact sensors 58” in FIG. 3) are provided to the CPU 80 via the sensor input / output board 88.

音声入力/出力ボード90もまた、同様に、DSPで構成され、CPU80から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してCPU80に与えられる。   Similarly, the audio input / output board 90 is also configured by a DSP, and outputs a voice or voice according to the voice synthesis data provided from the CPU 80 from the speaker 64. Further, a voice input from the microphone 66 is provided to the CPU 80 via the voice input / output board 90.

また、CPU80は、バス82を介して通信LANボード102に接続される。通信LANボード102は、たとえばDSPで構成され、CPU80から与えられた送信データを無線通信装置104に与え、無線通信装置104は送信データを、外部コンピュータに送信する。また、通信LANボード102は、無線通信装置104を介して外部コンピュータからデータを受信し、受信したデータ(受信データ)をCPU80に与える。   The CPU 80 is connected to the communication LAN board 102 via the bus 82. Communication LAN board 102 is formed of, for example, a DSP, and provides transmission data provided from CPU 80 to wireless communication apparatus 104, and wireless communication apparatus 104 transmits the transmission data to an external computer. The communication LAN board 102 receives data from an external computer via the wireless communication device 104 and provides the received data (received data) to the CPU 80.

また、CPU80は、バス82を介して、2次元距離計測装置106および3次元距離計測装置108に接続される。図2では省略したが、2次元距離計測装置106および3次元距離計測装置108は、ロボット12の台車30、センサ取り付けパネル38または胴体42の適宜の位置に取り付けられる。   The CPU 80 is connected to a two-dimensional distance measuring device 106 and a three-dimensional distance measuring device 108 via a bus 82. Although omitted in FIG. 2, the two-dimensional distance measuring device 106 and the three-dimensional distance measuring device 108 are attached to the bogie 30 of the robot 12, the sensor attachment panel 38, or an appropriate position on the body 42.

2次元距離計測装置106は、水平方向にレーザーを照射し、物体(人間も含む)に反射して戻ってくるまでの時間から当該物体までの距離を計測するものである。たとえば、トランスミッタ(図示せず)から照射したレーザーを回転ミラー(図示せず)で反射させて、前方を扇状に一定角度(たとえば、0.5度)ずつスキャンする。ここで、2次元距離計測装置106としては、SICK社製のレーザーレンジファインダ(型式 LMS200)を用いることができる。このレーザーレンジファインダを用いた場合には、距離8mを±15mm程度の誤差で計測可能である。   The two-dimensional distance measuring device 106 irradiates a laser in the horizontal direction, and measures the distance to an object (including a person) from the time it takes to return to the object. For example, a laser emitted from a transmitter (not shown) is reflected by a rotating mirror (not shown), and the front is scanned in a fan shape at a constant angle (for example, 0.5 degrees). Here, as the two-dimensional distance measuring device 106, a laser range finder (model LMS200) manufactured by SICK can be used. When this laser range finder is used, a distance of 8 m can be measured with an error of about ± 15 mm.

この実施例では、ロボット12は、2次元距離計測装置106で検出された障害物までの2次元(または水平方向)の距離情報と、ロボット12が配置される環境(たとえば、場所ないし領域)についての地図をマッチングすることで、ロボット12自身の位置すなわちロボット12の現在位置を推定する。ただし、より正確な現在位置を推定するために、パーティクルフィルタを用いて計算されたロボット12のオドメトリ(移動情報)も入力として利用される。ロボット12の現在位置を推定する手法としては、文献「D. Fox, W. Burgard and S. Thrun, Markov Localization for Mobile Robots in Dynamic Environments, Journal of Artificial Intelligence Research, vol. 11, pp. 391-427, 1999.」に開示される手法を用いることができる。ロボット12の現在位置を推定すること自体は本願の本質的な内容ではないため、詳細な説明は省略する。   In this embodiment, the robot 12 has two-dimensional (or horizontal) distance information to an obstacle detected by the two-dimensional distance measuring device 106 and an environment (for example, a place or an area) in which the robot 12 is arranged. Of the robot 12, that is, the current position of the robot 12, is estimated. However, in order to more accurately estimate the current position, the odometry (movement information) of the robot 12 calculated using the particle filter is also used as an input. A method for estimating the current position of the robot 12 is described in the document "D. Fox, W. Burgard and S. Thrun, Markov Localization for Mobile Robots in Dynamic Environments, Journal of Artificial Intelligence Research, vol. 11, pp. 391-427. , 1999. "can be used. Since estimating the current position of the robot 12 is not essential to the present application, a detailed description thereof will be omitted.

また、3次元距離計測装置108は、水平方向を基準(0°)として上下40°(+30°〜−10°)の検知角度(垂直視野角)を有する3次元全方位レーザ距離計である。この3次元距離計測装置108は、0.1秒に1回転して、およそ100mまでの距離を計測し、ロボット12周辺の3次元距離情報を格納した点群情報を取得することができる。ここでは、3次元距離計測装置108としては、Velodine社製のイメージングユニットLiDAR(HDL-32E)(商品名)を用いることができる。   The three-dimensional distance measuring device 108 is a three-dimensional omnidirectional laser range finder having a detection angle (vertical viewing angle) of 40 ° (+ 30 ° to −10 °) with respect to the horizontal direction (0 °). The three-dimensional distance measurement device 108 can rotate once every 0.1 second, measure a distance up to about 100 m, and acquire point cloud information storing three-dimensional distance information around the robot 12. Here, as the three-dimensional distance measuring device 108, an imaging unit LiDAR (HDL-32E) (trade name) manufactured by Velodine can be used.

この実施例では、ロボット12は、3次元距離計測装置108で検出された3次元の距離情報に基づいて人間を検出するとともに、当該人間の位置を計測する。具体的には、3次元距離計測装置108から得られる3次元の距離情報と上記の地図を用いて、ロボット12が環境内のどの位置に存在しているか、およびどの方向を向いているかが推定される。次に、3次元距離計測装置108から取得した3次元の距離情報と、地図に基づく環境内の3次元の距離情報と比較し、近似する3次元の距離情報を格納した点群情報が示す点群を背景としてフィルタリングする。続いて、3次元距離計測装置108から取得した3次元の距離情報を格納した点群情報が示す点群のうち、閾値(Zmin, Zmax)を用いて一定の高さに存在しない点群をフィルタリングする。この実施例では、Zminが5cmに設定され、Zmaxが220cmに設定され、極端な高さの点群は、人間でないと判断し、人間の位置を計測する処理から除外される。   In this embodiment, the robot 12 detects a human based on the three-dimensional distance information detected by the three-dimensional distance measuring device 108 and measures the position of the human. Specifically, using the three-dimensional distance information obtained from the three-dimensional distance measuring device 108 and the above-mentioned map, it is estimated at which position in the environment the robot 12 is located and in which direction. Is done. Next, the three-dimensional distance information acquired from the three-dimensional distance measurement device 108 is compared with the three-dimensional distance information in the map-based environment, and the point indicated by the point group information storing the approximate three-dimensional distance information is stored. Filter with groups as background. Subsequently, among the point groups indicated by the point group information storing the three-dimensional distance information acquired from the three-dimensional distance measurement device 108, the point groups not existing at a certain height are filtered using the thresholds (Zmin, Zmax). I do. In this embodiment, Zmin is set to 5 cm, Zmax is set to 220 cm, and a point cloud having an extremely high height is determined to be not a human, and is excluded from the process of measuring the position of a human.

一定の高さに存在しない点群がフィルタリングされると、フィルタリング後のすべての点群に含まれる高さ情報を0に設定した2次元の点群情報が生成される。生成された2次元の点群情報は、ユークリッド距離を用いてクラスタリングされる。一例として、Point Cloud Libraryに実装されているクラスタリング手法が利用される。   When the point group that does not exist at a certain height is filtered, two-dimensional point group information in which the height information included in all the filtered point groups is set to 0 is generated. The generated two-dimensional point group information is clustered using the Euclidean distance. As an example, the clustering method implemented in Point Cloud Library is used.

さらに、クラスタリングされた点群情報に含まれる元々の高さ情報を利用し、高さの最大値から高さの最小値を引いた値が30cm未満であるもの、および点群の数が閾値以下であるもの(ここでは4個と設定した)がフィルタリングされる。つまり、小さすぎる物または壁などの人間以外の物と判断されたクラスタが除去される。そして、フィルタリング後の各クラスタの重心位置が各人間の位置情報として設定される。つまり、ロボット12の周囲に存在する人間が検出されるとともに、検出された人間の位置が計測される。ロボット12の周囲に複数の人間が存在することが検出された場合には、ロボット12のコミュニケーション対象の一人の人間が所定のルールに従って選択される。一例として、所定のルールは、ロボット12からの距離が最短距離であること、または、ロボット12のユーザが自身の端末を用いて指定したことである。ただし、ユーザからコミュニケーション対象が指定された場合には、ロボット12からの距離に基づいて決定されたコミュニケーション対象よりも優先される。   Furthermore, using the original height information included in the clustered point cloud information, the value obtained by subtracting the minimum height from the maximum height is less than 30 cm, and the number of point clouds is equal to or less than the threshold value (Here, four are set) are filtered. In other words, clusters determined to be too small or non-human, such as walls, are removed. Then, the center of gravity position of each cluster after filtering is set as position information of each person. That is, a person existing around the robot 12 is detected, and the position of the detected person is measured. When it is detected that a plurality of people exist around the robot 12, one person to be communicated with by the robot 12 is selected according to a predetermined rule. As an example, the predetermined rule is that the distance from the robot 12 is the shortest distance, or that the user of the robot 12 specifies using his / her own terminal. However, when the communication target is specified by the user, the communication target has priority over the communication target determined based on the distance from the robot 12.

なお、ロボット12の位置を推定したり、人間の位置を計測したりするために、ロボット12は、2次元距離計測装置106および3次元距離計測装置108を備えているが、これらの計測装置は、ロボット12に備えずに、または、ロボット12に備えるとともに、ロボット12が配置される環境内に設置されてもよい。また、床センサなどの他のセンサを用いて、ロボット12の位置を推定したり、人間の位置を計測(推定)したりしてもよい。   Note that the robot 12 includes a two-dimensional distance measuring device 106 and a three-dimensional distance measuring device 108 for estimating the position of the robot 12 and measuring the position of a human. , The robot 12 may be installed in the environment where the robot 12 is arranged. Further, the position of the robot 12 may be estimated or the position of a human may be measured (estimated) using another sensor such as a floor sensor.

また、この実施例では、ロボット12は、2次元距離計測装置106および3次元距離計測装置108を備えるようにしてあるが、3次元距離計測装置108の計測結果を用いてロボット12自身の位置を推定することもできるため、2次元距離計測装置106は省略することもできる。   In this embodiment, the robot 12 includes the two-dimensional distance measuring device 106 and the three-dimensional distance measuring device 108. However, the position of the robot 12 itself is determined using the measurement result of the three-dimensional distance measuring device 108. Since the estimation can be performed, the two-dimensional distance measurement device 106 can be omitted.

上記のようなロボット12は、人間とのコミュニケーションに基づく行動を実行したり、当該ロボット12のユーザの命令に従う行動を実行したりする。ロボット12の行動すなわちタスクは、当該ロボット12が提供するサービスについての行動である。ただし、人間とのコミュニケーションに基づく行動は、人間との会話を認識(音声認識)し、会話に含まれる人間の要求に応じた行動である。また、ユーザの命令に従う行動は、ユーザの端末から送信されたコマンドに従う行動である。   The robot 12 as described above executes an action based on communication with a human, or executes an action according to a command of a user of the robot 12. The action or task of the robot 12 is an action regarding a service provided by the robot 12. However, an action based on communication with a human is an action that recognizes (speech recognition) a conversation with a human and responds to a human request included in the conversation. The action according to the user's command is an action according to a command transmitted from the user's terminal.

図1では省略したが、ユーザの端末は、直接、または、ネットワークを介して、ロボット12と通信可能である。ただし、複数のロボット12はそれぞれ識別可能であり、ユーザは、端末を用いて、選択した一台のロボット12と通信する。一例として、ロボット12に識別情報(ロボットID)を割り当てておき、ロボット12から送信する送信データおよびロボット12が受信する受信データ(すなわち、ユーザの端末から送信する送信データ)にロボットIDを付加するようにすればよい。この場合、ロボット12は、自身のロボットIDを付加した送信データをユーザの端末に送信する。また、ロボット12は、ユーザの端末から受信データを受信すると、受信データに含まれるロボットIDを検出して、ロボット12自身への受信データ(またはコマンド)であるかどうかを判断する。   Although omitted in FIG. 1, the user terminal can communicate with the robot 12 directly or via a network. However, each of the plurality of robots 12 can be identified, and the user communicates with the selected one robot 12 using the terminal. As an example, identification information (robot ID) is assigned to the robot 12, and the robot ID is added to transmission data transmitted from the robot 12 and reception data received by the robot 12 (that is, transmission data transmitted from a user terminal). What should I do? In this case, the robot 12 transmits the transmission data to which the own robot ID is added to the user terminal. When receiving the received data from the user's terminal, the robot 12 detects the robot ID included in the received data and determines whether or not the received data (or command) is for the robot 12 itself.

なお、ロボット12がユーザの端末に送信する送信データは、ユーザの端末からのコマンドに従うタスクの実行を終了したことの通知などのデータである。   The transmission data that the robot 12 transmits to the user terminal is data such as a notification that execution of a task according to a command from the user terminal has been completed.

図1を用いて説明したように、複数のロボット12が同じ環境(場所または領域)に配置されるため、各ロボット12が移動する場合には、ロボット12同士の衝突を避ける必要がある。   As described with reference to FIG. 1, since a plurality of robots 12 are arranged in the same environment (place or area), when each robot 12 moves, it is necessary to avoid collision between the robots 12.

したがって、ロボット12が移動する経路(以下、「移動経路」という)を算出する場合に、少なくとも他のロボット12と同時に同じ位置(空間)に存在しないように調整する必要がある。この調整のために、一般的には、各ロボット12の移動経路を算出する中央制御装置が設けられる。中央制御装置は、複数のロボット12が配置される環境の地図情報を記憶し、各ロボット12とネットワークを介して通信可能に接続され、各ロボット12の現在位置および各ロボット12の移動の目的地を把握し、ロボット12からの移動経路の生成要求に応じて、他のロボット12との衝突を避けるように移動経路を生成する。   Therefore, when calculating a path along which the robot 12 moves (hereinafter, referred to as a “moving path”), it is necessary to make adjustments so that the robot 12 does not exist at the same position (space) at the same time as the other robots 12. For this adjustment, a central control device for calculating the movement route of each robot 12 is generally provided. The central controller stores map information of an environment in which the plurality of robots 12 are arranged, is communicably connected to each of the robots 12 via a network, and has a current position of each of the robots 12 and a destination of movement of each of the robots 12. Is grasped, and in response to a request for generating a movement path from the robot 12, a movement path is generated so as to avoid collision with another robot 12.

しかし、このような中央制御装置を設けた場合には、設置および管理の費用がかかり、また、ロボット12の数が増えるに従って中央制御装置の処理負荷が増大する。このため、効率的にロボット12間の移動計画を調整するのが困難である。   However, when such a central controller is provided, installation and management costs are increased, and the processing load of the central controller increases as the number of robots 12 increases. For this reason, it is difficult to efficiently adjust the movement plan between the robots 12.

これを回避するため、この実施例では、別々のタスクを実行している複数のロボット12間における移動の調整を分散的に実現するようにしてある。つまり、複数のロボット12がタスクを実行する場合に、効率的にロボット12間の移動計画を調整するようにしてある。   In order to avoid this, in this embodiment, adjustment of movement between a plurality of robots 12 executing different tasks is realized in a distributed manner. That is, when a plurality of robots 12 execute a task, the movement plan between the robots 12 is adjusted efficiently.

日常空間においては、この実施例のロボット12は、道案内、誘導、運搬などの様々なタスク(行動)を実行する。この場合、複数のロボット12のうち、近距離にいるロボット12間で、ロボット12同士の衝突が発生しないように、移動計画が決定(算出)される。ただし、この明細書において、ロボット12の行動は、単に、ロボット12が目的地に移動することを含む。また、この実施例では、近距離は、ロボット12の現在位置(2次元平面上の位置)を中心とする所定範囲(たとえば、半径10mの円)である。   In a daily space, the robot 12 of this embodiment executes various tasks (actions) such as guidance, guidance, and transportation. In this case, a movement plan is determined (calculated) between the robots 12 located at a short distance among the plurality of robots 12 so that collision between the robots 12 does not occur. However, in this specification, the action of the robot 12 simply includes moving the robot 12 to a destination. In this embodiment, the short distance is a predetermined range (for example, a circle having a radius of 10 m) centered on the current position (position on a two-dimensional plane) of the robot 12.

ここで、ロボット12同士の衝突が発生する場合には、空間リソースの競合が発生していると言える。したがって、ロボット12同士が衝突しないように移動するための移動経路を計画することは、空間リソースの競合の解決プロセスとみなすことができる。   Here, when collision between the robots 12 occurs, it can be said that contention for space resources has occurred. Therefore, planning a movement path for the robots 12 to move so as not to collide with each other can be regarded as a process of resolving a conflict of the space resources.

また、この実施例では、大量のルールをロボット12の行動に記述するのではなく、ロボット12同士が同じ空間を占有したい状況が発生した場合に、優先度の低いタスクを実行する方が自身の利益の最大化を行うのではなく、むしろ自分の利益を差し引き、より優先度の高いタスクを実行する方の利益に寄与する行動を選択するように、ロボット12が実行可能な形で定式化し、空間リソースの競合を回避するようにしてある。つまり、一連の空間の譲り合いは、ロボット12同士の間における相互利益を最大化する、ロボット12同士の振る舞いとして表現される。   Also, in this embodiment, rather than describing a large number of rules in the behavior of the robot 12, when a situation occurs in which the robots 12 want to occupy the same space, it is better to execute a task with a lower priority. Rather than maximizing the benefit, rather formulate in a form that the robot 12 is able to do so that it subtracts its own benefit and chooses the action that contributes to the benefit of performing the higher priority task, Spatial resource contention is avoided. In other words, a series of space assignments is expressed as a behavior between the robots 12 that maximizes mutual benefits between the robots 12.

ロボット12自身(着目するロボット12)をエージェントiとし、所定範囲内に存在する他のロボット12をエージェントjとした場合に、空間の譲り合いというエージェントiおよびエージェントjが協調および/または連携する行動は、エージェントiとエージェントjの間における空間リソースの競合の解決プロセスとみなすことができる。エージェントiが、合理的な振る舞いを行うとすれば、エージェントiにおける行動の選択は、自身の利益最大化として表現される。具体的には、数1で表現することができる。   When the robot 12 itself (the robot 12 of interest) is the agent i and the other robots 12 existing within the predetermined range are the agent j, the agent i and the agent j cooperate and / or cooperate with each other in the space transfer. , Agent i and agent j can be considered as a process of resolving contention for spatial resources. Assuming that the agent i performs a reasonable behavior, the selection of the action in the agent i is expressed as maximizing its own profit. Specifically, it can be expressed by Equation 1.

[数1]
[Equation 1]

また、pは、エージェントiが取り得る移動計画を示し、U(p)は、移動計画pを選択したときにエージェントiが得る利益を示す。この明細書において、利益とは、タスクの目的を達成する度合を意味する。この実施例では、タスクの目的を達成する度合が高い程、利益が大きい。したがって、移動するエージェントiでは、目的地に早く到達できるほど利益が大きい。また、Pはエージェントiが取り得る全ての移動計画の集合である。これらのことは、エージェントjについても同様である。 Also, p indicates a movement plan that the agent i can take, and U i (p) indicates a profit that the agent i obtains when the movement plan p is selected. In this specification, profit refers to the degree to which the purpose of the task is achieved. In this embodiment, the greater the degree to which the task objective is achieved, the greater the benefit. Therefore, for the moving agent i, the sooner the destination is reached, the greater the profit. P is a set of all possible travel plans of the agent i. The same applies to the agent j.

仮に、エージェントiのみが存在する場合には、数1によって、エージェントiの目的を達成する最適な移動計画が算出(または決定)される。ただし、エージェントiおよびエージェントjが存在する場合には、お互いの利益間に競合が生じると、数1を同時に満足する解は存在しなくなってしまう。この場合、エージェントiとエージェントjの間で移動の調整が必要である。   If only the agent i exists, the optimal movement plan that achieves the purpose of the agent i is calculated (or determined) by Expression 1. However, in the case where the agent i and the agent j exist, if a conflict occurs between the mutual benefits, there is no solution that simultaneously satisfies Equation 1. In this case, movement adjustment between the agent i and the agent j is necessary.

このため、この実施例では、タスク(行動)毎に優先度を予め決定しておき、優先度の高低で利益間の競合を回避するようにしてある。また、この実施例では、空間リソースの競合または利益競合の解決方法を、相互利益を最大化する行動の選択として、数2のように定式化した。   For this reason, in this embodiment, the priority is determined in advance for each task (action), and competition between profits is avoided depending on the priority. Further, in this embodiment, a method for resolving contention for space resources or contention for profits is formulated as Expression 2 as a selection of an action for maximizing mutual benefit.

[数2]

[Equation 2]

ここで、αは、エージェントiが実行するタスクの優位性についての係数であり、係数αの値は0から1の間で設定される。数2からも明らかなように、係数αが1に近づけば、エージェントjは、よりエージェントjの利益を差し引き、エージェントiの利益を最大化するための行動(この実施例では、迂回または待機(停止))が選択される。   Here, α is a coefficient regarding the superiority of the task executed by the agent i, and the value of the coefficient α is set between 0 and 1. As is apparent from Equation 2, when the coefficient α approaches 1, the agent j further deducts the profit of the agent j and acts to maximize the profit of the agent i (in this embodiment, the detour or the standby ( Stop)) is selected.

なお、この実施例では、簡単のため、エージェントの数が2である場合について説明するが、エージェントの数が3以上である場合には、エージェントiの移動計画pは数3に従って算出される。ただし、α+α+α+ … =1である。また、係数α、α、α、…の値は、各エージェントi、j、k、…が実行するタスクに割り当てられた優先度を、各エージェントi、j、k、…が実行するタスクに割り当てられた優先度を加算した値(合計値)で割ることにより決定される。 In this embodiment, the case where the number of agents is 2 will be described for simplicity. However, when the number of agents is 3 or more, the movement plan p of the agent i is calculated according to Expression 3. Here, α i + α j + α k +... = 1. The values of the coefficients α i , α j , α k ,... Execute the priority assigned to the task executed by each agent i, j, k,. It is determined by dividing the priority assigned to the task by the sum (total value).

[数3]
[Equation 3]

ここで、上述したのように、各ロボット12は、自律行動し、道案内、誘導、運搬などの様々なタスクを実行(またはサービスを提供)する。道案内とは、たとえば、目的地までの経路が分からない、つまり道に迷った人間を目的地まで案内することを意味する。また、誘導とは、たとえば、環境内の或る場所(目的地)まで人間を誘導すること意味する。運搬とは、たとえば、人間の依頼によって荷物を目的地まで運搬することを意味する。ただし、ロボット12が提供するこれらのサービスは単なる一例であり、移動を伴うサービスであれば、その具体的態様は限定されない。

なお、道案内および誘導についてのタスクを実行するロボットの詳細については、本願の出願人が先に出願し、既に公開された特開2007−260822号および特開2011−656号に開示されており、本願発明の本質的な内容とは異なるため、ここでは詳細な説明は省略する。
Here, as described above, each robot 12 performs an autonomous action and performs various tasks (or provides a service) such as guidance, guidance, and transportation. The guidance means, for example, that a route to a destination is not known, that is, that a person who has lost his way is guided to the destination. Guidance means, for example, guiding a person to a certain place (destination) in the environment. Carrying means, for example, carrying cargo to the destination at the request of a human. However, these services provided by the robot 12 are merely examples, and the specific modes are not limited as long as the services involve movement.

The details of the robot that performs the tasks of guidance and guidance are disclosed in Japanese Patent Application Laid-Open Nos. 2007-260822 and 2011-656, which were previously filed by the applicant of the present application. Since this is different from the essential content of the present invention, the detailed description is omitted here.

また、運搬のサービスは、「速達運搬」と、「通常運搬」の2種類に分類される。「速達運搬」は、目的地に速達郵便のような急ぎの書類を運搬するサービスである。また、「通常運搬」は、目的地に小包のような荷物を単に運搬するサービスである。   The transportation services are classified into two types, "express delivery" and "normal transportation". "Express delivery" is a service for transporting urgent documents such as express mail to a destination. “Normal transport” is a service that simply transports packages such as parcels to a destination.

各タスクには、優先度が予め設定されている。一例として、優先度は、サービスの緊急度に応じて設定される。他の例では、優先度は、ロボット12が配置される環境におけるサービスの提供のし易さに応じて設定される。これらの両方およびさらに他の条件(理由)を加味して優先度が設定されてもよい。この実施例では、優先度は0から10までの整数で表わされ、数値が大きいほど優先度が高い。ただし、優先度の数値は一例であり、限定されるべきではなく、ロボット12が配置される環境、同じ環境に配置されるロボット12の数などの状況に応じて適宜変更されてよい。   Priorities are set in advance for each task. As an example, the priority is set according to the urgency of the service. In another example, the priority is set according to the ease of providing a service in the environment where the robot 12 is arranged. The priority may be set in consideration of both of these and further other conditions (reasons). In this embodiment, the priority is represented by an integer from 0 to 10, and the higher the numerical value, the higher the priority. However, the numerical value of the priority is an example, and should not be limited, and may be appropriately changed according to circumstances such as the environment in which the robots 12 are arranged, the number of robots 12 arranged in the same environment, and the like.

図4は、優先度についてのテーブル(以下、「優先度テーブル」という)の一例を示す。ロボット12は、図4に示すような優先度テーブルのデータを記憶しており、経路計画を作成する場合には、この優先度テーブルを参照して、係数αを算出する。   FIG. 4 shows an example of a priority table (hereinafter referred to as a “priority table”). The robot 12 stores data of a priority table as shown in FIG. 4, and calculates a coefficient α with reference to the priority table when creating a route plan.

図4の優先度テーブルに示すように、各タスクには、識別情報(タスクID)が割り当てられており、タスクIDに対応して、タスク名および優先度が記述される。図4に示す例では、タスクID「AAAA」に対応して、タスク名「道案内」が記述され、優先度「5」が設定される。説明は省略するが、他のタスクについても同様である。したがって、タスクIDが分ければ、ロボット12が実行中のタスクおよびその優先度を知ることができる。   As shown in the priority table of FIG. 4, identification information (task ID) is assigned to each task, and a task name and a priority are described corresponding to the task ID. In the example shown in FIG. 4, the task name "guidance" is described corresponding to the task ID "AAAA", and the priority "5" is set. Although the description is omitted, the same applies to other tasks. Therefore, if the task IDs are divided, the tasks being executed by the robot 12 and their priorities can be known.

なお、図4に示す優先度テーブルは単なる例示であり、限定されるべきでない。たとえば、ロボットIDは、人間が解読できない記号が用いられてもよい。   Note that the priority table shown in FIG. 4 is merely an example and should not be limited. For example, a symbol that cannot be decoded by a human may be used as the robot ID.

ただし、この実施例では、少なくとも所定範囲内に存在する複数のロボット12は互いに行動情報を送受信(交換)する。ここで、行動情報は、ロボット12の現在位置、ロボット12が実行中のタスクの情報(タスク情報)、ロボット12が実行中のタスクについての利益Uを算出するための関数(以下、「利益関数」という)およびロボット12の目的地の情報を意味する。現在位置および目的地は、2次元座標である。ただし、タスク情報は、タスク情報は、タスクの識別情報および実行中のタスクにおける移動の目的地の情報を含む。また、ロボット12が配置される環境に対応する地図には、所定の位置を原点とした2次元座標系が設定されており、環境内の目印(柱、扉、部屋、交差点、鑑賞物、展示品など)の配置位置の2次元座標も事前に登録されている。   However, in this embodiment, at least a plurality of robots 12 existing within a predetermined range transmit and receive (exchange) behavior information with each other. Here, the behavior information includes a current position of the robot 12, information on a task being executed by the robot 12 (task information), and a function for calculating a profit U for the task being executed by the robot 12 (hereinafter, “profit function”). ") And destination information of the robot 12. The current position and the destination are two-dimensional coordinates. However, the task information includes the identification information of the task and the information of the destination of the movement in the task being executed. The map corresponding to the environment in which the robot 12 is placed has a two-dimensional coordinate system with a predetermined position as the origin, and the landmarks in the environment (posts, doors, rooms, intersections, viewing objects, exhibits) The two-dimensional coordinates of the placement position of the product are also registered in advance.

なお、ロボット12は、自身の現在位置と、受信した他のロボット12の行動情報に含まれる他のロボット12の現在位置の距離を算出し、所定距離(この実施例では、10m)を超える場合には、当該他のロボット12は所定範囲内に存在しないため、受信した他のロボット12の行動情報を削除する。 環境内を移動するロボット12(エージェントi)と他のロボット12(エージェントj)が狭い幅の通路を挟んだ位置に存在し、エージェントiとエージェントjが逆向きに通路を通り抜けたい場合には、同時に通路を移動すると、すれ違うことができないため、立ち往生してしまう。ここでは、エージェントiが「速達運搬」のタスクを実行中であり、エージェントjが「通常運搬」のタスクを実行中であると仮定する。   The robot 12 calculates the distance between the current position of the robot 12 and the current position of the other robot 12 included in the received behavior information of the other robot 12, and when the distance exceeds a predetermined distance (10 m in this embodiment). Since the other robot 12 does not exist within the predetermined range, the received behavior information of the other robot 12 is deleted. If the robot 12 (agent i) and the other robot 12 (agent j) that move in the environment exist at a position across a narrow passage, and the agent i and the agent j want to pass through the passage in the opposite direction, If you move along the passage at the same time, you can't pass each other and get stuck. Here, it is assumed that the agent i is executing the task of “express delivery” and the agent j is executing the task of “normal transport”.

この場合、タスクの優先度に応じて、たとえば、優先度の低いタスクを実行しているエージェントjは、優先度の高いタスクを実行しているエージェントiが狭い幅の通路を通り抜けるのを待機し、エージェントiが狭い幅の通路を通り抜けると、狭い幅の通路に侵入し、当該通路を通り抜ける。   In this case, according to the task priority, for example, the agent j executing the low priority task waits for the agent i executing the high priority task to pass through a narrow path. When the agent i passes through a narrow passage, it enters the narrow passage and passes through the passage.

図5(A)は、エージェントi(着目するロボット12)とエージェント(他のロボット12)が狭い幅の通路を挟んだ位置に存在する様子の概略を真上方向から見た概略図である。図5(A)において(図5(B)、図6(A)、図6(B)および図9(A)も同じ)、エージェントi(着目するロボット12)とエージェント(他のロボット12)の頭部を丸で示し、頭部に記載した目の付いている方が前方(図9(A)の(6)で示す方向)であり、その反対方向が後方(図9(A)の(4)で示す方向)である。ここでは、壁で挟まれた狭い幅の通路を、エージェントiが一方から他方に通り抜けたい状況であり、エージェントjが他方から一方に通り抜けたい状況である。ただし、狭い幅の通路は、エージェントiとエージェントjがすれ違うことができないため、同時に通り抜けようとした場合、立ち往生が発生する。   FIG. 5 (A) is a schematic diagram showing an outline of a state in which an agent i (the robot 12 of interest) and an agent (another robot 12) are present at positions sandwiching a narrow passage, as viewed from directly above. In FIG. 5A (the same applies to FIGS. 5B, 6A, 6B, and 9A), an agent i (the robot 12 of interest) and an agent (the other robot 12) Is indicated by a circle, and the eye marked on the head is the front (the direction indicated by (6) in FIG. 9A), and the opposite direction is the rear (the direction indicated by (6) in FIG. 9A). (Direction indicated by (4)). Here, the situation is such that the agent i wants to pass from one side to the other, and the agent j wants to pass from the other side to the narrow path that is sandwiched between the walls. However, since the agent i and the agent j cannot pass each other in the narrow passage, if they try to pass through at the same time, a stall occurs.

上記のとおり、エージェントiが実行するタスクの優先度が、エージェントjが実行するタスクの優先度よりも高い場合には、先に、エージェントiが狭い幅の通路を通り抜けて、その後、エージェントjがその通路を通り抜けることにより、タスクの優先度を考慮したロボット12の移動を実行(実現)することができる。つまり、空間の譲り合いが実現される。   As described above, if the priority of the task executed by the agent i is higher than the priority of the task executed by the agent j, the agent i passes through a narrow path first, and then the agent j By passing through the passage, the movement of the robot 12 in consideration of the task priority can be executed (realized). In other words, the concession of space is realized.

具体的には、図5(B)および図6(A)に示すように、エージェントiが狭い幅の通路を移動し、さらに、狭い幅の通路を通り抜けるまで、エージェントjは停止して、エージェントiが通路を通り抜けるのを待機する。そして、図6(A)および図6(B)に示すように、エージェントiが狭い幅の通路を通り抜けると、エージェントjはエージェントiとは逆向きに狭い幅の通路を移動し、通り抜ける。   Specifically, as shown in FIG. 5B and FIG. 6A, the agent j stops until the agent i moves through the narrow passage and further passes through the narrow passage, and the agent i stops. Wait for i to pass through the passage. Then, as shown in FIGS. 6A and 6B, when the agent i passes through the narrow passage, the agent j moves and passes through the narrow passage in the opposite direction to the agent i.

このように、特別な制約または条件が存在しない場合には、エージェントiは、遠回りせずに目的地に向けて、適切な移動速度で移動する。この行動は、(1)移動によって、より目的地に近付くほど利益が高く、(2)適切な速度で移動できる程利益が高いという2つの要素に分類することができる。   As described above, when there is no special restriction or condition, the agent i moves at an appropriate moving speed toward the destination without making a detour. This behavior can be categorized into two elements: (1) the higher the profit is, the closer to the destination, the higher the profit is, and the higher the profit is, the more the user can move at an appropriate speed.

これらの要素を利用した移動を伴う行動についてのタスクに関する利益関数は数3で示される。ただし、上記の「道案内」、「誘導」、「速達運搬」および「普通運搬」の各行動には、「移動」が含まれる。また、数3をまとめると、数4となる。ただし、数3および数4において、Uは利益であり、tは経路計画で使用する予測時間であり、posはt秒後の予測位置であり、posnowは現在位置であり、Gは目的地であり、Distは距離(または差分)であり、xは移動距離であり、vprefは適切な速度を意味する。この実施例では、移動のタスクを実行する場合には、10秒(後述する予測時間t)分の予測を実施する。また、エージェントiの経路計画を算出する場合には、エージェントiとエージェントjのそれぞれの利益Uが時間間隔Δt毎(たとえば、0.5秒毎)に、数4に従って算出される。 The profit function relating to the task of the action involving movement using these elements is shown in Expression 3. However, each of the above-mentioned actions of “guidance”, “guidance”, “express delivery”, and “ordinary transportation” includes “moving”. In addition, when Equation 3 is put together, Equation 4 is obtained. In Equations 3 and 4, U is a profit, t is a predicted time used in the route planning, pos is a predicted position after t seconds, pos now is a current position, and G is a destination. , Dist is a distance (or difference), x is a moving distance, and v pref means an appropriate speed. In this embodiment, when executing the task of movement, prediction for 10 seconds (predicted time t described later) is performed. Also, when calculating the route plan of the agent i, the profit U of each of the agent i and the agent j is calculated at each time interval Δt (for example, at every 0.5 seconds) according to Equation 4.

この明細書においては、「経路計画」は、予測時間t分について予測されるエージェントiの移動経路(以下、「予測時間t分の移動経路」ということがある)を意味し、「移動計画」は、時間間隔Δt後に予測されるエージェントiの位置を意味する。   In this specification, the “route plan” means the travel route of the agent i predicted for the predicted time t (hereinafter, may be referred to as “the travel route for the predicted time t”). Means the position of the agent i predicted after the time interval Δt.

適切な速度vprefは、エージェントiまたはエージェントjが移動するときに望ましい移動速度を意味し、行動(またはタスク)に応じて設定される。緊急性の無い行動であれば、通常の移動速度が適切な速度vprefとして設定される。通常の移動速度は、成人が歩く速度の平均値であり、エージェントiまたはエージェントjは、減速距離を考慮して、その平均値よりも少し低く設定される。緊急性の高い行動であれば、通常の移動速度よりも早い速度が適切な速度vprefとして設定される。最徐行する必要のある行動であれば、通常の移動速度よりも遅い速度が適切な速度vprefとして設定される。たとえば、エージェントiおよびエージェントjのそれぞれについて、高、中(通常の移動速度)、低の3段階の速度が予め想定されており、行動に応じて、適切な速度vprefが設定される。以下、この明細書において同じである。 The appropriate speed v pref means a desired moving speed when the agent i or the agent j moves, and is set according to the action (or task). If the action is not urgent, the normal moving speed is set as an appropriate speed v pref . The normal moving speed is an average value of the walking speed of the adult, and the agent i or the agent j is set slightly lower than the average value in consideration of the deceleration distance. If the action is highly urgent, a speed higher than the normal moving speed is set as an appropriate speed v pref . If the action requires slowing down, a speed lower than the normal moving speed is set as an appropriate speed v pref . For example, for each of the agent i and the agent j, three speeds of high, medium (normal moving speed), and low are assumed in advance, and an appropriate speed v pref is set according to the action. Hereinafter, the same applies in this specification.

[数3]
U(G, t, pos)=f(Dist(posnow, G)-Dist(pos, G))
ただし、f(d)=-|d-vpref*t|である。
[Equation 3]
U (G, t, pos) = f (Dist (pos now , G) -Dist (pos, G))
Here, f (d) =-| dv pref * t |.

[数4]
U(G, t, pos)=-|(Dist(posnow, G)-Dist(pos, G))-vpref*t|
この実施例では、利益Uの最大値は0になるように調整されている。数3において、(Dist(posnow, G)-Dist(pos, G))は、目的地Gへの近接項であり、現在位置posnowから、t秒後の位置posが目的地Gに近い程、大きい値となり、大きい値程、利益Uが大きくなる。
[Equation 4]
U (G, t, pos) =-| (Dist (pos now , G) -Dist (pos, G))-v pref * t |
In this embodiment, the maximum value of the profit U is adjusted to be zero. In Equation 3, (Dist (pos now , G) -Dist (pos, G)) is a proximity term to the destination G, and the position pos after t seconds from the current position pos now is close to the destination G. The larger the value, the larger the value.

また、数3において、f(d)=-|d-vpref*t|は、ロボット12の移動制約項を示し、t秒の間に、望ましい速度vprefで移動できるときに最大値(すなわち、f(d)=0)となり、望ましい速度vprefからずれるに従ってf(d)の値は小さくなる。 Further, in Equation 3, f (d) = − | dv pref * t | indicates a movement constraint term of the robot 12, and the maximum value (ie, f (f)) when the robot 12 can move at the desired speed v pref within t seconds. (d) = 0), and the value of f (d) decreases with deviation from the desired speed v pref .

目的地Gへの近接項とエージェントiの移動制約項を組み合わせることで、目的地Gに近づきつつ、望ましい速度vprefでエージェントiが移動されるように、利益Uが最大化されるように設計されている。 By combining the proximity term to the destination G and the movement constraint term of the agent i, the design is made so that the profit U is maximized so that the agent i is moved at the desired speed v pref while approaching the destination G. Have been.

なお、図示は省略するが、エージェントjの優先度がエージェントiの優先度よりも高い場合には、たとえば、エージェントjが先に狭い幅の通路を通り抜け、その後、エージェントiが狭い幅の通路を通り抜ける。   Although not shown, when the priority of the agent j is higher than the priority of the agent i, for example, the agent j first passes through the narrow passage, and then the agent i passes through the narrow passage. Go through.

また、この実施例では、各行動(タスク)は移動を伴うため、利益Uを算出するための利益関数は同じにしてあるが、限定される必要はない。たとえば、複数の人間を誘導する場合には、比較的幅の広い通路を移動した方が良いと考えられるため、見通しの条項を利益関数に加えても良いと考えられる。   In addition, in this embodiment, since each action (task) involves movement, the profit function for calculating the profit U is the same, but need not be limited. For example, when guiding a plurality of persons, it is considered better to move along a relatively wide passage, so that it is considered that a clause of outlook may be added to the profit function.

図7は、或る展示会場に複数の展示物が配置されている様子を真上方向から見た概略図である。図7を参照して、エージェントiとエージェントjが空間を譲り合う他の例について説明する。ただし、ここでは、エージェントiは鑑賞者である人間を誘導するタスクを実行し、エージェントjは鑑賞者である人間を道案内するタスクを実行するものとする。この場合、図4に示したように、エージェントiが実行するタスクの優先度がエージェントjが実行するタスクの優先度よりも高い。   FIG. 7 is a schematic view of a state where a plurality of exhibits are arranged in a certain exhibition hall as viewed from directly above. With reference to FIG. 7, another example in which the agent i and the agent j give up space will be described. However, here, it is assumed that the agent i executes a task for guiding a human who is a viewer, and the agent j executes a task for guiding a human who is a viewer. In this case, as shown in FIG. 4, the priority of the task executed by the agent i is higher than the priority of the task executed by the agent j.

なお、図7では、簡単のため、誘導または道案内される人間については図示を省略してある。   In FIG. 7, for the sake of simplicity, a person who is guided or guided is not shown.

図7に示すように、展示会場には、6つの展示物A、展示物B、展示物C、展示物D、展示物Eおよび展示物Fがそれぞれ壁面の前に展示されている。エージェントiは、展示物Eおよび展示物Fの前方の位置から展示物Bに人間を誘導するタスクを実行し、エージェントjは展示物Dの前に居る人間を展示物Aまで道案内するタスクを実行する。この場合、実線の矢印で示すように、エージェントiおよびエージェントjがそれぞれの目的地である展示物Bおよび展示物Aに向けて直線的に移動すると、バツ印で示す位置でエージェントiとエージェントjが衝突してしまう。つまり、空間リソースが競合する。   As shown in FIG. 7, in the exhibition hall, six exhibits A, B, C, D, E and F are displayed in front of the wall surface. The agent i performs a task of guiding a person from the positions in front of the exhibits E and F to the exhibit B, and the agent j performs a task of guiding a person in front of the exhibit D to the exhibit A. Execute. In this case, as shown by the solid arrows, when the agent i and the agent j move linearly toward the respective destinations, the exhibit B and the exhibit A, the agent i and the agent j move at the positions indicated by crosses. Will collide. That is, space resources compete.

この場合、たとえば、エージェントiが実行するタスクの優先度よりも低い優先度のタスクを実行するエージェントjは、点線の矢印で示すように、迂回する。ただし、点線の矢印で示す移動経路は例示であり、実際の移動経路は、経路計画を算出し、算出した結果に従ってロボット12(ここでは、エージェントj)が移動することにより決定される。   In this case, for example, the agent j that executes a task having a lower priority than the task executed by the agent i bypasses as shown by a dotted arrow. However, the moving path indicated by the dotted arrow is an example, and the actual moving path is determined by calculating a path plan and moving the robot 12 (here, the agent j) according to the calculated result.

図8はロボット12の経路計画を作成する方法を説明するための図である。また、図9(A)はロボット12の移動方向を示す図であり、図9(B)は移動候補点を説明するための図である。   FIG. 8 is a diagram for explaining a method of creating a route plan for the robot 12. FIG. 9A is a diagram showing a moving direction of the robot 12, and FIG. 9B is a diagram for explaining a movement candidate point.

なお、図8では、エージェントiとエージェントjが一列に並び、その前方に目的地としての展示物が配置されている場合について示してある。このような状態は、ロボット12の経路計画を作成する方法を説明するための単なる例示である。   FIG. 8 shows a case where agents i and j are arranged in a line, and an exhibit as a destination is arranged in front of the agents. Such a state is merely an example for describing a method of creating a path plan for the robot 12.

着目するロボット12(エージェントi)の経路計画を作成する、すなわち予測時間t分の移動経路を算出する場合には、エージェントiの現在位置(以下、「自己位置」ということがある)を推定するとともに、他のロボット12(エージェントj)の現在位置を検出(または取得)し、現在位置からΔt秒後の位置(以下、「移動候補点」)に移動したと仮定した場合におけるエージェントiの利益とエージェントjの利益をそれぞれ算出し、各利益に優先度に基づいて算出した係数αを掛けて、相互利益を算出する。ただし、図8では、エージェントjについての係数αは、1からエージェントiについての係数αを減算した値で示してある。また、係数αは、エージェントiが実行中のタスクの優先度を、エージェントiが実行中のタスクの優先度とエージェントjが実行中のタスクの優先度の和で割った数値である。同様の方法で、係数αについても算出してもよい。 When creating a path plan for the robot 12 of interest (agent i), that is, when calculating a movement path for the predicted time t, the current position of the agent i (hereinafter, sometimes referred to as “self position”) is estimated. At the same time, the current position of another robot 12 (agent j) is detected (or acquired), and the profit of agent i when it is assumed that the robot has moved to a position Δt seconds after the current position (hereinafter, “movement candidate point”) And the profit of the agent j are calculated, and the profit is calculated by multiplying each profit by a coefficient α calculated based on the priority. However, in FIG. 8, the coefficient alpha j for agent j, is shown by the value obtained by subtracting the coefficient alpha i for 1 agent i. The coefficient α i is a numerical value obtained by dividing the priority of the task being executed by the agent i by the sum of the priority of the task being executed by the agent i and the task being executed by the agent j. The coefficient α j may be calculated in a similar manner.

図9(A)に示すように、Δt秒後のエージェントiおよびエージェントjの位置は(1)−(9)で示す方向における位置である。この実施例では、予測時間t分の移動経路を算出する場合には、エージェントiおよびエージェントjが存在する環境についての地図が所定長さ(たとえば、0.4mまたは0.5m)のグリッド状に分解され、エージェントiおよびエージェントjがグリッド単位で移動されるように、時間間隔Δt分移動した位置すなわち移動候補点が決定される。ただし、上記の所定長さは、エージェントiおよびエージェントjが、それぞれ、適切な速度vprefでΔt秒間移動した場合に移動可能な距離に決定される。 As shown in FIG. 9A, the positions of the agent i and the agent j after Δt seconds are the positions in the directions shown by (1)-(9). In this embodiment, when calculating the travel route for the predicted time t, the map of the environment where the agent i and the agent j exist is formed in a grid shape of a predetermined length (for example, 0.4 m or 0.5 m). Decomposition is performed, and a position moved by the time interval Δt, that is, a movement candidate point is determined so that the agent i and the agent j are moved in grid units. However, the above-mentioned predetermined length is determined as a distance that can be moved when the agent i and the agent j each move at an appropriate speed v pref for Δt seconds.

図9(B)に示すように、上記の(1)−(9)で示す移動方向における移動候補点は、9つの升目の各々の中心位置である。つまり、現在の移動方向(正面方向)を基準に、前後左右および斜め方向に移動した場合の位置に対応する8つの移動候補点に、中央の升目の中心位置(現在位置)に対応する1つの移動候補点が追加される。ただし、(5)で示す中央の升目の中心位置は、エージェントiおよびエージェントjが移動しない(静止している)場合の位置である。   As shown in FIG. 9B, the movement candidate points in the movement directions indicated by the above (1) to (9) are the center positions of each of the nine cells. That is, based on the current movement direction (front direction), one of eight movement candidate points corresponding to the position when moving in the forward, backward, left, right, and diagonal directions, and one corresponding to the center position of the center square (current position). A movement candidate point is added. However, the center position of the central cell shown in (5) is a position where the agent i and the agent j do not move (is stationary).

図8に戻って、相互利益は、エージェントiが複数(この実施例では、9つ)の移動候補点(Δt秒後の位置)の各々に移動した場合(「第1移動計画を選択した場合」に相当する)における各利益と、エージェントjが複数(この実施例では、9つ)の移動候補点の各々に移動した場合(「第2移動計画を選択した場合」に相当する)における各利益の全ての組み合わせについて、それぞれ算出される。つまり、エージェントiの複数の移動候補点と、エージェントjの複数の移動候補点のすべての組み合わせ(9×9=81)について、相互利益が算出される。   Returning to FIG. 8, the mutual benefit is calculated when the agent i moves to each of a plurality of (in this embodiment, nine) movement candidate points (positions after Δt seconds) (“when the first movement plan is selected”). ), And each profit when the agent j moves to each of a plurality of (in this embodiment, nine) movement candidate points (corresponding to “when the second movement plan is selected”). Each combination of profits is calculated separately. That is, the mutual benefit is calculated for all combinations (9 × 9 = 81) of the plurality of movement candidate points of the agent i and the plurality of movement candidate points of the agent j.

ただし、図8に示す例では、エージェントiとエージェントjの前方に目的地となる展示物が配置されているものとする。また、移動前のエージェントiとエージェントjを実線で示し、移動後のエージェントiとエージェントjを点線で示す。なお、エージェントiまたはエージェントjは移動しない(すなわち待機する)場合もある。   However, in the example illustrated in FIG. 8, it is assumed that an exhibit to be a destination is arranged in front of the agent i and the agent j. Agent i and agent j before movement are indicated by solid lines, and agent i and agent j after movement are indicated by dotted lines. Note that the agent i or the agent j may not move (that is, wait).

算出された全ての相互利益から最大の相互利益の組み合わせが選択され、選択された組み合わせのエージェントiの移動候補点がΔt秒後のエージェントiの位置として記憶される。ただし、エージェントiとエージェントjが衝突する場合の組み合せについては、最大の相互利益の組み合わせを選択する前に選択の候補(または選択肢)から除外される。この実施例では、エージェントiとエージェントjの距離が所定距離(たとえば、1m)以下である場合に、これらが衝突すると判断するようにしてある。   The maximum combination of mutual benefits is selected from all the calculated mutual benefits, and the movement candidate point of the agent i of the selected combination is stored as the position of the agent i after Δt seconds. However, the combination in the case where the agent i and the agent j collide is excluded from the selection candidates (or options) before selecting the maximum combination of mutual benefits. In this embodiment, when the distance between the agent i and the agent j is less than a predetermined distance (for example, 1 m), it is determined that they collide.

また、最大の相互利益の組み合わせが選択されると、選択された組み合わせにおけるΔt秒後のエージェントiの位置とエージェントjの位置を基準として、さらにΔt秒後(つまり、2×Δt秒後)にエージェントiが複数の移動候補点の各々に移動した場合の各利益と、2×Δt秒後にエージェントjが複数の移動候補点の各々に移動した場合の各利益との全ての組み合わせについて、それぞれ相互利益が算出される。つまり、前の回で選択されたエージェントiの位置とエージェントjの位置をそれぞれ現在位置として、Δt秒後の移動候補点がエージェントiおよびエージェントjのそれぞれについて算出される。   Further, when the maximum combination of mutual benefits is selected, the position of the agent i and the position of the agent j after Δt seconds in the selected combination is further used as a reference, and further after Δt seconds (that is, after 2 × Δt seconds). For each combination of each profit when the agent i moves to each of the plurality of movement candidate points and each profit when the agent j moves to each of the plurality of movement candidate points after 2 × Δt seconds, Profit is calculated. In other words, the position of the agent i and the position of the agent j selected in the previous round are each set as the current position, and the movement candidate points after Δt seconds are calculated for each of the agent i and the agent j.

なお、図8に示す例では、Δt秒後および2×Δt秒後のいずれの場合にも中段に記載された移動候補点の組み合わせについての相互利益が最大である。   In the example shown in FIG. 8, the mutual benefit of the combination of the movement candidate points described in the middle row is the largest after Δt seconds and after 2 × Δt seconds.

このようにして、エージェントiとエージェントjのΔt秒毎の位置(移動候補点)が予測時間t分選択または決定される。つまり、予測時間t分のエージェントiの移動経路すなわち経路計画が算出される。予測時間tは、実行されるタスクに応じて予め決定されており、たとえば、ロボット12が任意の目的地Gまで移動するタスクを実行する場合には、ロボット12は移動するエージェントiであり、この場合には、予測時間tは10秒である。   In this way, the positions (moving candidate points) of the agent i and the agent j every Δt seconds are selected or determined for the predicted time t. That is, the movement route of the agent i for the predicted time t, that is, the route plan is calculated. The predicted time t is determined in advance according to the task to be executed. For example, when the robot 12 executes a task of moving to an arbitrary destination G, the robot 12 is an agent i that moves. In this case, the predicted time t is 10 seconds.

ただし、実際にロボット12を移動させている場合に、人間または障害物に衝突する可能性がある場合には、ロボット12は移動を停止する。ロボット12は、自身の位置を算出する場合に、2次元距離計測装置106の出力に基づいて周囲に存在する人間または障害物との距離を計測しているため、人間または障害物に衝突する可能性があることを知ることができる。   However, when the robot 12 is actually moving and there is a possibility that the robot 12 will collide with a human or an obstacle, the robot 12 stops moving. When calculating the position of the robot 12, the robot 12 measures the distance to a nearby human or obstacle based on the output of the two-dimensional distance measuring device 106, and thus may collide with the human or obstacle. You can know that there is sex.

なお、上記のように作成される経路計画では、何度も同じ場所を通る冗長な経路計画が作成されてしまうことがある。冗長な経路計画が作成された場合には、利益の総和が減少せず、かつエージェントiとエージェントjが衝突しない範囲で、冗長部分が削除される。   In the route plan created as described above, a redundant route plan that passes through the same place many times may be created. When a redundant route plan is created, a redundant portion is deleted to the extent that the total profit does not decrease and the agent i and the agent j do not collide.

詳細な説明は省略するが、エージェントjの数が2である場合には、エージェントiの複数の移動候補点と、一方のエージェントj1の複数の移動候補点と、他方のエージェントj2の複数の移動候補点のすべての組み合わせ(9×9×9=729)について、相互利益が算出される。この場合には、相互利益が最大となる組み合わせが選択され、選択された組み合わせのエージェントiの移動候補点がΔt秒後のエージェントiの位置として記憶される。   Although a detailed description is omitted, when the number of agents j is 2, a plurality of movement candidate points of the agent i, a plurality of movement candidate points of one agent j1, and a plurality of movement points of the other agent j2 are described. Mutual benefits are calculated for all combinations of candidate points (9 × 9 × 9 = 729). In this case, the combination that maximizes the mutual benefit is selected, and the movement candidate point of the agent i of the selected combination is stored as the position of the agent i after Δt seconds.

また、最大の相互利益の組み合わせが選択されると、選択された組み合わせにおけるΔt秒後のエージェントiの位置とエージェントj1の位置とエージェントj2の位置を基準として、さらにΔt秒後(つまり、2×Δt秒後)にエージェントiが複数の移動候補点の各々に移動した場合の各利益と、2×Δt秒後にエージェントj1が複数の移動候補点の各々に移動した場合の各利益と、2×Δt秒後にエージェントj2が複数の移動候補点の各々に移動した場合の各利益の全ての組み合わせについて、それぞれ相互利益が算出される。つまり、前の回で選択されたエージェントiの位置とエージェントj1の位置とエージェントj2の位置をそれぞれ現在位置として、Δt秒後の移動候補点がエージェントiとエージェントj1とエージェントj2のそれぞれについて算出される。   Further, when the largest combination of mutual benefits is selected, the position of the agent i, the position of the agent j1, and the position of the agent j2 after Δt seconds in the selected combination are further used, and after Δt seconds (that is, 2 × Each profit when the agent i moves to each of the plurality of movement candidate points after Δt seconds), each profit when the agent j1 moves to each of the plurality of movement candidate points after 2 × Δt seconds, and 2 × Mutual benefits are calculated for all combinations of benefits when the agent j2 moves to each of the plurality of travel candidate points after Δt seconds. That is, with the position of the agent i, the position of the agent j1, and the position of the agent j2 selected in the previous round as the current position, the movement candidate points after Δt seconds are calculated for each of the agent i, the agent j1, and the agent j2. You.

なお、説明は省略するが、エージェントjの数が3以上の場合も、エージェントjの数が2の場合と同様にして、エージェントiの経路計画が算出される。   Although the description is omitted, when the number of agents j is three or more, the route plan of the agent i is calculated in the same manner as when the number of agents j is two.

図10は図3に示したメモリ84(RAM)のメモリマップ500を示す図である。図10に示すように、メモリ84は、プログラム記憶領域502およびデータ記憶領域504を含む。プログラム記憶領域502は、ロボット制御プログラムを記憶する。ロボット制御プログラムは、自己位置推定プログラム502a、通信プログラム502b、係数算出プログラム502c、移動候補点算出プログラム502d、相互利益算出プログラム502e、経路計画作成プログラム502fおよび行動制御プログラム502gを含む。   FIG. 10 is a diagram showing a memory map 500 of the memory 84 (RAM) shown in FIG. As shown in FIG. 10, the memory 84 includes a program storage area 502 and a data storage area 504. The program storage area 502 stores a robot control program. The robot control program includes a self-position estimation program 502a, a communication program 502b, a coefficient calculation program 502c, a movement candidate point calculation program 502d, a mutual benefit calculation program 502e, a route plan creation program 502f, and an action control program 502g.

なお、ロボット制御プログラムは、ロボット12が起動されたときに、HDDから読み出され、RAMに記憶される。   The robot control program is read from the HDD when the robot 12 is started and stored in the RAM.

自己位置推定プログラム502aは、2次元距離計測装置106の出力と地図データ504aに基づいて、ロボット12自身の位置すなわち自己位置を推定(または検出)するためのプログラムである。通信プログラム502bは、他のロボット12およびユーザの端末などの外部コンピュータと無線通信するためのプログラムである。   The self-position estimation program 502a is a program for estimating (or detecting) the position of the robot 12, that is, the self-position, based on the output of the two-dimensional distance measurement device 106 and the map data 504a. The communication program 502b is a program for wirelessly communicating with another robot 12 and an external computer such as a user terminal.

係数算出プログラム502cは、ロボット12自身(エージェントi)が実行中のタスクの優先度と、所定範囲内に存在する他のロボット12(エージェントj)が実行中のタスクの優先度から係数αを算出するためのプログラムである。移動候補点算出プログラム502dは、エージェントiのΔt秒後の複数の移動候補点とのエージェントjのΔt秒後の複数の移動候補点を、それぞれ算出するためのプログラムである。ただし、移動候補点は、エージェントiが、基準位置からΔt秒分移動した場合の位置である。また、基準位置の初期値は、エージェントiの現在位置であり、時間間隔Δt秒毎に更新される。これらのことは、エージェントjについても同様である。   The coefficient calculation program 502c calculates the coefficient α from the priority of the task being executed by the robot 12 (agent i) and the priority of the task being executed by another robot 12 (agent j) existing within a predetermined range. It is a program to do. The movement candidate point calculation program 502d is a program for calculating a plurality of movement candidate points Δt seconds after the agent i and a plurality of movement candidate points Δt seconds after the agent j. However, the movement candidate point is a position when the agent i moves from the reference position by Δt seconds. The initial value of the reference position is the current position of the agent i, and is updated every time interval Δt seconds. The same applies to the agent j.

相互利益算出プログラム502eは、エージェントiが複数の移動候補点に移動した場合の各利益と、エージェントjが複数の移動候補点に移動した場合の各利益に基づいて、エージェントiの複数の移動候補点とエージェントjの複数の移動候補点の各組み合わせについての相互利益をそれぞれ算出するためのプログラムである。ただし、利益関数は、HDDに予め記憶されており、実行中のタスクに応じて決定される。   The mutual benefit calculation program 502e calculates a plurality of movement candidates for the agent i based on each profit when the agent i moves to a plurality of movement candidate points and each profit when the agent j moves to a plurality of movement candidate points. This is a program for calculating a mutual benefit for each combination of a point and a plurality of movement candidate points of the agent j. However, the profit function is stored in the HDD in advance, and is determined according to the task being executed.

経路計画作成プログラム502fは、移動候補点算出プログラム502dおよび相互利益算出プログラム502eを予測時間t分繰り返し実行し、各回において、相互利益算出プログラム502eに従って算出される複数の相互利益から最大の相互利益を選択し、選択した相互利益を有する組におけるエージェントiおよびエージェントjの移動候補点をそれぞれ記憶して、ロボット12の経路計画を作成するためのプログラムである。ただし、上述したように、冗長な経路計画が作成されないために、エージェントiの移動候補点とエージェントjの移動候補点の組み合わせと同じ組み合わせについては、選択肢から除外される。また、上述したように、最大の相互利益を選択する前に、エージェントiとエージェントjが衝突する場合の移動候補点の組み合わせについては選択肢から除外される。   The route plan creation program 502f repeatedly executes the movement candidate point calculation program 502d and the mutual benefit calculation program 502e for the estimated time t, and in each time, calculates the maximum mutual benefit from a plurality of mutual benefits calculated according to the mutual benefit calculation program 502e. This is a program for creating a route plan for the robot 12 by storing the candidate movement points of the selected agents i and agent j in the selected group having mutual benefit. However, as described above, since a redundant route plan is not created, the same combination as the combination of the movement candidate point of the agent i and the movement candidate point of the agent j is excluded from the options. In addition, as described above, before selecting the maximum mutual benefit, combinations of movement candidate points in the case where the agent i and the agent j collide are excluded from the options.

行動制御プログラム502gは、人間とのコミュニケーションに基づくタスクを実行したり、ユーザの命令に従うタスクを実行するためのプログラムであって、ロボット12自身(エージェントi)の行動を制御する。ただし、上述したように、タスクを実行する場合、ロボット12は、作成した経路計画に従って移動する。   The behavior control program 502g is a program for executing a task based on communication with a human or executing a task according to a user's command, and controls the behavior of the robot 12 itself (agent i). However, as described above, when executing a task, the robot 12 moves according to the created route plan.

図示は省略するが、プログラム記憶領域502には、センサ情報を検知するための検知プログラム、3次元距離計測装置108の出力に基づいて、ロボット12の周囲に存在する人間を検出するとともに、検出した人間の位置を検出するための人間位置検出プログラム、コミュニケーション対象の人間の音声を認識するための音声認識プログラム、およびコミュニケーション対象の人間に音声を出力するための音声出力プログラムなどの他のプログラムも記憶される。   Although illustration is omitted, the program storage area 502 detects and detects a human present around the robot 12 based on a detection program for detecting sensor information and an output of the three-dimensional distance measuring device 108. Also stores other programs such as a human position detection program for detecting human position, a voice recognition program for recognizing the voice of the human being to be communicated, and a voice output program for outputting voice to the human being to be communicated Is done.

また、データ記憶領域504には、地図データ504a、優先度テーブルデータ504b、係数データ504c、第1行動情報データ504d、第2行動情報データ504e、相互利益データ504fおよび経路計画データ504gが記憶される。   The data storage area 504 stores map data 504a, priority table data 504b, coefficient data 504c, first action information data 504d, second action information data 504e, mutual benefit data 504f, and route plan data 504g. .

地図データ504aは、ロボット12が配置される環境を上方から見た2次元の地図についてのデータである。上述したように、地図には、所定の位置を原点とする2次元座標が割り当てられており、平面上の位置は座標で表される。また、地図には、通路、壁、柱および固定的に配置されている障害物(たとえば、消火器、ごみ箱など)が記載される。さらに、展示物(A、B、C、D、E、Fなど)が配置された環境においては、展示物も地図に記載される。障害物および展示物の位置(2次元座標)は予め知ることができる。   The map data 504a is data on a two-dimensional map of the environment in which the robot 12 is placed as viewed from above. As described above, two-dimensional coordinates having a predetermined position as the origin are assigned to the map, and the position on the plane is represented by coordinates. The map also describes walkways, walls, columns, and fixedly located obstacles (eg, fire extinguishers, recycle bins, etc.). Further, in an environment where the exhibits (A, B, C, D, E, F, etc.) are arranged, the exhibits are also described on the map. The positions (two-dimensional coordinates) of obstacles and exhibits can be known in advance.

なお、ユーザの端末は、地図データ504aと同じまたは同等の地図データを記憶しており、または、参照可能であり、ユーザは、端末を介してこの地図データに対応する地図を参照し、ロボット12の目的地Gを指定したり、コミュニケーション対象として選択する人間が存在する位置を指定したりする。   Note that the user's terminal stores or can refer to map data that is the same as or equivalent to the map data 504a. The user refers to a map corresponding to this map data via the terminal, , And the position where the person to be selected as the communication target exists.

優先度テーブルデータ504bは、図4に示したような優先度テーブルについてのデータであり、予め設定される。係数データ504cは、係数算出プログラム502cに従って算出された係数αについての数値データである。   The priority table data 504b is data on the priority table as shown in FIG. 4, and is set in advance. The coefficient data 504c is numerical data on the coefficient α calculated according to the coefficient calculation program 502c.

第1行動情報データ504dは、ロボット12自身(エージェントi)の行動情報についてのデータである。第2行動情報データ504eは、エージェントiの所定範囲内に存在する他のロボット12(エージェントj)の行動情報についてのデータである。   The first behavior information data 504d is data on behavior information of the robot 12 itself (agent i). The second action information data 504e is data on action information of another robot 12 (agent j) existing within a predetermined range of the agent i.

なお、エージェントjの数が2以上の場合には、各エージェントjについての行動情報が識別可能に記憶される。   When the number of agents j is two or more, the action information for each agent j is stored so as to be identifiable.

相互利益データ504fは、相互利益算出プログラム502eに従って算出される複数の相互利益についてのデータである。上述したように、移動候補点算出プログラム502dおよび相互利益算出プログラム502eは、予測時間t分繰り返し実行されるため、相互利益データ504fは各回で更新される。   The mutual benefit data 504f is data on a plurality of mutual benefits calculated according to the mutual benefit calculation program 502e. As described above, since the movement candidate point calculation program 502d and the mutual benefit calculation program 502e are repeatedly executed for the predicted time t, the mutual benefit data 504f is updated each time.

経路計画データ504gは、Δt秒毎に(各回で)相互利益が最大となるエージェントiの位置(移動候補点)を、予測時間t分時系列に従って並べた移動経路すなわち経路計画についてのデータである。この経路計画データ504gは、後述する展開済みの移動計画リストLcloseに含まれるエージェントiの移動予測軌跡P.Piのデータに相当する。 The route plan data 504g is data on a travel route, that is, a route plan in which positions (movement candidate points) of the agent i at which mutual benefit is maximum at every Δt seconds (each time) are arranged in a time series of a predicted time t. . The route plan data 504g corresponds to the data of the predicted movement locus P.Pi of the agent i included in the developed movement plan list L close described later.

図示は省略するが、データ記憶領域504には、他のデータが記憶されたり、フラグおよび/またはタイマ(カウンタ)が設けられたりする。   Although not shown, other data is stored in the data storage area 504, and a flag and / or a timer (counter) are provided.

図11および図12は、図3に示したCPU80のロボット制御処理を示すフロー図である。図11に示すように、CPU80は、ロボット制御処理を開始すると、ステップS1で、終了かどうかを判断する。ここでは、CPU80は、ユーザの端末から停止コマンドを受信したかどうかを判断する。ステップS1で“YES”であれば、つまり、終了であれば、ロボット制御処理を終了する。   FIGS. 11 and 12 are flowcharts showing a robot control process of the CPU 80 shown in FIG. As shown in FIG. 11, when starting the robot control process, the CPU 80 determines whether or not to end in a step S1. Here, the CPU 80 determines whether a stop command has been received from the terminal of the user. If “YES” in the step S1, that is, if it is to be ended, the robot control processing is ended.

一方、ステップS1で“NO”であれば、つまり、終了でなければ、ステップS3で、自己位置を推定(検出)し、ステップS5で、第1行動情報を送信し、ステップS7で、第2行動情報を受信し、ステップS9に進む。   On the other hand, if “NO” in the step S1, that is, if it is not the end, the own position is estimated (detected) in a step S3, the first action information is transmitted in a step S5, and the second action information is transmitted in a step S7. The action information is received, and the process proceeds to step S9.

ただし、ステップS3では、第1行動情報データ504dにおけるロボット12自身の現在位置の位置情報が更新される。また、ステップS5では、CPU80は、通信LANボード102および無線通信装置104を介して、第1行動情報データ504dをブロードキャスト(送信)する(後述するステップS21も同様である)。なお、ステップS5では、行動の内容が決定されていないため、行動情報には、タスク情報および利益関数は含まれない。さらに、ステップS7では、CPU80は、無線通信装置104を介して他のロボット12から受信した受信データとしての第2行動情報データ504eを、通信LANボード102から取得する(後述するステップS23も同様である)。   However, in step S3, the position information of the current position of the robot 12 itself in the first action information data 504d is updated. In step S5, the CPU 80 broadcasts (transmits) the first action information data 504d via the communication LAN board 102 and the wireless communication device 104 (the same applies to step S21 described later). In step S5, since the content of the action has not been determined, the action information does not include the task information and the profit function. Further, in step S7, the CPU 80 acquires, from the communication LAN board 102, second behavior information data 504e as reception data received from another robot 12 via the wireless communication device 104 (the same applies to step S23 described later). is there).

なお、図示は省略するが、人間とコミュニケーションしていない場合またはユーザの端末から何らコマンドを受信していない場合には、ロボット12は停止していても良く、また、自由に移動しても良い。   Although illustration is omitted, the robot 12 may be stopped or may move freely when not communicating with humans or when receiving no command from the user's terminal. .

ステップS9では、行動の内容が決定されたかどうかを判断する。つまり、CPU80は、人間とのコミュニケーションに基づいて行動(タスク)を決定したり、ユーザの端末からタスクの実行を指示するコマンドを受信したりしたかどうかを判断する。ただし、ユーザは、端末を用いてコマンドを入力するともに、目的地Gを指定する。   In step S9, it is determined whether the content of the action has been determined. That is, the CPU 80 determines whether an action (task) is determined based on communication with a human or whether a command for instructing execution of a task is received from a user terminal. However, the user inputs a command using the terminal and specifies the destination G.

ステップS9で“NO”であれば、つまり、行動の内容が決定されていなければ、ステップS1に戻る。一方、ステップS9で“YES”であれば、つまり、行動の内容が決定されれば、ステップS11、係数αを算出する。つまり、CPU80は、優先度テーブルデータ504bを参照して、実行する(実行中)のタスクに対応する優先度を取得し、第2行動情報データ504eに含まれるタスクIDが示すタスクに対応する優先度を取得し、係数αを算出する。このとき、算出された係数αの数値データすなわち係数データ504cがデータ記憶領域504に記憶される。   If "NO" in the step S9, that is, if the content of the action is not determined, the process returns to the step S1. On the other hand, if “YES” in the step S9, that is, if the contents of the action are determined, a step S11, the coefficient α is calculated. That is, the CPU 80 refers to the priority table data 504b, acquires the priority corresponding to the task to be executed (being executed), and obtains the priority corresponding to the task indicated by the task ID included in the second action information data 504e. The degree is obtained, and the coefficient α is calculated. At this time, the calculated numerical data of the coefficient α, that is, the coefficient data 504c, is stored in the data storage area 504.

続くステップS13では、後述する経路計画の作成処理(図13および図14参照)を実行して、図12に示すステップS15で、行動を開始する。ロボット12は、ロボット制御処理と並行して、ステップS9において、決定された行動すなわちタスクを実行することにより、移動を含む行動を実行し、移動するときに、作成した経路計画に従って(後述する、展開済みの移動計画リストLcloseに含まれるエージェントiの移動予測軌跡P.Piを参照して)移動する。 In a succeeding step S13, a route plan creation process described later (see FIGS. 13 and 14) is executed, and an action is started in a step S15 shown in FIG. The robot 12 executes the action including the movement by executing the determined action, that is, the task in step S9, in parallel with the robot control process, and performs the action according to the created route plan (described later, referring to the movement prediction locus P.Pi of agent i that is included in the deployed movement plan list L close) to move.

次のステップS17では、行動を完了したかどうかを判断する。つまり、CPU80は、タスクの実行を終了したかどうかを判断する。ステップS17で“YES”であれば、つまり、行動を完了すれば、図11に示したステップS1に戻る。   In the next step S17, it is determined whether or not the action has been completed. That is, the CPU 80 determines whether the execution of the task has been completed. If “YES” in the step S17, that is, if the action is completed, the process returns to the step S1 shown in FIG.

一方、ステップS17で“NO”であれば、つまり、行動を完了していなければ、ステップS19で、自己位置を推定し、ステップS21で、第1行動情報を送信し、ステップS23で、第2行動情報を受信し、ステップS25で、他のロボット12(エージェントj)の行動が変化したかどうかを判断する。つまり、CPU80は、ステップS23で受信した第2行動情報データ504eに含まれるタスクIDが変化したかどうかを判断する。   On the other hand, if “NO” in the step S17, that is, if the action is not completed, the self position is estimated in a step S19, the first action information is transmitted in a step S21, and the second action information is transmitted in a step S23. The action information is received, and in step S25, it is determined whether or not the action of another robot 12 (agent j) has changed. That is, the CPU 80 determines whether the task ID included in the second behavior information data 504e received in step S23 has changed.

ステップS25で“NO”であれば、つまり、他のロボット12の行動が変化していなければ、ステップS29に進む。一方、ステップS25で“YES”であれば、ステップS27で、係数αを算出し、ステップS29に進む。つまり、ステップS27では、エージェントjの行動の変化に応じて、係数αが再計算される。ステップS29では、経路計画の作成処理を実行し、ステップS17に戻る。   If “NO” in the step S25, that is, if the behavior of the other robot 12 has not changed, the process proceeds to a step S29. On the other hand, if “YES” in the step S25, the coefficient α is calculated in a step S27, and the process proceeds to the step S29. That is, in step S27, the coefficient α is recalculated according to the change in the behavior of the agent j. In step S29, a route plan creation process is performed, and the process returns to step S17.

図13、図14および図15は、図11のステップS13および図12のステップS29に示した経路計画の作成処理を示すフロー図である。図13に示すように、CPU80は、経路計画の作成処理を開始すると、ステップS51で、展開済みの移動計画リストLcloseと、展開前の移動計画リストLopenを初期化する。次のステップS53では、初期移動計画P0を作成する。 FIGS. 13, 14, and 15 are flowcharts showing the route plan creation processing shown in step S13 in FIG. 11 and step S29 in FIG. As shown in FIG. 13, when starting the route plan creation processing, the CPU 80 initializes the developed travel plan list L close and the pre-expanded travel plan list L open in step S51. In the next step S53, to create the initial movement plan P 0.

ここで、移動計画Pは、時間間隔Δtの累積値P.t、エージェントiの移動予測軌跡P.Pi、エージェントjの移動予測軌跡P.Pjおよび累積値P.tにおける利益P.Uを含む。   Here, the movement plan P includes the cumulative value P.t of the time interval Δt, the predicted movement trajectory P.Pi of the agent i, the predicted movement trajectory P.Pj of the agent j, and the profit P.U in the cumulative value P.t.

また、上記の初期移動計画P0は、移動計画Pの初期値である。したがって、初期移動計画P0では、累積値P.t=0であり、エージェントiの移動予測軌跡P.Piはエージェントiの現在位置のみであり、エージェントjの移動予測軌跡P.Pjはエージェントjの現在位置のみであり、利益P.Uは、エージェントiの現在位置とエージェントjの現在位置に基づいて算出される。ただし、エージェントiの移動予測軌跡P.Piは、時間間隔Δt毎のエージェントiの位置を時系列順に並べた集合(またはリスト)である。また、エージェントjの移動予測軌跡P.Pjは、時間間隔Δt毎のエージェントjの位置を時系列順に並べた集合(またはリスト)である。 The initial movement plan P 0 above is the initial value of the movement plan P. Therefore, in the initial movement plan P 0 , the accumulated value Pt = 0, the movement trajectory P.Pi of the agent i is only the current position of the agent i, and the movement trajectory P.Pj of the agent j is Only the position, the profit PU is calculated based on the current position of the agent i and the current position of the agent j. However, the predicted movement trajectory P.Pi of the agent i is a set (or list) in which the positions of the agent i for each time interval Δt are arranged in chronological order. The movement prediction trajectory P.Pj of the agent j is a set (or list) in which the positions of the agent j at the time intervals Δt are arranged in chronological order.

次に、ステップS55で、初期移動計画を展開前の移動計画リストLopenの先頭に追加し、ステップS57で、展開前の移動計画リストLopenの先頭にある移動計画Pを取り出し、展開済みの移動計画リストLcloseに追加した後に、ステップS59で、取り出した移動計画Pを、展開前の移動計画リストLopenから削除する。 Next, in step S55, adds the initial movement plan to the beginning of the movement plan list L open predeployment, in step S57, the removed movement plans P at the beginning of the movement plan list L open before deployment, deployed after you have added to the movement plan list L close, in step S59, the movement plan P taken out, it wants to remove from the movement plan list L open prior to deployment.

図14に示すように、続くステップS61では、累積値P.tが予測時間tと一致するかどうかを判断する。つまり、予測時間t分の移動経路が算出されたかどうかを判断する。上述したように、予測時間tは、実行中のタスクによって予め決定されている。   As shown in FIG. 14, in a succeeding step S61, it is determined whether or not the accumulated value P.t matches the predicted time t. That is, it is determined whether or not the travel route for the predicted time t has been calculated. As described above, the predicted time t is predetermined by the task being executed.

ステップS61で“YES”であれば、つまり、累積値P.tが予測時間tと一致すれば、経路計画の作成処理を終了して、図11および図12に示したロボット制御処理にリターンする。   If “YES” in the step S61, that is, if the accumulated value P.t coincides with the predicted time t, the route plan creating process is ended, and the process returns to the robot control process shown in FIGS.

一方、ステップS61で“NO”であれば、つまり、累積値P.tが予測時間tと一致しなければ、ステップS63で、基準位置を中心としたエージェントiの移動候補点をすべて算出する。ただし、基準位置は、移動候補点を算出するためのエージェントiの位置であり、初回はエージェントiの現在位置であり、2回目以降は、Δt秒毎に予測されたエージェントiの位置である。   On the other hand, if “NO” in the step S61, that is, if the accumulated value P.t does not coincide with the predicted time t, in a step S63, all the movement candidate points of the agent i around the reference position are calculated. However, the reference position is the position of the agent i for calculating the movement candidate point, the current position of the agent i for the first time, and the position of the agent i predicted every Δt seconds after the second time.

次のステップS65では、基準位置を中心としたエージェントjの移動候補点をすべて算出する。ただし、基準位置は、移動候補点を算出するためのエージェントjの位置であり、初回はエージェントjの現在位置であり、2回目以降は、Δt秒毎に予測されたエージェントjの位置である。   In the next step S65, all the movement candidate points of the agent j around the reference position are calculated. However, the reference position is the position of the agent j for calculating the movement candidate point, the current position of the agent j for the first time, and the position of the agent j predicted every Δt seconds after the second time.

続いて、ステップS67で、変数mを初期化し(m=1)、ステップS69で、変数nを初期化する(n=1)。変数mは、エージェントiの移動候補点を個別に識別するための変数であり、変数nは、エージェントjの移動候補点を個別に識別するための変数である。   Subsequently, in step S67, the variable m is initialized (m = 1), and in step S69, the variable n is initialized (n = 1). The variable m is a variable for individually identifying the movement candidate point of the agent i, and the variable n is a variable for individually identifying the movement candidate point of the agent j.

次に、ステップS71で、m番目のエージェントiの移動候補点を読出し、ステップS73で、n番目のエージェントjの移動候補点を読み出す。そして、図15に示すステップS75で、時間間隔Δt後の移動計画P(以下、「移動計画P´」という)を作成する。移動計画P´では、累積値P.t=P.t+Δtであり、エージェントiの移動予測軌跡P.Piにはエージェントiのm番目の移動候補点が追加され、エージェントjの移動予測軌跡P.Pjにはエージェントjのn番目の移動候補点が追加され、相互利益P.Uは、エージェントiのm番目の移動候補点と、エージェントjのn番目の移動候補点に基づいて算出される。つまり、エージェントiがm番目の移動候補点に移動した場合の利益と、エージェントjがn番目の移動候補点に移動した場合の利益の相互利益P.Uが数2に従って算出される。このとき、ステップS11またはステップS27で算出された係数αが用いられる。   Next, in step S71, the movement candidate point of the m-th agent i is read, and in step S73, the movement candidate point of the n-th agent j is read. Then, in step S75 shown in FIG. 15, a movement plan P after the time interval Δt (hereinafter, referred to as “movement plan P ′”) is created. In the movement plan P ′, the cumulative value Pt = P.t + Δt, the m-th movement candidate point of the agent i is added to the movement prediction trajectory P.Pi of the agent i, and the movement prediction trajectory P.Pj of the agent j is added. Is added with the nth movement candidate point of the agent j, and the mutual benefit PU is calculated based on the mth movement candidate point of the agent i and the nth movement candidate point of the agent j. That is, the mutual benefit P.U of the profit when the agent i moves to the m-th movement candidate point and the profit when the agent j moves to the n-th movement candidate point is calculated in accordance with Formula 2. At this time, the coefficient α calculated in step S11 or step S27 is used.

次のステップS77では、移動計画P´が展開済みの移動計画リストLcloseに存在するかどうかを判断する。ステップS77で“YES”であれば、つまり、移動計画P´が展開済みの移動計画リストLcloseに存在すれば、ステップS85に進む。このように、重複する移動計画P´については、展開前の移動計画リストLopenに含まれない。つまり、エージェントiの移動候補点とエージェントjの移動候補点の組み合わせと同じ組み合わせについては、選択肢から除外される。このため、冗長な経路計画が作成されるのが防止される。一方、ステップS77で“NO”であれば、つまり、移動計画P´が展開済みの移動計画リストLcloseに存在しなければ、ステップS79で、移動計画P´で、エージェントiとエージェントjの衝突が発生するかどうかを判断する。 In the next step S77, it is determined whether or not the movement plan P 'exists in the developed movement plan list L close . If “YES” in the step S77, that is, if the movement plan P ′ exists in the developed movement plan list L close , the process proceeds to a step S85. In this way, for the movement plan P'duplicate, not included in the movement plan list L open prior to deployment. That is, the same combination as the combination of the movement candidate point of the agent i and the movement candidate point of the agent j is excluded from the options. Therefore, creation of a redundant route plan is prevented. On the other hand, if “NO” in the step S77, that is, if the movement plan P ′ does not exist in the developed movement plan list L close , a collision between the agent i and the agent j is performed in the movement plan P ′ in a step S79. To determine if the error occurs.

ステップS79で“YES”であれば、つまり、移動計画P´で、エージェントiとエージェントjの衝突が発生する場合には、ステップS85に進む。つまり、エージェントiとエージェントjが衝突する場合の移動計画P´は、展開前の移動計画リストLopenに含まれない。一方、ステップS79で“NO”であれば、つまり、移動計画P´で、エージェントiとエージェントjの衝突が発生しない場合には、ステップS81で、移動計画P´を展開前の移動計画リストLopenに追加して、ステップS83で、展開前の移動計画リストLopenの要素を相互利益P.Uの大きい順に並べる。 If “YES” in the step S79, that is, if a collision between the agent i and the agent j occurs in the movement plan P ′, the process proceeds to a step S85. In other words, movement plans P'when agent i and agent j collide is not included in the movement plan list L open prior to deployment. On the other hand, if “NO” in the step S79, that is, if the collision of the agent i and the agent j does not occur in the movement plan P ′, in a step S81, the movement plan P In addition to open , in step S83, elements of the movement plan list Lopen before development are arranged in descending order of mutual benefit PU.

続いて、ステップS85で、変数nが9であるかどかを判断する。つまり、CPU80は、累積値P.tにおいて、m番目のエージェントiの移動候補点と、すべてのエージェントjの移動候補点の組み合わせのそれぞれについての相互利益P.Uを算出したかどうかを判断する。   Subsequently, in a step S85, it is determined whether or not the variable n is 9. That is, the CPU 80 determines whether or not the mutual benefit P.U has been calculated for each combination of the movement candidate point of the m-th agent i and the movement candidate points of all the agents j in the cumulative value P.t.

ステップS85で“NO”であれば、つまり、変数nが9でなければ、ステップS87で、変数nを1加算して(n=n+1)、図14に示したステップS73に戻る。一方、ステップS85で“YES”であれば、つまり、変数nが9であれば、ステップS89で、変数mが9であるかどうかを判断する。つまり、CPU80は、累積値P.tにおいて、エージェントiの複数の移動候補点とエージェントjの複数の移動候補点のすべての組み合わせのそれぞれについての相互利益P.Uを算出したかどうかを判断する。   If “NO” in the step S85, that is, if the variable n is not 9, the variable n is incremented by 1 (n = n + 1) in a step S87, and the process returns to the step S73 shown in FIG. On the other hand, if “YES” in the step S85, that is, if the variable n is 9, it is determined whether or not the variable m is 9 in a step S89. That is, the CPU 80 determines whether or not the mutual benefit P.U has been calculated for each of all combinations of the plurality of movement candidate points of the agent i and the plurality of movement candidate points of the agent j in the cumulative value P.t.

ステップS89で“NO”であれば、つまり、変数mが9でなければ、ステップS91で、変数mを1加算して(m=m+1)、図14に示したステップS69に戻る。一方、ステップS89で“YES”であれば、つまり、変数mが9であれば、図13に示したステップS57に戻る。   If “NO” in the step S89, that is, if the variable m is not 9, the variable m is added by 1 in a step S91 (m = m + 1), and the process returns to the step S69 shown in FIG. On the other hand, if “YES” in the step S89, that is, if the variable m is 9, the process returns to the step S57 shown in FIG.

この実施例によれば、ロボット同士で行動情報を送受信し、空間リソースの競合を回避するように、ロボットの経路計画を作成し、作成した経路計画に従ってロボットを移動させるので、各ロボットの経路計画を算出するための中央制御装置を設ける必要がなく、別々のタスクを実行している複数のロボット間における移動の調整を分散的に実現することができる。このように、各タスクの利益関数および優先度を複数のロボットで共有することで、複数のロボットが互いの移動計画を分散的に計算し、それぞれ協調した移動計画の決定および実行が可能になる。つまり、異なるタスクの移動を行うロボット間の移動計画の協調を効率的に実施することができる。   According to this embodiment, the robot transmits and receives behavior information, creates a robot path plan so as to avoid competition of space resources, and moves the robots according to the created path plan. It is not necessary to provide a central control device for calculating, and the adjustment of movement among a plurality of robots executing different tasks can be realized in a distributed manner. In this way, by sharing the profit function and the priority of each task among a plurality of robots, the plurality of robots can calculate the movement plans of each other in a distributed manner, and can determine and execute the movement plans in cooperation with each other. . That is, the coordination of the movement plan between the robots that move different tasks can be efficiently performed.

なお、この実施例では、各ロボットが経路計画を作成するようにしたが、各ロボットは、ロボット自身(エージェントi)の経路計画のみならず、他のロボット(エージェントj)の経路計画も算出しているため、エージェントiが、エージェントiの経路計画とエージェントjの経路計画を算出し、エージェントjに経路計画を送信するようにしてもよい。このようにしても、中央制御装置を設けずに、効率的にロボット間の移動計画を調整することができる。   In this embodiment, each robot creates a route plan. However, each robot calculates not only the route plan of the robot itself (agent i) but also the route plan of another robot (agent j). Therefore, the agent i may calculate the route plan of the agent i and the route plan of the agent j, and transmit the route plan to the agent j. Even in this case, the movement plan between the robots can be efficiently adjusted without providing the central control device.

また、この実施例では、各エージェントについて、9つの移動候補点に移動した場合の利益を算出し、相互利益を算出するようにしたが、移動候補点の数は9に限定される必要はない。CPUまたはコンピュータの処理能力が高い場合には、移動候補点の数は10以上であってもよい。また、CPUまたはコンピュータの処理能力が低い場合には、移動候補点の数は9未満にしてもよいが、移動候補点の数を減らし過ぎるのは好ましくない。   Further, in this embodiment, for each agent, the profit when moving to nine movement candidate points is calculated and the mutual profit is calculated, but the number of movement candidate points does not need to be limited to nine. . When the processing capacity of the CPU or the computer is high, the number of movement candidate points may be ten or more. When the processing capacity of the CPU or the computer is low, the number of movement candidate points may be less than 9, but it is not preferable to reduce the number of movement candidate points too much.

10 …システム
12 …コミュニケーションロボット
64 …スピーカ
66 …マイク
70 …眼カメラ
80 …CPU
106 …2次元距離計測装置
108 …3次元距離計測措置
DESCRIPTION OF SYMBOLS 10 ... System 12 ... Communication robot 64 ... Speaker 66 ... Microphone 70 ... Eye camera 80 ... CPU
106: two-dimensional distance measuring device 108: three-dimensional distance measuring device

Claims (9)

移動手段を備えるロボットであって、
実行中のタスクについての第1タスク情報を含む第1行動情報を前記ロボットの周囲に存在する他のロボットに送信する送信手段、
前記他のロボットが実行中のタスクについての第2タスク情報を含む第2行動情報を受信する受信手段、
前記ロボットが第1移動計画を選択した場合の第1利益を算出する第1利益算出手段、
前記他のロボットが第2移動計画を選択した場合の第2利益を算出する第2利益算出手段、
前記第1タスク情報の優先度と前記第2タスク情報の優先度を考慮した前記第1利益と前記第2利益に基づく相互利益が最大となる前記第1移動計画および前記第2移動計画の組み合わせを選択することにより、前記ロボットが移動する経路計画を作成する作成手段、および
前記作成手段によって作成された経路計画に従って移動するように前記移動手段を制御する制御手段を備える、ロボット。
A robot having a moving means,
Transmitting means for transmitting first action information including first task information about the task being executed to another robot existing around the robot;
Receiving means for receiving second action information including second task information on a task being executed by the other robot;
First profit calculating means for calculating a first profit when the robot selects the first movement plan;
A second profit calculating means for calculating a second profit when the other robot selects the second movement plan;
A combination of the first movement plan and the second movement plan that maximizes the mutual benefit based on the first benefit and the second benefit in consideration of the priority of the first task information and the priority of the second task information A robot that comprises: a creation unit that creates a route plan in which the robot moves by selecting the following; and a control unit that controls the movement unit so as to move in accordance with the route plan created by the creation unit.
前記第1行動情報は、前記ロボットの現在位置についての現在位置情報をさらに含み、
前記第2行動情報は、前記他のロボットの現在位置についての現在位置情報をさらに含む、請求項1記載のロボット。
The first behavior information further includes current position information about a current position of the robot,
The robot according to claim 1, wherein the second behavior information further includes current position information about a current position of the another robot.
前記第1タスク情報は、前記ロボットの目的地についての目的地情報をさらに含み、
前記第2タスク情報は、前記他のロボットの目的地についての目的地情報をさらに含む、請求項1または2記載のロボット。
The first task information further includes destination information about a destination of the robot,
The robot according to claim 1, wherein the second task information further includes destination information about a destination of the another robot.
前記第1利益算出手段は、所定時間毎に、前記ロボットが存在可能な各位置への第1移動計画を選択した場合の第1利益をそれぞれ算出し、
前記第2利益算出手段は、前記所定時間毎に、前記他のロボットが存在可能な各位置への第2移動計画を選択した場合の第2利益のそれぞれを算出し、
前記相互利益算出手段は、前記所定時間毎に、前記ロボットが存在可能な各位置と前記他のロボットが存在可能な各位置についてのすべての組み合わせについて前記相互利益を算出し、
前記作成手段は、前記所定時間毎に、前記相互利益が最大となる前記第1移動計画および前記第2移動計画の組み合わせを選択することにより、前記ロボットが移動する経路計画を作成する、請求項2記載のロボット。
The first profit calculating means calculates, for each predetermined time, a first profit when a first movement plan to each position where the robot can exist is selected,
The second profit calculating means calculates, for each predetermined time, each of the second profits when the second movement plan to each position where the other robot can exist is selected,
The mutual benefit calculation means calculates the mutual benefit for every combination of each position where the robot can exist and each position where the other robot can exist, for each predetermined time,
The said creation means creates the path plan which the said robot moves by selecting the combination of the said 1st movement plan and the said 2nd movement plan which the said mutual benefit becomes the maximum for every predetermined time. 2. The robot according to 2.
前記第1利益算出手段は、所定時間毎に、前記ロボットが存在可能な各位置への第1移動計画を選択した場合の第1利益をそれぞれ算出し、
前記第2利益算出手段は、複数の前記他のロボットの各々について、前記所定時間毎に、当該他のロボットが存在可能な各位置への第2移動計画を選択した場合の第2利益のそれぞれを算出し、
前記相互利益算出手段は、前記所定時間毎に、前記ロボットが存在可能な各位置と前記複数の他のロボットの各々が存在可能な各位置についてのすべての組み合わせについて前記相互利益を算出し、
前記作成手段は、前記所定時間毎に、前記相互利益が最大となる前記第1移動計画および複数の前記第2移動計画の組み合わせを選択することにより、前記ロボットが移動する経路計画を作成する、請求項2記載のロボット。
The first profit calculating means calculates, for each predetermined time, a first profit when a first movement plan to each position where the robot can exist is selected,
The second profit calculating means is configured to select, for each of the plurality of other robots, a second profit plan in a case where a second movement plan to each position where the other robot can exist is selected for each predetermined time. Is calculated,
The mutual benefit calculating means calculates the mutual benefit for every combination of each position where the robot can exist and each position where each of the plurality of other robots can exist, for each of the predetermined times,
The creation unit creates a route plan in which the robot moves by selecting a combination of the first movement plan and the plurality of second movement plans that maximize the mutual benefit at every predetermined time. The robot according to claim 2.
前記作成手段は、前記ロボットと前記他のロボットが衝突する組み合わせについては選択肢から除外する、請求項1から5までのいずれかに記載のロボット。   The robot according to any one of claims 1 to 5, wherein the creation unit excludes a combination in which the robot and the other robot collide from each other. 前記作成手段は、前記第1移動計画および前記第2移動計画の組み合わせと同じ組み合わせについては選択肢から除外する、請求項1から6までのいずれかに記載のロボット。   The robot according to any one of claims 1 to 6, wherein the creating unit excludes a combination that is the same as the combination of the first movement plan and the second movement plan from options. 移動手段を備えるロボットのロボット制御プログラムであって、
前記ロボットのプロセッサに、
実行中のタスクについての第1タスク情報を含む第1行動情報を前記ロボットの周囲に存在する他のロボットに送信する送信ステップ、
前記他のロボットが実行中のタスクについての第2タスク情報を含む第2行動情報を受信する受信ステップ、
前記ロボットが第1移動計画を選択した場合の第1利益を算出する第1利益算出ステップ、
前記他のロボットが第2移動計画を選択した場合の第2利益を算出する第2利益算出ステップ、
前記第1タスク情報の優先度と前記第2タスク情報の優先度を考慮した前記第1利益と前記第2利益に基づく相互利益が最大となる前記第1移動計画および前記第2移動計画の組み合わせを選択することにより、前記ロボットが移動する経路計画を作成する作成ステップ、および
前記作成ステップにおいて作成した経路計画に従って移動するように前記移動手段を制御する制御ステップを実行させる、ロボット制御プログラム。
A robot control program for a robot having moving means,
In the processor of the robot,
A transmitting step of transmitting first behavior information including first task information on a task being executed to another robot existing around the robot;
A receiving step of receiving second behavior information including second task information on a task being executed by the other robot;
A first profit calculating step of calculating a first profit when the robot selects a first movement plan;
A second profit calculating step of calculating a second profit when the other robot selects the second movement plan;
A combination of the first movement plan and the second movement plan that maximizes the mutual benefit based on the first benefit and the second benefit in consideration of the priority of the first task information and the priority of the second task information A robot control program for executing a creation step of creating a path plan for the robot to move by selecting the step (a), and a control step of controlling the moving means so as to move according to the path plan created in the creation step.
移動手段を備えるロボットのロボット制御方法であって、
(a)実行中のタスクについての第1タスク情報を含む第1行動情報を前記ロボットの周囲に存在する他のロボットに送信するステップ、
(b)前記他のロボットが実行中のタスクについての第2タスク情報を含む第2行動情報を受信するステップ、
(c)前記ロボットが第1移動計画を選択した場合の第1利益を算出するステップ、
(d)前記他のロボットが第2移動計画を選択した場合の第2利益を算出するステップ、
(e)前記第1タスク情報の優先度と前記第2タスク情報の優先度を考慮した前記第1利益と前記第2利益に基づく相互利益が最大となる前記第1移動計画および前記第2移動計画の組み合わせを選択することにより、前記ロボットが移動する経路計画を作成するステップ、および
(f)前記ステップ(e)において作成した経路計画に従って移動するように前記移動手段を制御するステップを含む、ロボット制御方法。
A robot control method for a robot having a moving means,
(A) transmitting first behavior information including first task information on a task being executed to another robot existing around the robot;
(B) receiving second action information including second task information on a task being executed by the other robot;
(C) calculating a first profit when the robot selects a first movement plan;
(D) calculating a second profit when the other robot selects a second movement plan;
(E) the first movement plan and the second movement that maximize the mutual benefit based on the first benefit and the second benefit in consideration of the priority of the first task information and the priority of the second task information. Selecting a combination of plans to create a path plan for the robot to move, and (f) controlling the moving means to move according to the path plan created in step (e). Robot control method.
JP2018145769A 2018-08-02 2018-08-02 ROBOT, ROBOT CONTROL PROGRAM AND ROBOT CONTROL METHOD Active JP7317436B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018145769A JP7317436B2 (en) 2018-08-02 2018-08-02 ROBOT, ROBOT CONTROL PROGRAM AND ROBOT CONTROL METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018145769A JP7317436B2 (en) 2018-08-02 2018-08-02 ROBOT, ROBOT CONTROL PROGRAM AND ROBOT CONTROL METHOD

Publications (2)

Publication Number Publication Date
JP2020021351A true JP2020021351A (en) 2020-02-06
JP7317436B2 JP7317436B2 (en) 2023-07-31

Family

ID=69588558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018145769A Active JP7317436B2 (en) 2018-08-02 2018-08-02 ROBOT, ROBOT CONTROL PROGRAM AND ROBOT CONTROL METHOD

Country Status (1)

Country Link
JP (1) JP7317436B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111474947A (en) * 2020-05-07 2020-07-31 北京云迹科技有限公司 Robot obstacle avoidance method, device and system
US11714419B2 (en) 2020-07-02 2023-08-01 Hitachi, Ltd. Automatic article conveying system and automatic article conveying method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018105599A1 (en) * 2016-12-07 2018-06-14 日本電気株式会社 Control device, control method, and program recording medium
JP2019219734A (en) * 2018-06-15 2019-12-26 トヨタ自動車株式会社 Autonomous mobile body and control program for the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018105599A1 (en) * 2016-12-07 2018-06-14 日本電気株式会社 Control device, control method, and program recording medium
JP2019219734A (en) * 2018-06-15 2019-12-26 トヨタ自動車株式会社 Autonomous mobile body and control program for the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111474947A (en) * 2020-05-07 2020-07-31 北京云迹科技有限公司 Robot obstacle avoidance method, device and system
US11714419B2 (en) 2020-07-02 2023-08-01 Hitachi, Ltd. Automatic article conveying system and automatic article conveying method

Also Published As

Publication number Publication date
JP7317436B2 (en) 2023-07-31

Similar Documents

Publication Publication Date Title
JP5366048B2 (en) Information provision system
JP5324286B2 (en) Network robot system, robot control apparatus, robot control method, and robot control program
US11673269B2 (en) Method of identifying dynamic obstacle and robot implementing same
Nakauchi et al. A social robot that stands in line
US8010231B2 (en) Communication robot
JP5764795B2 (en) Mobile robot, mobile robot learning system, and mobile robot behavior learning method
JP5768273B2 (en) A robot that predicts a pedestrian's trajectory and determines its avoidance behavior
KR102391914B1 (en) Method for operating moving robot
US11697211B2 (en) Mobile robot operation method and mobile robot
JP5617562B2 (en) Mobile robot
JP6069606B2 (en) Robot control system and robot control method
US11372418B2 (en) Robot and controlling method thereof
JPWO2020129309A1 (en) Guidance robot control device, guidance system using it, and guidance robot control method
JP2020079997A (en) Information processing apparatus, information processing method, and program
JP2021171905A (en) Robot control device, method, and program
KR20180074404A (en) Robot for airport and method thereof
JP7317436B2 (en) ROBOT, ROBOT CONTROL PROGRAM AND ROBOT CONTROL METHOD
US20210064035A1 (en) Method of moving robot in administrator mode and robot of implementing method
JP2017170568A (en) Service providing robot system
KR20210083812A (en) Autonomous mobile robots and operating method thereof
JP2020004182A (en) Robot, robot control program and robot control method
US11766779B2 (en) Mobile robot for recognizing queue and operating method of mobile robot
JP6713637B2 (en) Service provision robot system
JP5732633B2 (en) Communication robot
JP2012110996A (en) Movement control system of robot, movement control program of the robot, and movement control method of the robot

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230718

R150 Certificate of patent or registration of utility model

Ref document number: 7317436

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150