Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7799554B2 - Robot control system, transport system, and robot control method - Google Patents
[go: Go Back, main page]

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

Robot control system, transport system, and robot control method

Info

Publication number
JP7799554B2
JP7799554B2 JP2022079239A JP2022079239A JP7799554B2 JP 7799554 B2 JP7799554 B2 JP 7799554B2 JP 2022079239 A JP2022079239 A JP 2022079239A JP 2022079239 A JP2022079239 A JP 2022079239A JP 7799554 B2 JP7799554 B2 JP 7799554B2
Authority
JP
Japan
Prior art keywords
velocity
angular velocity
information
self
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022079239A
Other languages
Japanese (ja)
Other versions
JP2023167780A (en
Inventor
定樹 中野
宣隆 木村
久 遠藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/JP7799554B2/en
Priority to PCT/JP2023/014427 priority patent/WO2023218825A1/en
Publication of JP2023167780A publication Critical patent/JP2023167780A/en
Application granted granted Critical
Publication of JP7799554B2 publication Critical patent/JP7799554B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)

Description

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

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

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

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

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

特開2021―96731号公報JP 2021-96731 A 特開2017―146952号公報JP 2017-146952 A

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 for estimating a self-location using only a second self-location when the first self-location cannot be obtained due to an error. The second self-location obtained by odometry-based self-location estimation processing is susceptible to factors such as friction and unevenness on the road surface (or floor surface) and wheel wear, and is less accurate in position estimation than the first self-location obtained by image processing-based self-location estimation processing.

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

そこで本発明は、上記問題点に鑑みてなされたもので、種類の異なる第1のセンサと第2のセンサを有するロボットを制御する際に、第1のセンサから算出した第1の自己位置が利用できない場合に第2のセンサから算出した情報を用いて自己位置を推定する精度を向上させることを目的とする。 The present invention was made in consideration of the above-mentioned problems, and aims to improve the accuracy of estimating self-position using information calculated from the second sensor when controlling a robot having different types of first and second sensors and the first self-position calculated from the first 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 memory estimates the position of a mobile robot, the mobile robot having 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 traveling state of the mobile robot, the server acquiring first traveling state information including a first position and a first attitude at the first position obtained from the first sensing information, and a second velocity and second speed of the mobile robot obtained from the second sensing information. The system has a storage unit that stores correspondence information indicating the correspondence between the first position and second running state information including angular velocity information, in association with the first position, and a calculation unit that is capable of calculating an estimated position of the mobile robot based on the first running state information and the second running state information, wherein the calculation unit calculates the first position and the first orientation information based on the first sensing information acquired from the first sensor unit, and if an error occurs when calculating the first position, calculates the estimated position of the mobile robot based on the second running state information acquired from the second sensing information and the correspondence information.

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

本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。 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 become apparent from the following disclosure, drawings, and claims.

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

以下、図面を参照して本発明の実施形態を説明する。実施例は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。 Embodiments of the present invention will be described below with reference to the drawings. The examples are illustrative only and have been omitted or simplified as appropriate for clarity of explanation. The present invention can also be implemented in various other forms. Unless otherwise specified, 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」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。 As examples of various types of information, expressions such as "table," "list," and "queue" may be used, but various types of information may also be expressed using other data structures. For example, various types of information such as "XX table," "XX list," and "XX queue" may also be expressed as "XX information." When describing identification information, expressions such as "identification information," "identifier," "name," "ID," and "number" are used, but these are interchangeable.

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

実施例において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えば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 described. Here, a computer executes the program using a processor (e.g., a CPU or GPU) and performs the processing defined in the program using storage resources (e.g., memory) and interface devices (e.g., communication ports). Therefore, the entity performing the processing by executing the program may be the processor. Similarly, the entity performing the processing by executing the program may be a controller, device, system, computer, or node having a processor. The entity performing the processing by executing the program may be any computing unit, and may include a dedicated circuit that performs specific processing. Here, a dedicated circuit is, for example, an FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit), or 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. If the program source is a program distribution server, the program distribution server may include a processor and storage resources 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 realized as one program, or one program may be realized as two or more programs.

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

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

図1Aを用いて自己位置の復元方式について説明する。図1Aに示す式100は2輪差動駆動型のロボット300の運動モデルである。ロボット300はX-Yの2次元空間を走行し、旋回によって進行方向を変更する。ロボット300は、位置をx、yの座標で示し、向きをθ、速度をν、角速度をωで示す。 The method for restoring the robot's own position will be explained using Figure 1A. Equation 100 shown in Figure 1A is a motion model for a two-wheel differential drive robot 300. The robot 300 moves in a two-dimensional space of X-Y and changes its direction of travel by turning. The position of the robot 300 is indicated by x and y coordinates, its direction by θ, its speed by ν, and its angular velocity 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 takes as input the position and orientation (x(t-1), y(t-1), θ(t-1)), velocity (ν(t)), and angular velocity (ω(t)) of robot 300 at time t = 1, 2, 3, 4, ..., and calculates the position and orientation (x(t), y(t), θ(t)) of robot 300 at the next step (time), i.e., it is an equation that expresses the trajectory of robot 300.

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

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

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

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

