JP2007219645A - Data processing method, data processor, and program - Google Patents

Data processing method, data processor, and program Download PDF

Info

Publication number
JP2007219645A
JP2007219645A JP2006036899A JP2006036899A JP2007219645A JP 2007219645 A JP2007219645 A JP 2007219645A JP 2006036899 A JP2006036899 A JP 2006036899A JP 2006036899 A JP2006036899 A JP 2006036899A JP 2007219645 A JP2007219645 A JP 2007219645A
Authority
JP
Japan
Prior art keywords
data
bias
map data
map
bias value
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.)
Pending
Application number
JP2006036899A
Other languages
Japanese (ja)
Inventor
Gutmann Stephen
グットマン ステフェン
Masaki Fukuchi
正樹 福地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2006036899A priority Critical patent/JP2007219645A/en
Publication of JP2007219645A publication Critical patent/JP2007219645A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data processing method for automatically specifying a bias value for the moving amount of a traveling object with a processing load which is smaller than a conventional manner. <P>SOLUTION: A CPU 19 continuously stores a plurality of map data Mi assuming a plurality of different bias values bias_i, and when imaging data IM(S10L, S10R) are input, the plurality of stored map data Mi are each updated based on the imaging data. Then, the result is evaluated, so that the optimal bias value bias_i can be specified. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、移動体の動き量に対するバイアス値を特定するデータ処理方法、データ処理装置およびプログラムに関する。   The present invention relates to a data processing method, a data processing apparatus, and a program for specifying a bias value with respect to a moving amount of a moving body.

例えば、自律型ロボットは、産業用ロボットと異なり、周囲の外部状態やロボット自身の内部状態に応じて自律的に動作を行うことのできるロボットである。自律型ロボットは、歩行動作では、外部の障害物を検出して障害物を回避するような行動経路を計画することができなくてはならない。従来のロボットのなかには、自身のおかれた環境の地図データータを基に行動経路を決定できるものが提案されている。   For example, unlike an industrial robot, an autonomous robot is a robot that can operate autonomously according to the surrounding external state or the internal state of the robot itself. An autonomous robot must be able to plan an action path that detects an external obstacle and avoids the obstacle in walking motion. Some conventional robots have been proposed that can determine the action route based on the map data of their environment.

このようなロボットは、予め指定された地図データの他、自らがカメラなどの撮像結果を基に地図データを生成および更新する。
ところで、このようなロボットは、例えば、複数の足の長さに僅かな違いがあると、CPUの制御信号によってアクチュエータを制御しても、ロボットの実際の動き量と想定した動き量との間に違いが生じる。
このような場合に、ロボットの動き量のバイアス値を自動的に特定し、その特定したバイアス値を基に、ロボットの動きを制御するシステムがある。
D. Haehnel, W. Burgard, D. Fox, S. Thrun. “An efficient FastSLAM algorithm for Generating Maps of Large-Scale Cyclic Environments from Raw Laser Range Measurements”, Int. Conf. on Intelligent Robots and Systems (IROS), 2004 _ Particle filter for map-building
Such robots generate and update map data based on image data obtained by a camera or the like in addition to map data designated in advance.
By the way, in such a robot, for example, if there is a slight difference in the lengths of a plurality of legs, even if the actuator is controlled by a CPU control signal, the actual movement amount of the robot is assumed to be between the assumed movement amount. There is a difference.
In such a case, there is a system that automatically specifies a bias value of the amount of movement of the robot and controls the movement of the robot based on the specified bias value.
D. Haehnel, W. Burgard, D. Fox, S. Thrun. “An efficient FastSLAM algorithm for Generating Maps of Large-Scale Cyclic Environments from Raw Laser Range Measurements”, Int. Conf. On Intelligent Robots and Systems (IROS), 2004 _ Particle filter for map-building

しかしながら、上述した従来のシステムでは、演算量が非常に多く、システムが大規模化すると共に、リアルタイム制御が難しいという問題がある。   However, the above-described conventional system has a problem that the amount of calculation is very large, the system becomes large-scale, and real-time control is difficult.

本発明は上述した従来技術の問題点を解決するために、従来に比べて少ない処理負荷で、移動体の動き量に対するバイアス値を自動的に特定できるデータ処理方法、データ処理装置およびプログラムを提供することを目的とする。   The present invention provides a data processing method, data processing apparatus, and program capable of automatically specifying a bias value with respect to the amount of movement of a moving object with a smaller processing load than conventional methods in order to solve the above-described problems of the prior art. The purpose is to do.

上述した従来技術の問題点を解決し、上述した目的を達成するため、第1の観点の発明のデータ処理方法は、移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する第1の工程と、前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記第1の工程で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う第2の工程と、前記第2の工程で更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定する第3の工程とを有する。   In order to solve the above-described problems of the prior art and achieve the above-described object, the data processing method according to the first aspect of the present invention provides a plurality of different bias values defined in advance with respect to the amount of movement of the moving object. A first step of generating position data indicating the position of the moving body based on the bias value and the measured value of the amount of movement, and a plurality of maps associated with each of the plurality of bias values A second step of updating the data on the assumption that imaging data is obtained at the position indicated by the position data generated in the first step with respect to the bias value corresponding to the map data; And a third step of performing a predetermined evaluation process based on the plurality of map data updated in the step and identifying one optimum bias value among the plurality of bias values.

第2の観点の発明のデータ処理装置は、移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する位置生成手段と、前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記位置生成手段で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う地図更新手段と、前記地図更新手段が更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定するバイアス値特定手段とを有する。   According to a second aspect of the present invention, there is provided the data processing device, wherein for each of a plurality of different bias values defined in advance with respect to the amount of movement of the moving body, the movement Position generating means for generating position data indicating the position of the body, and updating of the plurality of map data associated with each of the plurality of bias values by the position generating means for the bias value corresponding to the map data. A plurality of map updating means that performs imaging assuming that imaging data has been obtained at the position indicated by the generated position data, and a predetermined evaluation process based on the plurality of map data updated by the map updating means. Bias value specifying means for specifying an optimum one of the bias values.

第3の観点の発明のプログラムは、コンピュータが実行するプログラムであって、移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する第1の手順と、前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記第1の手順で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う第2の手順と、前記第2の手順で更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定する第3の手順とを前記コンピュータに実行させる。   A program according to a third aspect of the invention is a program executed by a computer, and for each of a plurality of different bias values defined in advance with respect to the amount of movement of a moving object, the bias value and the measured value of the amount of movement. And updating the plurality of map data associated with each of the plurality of bias values based on the first procedure for generating position data indicating the position of the mobile object, and corresponding to the map data Based on the second procedure performed on the assumption that imaging data was obtained at the position indicated by the position data generated in the first procedure with respect to the bias value, and the plurality of map data updated in the second procedure A predetermined evaluation process is performed to cause the computer to execute a third procedure for specifying an optimum one of the plurality of bias values.

本発明によれば、従来に比べて少ない処理負荷で、移動体の動き量に対するバイアス値を自動的に特定できるデータ処理方法、データ処理装置およびプログラムを提供することができる。   According to the present invention, it is possible to provide a data processing method, a data processing apparatus, and a program that can automatically specify a bias value for the amount of movement of a moving object with a smaller processing load than in the past.

以下、本発明の実施形態に係わるロボットについて説明する。
<第1実施形態>
先ず、本実施形態の構成要素と、本発明の構成要素との対応関係を説明する。
本実施形態において、ロボット1が本発明の移動体の一例である。また、バイアス値bias_iが本発明の複数のバイアス値の一例であり、地図データMiが本発明の地図データの一例である。また、本実施形態の第1〜第3の評価処理が、本発明の評価処理の一例である。
また、図1に示すプログラムPRGが本発明のプログラムの一例である。
Hereinafter, a robot according to an embodiment of the present invention will be described.
<First Embodiment>
First, the correspondence between the components of the present embodiment and the components of the present invention will be described.
In the present embodiment, the robot 1 is an example of the moving body of the present invention. The bias value bias_i is an example of a plurality of bias values of the present invention, and the map data Mi is an example of map data of the present invention. Moreover, the 1st-3rd evaluation process of this embodiment is an example of the evaluation process of this invention.
Further, the program PRG shown in FIG. 1 is an example of the program of the present invention.

図1は、本発明の実施形態のロボット1の機能ブロック図である。
図1に示すように、ロボット1は、例えば、CCD(Charge-Coupled Devices)カメラ10R,10L、アクチュエータ群16、センサ群17、メモリ18およびCPU19を有する。
[CCDカメラ10R,10L]
CCDカメラ10R,10Lは、それぞれ撮像結果に応じた右画像データS10Rおよび左画像データS10LをCPU19に出力する。
FIG. 1 is a functional block diagram of a robot 1 according to an embodiment of the present invention.
As shown in FIG. 1, the robot 1 includes, for example, CCD (Charge-Coupled Devices) cameras 10R and 10L, an actuator group 16, a sensor group 17, a memory 18, and a CPU 19.
[CCD camera 10R, 10L]
The CCD cameras 10R and 10L output the right image data S10R and the left image data S10L corresponding to the imaging results to the CPU 19, respectively.

[アクチュエータ群16]
アクチュエータ群16は、ロボット1の動きを駆動する各種のアクチュエータである。
アクチュエータ群16は、CPU19からの制御信号S15によって駆動される。
センサ群17は、ロボット1の所定箇所に設置された赤外線センサなどの非接触型センサや接触型センサなどである。
[Actuator group 16]
The actuator group 16 is various actuators that drive the movement of the robot 1.
The actuator group 16 is driven by a control signal S15 from the CPU 19.
The sensor group 17 is a non-contact type sensor such as an infrared sensor or a contact type sensor installed at a predetermined location of the robot 1.

[センサ群17]
センサ群17は、検出信号S17をCPU19に出力する。
センサ群17は、アクチュエータ群16のアクチュエータに備えられたエンコーダなどを含む。
[Sensor group 17]
The sensor group 17 outputs a detection signal S17 to the CPU 19.
The sensor group 17 includes an encoder provided in the actuator of the actuator group 16.

[メモリ18]
メモリ18は、CPU19が実行するプログラムPRG、並びに地図データMiなどのデータを記憶する。
[Memory 18]
The memory 18 stores a program PRG executed by the CPU 19 and data such as map data Mi.

[CPU19]
CPU19は、メモリ18から読み出したプログラムPRGに基づいて以下に示す処理を実行する。
CPU19は、CCDカメラ10R,10Lから入力した右画像データS10Rと左画像データS10Lの視差情報(disparity data)(距離情報)を計算し、カラー画像データ(YUV:輝度Y、UV色差)及び視差画像データ(YDR:輝度Y、視差D、信頼度R)をフレーム毎に左右交互に算出する。
ここで、視差とは、空間中のある点が左側カメラ及び右側カメラに写像される点の違いを示し、そのカメラからの距離に応じて変化するものである。
CPU19は、後述するように、上述した画像データを用いて、ロボット1の動き量のバイアス値を特定し、そのバイアス値を用いてアクチュエータ群16等を制御する。
[CPU 19]
The CPU 19 executes the following processing based on the program PRG read from the memory 18.
The CPU 19 calculates parallax information (disparity data) (distance information) between the right image data S10R and the left image data S10L input from the CCD cameras 10R and 10L, and performs color image data (YUV: luminance Y, UV color difference) and a parallax image. Data (YDR: luminance Y, parallax D, reliability R) is calculated alternately for each frame.
Here, the parallax indicates a difference between points where a certain point in the space is mapped to the left camera and the right camera, and changes according to the distance from the camera.
As will be described later, the CPU 19 specifies a bias value of the movement amount of the robot 1 using the above-described image data, and controls the actuator group 16 and the like using the bias value.

