JP2023167780A - Robot control system, transport system, and robot control method - Google Patents

Robot control system, transport system, and robot control method Download PDF

Info

Publication number
JP2023167780A
JP2023167780A JP2022079239A JP2022079239A JP2023167780A JP 2023167780 A JP2023167780 A JP 2023167780A JP 2022079239 A JP2022079239 A JP 2022079239A JP 2022079239 A JP2022079239 A JP 2022079239A JP 2023167780 A JP2023167780 A JP 2023167780A
Authority
JP
Japan
Prior art keywords
information
angular velocity
robot
velocity
self
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
JP2022079239A
Other languages
Japanese (ja)
Inventor
定樹 中野
Sadashige Nakano
宣隆 木村
Nobutaka Kimura
久 遠藤
Hisashi Endo
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.)
Hitachi Industrial Products Ltd
Original Assignee
Hitachi Industrial Products Ltd
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 Hitachi Industrial Products Ltd filed Critical Hitachi Industrial Products Ltd
Priority to JP2022079239A priority Critical patent/JP2023167780A/en
Priority to PCT/JP2023/014427 priority patent/WO2023218825A1/en
Publication of JP2023167780A publication Critical patent/JP2023167780A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

To increase the accuracy in estimating a self position of a robot including a first sensor and a second sensor by using information calculated from the second sensor when position information from the first sensor cannot be used.SOLUTION: In a robot control system in which a server including a processor and a memory estimates a position of a robot, the robot includes a first sensor for acquiring first sensing information and a second sensor for acquiring second sensing information, and the server includes: a storage unit in which a first position obtained from the first sensing information, first travel state information including a first attitude, second travel state information including a second speed and a second angular speed of the robot obtained from the second sensing information, and correspondence relation information indicative of a correspondence relation between the first travel state information and the second travel state information are stored in association with the first position; and a calculation unit which calculates an estimated position of the robot on the basis of the first travel state information and the second travel state information.SELECTED DRAWING: Figure 3A

Description

本発明は、ロボットの自己位置を補正する技術に関する。 The present invention relates to a technique for correcting the self-position of a robot.

無人搬送車(AGV:Automatic Guided Vehicle)の自己位置推定方式として、複数の自己位置推定方式を組み合わせて精度向上やロバスト性の向上を行う方式、例えば、画像特徴点を用いたVisual SLAM(SLAM:Simultaneous Localization and Mapping)方式(第1の自己位置推定方式)と、車輪回転情報(エンコーダ情報)を用いたWheel Odometry(以下、オドメトリ)方式(第2の自己位置推定方式)を組み合わせる技術が知られている。 As a self-position estimation method for automatic guided vehicles (AGVs), there are methods that combine multiple self-position estimation methods to improve accuracy and robustness, such as Visual SLAM (SLAM) using image feature points. A technology is known that combines a Simultaneous Localization and Mapping method (first self-position estimation method) and a wheel odometry method (hereinafter referred to as odometry) using wheel rotation information (encoder information) (second self-position estimation method). ing.

特許文献1には、画像処理方式の自己位置推定処理により得られる第1の自己位置と、オドメトリ方式の自己位置推定処理により得られる第2の自己位置との算出精度マップを予め作成しておき、算出精度マップに記された算出精度を用いて、第1の自己位置と第2の自己位置との組み合わせ比率を決定する自己位置推定方式が開示されている。 Patent Document 1 discloses that a calculation accuracy map of a first self-position obtained by an image processing-based self-position estimation process and a second self-position obtained by an odometry-based self-position estimation process is created in advance. , a self-position estimation method is disclosed in which a combination ratio of a first self-position and a second self-position is determined using calculation accuracy written in a calculation accuracy map.

一方、特許文献1の図5によると、所定数以上のランドマークが検出できなかった場合、即ち、第1の自己位置がエラーにより得られなかった場合は、第2の自己位置のみを用いて自己位置の推定を行う方式が開示されている。 On the other hand, according to FIG. 5 of Patent Document 1, when a predetermined number or more of landmarks cannot be detected, that is, when the first self-position cannot be obtained due to an error, only the second self-position is used. A method for estimating self-position is disclosed.

特許文献2、又は、非特許文献1には、画像特徴点を用いたVisual SLAMの基本機能、具体的には、連続的なカメラ画像から画像特徴点群を検出し、本特徴点群を複数フレーム間にわたりトラッキングすることで自己位置を推定しながら、地図を作成する機能が開示されている。さらには、Visual SLAMの基本機能を用いて作成した地図に対して、カメラ画像を照合することにより高精度で自己位置を推定する機能についても開示されている。 Patent Document 2 or Non-Patent Document 1 describes the basic function of Visual SLAM using image feature points, specifically, detecting a group of image feature points from continuous camera images, and A function for creating a map while estimating one's own position by tracking between frames is disclosed. Furthermore, a function for estimating one's own position with high accuracy by comparing camera images with a map created using the basic functions of Visual SLAM is also disclosed.

特開2021―96731号公報JP2021-96731A 特開2017―146952号公報Japanese Patent Application Publication No. 2017-146952

Shinya Sumikura、Mikiya Shibuya、Ken Sakurada 共著、"OpenVSLAM: A Versatile Visual SLAM Framework"、Open Source Software Competition、October 21-25, 2019, NiceShinya Sumikura, Mikiya Shibuya, and Ken Sakurada, "OpenVSLAM: A Versatile Visual SLAM Framework", Open Source Software Competition, October 21-25, 2019, Nice

特許文献1には、第1の自己位置がエラーにより得られない場合は第2の自己位置のみを用いて自己位置推定を行う方式が開示されている。オドメトリ方式の自己位置推定処理により得られる第2の自己位置は、路面(又は床面)の摩擦や凸凹あるいは車輪の損耗などの影響を受けやすく、画像処理方式の自己位置推定処理により得られる第1の自己位置よりも位置推定の精度が低い。 Patent Document 1 discloses a method of estimating the self-position using only the second self-position when the first self-position cannot be obtained due to an error. The second self-position obtained by the odometry-based self-position estimation process is susceptible to the effects of friction and unevenness on the road surface (or floor surface), wear and tear of the wheels, etc. The accuracy of position estimation is lower than the self-position in No. 1.

そのため、第2の自己位置を使用すると、エラーが発生しなかった場合に得られたであろう第1の自己位置に対して誤差が累積していくという課題があった。 Therefore, when the second self-position is used, there is a problem in that errors accumulate with respect to the first self-position that would have been obtained if no error occurred.

そこで本発明は、上記問題点に鑑みてなされたもので、種類の異なる第1のセンサと第2のセンサを有するロボットを制御する際に、第1のセンサから算出した第1の自己位置が利用できない場合に第2のセンサから算出した情報を用いて自己位置を推定する精度を向上させることを目的とする。 The present invention has been made in view of the above-mentioned problems, and when controlling a robot having a first sensor and a second sensor of different types, the first self-position calculated from the first sensor is It is an object of the present invention to improve the accuracy of estimating one's own position using information calculated from a second sensor when the second sensor is unavailable.

本発明は、プロセッサとメモリを有するサーバが移動ロボットの位置を推定するロボット制御システムであって、前記移動ロボットは、前記移動ロボットの走行状態から第1のセンシング情報を取得する第1のセンサ部と、前記第1のセンサ部とは異なるセンサを有して前記移動ロボットの走行状態から第2のセンシング情報を取得する第2のセンサ部と、を有し、前記サーバは、前記第1のセンシング情報から得られる第1の位置と当該第1の位置における第1の姿勢を含む第1の走行状態の情報と、前記第2のセンシング情報から得られる前記移動ロボットの第2の速度及び第2の角速度の情報を含む第2の走行状態の情報と、の対応関係を示す対応関係情報を、前記第1の位置と関連付けて格納する記憶部と、前記第1の走行状態の情報及び前記第2の走行状態の情報に基づいて前記移動ロボットの推定位置を算出可能な演算部と、を有し、前記演算部は、前記第1のセンサ部から取得した第1のセンシング情報に基づいて前記第1の位置と前記第1の姿勢の情報を算出し、前記第1の位置の算出の際にエラーが生じた場合には、前記第2のセンシング情報から取得した第2の走行状態の情報と前記対応関係情報に基づいて前記移動ロボットの推定位置を算出する。 The present invention is a robot control system in which a server having a processor and a memory estimates the position of a mobile robot, wherein the mobile robot has a first sensor unit that acquires first sensing information from the traveling state of the mobile robot. and a second sensor unit that has a sensor different from the first sensor unit and acquires second sensing information from the running state of the mobile robot, and the server has information on a first running state including a first position and a first attitude at the first position obtained from sensing information; and a second speed and a second speed of the mobile robot obtained from the second sensing information. a storage unit that stores correspondence relationship information indicating a correspondence relationship between information on a second running state including information on an angular velocity of the second drive state in association with the first position; a calculation unit capable of calculating an estimated position of the mobile robot based on information on a second running state, the calculation unit configured to calculate an estimated position of the mobile robot based on the first sensing information acquired from the first sensor unit. Information on the first position and the first posture is calculated, and if an error occurs when calculating the first position, information on the second driving state acquired from the second sensing information is calculated. An estimated position of the mobile robot is calculated based on the information and the correspondence information.

したがって、本発明は、第1のセンサ部の第1のセンシング情報から第1の位置がエラーによって得られなかった場合でも、第2のセンサ部の第2のセンシング情報と対応関係情報の速度比及び角速度比を用いて第1の位置と同等の精度で移動ロボットの位置を算出することができる。 Therefore, in the present invention, even if the first position cannot be obtained from the first sensing information of the first sensor unit due to an error, the speed ratio of the second sensing information of the second sensor unit and the correspondence information The position of the mobile robot can be calculated using the angular velocity ratio and the angular velocity ratio with the same accuracy as the first position.

本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。 The details of at least one implementation of the subject matter disclosed herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosed subject matter will be apparent from the following disclosure, drawings, and claims.

本発明の実施例1を示し、ロボットの運動モデルを示す図である。1 is a diagram illustrating a motion model of a robot according to a first embodiment of the present invention; FIG. 本発明の実施例1を示し、ロボットの軌跡と自己位置の関係を示す図である。1 is a diagram illustrating a first embodiment of the present invention and showing a relationship between a robot's trajectory and its own position; FIG. 本発明の実施例1を示し、ロボットの速度と角速度を示す図である。FIG. 1 is a diagram illustrating the speed and angular velocity of a robot according to a first embodiment of the present invention. 本発明の実施例1を示し、ロボット制御システムのハードウェアの一例を示すブロック図である。1 is a block diagram showing an example of hardware of a robot control system according to a first embodiment of the present invention; FIG. 本発明の実施例1を示し、ロボットの斜視図である。1 is a perspective view of a robot, showing Example 1 of the present invention; FIG. 本発明の実施例1を示し、ロボットの側面図である。Embodiment 1 of the present invention is shown and is a side view of a robot. 本発明の実施例1を示し、ロボット制御システムのソフトウェアの一例を示すブロック図である。1 is a block diagram showing an example of software of a robot control system according to a first embodiment of the present invention; FIG. 本発明の実施例1を示し、自己位置補正処理の一例を示すフローチャートである。1 is a flowchart showing an example of self-position correction processing according to a first embodiment of the present invention. 本発明の実施例1を示し、データベース検索処理の一例を示すフローチャートである。1 is a flowchart illustrating a first embodiment of the present invention and illustrating an example of a database search process. 本発明の実施例1を示し、直進の場合の補正情報の一例を示す図である。FIG. 3 is a diagram illustrating the first embodiment of the present invention and illustrating an example of correction information when traveling straight. 本発明の実施例1を示し、右折の場合の補正情報の一例を示す図である。FIG. 3 is a diagram showing an example of correction information in the case of a right turn, showing Example 1 of the present invention. 本発明の実施例1を示し、データベースの補正情報の一例を示すフローチャートである。1 is a flowchart illustrating a first embodiment of the present invention and illustrating an example of correction information in a database. 本発明の実施例1を示し、右折の場合の運動種別毎の補正情報の一例を示す図である。FIG. 3 is a diagram illustrating the first embodiment of the present invention and illustrating an example of correction information for each movement type in the case of a right turn.

以下、図面を参照して本発明の実施形態を説明する。実施例は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。 Embodiments of the present invention will be described below with reference to the drawings. The examples are illustrative for explaining the present invention, and are omitted and simplified as appropriate for clarity of explanation. The present invention can also be implemented in various other forms. Unless specifically limited, each component may be singular or plural. The position, size, shape, range, etc. of each component shown in the drawings may not represent the actual position, size, shape, range, etc. in order to facilitate understanding of the invention. Therefore, the present invention is not necessarily limited to the position, size, shape, range, etc. disclosed in the drawings.

各種情報の例として、「テーブル」、「リスト」、「キュー」等の表現にて説明することがあるが、各種情報はこれら以外のデータ構造で表現されてもよい。例えば、「XXテーブル」、「XXリスト」、「XXキュー」等の各種情報は、「XX情報」としてもよい。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。 Examples of various types of information will be described using expressions such as "table," "list," and "queue," but various information may also be expressed using data structures other than these. For example, various information such as "XX table", "XX list", "XX queue", etc. may be referred to as "XX information". When describing identification information, expressions such as "identification information", "identifier", "name", "ID", and "number" are used, but these expressions can be replaced with each other.

同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添え字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添え字を省略して説明する場合がある。 When there are multiple components having the same or similar functions, the same reference numerals may be given different suffixes for explanation. Furthermore, if there is no need to distinguish between these multiple components, the subscripts may be omitted from the description.