仮に上記軌跡101、102を完全にマッチさせるには、図1Bの式112に示すように、速度2(ν2)=速度1(ν1)、角速度2(ω2)=角速度1(ω1)となるような、速度比(ν1/ν2)、角速度比(ω1/ω2)を速度2(ν2)、角速度比(ω2)をそれぞれ乗算すればよい。 If the above trajectories 101 and 102 were to be perfectly matched, then, as shown in equation 112 in Figure 1B, the velocity ratio (ν1/ν2) and angular velocity ratio (ω1/ω2) would be multiplied by velocity 2 (ν2) and angular velocity ratio (ω2), respectively, so that velocity 2 (ν2) = velocity 1 (ν1) and angular velocity 2 (ω2) = angular velocity 1 (ω1).

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

まず、自己位置1が正常に得られたときの速度比(ν1/ν2)と角速度比(ω1/ω2)を、ロボット300の位置と姿勢、速度2、角速度2(x,y,θ,ν2,ω2)と紐づけてデータベース(以下、DB)の補正情報へ登録しておく。 First, the velocity ratio (ν1/ν2) and angular velocity ratio (ω1/ω2) when self-position 1 is obtained normally are linked to the position and orientation of robot 300, velocity 2, and angular velocity 2 (x, y, θ, ν2, ω2), and registered as correction information in the 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 or other reason, the speed ratio and angular velocity ratio closest to the current robot state (x, y, θ, v2, ω2) are searched for and used for correction from the speed ratios and angular velocity ratios registered in the DB. Specifically, the speed 1 and angular velocity 1 that would have been obtained if no error had occurred are calculated by approximating them using the following formulas.

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

上記式から算出された速度1(近似)と角速度1(近似)を上記式100に適用することで、自己位置1(近似)が計算できる。したがって、本手法により、自己位置1がエラーにより得られなかった場合でも、自己位置2における速度及び角速度から自己位置1と同等精度の自己位置(補正自己位置)が復元できる。なお、自己位置2は、ロボット300が自己位置1を取得するタイミングでエラーが発生したときの位置及び向きを示す。 By applying the velocity 1 (approximation) and angular velocity 1 (approximation) calculated from the above equation to the above equation 100, the self-position 1 (approximation) can be calculated. Therefore, with this method, even if the self-position 1 cannot be obtained due to an error, a self-position (corrected self-position) with the same accuracy as the self-position 1 can be restored from the velocity and angular velocity at the self-position 2. Note that the self-position 2 indicates the position and orientation when an error occurs 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 robot control system according to an embodiment of the present invention will be described using Figures 3A to 3C. Figure 3A is a block diagram showing an example of the hardware of the robot control system. Figure 3B is a perspective view of the robot 300, and Figure 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. Note that while this embodiment will be described using a simple example of one robot and one server, it can also be applied to a large-scale robot control system with multiple robots 300 and multiple servers 1.

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

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

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

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

本実施例のロボット300には自己位置を認識するためのセンサが2種類搭載されている。第1のセンサはステレオカメラ301である。本実施例ではサーバ320がステレオカメラ301の画像から非特許文献1に記載されているVisual SLAMの機能を用いて自己位置(自己位置1)を計算する。Visual SLAM機能については後述する。 The robot 300 in 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 its own position (self-position 1) from the images captured by 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 pair of encoders 302 provide the rotation angles of the left and right wheels 303, and the server 320 calculates the speed and angular velocity from the encoder values. The method for calculating self-position 1 will be described later.

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

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

まず、自己位置1を算出する手法について説明する。画像取得及び配信部401は、ステレオカメラ301からステレオ画像を取得し、Visual SLAM422へ配信するプログラムである。 First, we will explain the method for calculating self-position 1. The image acquisition and distribution unit 401 is a program that acquires stereo images from the stereo camera 301 and distributes them to 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 representative Visual SLAM program is "OpenVSLAM: A Versatile Visual SLAM Framework" from the aforementioned Non-Patent Document 1.

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

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

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

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

次に、エンコーダ302から速度2、角速度2を算出する手法について説明する。エンコーダ値取得及び配信部402は、車輪303の回転角度を表すエンコーダ値をエンコーダ302から読み取り、速度2及び角速度2算出部423へ配信するプログラムである。 Next, we will explain the method for calculating velocity 2 and angular velocity 2 from encoder 302. The encoder value acquisition and distribution unit 402 is a program that reads the encoder value representing the rotation angle of the wheel 303 from 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 each of the left and right wheels 303 approximately 100 times per second. The velocity 2 and angular velocity 2 calculation unit 423 calculates the travel distance per unit time of each wheel 303 from the increase or decrease in the encoder value per unit time.

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

速度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 using equation 200 in Figure 2, assuming that the travel distance of the left wheel is dl and the travel distance of the right wheel is dr, and transmits the velocity 2 (ν2) and angular velocity 2 (ω2) 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 is a program that receives as input the self-position 1 and error signal delivered from the visual SLAM 422, and the velocity 2 and angular velocity 2 delivered from the velocity 2 and angular velocity 2 calculation unit 423, and outputs a corrected self-position (estimated position and attitude) using correction information 702 stored in the database (DB) 425 when the 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 path following program 427 is a program that uses the corrected self-position and path information to make the robot 300 travel along a preset path. The path following program 427 generates information for driving the wheel motor 306, and drives the wheel motor 306 via the motor drive information distribution unit 424 and the motor drive unit 403. Note that the path following program 427, motor drive information distribution unit 424, and motor drive unit 403 can use well-known or publicly known technology, so detailed explanations of their functions will be omitted. This concludes the explanation of the software blocks.

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

