Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR CONTROLLING A MOBILE ROBOT
Document Type and Number:
WIPO Patent Application WO/2020/207910
Kind Code:
A1
Abstract:
Disclosed is a method according to the invention for controlling a mobile robot (10), having the following, in particular cyclically repeated, steps: a1) approaching a first pose of a chassis (12) of the robot on a surface (20) in order to assume a first predefined pose (P1) of the chassis; b1) determining the first pose (P1') approached in this step a1); and an) approaching a second pose of the chassis on the surface in order to assume a second predefined pose (Pn) of the chassis after this step a1) in terms of time; wherein - a first correction is determined on the basis of a discrepancy between the approached and predefined first poses of the current step a1) and/or at least one earlier step a1), in particular a filter and/or mean value of these discrepancies; and step a1) is carried out again after this step an) in terms of time and the first pose is approached here on the basis of this previously determined first correction.

Inventors:
CAPRANO PASCAL (DE)
AHMAD BILAL (DE)
AKBAS ADIL (DE)
Application Number:
PCT/EP2020/059517
Publication Date:
October 15, 2020
Filing Date:
April 03, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
KUKA DEUTSCHLAND GMBH (DE)
International Classes:
G05D1/02; B25J9/16; G01C21/00
Domestic Patent References:
WO2017068417A22017-04-27
WO2017066870A12017-04-27
Foreign References:
US5957984A1999-09-28
Other References:
AGOSTINO MARTINELLI ET AL: "Simultaneous localization and odometry self calibration for mobile robot", AUTONOMOUS ROBOTS, KLUWER ACADEMIC PUBLISHERS, BO, vol. 22, no. 1, 16 September 2006 (2006-09-16), pages 75 - 85, XP019477650, ISSN: 1573-7527, DOI: 10.1007/S10514-006-9006-7
Attorney, Agent or Firm:
TILLMANN, Axel (DE)
Download PDF:
Claims:
Patentansprüche

1. Verfahren zum Steuern eines mobilen Roboters (10), mit den, insbesondere

zyklisch wiederholten, Schritten:

a1 ) Anfahren einer ersten Pose eines Fahrwerks (12) des Roboters auf einer Oberfläche (20) zum Einnehmen einer ersten vorgegebenen Pose (P1) des Fahrwerks;

b1 ) Ermitteln der in diesem Schritt a1 ) angefahrenen ersten Pose (P1‘); und an) Anfahren einer zweiten Pose des Fahrwerks auf der Oberfläche zum

Einnehmen einer zweiten vorgegebenen Pose (Pn) des Fahrwerks zeitlich nach diesem Schritt a1 );

wobei

- eine erste Korrektur auf Basis einer Abweichung zwischen der angefahrenen und vorgegebenen ersten Pose des aktuellen Schrittes a1) und/oder wenigstens eines früheren Schrittes a1 ), insbesondere eines Filter- und/oder Mittelwerts dieser Abweichungen, ermittelt wird; und

- Schritt a1) zeitlich nach diesem Schritt an) erneut durchgeführt und dabei die erste Pose auf Basis dieser zuvor ermittelten ersten Korrektur angefahren wird.

2. Verfahren nach Anspruch 1 , gekennzeichnet durch den Schritt:

bn) Ermitteln der in diesem Schritt an) angefahrenen zweiten Pose (Pn‘);

wobei

- eine zweite Korrektur (D,a) auf Basis einer Abweichung zwischen der

angefahrenen und vorgegebenen zweiten Pose des aktuellen Schrittes an) und/oder wenigstens eines früheren Schrittes an), insbesondere eines

Filter- und/oder Mittelwerts dieser Abweichungen, ermittelt wird; und

- Schritt an) zeitlich nach der erneuten Durchführung des Schrittes a1 ) ebenfalls erneut durchgeführt und dabei die zweite Pose auf Basis dieser zuvor ermittelten zweiten Korrektur angefahren wird.

3. Verfahren nach dem vorhergehenden Anspruch, gekennzeichnet durch die

Schritte:

ai) Anfahren einer dritten Pose des Fahrwerks auf der Oberfläche zum

Einnehmen einer dritten vorgegebenen Pose (Pi) des Fahrwerks zwischen Schritt a1 ) und Schritt an); und bi) Ermitteln der in diesem Schritt ai) angefahrenen dritten Pose (Pi‘);

wobei

- eine dritte Korrektur auf Basis einer Abweichung zwischen der angefahrenen und vorgegebenen dritten Pose des aktuellen Schrittes ai) und/oder wenigstens eines früheren Schrittes ai), insbesondere eines Filter- und/oder Mittelwerts dieser Abweichungen, ermittelt und

- Schritt ai) zeitlich zwischen den erneut durchgeführten Schritten a1) und an) ebenfalls erneut durchgeführt und dabei die dritte Pose auf Basis dieser zuvor ermittelten dritten Korrektur angefahren wird.

4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine ermittelte Korrektur einen Korrekturparameter, insbesondere eine Verschiebung (D) und/oder Verdrehung (a), oder eine neue, insbesondere verschobene und/oder verdrehte, vorgegebene Pose aufweist.