実施例において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えばCPU、GPU)によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であればよく、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。 In the embodiments, processing performed by executing a program may be explained. Here, a computer executes a program using a processor (eg, CPU, GPU), and performs processing determined by the program using storage resources (eg, memory), interface devices (eg, communication port), and the like. Therefore, the main body of processing performed by executing a program may be a processor. Similarly, the subject of processing performed by executing a program may be a controller, device, system, computer, or node having a processor. The main body of the processing performed by executing the program may be an arithmetic unit, and may include a dedicated circuit that performs specific processing. Here, the dedicated circuit is, for example, an FPGA (Field Programmable Gate Array), an ASIC (Application Specific Integrated Circuit), or a CPLD (Complex Programmable Logic Device).

プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施例において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。 A program may be installed on a computer from a program source. The program source may be, for example, a program distribution server or a computer-readable storage medium. When the program source is a program distribution server, the program distribution server includes a processor and a storage resource for storing the program to be distributed, and the processor of the program distribution server may distribute the program to be distributed to other computers. Furthermore, in the embodiments, two or more programs may be implemented as one program, or one program may be implemented as two or more programs.

本発明は、自律的に走行する無人搬送車が、第1のセンサから算出した第1の自己位置(自己位置1)がエラーにより得られなかった場合でも、第2のセンサから算出した走行状態から第1の自己位置と同等の精度で自己位置を復元するものである。 The present invention provides an automatic guided vehicle that runs autonomously, even if the first self-position (self-position 1) calculated from the first sensor cannot be obtained due to an error, the driving state calculated from the second sensor The self-position is restored from the first self-position with the same accuracy as the first self-position.

なお、無人搬送車(AGV:Automatic Guided Vehicle)を本実施例ではロボットと表記する。また、第1のセンサと第2のセンサは種類が異なるセンサで構成され、かつ、第1のセンサから算出する位置精度は、第2のセンサから算出する位置精度よりも高いものとする。 Note that an automatic guided vehicle (AGV) is referred to as a robot in this embodiment. Further, it is assumed that the first sensor and the second sensor are composed of different types of sensors, and the positional accuracy calculated from the first sensor is higher than the positional accuracy calculated from the second sensor.

図1Aを用いて自己位置の復元方式について説明する。図1Aに示す式100は2輪差動駆動型のロボット300の運動モデルである。ロボット300はX-Yの2次元空間を走行し、旋回によって進行方向を変更する。ロボット300は、位置をx、yの座標で示し、向きをθ、速度をν、角速度をωで示す。 The self-position restoration method will be explained using FIG. 1A. Equation 100 shown in FIG. 1A is a motion model of a two-wheel differential drive robot 300. The robot 300 travels in an XY two-dimensional space and changes its traveling direction by turning. The position of the robot 300 is indicated by x and y coordinates, the direction is indicated by θ, the speed is indicated by ν, and the angular velocity is indicated by ω.

上記の式100は、時刻t=1,2,3,4,…の状態におけるロボット300の位置と姿勢(x(t-1),y(t-1),θ(t-1))、速度(ν(t))、角速度(ω(t))を入力とし、次のステップ(時刻)のロボット300の位置と姿勢(x(t),y(t),θ(t))を算出する式、即ち、ロボット300の軌跡を表現する式である。 The above equation 100 represents the position and orientation of the robot 300 (x(t-1), y(t-1), θ(t-1)) at times t=1, 2, 3, 4,... Using the velocity (ν(t)) and angular velocity (ω(t)) as input, calculate the position and orientation (x(t), y(t), θ(t)) of the robot 300 at the next step (time). This is a formula that expresses the trajectory of the robot 300.

なお、本実施例では、式100中のような変数xと下付き添え字tをx(t)と表記する。変数y,θ等と下付き添え字についても同様にy(t)、θ(t)と表記する。また下付き添え字(t)を省略する場合もある。 In this embodiment, the variable x and the subscript t in equation 100 are expressed as x(t). Variables y, θ, etc. and subscripts are similarly written as y(t) and θ(t). Furthermore, the subscript (t) may be omitted.

図1Bは、ロボット300の軌跡と自己位置の関係を示す図である。図中軌跡101は第1のセンサ(後述)から得られる速度1(ν1)、角速度1(ω1)(110)から計算される自己位置1の軌跡である。軌跡102は第2のセンサから得られる速度2(ν2)、角速度2(ω2)(111)から計算される自己位置2の軌跡である。 FIG. 1B is a diagram showing the relationship between the trajectory of the robot 300 and its own position. A trajectory 101 in the figure is a trajectory of a self-position 1 calculated from a velocity 1 (v1) and an angular velocity 1 (ω1) (110) obtained from a first sensor (described later). The trajectory 102 is the trajectory of the self-position 2 calculated from the velocity 2 (v2) and the angular velocity 2 (ω2) (111) obtained from the second sensor.

自己位置1用のセンサは高精度であるが、自己位置1を見失う自己位置ロストと呼ばれるエラーが発生しやすい。一方、自己位置2用のセンサはエラーを発生しないが、自己位置に誤差が生じやすい。 Although the sensor for self-position 1 is highly accurate, an error called self-position lost, in which the sensor loses sight of self-position 1, is likely to occur. On the other hand, the sensor for self-position 2 does not generate an error, but it is likely to cause an error in the self-position.

このように性能や精度の異なる2種類のセンサから得られる速度と角速度は必ずしも一致しないので、両者の軌跡にはズレ103が生じる。ズレ103は、各ステップ(t=1,2,3,4,…)において入力される、速度1(ν1)と速度2(ν2)の差と、角速度1(ω1)と角速度2(ω2)の差に起因する距離が累積したものである。 As described above, since the velocity and angular velocity obtained from two types of sensors having different performance and accuracy do not necessarily match, a deviation 103 occurs in the trajectories of the two. The deviation 103 is the difference between velocity 1 (ν1) and velocity 2 (ν2), and angular velocity 1 (ω1) and angular velocity 2 (ω2), which are input at each step (t=1, 2, 3, 4, ...). It is the cumulative distance caused by the difference between

仮に上記軌跡101、102を完全にマッチさせるには、図1Bの式112に示すように、速度2(ν2)=速度1(ν1)、角速度2(ω2)=角速度1(ω1)となるような、速度比(ν1/ν2)、角速度比(ω1/ω2)を速度2(ν2)、角速度比(ω2)をそれぞれ乗算すればよい。 In order to perfectly match the trajectories 101 and 102, as shown in equation 112 in FIG. Note that the speed ratio (v1/v2) and the angular speed ratio (ω1/ω2) may be multiplied by the speed 2 (v2) and the angular speed ratio (ω2), respectively.

しかし、実際には軌跡101と軌跡102を完全マッチさせることは困難であるため、以下の手法により軌跡の近似を試みる。 However, in reality, it is difficult to perfectly match the trajectory 101 and the trajectory 102, so an attempt is made to approximate the trajectory using the following method.

まず、自己位置1が正常に得られたときの速度比(ν1/ν2)と角速度比(ω1/ω2)を、ロボット300の位置と姿勢、速度2、角速度2(x,y,θ,ν2,ω2)と紐づけてデータベース(以下、DB)の補正情報へ登録しておく。 First, the speed ratio (ν1/ν2) and angular velocity ratio (ω1/ω2) when self-position 1 is normally obtained are expressed as the position and orientation of the robot 300, velocity 2, and angular velocity 2 (x, y, θ, ν2). , ω2) and are registered in the correction information of a database (hereinafter referred to as DB).

そして、自己位置1がエラー等により得られなかった場合に、DBに登録してある速度比、角速度比の中から現在のロボットの状態(x,y,θ,ν2,ω2)に最も近い速度比、角速度比を検索して補正に用いる。具体的には、エラーが発生しなかった場合に得られたであろう速度1と角速度1を以下の式で近似して算出する。 If self-position 1 cannot be obtained due to an error etc., the speed closest to the current robot state (x, y, θ, ν2, ω2) is selected from the speed ratios and angular velocity ratios registered in the DB. The ratio and angular velocity ratio are searched and used for correction. Specifically, the velocity 1 and angular velocity 1 that would have been obtained if no error had occurred are approximated and calculated using the following equations.

速度1(近似)=速度2×DBから検索により得られた速度比
角速度1(近似)=角速度2×DBから検索により得られた角速度比
Velocity 1 (approximation) = Velocity 2 × velocity ratio obtained by searching from DB Angular velocity 1 (approximation) = Angular velocity 2 × angular velocity ratio obtained by searching from DB

上記式から算出された速度1(近似)と角速度1(近似)を上記式100に適用することで、自己位置1(近似)が計算できる。したがって、本手法により、自己位置1がエラーにより得られなかった場合でも、自己位置2における速度及び角速度から自己位置1と同等精度の自己位置(補正自己位置)が復元できる。なお、自己位置2は、ロボット300が自己位置1を取得するタイミングでエラーが発生したときの位置及び向きを示す。 By applying velocity 1 (approximation) and angular velocity 1 (approximation) calculated from the above equation to equation 100 above, self-position 1 (approximation) can be calculated. Therefore, with this method, even if self-position 1 cannot be obtained due to an error, a self-position (corrected self-position) with the same accuracy as self-position 1 can be restored from the velocity and angular velocity at self-position 2. Note that the self-position 2 indicates the position and orientation when an error occurs at the timing when the robot 300 acquires the self-position 1.

本発明の実施例におけるロボット300及びロボット制御システムのハードウェア構成について図3A~図3Cを用いて説明する。図3Aは、ロボット制御システムのハードウェアの一例を示すブロック図である。図3Bは、ロボット300の斜視図で、図3Cは、ロボット300の側面図である。 The hardware configuration of the robot 300 and the robot control system in the embodiment of the present invention will be described using FIGS. 3A to 3C. FIG. 3A is a block diagram illustrating an example of hardware of the robot control system. 3B is a perspective view of the robot 300, and FIG. 3C is a side view of the robot 300.

本発明のロボット制御システムはロボット300とサーバ320で構成される。なお本実施例では、ロボット1台、サーバ1台のシンプルな例で説明するが、複数台のロボット300と複数台のサーバ1による大規模なロボット制御システムへも適用可能である。 The robot control system of the present invention is composed of a robot 300 and a server 320. Although this embodiment will be explained using a simple example of one robot and one server, it is also applicable to a large-scale robot control system using a plurality of robots 300 and a plurality of servers 1.

ロボット300は、物流倉庫で荷物の搬送を目的とする無人搬送車(AGV:Automatic Guided Vehicle)である。ロボット300は、ステレオカメラ301、車輪303(駆動輪)、エンコーダ302、荷物を昇降するためのリフター304、車輪駆動用の車輪モータ306、バッテリ305、PC1(307)、電源308及び荷重を支持する従動輪(図示省略)より構成される。 The robot 300 is an automatic guided vehicle (AGV) whose purpose is to transport cargo in a distribution warehouse. The robot 300 supports a stereo camera 301, wheels 303 (driving wheels), an encoder 302, a lifter 304 for lifting and lowering cargo, a wheel motor 306 for driving wheels, a battery 305, a PC 1 (307), a power source 308, and a load. Consists of a driven wheel (not shown).

PC1(307)は、CPU、メモリ、SSD(Solid State Drive)等のストレージ装置及びWiFi(又は無線通信部)等で構成される周知のコンピュータである。本実施例のロボット300は2個の車輪303で直進、回転を行う差動二輪型ロボットであり、車輪303、エンコーダ302、車輪モータ306を各2セット含んでいる。 The PC 1 (307) is a well-known computer that includes a CPU, a memory, a storage device such as an SSD (Solid State Drive), and WiFi (or a wireless communication unit). The robot 300 of this embodiment is a differential two-wheeled robot that moves straight and rotates using two wheels 303, and includes two sets each of wheels 303, encoders 302, and wheel motors 306.

なお、2つの車輪303は直進方向に対して並列に配置され、2つのエンコーダ302がそれぞれ取り付けられている。バッテリ305は車輪モータ306へ電力を供給し、電源308はPC1(307)に電力を供給する。 Note that the two wheels 303 are arranged in parallel with respect to the straight traveling direction, and two encoders 302 are attached to each. The battery 305 supplies power to the wheel motor 306, and the power supply 308 supplies power to PC1 (307).

サーバ320は、PC2(321)、電源322により構成される。PC2(321)は、CPU,メモリ、SSD、WiFi等で構成される周知のコンピュータである。
ロボット300とサーバ320とは無線LANで接続されており、所定のプロトコル(例えば、TCP)で通信することが可能である。
The server 320 includes a PC 2 (321) and a power supply 322. The PC2 (321) is a well-known computer composed of a CPU, memory, SSD, WiFi, etc.
The robot 300 and the server 320 are connected via wireless LAN and can communicate using a predetermined protocol (eg, TCP).

本実施例のロボット300には自己位置を認識するためのセンサが2種類搭載されている。第1のセンサはステレオカメラ301である。本実施例ではサーバ320がステレオカメラ301の画像から非特許文献1に記載されているVisual SLAMの機能を用いて自己位置(自己位置1)を計算する。Visual SLAM機能については後述する。 The robot 300 of this embodiment is equipped with two types of sensors for recognizing its own position. The first sensor is a stereo camera 301. In this embodiment, the server 320 calculates the self-position (self-position 1) from the image of the stereo camera 301 using the Visual SLAM function described in Non-Patent Document 1. The Visual SLAM function will be described later.