補正情報登録処理510は、エラー信号が「1」となった場合に速度及び角速度から第1の自己位置(自己位置1)と同等の精度の自己位置(補正自己位置)を復元するための補正情報702(図7C参照)を登録する処理であり、自己位置補正処理520は、登録された補正情報を用いて自己位置を補正する処理である。 The correction information registration process 510 is a process for registering correction information 702 (see Figure 7C) 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." The self-position correction process 520 is a process for 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 (start 500 to end 508) will be explained. The program starts at start 500, and in the subsequent processing 501, the self-position correction unit 426 initializes the variable "previous self-position" to (0, 0, 0). "Previous self-position" is a variable that represents 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 step 502, the self-position correction unit 426 waits until it receives self-position 1 and an error signal. The self-position 1 and error signal are transmitted, for example, from Visual SLAM 422 at a frequency of 30 times per second.

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

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

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

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

処理504の判定結果がNoの場合、処理505において、自己位置補正処理520を実行するか否かの判定が行われる。具体的には、エラー信号が「1」(エラーが発生し自己位置1が得られなかった)の場合、自己位置補正処理520が実行される。自己位置補正処理520の詳細については後述する。 If the result of the determination in process 504 is No, then in process 505, a determination is made as to whether or not to execute self-position correction process 520. Specifically, if the error signal is "1" (an error has occurred and self-position 1 cannot be obtained), self-position correction process 520 is executed. Details of 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 so that self-position 1 can be used as the previous self-position in the next step. The self-position correction unit 426 also outputs self-position 1 as the corrected self-position. The corrected self-position is the position and orientation (x, y, θ) of the robot 300 after correction in the self-position correction process 520, and if the error signal = "0", the self-position is 1 without correction.

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

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

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

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

具体的には、前回自己位置=(x(t-1)、y(t-1)、θ(t-1))とし、自己位置1=(x(t)、y(t)、θ(t))とし、Δt=30分の1秒を上記式201へ代入して、速度1(ν1)、角速度1(ν1)を計算する。 Specifically, let previous self-position = (x(t-1), y(t-1), θ(t-1)), self-position 1 = (x(t), y(t), θ(t)), and substitute Δt = 1/30th of a second into the above formula 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 the velocity ratio from velocity 1 and velocity 2, and the angular velocity ratio from angular velocity 1 and angular velocity 2. Furthermore, in the next process 513, the self-position correction unit 426 links the velocity ratio and angular velocity ratio to the previous self-position (x(t-1), y(t-1), θ(t-1)), velocity 2 (ν2), and angular velocity 2 (ω2), and registers them in the correction information 702 of the DB 425. This completes the correction information registration process 510.

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

処理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 to search for the most matching velocity ratio and angular velocity ratio from the correction information 702 in DB 425. Details of this process will be described later.

検索結果として速度比、角速度比が得られた場合、処理522の判定においてYes側に分岐する。速度比及び角速度比が得られなかった場合は、No側に分岐し、処理532において、速度比=1.0と角速度比=1.0がセットされる。次の処理524では、エラーが発生しなかった場合に、得られたであろう速度1の推定値と角速度1の推定値を次式202を用いて計算する。 If a velocity ratio and angular velocity ratio are obtained as search results, the process branches to Yes in the judgment of process 522. If a velocity ratio and angular velocity ratio are not obtained, the process branches to No, and in process 532, the velocity ratio = 1.0 and angular velocity ratio = 1.0 are set. In the next process 524, the estimated values of velocity 1 and 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 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 Figure 1. Specifically, self-position 1 (x(t), y(t), θ(t)) is calculated using (x(t-1), y(t-1), θ(t-1)) = previous self-position, ν(t) = velocity 1 (ν1), ω(t) = angular velocity 1 (ω1), and Δt = 1/30th of a second.

処理525が終了すると処理506に進む。以上が自己位置補正処理520である。 When process 525 is complete, proceed to process 506. This completes self-position correction process 520.

なお、エラーが継続して発生する場合、自己位置補正部426は自己位置1(推定位置及び推定姿勢)と、推定位置における速度2(ν2)と、推定姿勢における角速度2(ω2)で補正情報702を検索して上述したように検索結果から速度比及び角速度比を取得する。 If the error continues to occur, the self-position correction unit 426 searches for correction information 702 using the self-position 1 (estimated position and estimated attitude), velocity 2 (ν2) at the estimated position, and angular velocity 2 (ω2) at the estimated attitude, and obtains 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 an estimate of velocity 1 (ν1) at the estimated position and an estimate of angular velocity 1 (ω1) at the estimated attitude from the acquired velocity ratio and angular velocity ratio, velocity 2 (ν2) at the estimated position, and angular velocity 1 (ω2) at the estimated attitude, and calculates self-position 1 based on the calculated estimate of velocity 1 (ν1) at the estimated position and the estimated value of angular velocity 1 (ω1) at the estimated attitude.