5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Roboter an wenigstens einer der angefahrenen Posen eine Applikation ausführt, insbesondere wenigstens ein T ransportgut (106) aufnimmt und/oder abgibt.

6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine vorgegebene Pose manuell, insbesondere durch Anfahren dieser Pose, vorgegeben ist.

7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Roboter wenigstens eine der Posen autonom oder ferngesteuert anfährt.

8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass wenigstens eine der angefahrenen Posen berührungslos, insbesondere mithilfe wenigstes einer, insbesondere roboterfesten, Kamera (13), wenigstes einem, insbesondere roboterfesten, Abstandssensor (14) und/oder einer

Umgebungskarte ermittelt wird.

9. System zum Steuern eines mobilen Roboters (10), das zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche eingerichtet ist und/oder aufweist:

- Mittel zum Anfahren einer ersten Pose eines Fahrwerks (12) des Roboters auf einer Oberfläche (20) zum Einnehmen einer ersten vorgegebenen Pose (P1 ) des Fahrwerks in einem Schritt a1 );

- Mittel zum Ermitteln der in diesem Schritt a1) angefahrenen ersten Pose (P1‘) in einem Schritt b1 );

- Mittel zum Anfahren einer zweiten Pose des Fahrwerks auf der Oberfläche

zum Einnehmen einer zweiten vorgegebenen Pose (Pn) zeitlich nach diesem

Schritt a1) in einem Schritt an);

- Mittel zum Ermitteln einer ersten Korrektur auf Basis einer Abweichung

zwischen der angefahrenen und vorgegebenen ersten Pose des aktuellen Schrittes a1 ) und/oder wenigstens eines früheren Schrittes a1 ), insbesondere eines Filter- und/oder Mittelwerts dieser Abweichungen; und

- Mittel zum erneuten Durchführen von Schritt a1 ) zeitlich nach diesem Schritt an) und Anfahren der ersten Pose auf Basis dieser zuvor ermittelten ersten

Korrektur dabei.

10. Computerprogrammprodukt mit einem Programmcode, der auf einem von einem Computer lesbaren Medium gespeichert ist, zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche.

Description:
Beschreibung

Verfahren zum Steuern eines mobilen Roboters

Die vorliegende Erfindung betrifft ein Verfahren und System zum Steuern eines mobilen Roboters sowie ein Computerprogrammprodukt zur Durchführung des Verfahrens.

Mittels Vorgabe, insbesondere Teachen, bestimmter Posen kann ein mobiler Roboter vorteilhaft gesteuert werden, beispielsweise, um verschiedene Arbeitsstationen anzufahren oder dergleichen.

Dabei werden vorgegebene Posen bislang häufig nicht ausreichend präzise angefahren. So kann beispielsweise die Dynamik und/oder der Verschleiß des Roboters zu einer Abweichung, zum Beispiel einem Überfahren einer vorgegebenen Pose oder dergleichen, führen. Zusätzlich oder alternativ können auch Änderungen der Umgebung zu einer unerwünschten Abweichung zwischen der vorgegebenen und tatsächlich angefahrenen Pose führen, beispielsweise ein anderer Reibbeiwert und/oder ein, insbesondere temporäres, Hindernis, das eine, gegebenenfalls temporäre, Änderung einer vorgegebenen Route zum Anfahren vorgegebener Posen bedingt.

Aus der WO 2017/066870 A1 ist ein Verfahren zum Navigieren eines Roboters längs einer Route bekannt, bei dem ein auf dem Roboter montierter Bildsensor ein Bild eines Ziels mit einem Zielcode aufnimmt, eine Distanz zwischen dem Roboter und dem Ziel ermittelt wird, und eine auf dem Zielcode basierende Anweisung zum Steuern des Roboters verwendet wird, falls die Distanz unterhalb eines

Distanzschwellwertes liegt.

Aufgabe der vorliegenden Erfindung ist es, das Steuern mobiler Roboter zu verbessern.

Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 9, 10 stellen ein System bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.

Nach einer Ausführung der vorliegenden Erfindung weist ein Verfahren zum Steuern eines mobilen Roboters die, in einer Ausführung zyklisch wiederholten, Schritte auf:

(in einem Zyklus jeweils)

a1) Anfahren einer Pose eines Fahrwerks des Roboters auf einer Oberfläche, insbesondere Bodenfläche, zum Einnehmen einer vorgegebenen Pose des Fahrwerks, wobei diese Posen ohne Beschränkung der Allgemeinheit als (angefahrene) erste Pose bzw. erste vorgegebene Pose bezeichnet werden; b1) Ermitteln der in diesem (aktuellen) Schritt a1) angefahrenen ersten Pose (des Fahrwerks); und

an) Anfahren einer weiteren Pose des Fahrwerks auf der Oberfläche zum

Einnehmen einer weiteren vorgegebenen Pose des Fahrwerks zeitlich nach diesem (aktuellen) Schritt a1 ), wobei diese weiteren Posen ohne

Beschränkung der Allgemeinheit als (angefahrene) zweite Pose bzw. zweite vorgegebene Pose bezeichnet werden.