第2のセンサは一対のエンコーダ302である。一対のエンコーダ302からは左右の車輪303の回転角度が得られ、サーバ320はエンコーダ値から速度及び角速度を計算する。自己位置1の計算方法については後述する。 The second sensor is a pair of encoders 302. The rotation angles of the left and right wheels 303 are obtained from the pair of encoders 302, and the server 320 calculates the speed and angular velocity from the encoder values. A method for calculating self-position 1 will be described later.

次に本発明の実施例1におけるロボット300及びロボット制御システムのソフトウェア構成について図4を用いて説明する。図4は、ロボット制御システムのソフトウェアの一例を示すブロック図である。 Next, the software configuration of the robot 300 and the robot control system in the first embodiment of the present invention will be described using FIG. 4. FIG. 4 is a block diagram showing an example of software of the robot control system.

図中ブロック400はロボット300で稼働するソフトウェア構成を示し、ブロック420はサーバ320で稼働するソフトウェア構成である。これらのソフトウェアは図示しないLinux OSの上で稼働する。 In the figure, block 400 shows the software configuration that runs on the robot 300, and block 420 shows the software configuration that runs on the server 320. These software run on a Linux OS (not shown).

まず、自己位置1を算出する手法について説明する。画像取得及び配信部401は、ステレオカメラ301からステレオ画像を取得し、Visual SLAM422へ配信するプログラムである。 First, a method for calculating self-position 1 will be explained. The image acquisition and distribution unit 401 is a program that acquires stereo images from the stereo camera 301 and distributes them to the Visual SLAM 422.

Visual SLAM422は、ステレオ画像から抽出した画像特徴点を用いて自己位置1を算出するプログラムで、自己位置1算出部として機能する。代表的なVisual SLAMプログラムとして前記非特許文献1の「OpenVSLAM: A Versatile Visual SLAM Framework」が挙げられる。 Visual SLAM 422 is a program that calculates self-position 1 using image feature points extracted from stereo images, and functions as a self-position 1 calculation unit. A typical Visual SLAM program is "Open VSLAM: A Versatile Visual SLAM Framework" described in Non-Patent Document 1.

本プログラムは地図作成と自己位置推定を同時実行するモードと、前記モードで作成した地図を読み込んで、地図とカメラ画像を照合することで自己位置推定を実行するモードを有している。本実施例におけるVisual SLAM422は、後者のモードで稼働することを想定している。 This program has a mode in which map creation and self-position estimation are executed simultaneously, and a mode in which self-position estimation is executed by reading the map created in the above mode and comparing the map with the camera image. The Visual SLAM 422 in this embodiment is assumed to operate in the latter mode.

具体的には、Visual SLAM422は、予め作成しておいた地図421を読み込んで、地図421とステレオカメラ301から得られたステレオ画像とを照合して自己位置1の推定を行う。 Specifically, the Visual SLAM 422 reads a map 421 created in advance, compares the map 421 with a stereo image obtained from the stereo camera 301, and estimates the self-position 1.

Visual SLAM422は、プログラム処理の結果として自己位置1とエラー信号を出力する。自己位置1は(x、y、θ)で表される。x、yは地図421上のロボット300の座標を示し、θはロボット300の向きである(図1Aの式100)。 The Visual SLAM 422 outputs self-position 1 and an error signal as a result of program processing. Self-position 1 is represented by (x, y, θ). x, y indicate the coordinates of the robot 300 on the map 421, and θ is the direction of the robot 300 (Equation 100 in FIG. 1A).

エラー信号は、地図421とステレオカメラ画像との照合に失敗した場合にVisual SLAM422から出力される。即ち、Visual SLAM422は、自己位置1が得られなかった場合はエラー信号に「1」を設定し、自己位置1が得られた場合はエラー信号に「0」を設定して出力する。自己位置1とエラー信号は、例えば、1秒間に30回の頻度で、自己位置補正部426へ配信される。 The error signal is output from the Visual SLAM 422 when matching the map 421 and the stereo camera image fails. That is, the Visual SLAM 422 sets the error signal to "1" when the self-position 1 is not obtained, and sets the error signal to "0" when the self-position 1 is obtained and outputs it. The self-position 1 and the error signal are distributed to the self-position correction unit 426 at a frequency of, for example, 30 times per second.

次に、エンコーダ302から速度2、角速度2を算出する手法について説明する。エンコーダ値取得及び配信部402は、車輪303の回転角度を表すエンコーダ値をエンコーダ302から読み取り、速度2及び角速度2算出部423へ配信するプログラムである。 Next, a method of calculating velocity 2 and angular velocity 2 from the encoder 302 will be described. The encoder value acquisition and distribution unit 402 is a program that reads an encoder value representing the rotation angle of the wheel 303 from the encoder 302 and distributes it to the velocity 2 and angular velocity 2 calculation unit 423.

速度2及び角速度2算出部423は、左右それぞれの車輪303のエンコーダ値を、1秒間に100回程度取得して配信する。速度2及び角速度2算出部423では、単位時間あたりのエンコーダ値の増加量又は減少量から各車輪303の単位時間あたりの走行距離を算出する。 The velocity 2 and angular velocity 2 calculation unit 423 acquires and distributes the encoder values of the left and right wheels 303 about 100 times per second. The speed 2 and angular velocity 2 calculation unit 423 calculates the travel distance of each wheel 303 per unit time from the amount of increase or decrease in the encoder value per unit time.

車輪303が1回転(360度)したときの走行距離は、車輪303の直径×円周率で計算できるので、車輪303の回転角度をエンコーダ302の出力から算出することでロボット300の走行距離が計算できる。 The distance traveled when the wheel 303 makes one rotation (360 degrees) can be calculated by multiplying the diameter of the wheel 303 by the circumference, so by calculating the rotation angle of the wheel 303 from the output of the encoder 302, the distance traveled by the robot 300 can be calculated by calculating the rotation angle of the wheel 303 from the output of the encoder 302. Can calculate.

速度2及び角速度2算出部423では、左車輪の走行距離をdl、右車輪の走行距離をdrとした場合のロボット300の速度2(ν2)、角速度2(ω2)を図2の式200から算出して、速度2(ν2)、角速度2(ω2)を自己位置補正部426へ配信する。 The velocity 2 and angular velocity 2 calculation unit 423 calculates the velocity 2 (ν2) and angular velocity 2 (ω2) of the robot 300 from equation 200 in FIG. 2, where the left wheel travel distance is dl and the right wheel travel distance is dr. The calculated velocity 2 (ν2) and angular velocity 2 (ω2) are distributed to the self-position correction unit 426.

自己位置補正部426はVisual SLAM422から配信される自己位置1及びエラー信号と、速度2及び角速度2算出部423から配信される速度2、角速度2を入力とし、データベース(DB)425に格納された補正情報702を用いて、自己位置1がエラーにより得られなかった場合に、補正自己位置(推定位置及び推定姿勢)を出力するプログラムである。本プログラムの詳細については後述する。 The self-position correction unit 426 inputs the self-position 1 and error signal distributed from the Visual SLAM 422, and the velocity 2 and angular velocity 2 distributed from the velocity 2 and angular velocity 2 calculation unit 423, and stores them in the database (DB) 425. This is a program that uses correction information 702 to output a corrected self-position (estimated position and estimated orientation) when self-position 1 cannot be obtained due to an error. Details of this program will be described later.

一方、経路追従プログラム427は、補正自己位置と経路情報を用いて、ロボット300を予め設定された経路に従って走行させるプログラムである。経路追従プログラム427は車輪モータ306の駆動を行うための情報を生成し、モータ駆動情報配信部424とモータ駆動部403を介して、車輪モータ306を駆動する。なお、経路追従プログラム427、モータ駆動情報配信部424、モータ駆動部403は周知又は公知の技術を適用すればよいので、詳細機能についての説明は割愛する。以上がソフトウェアブロックの説明である。 On the other hand, the route following program 427 is a program that causes the robot 300 to travel along a preset route using the corrected self-position and route information. The route following program 427 generates information for driving the wheel motors 306, and drives the wheel motors 306 via the motor drive information distribution section 424 and the motor drive section 403. It should be noted that since the route following program 427, the motor drive information distribution section 424, and the motor drive section 403 may use well-known or well-known techniques, a detailed description of the functions will be omitted. This concludes the explanation of the software blocks.

次に、図5を用いて、自己位置補正部426が行う処理の詳細を説明する。図5は、自己位置補正処理の一例を示すフローチャートである。本処理は、メインループ処理(500)と補正情報登録処理510と自己位置補正処理520の3つの処理からなる。 Next, details of the process performed by the self-position correction unit 426 will be described using FIG. 5. FIG. 5 is a flowchart illustrating an example of self-position correction processing. This process consists of three processes: a main loop process (500), a correction information registration process 510, and a self-position correction process 520.

補正情報登録処理510は、エラー信号が「1」となった場合に速度及び角速度から第1の自己位置(自己位置1)と同等の精度の自己位置(補正自己位置)を復元するための補正情報702(図7C参照)を登録する処理であり、自己位置補正処理520は、登録された補正情報を用いて自己位置を補正する処理である。 Correction information registration processing 510 is a correction for restoring a self-position (corrected self-position) with the same accuracy as the first self-position (self-position 1) from the velocity and angular velocity when the error signal becomes "1". This is a process of registering information 702 (see FIG. 7C), and the self-position correction process 520 is a process of correcting the self-position using the registered correction information.

まず初めに、メインループ処理(開始500から終了508)について説明する。プログラムは開始500より開始され、後続する処理501において、自己位置補正部426は変数「前回自己位置」を(0、0、0)に初期化する。「前回自己位置」は、ロボット300の位置と姿勢(x、y、θ)を表す変数であり、1ステップ前のロボット300の位置と姿勢が格納されている。 First, the main loop processing (from start 500 to end 508) will be explained. The program starts at start 500, and in the subsequent process 501, the self-position correction unit 426 initializes the variable "previous self-position" to (0, 0, 0). “Previous self-position” is a variable representing the position and orientation (x, y, θ) of the robot 300, and stores the position and orientation of the robot 300 one step before.

次の処理502において、自己位置補正部426は、自己位置1とエラー信号を受信するまで待機する。自己位置1とエラー信号は、例えば、Visual SLAM422から1秒間に30回の頻度で送信される。 In the next process 502, the self-position correction unit 426 waits until it receives the self-position 1 and an error signal. The self-position 1 and error signal are transmitted from the Visual SLAM 422 at a frequency of 30 times per second, for example.

自己位置1は、Visual SLAM422から得られたロボット300の位置と姿勢(x、y、θ)である。エラー信号は、「0」の場合はエラーが発生していないことを示し、「1」の場合はエラー発生のため自己位置1には無効な値が設定されていることを示す信号である。 Self-position 1 is the position and orientation (x, y, θ) of the robot 300 obtained from the Visual SLAM 422. When the error signal is "0", it indicates that no error has occurred, and when it is "1", it indicates that an invalid value is set in self-position 1 because an error has occurred.

自己位置補正部426は、自己位置1とエラー信号を受信した後、処理503へ進む。処理503では自己位置補正部426が速度2及び角速度2算出部423から送信される速度2と角速度2を取得する。速度2と角速度2は、前述のとおり、車輪303の回転情報から計算されたロボット300の速度2と角速度2である。 After receiving the self-position 1 and the error signal, the self-position correction unit 426 proceeds to processing 503. In process 503, the self-position correction unit 426 acquires the velocity 2 and angular velocity 2 transmitted from the velocity 2 and angular velocity 2 calculation unit 423. The velocity 2 and the angular velocity 2 are the velocity 2 and the angular velocity 2 of the robot 300 calculated from the rotation information of the wheels 303, as described above.

処理504ではエラー信号が「0」(エラーが発生せずに自己位置1が得られた)、かつ、DB登録フラグ(後述)が「1」(データベース425の補正情報702へ登録を行う)の条件を判定し、判定結果がYesの場合、補正情報登録処理510が実行される。 In process 504, the error signal is "0" (self-position 1 was obtained without an error occurring), and the DB registration flag (described later) is "1" (registration is performed in the correction information 702 of the database 425). The conditions are determined, and if the determination result is Yes, correction information registration processing 510 is executed.

DB登録フラグは、プログラム起動引数でユーザが「0」又は「1」を指定することを想定しているが、プログラム実行中に、所定の条件に従って「0」又は「1」へ設定してもよい。補正情報登録処理510の詳細については後述する。 The DB registration flag is assumed to be specified by the user as "0" or "1" in the program startup argument, but it is not possible to set it to "0" or "1" according to predetermined conditions during program execution. good. Details of the correction information registration process 510 will be described later.

処理504の判定結果がNoの場合、処理505において、自己位置補正処理520を実行するか否かの判定が行われる。具体的には、エラー信号が「1」(エラーが発生し自己位置1が得られなかった)の場合、自己位置補正処理520が実行される。自己位置補正処理520の詳細については後述する。 If the determination result in process 504 is No, in process 505 it is determined whether or not self-position correction process 520 is to be executed. Specifically, when the error signal is "1" (an error occurred and self-position 1 was not obtained), self-position correction processing 520 is executed. Details of the self-position correction process 520 will be described later.

次の処理506では、自己位置1を次のステップにおいて前回自己位置として用いるために、自己位置補正部426は前回自己位置を更新する。また、自己位置補正部426は自己位置1を補正自己位置として出力する。補正自己位置は、自己位置補正処理520で補正後のロボット300の位置と姿勢(x、y、θ)であり、エラー信号=「0」の場合は、補正を行わない自己位置1となる。 In the next process 506, the self-position correction unit 426 updates the previous self-position in order to use self-position 1 as the previous self-position in the next step. Furthermore, the self-position correction unit 426 outputs self-position 1 as a corrected self-position. The corrected self-position is the position and orientation (x, y, θ) of the robot 300 after being corrected in the self-position correction process 520, and if the error signal = "0", it becomes self-position 1 without correction.