以下、図1に示すロボット1の構成をさらに詳細に説明する。
図2に示すように、ロボット1は、例えば、2足歩行タイプであり、日常生活上の様々な場面における人的活動を支援する実用ロボットである。
ロボット1は、内部状態(怒り、悲しみ、喜び、楽しみ等)に応じて行動できるほか、人間が行う基本的な動作を表出できるエンターテインメントロボットである。ロボットは、3次元環境クラスデータを生成し、これを基に行動経路を決定する。
Hereinafter, the configuration of the robot 1 shown in FIG. 1 will be described in more detail.
As shown in FIG. 2, the robot 1 is, for example, a bipedal walking type and is a practical robot that supports human activities in various scenes in daily life.
The robot 1 is an entertainment robot that can act in accordance with the internal state (anger, sadness, joy, enjoyment, etc.) and express basic actions performed by humans. The robot generates three-dimensional environment class data and determines an action route based on this.

図2に示すように、ロボット1は、体幹部ユニット202の所定の位置に頭部ユニット203が連結されるとともに、左右2つの腕部ユニット204R/Lと、左右2つの脚部ユニット205R/Lが連結されて構成されている。   As shown in FIG. 2, the robot 1 includes a head unit 203 connected to a predetermined position of the trunk unit 202, two left and right arm units 204R / L, and two left and right leg units 205R / L. Are connected.

図2に示すロボット1が具備する関節自由度構成を図3に模式的に示す。
頭部ユニット203を支持する首関節は、首関節ヨー軸101と、首関節ピッチ軸102と、首関節ロール軸103という3自由度を有している。
A joint degree-of-freedom configuration of the robot 1 shown in FIG. 2 is schematically shown in FIG.
The neck joint that supports the head unit 203 has three degrees of freedom: a neck joint yaw axis 101, a neck joint pitch axis 102, and a neck joint roll axis 103.

また、上肢を構成する各々の腕部ユニット204R/Lは、肩関節ピッチ軸107と、肩関節ロール軸108と、上腕ヨー軸109と、肘関節ピッチ軸110と、前腕ヨー軸111と、手首関節ピッチ軸112と、手首関節ロール軸113と、手部114とで構成される。
手部114は、実際には、複数本の指を含む多関節・多自由度構造体である。ただし、手部114の動作は、ロボット1の姿勢制御や歩行制御に対する寄与や影響が少ないので、本明細書では簡単のため、ゼロ自由度と仮定する。したがって、各腕部は7自由度を有するとする。
また、体幹部ユニット202は、体幹ピッチ軸104と、体幹ロール軸105と、体幹ヨー軸106という3自由度を有する。
Each arm unit 204R / L constituting the upper limb includes a shoulder joint pitch axis 107, a shoulder joint roll axis 108, an upper arm yaw axis 109, an elbow joint pitch axis 110, a forearm yaw axis 111, and a wrist. A joint pitch axis 112, a wrist joint roll axis 113, and a hand part 114 are included.
The hand portion 114 is actually a multi-joint / multi-degree-of-freedom structure including a plurality of fingers. However, since the movement of the hand portion 114 has little contribution or influence on the posture control or walking control of the robot 1, it is assumed in this specification that the degree of freedom is zero. Therefore, it is assumed that each arm portion has seven degrees of freedom.
The trunk unit 202 has three degrees of freedom: a trunk pitch axis 104, a trunk roll axis 105, and a trunk yaw axis 106.

また、下肢を構成する各々の脚部ユニット205R/Lは、股関節ヨー軸115と、股関節ピッチ軸116と、股関節ロール軸117と、膝関節ピッチ軸118と、足首関節ピッチ軸119と、足首関節ロール軸120と、足底121とで構成される。
本明細書中では、股関節ピッチ軸116と股関節ロール軸117の交点は、ロボット1の股関節位置を定義する。人体の足底121は、実際には多関節・多自由度の足底を含んだ構造体であるが、本明細書においては、簡単のためロボット1の足底は、ゼロ自由度とする。したがって、各脚部は、6自由度で構成される。
以上を総括すれば、ロボット1全体としては、合計で3+7×2+3+6×2=32自由度を有することになる。ただし、エンターテインメント向けのロボット1が必ずしも32自由度に限定されるわけではない。設計・制作上の制約条件や要求仕様等に応じて、自由度すなわち関節数を適宜増減することができることはいうまでもない。
Each leg unit 205R / L constituting the lower limb includes a hip joint yaw axis 115, a hip joint pitch axis 116, a hip joint roll axis 117, a knee joint pitch axis 118, an ankle joint pitch axis 119, and an ankle joint. A roll shaft 120 and a sole 121 are included.
In this specification, the intersection of the hip joint pitch axis 116 and the hip joint roll axis 117 defines the hip joint position of the robot 1. The human foot sole 121 is actually a structure including a multi-joint / multi-degree-of-freedom sole, but in this specification, for the sake of simplicity, the sole of the robot 1 has zero degrees of freedom. Accordingly, each leg is configured with 6 degrees of freedom.
In summary, the robot 1 as a whole has a total of 3 + 7 × 2 + 3 + 6 × 2 = 32 degrees of freedom. However, the robot 1 for entertainment is not necessarily limited to 32 degrees of freedom. Needless to say, the degree of freedom, that is, the number of joints, can be increased or decreased as appropriate in accordance with design / production constraints or required specifications.

上述したようなロボット1がもつ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、2足歩行という不安定構造体に対して姿勢制御を行うこと等の要請から、アクチュエータは小型かつ軽量であることが好ましい。
なお、図3に示すアクチュエータによって図1に示すアクチュエータ群16が構成され、図3に示すセンサによって図1に示すセンサ群17が構成される。
Each degree of freedom of the robot 1 as described above is actually implemented using an actuator. It is preferable that the actuator be small and light in light of demands such as eliminating external bulges on the appearance and approximating the shape of a human body, and performing posture control on an unstable structure such as biped walking. .
The actuator group 16 shown in FIG. 1 is configured by the actuator shown in FIG. 3, and the sensor group 17 shown in FIG. 1 is configured by the sensors shown in FIG.

このようなロボットは、ロボット全体の動作を制御する制御システムを例えば体幹部ユニット202等に備える。
図4は、本実施形態のロボット1の制御システム構成を示す模式図である。
図4に示すように、制御システムは、ユーザ入力等に動的に反応して情緒判断や感情表現を司る思考制御モジュール200と、アクチュエータ350の駆動等、ロボット1の全身協調運動を制御する運動制御モジュール300とで構成される。
Such a robot includes a control system that controls the operation of the entire robot, for example, in the trunk unit 202.
FIG. 4 is a schematic diagram illustrating a control system configuration of the robot 1 according to the present embodiment.
As shown in FIG. 4, the control system dynamically controls the whole body cooperative motion of the robot 1 such as driving the actuator 350 and the thought control module 200 that controls emotion judgment and emotion expression in response to user input and the like. And a control module 300.

思考制御モジュール200は、情緒判断や感情表現に関する演算処理を実行するCPU(Central Processing Unit)211(図1に示すCPU19)や、RAM(Random Access Memory)212、ROM(Read Only Memory)213及び外部記憶装置(ハード・ディスク・ドライブ等)214等で構成され、モジュール内で自己完結した処理を行うことができる、独立駆動型の情報処理装置である。   The thought control module 200 includes a CPU (Central Processing Unit) 211 (CPU 19 shown in FIG. 1), a RAM (Random Access Memory) 212, a ROM (Read Only Memory) 213, and an external device. This is an independent drive type information processing apparatus that is configured by a storage device (hard disk drive, etc.) 214 and the like, and that can perform self-contained processing in a module.

この思考制御モジュール200は、画像入力装置251から入力される画像データや音声入力装置252から入力される音声データ等、外界からの刺激等にしたがって、ロボット1の現在の感情や意思を決定する。すなわち、上述したように、入力される画像データからユーザの表情を認識し、その情報をロボット201の感情や意思に反映させることで、ユーザの表情に応じた行動を発現することができる。
ここで、画像入力装置251は、例えばCCD(Charge Coupled Device)カメラを複数備えており、これらのカメラにより撮像した画像から距離画像を得ることができる。
本実施形態では、画像入力装置251は、図1に示すCCDカメラ10R,10Lに対応している。
また、音声入力装置252は、例えばマイクロホンを複数備えている。
The thought control module 200 determines the current emotion and intention of the robot 1 according to stimuli from the outside such as image data input from the image input device 251 and sound data input from the sound input device 252. That is, as described above, by recognizing the user's facial expression from the input image data and reflecting the information on the emotion and intention of the robot 201, it is possible to express an action according to the user's facial expression.
Here, the image input device 251 includes a plurality of CCD (Charge Coupled Device) cameras, for example, and can obtain a distance image from images captured by these cameras.
In the present embodiment, the image input device 251 corresponds to the CCD cameras 10R and 10L shown in FIG.
The voice input device 252 includes a plurality of microphones, for example.

思考制御モジュール200は、意思決定に基づいた動作又は行動シーケンス、すなわち四肢の運動を実行するように、運動制御モジュール300に対して指令を発行する。   The thought control module 200 issues a command to the movement control module 300 to execute an action or action sequence based on decision making, that is, movement of the limbs.

運動制御モジュール300は、ロボット1の全身協調運動を制御するCPU311(図1に示すCPU19)や、RAM312、ROM313及び外部記憶装置(ハード・ディスク・ドライブ等)314等で構成され、モジュール内で自己完結した処理を行うことができる独立駆動型の情報処理装置である。また、外部記憶装置314には、例えば、オフラインで算出された歩行パターンや目標とするZMP軌道、その他の行動計画を蓄積することができる。
この運動制御モジュール300には、図2に示したロボット1の全身に分散するそれぞれの関節自由度を実現するアクチュエータ350、対象物との距離を測定する距離計測センサ(図示せず)、体幹部ユニット202の姿勢や傾斜を計測する姿勢センサ351、左右の足底の離床又は着床を検出する接地確認センサ352,353、足底121の足底121に設けられる荷重センサ、バッテリ等の電源を管理する電源制御装置354等の各種の装置が、バス・インターフェース(I/F)310経由で接続されている。
ここで、姿勢センサ351は、例えば加速度センサとジャイロ・センサの組合せによって構成され、接地確認センサ352,353は、近接センサ又はマイクロ・スイッチ等で構成される。
The motion control module 300 includes a CPU 311 (CPU 19 shown in FIG. 1) that controls the whole body cooperative motion of the robot 1, a RAM 312, a ROM 313, an external storage device (hard disk drive, etc.) 314, and the like. This is an independent drive type information processing apparatus capable of performing a complete process. Also, the external storage device 314 can store, for example, walking patterns calculated offline, target ZMP trajectories, and other action plans.
The motion control module 300 includes an actuator 350 that realizes the degrees of freedom of joints distributed over the whole body of the robot 1 shown in FIG. 2, a distance measurement sensor (not shown) that measures the distance to the object, and the trunk A posture sensor 351 for measuring the posture and inclination of the unit 202, grounding confirmation sensors 352 and 353 for detecting the left or right foot floor getting off or landing, a load sensor provided on the sole 121 of the sole 121, a battery, etc. Various devices such as a power control device 354 to be managed are connected via a bus interface (I / F) 310.
Here, the attitude sensor 351 is configured by, for example, a combination of an acceleration sensor and a gyro sensor, and the grounding confirmation sensors 352 and 353 are configured by proximity sensors, micro switches, or the like.