次に図5の処理521のDB検索処理の詳細について図6を用いて説明する。本処理は例えば、関数として実装されており、図中の引数600は当該関数の引数である。 Next, the details of the DB search process of process 521 in Figure 5 will be explained using Figure 6. This process is implemented, for example, as a function, and argument 600 in the figure is the argument of that 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を引数に設定して本関数を実行する。 The position and orientation (x, y, θ) of the robot 300 are set as the search keys ix, iy, iθ, velocity 2 (ν2) and angular velocity 2 (ω2) are set as inv2 and iω2, the search ranges s1, s2, s3, s4, and s5 are set to the search ranges of ix, iy, iθ, inv2, and iω2, and mode is set to mode = 0 to return the velocity and angular velocity with the highest degree of match, or modo = 1 to return the average of the matched velocity and angular velocity, and this function is executed with this argument set.

処理601では、自己位置補正部426がDB425の補正情報702に格納されている速度比、角速度比の中から、ロボット300の現在位置(x、y)付近の速度比と角速度比を次の条件式203で検索する。 In process 601, the self-position correction unit 426 searches for the velocity ratio and angular velocity ratio near the current position (x, y) of the robot 300 from the velocity ratios and angular velocity ratios stored in the correction information 702 of the DB 425 using the following conditional expression 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 preset constants for searching for data in the vicinity (predetermined range) of the positions ix and iy that serve as search keys.
If the self-position correction unit 426 finds even one velocity ratio and angular velocity ratio, it branches to Yes in process 602, and if not, it branches to No.

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