次の処理507では、プログラム終了判定が実行され、Yesの場合は終了508へ進み、プログラムは終了する。Noの場合は、処理502に戻り、プログラムは続行される。プログラム終了判定は、自己位置補正部426が予め設定された終了条件を満たしたか否かを判定する。 In the next process 507, a program termination determination is executed, and if YES, the process advances to termination 508 and the program is terminated. If No, the process returns to step 502 and the program continues. In the program termination determination, the self-position correction unit 426 determines whether or not a preset termination condition is satisfied.

本実施例では処理502から処理507までの一連の処理を1ステップと表記する。1ステップは、例えば、自己位置1の受信周期である30分の1秒周期で実行される。以上がメインループの処理である。 In this embodiment, a series of processes from process 502 to process 507 is expressed as one step. One step is executed, for example, at a cycle of 1/30 second, which is the reception cycle of self-position 1. The above is the main loop processing.

次に補正情報登録処理510について説明する。処理504においてエラーが発生せずに正しく自己位置1が得られ、かつDB登録フラグに「1」(有効)がセットされている場合、本処理が実行される。 Next, the correction information registration process 510 will be explained. If the self-position 1 is correctly obtained without an error occurring in process 504, and the DB registration flag is set to "1" (valid), this process is executed.

処理511では、自己位置補正部426が次の式201を用いて、前回自己位置と自己位置1から速度1(ν1)、角速度1(ω1)を各時刻tにおいて計算する。 In process 511, the self-position correction unit 426 uses the following equation 201 to calculate velocity 1 (v1) and angular velocity 1 (ω1) from the previous self-position and self-position 1 at each time t.

Figure 2023167780000002
Figure 2023167780000002

具体的には、前回自己位置=(x(t-1)、y(t-1)、θ(t-1))とし、自己位置1=(x(t)、y(t)、θ(t))とし、Δt=30分の1秒を上記式201へ代入して、速度1(ν1)、角速度1(ν1)を計算する。 Specifically, the previous self-position = (x (t-1), y (t-1), θ (t-1)), and the self-position 1 = (x (t), y (t), θ ( t)) and substitute Δt=1/30 second into the above equation 201 to calculate velocity 1 (ν1) and angular velocity 1 (ν1).

次の処理512では、自己位置補正部426が速度1と速度2から速度比を、角速度1と角速度2から角速度比を計算する。さらに、次の処理513では、自己位置補正部426が速度比と角速度比を、前回自己位置(x(t-1)、y(t-1)、θ(t-1))、速度2(ν2)、角速度2(ω2)へ紐づけてDB425の補正情報702に登録する。以上が補正情報登録処理510である。 In the next process 512, the self-position correction unit 426 calculates a speed ratio from speed 1 and speed 2, and an angular speed ratio from angular speed 1 and angular speed 2. Furthermore, in the next process 513, the self-position correction unit 426 converts the speed ratio and angular velocity ratio into the previous self-position (x(t-1), y(t-1), θ(t-1)), velocity 2( ν2) and angular velocity 2 (ω2) and are registered in the correction information 702 of the DB 425. The above is the correction information registration process 510.

次に、自己位置補正処理520について説明する。自己位置補正処理520は、処理505において、エラーが発生して自己位置1が得られなかった場合に本処理が実行される。 Next, self-position correction processing 520 will be explained. The self-position correction process 520 is executed when an error occurs and the self-position 1 cannot be obtained in the process 505.

処理521では、自己位置補正部426が前回自己位置(x、y、θ)、速度2(ν2)、角速度2(ω2)を検索キーとして、最もマッチする速度比、角速度比をDB425の補正情報702から検索する。本処理の詳細については後述する。 In process 521, the self-position correction unit 426 uses the previous self-position (x, y, θ), velocity 2 (ν2), and angular velocity 2 (ω2) as search keys, and uses the most matching velocity ratio and angular velocity ratio as correction information in the DB 425. Search from 702. Details of this process will be described later.

検索結果として速度比、角速度比が得られた場合、処理522の判定においてYes側に分岐する。速度比及び角速度比が得られなかった場合は、No側に分岐し、処理532において、速度比=1.0と角速度比=1.0がセットされる。次の処理524では、エラーが発生しなかった場合に、得られたであろう速度1の推定値と角速度1の推定値を次式202を用いて計算する。 If a speed ratio and an angular velocity ratio are obtained as a search result, the process branches to the Yes side in the determination of process 522. If the speed ratio and angular speed ratio are not obtained, the process branches to the No side, and in step 532, speed ratio=1.0 and angular speed ratio=1.0 are set. In the next process 524, the estimated value of velocity 1 and the estimated value of angular velocity 1 that would have been obtained if no error had occurred are calculated using the following equation 202.

速度1=速度2×速度比
角速度1=角速度2×角速度比 ・・・(202)
Velocity 1 = Velocity 2 x Velocity ratio Angular velocity 1 = Angular velocity 2 x Angular velocity ratio ... (202)

次の処理525では、自己位置補正部426が前回自己位置、速度1の推定値、角速度1の推定値から自己位置1(推定位置及び推定姿勢)を図1の式100を用いて計算する。具体的には、(x(t-1)、y(t-1)、θ(t-1))=前回自己位置、ν(t)=速度1(ν1)、ω(t)=角速度1(ω1)、Δt=30分の1秒として自己位置1(x(t)、y(t)、θ(t))を計算する。 In the next process 525, the self-position correction unit 426 calculates the self-position 1 (estimated position and estimated attitude) from the previous self-position, the estimated value of velocity 1, and the estimated value of angular velocity 1 using equation 100 in FIG. Specifically, (x(t-1), y(t-1), θ(t-1)) = previous self-position, ν(t) = velocity 1 (ν1), ω(t) = angular velocity 1 Self-position 1 (x(t), y(t), θ(t)) is calculated by setting (ω1) and Δt=1/30th of a second.

処理525が終了すると処理506に進む。以上が自己位置補正処理520である。 When the process 525 ends, the process advances to a process 506. The above is the self-position correction processing 520.

なお、エラーが継続して発生する場合、自己位置補正部426は自己位置1(推定位置及び推定姿勢)と、推定位置における速度2(ν2)と、推定姿勢における角速度2(ω2)で補正情報702を検索して上述したように検索結果から速度比及び角速度比を取得する。 Note that if the error continues to occur, the self-position correction unit 426 generates correction information using self-position 1 (estimated position and estimated orientation), velocity 2 (ν2) at the estimated position, and angular velocity 2 (ω2) at the estimated orientation. 702 and obtain the velocity ratio and angular velocity ratio from the search results as described above.