思考制御モジュール200と運動制御モジュール300は、共通のプラットフォーム上
で構築され、両者間はバス・インターフェース210,310を介して相互接続されている。
The thought control module 200 and the motion control module 300 are constructed on a common platform, and are interconnected via bus interfaces 210 and 310.

運動制御モジュール300では、思考制御モジュール200から指示された行動を体現すべく、各アクチュエータ350による全身協調運動を制御する。すなわち、CPU311は、思考制御モジュール200から指示された行動に応じた動作パターンを外部記憶装置314から取り出し、又は、内部的に動作パターンを生成する。そして、CPU311は、指定された動作パターンにしたがって、足部運動、ZMP軌道、体幹運動、上肢運動、腰部水平位置及び高さ等を設定するとともに、これらの設定内容に従った動作を指示す
る指令値を各アクチュエータ350に転送する。
The motion control module 300 controls the whole body cooperative motion by each actuator 350 in order to embody the action instructed from the thought control module 200. That is, the CPU 311 extracts an operation pattern corresponding to the action instructed from the thought control module 200 from the external storage device 314 or generates an operation pattern internally. Then, the CPU 311 sets a foot movement, a ZMP trajectory, a trunk movement, an upper limb movement, a horizontal waist position, a height, and the like according to a specified movement pattern, and instructs a movement according to these setting contents. The command value is transferred to each actuator 350.

CPU311は、姿勢センサ351の出力信号によりロボット1の体幹部ユニット202の姿勢や傾きを検出するとともに、各接地確認センサ352,353の出力信号により各脚部ユニット205R/Lが遊脚又は立脚のいずれの状態であるかを検出することによって、ロボット1の全身協調運動を適応的に制御することができる。更に、CPU311は、ZMP位置が常にZMP安定領域の中心に向かうように、ロボット1の姿勢や動作を制御する。   The CPU 311 detects the posture and inclination of the trunk unit 202 of the robot 1 based on the output signal of the posture sensor 351, and each leg unit 205R / L detects whether the leg unit 205R / L is a free leg or a stance based on the output signals of the ground contact confirmation sensors 352 and 353. By detecting which state it is, the whole body cooperative movement of the robot 1 can be adaptively controlled. Further, the CPU 311 controls the posture and operation of the robot 1 so that the ZMP position always moves toward the center of the ZMP stable region.

また、運動制御モジュール300は、思考制御モジュール200において決定された意
思通りの行動がどの程度発現されたか、すなわち処理の状況を、思考制御モジュール20
0に返すようになっている。このようにしてロボット1は、制御プログラムに基づいて自己及び周囲の状況を判断し、自律的に行動することができる。
In addition, the motion control module 300 indicates how much the intended behavior determined in the thought control module 200 is expressed, that is, the processing status.
It returns to 0. In this way, the robot 1 can determine its own and surrounding conditions based on the control program and can act autonomously.

以下、図1および図5に示すCPU19(CPU311)の機能を説明する。
図5は、図1および図4に示すCPU19の一部の機能の機能ブロック図である。
図5に示すように、CPU19は、例えば、画像前処理部31、地図データ生成部33、システムバイアス特定部35、位置・姿勢検出部37、並びに動き制御部39を有する。
図5に示す構成要素の各々は、CPU19がプログラムPRGを実行して実現してよいし、専用のハードウェアにより実現してもよい。
以下、図5に示す各構成について詳細に説明する。
The function of the CPU 19 (CPU 311) shown in FIGS. 1 and 5 will be described below.
FIG. 5 is a functional block diagram of some functions of the CPU 19 shown in FIGS. 1 and 4.
As illustrated in FIG. 5, the CPU 19 includes, for example, an image preprocessing unit 31, a map data generation unit 33, a system bias identification unit 35, a position / posture detection unit 37, and a motion control unit 39.
Each of the components shown in FIG. 5 may be realized by the CPU 19 executing the program PRG, or may be realized by dedicated hardware.
Hereinafter, each configuration shown in FIG. 5 will be described in detail.

[画像前処理部31]
画像前処理部31は、CCDカメラ10R,10Lから入力した右画像データS10Rと左画像データS10Lの視差情報(disparity data)(距離情報)を計算し、カラー画像データ(YUV:輝度Y、UV色差)及び視差画像データ(YDR:輝度Y、視差D、信頼度R)をフレーム毎に左右交互に算出する。
ここで、視差とは、空間中のある点が左側カメラ及び右側カメラに写像される点の違いを示し、そのカメラからの距離に応じて変化するものである。
[Image Preprocessing Unit 31]
The image preprocessing unit 31 calculates disparity information (distance information) between the right image data S10R and the left image data S10L input from the CCD cameras 10R and 10L, and color image data (YUV: luminance Y, UV color difference). ) And parallax image data (YDR: luminance Y, parallax D, reliability R) are calculated alternately for each frame.
Here, the parallax indicates a difference between points where a certain point in the space is mapped to the left camera and the right camera, and changes according to the distance from the camera.

画像前処理部31は、上記カラー画像データ及び視差画像データを基に、ロボット1から画像(環境)内の対象物までの3次元距離を示す距離データ(ステレオデータ)S31を生成し、これを撮像データIMとして地図データ生成部33に出力する。
画像前処理部31は、上記距離データから環境内に存在する複数の平面を検出し、それを示す平面データS32を撮像データIMとして地図データ生成部33に出力する。ここでの平面の検出方法としては、線分拡張法、ハフ変換等を利用した公知の平面検出技術を適用することができる。ノイズを含む距離データから階段のように複数平面を検出する代表例として、線分拡張法による平面検出を行うと正確に平面を検出することができる。
Based on the color image data and the parallax image data, the image preprocessing unit 31 generates distance data (stereo data) S31 indicating a three-dimensional distance from the robot 1 to the object in the image (environment). It outputs to the map data generation part 33 as imaging data IM.
The image preprocessing unit 31 detects a plurality of planes existing in the environment from the distance data, and outputs plane data S32 indicating the planes to the map data generation unit 33 as imaging data IM. As a plane detection method here, a known plane detection technique using a line segment expansion method, a Hough transform, or the like can be applied. As a representative example of detecting a plurality of planes like staircases from distance data including noise, it is possible to accurately detect planes by performing plane detection by a line segment expansion method.

[地図生成部33]
地図生成部33は、画像前処理部31から入力した撮像データIM(距離データS31および平面検出データS32)に基づいて、地図データMAP(3次元グリット地図データ)を生成し、これをメモリ18に書き込む。
地図データ生成部33は、例えば、SLAM(Simultaneous Localization And Mapping)などの手法を用いて、地図データMAPを生成する。
[Map generator 33]
The map generation unit 33 generates map data MAP (three-dimensional grid map data) based on the imaging data IM (distance data S31 and plane detection data S32) input from the image preprocessing unit 31, and stores this in the memory 18. Write.
The map data generation unit 33 generates map data MAP using a technique such as SLAM (Simultaneous Localization And Mapping), for example.

先ず、地図生成部33による地図データMAPの生成処理について説明する。
地図データMAPは、周囲の環境を水平方向及び垂直方向に所定の大きさの格子(グリッド;Grid)に分割して表したものである。
地図生成部33は、画像前処理部31からの距離データS31および平面データS32とに基づいて、例えば、4メートル四方、高さ1メートルの空間を、水平解像度4センチ及び垂直解像度1センチの直方体空間を1グリッド単位(1セルと記す)とし、その集合によって表現された地図データMAPを生成する。
地図生成部33は、各セルに物体によって占有されているか否かの確率を付与し、観測データに基づいて各セルの占有確率を変更させている。また、地図生成部33は、占有確率に閾値を設け、占有確率が閾値より大きいか否かによって環境の状態を地図として表現している。
本具体例では、高さ方向の解像度がセル分解能に依存しないため、垂直解像度は、1セ
ンチよりも粗くできる。
First, map data MAP generation processing by the map generation unit 33 will be described.
The map data MAP is obtained by dividing the surrounding environment into a grid having a predetermined size in the horizontal direction and the vertical direction.
Based on the distance data S31 and the plane data S32 from the image preprocessing unit 31, the map generation unit 33 creates a rectangular parallelepiped with a horizontal resolution of 4 centimeters and a vertical resolution of 1 centimeter, for example, in a space of 4 meters square and 1 meter high. The space is set as one grid unit (denoted as one cell), and map data MAP expressed by the set is generated.
The map generation unit 33 gives a probability as to whether or not each cell is occupied by an object, and changes the occupation probability of each cell based on the observation data. In addition, the map generation unit 33 sets a threshold for the occupation probability, and expresses the state of the environment as a map depending on whether the occupation probability is larger than the threshold.
In this specific example, since the resolution in the height direction does not depend on the cell resolution, the vertical resolution can be coarser than 1 cm.

地図生成部33は、3次元グリッドで表される実空間における全ての単位グリッド(以下、セルと記す。)p(x,y,z)に対して次の処理を行う。
地図生成部33は、撮像画像内に像として映し出された測定点(3次元グリッド)と観測中心(ステレオカメラ中心)とを結ぶ直線上には障害物が存在しないというアルゴリズムに基づいて地図データMAPを作成及び/又は更新している。
The map generation unit 33 performs the following processing on all unit grids (hereinafter referred to as cells) p (x, y, z) in the real space represented by a three-dimensional grid.
The map generation unit 33 maps the map data MAP based on an algorithm that there is no obstacle on the straight line connecting the measurement point (three-dimensional grid) projected as an image in the captured image and the observation center (stereo camera center). Are created and / or updated.

地図生成部33は、上述のアルゴリズムに基づいて、測定対象点であるセルpとロボットのステレオカメラ11L,11Rとを結ぶ線分の間に存在するセルに対して、エンプティ(Empty)処理を行う。続いて、測定点pにあたるセルに対してオキュパイド(Occupied)処理を行う。
地図データMAPは、任意のセルcに対して障害物の存在確率(障害物によって占有されている確率)p(c)を保持しており、このエンプティ処理及びオキュパイド処理は、これら各セルに対して統計的な処理である。
エンプティ処理は、障害物の存在確率を低下させる処理であり、オキュパイド処理は障害物の存在確率を増加させる処理である。本具体例では、エンプティ処理及びオキュパイド処理の存在確率を算出する手法の一例として、ベイズの更新則を用いる。
Based on the algorithm described above, the map generation unit 33 performs an empty process on the cells existing between the line segments connecting the cell p that is the measurement target point and the stereo cameras 11L and 11R of the robot. . Subsequently, an occupied process is performed on the cell corresponding to the measurement point p.
The map data MAP holds an obstacle existence probability (probability occupied by an obstacle) p (c) for an arbitrary cell c. The empty process and the occupy process are performed for each cell. And statistical processing.
The empty process is a process for reducing the existence probability of an obstacle, and the occupy process is a process for increasing the existence probability of an obstacle. In this specific example, Bayesian update rules are used as an example of a method for calculating the existence probability of the empty process and the occupy process.