In einer Ausführung ist das Fahrwerk ein omnidirektionales Fahrwerk und/oder weist Räder, insbesondere angetriebene und/oder antriebslose Räder und/oder gelenkte und/oder ungelenkte Räder, in einer Weiterbildung Allseiten- und/oder

Mecanum-Räder, Ketten oder dergleichen auf.

Eine Pose umfasst in einer Ausführung eine ein- oder zweidimensionale Position des Fahrwerks auf der Oberfläche, insbesondere Bodenfläche, und/oder eine Orientierung bzw. Winkellage des Fahrwerks um eine Oberflächennormale der Ober- bzw.

Bodenfläche.

In einer Ausführung weist der Roboter einen, insbesondere wenigstens dreiachsigen, in einer Ausführung wenigstens sechsachsigen, in einer Weiterbildung wenigstens siebenachsigen, Roboterarm auf. Hierdurch kann der Roboter in einer Ausführung vorteilhaft Applikationen an vorgegebenen Posen seines Fahrwerks ausführen. Nach einer Ausführung der vorliegenden Erfindung wird, in einer Weiterbildung im oder zeitlich nach dem aktuell( durchgeführt)en Schritt b1 ), eine vorliegend ohne Beschränkung der Allgemeinheit als erste Korrektur bezeichnete Korrektur auf Basis

- einer Abweichung zwischen der angefahrenen und vorgegebenen ersten Pose des aktuellen Schrittes a1 ) bzw. des Schrittes a1), an den sich der aktuelle Schritt b1) anschließt bzw. des Schrittes a1 ) des aktuellen Zyklus, und/oder

- einer Abweichung zwischen der angefahrenen und vorgegebenen ersten Pose wenigstens eines früher( bzw. vor dem aktuellen Schritt a1) durchgeführt)en Schrittes a1) bzw. des Schrittes a1) wenigstens eines früheren Zyklus,

insbesondere

- den Abweichungen zwischen der angefahrenen und vorgegebenen ersten Pose mehrerer früher(bzw. vor dem aktuellen Schritt a1) durchgeführt)er Schritte a1 ) bzw. der Schritte a1 ) mehrerer früherer Zyklen,

ermittelt, in einer Ausführung auf Basis eines Filter- und/oder Mittelwerts dieser Abweichungen.

Nach einer Ausführung der vorliegenden Erfindung wird Schritt a1 ) zeitlich nach diesem Schritt an), insbesondere in einem nachfolgenden Zyklus, erneut durchgeführt und dabei die erste Pose auf Basis bzw. unter Berücksichtigung dieser zuvor ermittelten, insbesondere abgespeicherten, ersten Korrektur angefahren.

Hierdurch kann in einer Ausführung bei diesem erneuten Anfahren einer ersten Pose zum Einnehmen einer bzw. der ersten vorgegebenen Pose eine Abweichung zwischen dieser vorgegebenen und der dabei tatsächlich angefahrenen Pose, in einer Ausführung selbstlernend, reduziert werden.

Dadurch kann in einer Ausführung die Präzision verbessert werden. Zusätzlich oder alternativ kann hierdurch in einer Ausführung eine Prozesszeit verbessert werden, insbesondere im Vergleich zu einem (reinen) Nachkorrigieren jeweils nach Anfahren der Pose bzw. (noch) innerhalb eines Zyklus.

Durch die Berücksichtigung früherer Abweichungen und/oder eine Filterung und/oder Mittelwertbildung kann in einer Ausführung vorteilhaft die Steuerung iterativ und/oder selbstlernend bzw. adaptiv verbessert werden. Insbesondere können hierdurch kontinuierliche und/oder temporäre Veränderungen des Roboters und/oder seiner Umwelt vorteilhaft wenigstens teilweise kompensiert werden. Führt beispielsweise zunehmender Verschleiß des Roboters und/oder abnehmende Reibung mit der Oberfläche zu einem zunehmend stärkeren Überfahren vorgegebener Posen, kann dies selbstlernend durch entsprechend( ermittelte Korrekturen wenigstens teilweise kompensiert werden. Führt zum Beispiel ein, insbesondere temporäres, Hindernis zu einer (temporären) Änderung einer Route des Roboters zum Anfahren vorgegebener Posen, wobei diese aufgrund dieser Routenänderung schlecht(er) angefahren werden, kann auch dies selbstlernend durch entsprechend( ermittelt)e Korrekturen wenigstens teilweise kompensiert werden.

In einer Ausführung weist das Verfahren bzw. der jeweilige Zyklus den (zusätzlichen) Schritt auf:

bn) Ermitteln der in dem (aktuellen) Schritt an) angefahrenen zweiten Pose.

In einer Weiterbildung wird (dann), insbesondere in oder zeitlich nach diesem aktuellen Schritt bn), eine - vorliegend ohne Beschränkung der Allgemeinheit als zweite Korrektur bezeichnete - Korrektur auf Basis

- einer Abweichung zwischen der angefahrenen und vorgegebenen zweiten Pose des aktuellen Schrittes an) bzw. des Schrittes an), an den sich der aktuelle Schritt bn) anschließt bzw. des Schrittes an) des aktuellen Zyklus, und/oder

- einer Abweichung zwischen der angefahrenen und vorgegebenen zweiten Pose wenigstens eines früher(bzw. vor dem aktuellen Schritt an) durchgeführt)en