そして、自己位置補正部426は取得した速度比及び角速度比と推定位置における速度2(ν2)と推定姿勢における角速度(ω2)とから推定位置における速度1(ν1)の推定値と推定姿勢における角速度1(ω1の推定値とを算出し、算出された推定位置における速度1(ν1)の推定値及び推定姿勢における角速度1(ω1)の推定値に基づいて、自己位置1を算出する。 Then, the self-position correction unit 426 calculates the estimated value of velocity 1 (ν1) at the estimated position and the angular velocity at the estimated attitude from the acquired speed ratio and angular velocity ratio, velocity 2 (ν2) at the estimated position, and angular velocity (ω2) at the estimated attitude. 1 (estimated value of ω1), and self-position 1 is calculated based on the estimated value of velocity 1 (v1) at the calculated estimated position and the estimated value of angular velocity 1 (ω1) at the estimated posture.

次に図5の処理521のDB検索処理の詳細について図6を用いて説明する。本処理は例えば、関数として実装されており、図中の引数600は当該関数の引数である。 Next, details of the DB search process of process 521 in FIG. 5 will be explained using FIG. 6. This process is implemented, for example, as a function, and the argument 600 in the figure is the argument of the function.

引数の検索キーix、iy、iθにはロボット300の位置と姿勢(x、y、θ)を設定し、iν2、iω2には速度2(ν2)と角速度2(ω2)を設定し、検索範囲s1、s2、s3、s4、s5には、ix、iy、iθ、iν2、iω2の検索範囲を設定し、modeには、マッチ度の最も高い速度と角速度を返す場合はmode=0を設定し、マッチした速度、角速度の平均を返す場合はmodo=1を引数に設定して本関数を実行する。 Set the position and orientation (x, y, θ) of the robot 300 in the argument search keys ix, iy, iθ, set the velocity 2 (ν2) and angular velocity 2 (ω2) in iν2, iω2, and set the search range. For s1, s2, s3, s4, and s5, set the search range of ix, iy, iθ, iν2, and iω2, and for mode, set mode = 0 to return the velocity and angular velocity with the highest matching degree. , to return the average of the matched velocity and angular velocity, set modo=1 as an argument and execute this function.

処理601では、自己位置補正部426がDB425の補正情報702に格納されている速度比、角速度比の中から、ロボット300の現在位置(x、y)付近の速度比と角速度比を次の条件式203で検索する。 In process 601, the self-position correction unit 426 calculates the speed ratio and angular speed ratio near the current position (x, y) of the robot 300 from among the speed ratio and angular speed ratio stored in the correction information 702 of the DB 425 under the following conditions. Search using formula 203.

(ix-s1<x<ix+s1) and (iy-s2<y<iy+s2)
・・(203)
(ix-s1<x<ix+s1) and (iy-s2<y<iy+s2)
...(203)

なお、s1、s2は検索キーとなる位置ix、iyの近傍(所定の範囲)のデータを検索するための定数で、予め設定される。
自己位置補正部426は、速度比と角速度比が1件でも見つかった場合は、処理602においてYes側に分岐し、見つからなかった場合はNo側に分岐する。
Note that s1 and s2 are constants for searching for data in the vicinity (predetermined range) of positions ix and iy, which are search keys, and are set in advance.
If the self-position correcting unit 426 finds even one speed ratio and angular velocity ratio, it branches to the Yes side in process 602, and if it is not found, it branches to the No side.

処理603では、自己位置補正部426が上記検索でヒットした補正情報702の中から、向き、速度比、角速度比について以下の条件式204を満足するレコードをさらに絞り込んで検索する。 In process 603, the self-position correction unit 426 further narrows down and searches for records that satisfy the following conditional expression 204 regarding direction, speed ratio, and angular speed ratio from among the correction information 702 hit in the above search.

(iθ-s3 < θ < iθ+s3) and
(iν2-s4 < ν2 < iν2+s4) and
(iω2-s5 < ω2 < iω2+s5) ………(204)
(iθ−s3 < θ < iθ+s3) and
(iν2-s4 < ν2 < iν2+s4) and
(iω2-s5 < ω2 < iω2+s5) ......(204)

なお、s3、s4、s5は第2の検索キーとなる向きθ、速度2ν2、角速度2ω2の近傍(所定の範囲)のデータを検索するための定数で、予め設定される。 Note that s3, s4, and s5 are constants for searching for data in the vicinity (predetermined range) of the direction θ, velocity 2ν2, and angular velocity 2ω2, which are the second search keys, and are set in advance.

多数の検索キーを用いたDB検索は検索速度が遅くなるため、本実施例では、DB425の補正情報702を荒く検索した結果に対し、プログラム(自己位置補正部426)で絞り込み検索を行っている。絞り込み検索の結果、速度比と角速度比が1件でも見つかった場合は、処理604においてYes側に分岐し、見つからなかった場合はNo側に分岐する。 Since a DB search using a large number of search keys slows down the search speed, in this embodiment, the program (self-position correction unit 426) narrows down the search results based on the results of a rough search of the correction information 702 in the DB 425. . If at least one speed ratio and angular velocity ratio is found as a result of the narrowing search, the process branches to the Yes side in step 604, and if none is found, the process branches to the No side.

処理605では、自己位置補正部426が検索モード(mode)により分岐する。modo=0の場合は、処理608においてマッチ度の最も高い速度比と角速度比を返す。 In process 605, the self-position correction unit 426 branches depending on the search mode. If modo=0, the speed ratio and angular velocity ratio with the highest degree of matching are returned in process 608.

具体的には、自己位置補正部426が絞り込み検索により得られた結果のうち、各変数間のユークリッド距離が最小となる速度比と角速度比を選択して返す。 Specifically, the self-position correction unit 426 selects and returns the speed ratio and angular velocity ratio that minimize the Euclidean distance between each variable from among the results obtained by the narrowed search.

modo=1の場合は、処理607において、自己位置補正部426が絞り込み検索により得られた結果から、速度比、角速度比の平均を算出して返す。処理602、604にてNo側に分岐した場合は、自己位置補正部426が「検索失敗」を返す。以上が、処理521のDB検索処理の詳細である。 If modo=1, in step 607, the self-position correction unit 426 calculates and returns the average of the velocity ratio and angular velocity ratio from the results obtained by the narrowed search. If the process branches to the No side in steps 602 and 604, the self-position correction unit 426 returns “search failure”. The details of the DB search process in process 521 have been described above.

次にロボットの動作と自己位置補正部426の例について図7A、図7Bを用いて説明する。図7Aは、ロボット300が直進する場合の補正情報の一例を示す図で、図7Bは、ロボット300が右折する場合の補正情報の一例を示す図である。 Next, an example of the operation of the robot and the self-position correction unit 426 will be described using FIGS. 7A and 7B. FIG. 7A is a diagram showing an example of correction information when the robot 300 moves straight, and FIG. 7B is a diagram showing an example of correction information when the robot 300 turns right.

図7Aにおいて、軌跡700はロボットが矢印の向きに直進した例を示し、図7Bにおいて、軌跡701はロボット300が右折する例を示している。 In FIG. 7A, a trajectory 700 shows an example in which the robot moves straight in the direction of the arrow, and in FIG. 7B, a trajectory 701 shows an example in which the robot 300 turns right.

補正情報702の登録の際には、ロボット300を図中軌跡700、701に沿って図中矢印方向へ走行させながら、補正情報(前回自己位置、速度2、角速度2、速度比、角速度比)702をDB425へ登録する。 When registering the correction information 702, the correction information (previous self position, velocity 2, angular velocity 2, velocity ratio, angular velocity ratio) is registered while the robot 300 is traveling in the direction of the arrow in the figure along the trajectories 700 and 701 in the figure. 702 to the DB425.

補正情報702は走行中にロボット300から取得した位置情報(図7AのP100からP120、図7BのP200からP260)と各位置における走行状態を登録した情報である。 The correction information 702 is information in which the position information (P100 to P120 in FIG. 7A, P200 to P260 in FIG. 7B) acquired from the robot 300 during running and the running state at each position are registered.

図7Cは補正情報702の一例を示す図である。補正情報702は、凡例7021、位置7022、向き7023、速度7024、速度比7025、角速度比7026及び備考7027をひとつのレコードに含む。 FIG. 7C is a diagram showing an example of correction information 702. The correction information 702 includes a legend 7021, a position 7022, a direction 7023, a speed 7024, a speed ratio 7025, an angular speed ratio 7026, and a note 7027 in one record.

凡例7021は、サーバ320が設定した識別子を格納する。位置7022は。ロボット300の位置(x、y)を格納し、向き7023はロボット300の向きθを格納する。 The legend 7021 stores an identifier set by the server 320. Position 7022 is. The position (x, y) of the robot 300 is stored, and the orientation 7023 stores the orientation θ of the robot 300.

速度7024は、エンコーダ302から得られた速度2(ν2)と角速度2(ω2)からなる検索キーを格納する。速度比7025は上記式200で算出された速度2を格納する。角速度比7026は上記式200で算出された角速度ω2を格納する。備考7027は、サーバ320が指定した事項を格納する。 The velocity 7024 stores a search key consisting of velocity 2 (v2) and angular velocity 2 (ω2) obtained from the encoder 302. The speed ratio 7025 stores the speed 2 calculated by the above equation 200. The angular velocity ratio 7026 stores the angular velocity ω2 calculated by the above equation 200. Notes 7027 stores items specified by the server 320.

補正情報702は、ロボット300の位置7022、向き7023、エンコーダ302から得られた速度2(ν2)、角速度2(ω2)からなる検索キーに対して、速度比7025及び角速度比7026を紐づけて格納する。 The correction information 702 is obtained by linking a speed ratio 7025 and an angular velocity ratio 7026 to a search key consisting of a position 7022, an orientation 7023, a velocity 2 (ν2), and an angular velocity 2 (ω2) obtained from the encoder 302 of the robot 300. Store.

図示の例では説明の都合上、補正情報702の項目のうち少数しか登録されていないが、実際には、ロボット300を所定の経路に沿って走行させながら秒間30回、ロボットの走行距離に換算して約2、3cm毎に、補正情報702が登録されている。 In the illustrated example, for convenience of explanation, only a small number of the items of the correction information 702 are registered, but in reality, the robot 300 is run 30 times per second while traveling along a predetermined route, which is converted into the robot's travel distance. Correction information 702 is registered approximately every 2 to 3 cm.

図7A、図7Bに示す補正情報(P110、P220、P230、P240)は、ほぼ同じ場所の補正情報であるが、ロボット300の向きや、速度2(ν2)、角速度2(ω2)が異なり、それぞれの状態に応じて補正情報(速度比、角速度比)が登録されている。おおまかには、図中P110は直進時の補正情報を示し、図中P210は減速時の補正情報を示し、図中P220は右回転時の補正情報、図中P240は減速しながら右回転したときの補正情報である。 The correction information (P110, P220, P230, P240) shown in FIGS. 7A and 7B is correction information for almost the same location, but the orientation of the robot 300, velocity 2 (ν2), and angular velocity 2 (ω2) are different. Correction information (velocity ratio, angular velocity ratio) is registered according to each state. Roughly speaking, P110 in the figure shows correction information when going straight, P210 in the figure shows correction information when decelerating, P220 in the figure shows correction information when turning clockwise, and P240 in the figure shows correction information when turning clockwise while decelerating. This is correction information.

物流倉庫でのロボット300は予め定められた経路上を走行すると考えられる。したがって定められた経路上を走行させながら補正情報702を収集してDB425へ登録することで、エラー発生時のロボット300近傍の補正情報702が確実に得られる。 The robot 300 in the distribution warehouse is considered to travel on a predetermined route. Therefore, by collecting the correction information 702 while traveling on a predetermined route and registering it in the DB 425, the correction information 702 near the robot 300 at the time of error occurrence can be reliably obtained.

図8は右折等の場合の運動種別毎の補正情報の一例を示す図である。直進や右折等では、ロボット300の運動種別に応じた補正情報702が必要と考えられる。 FIG. 8 is a diagram illustrating an example of correction information for each movement type in the case of a right turn, etc. In cases such as going straight or turning right, correction information 702 corresponding to the type of movement of the robot 300 is considered necessary.

図中軌跡800Lと800Rはロボット300の直進時の左右の車輪303の軌跡である。軌跡801Lと801Rはロボット300の右折時の左右の車輪303の軌跡である。 Trajectories 800L and 800R in the figure are the trajectories of the left and right wheels 303 when the robot 300 moves straight. Trajectories 801L and 801R are the trajectories of the left and right wheels 303 when the robot 300 turns right.

エリア803は、路面の摩擦係数が小さく車輪303が滑りやすい箇所である。図示の例では、ロボットは300、直進時はエリア803の上を通過しないが、右折時は通過する。 Area 803 is a location where the road surface has a small coefficient of friction and wheels 303 tend to slip. In the illustrated example, the robot 300 does not pass over area 803 when going straight, but does pass when turning right.

右折時は、車輪303がスリップしやすくなるため、角速度比(ν1/ν2)が1より幾分小さくなると考えられる。一方、直進時は1に限りなく近い角速度比が得られると考えられる。したがって、ポイント802において、ロボット300の運動種別(直進、右折等)に応じた補正情報702を登録しておくことで、同じ場所であっても、直進や右折といった運動種別や路面の状態に応じて、より高い精度で自己位置を補正できると考えられる。 When turning right, the wheels 303 tend to slip, so it is thought that the angular velocity ratio (v1/v2) becomes somewhat smaller than 1. On the other hand, when traveling straight, an angular velocity ratio that is extremely close to 1 is considered to be obtained. Therefore, by registering correction information 702 at point 802 that corresponds to the movement type of the robot 300 (go straight, turn right, etc.), even if the robot 300 is at the same location, it can Therefore, it is thought that self-position can be corrected with higher accuracy.

以上のことから、本発明による実施例1において、第1の自己位置がエラーにより得られなかった場合でも、補正情報702を用いて第2の自己位置を補正することで第1の自己位置を算出することができる。その際、同じ場所であっても、ロボット300の位置と姿勢や運動種別(方向、直進、回転)に応じて高い精度で自己位置を算出することができる。 From the above, in the first embodiment of the present invention, even if the first self-position cannot be obtained due to an error, the first self-position can be obtained by correcting the second self-position using the correction information 702. It can be calculated. At this time, even at the same location, the self-position can be calculated with high accuracy according to the position and posture of the robot 300 and the type of movement (direction, straight movement, rotation).

なお、上記実施例1では、第1のセンサとしてステレオカメラ301を採用し、第2のセンサとしてオドメトリを採用する例を示したがこれに限定されるものではなく、ロボット300の位置を高精度で検出可能であればよい。例えば、第1のセンサとしてLiDAR(Light Detection And Ranging)を採用し、ロボット300を稼働させる場所が衛星と通信可能な場所であればGNSS(Global Navigation Satellite System)を第2のセンサとしてもよい。 In the first embodiment, the stereo camera 301 is used as the first sensor, and odometry is used as the second sensor. However, the present invention is not limited to this. It is sufficient if it can be detected. For example, LiDAR (Light Detection And Ranging) may be used as the first sensor, and GNSS (Global Navigation Satellite System) may be used as the second sensor if the place where the robot 300 is operated is a place where communication with a satellite is possible.

また、上記実施例1では、サーバ320で自己位置1の算出と、自己位置補正を実施して、補正後の自己位置1で車輪モータ306を駆動する例を示したが、これに限定されるものではない図示はしないが、地図421、Visual SLAM422、速度2及び角速度2算出部423、データベース425(補正情報702)、自己位置補正部426、経路追従プログラム427、モータ駆動情報配信部424をロボット300で稼働させて自己位置の補正を行うようにしてもよい。 Further, in the first embodiment, an example was shown in which the server 320 calculates the self-position 1 and corrects the self-position, and drives the wheel motor 306 at the corrected self-position 1. However, the present invention is not limited to this. Although not shown in the figure, the map 421, Visual SLAM 422, velocity 2 and angular velocity 2 calculation section 423, database 425 (correction information 702), self-position correction section 426, route following program 427, and motor drive information distribution section 424 are provided by the robot. 300 to correct the self-position.

また、上記実施例1は、ロボット300が荷物や商品等の物体を搬送する搬送システムに適用することができる。 Furthermore, the first embodiment can be applied to a conveyance system in which the robot 300 conveys objects such as luggage and products.

実施例2は、前記実施例1との差分について記す。 Example 2 describes differences from Example 1.

(1)DB425へ登録する補正情報702として、以下の項目の追加が考えられる。 (1) The following items may be added as the correction information 702 to be registered in the DB 425.

項目「日時」の追加により、最新の補正情報702を選択的に検索できるようになる。また、路面の痛み具合による摩擦係数の経年変化やロボットの経年劣化等に対して、補正が可能になる。 By adding the item "date and time", it becomes possible to selectively search for the latest correction information 702. In addition, it is possible to correct for changes in the coefficient of friction over time due to the degree of road surface pain, deterioration of the robot over time, etc.

項目「加速度」及び「角加速度」の追加により、より細かい運動種別に応じたロボット300の位置の補正が可能になる。 By adding the items "acceleration" and "angular acceleration", it becomes possible to correct the position of the robot 300 in accordance with more detailed movement types.

項目「積載物の重量」の追加により、ロボット300の重さで車輪303の周長が変わる場合に位置の補正が可能になる。ただし、「積載物の重量」の項目は車輪303が弾性変形する場合に適用可能である。また、車輪303が空気タイヤの場合、項目「車輪の空気圧」の追加により、車輪303の空気圧に応じて車輪303の周長が変化する場合の補正が可能になる。項目「車輪の周長」の追加により、車輪303の摩耗により車輪303の周長が変化する場合の補正が可能になる。 By adding the item "weight of load", the position can be corrected when the circumference of the wheels 303 changes depending on the weight of the robot 300. However, the item "weight of loaded object" is applicable when the wheels 303 are elastically deformed. Furthermore, when the wheels 303 are pneumatic tires, addition of the item "wheel air pressure" enables correction when the circumference of the wheels 303 changes depending on the air pressure of the wheels 303. By adding the item "wheel circumference", it becomes possible to correct the case where the circumference of the wheel 303 changes due to wear of the wheel 303.

項目「車輪のトルク」の追加により、路面の摩擦係数に応じた補正が可能になる。項目「温度」、「湿度」の追加により、路面の湿り具合による補正が可能になる。 By adding the item "wheel torque", it becomes possible to make corrections according to the coefficient of friction of the road surface. By adding the items ``temperature'' and ``humidity,'' it becomes possible to make corrections based on the humidity of the road surface.

項目「ロボット固有ID」の追加により、個々のロボット300の癖や特徴に応じた補正が可能になる。 By adding the item "robot unique ID", it becomes possible to make corrections according to the habits and characteristics of each robot 300.

(2)前記実施例1の図5の処理504において、前記実施例1では、速度比と角速度比のDB登録フラグを「プログラム実行中に、ある条件に従ってDB登録フラグを「0」又は「1」へ設定してもよい」と記した。DB登録フラグを動的に「1」にする条件について記す。 (2) In the process 504 of FIG. 5 of the first embodiment, in the first embodiment, the DB registration flags for the speed ratio and angular velocity ratio are set to "0" or "1" according to a certain condition during program execution. "You may set it to ``.'' The conditions for dynamically setting the DB registration flag to "1" are described below.

物流倉庫では、作業者の勤務時間外や休憩時間にロボット300を停止させる運用を行う場合がある。そのようなロボット300が搬送作業を行わない時間帯において、DB登録フラグ=1としてロボット300を経路上で走行させてDB425の補正情報702を更新する案が考えられる。 In a distribution warehouse, the robot 300 may be stopped during workers' off-duty hours or during breaks. A possible idea is to update the correction information 702 in the DB 425 by running the robot 300 on the route with the DB registration flag = 1 during a time period in which the robot 300 does not perform transport work.

Visual SLAM422は、予め作成した地図421を読み込んで、地図421とステレオカメラ301から得られたステレオ画像とを照合して自己位置推定を行う。 The Visual SLAM 422 reads a map 421 created in advance, compares the map 421 with a stereo image obtained from the stereo camera 301, and performs self-position estimation.

具体的には、Visual SLAM422が、ステレオ画像から画像特徴点を抽出し、地図421内の特徴点(地図特徴点)と照合することで自己位置推定を行う。その際、ステレオカメラ301から得られた画像特徴点数と地図421内の特徴点数とを比較し、特徴点数に一定数以上の差が生じている場合、環境に変化が生じていると判断し、DB425の補正情報702を更新する案が考えられる。 Specifically, the Visual SLAM 422 extracts image feature points from the stereo image and compares them with feature points in the map 421 (map feature points) to estimate the self-position. At that time, the number of image feature points obtained from the stereo camera 301 and the number of feature points in the map 421 are compared, and if there is a difference of more than a certain number in the number of feature points, it is determined that a change has occurred in the environment, A possible idea is to update the correction information 702 in the DB 425.

一方、常にDB登録フラグ=1として、常時、速度比、加速度比等の補正情報702を、DB425へ登録し続ける案が考えられる。 On the other hand, it is conceivable to always set the DB registration flag to 1 and continue to register the correction information 702 such as the speed ratio and acceleration ratio in the DB 425 at all times.

(3)処理513のDB登録フラグに関し、速度比、角速度比以外に、これらを計算可能な速度1(ν1)、角速度1(ω1)、速度2(ν2)、角速度2(ω2)を格納することも考えられる。データベースの形態として、キーバリューストア型やJSON形等のドキュメント構造を格納する形態も考えられる。また実施例1に示したルールベースの手法だけではなく、位置情報、向き、速度(x、y、θ、ν2、ω2)を入力として速度比、角速度比を機械学習等の手法を用いて算出してもよい。 (3) Regarding the DB registration flag in process 513, in addition to the speed ratio and angular velocity ratio, store velocity 1 (ν1), angular velocity 1 (ω1), velocity 2 (ν2), and angular velocity 2 (ω2) that can be calculated. It is also possible. As the format of the database, a format that stores document structures such as a key-value store type or JSON type may also be considered. In addition to the rule-based method shown in Example 1, the speed ratio and angular speed ratio are calculated using machine learning and other methods using position information, orientation, and speed (x, y, θ, ν2, ω2) as input. You may.

(4)前記実施例1の図5に示した自己位置補正処理520を行う際のユーザへの通知を目的としたロボット300のアクションについて記載する。本アクションは、処理525の直後等、自己位置補正処理520の中で実行される。 (4) Actions of the robot 300 for the purpose of notifying the user when performing the self-position correction process 520 shown in FIG. 5 of the first embodiment will be described. This action is executed during the self-position correction process 520, such as immediately after the process 525.

具体的には、自己位置補正処理520が実行される場合、一定の距離を超えて自己位置補正処理520が継続される場合、ロボット300を停止させる。あるいは、自己位置補正処理520が継続して実行されている間、通常よりも速度を落としてロボット300を走行させる。あるいは、ロボット300の車体のランプ(テールランプやウインカー309等)を点灯、あるいは点滅、点滅パターンを早めたり遅めたりしながら走行させる。あるいは、ホーン310で音を鳴らす、音楽を鳴らしながら走行させる等、考えられる。 Specifically, when the self-position correction process 520 is executed and the self-position correction process 520 is continued beyond a certain distance, the robot 300 is stopped. Alternatively, while the self-position correction process 520 is being continuously executed, the robot 300 is caused to travel at a slower speed than usual. Alternatively, the robot 300 runs while turning on or blinking the lamps (tail lamp, turn signal 309, etc.) on the body of the robot 300, or speeding up or slowing down the flashing pattern. Alternatively, it is possible to make a sound using the horn 310 or run the vehicle while playing music.

このように、自己位置補正処理520が頻発する区間では、ロボット300が光や音を発生することで、何らかの異常が発生した可能性を報知することが可能となる。 In this manner, in a section where the self-position correction process 520 occurs frequently, the robot 300 generates light or sound, thereby making it possible to notify the robot 300 of the possibility that some kind of abnormality has occurred.

<結び>
以上のように、上記各実施例のロボット制御システムは以下のような構成とすることができる。
<Conclusion>
As described above, the robot control system of each of the above embodiments can have the following configuration.

(1)プロセッサとメモリを有するサーバ(320)が移動ロボット(300)の位置を推定するロボット(300)制御システムであって、前記移動ロボット(300)は、前記移動ロボット(300)の走行状態から第1のセンシング情報(ステレオ画像)を取得する第1のセンサ部(ステレオカメラ301)と、前記第1のセンサ部(301)とは異なるセンサを有して前記移動ロボット(300)の走行状態から第2のセンシング情報(車輪303の回転角)を取得する第2のセンサ部(エンコーダ302)と、を有し、前記サーバ(320)は、前記第1のセンシング情報(ステレオ画像)から得られる第1の位置と当該第1の位置における第1の姿勢(θ)を含む第1の走行状態の情報と、前記第2のセンシング情報(車輪303の回転角)から得られる前記移動ロボット(300)の第2の速度(ν2)及び第2の角速度(ω2)の情報を含む第2の走行状態の情報と、の対応関係を示す対応関係情報(補正情報702)を、前記第1の位置と関連付けて格納する記憶部(DB425)と、前記第1の走行状態の情報及び前記第2の走行状態の情報に基づいて前記移動ロボット(300)の推定位置(補正自己位置)を算出可能な演算部(自己位置補正部426)と、を有し、前記演算部(426)は、前記第1のセンサ部(301)から取得した第1のセンシング情報(ステレオ画像)に基づいて前記第1の位置と前記第1の姿勢(θ)を算出し、前記第1の位置の算出の際にエラーが生じた場合には、前記第2のセンシング情報(車輪303の回転角)から取得した第2の走行状態の情報(速度2、角速度2)と前記対応関係情報(補正情報702)に基づいて前記移動ロボット(300)の推定位置(補正自己位置)を算出することを特徴とするロボット制御システム。 (1) A robot (300) control system in which a server (320) having a processor and a memory estimates the position of a mobile robot (300), wherein the mobile robot (300) is configured to control the traveling state of the mobile robot (300). A first sensor unit (stereo camera 301) that acquires first sensing information (stereo image) from the mobile robot (300) and a sensor different from the first sensor unit (301) are used to control the movement of the mobile robot (300). a second sensor unit (encoder 302) that acquires second sensing information (rotation angle of the wheel 303) from the state, and the server (320) acquires second sensing information (rotation angle of the wheel 303) from the first sensing information (stereo image). The mobile robot is obtained from information on the first running state including the obtained first position and the first attitude (θ) at the first position, and the second sensing information (rotation angle of the wheels 303). (300), the second running state information including information on the second velocity (ν2) and second angular velocity (ω2), and the correspondence information (correction information 702) indicating the correspondence between the first An estimated position (corrected self-position) of the mobile robot (300) is calculated based on a storage unit (DB 425) stored in association with the position of the mobile robot (300), information on the first running state, and information on the second running state. and a calculation unit (self-position correction unit 426) capable of adjusting the position based on the first sensing information (stereo image) acquired from the first sensor unit (301). A first position and the first attitude (θ) are calculated, and if an error occurs when calculating the first position, obtain from the second sensing information (rotation angle of the wheel 303). The estimated position (corrected self-position) of the mobile robot (300) is calculated based on the second running state information (velocity 2, angular velocity 2) and the correspondence information (correction information 702). Robot control system.

上記構成により、自律的に走行する無人搬送車(移動ロボット)が、ステレオカメラ301(第1のセンサ部)のステレオ画像(第1のセンシング情報)から算出した自己位置1(第1の位置)がエラーにより得られなかった場合でも、エンコーダ302(第2のセンサ)の情報から算出した第2の走行状態(速度2、角速度2)と補正情報702(対応関係情報)から第1の位置と同等の精度で自己位置(補正自己位置)を復元することが可能となる。 With the above configuration, an autonomous guided vehicle (mobile robot) can obtain self-position 1 (first position) calculated from the stereo image (first sensing information) of the stereo camera 301 (first sensor unit). Even if it cannot be obtained due to an error, the first position and It becomes possible to restore the self-position (corrected self-position) with equivalent accuracy.

(2)上記(1)に記載のロボット制御システムであって、前記対応関係情報(補正情報702)は、前記第1の位置(自己位置1)における第1の速度(ν1)と前記第2の速度(ν2)の速度比(ν1/ν2)と、前記第1の姿勢(θ)における第1の角速度(ω1)と前記第2の角速度(ω2)の角速度比(ω1/ω2)を含むことを特徴とするロボット制御システム。 (2) The robot control system according to (1) above, wherein the correspondence information (correction information 702) includes a first velocity (ν1) at the first position (self-position 1) and a second velocity (v1) at the first position (self-position 1). , and the angular velocity ratio (ω1/ω2) of the first angular velocity (ω1) and the second angular velocity (ω2) in the first attitude (θ). A robot control system characterized by:

上記構成により、エンコーダ302から取得した速度2(ν2)と補正情報702に記録された速度比(ν1/ν2)から速度1(ν1)を算出し、エンコーダ302から取得した第2の角速度(ω2)と補正情報702に記録された角速度比(ω1/ω2)から角速度1(ω1)を算出することができ、速度1(ν1)と角速度1(ω1)から補正自己位置(自己位置1)を算出することができる。これにより、ステレオ画像による自己位置1がエラーにより得られなかった場合でも、エンコーダ302から取得した速度2及び角速度2に基づいて補正自己位置を算出し、自己位置1と同等精度の自己位置1(補正自己位置)が復元できる。 With the above configuration, velocity 1 (ν1) is calculated from velocity 2 (ν2) acquired from the encoder 302 and the velocity ratio (ν1/ν2) recorded in the correction information 702, and the second angular velocity (ω2) acquired from the encoder 302 is calculated from the velocity ratio (ν1/ν2) recorded in the correction information 702. ) and the angular velocity ratio (ω1/ω2) recorded in the correction information 702, the angular velocity 1 (ω1) can be calculated, and the corrected self-position (self-position 1) can be calculated from the velocity 1 (ν1) and the angular velocity 1 (ω1). It can be calculated. As a result, even if self-position 1 from the stereo image cannot be obtained due to an error, a corrected self-position is calculated based on velocity 2 and angular velocity 2 acquired from the encoder 302, and self-position 1 ( corrected self-position) can be restored.