地図生成部33は、エンプティ処理において式(1)により占有確率を減少させ、オキュパイド処理において式(2)により占有確率を増加させる。
式(1)は、セルcの占有確率を示すp(c)が“占有”という条件下にあるセルCの確率を表しており、式(1)又は式(2)においてセルcが占有されているか又は占有されていないかを表す確率p(occ|・・・)、p(empty|・・・)は、予め決められた閾値thである。
The map generation unit 33 decreases the occupation probability by the equation (1) in the empty process and increases the occupation probability by the equation (2) in the occupide process.
Equation (1) represents the probability of cell C under the condition that p (c) indicating the occupation probability of cell c is “occupied”, and cell c is occupied in equation (1) or equation (2). The probabilities p (occ |...) And p (empty |...) That indicate whether or not they are occupied are predetermined threshold values th.

[数1]
p(c)←p(c|empty)=p(empty|c)p(c)/{p(empty|c)p(c)+p(empty|c~)p(c~)}
…(1)
[Equation 1]
p (c) ← p (c | empty) = p (empty | c) p (c) / {p (empty | c) p (c) + p (empty | c ~) p (c ~)}
... (1)

[数2]
p(c)←p(c|occ)=p(occ|c)p(c)/{p(occ|c)p(c)+p(occ|c~)p(c~)}
…(2)
[Equation 2]
p (c) ← p (c | occ) = p (occ | c) p (c) / {p (occ | c) p (c) + p (occ | c ~) p (c ~)}
... (2)

本具体例では、3次元グリッドとして表される領域は、例えば、4メートル四方、水平解像度4センチ及び垂直解像度1センチを1セルとした3次元グリッドで表現されている。
地図生成部33が生成する地図データMAPは、例えば、3次元座標(x、y、z)の各セルについて、その占有確率OG(x、y、z)(=p(c))を示している。
In this specific example, the area represented as a three-dimensional grid is represented by a three-dimensional grid, for example, 4 meters square, with a horizontal resolution of 4 cm and a vertical resolution of 1 cm as one cell.
The map data MAP generated by the map generation unit 33 indicates, for example, the occupation probability OG (x, y, z) (= p (c)) for each cell of three-dimensional coordinates (x, y, z). Yes.

本実施形態では、ロボット1の図6に示す動き量(α、d、β)に対して予め規定したバイアス値bias_i(Δα、Δd、Δβ)が異なる複数の地図データMiを用意する。ここで、iは2以上の整数である。バイアス値は、例えばΔα,Δβなど角度は、−5°〜+5°の間で0.1°のステップで規定する。
本実施形態において、バイアス値bias_i(Δα、Δd、Δβ)は、ロボット1の機械的(システム的)な要因によって常に生じるエラーを抑制するための値である。
このようなエラーは、例えば、足の長さの誤差、車輪がある場合には車輪の軽の誤差などによって生じる。
地図データ生成部33は、バイアス値bias_iが異なる複数の地図データMiの各々について、位置・姿勢検出部37から入力した対応するバイアス値bias_iの位置・姿勢データpose(xi,yi,θi)と、撮像データIMとを基に、各バイアス値bias_iの地図データMiを更新する。
地図データ生成部33は、地図データMiをメモリ18に書き込む。
In the present embodiment, a plurality of map data Mi having different bias values bias_i (Δα, Δd, Δβ) defined in advance with respect to the movement amounts (α, d, β) shown in FIG. 6 of the robot 1 are prepared. Here, i is an integer of 2 or more. The bias value is defined in steps of 0.1 ° between -5 ° and + 5 °, for example, an angle such as Δα and Δβ.
In the present embodiment, the bias values bias_i (Δα, Δd, Δβ) are values for suppressing errors that always occur due to mechanical (system) factors of the robot 1.
Such an error is caused by, for example, an error in the length of the foot, a light error in the wheel when there is a wheel, or the like.
For each of a plurality of map data Mi having different bias values bias_i, the map data generation unit 33 includes position / posture data position (xi, yi, θi) of the corresponding bias value bias_i input from the position / posture detection unit 37, and The map data Mi of each bias value bias_i is updated based on the imaging data IM.
The map data generation unit 33 writes the map data Mi into the memory 18.