Schrittes an) bzw. des Schrittes an) wenigstens eines früheren Zyklus,

insbesondere

- den Abweichungen zwischen der angefahrenen und vorgegebenen zweiten Pose mehrerer früher(bzw. vor dem aktuellen Schritt an) durchgeführt)er Schritte an) bzw. der Schritte an) mehrerer früherer Zyklen,

ermittelt, in einer Ausführung auf Basis eines Filter- und/oder Mittelwerts dieser Abweichungen.

In einer Ausführung wird Schritt an) zeitlich nach der erneuten Durchführung des Schrittes a1), insbesondere also in dem nachfolgenden Zyklus, ebenfalls erneut durchgeführt und dabei die zweite Pose auf Basis bzw. unter Berücksichtigung dieser zuvor ermittelten, insbesondere abgespeicherten, zweiten Korrektur angefahren. In einer Ausführung weist das Verfahren bzw. der jeweilige Zyklus den (zusätzlichen) Schritt auf:

ai) Anfahren wenigstens einer weiteren Pose des Fahrwerks auf der Oberfläche zum Einnehmen einer weiteren vorgegebenen Pose des Fahrwerks zeitlich zwischen (dem aktuellen) Schritt a1 ) und (dem aktuellen) Schritt an), wobei diese weiteren Posen ohne Beschränkung der Allgemeinheit als (angefahrene) dritte Pose bzw. dritte vorgegebene Pose bezeichnet werden; und

bi) Ermitteln der in diesem (aktuellen) Schritt ai) angefahrenen dritten Pose.

In einer Weiterbildung wird (dann), in einer Ausführung in oder zeitlich nach diesem aktuellen Schritt bi), eine - vorliegend ohne Beschränkung der Allgemeinheit als dritte Korrektur bezeichnete - Korrektur auf Basis

- einer Abweichung zwischen der angefahrenen und vorgegebenen dritten Pose des aktuellen Schrittes ai) bzw. des Schrittes ai), an den sich der aktuelle Schritt bi) anschließt bzw. des Schrittes ai) des aktuellen Zyklus, und/oder

- einer Abweichung zwischen der angefahrenen und vorgegebenen dritten Pose wenigstens eines früher(bzw. vor dem aktuellen Schritt ai) durchgeführt)en

Schrittes ai) bzw. des Schrittes ai) wenigstens eines früheren Zyklus,

insbesondere

- den Abweichungen zwischen der angefahrenen und vorgegebenen dritten Pose mehrerer früher(bzw. vor dem aktuellen Schritt ai) durchgeführt)er Schritte ai) bzw. der Schritte ai) mehrerer früherer Zyklen,

ermittelt, in einer Ausführung auf Basis eines Filter- und/oder Mittelwerts dieser Abweichungen.

In einer Ausführung wird Schritt ai) zeitlich zwischen der erneuten Durchführung des Schrittes a1) und der erneuten Durchführung des Schrittes an), in einer Ausführung in dem nachfolgenden Zyklus, ebenfalls erneut durchgeführt und dabei die dritte Pose auf Basis bzw. unter Berücksichtigung dieser zuvor ermittelten, insbesondere abgespeicherten, dritten Korrektur angefahren.

Somit werden in einer Ausführung zusätzlich zu der ersten vorgegebenen Pose auch wenigstens eine zweite vorgegebene Pose, in einer Weiterbildung auch eine oder mehrere dazwischen angefahrene bzw. vorgegebene dritte Posen, in analoger Weise korrigiert. Hierdurch kann in einer Ausführung die Steuerung (weiter) verbessert werden.

In einer Ausführung sind die erste, zweite und gegebenenfalls dritte(n) Pose(n) Teil, insbesondere Knoten bzw.„nodes“, einer vorgegebenen Route und/oder durch Kanten bzw.„edges“ verbunden.

In einer Ausführung weist die ermittelte erste Korrektur einen Korrekturparameter, in einer Weiterbildung eine Verschiebung und/oder Verdrehung, der ersten

vorgegebenen Pose auf. Zusätzlich oder alternativ weist in einer Ausführung die ermittelte zweite Korrektur einen Korrekturparameter, in einer Weiterbildung eine Verschiebung und/oder Verdrehung, der zweiten vorgegebenen Pose auf. Zusätzlich oder alternativ weist in einer Ausführung die ermittelte dritte Korrektur (jeweils) einen Korrekturparameter, in einer Weiterbildung eine Verschiebung und/oder Verdrehung, der (jeweiligen) dritten vorgegebenen Pose auf.

In einer Ausführung wird dieser Korrekturparameter beim Anfahren der jeweiligen vorgegebenen Pose berücksichtigt, insbesondere zu dieser hinzuaddiert. In einer Ausführung wird beim erneuten Durchführen des Schrittes a1 ), an) bzw. ai) somit versucht, die bisher vorgegebene Pose anzufahren, und dabei zusätzlich der