(3)上記(2)に記載のロボット制御システムであって、前記演算部(自己位置補正部426)は、前記エラーがなく、かつ予め設定された登録情報(DB登録フラグ)が有効(「1」)の場合には、前記第1の速度(ν1)と前記第1の角速度(ω1)を取得し、前記第2の速度(ν2)と前記第2の角速度(ω2)から前記速度比(ν1/ν2)と前記角速度比(ω1/ω2)を算出し、前記第1の位置(自己位置1)と前記第1の姿勢(θ)に対応づけて、前記第2の速度(ν2)と前記第2の角速度(ω2)と前記速度比(ν1/ν2)と角速度比(ω1/ω2)を前記対応関係情報(補正情報702)に登録することを特徴とするロボット制御システム。 (3) In the robot control system according to (2) above, the calculation unit (self-position correction unit 426) is configured to have no error and the preset registration information (DB registration flag) is valid (“ 1''), the first velocity (ν1) and the first angular velocity (ω1) are obtained, and the velocity ratio is determined from the second velocity (ν2) and the second angular velocity (ω2). (ν1/ν2) and the angular velocity ratio (ω1/ω2) are calculated, and the second velocity (ν2) is calculated in association with the first position (self-position 1) and the first attitude (θ). and the second angular velocity (ω2), the velocity ratio (ν1/ν2), and the angular velocity ratio (ω1/ω2) are registered in the correspondence information (correction information 702).

上記構成により、自己位置補正部426は、自己位置1の算出にエラーがなく、かつ、DB登録フラグが有効な場合には、速度1と角速度1を取得して速度2(ν2)と角速度2(ω2)から速度比(ν1/ν2)と角速度比(ω1/ω2)を自己位置1と第1の姿勢(θ)に対応づけて、対応関係情報(補正情報702)に登録しておくことで、エラー発生時の自己位置1の復元に利用することができる。なお、前回値と現在値の自己位置1の差分から速度1と角速度1を算出してもよい。 With the above configuration, if there is no error in calculating self-position 1 and the DB registration flag is valid, self-position correction unit 426 acquires velocity 1 and angular velocity 1, and obtains velocity 2 (ν2) and angular velocity 2. (ω2), the velocity ratio (ν1/ν2) and the angular velocity ratio (ω1/ω2) are associated with the self-position 1 and the first attitude (θ), and registered in the correspondence information (correction information 702). This can be used to restore self-position 1 when an error occurs. Note that the velocity 1 and the angular velocity 1 may be calculated from the difference between the previous value and the current value of the self-position 1.

(4)上記(2)に記載のロボット制御システムであって、前記演算部(自己位置補正部426)は、前記エラーが生じた場合には、前記エラー発生前の前記移動ロボットの前記第1の位置(自己位置1)及び前記第1の姿勢(θ)の情報と、前記第2の速度(ν2)と、前記第2の角速度(ω2)とで前記対応関係情報(補正情報702)を検索し、検索結果から速度比(ν1/ν2)及び角速度比(ω1/ω2)とを取得して、当該取得した速度比(ν1/ν2)及び角速度比(ω1/ω2)と前記第2の速度(ν2)と前記第2の角速度(ω2)とから前記第1の速度(ν1)の推定値及び前記第1の角速度(ω1)の推定値に基づいて、前記移動ロボットの位置及び姿勢を推定位置及び推定姿勢として算出することを特徴とするロボット制御システム。 (4) In the robot control system according to (2) above, when the error occurs, the calculation unit (self-position correction unit 426) controls the first position of the mobile robot before the error occurs. The correspondence information (correction information 702) is obtained using the information on the position (self-position 1) and the first attitude (θ), the second velocity (ν2), and the second angular velocity (ω2). Search, obtain the speed ratio (ν1/ν2) and angular velocity ratio (ω1/ω2) from the search results, and combine the obtained speed ratio (ν1/ν2) and angular velocity ratio (ω1/ω2) with the second Based on the estimated value of the first velocity (ν1) and the estimated value of the first angular velocity (ω1) from the velocity (ν2) and the second angular velocity (ω2), the position and orientation of the mobile robot are determined. A robot control system characterized by calculating an estimated position and an estimated posture.