[システムバイアス特定部35]
システムバイアス特定部35は、メモリ18から読み出した上記複数のバイアス値bias_iが異なる複数の地図データMiを基に所定の評価処理を行って、前記複数のバイアス値bias_iのうち最適な一つを特定(選択)する。
システムバイアス特定部35は、例えば以下に示す第1〜第3の評価処理のうち何れかの評価処理を実行する。
(第1の評価処理)
システムバイアス特定部35は、例えば、図7に示すように、複数の地図データMiの各々について、下記式(3)に基づいて、エントロピーEを計算する。
下記式(3)において、「c」は地図データMi内のセルを示している。
[System bias specifying unit 35]
The system bias specifying unit 35 performs a predetermined evaluation process based on the plurality of map data Mi read from the memory 18 and having a plurality of different bias values bias_i, and specifies an optimum one of the plurality of bias values bias_i. (select.
For example, the system bias identification unit 35 executes any one of the following first to third evaluation processes.
(First evaluation process)
For example, as shown in FIG. 7, the system bias identification unit 35 calculates entropy E for each of the plurality of map data Mi based on the following equation (3).
In the following formula (3), “c” indicates a cell in the map data Mi.

[数3]
E=−Σ(log(p(c|occ))p(c|occ)+log(p(c|empt))p(c|empt))
…(3)
[Equation 3]
E = −Σ c (log (p (c | occ)) p (c | occ) + log (p (c | empt)) p (c | empt))
... (3)

システムバイアス特定部35は、上記式(3)で生成したエントロピーEを評価値fitとして用いて、エントロピーに最も急峻なピークを持つ地図データMiに対応したバイアス値bias_iを特定する。
システムバイアス特定部35は、上記特定したバイアス値bias_iを位置・姿勢検出部37および動き制御部39に出力する。
The system bias specifying unit 35 specifies the bias value bias_i corresponding to the map data Mi having the sharpest peak in entropy, using the entropy E generated by the above equation (3) as the evaluation value fit.
The system bias identification unit 35 outputs the identified bias value bias_i to the position / posture detection unit 37 and the motion control unit 39.

(第2の評価処理)
システムバイアス特定部35は、地図データMi内の直線部分を抽出し、その分散値を基に、その地図データMiに対応したバイアス値bias_iの適正さを判断する。
システムバイアス特定部35は、例えば、図8に示す手順で地図データMiから直線部分を抽出する。
本実施例では直線検出手法として、ノイズに対してロバストなRANSACを用いた以下に示すアルゴリズムを用いた。
システムバイアス特定部35は、先ず、地図データMi内の2つの占有点をランダムに選択する(ステップST11)。占有点とは、例えば、占有されている確率が所定値以上の点である。
次に、システムバイアス特定部35は、上記選択した2つの占有点によって規定される直線を計算する(ステップST12)。
次に、システムバイアス特定部35は、ステップST12で計算した直線に対して、予め決められたしきい値以内の距離にある占有点を特定する(ステップST13)。
次に、システムバイアス特定部35は、ステップST13で特定した占有点を用いて、それらの占有点に最も合致する直線を最小二乗法などによって再計算し、占有点群の直線との距離の分散値をスコアとする(ステップST14)。
システムバイアス特定部35は、(反復計算回数が一定の回数を越える、または、ステプST14で求めたスコアが一定の閾値を越えた)の条件を満たした場合にはステップST16に戻り、そうでない場合にはステップST13に戻る(ステップST15)。
システムバイアス特定部35は、(ステップST15で求められた直線のスコアが、それ以前に求められた直線のスコアよりも良い)の条件を満たした場合にはステップST17に戻り、そうでない場合にはステップST18に進む(ステップST16)。
システムバイアス特定部35は、ステップST16で判断した直線を保存する(ステップST17)。
システムバイアス特定部35は、(反復計算回数が一定の回数を越える、または、ステップST17に保存されたベストスコアが一定の閾値を越えた)の条件を満たした場合にはステップST19に戻り、そうでない場合にはステップST11に戻る(ステップST18)。
システムバイアス特定部35は、ステップST17で保存した直線を出力結果として出力する(ステップST19)。
その後、システムバイアス特定部35は、上記抽出した地図データMi内から抽出された複数の直線群の分散値を計算し、その分散値のを評価値fitとして用いて、分散値が最小の地図データMiを特定し、その地図データMiに対応したバイアス値bias_iを、位置・姿勢検出部37および動き制御部39に出力する。
変位分散値が最小の直線部分を含む地図データMiのバイアス値bias_iを用いるのは、(環境の多くが直線によって構成されており、最も直線とフィットする地図が最も適切な地図であることが予想されること)によるためである。特に家庭やオフィスなどの整備された環境では環境内には廊下や壁など直線によって構成されており、この仮説が最も効果的に働く。
(Second evaluation process)
The system bias specifying unit 35 extracts a straight line portion in the map data Mi, and determines the appropriateness of the bias value bias_i corresponding to the map data Mi based on the variance value.
For example, the system bias specifying unit 35 extracts a straight line portion from the map data Mi by the procedure shown in FIG.
In this embodiment, the following algorithm using RANSAC that is robust against noise was used as a straight line detection method.
First, the system bias specifying unit 35 randomly selects two occupied points in the map data Mi (step ST11). An occupied point is, for example, a point whose probability of being occupied is a predetermined value or more.
Next, the system bias specifying unit 35 calculates a straight line defined by the selected two occupied points (step ST12).
Next, the system bias specifying unit 35 specifies an occupancy point that is within a predetermined threshold with respect to the straight line calculated in step ST12 (step ST13).
Next, the system bias identification unit 35 uses the occupied points identified in step ST13 to recalculate the straight line that best matches those occupied points by the least square method or the like, and the dispersion of the distance from the straight line of the occupied point group The value is used as a score (step ST14).
The system bias specifying unit 35 returns to step ST16 if the condition (the number of iterations exceeds a certain number or the score obtained in step ST14 exceeds a certain threshold), otherwise returns to step ST16. Return to step ST13 (step ST15).
The system bias specifying unit 35 returns to step ST17 when the condition (the straight line score obtained at step ST15 is better than the straight line score obtained before) is satisfied, and otherwise, The process proceeds to step ST18 (step ST16).
The system bias specifying unit 35 stores the straight line determined in step ST16 (step ST17).
The system bias specifying unit 35 returns to step ST19 when the condition (the number of iterations exceeds a certain number or the best score stored in step ST17 exceeds a certain threshold) is satisfied, and so on. If not, the process returns to step ST11 (step ST18).
The system bias specifying unit 35 outputs the straight line stored in step ST17 as an output result (step ST19).
After that, the system bias specifying unit 35 calculates the variance value of the plurality of straight line groups extracted from the extracted map data Mi, and uses the variance value as the evaluation value fit, so that the map data having the minimum variance value is obtained. Mi is specified, and a bias value bias_i corresponding to the map data Mi is output to the position / posture detection unit 37 and the motion control unit 39.
The bias value bias_i of the map data Mi including the straight line portion having the smallest displacement variance value is used because (most of the environment is constituted by straight lines, and the map that fits the straight line is expected to be the most appropriate map. This is because of This hypothesis works most effectively, especially in homes and offices, where the environment is composed of straight lines such as corridors and walls.

(第3の評価処理)
システムバイアス特定部35は、まず、撮像データIMと、現在の移動体の位置・姿勢・バイアス値及び地図データMiから予測される撮像データとの比較により前記撮像データIMの尤もらしさを表す尤度を計算する。次に、バイアス毎の直前の尤度と、今回計算された尤度を積算していくことで、尤度の時系列的な積算値(積算尤度重み)を計算し、その結果が最も高い地図データMiのバイアス値bias_iを特定する。
また、システムバイアス特定部35は、前記バイアスの選択戦略において、直前のある一定の時間領域、もしくは移動領域(ウィンドウ)の観測を優先する為、尤度の上昇比率を、前記尤度を乗じる前の積算尤度重みと、前記尤度を乗じた後の積算尤度重みにより計算し、当該上昇比率が最も高い地図データMiのバイアス値bias_iを特定する。

[位置・姿勢検出部37]
位置・姿勢検出部37は、センサ群17から入力した動き量の測定値α1,d1,β1と、システムバイアス特定部35から入力したバイアス値bias_i(Δα,Δd,Δβ)とを加算して、実際の動き量(α,d,β)を計算する。ここで、「α=α1+Δα」、「d=d1+Δd」、「β=β1+Δβ」である。
位置・姿勢検出部37は、上記実際の動き量(α,d,β)を基に、各バイアス値biasの位置・姿勢データpose(xi,yi,θi)を生成し、これを地図データ生成部33に出力する。
ここで、xi,yiは、バイアス値bias_iである場合のロボット1のx,y平面上でのx座標およびy座標をそれぞれ示す。また、θiは、バイアス値bias_iである場合のロボット1の向き(CCDカメラ10R,10Lの向き)を示す。
(Third evaluation process)
First, the system bias specifying unit 35 compares the imaging data IM with the imaging data predicted from the current position / attitude / bias value of the moving body and the map data Mi, and the likelihood representing the likelihood of the imaging data IM. Calculate Next, the time-series integrated value (integrated likelihood weight) of the likelihood is calculated by integrating the likelihood immediately before each bias and the likelihood calculated this time, and the result is the highest. The bias value bias_i of the map data Mi is specified.
In addition, in the bias selection strategy, the system bias specifying unit 35 prioritizes observation of a certain fixed time region or moving region (window) immediately before, so that the likelihood increase rate is multiplied by the likelihood. Of the map data Mi having the highest increase ratio is specified by calculating the cumulative likelihood weight of the map data Mi and the cumulative likelihood weight after multiplying the likelihood.

[Position / Attitude Detection Unit 37]
The position / posture detection unit 37 adds the motion amount measurement values α1, d1, β1 input from the sensor group 17 and the bias value bias_i (Δα, Δd, Δβ) input from the system bias specifying unit 35, The actual motion amount (α, d, β) is calculated. Here, “α = α1 + Δα”, “d = d1 + Δd”, and “β = β1 + Δβ”.
The position / posture detection unit 37 generates position / posture data position (xi, yi, θi) of each bias value bias based on the actual motion amount (α, d, β) and generates map data. To the unit 33.
Here, xi and yi indicate the x coordinate and the y coordinate on the x and y plane of the robot 1 when the bias value is bias_i, respectively. Θi represents the direction of the robot 1 (the direction of the CCD cameras 10R and 10L) when the bias value is bias_i.

[動き制御部39]
動き制御部39は、システムバイアス特定部35から入力したバイアス値bias_iに対応した地図データMiをメモリ18から読み出す。
そして、動き制御部39は、例えば、現在地から予め設定された目標地に移動するルートを、メモリ18から読み出した上記地図データMiを基に決定する。
次に、動き制御部39は、センサ群17の検出データを基に障害物などを回避してロボット1が上記決定したルール上を移動するように、アクチュエータ群16を制御する。このとき、動き制御部39は、システムバイアス特定部35から入力したバイアス値bias(Δα,Δd,Δβ)を基に、ロボット1のシステムエラーを解消するようにアクチュエータ群16を制御する。
[Motion control unit 39]
The motion control unit 39 reads the map data Mi corresponding to the bias value bias_i input from the system bias specifying unit 35 from the memory 18.
Then, for example, the motion control unit 39 determines a route to move from the current location to a preset target location based on the map data Mi read from the memory 18.
Next, the motion control unit 39 controls the actuator group 16 so that the robot 1 moves on the determined rule while avoiding an obstacle based on the detection data of the sensor group 17. At this time, the motion control unit 39 controls the actuator group 16 so as to eliminate the system error of the robot 1 based on the bias values bias (Δα, Δd, Δβ) input from the system bias specifying unit 35.

以下、図1にロボット1の動作例を説明する。
[第1の動作例]
以下、図1に示すロボット1において、バイアス値bias_iを特定する動作例を説明する。
図9は、図1に示すロボット1のバイアス値bias_iを特定する動作例を説明するための図である。
以下の動作例では、上述した複数の異なるバイアス値bias_iの各々に対応して仮説データhiを規定する。
仮説データhiは、hi(xi,yi,θi、bias_i,Mi)で示され、上述した位置・姿勢データpose(xi,yi,θi)、バイアス値bias_i、地図データMiで規定される。
Hereinafter, an operation example of the robot 1 will be described with reference to FIG.
[First operation example]
Hereinafter, an operation example for specifying the bias value bias_i in the robot 1 shown in FIG. 1 will be described.
FIG. 9 is a diagram for explaining an operation example for specifying the bias value bias_i of the robot 1 shown in FIG.
In the following operation example, hypothesis data hi is defined corresponding to each of the plurality of different bias values bias_i described above.
The hypothesis data hi is indicated by hi (xi, yi, θi, bias_i, Mi), and is defined by the position / posture data position (xi, yi, θi), the bias value bias_i, and the map data Mi described above.

ステップST31:
CPU19は、初期設定として、全ての複数の仮説データhi(xi,yi,θi、bias_i,Mi)のバイアス値bias_iに「0」を設定する。
Step ST31:
As an initial setting, the CPU 19 sets “0” to the bias value bias_i of all the plurality of hypothesis data hi (xi, yi, θi, bias_i, Mi).

ステップST32:
CPU19は、上記複数の仮説データhi(xi,yi,θi、bias_i,Mi)のバイアス値bias_iに、相互に異なる固有のバイアス値を設定する。
Step ST32:
The CPU 19 sets different unique bias values for the bias values bias_i of the plurality of hypothesis data hi (xi, yi, θi, bias_i, Mi).

ステップST33:
位置・姿勢検出部37は、センサ群17から動き量の測定値(エンコーダ値)α1,d1,β1を入力したか否か(すなわちロボット1に動きがあったか否か)を判断し、入力したと判断した場合に、ステップST34に進み、そうでない場合にステップST35に進む。
Step ST33:
The position / posture detection unit 37 determines whether or not the measured values (encoder values) α1, d1, and β1 of the movement amount are input from the sensor group 17 (that is, whether or not the robot 1 has moved). When it judges, it progresses to step ST34, and when that is not right, it progresses to step ST35.

ステップST34:
位置・姿勢検出部37は、センサ群17から動き量の測定値α1,d1,β1と、バイアス値bias_iとを基に、各仮説データhiの位置・姿勢データpose(xi,yi,θi)を生成し、これを地図データ生成部33に出力する。
Step ST34:
The position / posture detection unit 37 obtains position / posture data position (xi, yi, θi) of each hypothesis data hi from the sensor group 17 based on the measurement values α1, d1, β1 of the motion amount and the bias value bias_i. This is generated and output to the map data generation unit 33.

ステップST35:
地図データ生成部33は、画像前処理部31から撮像データIM(距離データS31および平面検出データS32)を入力したか否かを判断し、入力したと判断するとステップST36に進み、そうでない場合にはステップST39に進む。
Step ST35:
The map data generation unit 33 determines whether or not the imaging data IM (distance data S31 and plane detection data S32) is input from the image preprocessing unit 31, and proceeds to step ST36 if it is determined that it has been input. Advances to step ST39.

ステップST36:
地図データ生成部33は、位置・姿勢データpose(xi,yi,θi)を用いて、入力した撮像データIMを累積して地図データMiの各々を更新する。
Step ST36:
The map data generation unit 33 uses the position / posture data position (xi, yi, θi) to accumulate the input imaging data IM and update each of the map data Mi.

ステップST37:
システムバイアス特定部35は、前述したように、地図データMiの各々について、評価値fitを計算する。
Step ST37:
As described above, the system bias specifying unit 35 calculates the evaluation value fit for each of the map data Mi.

ステップST38:
システムバイアス特定部35は、前述したように、ステップST37で生成した評価値fitを基に、バイアス値bias_i、すなわち仮説データhiを選択(特定)する。
Step ST38:
As described above, the system bias specifying unit 35 selects (specifies) the bias value bias_i, that is, the hypothesis data hi, based on the evaluation value fit generated in step ST37.

ステップST39:
システムバイアス特定部35は、ステップST38で選択したバイアス値bias_iを位置・姿勢検出部37および動き制御部39に出力する。
Step ST39:
The system bias identification unit 35 outputs the bias value bias_i selected in step ST38 to the position / posture detection unit 37 and the motion control unit 39.

[第2の動作例]
以下、動き制御部39によるロボット1の動き制御に関する動作例を説明する。
図10は、図5に示す動き制御部39の処理例を説明するためのフローチャートである。
ステップST51:
動き制御部39は、例えば、入力した距離データS31及び平面検出データS32、センサ群17の検出結果、あるいはメモリ18から読み出した選択されたバイアス値bias_iに対応する地図データMiを基に、ロボット1の移動方向に、ロボット1が移動できない高さの障害物があるか否かを判断し、その障害物があると判断するとステップST12に進み、そうでない場合にはステップST53に進む。
[Second operation example]
Hereinafter, an operation example related to the motion control of the robot 1 by the motion control unit 39 will be described.
FIG. 10 is a flowchart for explaining a processing example of the motion control unit 39 shown in FIG.
Step ST51:
The motion control unit 39, for example, based on the input distance data S31 and plane detection data S32, the detection result of the sensor group 17, or the map data Mi corresponding to the selected bias value bias_i read from the memory 18, In the moving direction, it is determined whether there is an obstacle with a height that the robot 1 cannot move. If it is determined that there is an obstacle, the process proceeds to step ST12. If not, the process proceeds to step ST53.

ステップST52:
動き制御部39は、例えば、入力した距離データS31及び平面検出データS32、センサ群17の検出結果、あるいはメモリ18から読み出した地図データMAPを基に、ロボット1が移動できる新たな方向を探索して、その探索した方向に移動するようにアクチュエータ群16を制御する。
Step ST52:
For example, the motion control unit 39 searches for a new direction in which the robot 1 can move based on the input distance data S31 and plane detection data S32, the detection result of the sensor group 17, or the map data MAP read from the memory 18. Then, the actuator group 16 is controlled to move in the searched direction.

ステップST53:
動き制御部39は、ロボット1の移動方向に端に移動すれば回避できる障害物があるか否かを判断し、障害物があると判断するとステップST54に進み、そうでない場合にはステップST55に進む。
Step ST53:
The motion control unit 39 determines whether there is an obstacle that can be avoided if the robot 1 moves to the end in the moving direction. If it is determined that there is an obstacle, the process proceeds to step ST54. If not, the process proceeds to step ST55. move on.

ステップST54:
動き制御部39は、障害物を回避するように、例えば、道路の端を移動するようにアクチュエータ群16を制御する。
Step ST54:
The motion control unit 39 controls the actuator group 16 so as to move, for example, the end of the road so as to avoid an obstacle.

ステップST55:
動き制御部39は、既に決定されたパスに従って直進移動するようにアクチュエータ群16を制御する。
Step ST55:
The motion control unit 39 controls the actuator group 16 to move straight along a path that has already been determined.

以上説明したように、ロボット1によれば、異なる複数のバイアス値bias_iを仮定した複数の地図データMiを継続して保持し、撮像データIMが入力されると、それを基に上記保持した複数の地図データMiをそれぞれ更新し、その結果を評価することで、最適なバイアス値bias_iを特定する。
そのため、撮像データが入力される度に、異なる複数のバイアス値を仮定した地図データ全体を最初から生成する場合に比べて処理量を大幅に削減できる。これにより、CPU19の処理負荷を軽減でき、処理能力が低い安価なものを用いることができる。また、リアルタイム性を向上できる。
As described above, according to the robot 1, a plurality of map data Mi assuming a plurality of different bias values bias_i are continuously held, and when the imaging data IM is input, the plurality of the held data is based on the map data Mi. Each of the map data Mi is updated and the result is evaluated to identify the optimum bias value bias_i.
Therefore, each time imaging data is input, the processing amount can be greatly reduced as compared with the case where the entire map data assuming a plurality of different bias values is generated from the beginning. Thereby, the processing load of the CPU 19 can be reduced, and an inexpensive one with low processing capability can be used. Moreover, real-time property can be improved.

<第2実施形態>
本実施形態のロボットは、図1に示すシステムバイアス特定部35aの処理の一部を除いて、第1実施形態のロボット1の同じである。
以下、本実施形態のシステムバイアス特定部35aの処理を説明する。
図11は、図1に示すシステムバイアス特定部35aの処理を説明するためのフローチャートである。
図11において、ステップST61〜ST66,ST68〜ST70の処理は、それぞれ図9に示すステップST31〜ST36,ST37〜ST39とそれぞれ同じである。
システムバイアス特定部35aは、図11に示すように、評価処理を行うにあたって十分な量の撮像データIM(例えば、所定数のフレームの撮像データIM)を用いて全ての地図データMiが更新されたという条件を満たしたか否かを判断し、当該条件を満たしたと判断した場合にステップST68の処理に進む。
これにより、バイアス値bias_i選択のための評価処理の信頼性を高めることができる。
Second Embodiment
The robot of this embodiment is the same as the robot 1 of the first embodiment except for a part of the processing of the system bias specifying unit 35a shown in FIG.
Hereinafter, processing of the system bias specifying unit 35a of the present embodiment will be described.
FIG. 11 is a flowchart for explaining the processing of the system bias specifying unit 35a shown in FIG.
In FIG. 11, the processes of steps ST61 to ST66 and ST68 to ST70 are the same as steps ST31 to ST36 and ST37 to ST39 shown in FIG. 9, respectively.
As shown in FIG. 11, the system bias identification unit 35a updates all map data Mi using a sufficient amount of imaging data IM (for example, imaging data IM of a predetermined number of frames) for performing the evaluation process. The process proceeds to step ST68 when it is determined whether the condition is satisfied.
Thereby, the reliability of the evaluation process for selecting the bias value bias_i can be improved.

<第3実施形態>
本実施形態のロボットは、図1に示す地図データ生成部33bおよびシステムバイアス特定部35bの処理の一部を除いて、第1実施形態のロボット1の同じである。
以下、本実施形態の地図データ生成部33bおよびシステムバイアス特定部35bの処理を説明する。
図12は、図1に示す地図データ生成部33bおよびシステムバイアス特定部35bの処理を説明するためのフローチャートである。
図12において、ステップST81〜ST84,ST86〜ST91の処理は、それぞれ図11に示すステップST61〜ST64,ST65〜ST70とそれぞれ同じである。
図12に示すように、位置・姿勢検出部37がセンサ群17から動き量の測定値α1,d1,β1と、バイアス値bias_iとを基に、各仮説データhiの位置・姿勢データpose(xi,yi,θi)を生成した後に(ステップST84)、地図データ生成部33bは、地図データMiにおいてロボット1の位置が中央(センター)になるようにシフト処理を行って地図データMiを更新する(ステップST85)。
このとき、上記シフト処理によって地図データMi内に生じた境界部分は消去する。
本実施形態によれば、上述したように、ロボット1を地図データMi内の中央に位置させることで、バイアス値bias_i選択のための評価処理の精度を高めることができる。
<Third Embodiment>
The robot of the present embodiment is the same as the robot 1 of the first embodiment except for part of the processing of the map data generation unit 33b and the system bias identification unit 35b shown in FIG.
Hereinafter, processing of the map data generation unit 33b and the system bias identification unit 35b of the present embodiment will be described.
FIG. 12 is a flowchart for explaining processing of the map data generation unit 33b and the system bias identification unit 35b shown in FIG.
In FIG. 12, the processes of steps ST81 to ST84 and ST86 to ST91 are the same as steps ST61 to ST64 and ST65 to ST70 shown in FIG. 11, respectively.
As shown in FIG. 12, the position / posture detection unit 37 receives position / posture data position (xi) of each hypothesis data hi from the sensor group 17 on the basis of the measured motion amount values α1, d1, β1 and the bias value bias_i. , Yi, θi) (step ST84), the map data generation unit 33b performs a shift process so that the position of the robot 1 becomes the center (center) in the map data Mi and updates the map data Mi ( Step ST85).
At this time, the boundary portion generated in the map data Mi by the shift process is deleted.
According to the present embodiment, as described above, the accuracy of the evaluation process for selecting the bias value bias_i can be increased by positioning the robot 1 at the center in the map data Mi.

<第4実施形態>
本実施形態のロボットは、図1に示す地図データ生成部33cおよびシステムバイアス特定部35cの処理の一部を除いて、第1実施形態のロボット1と同じである。
以下、本実施形態の地図データ生成部33cおよびシステムバイアス特定部35cの処理を説明する。
図13は、図1に示す地図データ生成部33cおよびシステムバイアス特定部35cの処理を説明するためのフローチャートである。
図13において、ステップST101〜ST105,ST110の処理は、それぞれ図9に示すステップST31〜ST36,ST70とそれぞれ同じである。
図13に示すように、地図データ生成部33cは、画像前処理部31から撮像データIM(距離データS31および平面検出データS32)を入力したと判断した場合に(ステップST105)、次に、地図データMiの更新を行うか否かを判断する(ステップST106)。
ステップST106の判断は、例えば、当該判断を所定回数行う毎に1回、ステップST109に進むなどのルールに基づいて行う。また、ステップST107とST109のどちらに進むかをランダムに決定してもよい。
<Fourth embodiment>
The robot of this embodiment is the same as the robot 1 of the first embodiment except for part of the processing of the map data generation unit 33c and the system bias identification unit 35c shown in FIG.
Hereinafter, processing of the map data generation unit 33c and the system bias identification unit 35c of the present embodiment will be described.
FIG. 13 is a flowchart for explaining processing of the map data generation unit 33c and the system bias identification unit 35c shown in FIG.
In FIG. 13, the processes of steps ST101 to ST105 and ST110 are the same as steps ST31 to ST36 and ST70 shown in FIG. 9, respectively.
As shown in FIG. 13, when the map data generation unit 33c determines that the imaging data IM (distance data S31 and plane detection data S32) is input from the image preprocessing unit 31 (step ST105), the map data It is determined whether or not to update the data Mi (step ST106).
The determination in step ST106 is performed based on a rule such as, for example, once every time the determination is performed a predetermined number of times, the process proceeds to step ST109. Further, it may be determined at random whether to proceed to step ST107 or ST109.

システムバイアス特定部35cは、撮像データIMと、現在の移動体の位置・姿勢・バイアス値及び地図データMiから予測される撮像データとの比較により前記撮像データIMの尤もらしさを表す尤度を計算し、バイアス毎の直前の尤度と、今回計算された尤度を積算していくことで、尤度の時系列的な積算値(積算尤度重み)を計算する(ステップST107)。
次に、システムバイアス特定部35cは、上記計算した積算尤度重みが最も高い地図データMiのバイアス値bias_iを特定(選択)する(ステップST108)。
The system bias identification unit 35c calculates a likelihood representing the likelihood of the imaging data IM by comparing the imaging data IM with the imaging data predicted from the current position / attitude / bias value of the moving body and the map data Mi. Then, by integrating the likelihood immediately before each bias and the likelihood calculated this time, a time-series integrated value (integrated likelihood weight) of the likelihood is calculated (step ST107).
Next, the system bias specifying unit 35c specifies (selects) a bias value bias_i of the map data Mi having the highest calculated likelihood weight (step ST108).

また、システムバイアス特定部35cは、撮像データIMを基に、各地図データMiを更新する(ステップST109)。   Further, the system bias identification unit 35c updates each map data Mi based on the imaging data IM (step ST109).

<第5実施形態>
本実施形態のロボットは、図1に示す地図データ生成部33dおよびシステムバイアス特定部35dの処理の一部を除いて、第1実施形態のロボット1と同じである。
以下、本実施形態の地図データ生成部33dおよびシステムバイアス特定部35dの処理を説明する。
図14は、図1に示す地図データ生成部33dおよびシステムバイアス特定部35dの処理を説明するためのフローチャートである。
図14において、ステップST121〜ST124,ST133の処理は、それぞれ図9に示すステップST31〜ST36,ST70とそれぞれ同じである。
<Fifth Embodiment>
The robot of this embodiment is the same as the robot 1 of the first embodiment except for part of the processing of the map data generation unit 33d and the system bias identification unit 35d shown in FIG.
Hereinafter, processing of the map data generation unit 33d and the system bias identification unit 35d of the present embodiment will be described.
FIG. 14 is a flowchart for explaining processing of the map data generation unit 33d and the system bias identification unit 35d shown in FIG.
In FIG. 14, the processes of steps ST121 to ST124 and ST133 are the same as steps ST31 to ST36 and ST70 shown in FIG. 9, respectively.

図14に示すように、位置・姿勢検出部37がセンサ群17から動き量の測定値α1,d1,β1と、バイアス値bias_iとを基に、各仮説データhiの位置・姿勢データpose(xi,yi,θi)を生成した後に(ステップST124)、地図データ生成部33dは、地図データMiにおいてロボット1の位置が中央(センター)になるようにシフト処理を行って地図データMiを更新する(ステップST125)。   As illustrated in FIG. 14, the position / posture detection unit 37 receives position / posture data position (xi) of each hypothesis data hi based on the motion amount measurement values α1, d1, β1 and the bias value bias_i from the sensor group 17. , Yi, θi) (step ST124), the map data generation unit 33d performs a shift process so that the position of the robot 1 becomes the center (center) in the map data Mi and updates the map data Mi ( Step ST125).