(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 preset constants used to search for data in the vicinity (predetermined range) of the direction θ, velocity 2ν2, and angular velocity 2ω2, which serve as the second search key.

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

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

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

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

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

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

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

補正情報702は走行中にロボット300から取得した位置情報(図7AのP100からP120、図7BのP200からP260)と各位置における走行状態を登録した情報である。 Correction information 702 is information that registers position information (P100 to P120 in Figure 7A, P200 to P260 in Figure 7B) obtained from robot 300 while it is moving, and the moving conditions at each position.

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

凡例7021は、サーバ320が設定した識別子を格納する。位置7022は。ロボット300の位置(x、y)を格納し、向き7023はロボット300の向きθを格納する。 The legend 7021 stores the identifier set by the server 320. The position 7022 stores the position (x, y) of the robot 300, 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が指定した事項を格納する。 Velocity 7024 stores a search key consisting of velocity 2 (ν2) and angular velocity 2 (ω2) obtained from the encoder 302. Velocity ratio 7025 stores velocity 2 calculated using equation 200 above. Angular velocity ratio 7026 stores angular velocity ω2 calculated using equation 200 above. Remarks 7027 stores items specified by the server 320.

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

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

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

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

図8は右折等の場合の運動種別毎の補正情報の一例を示す図である。直進や右折等では、ロボット300の運動種別に応じた補正情報702が必要と考えられる。 Figure 8 shows an example of correction information for each type of movement, such as when turning right. It is considered that correction information 702 according to the type of movement of the robot 300 is required when going straight or turning right.

図中軌跡800Lと800Rはロボット300の直進時の左右の車輪303の軌跡である。軌跡801Lと801Rはロボット300の右折時の左右の車輪303の軌跡である。 In the figure, trajectories 800L and 800R 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 low coefficient of friction, making it easy for wheels 303 to slip. In the example shown, robot 300 does not pass over area 803 when traveling straight, but does pass over it when turning right.

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

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

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

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

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

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

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

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

項目「加速度」及び「角加速度」の追加により、より細かい運動種別に応じたロボット300の位置の補正が可能になる。 The addition of the "Acceleration" and "Angular Acceleration" items makes it possible to correct the robot 300's position according to more detailed types of movement.

項目「積載物の重量」の追加により、ロボット300の重さで車輪303の周長が変わる場合に位置の補正が可能になる。ただし、「積載物の重量」の項目は車輪303が弾性変形する場合に適用可能である。また、車輪303が空気タイヤの場合、項目「車輪の空気圧」の追加により、車輪303の空気圧に応じて車輪303の周長が変化する場合の補正が可能になる。項目「車輪の周長」の追加により、車輪303の摩耗により車輪303の周長が変化する場合の補正が可能になる。 The addition of the "Load Weight" item makes it possible to correct the position when the circumference of the wheels 303 changes due to the weight of the robot 300. However, the "Load Weight" item is applicable when the wheels 303 are elastically deformed. Also, if the wheels 303 are pneumatic tires, the addition of the "Wheel Air Pressure" item makes it possible to correct when the circumference of the wheels 303 changes depending on the air pressure of the wheels 303. The addition of the "Wheel Circumference" item makes it possible to correct when the circumference of the wheels 303 changes due to wear on the wheels 303.

項目「車輪のトルク」の追加により、路面の摩擦係数に応じた補正が可能になる。項目「温度」、「湿度」の追加により、路面の湿り具合による補正が可能になる。 The addition of the "Wheel Torque" item allows for corrections based on the road surface's friction coefficient. The addition of the "Temperature" and "Humidity" items allows for corrections based on the wetness of the road surface.

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

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

物流倉庫では、作業者の勤務時間外や休憩時間にロボット300を停止させる運用を行う場合がある。そのようなロボット300が搬送作業を行わない時間帯において、DB登録フラグ=1としてロボット300を経路上で走行させてDB425の補正情報702を更新する案が考えられる。 In logistics warehouses, robots 300 may be stopped outside of working hours or during breaks. During such times when robots 300 are not performing transport work, one possible solution is to set the DB registration flag to 1, run the robot 300 along the route, and update the correction information 702 in DB 425.

Visual SLAM422は、予め作成した地図421を読み込んで、地図421とステレオカメラ301から得られたステレオ画像とを照合して自己位置推定を行う。 Visual SLAM 422 loads a pre-created map 421 and compares the map 421 with the stereo images obtained from the stereo camera 301 to estimate the vehicle's position.

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

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

(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 velocity ratio and angular velocity ratio, it is also possible to store velocity 1 (ν1), angular velocity 1 (ω1), velocity 2 (ν2), and angular velocity 2 (ω2) that can calculate these. The database may also be in the form of a key-value store or JSON document structure. Furthermore, in addition to the rule-based method shown in Example 1, the velocity ratio and angular velocity ratio may be calculated using machine learning or other methods by inputting position information, orientation, and velocity (x, y, θ, ν2, ω2).

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

具体的には、自己位置補正処理520が実行される場合、一定の距離を超えて自己位置補正処理520が継続される場合、ロボット300を停止させる。あるいは、自己位置補正処理520が継続して実行されている間、通常よりも速度を落としてロボット300を走行させる。あるいは、ロボット300の車体のランプ(テールランプやウインカー309等)を点灯、あるいは点滅、点滅パターンを早めたり遅めたりしながら走行させる。あるいは、ホーン310で音を鳴らす、音楽を鳴らしながら走行させる等、考えられる。 Specifically, when the self-position correction process 520 is executed, if the self-position correction process 520 continues beyond a certain distance, the robot 300 is stopped. Alternatively, while the self-position correction process 520 is continuously executed, the robot 300 is made to travel at a slower speed than normal. Alternatively, the robot 300 is made to travel while its body lamps (tail lamps, blinkers 309, etc.) are turned on or flashing, or the flashing pattern is made to speed up or slow down. Alternatively, the robot 300 may be made to travel while sounding the horn 310 or playing music, etc.

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

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

(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 memory estimates the position of a mobile robot (300), the mobile robot (300) having a first sensor unit (stereo camera 301) that acquires first sensing information (stereo images) from the traveling state of the mobile robot (300), and a second sensor unit (encoder 302) that has a sensor different from the first sensor unit (301) and acquires second sensing information (rotation angle of wheels 303) from the traveling state of the mobile robot (300), the server (320) acquires first traveling state information including a first position and a first attitude (θ) at the first position obtained from the first sensing information (stereo images), and a second velocity (ν2) and a second angular velocity (ω2) of the mobile robot (300) obtained from the second sensing information (rotation angle of wheels 303). and second driving state information including information on the first position and the second driving state information, and a calculation unit (self-position correction unit 426) capable of calculating an estimated position (corrected self-position) of the mobile robot (300) based on the information on the first driving state and the information on the second driving state. The calculation unit (426) calculates the first position and the first attitude (θ) based on first sensing information (stereo images) acquired from the first sensor unit (301), and, if an error occurs during the calculation of the first position, calculates the estimated position (corrected self-position) of the mobile robot (300) based on second driving state information (velocity 2, angular velocity 2) acquired from the second sensing information (rotation angle of the wheels 303) and the correspondence information (correction information 702).

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

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

上記構成により、エンコーダ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) can be calculated from velocity 2 (ν2) obtained from encoder 302 and the velocity ratio (ν1/ν2) recorded in correction information 702, angular velocity 1 (ω1) can be calculated from second angular velocity (ω2) obtained from encoder 302 and the angular velocity ratio (ω1/ω2) recorded in correction information 702, and corrected self-position (self-position 1) can be calculated from velocity 1 (ν1) and angular velocity 1 (ω1). As a result, even if self-position 1 cannot be obtained from stereo images due to an error, corrected self-position can be calculated based on velocity 2 and angular velocity 2 obtained from encoder 302, and self-position 1 (corrected self-position) with the same accuracy as self-position 1 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) The robot control system described in (2) above, wherein, when there is no error and the preset registration information (DB registration flag) is valid ("1"), the calculation unit (self-position correction unit 426) acquires the first velocity (ν1) and the first angular velocity (ω1), calculates the velocity ratio (ν1/ν2) and the angular velocity ratio (ω1/ω2) from the second velocity (ν2) and the second angular velocity (ω2), and registers the second velocity (ν2), the second angular velocity (ω2), the velocity ratio (ν1/ν2), and the angular velocity ratio (ω1/ω2) in the correspondence information (correction information 702) in association with the first position (self-position 1) and the first attitude (θ).

上記構成により、自己位置補正部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 the calculation of self-position 1 and the DB registration flag is enabled, the self-position correction unit 426 acquires velocity 1 and angular velocity 1, and associates the velocity ratio (ν1/ν2) and angular velocity ratio (ω1/ω2) from velocity 2 (ν2) and angular velocity 2 (ω2) with self-position 1 and the first attitude (θ), and registers these in the correspondence information (correction information 702), which can be used to restore self-position 1 in the event of an error. Note that velocity 1 and angular velocity 1 may also be calculated from the difference between the previous and current values of 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) The robot control system described in (2) above, wherein, when the error occurs, the calculation unit (self-position correction unit 426) searches the correspondence information (correction information 702) using information on the first position (self-position 1) and the first orientation (θ) of the mobile robot before the error occurred, the second velocity (ν2), and the second angular velocity (ω2), obtains the velocity ratio (ν1/ν2) and the angular velocity ratio (ω1/ω2) from the search results, and calculates the position and orientation of the mobile robot as an estimated position and estimated orientation based on the estimated value of the first velocity (ν1) and the estimated value of the first angular velocity (ω1) from the obtained velocity ratio (ν1/ν2) and angular velocity ratio (ω1/ω2), the second velocity (ν2), and the second angular velocity (ω2).

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