Korrekturparameter berücksichtigt, insbesondere zu dieser hinzuaddiert, bzw. die bisher vorgegebene Pose (auch) auf Basis dieses Korrekturparameters angefahren bzw. anzufahren versucht. Dadurch kann in einer Ausführung eine (erste, zweite bzw. dritte) vorgegebene Pose vorteilhaft mehrfach genutzt und/oder eine vorteilhafte Filterung bzw. Mittelwertbildung realisiert werden.

In einer Ausführung weist die ermittelte erste Korrektur eine neue, in einer

Weiterbildung verschobene und/oder verdrehte, erste vorgegebene Pose auf.

Zusätzlich oder alternativ weist in einer Ausführung die ermittelte zweite Korrektur eine neue, in einer Weiterbildung verschobene und/oder verdrehte, zweite

vorgegebene Pose auf. Zusätzlich oder alternativ weist in einer Ausführung die ermittelte dritte Korrektur (jeweils) eine neue, in einer Weiterbildung verschobene und/oder verdrehte, dritte vorgegebene Pose auf. In einer Ausführung wird diese neue vorgegebene Pose beim erneuten Durchführen des Schrittes a1), an) bzw. ai) anstelle der bisherigen vorgegebenen Pose genutzt, in einer Ausführung an ihrer statt abgespeichert, und dadurch zusätzlich die Korrektur berücksichtigt bzw. die Pose zum Einnehmen der (neuen) vorgegebenen Pose auf Basis der Korrektur angefahren. Dadurch kann in einer Ausführung Speicherbedarf und/oder die Prozesszeit reduziert werden.

In einer Ausführung führt der Roboter an der angefahrenen ersten, zweiten und/oder dritten Pose (jeweils) eine Applikation aus, in einer Ausführung nimmt er dort ein oder mehrere T ransportgüter auf und/oder gibt dort ein oder mehrere Transportgüter ab.

Bei solchen Roboter(applikatione)n kann die vorliegende Erfindung mit besonderem Vorteil verwendet werden. Insbesondere können so vorgegebene Posen,

insbesondere Arbeitsstationen, bei Bedarf verändert und diese anschließend vorteilhaft, insbesondere schnell(er) und/oder präzise(r) angefahren werden.

Durch die Ermittlung der Korrektur auf Basis von angefahrenen Posen, an denen der Roboter Applikationen ausführt, kann die Korrektur der Posen vorteilhaft in den (Normal- bzw. Arbeits)Betrieb des Roboters integriert und hierdurch insbesondere eine Prozesszeit reduziert und/oder der Betrieb robust(er) ausgeführt werden.

In einer Ausführung ist, insbesondere wird, die erste, zweite und/oder dritte

vorgegebene Pose (jeweils) manuell, insbesondere durch (vorheriges) Anfahren, vorgegeben, in einer Ausführung durch Abspeichern dieser vorab angefahrenen Pose.

Hierdurch können Posen in einer Ausführung vorteilhaft, insbesondere schnell und/oder flexibel, vorgegeben werden.

In einer Ausführung fährt der Roboter die erste, zweite und/oder dritte Pose (jeweils) autonom an, insbesondere in den Schritten a1 ), an) und/oder ai). Hierdurch können in einer Ausführung autonome Roboter robust(er) arbeiten und/oder sich selbstlernend anpassen.

In einer Ausführung fährt der Roboter die erste, zweite und/oder dritte Pose (jeweils) ferngesteuert an, insbesondere zum Vorgeben der Pose(n) durch (vorheriges) Anfahren und/oder, insbesondere in einem (Normal- bzw. Arbeits)Betrieb des

Roboters durch eine zentrale Steuerung ferngesteuert.

In einer Ausführung wird die angefahrene erste, zweite und/oder dritte Pose (jeweils) berührungslos, in einer Weiterbildung mithilfe einer oder mehrerer, in einer

Ausführung roboterfester, Kameras, wenigstes einem oder mehreren, in einer

Ausführung roboterfesten, Abstandssensoren und/oder einer Umgebungskarte ermittelt. In einer Weiterbildung wird bzw. ist die erste, zweite und/oder dritte vorgegebene Pose in bzw. bezüglich der Umgebungskarte vorgegeben. Zusätzlich oder alternativ kann die Umgebung und/oder Umgebungskarte ortsspezifische bzw. unterschiedliche Codes aufweisen, die durch die Kamera(s) erfasst und auf deren Basis die angefahrene(n) Pose(n) ermittelt wird/werden. Die Umgebungskarte ist in einer Ausführung in einer Steuerung des mobilen Roboters, in einer anderen

Ausführung außerhalb des mobilen Roboters bzw. seiner Steuerung, in einer

Weiterbildung auf einem Server oder dergleichen abgespeichert.

Hierdurch kann in einer Ausführung die Ermittlung der angefahrenen Posen, insbesondere deren Zuverlässigkeit, Geschwindigkeit und/oder Präzision, verbessert werden.

In einer Ausführung wird die erste Korrektur zur Kompensation und/oder gegensinnig zu der Abweichung zwischen der angefahrenen und vorgegebenen ersten Pose des aktuellen Schrittes a1 ) und/oder wenigstens eines früheren Schrittes a1 ),