上記構成により、自己位置1の算出にエラーが発生した場合、自己位置補正部426は、前記自己位置1とエンコーダ302の情報から算出した速度2及び角速度2で補正情報702を検索し、検索結果から速度比と角速度比を取得する。そして、自己位置補正部426は速度比と速度2から速度1を算出し、角速度比と角速度2から角速度1を算出し、前記自己位置1と算出された速度1と角速度1から自己位置1と姿勢を算出することができる。 With the above configuration, when an error occurs in the calculation of self-position 1, the self-position correction unit 426 searches for correction information 702 using velocity 2 and angular velocity 2 calculated from the self-position 1 and the information of encoder 302, and searches for the correction information 702. Obtain the velocity ratio and angular velocity ratio from . Then, the self-position correction unit 426 calculates velocity 1 from the speed ratio and velocity 2, calculates angular velocity 1 from the angular velocity ratio and angular velocity 2, and calculates self-position 1 from the self-position 1 and the calculated velocity 1 and angular velocity 1. Posture can be calculated.

(5)上記(4)に記載のロボット制御システムであって、前記演算部(自己位置補正部426)は、前記エラーが生じた場合には、前記演算部(426)の算出した前記推定位置及び前記推定姿勢と、前記推定位置における前記第2の速度(ν2)と、前記推定姿勢における前記第2の角速度(ω2)とで前記対応関係情報(補正情報702)を検索し、検索結果から速度比(ν1/ν2)及び角速度比(ω1/ω2)を取得して、当該取得した速度比(ν1/ν2)及び角速度比(ω1/ω2)と前記推定位置における前記第2の速度(ν2)と前記推定姿勢における前記第2の角速度(ω2)とから前記推定位置における前記第1の速度(ν1)の推定値と前記推定姿勢における前記第1の角速度(ω1)の推定値とを算出し、前記算出された前記推定位置における前記第1の速度(ν1)の推定値及び前記推定姿勢における前記第1の角速度(ω1)の推定値に基づいて、前記移動ロボットの位置及び姿勢を算出することを特徴とするロボット制御システム。 (5) In the robot control system according to (4) above, when the error occurs, the calculation unit (self-position correction unit 426) corrects the estimated position calculated by the calculation unit (426). and search the correspondence information (correction information 702) using the estimated posture, the second velocity (ν2) at the estimated position, and the second angular velocity (ω2) at the estimated posture, and from the search results A velocity ratio (ν1/ν2) and an angular velocity ratio (ω1/ω2) are obtained, and the obtained velocity ratio (ν1/ν2) and angular velocity ratio (ω1/ω2) are combined with the second velocity (ν2) at the estimated position. ) and the second angular velocity (ω2) in the estimated posture, calculate an estimated value of the first velocity (ν1) at the estimated position and an estimated value of the first angular velocity (ω1) at the estimated posture. and calculating the position and orientation of the mobile robot based on the estimated value of the first velocity (ν1) at the calculated estimated position and the estimated value of the first angular velocity (ω1) at the estimated orientation. A robot control system characterized by:

上記構成により、自己位置1の算出でエラーが継続して発生した場合、自己位置補正部426は算出した推定位置や推定姿勢を用いることで、エラーが継続中でも継続して移動ロボットの位置及び姿勢の推定を行うことができる。 With the above configuration, if an error continues to occur in the calculation of self-position 1, the self-position correction unit 426 uses the calculated estimated position and estimated orientation to continue to maintain the position and orientation of the mobile robot even if the error continues. can be estimated.