図14に示すように、地図データ生成部33dは、画像前処理部31から撮像データIM(距離データS31および平面検出データS32)を入力したと判断した場合に(ステップST126)、次に、地図データMiの更新を行うか否かを判断する(ステップST127)。
ステップST127の判断は、例えば、当該判断を所定回数行う毎に1回、ステップST132に進むなどのルールに基づいて行う。また、ステップST128とST132のどちらに進むかをランダムに決定してもよい。
As illustrated in FIG. 14, when the map data generation unit 33d determines that the imaging data IM (distance data S31 and plane detection data S32) is input from the image preprocessing unit 31 (step ST126), the map data generation unit 33d then It is determined whether or not to update the data Mi (step ST127).
The determination in step ST127 is performed based on a rule such as, for example, once every time the determination is performed a predetermined number of times, the process proceeds to step ST132. Further, it may be determined at random whether to proceed to step ST128 or ST132.

システムバイアス特定部35dは、撮像データIMと、現在の移動体の位置・姿勢・バイアス値及び地図データMiから予測される撮像データとの比較により前記撮像データIMの尤もらしさを表す尤度を計算し、バイアス毎の直前の尤度と、今回計算された尤度を積算していくことで、尤度の時系列的な積算値(積算尤度重み)を計算し(ステップST128)、これを記憶(保存)する(ステップST129)。
次に、システムバイアス特定部35dは、各仮説について、ステップST128で生成した積算尤度重みwと、前回生成した積算尤度重みwとの比率ratioを計算する(ステップST130)。
次に、システムバイアス特定部35dは、ステップST130で生成した比率ratioを基に、この比率が最も大きいなどの基準で仮説(バイアス値bias_i)を選択する(ステップST131)。
The system bias specifying unit 35d calculates a likelihood representing the likelihood of the imaging data IM by comparing the imaging data IM with the imaging data predicted from the current position / posture / bias value of the moving body and the map data Mi. Then, by integrating the likelihood immediately before each bias and the likelihood calculated this time, a time-series integrated value (integrated likelihood weight) of the likelihood is calculated (step ST128). Store (save) (step ST129).
Next, the system bias specifying unit 35d calculates a ratio ratio between the integrated likelihood weight w generated in step ST128 and the previously generated integrated likelihood weight w for each hypothesis (step ST130).
Next, the system bias identification unit 35d selects a hypothesis (bias value bias_i) based on the ratio such as the largest based on the ratio ratio generated in step ST130 (step ST131).