insbesondere des Filter- und/oder Mittelwerts dieser Abweichungen, bzw. derart bzw. mit der Maßgabe ermittelt, dass durch diese erste Korrektur bzw. das Anfahren der ersten Pose bei erneuter Durchführung des Schrittes a1 ) auf Basis dieser ersten Korrektur die Abweichung zwischen der angefahrenen und vorgegebenen ersten Pose bei erneuter Durchführung des Schrittes a1) (voraussichtlich) reduziert wird bzw. ist.

Zusätzlich oder alternativ wird in einer Ausführung die zweite Korrektur zur

Kompensation und/oder gegensinnig zu der Abweichung zwischen der angefahrenen und vorgegebenen zweiten Pose des aktuellen Schrittes an) und/oder wenigstens eines früheren Schrittes an), insbesondere des Filter- und/oder Mittelwerts dieser Abweichungen, bzw. derart bzw. mit der Maßgabe ermittelt, dass durch diese zweite Korrektur bzw. das Anfahren der zweiten Pose bei erneuter Durchführung des Schrittes an) auf Basis dieser zweiten Korrektur die Abweichung zwischen der angefahrenen und vorgegebenen zweiten Pose bei erneuter Durchführung des Schrittes an) (voraussichtlich) reduziert wird bzw. ist.

Zusätzlich oder alternativ wird in einer Ausführung die dritte Korrektur zur

Kompensation und/oder gegensinnig zu der Abweichung zwischen der angefahrenen und vorgegebenen dritten Pose des aktuellen Schrittes ai) und/oder wenigstens eines früheren Schrittes ai), insbesondere des Filter- und/oder Mittelwerts dieser

Abweichungen, bzw. derart bzw. mit der Maßgabe ermittelt, dass durch diese dritte Korrektur bzw. das Anfahren der dritten Pose bei erneuter Durchführung des Schrittes ai) auf Basis dieser dritten Korrektur die Abweichung zwischen der angefahrenen und vorgegebenen dritten Pose bei erneuter Durchführung des Schrittes ai)

(voraussichtlich) reduziert wird bzw. ist.

Nach einer Ausführung der vorliegenden Erfindung ist ein System, insbesondere hard- und/oder Software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet und/oder weist auf:

- Mittel zum Anfahren einer ersten Pose eines Fahrwerks des Roboters auf einer Oberfläche zum Einnehmen einer ersten vorgegebenen Pose des Fahrwerks in einem Schritt a1);

- Mittel zum Ermitteln der in diesem Schritt a1 ) angefahrenen ersten Pose in einem Schritt b1 );

- Mittel zum Anfahren einer zweiten Pose des Fahrwerks auf der Oberfläche zum Einnehmen einer zweiten vorgegebenen Pose des Fahrwerks zeitlich nach diesem Schritt a1 ) in einem Schritt an);

- Mittel zum Ermitteln einer ersten Korrektur auf Basis einer Abweichung zwischen der angefahrenen und vorgegebenen ersten Pose des aktuellen Schrittes a1 ) und/oder wenigstens eines früheren Schrittes a1), insbesondere eines

Filter- und/oder Mittelwerts dieser Abweichungen; und

- Mittel zum erneuten Durchführen von Schritt a1) zeitlich nach diesem Schritt an) und Anfahren der ersten Pose auf Basis dieser zuvor ermittelten ersten Korrektur dabei. In einer Ausführung weist das System bzw. sein(e) Mittel auf:

- Mittel zum Ermitteln der in dem Schritt an) angefahrenen zweiten Pose in einem Schritt bn);

- Mittel zum Ermitteln einer zweiten Korrektur auf Basis einer Abweichung zwischen der angefahrenen und vorgegebenen zweiten Pose des aktuellen Schrittes an) und/oder wenigstens eines früheren Schrittes an), insbesondere eines Filter- und/oder Mittelwerts dieser Abweichungen; und

- Mittel zum erneuten Durchführen von Schritt an) zeitlich nach der erneuten

Durchführung des Schrittes a1 ) und Anfahren der zweiten Pose auf Basis dieser zuvor ermittelten zweiten Korrektur dabei.

In einer Ausführung weist das System bzw. sein(e) Mittel auf:

- Mittel zum Anfahren einer dritten Pose des Fahrwerks auf der Oberfläche zum Einnehmen einer dritten vorgegebenen Pose des Fahrwerks zwischen Schritt a1) und Schritt an) in einem Schritt ai);

- Mittel zum Ermitteln der in diesem Schritt ai) angefahrenen dritten Pose in einem Schritt bi);

- Mittel zum Ermitteln einer dritten Korrektur auf Basis einer Abweichung zwischen der angefahrenen und vorgegebenen dritten Pose des aktuellen Schrittes ai) und/oder wenigstens eines früheren Schrittes ai), insbesondere eines Filter- und/oder Mittelwerts dieser Abweichungen;

- Mittel zum erneuten Durchführen von Schritt ai) zeitlich zwischen den erneut durchgeführten Schritten a1 ) und an) und Anfahren der dritten Pose auf Basis dieser zuvor ermittelten dritten Korrektur dabei.

In einer Ausführung weist das System bzw. sein(e) Mittel auf:

- Mittel zum Ausführen einer Applikation mithilfe des, insbesondere durch den, Roboter(s) an wenigstens einer der angefahrenen Posen, insbesondere zum Aufnehmen und/oder Abgeben wenigstens eines Transportguts;

- Mittel zum autonomen oder ferngesteuerten Anfahren wenigstens einer der Posen mit dem Roboter; und/oder

- Mittel zum Ermitteln wenigstens einer der angefahrenen Posen berührungslos, insbesondere mithilfe wenigstes einer, insbesondere roboterfesten, Kamera, wenigstes einem, insbesondere roboterfesten, Abstandssensor und/oder einer Umgebungskarte.

Ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem

Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten,

Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere,

insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit die Schritte solcher Verfahren ausführen kann und damit insbesondere den Roboter steuern kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere nicht flüchtiges, Speichermedium zum Speichern eines Programms bzw. mit einem darauf gespeicherten Programm aufweisen, insbesondere sein, wobei ein Ausführen dieses Programms ein System bzw. eine Steuerung, insbesondere einen Computer, dazu veranlasst, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen.

In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.

In einer Ausführung weist das System den Roboter auf.

Der Mittelwert der Abweichungen zwischen den ersten, zweiten bzw. dritten angefahrenen und vorgegebenen Posen ist in einer Ausführung ein gleitender Mittelwert und/oder ein Mittelwert über wenigstens drei Abweichungen und/oder höchstens 500 Abweichungen, insbesondere höchstens 200 Abweichungen, in einer Ausführung höchstens 100 Abweichungen, insbesondere höchstens 50 Abweichungen.

Der Filterwert der Abweichungen zwischen den ersten, zweiten bzw. dritten angefahrenen und vorgegebenen Posen filtert in einer Ausführung alle, in einer anderen Ausführung nur (zu) große Abweichungen.

Hierdurch kann in einer Ausführung jeweils, insbesondere in Kombination, ein rasche(re)s und/oder robuste(re)s, Selbstlernen realisiert werden.

Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:

Fig. 1 : ein System nach einer Ausführung der vorliegenden Erfindung; und

Fig. 2: ein Verfahren nach einer Ausführung der vorliegenden Erfindung.

Fig. 1 zeigt in einer Draufsicht auf eine Oberfläche 20 einen mobilen Roboter 10 mit einer Steuerung 11 , einem Fahrwerk 12 und einem Arm 15 beim wiederholten

Abfahren einer vorgegebenen Route (gestrichelt in Fig. 1 ), auf der mehrere Posen des Fahrwerks auf der Oberfläche 20 vorgegeben sind.

Exemplarisch ist eine erste vorgegebene Pose durch ein entsprechendes

Koordinatensystem P1 angedeutet, eine zweite vorgegebene Pose durch ein

Koordinatensystem Pn und drei dazwischen nacheinander anzufahrende bzw.

einzunehmende dritte Posen durch die Koordinatensysteme P2, Pi und P3.

Fährt der mobile Roboter 10 diese vorgegebenen Posen ab, um an entsprechenden Arbeitsstationen 101 - 105 beispielsweise Transportgüter 106 aufzunehmen oder abzugeben, können, zum Beispiel aufgrund seiner Dynamik, von Verschleiß in seinem Fahrwerk, einer geänderten Reibung mit der Oberfläche 20 oder einer Umplanung der Route zur Vermeidung einer Kollision mit neu hinzugekommenen Hindernissen, die tatsächlich angefahrenen von den entsprechenden vorgegebenen Posen abweichen. Exemplarisch ist eine erste angefahrene Pose durch ein entsprechendes

Koordinatensystem P1‘ angedeutet, eine zweite angefahrene Pose durch ein

Koordinatensystem Pn‘ und die drei dazwischen nacheinander angefahrenen dritten Posen durch die Koordinatensysteme P2‘, Pi‘ und P3‘.

Nach einem mithilfe der bzw. durch die Steuerung 11 ausgeführten Verfahren nach einer Ausführung der vorliegenden Erfindung wird in wiederholten Zyklen jeweils zunächst eine erste Pose zum Einnehmen der ersten vorgegebenen Pose P1 angefahren (Fig. 2: Schritt a1)) und die in diesem Schritt a1 ) angefahrene erste Pose P1‘ in einem Schritt b1 ) berührungslos mithilfe einer roboterfesten Kamera 13 und/oder zwei roboterfesten Laser-Abstandssensoren 14 sowie einer

Umgebungskarte ermittelt, die in der Steuerung 11 oder außerhalb der Steuerung 1 1 , in einer Ausführung auf einem Server (nicht dargestellt), abgespeichert ist.

Anschließend werden im jeweiligen bzw. aktuellen Zyklus in analoger Weise jeweils drei dritten Posen zum Einnehmen der (jeweiligen) dritten vorgegebenen Pose P2, Pi bzw. P3 angefahren (Fig. 2: Schritt a2), ai) bzw. a3)) und die in diesen Schritten angefahrenen dritten Posen P2‘, Pi‘ bzw. P3‘ jeweils berührungslos mithilfe der roboterfesten Kamera 13 und/oder den zwei roboterfesten Laser-Abstandssensoren 14 sowie der abgespeicherten Umgebungskarte ermittelt (Fig. 2: Schritt b2), bi) bzw. b3)).