(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 described in (4) above, when the error occurs, the calculation unit (self-position correction unit 426) searches the correspondence information (correction information 702) using the estimated position and estimated attitude calculated by the calculation unit (426), the second velocity (ν2) at the estimated position, and the second angular velocity (ω2) at the estimated attitude, obtains the velocity ratio (ν1/ν2) and angular velocity ratio (ω1/ω2) from the search results, and a robot control system that calculates an estimate of the first velocity (ν1) at the estimated position and an estimate of the first angular velocity (ω1) at the estimated posture from (ω1/ω2), the second velocity (ν2) at the estimated position, and the second angular velocity (ω2) at the estimated posture, and calculates the position and posture of the mobile robot based on the calculated estimate of the first velocity (ν1) at the estimated position and the estimated value of the first angular velocity (ω1) at the estimated posture.

上記構成により、自己位置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 can continue to estimate the position and attitude of the mobile robot by using the calculated estimated position and attitude, even while the error continues.

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

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

(7)上記(2)に記載のロボット制御システムであって、前記対応関係情報(補正情報702)は、前記第1の位置(自己位置1)と、前記第1の姿勢(θ)と、前記速度比(ν1/ν2)と、前記角速度比(ω1/ω2)を含むことを特徴とするロボット制御システム。 (7) The robot control system described in (2) above, wherein 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).

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

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

上記構成により、「日時」の追加により、最新の補正情報702を選択的に検索できる。「加速度」及び「角加速度」の追加により、より細かい運動種別に応じたロボット300の位置の補正が可能になる。「積載物の重量」の追加により、ロボット300の重さで車輪303の周長が変わる場合に位置の補正が可能になる。車輪303が空気タイヤの場合、「車輪の空気圧」の追加により、車輪303の空気圧に応じて車輪303の周長が変化する場合の補正が可能になる。「車輪の周長」の追加により、車輪303の摩耗により車輪303の周長が変化する場合の補正が可能になる。「車輪のトルク」の追加により、路面の摩擦係数に応じた補正が可能になる。「温度」、「湿度」の追加により、路面の湿り具合による補正が可能になる。「ロボット固有ID」の追加により、個々のロボット300の癖や特徴に応じた補正が可能になる。 With the above configuration, adding "date and time" allows for selective retrieval of the latest correction information 702. Adding "acceleration" and "angular acceleration" allows for more precise correction of the robot 300's position according to the type of movement. Adding "load weight" allows for position correction when the circumference of the wheels 303 changes due to the weight of the robot 300. If the wheels 303 are pneumatic tires, adding "wheel air pressure" allows for correction when the circumference of the wheels 303 changes depending on the air pressure of the wheels 303. Adding "wheel circumference" allows for correction when the circumference of the wheels 303 changes due to wear of the wheels 303. Adding "wheel torque" allows for correction according to the friction coefficient of the road surface. Adding "temperature" and "humidity" allows for correction according to the wetness of the road surface. Adding "robot-specific ID" allows for correction according to the habits and characteristics of each individual robot 300.

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

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

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

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