また、システムバイアス特定部35cは、撮像データIMを基に、各地図データMiを更新する(ステップST132)。   Further, the system bias specifying unit 35c updates each map data Mi based on the imaging data IM (step ST132).

以下、本実施形態の効果および作用をロボット1のバイアスと実際の移動軌跡とを例示して説明する。
図15に示すように、ロボット1が直線の廊下100を移動する場合を考える。
ロボット1の実際のバイアス値がΔβ=−3.5°である場合には、補正処理を行わないと、ロボット1は直線移動制御を行っても、図16に示すような奇跡で移動する。
一方、仮定したバイアス値bias_iがΔβ=−2.84°である場合には、評価処理により、前述したエントロピーが図17(B)に示すように変化し、当該バイアス値bias_iが選択されると、ロボット1の移動軌跡は図17(A)に示すようになる。なお、図17(B)において、横軸は時間、縦軸は(バイアス値[degree])である。
また、仮定したバイアス値bias_iがΔβ=−3.45°である場合には、評価処理(ライン抽出)により、ロボット1の移動軌跡は図18(A)に示すようになる。
また、仮定したバイアス値bias_iがΔβ=−3.23°である場合には、第3の評価処理により、ロボット1の移動軌跡は図19(A)に示すようになる。
また、実際のバイアス値が前半ではΔβ=−3.5°となり、後半ではΔβ=3.5°となった場合に、補正処理を行わないと、ロボット1の移動軌跡は図20に示すようになる。これに対して、補正処理を行うと、ロボット1の移動軌跡は図21に示すようになる。
Hereinafter, the effects and actions of the present embodiment will be described by exemplifying the bias of the robot 1 and the actual movement trajectory.
Consider the case where the robot 1 moves in a straight corridor 100 as shown in FIG.
When the actual bias value of the robot 1 is Δβ = −3.5 °, if the correction process is not performed, the robot 1 moves with a miracle as shown in FIG. 16 even if the linear movement control is performed.
On the other hand, when the assumed bias value bias_i is Δβ = −2.84 °, the above-described entropy changes as shown in FIG. 17B by the evaluation process, and the bias value bias_i is selected. The movement locus of the robot 1 is as shown in FIG. In FIG. 17B, the horizontal axis represents time, and the vertical axis represents (bias value [degree]).
When the assumed bias value bias_i is Δβ = −3.45 °, the movement locus of the robot 1 is as shown in FIG. 18A by the evaluation process (line extraction).
When the assumed bias value bias_i is Δβ = −3.23 °, the movement locus of the robot 1 is as shown in FIG. 19A by the third evaluation process.
Further, when the actual bias value is Δβ = −3.5 ° in the first half and Δβ = 3.5 ° in the second half, if the correction process is not performed, the movement locus of the robot 1 is as shown in FIG. become. On the other hand, when correction processing is performed, the movement locus of the robot 1 is as shown in FIG.

本発明は上述した実施形態には限定されない。
すなわち、当業者は、本発明の技術的範囲またはその均等の範囲内において、上述した実施形態の構成要素に関し、様々な変更、コンビネーション、サブコンビネーション、並びに代替を行ってもよい。
例えば、上述した実施形態では、本発明の通信装置として、2足歩行のロボット1を例示したが、通信装置として、例えば、車輪による移動体、あるいは1足や3足以上のロボットを用いてもよい。また、本発明の通信装置は、ロボット以外でも、通信機能を備えていれば固定式のカメラ装置であってもよい。
The present invention is not limited to the embodiment described above.
That is, those skilled in the art may make various modifications, combinations, subcombinations, and alternatives regarding the components of the above-described embodiments within the technical scope of the present invention or an equivalent scope thereof.
For example, in the above-described embodiment, the biped walking robot 1 is illustrated as the communication device of the present invention. However, for example, a moving body using wheels, or a robot with one or three feet or more may be used as the communication device. Good. Further, the communication device of the present invention may be a fixed camera device other than the robot as long as it has a communication function.

なお、上述した実施形態では、地図生成部33において、3次元グリッドの各々の占有確率を示す地図データMAPを生成する場合を例示したが、ノードnodeとエッジedgeとからなるグラフを構築し、当該グラフを示す地図データを生成してもよい。この場合に、各ノードnodeは、何らかの特徴又はサブマップを示している。また、各エッジedgeは、ノードnode間のパスを示している。
また、地図生成部33は、図23に示すように、SLAM(Simultaneous Localization and Map Building)を基にしたカルマンフィルタを用いて、テレビ、椅子、テーブルなどのランドマークLMを規定した地図データMAPを生成してもよい。
In the above-described embodiment, the map generation unit 33 exemplifies the case of generating the map data MAP indicating the occupation probability of each of the three-dimensional grids. However, the graph including the node node and the edge edge is constructed, Map data indicating a graph may be generated. In this case, each node node represents some feature or submap. Each edge edge indicates a path between node nodes.
Further, as shown in FIG. 23, the map generation unit 33 generates map data MAP that defines landmarks LM such as a television, a chair, and a table using a Kalman filter based on SLAM (Simultaneous Localization and Map Building). May be.

図1は、本発明の実施形態に係わるロボットの機能ブロック図である。FIG. 1 is a functional block diagram of a robot according to an embodiment of the present invention. 図2は、図1に示すロボット検出部の一例を説明するための図である。FIG. 2 is a diagram for explaining an example of the robot detection unit illustrated in FIG. 1. 図3は、本発明の実施形態のロボットの外観図である。FIG. 3 is an external view of the robot according to the embodiment of the present invention. 図4は、本発明の実施形態のロボットの駆動系を説明するための図である。FIG. 4 is a diagram for explaining the drive system of the robot according to the embodiment of the present invention. 図5は、図1に示すCPUの機能ブロック図である。FIG. 5 is a functional block diagram of the CPU shown in FIG. 図6は、本発明の実施形態における動き量およびバイアス値を説明するための図である。FIG. 6 is a diagram for explaining the motion amount and the bias value in the embodiment of the present invention. 図7は、図5に示すシステムバイアス特定部が行う第1の評価処理を説明するための図である。FIG. 7 is a diagram for describing a first evaluation process performed by the system bias identification unit illustrated in FIG. 5. 図8は、図5に示すシステムバイアス特定部が行う第2の評価処理を説明するための図である。FIG. 8 is a diagram for explaining the second evaluation process performed by the system bias identification unit shown in FIG. 図9は、図1に示すロボットのバイアス値bias_iを特定する動作例を説明するためのフローチャートである。FIG. 9 is a flowchart for explaining an operation example for specifying the bias value bias_i of the robot shown in FIG. 図10は、図5に示す動き制御部の処理例を説明するためのフローチャートである。FIG. 10 is a flowchart for explaining a processing example of the motion control unit shown in FIG. 図11は、本発明の第2実施形態のロボットのバイアス値決定処理を説明するためのフローチャートである。FIG. 11 is a flowchart for explaining the bias value determination processing of the robot according to the second embodiment of the present invention. 図12は、本発明の第3実施形態のロボットのバイアス値決定処理を説明するためのフローチャートである。FIG. 12 is a flowchart for explaining the bias value determination process of the robot according to the third embodiment of the present invention. 図13は、本発明の第4実施形態のロボットのバイアス値決定処理を説明するためのフローチャートである。FIG. 13 is a flowchart for explaining the bias value determination process of the robot according to the fourth embodiment of the present invention. 図14は、本発明の第5実施形態のロボットのバイアス値決定処理を説明するためのフローチャートである。FIG. 14 is a flowchart for explaining the bias value determination process of the robot according to the fifth embodiment of the present invention. 図15は、本発明の実施形態の効果および作用をロボットのバイアスと実際の移動軌跡との一例を説明するための図である。FIG. 15 is a diagram for explaining an example of a robot bias and an actual movement trajectory for the effects and operations of the embodiment of the present invention. 図16は、本発明の実施形態の効果および作用をロボットのバイアスと実際の移動軌跡との一例を説明するための図である。FIG. 16 is a diagram for explaining an example of a robot bias and an actual movement trajectory for the effects and operations of the embodiment of the present invention. 図17は、本発明の実施形態の効果および作用をロボットのバイアスと実際の移動軌跡との一例を説明するための図である。FIG. 17 is a diagram for explaining an example of the bias of the robot and the actual movement trajectory for the effects and operations of the embodiment of the present invention. 図18は、本発明の実施形態の効果および作用をロボットのバイアスと実際の移動軌跡との一例を説明するための図である。FIG. 18 is a diagram for explaining an example of the effect of the embodiment of the present invention and the action of the robot bias and the actual movement trajectory. 図19は、本発明の実施形態の効果および作用をロボットのバイアスと実際の移動軌跡との一例を説明するための図である。FIG. 19 is a diagram for explaining an example of a robot bias and an actual movement trajectory for the effects and operations of the embodiment of the present invention. 図20は、本発明の実施形態の効果および作用をロボットのバイアスと実際の移動軌跡との一例を説明するための図である。FIG. 20 is a diagram for explaining an example of a robot bias and an actual movement trajectory for the effects and operations of the embodiment of the present invention. 図21は、本発明の実施形態の効果および作用をロボットのバイアスと実際の移動軌跡との一例を説明するための図である。FIG. 21 is a diagram for explaining an example of the bias of the robot and the actual movement trajectory for the effects and operations of the embodiment of the present invention.

符号の説明Explanation of symbols

10L,10R…CCDカメラ、16…アクチュエータ群、17…センサ群、18…メモリ、19…CPU、31…画像前処理部、33…地図データ生成部、35…システムバイアス特定部、37…位置・姿勢検出部、39…動き制御部   10L, 10R ... CCD camera, 16 ... actuator group, 17 ... sensor group, 18 ... memory, 19 ... CPU, 31 ... image pre-processing unit, 33 ... map data generation unit, 35 ... system bias specifying unit, 37 ... position / Posture detection unit, 39 ... motion control unit

Claims (11)