(6)上記(4)に記載のロボット制御システムであって、前記演算部(自己位置補正部426)は、前記対応関係情報(補正情報702)を検索する際に、前記第1の位置(自己位置1)を表す第1のキーで検索を行って、当該検索の結果に対して第1の姿勢(θ)と第2の速度(ν2)と第2の角速度(ω2)を表す第2のキーでさらに検索を行うことを特徴とするロボット制御システム。 (6) In the robot control system according to (4) above, the calculation unit (self-position correction unit 426), when searching the correspondence information (correction information 702), calculates the first position ( A search is performed using a first key representing the self-position (1), and a second key representing the first attitude (θ), second velocity (ν2), and second angular velocity (ω2) is searched for the search result. A robot control system characterized by further searching using keys.

上記構成により、自己位置補正部426は、第1のキーで大まかに検索した結果に対して、第2の検索キーで絞り込むことで、多数の検索キーを用いてDB検索速度が遅くなるのを抑制することができる。 With the above configuration, the self-position correction unit 426 narrows down the rough search results using the first key using the second search key, thereby preventing the DB search speed from slowing down using a large number of search keys. Can be suppressed.

(7)上記(2)に記載のロボット制御システムであって、前記対応関係情報(補正情報702)は、前記第1の位置(自己位置1)と、前記第1の姿勢(θ)と、前記速度比(ν1/ν2)と、前記角速度比(ω1/ω2)を含むことを特徴とするロボット制御システム。 (7) The robot control system according to (2) above, wherein the correspondence information (correction information 702) includes the first position (self-position 1), the first attitude (θ), A robot control system comprising the speed ratio (v1/v2) and the angular velocity ratio (ω1/ω2).

上記構成により、対応関係情報(補正情報702)は、第1の位置(自己位置1)と、第1の姿勢(θ)と、速度比(ν1/ν2)と、角速度比(ω1/ω2)を含むことができる。 With the above configuration, the correspondence information (correction information 702) includes the first position (self-position 1), the first attitude (θ), the velocity ratio (ν1/ν2), and the angular velocity ratio (ω1/ω2). can include.

(8)上記(7)に記載のロボット制御システムであって、前記対応関係情報(補正情報702)は、前記第1の位置(自己位置1)と、前記第1の姿勢(θ)と、前記速度比(ν1/ν2)と、前記角速度比(ω1/ω2)に加えて、日時、加速度、角加速度、積載物の重量、車輪の空気圧、車輪の周長、車輪のトルク、温度、湿度、移動ロボット(300)固有IDのうち、少なくともひとつを含むことを特徴とするロボット制御システム。 (8) The robot control system according to (7) above, wherein the correspondence information (correction information 702) includes the first position (self-position 1), the first posture (θ), In addition to the speed ratio (ν1/ν2) and the angular velocity ratio (ω1/ω2), date and time, acceleration, angular acceleration, weight of the loaded object, wheel air pressure, wheel circumference, wheel torque, temperature, and humidity. , a mobile robot (300) unique ID.

上記構成により、「日時」の追加により、最新の補正情報702を選択的に検索できる。「加速度」及び「角加速度」の追加により、より細かい運動種別に応じたロボット300の位置の補正が可能になる。「積載物の重量」の追加により、ロボット300の重さで車輪303の周長が変わる場合に位置の補正が可能になる。車輪303が空気タイヤの場合、「車輪の空気圧」の追加により、車輪303の空気圧に応じて車輪303の周長が変化する場合の補正が可能になる。「車輪の周長」の追加により、車輪303の摩耗により車輪303の周長が変化する場合の補正が可能になる。「車輪のトルク」の追加により、路面の摩擦係数に応じた補正が可能になる。「温度」、「湿度」の追加により、路面の湿り具合による補正が可能になる。「ロボット固有ID」の追加により、個々のロボット300の癖や特徴に応じた補正が可能になる。 With the above configuration, the latest correction information 702 can be selectively searched by adding "date and time". By adding "acceleration" and "angular acceleration", it becomes possible to correct the position of the robot 300 in accordance with more detailed movement types. By adding the "weight of the load", the position can be corrected when the circumference of the wheels 303 changes due to the weight of the robot 300. When the wheels 303 are pneumatic tires, addition of "wheel air pressure" enables correction when the circumference of the wheels 303 changes depending on the air pressure of the wheels 303. By adding the "wheel circumference", it is possible to correct the case where the circumference of the wheel 303 changes due to wear of the wheel 303. By adding "wheel torque", it becomes possible to make corrections according to the coefficient of friction of the road surface. By adding "temperature" and "humidity", it is possible to make corrections based on the humidity of the road surface. By adding the "robot unique ID", it becomes possible to make corrections according to the habits and characteristics of each robot 300.

(9)上記(1)に記載のロボット制御システムであって、前記演算部(自己位置補正部426)は、前記エラーによって前記第1の位置(自己位置1)が取得できない場合には、前記移動ロボット(300)に設けたランプ(ウインカー309)の点滅、前記移動ロボット(300)に設けたホーン(310)からの音声出力、前記移動ロボット(300)の減速及び停止の少なくともひとつを前記移動ロボット(300)に指令することを特徴とするロボット制御システム。 (9) In the robot control system according to (1) above, when the calculation unit (self-position correction unit 426) cannot obtain the first position (self-position 1) due to the error, the calculation unit (self-position correction unit 426) At least one of blinking a lamp (blinker 309) provided on the mobile robot (300), audio output from a horn (310) provided on the mobile robot (300), and deceleration and stopping of the mobile robot (300) is performed during the movement. A robot control system characterized by giving commands to a robot (300).

上記構成により、自己位置1の算出でエラーが発生する場合には、ロボット300のウインカー309を点滅させたりホーン310を鳴らしたり車輪モータ306を減速や停止させることで、自己位置1の算出に異常が発生したことを報知することができる。 With the above configuration, if an error occurs in the calculation of self-position 1, the blinker 309 of the robot 300 is blinked, the horn 310 is sounded, or the wheel motor 306 is decelerated or stopped, so that the calculation of self-position 1 is abnormal. It is possible to notify that this has occurred.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を含むものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。 Note that the present invention is not limited to the above-described embodiments, and includes various modifications. For example, the embodiments described above are described in detail to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to including all the configurations described. Furthermore, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, addition, deletion, or replacement of other configurations to some of the configurations of each embodiment may be applied singly or in combination.

また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。 Further, each of the above-mentioned configurations, functions, processing units, processing means, etc. may be partially or entirely realized in hardware by designing, for example, an integrated circuit. Moreover, each of the above-mentioned configurations, functions, etc. may be realized by software by a processor interpreting and executing a program that realizes each function. Information such as programs, tables, files, etc. that implement each function can be stored in a memory, a recording device such as a hard disk, an SSD, or a recording medium such as an IC card, an SD card, or a DVD.

また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 Further, the control lines and information lines are shown to be necessary for explanation purposes, and not all control lines and information lines are necessarily shown in the product. In reality, almost all components may be considered to be interconnected.

300 ロボット
302 ステレオカメラ
302 エンコーダ
303 車輪
421 地図
422 Visual SLAM
423 速度2、角速度2算出部
425 データベース
426 自己位置補正部
702 補正情報
300 Robot 302 Stereo camera 302 Encoder 303 Wheel 421 Map 422 Visual SLAM
423 Velocity 2, angular velocity 2 calculation unit 425 Database 426 Self-position correction unit 702 Correction information

Claims (11)

プロセッサとメモリを有するサーバが移動ロボットの位置を推定するロボット制御システムであって、
前記移動ロボットは、
前記移動ロボットの走行状態から第1のセンシング情報を取得する第1のセンサ部と、
前記第1のセンサ部とは異なるセンサを有して前記移動ロボットの走行状態から第2のセンシング情報を取得する第2のセンサ部と、を有し、
前記サーバは、
前記第1のセンシング情報から得られる第1の位置と当該第1の位置における第1の姿勢を含む第1の走行状態の情報と、前記第2のセンシング情報から得られる前記移動ロボットの第2の速度及び第2の角速度を含む第2の走行状態の情報と、の対応関係を示す対応関係情報を、前記第1の位置と関連付けて格納する記憶部と、
前記第1の走行状態の情報及び前記第2の走行状態の情報に基づいて前記移動ロボットの推定位置を算出可能な演算部と、を有し、
前記演算部は、
前記第1のセンサ部から取得した第1のセンシング情報に基づいて前記第1の位置と前記第1の姿勢を算出し、前記第1の位置の算出の際にエラーが生じた場合には、前記第2のセンシング情報から取得した第2の走行状態の情報と前記対応関係情報に基づいて、前記移動ロボットの推定位置を算出することを特徴とするロボット制御システム。
A robot control system in which a server having a processor and a memory estimates the position of a mobile robot, the system comprising:
The mobile robot is
a first sensor unit that acquires first sensing information from a running state of the mobile robot;
a second sensor unit that has a different sensor from the first sensor unit and acquires second sensing information from the traveling state of the mobile robot;
The server is
information on a first running state including a first position and a first posture at the first position obtained from the first sensing information; and a second running state of the mobile robot obtained from the second sensing information. a storage unit that stores correspondence relationship information indicating a correspondence relationship between information on a second running state including a speed of the vehicle and a second angular velocity in association with the first position;
a calculation unit capable of calculating an estimated position of the mobile robot based on information on the first running state and information on the second running state;
The arithmetic unit is
If the first position and the first orientation are calculated based on the first sensing information acquired from the first sensor unit, and an error occurs when calculating the first position, A robot control system characterized in that an estimated position of the mobile robot is calculated based on second running state information acquired from the second sensing information and the correspondence information.
請求項1に記載のロボット制御システムであって、
前記対応関係情報は、
前記第1の位置における第1の速度と前記第2の速度の速度比と、前記第1の姿勢における第1の角速度と前記第2の角速度の角速度比を含むことを特徴とするロボット制御システム。
The robot control system according to claim 1,
The correspondence information is
A robot control system comprising: a speed ratio between the first speed and the second speed at the first position; and an angular speed ratio between the first angular speed and the second angular speed at the first posture. .
請求項2に記載のロボット制御システムであって、
前記演算部は、
前記エラーがなく、かつ予め設定された登録情報が有効の場合には、前記第1の速度と前記第1の角速度を取得し、前記第1の速度と前記第2の速度から前記速度比を算出し、前記第1の角速度と前記第2の角速度から前記角速度比を算出し、前記第1の位置と前記第1の姿勢に対応づけて、前記第2の速度と前記第2の角速度と前記速度比と前記角速度比を前記対応関係情報に登録することを特徴とするロボット制御システム。
The robot control system according to claim 2,
The arithmetic unit is
If there is no error and the preset registration information is valid, obtain the first velocity and the first angular velocity, and calculate the speed ratio from the first velocity and the second velocity. calculate the angular velocity ratio from the first angular velocity and the second angular velocity, and calculate the second angular velocity and the second angular velocity in association with the first position and the first attitude. A robot control system characterized in that the speed ratio and the angular velocity ratio are registered in the correspondence information.
請求項2に記載のロボット制御システムであって、
前記演算部は、
前記エラーが生じた場合には、前記エラー発生前の前記移動ロボットの前記第1の位置及び前記第1の姿勢の情報と、前記第2の速度と、前記第2の角速度とで前記対応関係情報を検索し、検索結果から速度比及び角速度比とを取得して、当該取得した速度比及び角速度比と前記第2の速度と前記第2の角速度とから前記第1の速度の推定値及び前記第1の角速度の推定値を算出し、前記算出された前記第1の速度の推定値及び前記第1の角速度の推定値に基づいて、前記移動ロボットの位置及び姿勢を推定位置及び推定姿勢として算出することを特徴とするロボット制御システム。
The robot control system according to claim 2,
The arithmetic unit is
When the error occurs, the correspondence relationship is established between the information on the first position and the first posture of the mobile robot before the error occurs, the second velocity, and the second angular velocity. Search for information, obtain a speed ratio and an angular velocity ratio from the search results, and calculate an estimated value of the first velocity from the obtained velocity ratio and angular velocity ratio, the second velocity, and the second angular velocity. An estimated value of the first angular velocity is calculated, and the position and orientation of the mobile robot are estimated based on the calculated estimated value of the first velocity and the estimated value of the first angular velocity. A robot control system characterized by calculating as follows.
請求項4に記載のロボット制御システムであって、
前記演算部は、
前記エラーが生じた場合には、前記演算部の算出した前記推定位置及び前記推定姿勢と、前記推定位置における前記第2の速度と、前記推定姿勢における前記第2の角速度とで前記対応関係情報を検索し、検索結果から速度比及び角速度比を取得して、当該取得した速度比及び角速度比と前記推定位置における前記第2の速度と前記推定姿勢における前記第2の角速度とから前記推定位置における前記第1の速度の推定値と前記推定姿勢における前記第1の角速度の推定値とを算出し、前記算出された前記推定位置における前記第1の速度の推定値及び前記推定姿勢における前記第1の角速度の推定値に基づいて、前記移動ロボットの位置及び姿勢を算出することを特徴とするロボット制御システム。
The robot control system according to claim 4,
The arithmetic unit is
If the error occurs, the correspondence information is calculated between the estimated position and the estimated orientation calculated by the calculation unit, the second velocity at the estimated position, and the second angular velocity at the estimated orientation. , obtain a speed ratio and an angular velocity ratio from the search results, and calculate the estimated position from the obtained speed ratio and angular velocity ratio, the second velocity at the estimated position, and the second angular velocity at the estimated posture. An estimated value of the first velocity at the estimated position and an estimated value of the first angular velocity at the estimated orientation are calculated, and an estimated value of the first velocity at the calculated estimated position and an estimated value of the first angular velocity at the estimated orientation are calculated. 1. A robot control system, wherein the position and orientation of the mobile robot are calculated based on an estimated value of angular velocity.
請求項4に記載のロボット制御システムであって、
前記演算部は、
前記対応関係情報を検索する際に、前記第1の位置を表す第1のキーで検索を行って、当該検索の結果に対して前記第1の姿勢と前記第2の速度と前記第2の角速度を表す第2のキーで検索を行うことを特徴とするロボット制御システム。
The robot control system according to claim 4,
The arithmetic unit is
When searching for the correspondence relationship information, a search is performed using the first key representing the first position, and the first attitude, the second velocity, and the second A robot control system characterized in that a search is performed using a second key representing angular velocity.
請求項2に記載のロボット制御システムであって、
前記対応関係情報は、
前記第1の位置と、前記第1の姿勢と、前記速度比と、前記角速度比を含むことを特徴とするロボット制御システム。
The robot control system according to claim 2,
The correspondence information is
A robot control system comprising: the first position, the first posture, the speed ratio, and the angular speed ratio.
請求項7に記載のロボット制御システムであって、
前記対応関係情報は、
前記第1の位置と、前記第1の姿勢と、前記速度比と、前記角速度比に加えて、日時、加速度、角加速度、積載物の重量、車輪の空気圧、車輪の周長、車輪のトルク、温度、湿度、移動ロボット固有IDのうち、少なくともひとつを含むことを特徴とするロボット制御システム。
The robot control system according to claim 7,
The correspondence information is
In addition to the first position, first attitude, speed ratio, and angular velocity ratio, date and time, acceleration, angular acceleration, weight of the loaded object, wheel air pressure, wheel circumference, and wheel torque. , temperature, humidity, and a mobile robot unique ID.
請求項1に記載のロボット制御システムであって、
前記演算部は、
前記エラーによって前記第1の位置が取得できない場合には、前記移動ロボットに設けたランプの点滅、前記移動ロボットに設けたホーンからの音声出力、前記移動ロボットの減速及び停止の少なくともひとつを前記移動ロボットに指令することを特徴とするロボット制御システム。
The robot control system according to claim 1,
The arithmetic unit is
If the first position cannot be obtained due to the error, at least one of blinking a lamp provided on the mobile robot, outputting a sound from a horn provided on the mobile robot, and decelerating and stopping the mobile robot may be activated during the movement of the mobile robot. A robot control system characterized by giving instructions to a robot.
プロセッサとメモリを有するサーバと、
前記サーバに接続されて物体を搬送する移動ロボットと、を有する搬送システムであって、
前記移動ロボットは、
前記移動ロボットの走行状態から第1のセンシング情報を取得する第1のセンサ部と、
前記第1のセンサ部とは異なるセンサを有して前記移動ロボットの走行状態から第2のセンシング情報を取得する第2のセンサ部と、を有し、
前記サーバは、
前記第1のセンシング情報から得られる第1の位置と、当該第1の位置における第1の姿勢を含む第1の走行状態の情報と、前記第2のセンシング情報から得られる前記移動ロボットの第2の速度及び第2の角速度を含む第2の走行状態の情報と、の対応関係を示す対応関係情報を、前記第1の位置と関連付けて格納する記憶部と、
前記第1の走行状態の情報及び前記第2の走行状態の情報に基づいて前記移動ロボットの推定位置を算出可能な演算部と、を有し、
前記演算部は、
前記第1のセンサ部から取得した第1のセンシング情報に基づいて前記第1の位置と前記第1の姿勢を算出し、前記第1の位置の算出の際にエラーが生じた場合には、前記第2のセンシング情報から取得した第2の走行状態の情報と前記対応関係情報とに基づいて前記移動ロボットの推定位置を算出することを特徴とする搬送システム。
a server having a processor and memory;
A transport system comprising: a mobile robot connected to the server to transport an object;
The mobile robot is
a first sensor unit that acquires first sensing information from a running state of the mobile robot;
a second sensor unit that has a different sensor from the first sensor unit and acquires second sensing information from the traveling state of the mobile robot;
The server is
A first position obtained from the first sensing information, first running state information including a first posture at the first position, and a first position of the mobile robot obtained from the second sensing information. a storage unit that stores correspondence relationship information indicating a correspondence relationship between the second driving state information including the second speed and the second angular velocity in association with the first position;
a calculation unit capable of calculating an estimated position of the mobile robot based on information on the first running state and information on the second running state;
The arithmetic unit is
If the first position and the first orientation are calculated based on the first sensing information acquired from the first sensor unit, and an error occurs when calculating the first position, A transport system characterized in that the estimated position of the mobile robot is calculated based on the second traveling state information acquired from the second sensing information and the correspondence relationship information.
プロセッサとメモリを有するサーバが移動ロボットの位置を推定するロボット制御方法であって、
前記サーバが、前記移動ロボットの第1のセンサ部が検出した第1のセンシング情報を取得する第1のステップと、
前記サーバが、前記移動ロボットの前記第1のセンサ部とは異なる第2のセンサ部が検出した第2のセンシング情報を取得する第2のステップと、
前記サーバが、前記第1のセンシング情報から得られる第1の位置と当該第1の位置における第1の姿勢を含む第1の走行状態の情報と、前記第2のセンシング情報から取得する前記移動ロボットの第2の速度及び第2の角速度を含む第2の走行状態の情報と、の対応関係を示す対応関係情報を、前記第1の位置と関連付けて記憶部へ格納する第3のステップと、
前記サーバが、前記第1のセンサ部から取得した第1のセンシング情報に基づいて前記第1の位置と前記第1の姿勢を算出する第4のステップと、
前記サーバが、前記第1の位置の算出の際にエラーが生じた場合、前記第2のセンシング情報から取得した第2の走行状態の情報と前記対応関係情報とに基づいて前記移動ロボットの推定位置を算出する第5のステップと、
を含むことを特徴とするロボット制御方法。
A robot control method in which a server having a processor and a memory estimates the position of a mobile robot, the method comprising:
a first step in which the server acquires first sensing information detected by a first sensor unit of the mobile robot;
a second step in which the server acquires second sensing information detected by a second sensor unit different from the first sensor unit of the mobile robot;
The server obtains first driving state information including a first position and a first attitude at the first position obtained from the first sensing information, and the movement obtained from the second sensing information. a third step of storing correspondence relationship information indicating a correspondence relationship between information on a second running state including a second speed and a second angular velocity of the robot in a storage unit in association with the first position; ,
a fourth step in which the server calculates the first position and the first orientation based on first sensing information acquired from the first sensor unit;
If an error occurs when calculating the first position, the server estimates the mobile robot based on the second traveling state information acquired from the second sensing information and the correspondence information. a fifth step of calculating the position;
A robot control method characterized by comprising:
JP2022079239A 2022-05-13 2022-05-13 Robot control system, transport system, and robot control method Pending JP2023167780A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022079239A JP2023167780A (en) 2022-05-13 2022-05-13 Robot control system, transport system, and robot control method
PCT/JP2023/014427 WO2023218825A1 (en) 2022-05-13 2023-04-07 Robot control system, conveyance system, and robot control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022079239A JP2023167780A (en) 2022-05-13 2022-05-13 Robot control system, transport system, and robot control method

Publications (1)

Publication Number Publication Date
JP2023167780A true JP2023167780A (en) 2023-11-24

Family

ID=88730145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022079239A Pending JP2023167780A (en) 2022-05-13 2022-05-13 Robot control system, transport system, and robot control method

Country Status (2)

Country Link
JP (1) JP2023167780A (en)
WO (1) WO2023218825A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011209203A (en) * 2010-03-30 2011-10-20 Sony Corp Self-position estimating device and self-position estimating method
JP2019053391A (en) * 2017-09-13 2019-04-04 日本電産シンポ株式会社 Mobile body
JP7385388B2 (en) * 2019-07-22 2023-11-22 株式会社ダイヘン Self-position estimation device

Also Published As

Publication number Publication date
WO2023218825A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
Amidi et al. Integrated mobile robot control
US8306684B2 (en) Autonomous moving apparatus
US7768417B2 (en) Moving apparatus, method, and medium for compensating position of the moving apparatus
US8515612B2 (en) Route planning method, route planning device and autonomous mobile device
JP2009093308A (en) Robot system
EP2460059B1 (en) Estimating positions of a device and at least one target in an environment
CN106053879A (en) Fail operational vehicle speed estimation through data fusion
US10921816B2 (en) Method and apparatus for producing map based on hierarchical structure using 2D laser scanner
US11353867B1 (en) Redundant lateral velocity determination and use in secondary vehicle control systems
KR20170118040A (en) Method and device for the estimation of car egomotion from surround view images
JP2012118909A (en) Travel support device
CN113753028B (en) Driving support device, driving support method, and computer-readable recording medium
TW202036030A (en) Information processing device and mobile robot
Li et al. Visual-inertial odometry with online calibration of velocity-control based kinematic motion models
WO2023218825A1 (en) Robot control system, conveyance system, and robot control method
JP5439552B2 (en) Robot system
CN112401776B (en) self-propelled robot
JP2019139696A (en) Vehicle control device
Seyr et al. Proprioceptive navigation, slip estimation and slip control for autonomous wheeled mobile robots
WO2020100902A1 (en) White line position estimation device and white line position estimation method
JP7040308B2 (en) Travel control device and travel control method for automatic guided vehicles
US10775804B1 (en) Optical array sensor for use with autonomous vehicle control systems
CN114822080B (en) Travel track estimating system, recording medium of estimating program, and estimating method
EP2287698A1 (en) Estimating positions of a device and at least one target in an environment
KR20150079098A (en) Filtering Methods of spatiotemporal 3D Vector for Robust visual odometry