Anschließend wird im jeweiligen bzw. aktuellen Zyklus in analoger Weise eine zweite Pose zum Einnehmen der zweiten vorgegebenen Pose Pn angefahren (Fig. 2: Schritt an)) und die in diesem Schritt an) angefahrene zweite Pose Pn‘ in einem Schritt bn) berührungslos mithilfe der roboterfesten Kamera 13 und/oder der zwei roboterfesten Laser-Abstandssensoren 14 sowie der abgespeicherten Umgebungskarte ermittelt.

Anschließend wird Schritt a1) erneut durchgeführt, womit ein neuer der oben beschriebenen Zyklen beginnt.

Im aktuellen Schritt b1 ) wird jeweils eine erste Korrektur auf Basis eines gleitenden Mittelwerts der Abweichung zwischen der angefahrenen und vorgegebenen ersten Pose des aktuellen Schrittes a1 ) und den Abweichungen zwischen der angefahrenen und vorgegebenen ersten Pose mehrerer früherer Schritte a1 ) ermittelt und beim erneuten Durchführen des Schrittes a1 ) in dem darauffolgenden Zyklus und somit insbesondere zeitlich nach (dem aktuellen) Schritt an) des aktuellen Zyklus die erste Pose auf Basis dieser zuvor ermittelten ersten Korrektur angefahren.

In analoger Weise wird im aktuellen Schritt bn) jeweils eine zweite Korrektur auf Basis eines gleitenden Mittelwerts der Abweichung zwischen der angefahrenen und vorgegebenen zweiten Pose des aktuellen Schrittes an) und den Abweichungen zwischen der angefahrenen und vorgegebenen zweiten Pose mehrerer früherer Schritte an) ermittelt und beim erneuten Durchführen des Schrittes an) in dem darauffolgenden Zyklus und somit insbesondere zeitlich nach der erneuten

Durchführung des Schrittes a1) in dem darauffolgenden Zyklus die zweite Pose auf Basis dieser zuvor ermittelten zweiten Korrektur angefahren.

In analoger Weise wird im aktuellen Schritt b2), bi) und b3) jeweils eine dritte

Korrektur auf Basis eines gleitenden Mittelwerts der Abweichung zwischen der angefahrenen und vorgegebenen dritten Pose des aktuellen Schrittes a2), ai) bzw. a3) und den Abweichungen zwischen der angefahrenen und vorgegebenen dritten Pose mehrerer früherer Schritte a2), ai) bzw. a3) ermittelt und beim erneuten Durchführen des Schrittes a2), ai) bzw. a3) in dem darauffolgenden Zyklus und somit insbesondere zeitlich zwischen der erneuten Durchführung des Schrittes a1 ) und der erneuten Durchführung des Schrittes an) in dem darauffolgenden Zyklus diese dritte Pose auf Basis dieser zuvor ermittelten dritten Korrektur angefahren.

Zur Veranschaulichung ist für die vorgegebene zweite Pose Pn und die aktuell angefahrene zweite Pose Pn‘ die Korrektur angedeutet, die eine Verschiebung D und eine Verdrehung a umfasst, welche gegensinnig zum Mittelwert der letzten zehn Abweichungen für die zweite Pose sind. Dieser Korrekturparameter [D,a] t wird im nächsten Zyklus beim Anfahren der vorgegebenen zweiten Pose Pn entsprechend berücksichtigt, beispielsweise die Verschiebung D zur Position der vorgegebenen zweiten Pose Pn hinzuaddiert und die Verdrehung a zur Winkellage der

vorgegebenen zweiten Pose Pn hinzuaddiert.

Obwohl in der vorhergehenden Beschreibung exemplarische Ausführungen erläutert wurden, sei darauf hingewiesen, dass eine Vielzahl von Abwandlungen möglich ist. Außerdem sei darauf hingewiesen, dass es sich bei den exemplarischen

Ausführungen lediglich um Beispiele handelt, die den Schutzbereich, die

Anwendungen und den Aufbau in keiner Weise einschränken sollen. Vielmehr wird dem Fachmann durch die vorausgehende Beschreibung ein Leitfaden für die

Umsetzung von mindestens einer exemplarischen Ausführung gegeben, wobei diverse Änderungen, insbesondere in Hinblick auf die Funktion und Anordnung der beschriebenen Bestandteile, vorgenommen werden können, ohne den Schutzbereich zu verlassen, wie er sich aus den Ansprüchen und diesen äquivalenten

Merkmalskombinationen ergibt.

Bezuqszeichenliste

10 mobiler Roboter

1 1 Steuerung

12 Fahrwerk

13 Kamera

14 Laser-Abstandssensor

15 Arm

20 Oberfläche

101 - 105 Arbeitsstation

106 T ransportgut

P1 erste vorgegebene Pose

P1‘ angefahrene erste Pose

P2; Pi; P3 dritte vorgegebene Pose

P2‘; Pi‘; P3‘ angefahrene dritte Pose

Pn zweite vorgegebene Pose

Pn‘ angefahrene zweite Pose

D Verschiebung (Korrektur)

a Verdrehung (Korrektur)

a1 , ... bn Schritt