また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 Furthermore, the control and information lines shown are those deemed necessary for explanation, and do not necessarily represent all control and information lines on the product. In reality, it is safe to assume that almost all components are 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 a position of a mobile robot,
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 having a sensor different from the first sensor unit and configured to acquire second sensing information from the traveling state of the mobile robot;
The server
a storage unit that stores correspondence information indicating a correspondence between first running state information including a first position and a first orientation at the first position obtained from the first sensing information, and second running state information including a second velocity and a second angular velocity of the mobile robot obtained from the second sensing information, in association with the first position;
a calculation unit capable of calculating an estimated position of the mobile robot based on the information on the first running state and the information on the second running state,
The calculation unit
A robot control system characterized in that the first position and the first attitude are calculated based on first sensing information acquired from the first sensor unit, and if an error occurs when calculating the first position, 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の角速度の角速度比を含むことを特徴とするロボット制御システム。
2. The robot control system of claim 1,
The correspondence information is
a velocity ratio between a first velocity and the second velocity at the first position, and an angular velocity ratio between a first angular velocity and the second angular velocity at the first posture.
請求項2に記載のロボット制御システムであって、
前記演算部は、
前記エラーがなく、かつ予め設定された登録情報が有効の場合には、前記第1の速度と前記第1の角速度を取得し、前記第1の速度と前記第2の速度から前記速度比を算出し、前記第1の角速度と前記第2の角速度から前記角速度比を算出し、前記第1の位置と前記第1の姿勢に対応づけて、前記第2の速度と前記第2の角速度と前記速度比と前記角速度比を前記対応関係情報に登録することを特徴とするロボット制御システム。
3. The robot control system according to claim 2,
The calculation unit
and, if there is no error and the preset registration information is valid, acquiring the first velocity and the first angular velocity, calculating the velocity ratio from the first velocity and the second velocity, calculating the angular velocity ratio from the first angular velocity and the second angular velocity, and registering the second velocity, the second angular velocity, the velocity ratio, and the angular velocity ratio in the correspondence information in association with the first position and the first attitude.
請求項2に記載のロボット制御システムであって、
前記演算部は、
前記エラーが生じた場合には、前記エラー発生前の前記移動ロボットの前記第1の位置及び前記第1の姿勢の情報と、前記第2の速度と、前記第2の角速度とで前記対応関係情報を検索し、検索結果から速度比及び角速度比とを取得して、当該取得した速度比及び角速度比と前記第2の速度と前記第2の角速度とから前記第1の速度の推定値及び前記第1の角速度の推定値を算出し、前記算出された前記第1の速度の推定値及び前記第1の角速度の推定値に基づいて、前記移動ロボットの位置及び姿勢を推定位置及び推定姿勢として算出することを特徴とするロボット制御システム。
3. The robot control system according to claim 2,
The calculation unit
and when the error occurs, searching for the correspondence information using information on the first position and first orientation of the mobile robot before the error occurred, the second velocity, and the second angular velocity, obtaining a velocity ratio and an angular velocity ratio from the search results, calculating an estimated value of the first velocity and an estimated value of the first angular velocity from the obtained velocity ratio and angular velocity ratio, the second velocity, and the second angular velocity, and calculating an estimated position and orientation of the mobile robot based on the calculated estimated value of the first velocity and the first estimated value of the first angular velocity.
請求項4に記載のロボット制御システムであって、
前記演算部は、
前記エラーが生じた場合には、前記演算部の算出した前記推定位置及び前記推定姿勢と、前記推定位置における前記第2の速度と、前記推定姿勢における前記第2の角速度とで前記対応関係情報を検索し、検索結果から速度比及び角速度比を取得して、当該取得した速度比及び角速度比と前記推定位置における前記第2の速度と前記推定姿勢における前記第2の角速度とから前記推定位置における前記第1の速度の推定値と前記推定姿勢における前記第1の角速度の推定値とを算出し、前記算出された前記推定位置における前記第1の速度の推定値及び前記推定姿勢における前記第1の角速度の推定値に基づいて、前記移動ロボットの位置及び姿勢を算出することを特徴とするロボット制御システム。
5. The robot control system according to claim 4,
The calculation unit
and when the error occurs, searching the correspondence information using the estimated position and estimated attitude calculated by the calculation unit, the second velocity at the estimated position, and the second angular velocity at the estimated attitude, obtaining a velocity ratio and an angular velocity ratio from the search result, calculating an estimate of the first velocity at the estimated position and an estimate of the first angular velocity at the estimated attitude from the obtained velocity ratio and angular velocity ratio, the second velocity at the estimated position, and the second angular velocity at the estimated attitude, and calculating the position and attitude of the mobile robot based on the calculated estimate of the first velocity at the estimated position and the calculated estimate of the first angular velocity at the estimated attitude.
請求項4に記載のロボット制御システムであって、
前記演算部は、
前記対応関係情報を検索する際に、前記第1の位置を表す第1のキーで検索を行って、当該検索の結果に対して前記第1の姿勢と前記第2の速度と前記第2の角速度を表す第2のキーで検索を行うことを特徴とするロボット制御システム。
5. The robot control system according to claim 4,
The calculation unit
a robot control system characterized in that, when searching for the correspondence information, a search is performed using a first key representing the first position, and the search results are then searched using a second key representing the first attitude, the second velocity, and the second angular velocity.
請求項2に記載のロボット制御システムであって、
前記対応関係情報は、
前記第1の位置と、前記第1の姿勢と、前記速度比と、前記角速度比を含むことを特徴とするロボット制御システム。
3. The robot control system according to claim 2,
The correspondence information is
A robot control system comprising the first position, the first attitude, the velocity ratio, and the angular velocity ratio.
請求項7に記載のロボット制御システムであって、
前記対応関係情報は、
前記第1の位置と、前記第1の姿勢と、前記速度比と、前記角速度比に加えて、日時、加速度、角加速度、積載物の重量、車輪の空気圧、車輪の周長、車輪のトルク、温度、湿度、移動ロボット固有IDのうち、少なくともひとつを含むことを特徴とするロボット制御システム。
8. The robot control system of claim 7,
The correspondence information is
A robot control system characterized in that, in addition to the first position, the first attitude, the velocity ratio, and the angular velocity ratio, the information includes at least one of date and time, acceleration, angular acceleration, weight of a payload, wheel air pressure, wheel circumference, wheel torque, temperature, humidity, and a mobile robot unique ID.
請求項1に記載のロボット制御システムであって、
前記演算部は、
前記エラーによって前記第1の位置が取得できない場合には、前記移動ロボットに設けたランプの点滅、前記移動ロボットに設けたホーンからの音声出力、前記移動ロボットの減速及び停止の少なくともひとつを前記移動ロボットに指令することを特徴とするロボット制御システム。
2. The robot control system of claim 1,
The calculation unit
A robot control system characterized in that, when the first position cannot be obtained due to the error, the system instructs the mobile robot to do at least one of flashing a lamp provided on the mobile robot, outputting a sound from a horn provided on the mobile robot, and slowing down and stopping the mobile 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 a memory;
a mobile robot connected to the server and configured 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 having a sensor different from the first sensor unit and configured to acquire second sensing information from the traveling state of the mobile robot;
The server
a storage unit that stores correspondence information indicating a correspondence between a first position obtained from the first sensing information, first running state information including a first attitude at the first position, and second running state information including a second velocity and a second angular velocity of the mobile robot obtained from the second sensing information, in association with the first position;
a calculation unit capable of calculating an estimated position of the mobile robot based on the information on the first running state and the information on the second running state,
The calculation unit
a conveying system that calculates the first position and the first attitude based on first sensing information acquired from the first sensor unit, and, if an error occurs when calculating the first position, calculates an estimated position of the mobile robot based on second running state information acquired from the second sensing information and the correspondence 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 a position of a mobile robot, 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;
a third step in which the server stores, in a storage unit, correspondence information indicating a correspondence between first running state information including a first position and a first orientation at the first position obtained from the first sensing information, and second running state information including a second velocity and a second angular velocity of the mobile robot obtained from the second sensing information, in association with the first position;
a fourth step in which the server calculates the first position and the first attitude based on first sensing information acquired from the first sensor unit;
a fifth step in which, when an error occurs in calculating the first position, the server calculates an estimated position of the mobile robot based on second running state information acquired from the second sensing information and the correspondence information;
A robot control method comprising:
JP2022079239A 2022-05-13 2022-05-13 Robot control system, transport system, and robot control method Active JP7799554B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022079239A JP7799554B2 (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 JP7799554B2 (en) 2022-05-13 2022-05-13 Robot control system, transport system, and robot control method

Publications (2)

Publication Number Publication Date
JP2023167780A JP2023167780A (en) 2023-11-24
JP7799554B2 true JP7799554B2 (en) 2026-01-15

Family

ID=88730145

Family Applications (1)

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

Country Status (2)

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

Citations (1)

* 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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019053391A (en) * 2017-09-13 2019-04-04 日本電産シンポ株式会社 Moving body
JP7385388B2 (en) * 2019-07-22 2023-11-22 株式会社ダイヘン Self-position estimation device

Patent Citations (1)

* 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

Also Published As

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

Similar Documents

Publication Publication Date Title
US8306684B2 (en) Autonomous moving apparatus
US11921508B2 (en) Systems and methods for ground plane estimation
Amidi et al. Integrated mobile robot control
US11874660B2 (en) Redundant lateral velocity determination and use in secondary vehicle control systems
US8515612B2 (en) Route planning method, route planning device and autonomous mobile device
US7768417B2 (en) Moving apparatus, method, and medium for compensating position of the moving apparatus
US20090093907A1 (en) Robot System
US10921816B2 (en) Method and apparatus for producing map based on hierarchical structure using 2D laser scanner
CN113753028B (en) Driving support device, driving support method, and computer-readable recording medium
JP6386412B2 (en) Transport vehicle
JPWO2017158973A1 (en) Automated guided vehicle
KR20170118040A (en) Method and device for the estimation of car egomotion from surround view images
PH12022550897A1 (en) Unmanned ground vehicle and method for operating unmanned ground vehicle
JP2001515237A (en) Docking method of autonomous motion unit using guidance beam
US20070271003A1 (en) Robot using absolute azimuth and mapping method thereof
US12391265B2 (en) Pose component
CN112697153A (en) Positioning method of autonomous mobile device, electronic device and storage medium
JP6825715B2 (en) Mobile vehicle
JP7799554B2 (en) Robot control system, transport system, and robot control method
JP5439552B2 (en) Robot system
Seyr et al. Proprioceptive navigation, slip estimation and slip control for autonomous wheeled mobile robots
CN111688703A (en) Behavior prediction device
JP2019139696A (en) Vehicle control device
JP7522531B2 (en) Cruise control system
Marsim et al. LVI-Q: Robust LiDAR-Visual-Inertial-Kinematic Odometry for Quadruped Robots Using Tightly-Coupled and Efficient Alternating Optimization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241224

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251226

R150 Certificate of patent or registration of utility model

Ref document number: 7799554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150