移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する第1の工程と、
前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記第1の工程で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う第2の工程と、
前記第2の工程で更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定する第3の工程と
を有するデータ処理方法。
For each of a plurality of different bias values defined in advance with respect to the amount of movement of the moving object, first data for generating position data indicating the position of the moving object is generated based on the bias value and the measured value of the amount of movement. And the process of
The update of the plurality of map data associated with each of the plurality of bias values is obtained at the position indicated by the position data generated in the first step for the bias value corresponding to the map data. A second step performed assuming that
A third step of performing a predetermined evaluation process based on the plurality of map data updated in the second step, and specifying an optimum one of the plurality of bias values. Method.
前記第3の工程で特定したバイアス値を基に、前記移動体の駆動系を制御する第4の工程
をさらに有する請求項1に記載のデータ処理方法。
The data processing method according to claim 1, further comprising: a fourth step of controlling a drive system of the moving body based on the bias value specified in the third step.
前記第1の工程は、前記バイアス値と前記動き量の計測値とに基づいて、前記移動体が備えた撮像手段の撮像方向を示す姿勢データをさらに生成し、
前記第2の工程は、前記第1の工程で生成した前記姿勢データが示す撮像方向で前記撮像データが得られたと過程して前記地図データの更新を行う
請求項1に記載のデータ処理方法。
The first step further generates posture data indicating an imaging direction of an imaging unit included in the moving body based on the bias value and the measured value of the amount of movement.
2. The data processing method according to claim 1, wherein in the second step, the map data is updated in the course of obtaining the imaging data in the imaging direction indicated by the posture data generated in the first step.
前記地図データが、前記移動体の移動に障害になる障害物によって占有されている確率を各々が示す3次元的に規定された複数のセルで構成される場合に、
前記第3の工程は、
前記地図データを構成する前記複数のセルに対してエントロピーを計算し、当該エントロピーにより高いピーク領域が形成された地図データに対応した前記バイアス値を特定する
請求項1に記載のデータ処理方法。
When the map data is composed of a plurality of three-dimensionally defined cells each indicating the probability of being occupied by an obstacle that obstructs the movement of the moving object,
The third step includes
The data processing method according to claim 1, wherein entropy is calculated for the plurality of cells constituting the map data, and the bias value corresponding to the map data in which a high peak region is formed by the entropy is specified.
前記地図データが、前記移動体の移動に障害になる障害物によって占有されている確率を各々が示す3次元的に規定された複数のセルで構成される場合に、
前記第3の工程は、
前記地図データを構成する前記セルの前記確率を基に当該地図データ内の直線部分の分散値を検出し、当該検出した分散値を基に前記バイアス値を特定する
請求項1に記載のデータ処理方法。
When the map data is composed of a plurality of three-dimensionally defined cells each indicating the probability of being occupied by an obstacle that obstructs the movement of the moving object,
The third step includes
The data processing according to claim 1, wherein a variance value of a straight line portion in the map data is detected based on the probability of the cells constituting the map data, and the bias value is specified based on the detected variance value. Method.
前記地図データが、前記移動体の移動に障害になる障害物によって占有されている確率を各々が示す3次元的に規定された複数のセルで構成される場合に、
前記第3の工程は、
前記撮像データと、現在の移動体の位置・姿勢・バイアス値及び地図データから予測される撮像データとの比較により前記撮像データの尤もらしさを表す尤度を計算し、バイアス毎の尤度の時系列的な積算値(積算尤度重み)を基に前記バイアス値を特定する
請求項1に記載のデータ処理方法。
When the map data is composed of a plurality of three-dimensionally defined cells each indicating the probability of being occupied by an obstacle that obstructs the movement of the moving object,
The third step includes
The likelihood representing the likelihood of the imaging data is calculated by comparing the imaging data with the imaging data predicted from the current position, posture, bias value and map data of the moving object, and the likelihood for each bias The data processing method according to claim 1, wherein the bias value is specified based on a series of integrated values (integrated likelihood weights).
前記第3の工程は、前記評価処理を行うのに十分な撮像データを用いて前記地図データが前記第2の工程において更新されたと判断したことを条件に、前記評価処理を行う
請求項1に記載のデータ処理方法。
The third process performs the evaluation process on the condition that it is determined that the map data has been updated in the second process using imaging data sufficient to perform the evaluation process. The data processing method described.
前記第1の工程で生成した前記位置データを基に、前記移動体が地図データが示す地図内で中央付近に位置するように前記地図データを変更する第4の工程
をさらに有し、
前記第2の工程は、前記第4の工程で変更した前記地図データを更新する
請求項1に記載のデータ処理方法。
Based on the position data generated in the first step, further includes a fourth step of changing the map data so that the mobile body is located near the center in the map indicated by the map data,
The data processing method according to claim 1, wherein the second step updates the map data changed in the fourth step.
直前のある一定の時間領域、もしくは移動領域(ウィンドウ)の観測を優先する為、尤度の上昇比率を、前記尤度を乗じる前の積算尤度重みと、前記尤度を乗じた後の積算尤度重みにより計算し、当該比率を基に前記バイアス値を特定する
請求項6に記載のデータ処理方法。
In order to give priority to the observation of a certain fixed time region or moving region (window) immediately before, the likelihood increase ratio is integrated with the integrated likelihood weight before multiplying the likelihood and the integrated after multiplying the likelihood. The data processing method according to claim 6, wherein the bias value is calculated based on a likelihood weight and the bias value is specified based on the ratio.
移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する位置生成手段と、
前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記位置生成手段で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う地図更新手段と、
前記地図更新手段が更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定するバイアス値特定手段と
を有するデータ処理装置。
Position generation for generating position data indicating the position of the moving body for each of a plurality of different bias values defined in advance with respect to the moving amount of the moving body, based on the bias value and the measured value of the moving amount Means,
When the imaging data is obtained at the position indicated by the position data generated by the position generation unit for the update of the plurality of map data associated with each of the plurality of bias values for the bias value corresponding to the map data. Assumed map update means,
A bias value specifying means for performing a predetermined evaluation process based on the plurality of map data updated by the map update means and specifying an optimal one of the bias values; .
コンピュータが実行するプログラムであって、
移動体の動き量に対して予め規定された異なる複数のバイアス値の各々について、当該バイアス値と前記動き量の計測値とに基づいて、前記移動体の位置を示す位置データを生成する第1の手順と、
前記複数のバイアス値の各々に対応付けられた複数の地図データの更新を、当該地図データに対応した前記バイアス値について前記第1の手順で生成した前記位置データが示す位置で撮像データが得られたと仮定して行う第2の手順と、
前記第2の手順で更新した前記複数の地図データを基に所定の評価処理を行って、前記複数のバイアス値のうち最適な一つの前記バイアス値を特定する第3の手順と
を前記コンピュータに実行させるプログラム。
A program executed by a computer,
For each of a plurality of different bias values defined in advance with respect to the amount of movement of the moving object, first data for generating position data indicating the position of the moving object is generated based on the bias value and the measured value of the amount of movement. And the steps
Imaging data is obtained at the position indicated by the position data generated in the first procedure with respect to the bias value corresponding to the map data by updating the plurality of map data associated with each of the plurality of bias values. A second procedure performed assuming that
A third procedure for performing a predetermined evaluation process on the basis of the plurality of map data updated in the second procedure and identifying the optimum one of the plurality of bias values; The program to be executed.
JP2006036899A 2006-02-14 2006-02-14 Data processing method, data processor, and program Pending JP2007219645A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006036899A JP2007219645A (en) 2006-02-14 2006-02-14 Data processing method, data processor, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006036899A JP2007219645A (en) 2006-02-14 2006-02-14 Data processing method, data processor, and program

Publications (1)

Publication Number Publication Date
JP2007219645A true JP2007219645A (en) 2007-08-30

Family

ID=38496909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006036899A Pending JP2007219645A (en) 2006-02-14 2006-02-14 Data processing method, data processor, and program

Country Status (1)

Country Link
JP (1) JP2007219645A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011089787A (en) * 2009-10-20 2011-05-06 Mitsubishi Electric Corp Tracking apparatus
JP2011189481A (en) * 2010-03-16 2011-09-29 Sony Corp Control apparatus, control method and program
GB2502208A (en) * 2011-01-17 2013-11-20 Wallgate Ltd Control Apparatus
JP2018501973A (en) * 2014-12-09 2018-01-25 アイオロス ロボティクスAeolus Robotics Robot touch perception
CN109974722A (en) * 2019-04-12 2019-07-05 珠海市一微半导体有限公司 A kind of the map rejuvenation control method and map rejuvenation control system of vision robot

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011089787A (en) * 2009-10-20 2011-05-06 Mitsubishi Electric Corp Tracking apparatus
JP2011189481A (en) * 2010-03-16 2011-09-29 Sony Corp Control apparatus, control method and program
GB2502208A (en) * 2011-01-17 2013-11-20 Wallgate Ltd Control Apparatus
GB2502208B (en) * 2011-01-17 2015-09-09 Wallgate Ltd Control Apparatus
JP2018501973A (en) * 2014-12-09 2018-01-25 アイオロス ロボティクスAeolus Robotics Robot touch perception
US11345039B2 (en) 2014-12-09 2022-05-31 Aeolus Robotics, Inc. Robotic touch perception
US11839984B2 (en) 2014-12-09 2023-12-12 Aeolus Robotics, Inc. Robotic touch perception
CN109974722A (en) * 2019-04-12 2019-07-05 珠海市一微半导体有限公司 A kind of the map rejuvenation control method and map rejuvenation control system of vision robot
CN109974722B (en) * 2019-04-12 2020-09-15 珠海市一微半导体有限公司 Map updating control method and map updating control system of visual robot
US11892301B2 (en) 2019-04-12 2024-02-06 Amicro Semiconductor Co., Ltd. Map update control method and map update control system for vision robot

Similar Documents

Publication Publication Date Title
JP3994950B2 (en) Environment recognition apparatus and method, path planning apparatus and method, and robot apparatus
US7386163B2 (en) Obstacle recognition apparatus and method, obstacle recognition program, and mobile robot apparatus
US7769491B2 (en) Obstacle avoiding apparatus, obstacle avoiding method, obstacle avoiding program, and mobile robot apparatus
JP4479372B2 (en) Environmental map creation method, environmental map creation device, and mobile robot device
US8873831B2 (en) Walking robot and simultaneous localization and mapping method thereof
KR101913332B1 (en) Mobile apparatus and localization method of mobile apparatus
JP4929506B2 (en) Legged mobile robot
WO2004018159A1 (en) Environment identification device, environment identification method, and robot device
JP2007041656A (en) Moving body control method, and moving body
US20130116823A1 (en) Mobile apparatus and walking robot
Chestnutt et al. Biped navigation in rough environments using on-board sensing
JP2009271513A (en) Robot and method of building map therefor
JP2003266345A (en) Path planning device, path planning method, path planning program, and moving robot device
JP4016180B2 (en) Planar extraction method, apparatus thereof, program thereof, recording medium thereof, and imaging apparatus
JP2006205348A (en) Obstacle avoiding device, obstacle avoiding method, obstacle avoiding program, and movable robot device
JP2007219645A (en) Data processing method, data processor, and program
JP4535096B2 (en) Planar extraction method, apparatus thereof, program thereof, recording medium thereof, and imaging apparatus
US9193070B2 (en) Robot, control system for controlling motion of a controlled object, and recording medium for control program for controlling motion of a controlled object
WO2004085121A1 (en) Robot device and method of controlling the same
JP2007041657A (en) Moving body control method, and moving body
JP2005128959A (en) Robot device and its method of learning object
JP2003346150A (en) Floor surface recognition device, floor surface recognition method, and robot device
Hwang et al. A study on robust motion control of humanoid type robot for cooperative working
Sung et al. A study on stable walking control of biped robot on uneven terrain
Martín et al. Visual based localization for a legged robot