-
Die vorliegende Erfindung betrifft
Vorrichtungen und Verfahren zum Ermitteln des/der räumlichen Ortes
und Ausrichtung von jedem aus einer Mehrzahl von Körpern.
-
Es gibt bekannte Systeme zum Ermitteln
der räumlichen
Position und Winkelausrichtung eines Körpers (oder Objektes). Ein
solches System beinhaltet passive Retroreflektoren wie Punktmarken oder
Targets, die an dem Körper
angebracht sind, und ein zweites System beinhaltet aktive Strahlungsemitter
als die angebrachten Punktmarken. Bei beiden Techniken wird das
Bild einer konstrastreichen Marke auf beabstandete Sensoren projiziert
und mit mathematischen Verarbeitungsvorgängen werden die dreidimensionalen
Koordinaten jeder der Punktmarken ermittelt. Diese dreidimensionalen
(d. h. 3D-) Koordinaten werden dann als diskrete Punkte verwendet
oder können
als ein Satz angesehen werden, wenn ihre geometrische Anordnung
bekannt ist, so dass Position und Winkelausrichtung des Körpers (d. h.
sechs Freiheitsgrade: x-, y- und z-Positionen sowie Stampf-, Gier-
und Schlinger-Winkelausrichtungen) im Raum relativ zu einem dreidimensionalen
Koordinatensystem ermittelt werden, die an einem vorgewählten Punkt
im Raum zentriert sind, typischerweise an einem Punkt, der relativ
zu den Sensoren fest ist.
-
Die Ermittlung der räumlichen
Position und entweder des Vektorwinkels oder der Winkelausrichtung
eines Körpers
hat mehrere Nutzungsmöglichkeiten.
So kann beispielsweise ein Zeigegerät aus dem Körper gemacht werden, wobei
sich die Endspitze des Zeigegeräts
in einer bekannten Position relativ zu den Marken befindet. Ein
solches Zeigegerät kann
als Digitalisierungszeiger verwendet werden, der in Rückwärtsentwicklungsanwendungen
mit der Hand gehalten wird. Ein Bediener bewegt diesen Zeigekörper zu
verschiedenen bekannten Stellen auf einem gefertigten Teil, und
die Genauigkeit der Fertigungsabläufe wird anhand einer Analyse
der ermittelten Endspitzenposition des Zeigegerätes ermittelt. Diese Anwendung
erfordert ein äußerst genaues System.
-
In einer anderen Anwendung, wie z.
B. bei einem bildgeführten
chirurgischen Verfahren, wird die Haltung des Instruments in Bezug
auf den Patienten verfolgt. An bestimmten chirurgischen Instrumenten sind
Marken angebracht. Anhand dieser Information kann der Chirurg sehen,
wohin das Instrument auf einem MR- oder CT-Scan zeigt und was hinter
der Endspitze des chirurgischen Instrumentes liegt. Diese Anwendung
verlangt ebenfalls ein äußerst genaues System.
-
In einem Emissionsmarken- (d. h.
einem aktiven Marken-) System werden mehrere CCD- (ladungsgekoppelte
Bauelemente) Sensoren zum Erfassen der von der Marke emittierten
Energie verwendet. Eine einzelne Punktmarke wird pro Sensorzyklus
zum Emittieren von Infrarotenergie erregt. Bei jedem Sensorzyklus
wird die auf den Sensor fokussierte emittierte Energie gesammelt
(d. h. integriert) und zum Sensorverarbeitungsschaltkomplex übertragen.
Um die 3D-Position
der Marke zu ermitteln, muss die Marke auf wenigstens drei Sensorachsen erfasst
werden (d. h. um mindestens 3 orthogonale Ebenen abzudecken). Ein
System, das emittierende Marken mit auf den Sensoren erzeugten kontrastreichen
Bildern verwendet, hat viele Vorteile, wobei die Kontrolle über die
Aktivierung jeder der Marken eine positive und automatische Markenunterscheidung und
die Fähigkeit
ergibt, schnelle Linearsensoren zu verwenden. Schnelle Linearsensoren
sind relativ kostspielig, und es kann bei einem einzigen Sensorzyklus
immer nur eine Marke verfolgt werden.
-
In einem System mit retroreflektiver
Marke (d. h. passiver Marke) wird eine Energiequelle zum Emittieren
von Infrarotenergie in der allgemeinen Richtung der retroreflexionsfähigen Marke
erregt. Dann wird die von der Marke reflektierte Energie mit Hilfe
mehrerer CCD-Sensoren erfasst. Bei jedem Sensorzyklus wird die auf
den Sensor fokussierte reflektierte Energie gesammelt (d. h. integriert)
und zum Sensorverarbeitungsschaltkomplex übertragen. Um die 3D-Position
der Marke zu ermitteln, muss die Marke auf wenigstens drei Sensorachsen
erfasst werden (d. h. zum Abdecken von mindestens 3 orthogonalen
Ebenen). Ein System mit retroreflexionsfähiger Marke hat viele Vorteile,
wie z. B. die Verwendung von drahtlosen Marken und die Fähigkeit,
kostenarme langsame Area-Array-Sensoren zu verwenden. Diese Systeme
sind jedoch mit Problemen in Verbindung mit positiv identifizierenden
Marken behaftet.
-
Das US-Patent 4 652 917 beschreibt
ein System zum Überwachen
von Position und Haltung einer eine Rakete tragenden Flügelspitze.
Eine oder zwei elektronische Kameras ist/sind am Rumpf des Flugzeugs
montiert, und drei rechteckige Zielpunkte sind am Flügel in der
Nähe der
Rakete markiert. Auf Array-Sensoren in den Kameras werden Bilder
der Zielpunkte dargestellt. Es kann eine Infrarotlampe vorgesehen
sein, um die Zielpunkte bei Nacht zu beleuchten. Die Kameras sind
mit einem Computer gekoppelt, der ein Zielverfolgungsgatter von
sechs mal acht Pixeln für
das Bild jedes Zielpunkts definiert. Die Zielpunkte bedecken jeweils
einen Bereich von vier Pixeln auf einer Kamera-Sensor-Array. Der
Ort des Medians jedes Zielpunktbildes wird durch Positionieren des
jeweiligen Zielverfolgungsgatters über dem Bild ermittelt, so
dass sich der Median des Bildes am Median des Gatters befindet.
Eine Bewegung der Flügelspitze
wird durch Verfolgen der Abweichung des Medians jedes Zielpunktbildes
vom Median seines Verfolgungsgatters und durch Umpositionieren des
Verfolgungsgatters überwacht.
Separate Verarbeitungskanäle
verarbeiten die Daten in Bezug auf die drei verschiedenen Zielpunkte.
Position und Haltung im Sinne von Stampfen, Gieren und Schlingern der
Flügelspitze
werden anhand der durch die Verfolgung der drei Zielpunkte erzeugten
Abweichungsdaten berechnet. Das US-Patent 4 652 917 schlägt auch
vor, dass individuelle Zielpunkte die Form eines Musters oder eines
Satzes von kontrastreichen Markierungen oder Linien haben können, die
von geeigneten Mustererkennungskomponenten erkannt werden können.
-
Es ist wünschenswert, einen rentablen Area-Array-Sensor zu verwenden,
der mehrere Marken in einem einzigen Sensorzyklus verfolgen kann. Wie
in der Technik bekannt ist, gibt es Systeme, die einen einzelnen
Area-Array-Sensor und kostenarme Komponenten beinhalten. DeMenthon
(Patent Nr. 5,227,985) lehrt ein System, das mit einem einzigen Sensor
und mit Matrixtechniken zum Ermitteln der Haltung eines Körpers arbeitet.
Dieses System ist auf nicht koplanare Marken begrenzt und basiert
auf Projektionsmethoden zum Extrahieren von 6D-Informationen aus
2D-Bildern. Dieses Verfahren ist für medizinische Anwendungen
nicht genau genug. Wie in der Technik bekannt ist, ist der Fehler
in der Tiefenmessung für
diese Art von System zu groß.
Triangulationsverfahren haben einen klaren Vorteil gegenüber Projektionsverfahren
im Hinblick auf die Tiefengenauigkeit. Triangulationsverfahren,
die auch als stereometrische Techniken bezeichnet werden, wurden wegen
der kostspieligen Hardware abgelehnt, die zur Durchführung von
Echtzeitberechnungen nötig
war. Mehrere Markentriangulationsverfahren mit Area-Array-Sensoren
haben das zusätzliche
Problem einer schlechten Markenidentifikation, was gewöhnlich durch
menschlichen Eingriff gelöst
wird. Frühere
Systeme arbeiteten möglicherweise
schlecht in wirklichen Situationen von Streu-IR-Quellen und Reflexionen,
die als unerwünschte
und unerwartete Marken erscheinen. Frühere Systeme arbeiten eventuell auch
bei Vorliegen mehrerer, in unmittelbarer Nähe zueinander befindlicher
Körper
schlecht.
-
Die vorliegende Erfindung wird nachfolgend durch
die Ansprüche
1 und 8 definiert, auf die nunmehr Bezug genommen werden sollte.
-
Eine bevorzugte Ausgestaltung der
vorliegenden Erfindung stellt ein System zum Ermitteln des/der räumlichen
Ortes und Ausrichtung von jedem aus einer Mehrzahl von Körpern bereit.
Jeder der Körper
hat wenigstens drei Marken in einer vorbestimmten, relativen geometrischen
Beziehung. Jede Marke ist entweder eine aktive Marke zum Emittieren von
Energie als Reaktion auf ein Aktivierungssignal oder eine passive
Marke zum Reflektieren von Energie, die von einer aktivierbaren
Energiequelle auf eine solche passive Marke auftrifft. Es ist ein
kombinierter Energiedetektor zum Erfassen der von einer aktiven
Marke emittierten Energie oder der von einer passiven Marke reflektierten
Energie vorgesehen. Es ist ein Kombi-Prozessor vorgesehen. Im Speicher
ist die vorbestimmte, relative geometrische Beziehung der Marken
für jeden
der Körper
gespeichert. Der Prozessor vergleicht die gespeicherte vorbestimmte geometrische
Beziehung der Marken für
jeden der Körper
mit dem Energiemuster, das vom Energiedetektor erfasst wurde, um
die Körper
zu identifizieren, die die erfasste Energie emittieren oder reflektieren.
-
Bei einer solchen Anordnung kann
jeder Körper
mit einer sehr einfachen Folge von Vorgängen in Echtzeit unter Anwendung
einer einfachen Markenplatzierungsmethodik mit robuster positiver
Markenidentifikation verfolgt werden. Damit können mehrere Körper gleichzeitig
verfolgt werden.
-
Die Marken jedes Körpers befinden
sich in einer bekannten und festen relativen Geometrie, in der alle
Segmentlängen
unter allen Paaren aller Marken eindeutig sind, wobei der Begriff „eindeutig" einen Differenzschwellenwert
auf der Basis der Genauigkeit des Systems mit sich bringt (d. h.
die Differenz in den geometrischen Beziehungen der Marken für die Körper ist
erfassbar). Es können
mehrere Objekte gleichzeitig verfolgt werden, da Paare gleichartiger Segmente
unter allen verfolgten Körpern
eindeutige relative Winkel haben, wobei der Begriff „eindeutig" wiederum einen Differenzschwellenwert
auf der Basis der Genauigkeit des Systems bedeutet. Die Markengeometrie
kann kolinear oder koplanar sein, je nach den Anforderungen der
Anwendungen.
-
Ferner wird bei einer solchen Anordnung
ein System bereitgestellt, das die Haltung eines Körpers mit
3 oder mehr Marken in einer bekannten relativen Geometrie in Abhängigkeit
von einfachen Platzierungsregeln verfolgt, die nicht darauf beschränkt sind,
nicht koplanar oder nicht kolinear zu sein. Das System kann mit
rentablen, langsamen Area-Array-Sensoren arbeiten, die mehrere Marken
in einem einzigen Sensorzyklus verfolgen können, wodurch die scheinbare
Abtastrate jeder der Marken erhöht wird.
-
Das bevorzugte System verwendet eine
stereometrische Anordnung von Sensoren, so dass eine ausreichende
Genauigkeit für
Hochleistungsanwendungen wie chirurgische Anwendungen erzielt wird.
-
Ferner kann das System rentable digitale
Signalprozessoren und einfache Verarbeitungsrechenschritte verwenden,
die die diskreten Marken des Körpers
in drei Dimensionen (3D) automatisch und positiv identifizieren
und die in Anwesenheit von vielen falschen Marken und mehreren Körpern in
unmittelbarer Nähe
zueinander arbeiten. Das System ist so gestaltet, dass es die Haltung
von einem oder mehreren Körpern
in Echtzeit in einer geschlossenen Lösung mit einem Bild von einem
einzigen Sensorzyklus ermittelt, anstatt prädiktive Verfahren anzuwenden,
um die Haltung eines Körpers
mit Bildern von mehreren Sensorzyklen weiter zu verfolgen.
-
Ferner ist das System so gestaltet,
dass es automatisch verschiedene Körper erkennt und verfolgt,
die vor der Verfolgung bekannt sind.
-
Kurze Beschreibung der
Zeichnungen
-
Weitere Merkmale der Erfindung werden
mit Bezug auf die nachfolgende Beschreibung in Verbindung mit den
folgenden Zeichnungen leichter verständlich. Dabei zeigt:
-
1 ein
Blockdiagramm eines erfindungsgemäßen Systems zum Ermitteln des/der
räumlichen Ortes
und Ausrichtung eines Paares von starren Körpern;
-
2 das
Paar von Körpern
für die
Verwendung in dem System von 1;
-
3 ein
Diagramm einer Tabelle, die in einem Speicher eines im System von 1 verwendeten Prozessors
gespeichert ist;
-
4, 5, 6, 6A–6B, 7, 7A–7C, 8 und 8A–8B Ablaufdiagramme, die schematisch
die Folge von Vorgängen
des Systems von 1 illustrieren,
wobei 7 die Beziehung
zwischen den 7A–7C und 8 die Beziehung zwischen den 8A und 8B zeigen;
-
9A, 9B bis 18 ausführliche Beispiele für die Elemente
im Speicher von 3 in
verschiedenen Phasen der Ausführung
des Systems von 1.
-
Beschreibung der bevorzugten
Ausgestaltungen
-
Gemäß 1 wird ein System 10 zum Ermitteln
des/der räumlichen
Ortes und Ausrichtung von einem oder mehreren, hier einem Paar von
starren Körpern 11a, 11b vorgesehen.
Hier sind die in 2 gezeigten
und ausführlicher
beschriebenen starren Körper 11a, 11b unterschiedliche
chirurgische Instrumente. Der starre Körper 11a hat dabei
eine Mehrzahl, hier zwei, passiven, retroreflektierenden Punktmarken 12a, 12b und
einer daran angebrachten aktiven emittierenden Marke 12b.
Die Energie retroreflektierenden Marken 12a, 12c beinhalten
eine am Körper 11a anbringbare
Kugel, die mit einem retroreflexionsfähigen Material überzogen
ist, wie es allenthalben erhältlich
und in der Technik bekannt ist. Die Marken 12a, 12b, 12c werden
in einer vorbestimmten, festen relativen geometrischen Beziehung
am Körper 11a angebracht.
Die vorbestimmte, feste relative geometrische Beziehung wird durch
nachfolgend beschriebene einfache Platzierungsregeln definiert.
-
Wieder mit Bezug auf 1, das System 10 beinhaltet
ein kombiniertes Energieerfassungssystem 14 zum Erfassen
der Energie, die von der am Körper 11a angebrachten
aktiven Marke 12b emittiert wird, und der Energie, die
von den am Körper 11a angebrachten
passiven Marken 12a, 12c reflektiert werden. Das
kombinierte Detektorsystem 14 beinhaltet jeweils ein Paar
links montierter und rechts montierter Sensorbaugruppen 14L und 14R.
Jede der Sensorbaugruppen 14L, 14R beinhaltet
Folgendes: jeweils einen zweidimensionalen CCD-Sensor 18L, 18R (1); jeweils eine Fokussierlinse 22L, 22R wie
gezeigt und eine Mehrzahl von Lichtenergie emittierenden Quellen 24L, 24R (hier
Infrarotenergie emittierende Dioden), wie gezeigt.
-
Jede der Sensorbaugruppen 14R und 14L hat
ihr eigenes u-, v-, zs-Koordinatensystem,
das jeweils auf seine assoziierten direktionalen Infrarotenergiequellen 24L, 24R ausgerichtet
ist. Die Lichtquellen 24L, 24R sind umfangsmäßig gleichmäßig um die zs-Achse jeder der Sensorbaugruppen 14R und 14L verteilt.
Die Mehrzahl der Lichtquellen 24L, 24R wird mit
einem Prozessorteil 26 mit elektrischer Energie erregt.
Der Prozessorteil 26 beinhaltet einen Prozessor 28,
einen Host-Computer 30, ein Display 32 und einen
Controller 34. Der Prozessor 28 erregt die Lichtquellen 24L, 24R über ein
Signal auf Leitung 36. Die Mehrzahl der Lichtquellen 24L, 24R erzeugt
einen einfallenden direktionalen Infrarotenergiestrahl mit einer
Ausbreitungsrichtung entlang einer direktionalen Achse, die allgemein
der zs-Achse jeder der Sensorbaugruppen 14L, 14R in
Verbindung mit dieser direktionalen Energiequelle 24L, 24R entspricht. Der
einfallende direktionale Energiestrahl, der von der direktionalen
Infrarotenergiequelle erzeugt wird, hat eine Größe, Form und Intensität, die dem
volumetrischen Blickfeld seiner zugehörigen Sensorbaugruppe 14L, 14R entspricht
und ausreicht, um einen einfallenden direktionalen Energiestrahl über das
gesamte Messvolumen zu erzeugen.
-
Die Sensorbaugruppen 14L, 14R können jeweils
Ausgangssignale auf den Leitungen 39L, 39R erzeugen,
die die Intensität
von darauf fokussierter Energie repräsentieren. In jedem Sensorzyklus
wird die darauf fokussierte Energie gesammelt (d. h. integriert)
und zum Prozessor 28 übertragen.
Hier sind die Sensorbaugruppen 14L und 14R an
einer festen Referenz montiert und um eine vorbestimmte Distanz,
hier 500 mm, voneinander beabstandet. Die Sensorbaugruppen 14L, 14R haben
dabei jeweils ein Blickfeld, das ausreicht, um ein gemeinsames Messvolumen
von etwa 1 m3 zu beobachten, das entlang der
zs-Achse in einem Abstand von etwa 1,9 m
von dem in der Mitte zwischen den Linsen 22L und 22R befindlichen
Ursprungspunkt zentriert ist.
-
Wie oben erwähnt, hat jede der Sensorbaugruppen 14L und 14R ihre
eigene zugehörige
Linse 22L bzw. 22R, um sowohl die reflektierte
Energie von den Energie retroreflektierenden Marken 12a, 12c als
auch die Energie zu fokussieren, die von der Energie emittierenden
Marke 12b emittiert wird, um ein fokussiertes Energiebild
der emittierten oder reflektierten Energie von den Marken 12a, 12b, 12c jeweils auf
die assoziierten Sensorbaugruppen 14R bzw. 14L der
Linsen 22L bzw. 22R zu erzeugen. Der Prozessor 28 ist
mit den Sensorbaugruppen 14L und 14R gekoppelt
und ermittelt die zweidimensionalen u-, v-Positionen des fokussierten Energiebildes
auf jeder der Sensorbaugruppen 14L und 14R. Dann, mittels
der u-, v-Position
des fokussierten Energiebildes derselben Marke 12a, 12b, 12c auf
jeder der Sensorbaugruppen 14L und 14R zum Erzeugen
der linken und rechten Sensorenergiequellen-Ortstabellen 50L, 50R (3 und 9A, 9b)
und setzen der linken und rechten Quellenzähler 51L, 51R,
wie nachfolgend beschrieben wird [sic].
-
Der Prozessor 28 ist mit
dem Host-Computer 30 gekoppelt, damit die räumliche
Position der Körper 11a, 11b auf
dem Display 32 angezeigt oder vom Host-Computer 30 weiter
verarbeitet werden kann. Wie oben erwähnt, ist der Prozessor 28 mit
den direktionalen Energiequellen 24L, 24R gekoppelt,
damit der Prozessorteil 26 die direktionalen Energiequellen 24R und 24L zu
geeigneten Zeiten aktivieren kann. Der Prozessor 28 ist
auch mit dem Controller 34 gekoppelt, damit der Prozessor 28 den
Controller 34 anweisen kann, die Energie emittierenden
Marken 12b zur erforderlichen Zeit über die Leitung 27 zu
aktivieren.
-
Der Betrieb des Systems 10 wird
für den
Körper 11a beschrieben,
wobei zu verstehen ist, dass die Folge der Vorgänge für andere starre Körper wie
z. B. den Körper
llb im Wesentlichen gleich, oder äquivalent, ist. Somit wird
die aktive Marke 12b über
ein Kabel 27 (1)
wie gezeigt zum Controller 34 gesendet. Dabei hat die Energie
emittierende Marke 12b wie oben erwähnt eine Infrarotenergie emittierende Diode
der Marke 12b, die nach der Erregung mit elektrischer Energie,
die ihr über
das Kabel 27 vom Controller 34 zugeführt wird,
Infrarotlichtenergie emittiert. Solche Infrarotenergie emittierenden
Dioden sind allgemein erhältlich
und in der Technik bekannt.
-
Nun mit ausführlicherer Bezugnahme auf 2, an den starren Körpern 11a und 11b sind
jeweils Marken 12a–12c bzw. 12d–12f angebracht.
Es ist zunächst
zu verstehen, dass es nicht relevant ist, dass die Marken 12a und 12c retroreflektiv
sind und die Marke 12b aktiv ist. Diese Konfiguration ist
lediglich beispielhaft und die nachfolgend beschriebenen Verfahren
sind vom Markentyp unabhängig.
An jedem Körper 11a, 11b sind
die Marken 12a, 12b, 12c bzw. 12d, 12e, 12f in
einer vorbestimmten (d. h. bekannten) und festen relativen Geometrie
angebracht. Ferner muss sich die relative Geometrie für die Marken 12a, 12b und 12c nachweisbar
von der relativen Geometrie von Marken 12c, 12d und 12f des
Körpers 11b unterscheiden.
Somit sind, wie in 2 gezeigt, die
Marken 12a, 12b und 12c des Körpers 11a von den
Liniensegmenten SLab, SLbc bzw. SLac beabstandet. Ferner schneiden
sich die Liniensegmente SLab, SLbc und SLac wie gezeigt in Winkeln θab, θbc und θac wie gezeigt.
Ebenso sind die Marken 12d, 12e und 12f von
Körper 11b jeweils
wie gezeigt durch Liniensegmente SLde, SLef und SLdf beabstandet.
Ferner schneiden sich die Liniensegmente SLde, SLef und SLdf wie
gezeigt im Winkel θde, θef und θdf wie gezeigt.
Ferner muss sich die Länge
von Segment SLab von der der Segmente SLac und SLbc unterscheiden,
ebenso muss das Segment SLbc eine andere Länge haben als das Segment SLac.
Die Varianz Δ in
der bevorzugten Ausgestaltung beträgt 5,0 mm. Wenn also Segment
SLab die Länge
SLab hat, dann beträgt
die Länge
von Segment SLbc wenigstens SLab ± Δ, und die Länge von Segment SLac ist wenigstens
SLab ± Δ und wenigstens
SLbc ± Δ. Das heißt, die
Länge aller
Segmente SLab, SLbc und SLac muss sich um Δ voneinander unterscheiden.
Ferner hat ein Körper
mit 3 Marken 3 Segmente. Im Allgemeinen ist die Zahl der Segmente jedoch
gleich N*(N – 1)/2,
wobei N die Gesamtzahl der Marken ist. Körper 11a hat ein Paar
von Segmenten SLab, SLbc, die die gleiche Länge haben wie das Paar von
Segmenten SLde, SLef am Körper 11b;
diese können
auch dann noch verfolgt werden, wenn sich der relative Winkel θab zwischen
Segment SLab, SLbc am Körper 11a vom
relativen Winkel Bde zwischen Segment SLde, SLef an Körper 11b unterscheidet.
Die Markengeometrie kann kolinear, nicht kolinear, koplanar oder
nicht koplanar sein, je nach den Anforderungen der Anwendung. Das
Paar Körper 11a, 11b wird
gleichzeitig verfolgt, wenn Paare von gleichen Segmenten unter allen
verfolgten Körpern 11a,
llb eindeutige relative Winkel haben; auch hier bedeutet der Begriff "eindeutig" wieder eine Schwellenwertdifferenz
auf der Basis der Genauigkeit des Systems 10. Das heißt, die
Marken 12a–12c, 12d–12f werden
jeweils auf den Körpern 11a, 11b platziert,
damit jeder der Körper 11a, 11b eine(n)
eindeutige(n) Signatur oder Fingerabdruck hat, die/der vom Prozessor 28 erkannt
und verfolgt werden kann.
-
Bevor der Betrieb des Systems 10 erörtert wird,
ist zunächst
zu bemerken, dass der Prozessor 28 einen Speicher 40 hat
(3), der drei Sätze von Tabellen
speichert, 42– 48; 50L, 50R und 52;
und 56–62.
Ein erster Tabellensatz (d. h. ein Starrer-Körper-Definitionstabellensatz 42–48)
definiert die vorbestimmte geometrische Beziehung der Marken 12a–12d, 12e–12f für jeden
der Körper 11a, 11b;
ein zweiter Tabellensatz (d. h. sensorgenerierte Datentabellen 50L, 50R und 52)
enthält
Informationen, die bei jedem Abtasten der Sensoren 14L, 14R erzeugt werden,
und diese Tabellen 50L, 50R und 52 sind
daher nicht mit einem bestimmten Körper assoziiert; und einen
dritten Tabellensatz (d. h. Verarbeitungstabellen 56–62)
erzeugt der Prozessor, während
die starren Körper 11a, 11b identifiziert
und verfolgt werden. Diese Tabellen (und Zähler 51L, 51R und 53, nachfolgend
beschrieben) befinden sich im Prozessor 28 und werden vom
Prozessor 28 bei dessen Betriebsfolge verwendet.
-
Starrer-Körper-Definitionstabellen 42–48
-
Die Starrer-Körper-Definitionstabellen beinhalten:
eine Markenpositionstabelle 42; eine Markensegmenttabelle 44;
eine Markensegmentpunkt- (•) Produkttabelle 46 und
eine Markensegmentsatztabelle 48. Diese Starrer-Körper-Definitionstabellen 42–48 gelten
für alle
Körper 11a, 11b und
enthalten zuvor bekannte Informationen über die geometrische Beziehung
der Marken 12a–12c sowie 12d–12f,
die jeweils an starren Körpern 11a, 11b angebracht
sind, um dadurch jedem der Körper 11a, 11b eine(n)
eindeutige(n) Signatur oder Fingerabdruck zu geben, die/der vom
Prozessor 28 erkannt und verfolgt werden kann. Diese Starrer-Körper-Definitionstabellen 42–48 werden
einmal vor der Identifikation und bei nachfolgenden Verfolgungsvorgängen des
Prozessors 28 initialisiert.
-
Markenpositionstabelle 42
-
Mit jedem starren Körper 11a, 11b ist
eine Markenpositionstabelle 42 assoziiert, wie für Körper 11a in 11 dargestellt ist. Die
Markenpositionstabelle 42 beinhaltet die 3D-Position (X', Y', Z') jeder Marke 12a, 12b und 12c,
die beispielsweise mit dem starren Körper 11a assoziiert
ist. Mit Bezug auf 11 ist
die Markenpositionstabelle 42 für den Körper 11a dargestellt,
wobei zu verstehen ist, dass Tabelle 42 eine ähnliche
Tabelle für
Körper 11b hat.
Die 3D-Position von Marke 12a, 12b und 12c ist
dargestellt.
-
Segmentlängentabelle 44
-
Mit jedem starren Körper 11a, 11b ist
eine Markensegmentlängentabelle 44 (12) assoziiert, die den
Satz von Segmentlängen
eines Körpers 11a, 11b enthält. Ein
Segment wird als die Linie angesehen, die ein Paar Marken 12a, 12b, 12c für Körper 11a und
Marken 12d, 12e und 12f für Körper 11b verbindet.
Wie also oben in Verbindung mit 2 bemerkt
wurde, hat der Körper 11a die
Segmente SLab, SLbc und SLac, und der Körper 11b hat die Segmente
SLde, SLef und SLdf. Der komplette Satz von Segmenten für einen
Körper
ist jede Kombination von Markenpaaren. Somit gibt es N*(N – 1)/2 Segmente für einen
Körper,
wobei N die Zahl der an dem Körper angebrachten
Marken ist. 12 zeigt
die Markensegmentlängentabelle 44 für Körper 11a.
Die Segmentlängen
SLab, SLbc und SLac sind dargestellt.
-
Markensegmentsatztabelle 48
-
Mit jedem starren Körper 11a, 11b ist
eine Markensegmentsatztabelle 48 (13) assoziiert, die die Markensegmentsätze enthält. Es gibt
für jede Marke
einen Eintrag in der Tabelle 48. Jeder Markeneintrag enthält 2 oder
mehr Segmente, die mit dieser Marke verbunden sind. An jeder Marke
hängen
für einen
Körper
mit N Marken N – 1
Segmente. 13 zeigt den
Satz von Segmenten für
einen starren Körper 11a.
Mit jeder Marke 12a, 12b, 12c sind zwei Segmente
(d. h. Segment 1 und Segment 2 in 13) assoziiert. Somit ist, wie in den 2 und 13 angedeutet, die Marke 12a für den Körper 11a an
den Segmenten SLab und Slac angebracht; die Marke 12b ist
an den Segmenten SLab und SLbc angebracht. Die Marke 12c ist
an den Segmenten SLac und SLbc angebracht. Es ist klar, dass es
für Marke 11b eine ähnliche
Tabelle gäbe.
-
Segmentpunkt- (•) Produkttabelle 46
-
Mit jedem starren Körper ist
eine Segmentpunkt- (•)
Produkttabelle 46 (14)
assoziiert, die die Liste von Punkt- (•) Produkten zwischen jeder Kombination
von Segmenten enthält.
Das Punkt- (•) Produkt
dient als Festlegung des Winkels B zwischen den Segmentlängen SL,
wenn die Segmente als Vektoren behandelt werden, die auf den Nullpunkt
des X-, Y-, Z-Koordinatensystems von System 10 transponiert
werden. Es gibt N*(N – 1)/2
Kombinationen von Segmentpaaren, wobei N die Zahl der Segmente in
dem starren Körper
ist. Das Beispiel von 14 zeigt
den Satz von Punkt- (•)
Produkten für
Körper 11a.
Dabei ist gemäß der Darstellung
das Punkt- (•) Produkt
für Winkel θa,b zwischen
Segmentlängen SLab
und SLbc 3600. Ebenso ist gemäß der Darstellung
das Punkt- (•)
Produkt für
Winkel θa,c
zwischen Segmentlängen
SLab und SLac 0, und das Punkt- (•) Produkt für Winkel θb,c zwischen Segmentlängen SLbc
und SLac ist als 2500 dargestellt. Es ist zu verstehen, dass eine ännliche
Tabelle für
Körper 11b existiert.
-
Sensorgenerierte Datentabellen 50L, 50R und 52
-
Die sensorgenerierten Datentabellen 50L, 50R und 52 beinhalten:
die linke und rechte Sensorenergiequellen-Ortstabelle 50L, 50R;
und eine 3D-Rohmarkentabelle 52.
-
Linker- und Rechter-Sensorenergiequellentabelle 50L, 50R
-
Im Speicher 40 befindet
sich für
jeden Arear-Array-CCD-Sensor 18L, 18R (1, 9A, 9B)
eine Sensorenergiequellentabelle 50L und 50R.
Es gibt für
jeden auf dem CCD-Sensor 18L, 18R erfassten Energiepunkt
einen Eintrag. Die Linke-Quelle- und Rechte-Quelle-Zähler 51L und 51R enthalten
jeweils die Zahl der jeweils auf dem linken und rechten Sensor 18L, 18R erfassten
Energiepunkte. Jeder Eintrag hat einen U- und einen V-Wert, die
dem Masseschwerpunkt des Energiepunkts entlang der U-Achse und der
V-Achse des assoziierten Sensors 18L, 18R entsprechen.
In der bevorzugten Ausgestaltung gibt es eine Linke- und eine Rechte-Sensor-Energiequellentabelle 50L, 50R (3). Dabei gibt es vier Energiequellen
S1–S4, S5–S8, die jeweils von einem der Sensoren 18L, 18R erfasst
werden, wie in den 9A und 9B angedeutet ist. Es ist
zu bemerken, dass sich die Quellen S1–S8 in den u-, v-Koordinaten der Sensoren 18L, 18R befinden,
wie die 9A und 9B zeigen.
-
3D-Rohmarkentabelle 52
-
Im Speicher 40 befindet
sich eine einzelne 3D-Rohmarkentabelle 52 (3, 10), die einen einzelnen Eintrag für jeden
ermittelten, aber unqualifizierten Markenort (Rohmarken) enthält. Jeder
Eintrag hat einen X-, Y- und Z- (d. h. das X-, Y-, Z-Koordinatensystem
von System 10) Wert, der dem Koordinatensystem des Positionssensors
mit dem Ursprungsmittelpunkt zwischen den Bildsensoren 18L, 18R entspricht.
Der Rohmarkenzähler 53 enthält die Zahl
der erfassten Rohmarken. 10 zeigt
ein Beispiel von 4 Rohmarken. In diesem Beispiel werden die Marken 12a, 12b und 12c von
Körper 11a erfasst, und
es gibt eine unbekannte Streumarke. Die Zuordnung dieser Marken
R1–R4
ist zu diesem Zeitpunkt mit Bezug auf die Marken 12a–12c sowie 12d–12f jeweils
auf den Körpern 11a und 11b nicht
bekannt. Anhand der Vorgangsfolge wird die Korrespondenz dieser
Marken zum Körper 11a bzw.
Körper 11b ermittelt.
-
Verarbeitungstabellen 56–62
-
Die Verarbeitungstabellen lauten:
eine Segment-Rohmarken-Querverweistabelle 56;
eine Qualifiziertes-Segment-Tabelle 58;
eine Gemessene-Markenposition-Tabelle 60; und eine Berechnete-Starrer-Körper-Positions-
und -Ausrichtungs-(Lage)-Tabelle 62.
Diese Verarbeitungstabellen 56–62 werden vom Prozessor 28 für jeden
der starren Körper 11a, 11b erzeugt
und vom Prozessor 28 generiert, während die starren Körper erkannt
(d. h. identifiziert) und verfolgt werden.
-
Segment-Rohmarken-Querverweistabelle 56
-
Mit jedem starren Körper ist
eine Segment-Rohmarken-Querverweistabelle 56 (3, 15) assoziiert, die alle Rohmarkenpaare 12a, 12b und 12c enthält, die
eine Beabstandungsdistanz haben, die nahe an der definierten Segmentlänge des
starren Körpers
liegt. Der Begriff „nahe" ist durch eine Längendifferenz
zwischen dem definierten Segment und dem getesteten Segment definiert,
was weniger ist als ein bestimmter vordefinierter Wert (d. h. eine Distanz,
die vom System 10 erfasst werden kann). In der bevorzugten
Ausgestaltung beträgt
dieser Wert 1,5 mm. Das folgende Beispiel (15) illustriert Paare von Marken, die
mit den vordefinierten Segmentlängen
SLab, SLbc, SLac des Körpers 11a übereinstimmen.
Die Rohmarkenpaardaten werden vom Prozessor 28 gemäß einem
in Verbindung mit 6 beschriebenen
Verfahren ermittelt. Es sei hier jedoch lediglich gesagt, dass die
beiden Sätze
von vier Rohenergiedaten S1–S8,
die vom rechten und linken Sensor 14L, 14R (9A, 9B) erfasst werden, in diesem Beispiel
vom Prozessor 28 in vier Rohmarken R1–R4 (im X-, Y-, Z-Koordinatensystem
von 10) umgewandelt
und in der 3D-Rohmarkentabelle 52 (10) gespeichert werden.
Weil es also vier Rohmarken R1–R4
gibt, gibt es sechs Segmentlängen
(d. h. SL12, SL13, SL14, SL23, SL24 und SL34). In diesem Beispiel
sind die Rohmarken R1 und R2 um eine Segmentlänge SL12 voneinander beabstandet,
die nahe an der Länge
von Segment SLab liegt. Die Rohmarken (R1, R4), (R3, R4) und (R2,
R3) sind alle um eine Länge
voneinander beabstandet, die nahe an der Länge des Segments SLbc liegt.
Auch sind die Rohmarken (R2, R4) und (R1, R3) um eine Länge voneinander
beabstandet, die nahe an der Länge
von Segment SLac liegt. Diese Daten werden in der Segment-Rohmarken-Querverweistabelle 56 wie
in 15 gezeigt gespeichert.
-
Qualifiziertes-Segment-Tabelle 58
-
Es gibt für jeden starren Körper 11a, 11b eine Qualifiziertes-Segment-Tabelle 58 (3, 16). Diese Tabelle 58 wird während der
Segmentverifizierungsphase generiert, die in Verbindung mit 7 beschrieben wird. Es sei
hier lediglich gesagt, dass es für
jedes Segment des starren Körpers
einen Eintrag gibt. In dem Beispiel in 16 sind alle Segmente SLab, SLbc und
SLac von Körper 11a qualifiziert.
-
Gemessene-Markenpositionstabelle 60
-
Mit jedem starren Körper 11a, 11b ist
eine Gemessene-Markenpositionstabelle 60 (3, 17) assoziiert, die die 3D-Positionen
der Rohmarken R1–R4
enthält,
die identifiziert, validiert und auf die Ist-Marken 12a–12c, 12d–12f des
Körper
abgebildet wurden. Das Beispiel in 17 zeigt
die gemessene Position der Marken 12a, 12b und 12c des
Körpers 11a;
dabei entspricht Ist-Marke 12a Rohmarke R2, Ist-Marke 12b entspricht
Rohmarke R4 und Ist-Marke 12c entspricht Rohmarke R1.
-
Berechnete-Starrer-Körper-Positions-
und -Ausrichtungstabelle 62
-
Mit jedem starren Körper ist
eine Berechnete-Starrer-Körper-Positions-
und -Ausrichtungstabelle 62 (3, 18) assoziiert, die die Transformation des
starren Körpers
enthält.
Dies ist die Lage, die anhand der Gemessene-Markenpositionstabelle 60 (17) auf der Basis der Markenpositionstabelle 42 (11) ermittelt wird. Mit
anderen Worten, die Lage ist die Transformation, die die Markenpositionstabelle 42 in
dasselbe Raum-X-, Y-, Z-Koordinatensystem von 10 wie in der Gemessene-Markenpositionstabelle 60 gezeigt
bewegt. Das in 18 gezeigte Beispiel
illustriert die Lage von Körper 11a.
-
Übersicht über die Folge von Vorgängen
-
Die Lage oder Ausrichtung eines Körpers oder
von Körpern
kann gleichzeitig und in Echtzeit mit den folgenden Vorgängen wie
im Ablaufdiagramm von 4 illustriert
ermittelt werden. In Schritt 401 werden die Energiequellen 24L und 24R (1) sowie die aktive Marke 12b aktiviert.
Gemäß 1 werden diese Energiequellen
durch das Linsensystem 22L, 22R fokussiert und
projizieren ein Bild auf die CCD-Sensoren 18L, 18R.
Dieses Bild wird von den Sensoren 18L, 18R abgetastet,
und Intensitäten über einem
bestimmten Schwellenwert werden vom Prozessor 28 analysiert.
In Schritt 402 werden die Positionen der Sensorenergiequellen
in Linke- und Rechte-Sensoren-Energiequellen-Ortstabellen 50L, 50R (3, 9A, 9B)
gespeichert. Die Position wird in Pixeleinheiten angegeben. Die
horizontale Achse des Sensors wird U, die vertikale Achse V genannt.
In der bevorzugten Ausgestaltung werden ein linker und ein rechter
Sensor 18L, 18R verwendet. Die Linke-Quellen-
bzw. Rechte-Quellen-Zähler 51L, 51R werden
jeweils auf die Zahl der erfassten Energiequellen auf dem linken
bzw. rechten Sensor 18L, 18R eingestellt. In dem
in Verbindung mit 9A und 9B beschriebenen Beispiel
gibt es vier erfasste Energiequellen S1–S4, S5–S8, die jeweils von den Sensoren 18L, 18R erfasst
werden; somit ist die Zahl in jedem der Zähler 51L und 51R in
diesem Beispiel 4.
-
In Schritt 403 werden geeignete
Tabellen (d. h. Tabellen 52, 56) und Zähler (51L, 51R und 53)
für die
nachfolgende Vorgangsfolge initialisiert. Die 3D-Rohmarkentabelle 52, der Rohmarkenzähler 53 und
die Segment-Rohmarken-Querverweistabelle 56 werden alle
geleert. In Schritt 404 werden die in den Linker- und Rechter-Sensor-Energiequellen-Ortstabellen 50L, 50R gespeicherten
Energiequellen vom Prozessor 26 analysiert und es wird
die 3D-Rohmarkentabelle 52 (10)
generiert. Der Rohmarkenzähler 53 wird
auf die Zahl der erfassten Rohmarken gesetzt. Zu diesem Zeitpunkt
ist unbekannt, was diese Marken sind. Einige können Marken von dem/den verfolgten
Körper(n)
sein, andere können Reflexionen
sein, und wieder andere können
vom Markenerfassungsverfahren verursachte Artefakte sein. Triangulationsverfahren
zum Erzeugen der 3D-Position von stereoskopischen Ansichten sind
in der Technik hinlänglich
bekannt, und ein Verfahren wird später im Abschnitt Generiere-3D-Rohmarkentabelle 52 beschrieben.
-
In den Schritten 405 und 406 wird
die Distanz, d. h. Segmentlängen,
SL12, SL13, SL14, SL23, SL24 und SL34 zwischen allen Kombinationen
von 3D-Rohmarkenpaaren berechnet. Diese berechneten Längen werden
mit der Segmentlängentabelle 44 (12) für jeden verfolgten Körper 11a, 11b verglichen. Übereinstimmungen
werden in die Segment-Rohmarken-Querverweistabelle 56 (15) für jeden Körper 11a, 11b gesetzt.
Diese Schritte werden ausführlich
in 6 in Verbindung mit
der Generiere-Segment-Rohmarken-Querverweistabelle 56 (15) beschrieben.
-
In Schritt 407 werden alle
möglichen
Segmentvoraussagen in der Segment-Rohmarken-Querverweistabelle 56 (15) für jeden Körper 11a, llb durch
Vergleichen der relativen Winkel, ?, zwischen den Segmentlängen SL
des Körpers 11a, 11b verifiziert.
Diese Schritte werden später
in Verbindung mit 7,
Segmentverifizierung, ausführlich
beschrieben. In Schritt 408 wird die Korrespondenz zwischen den
3D-Rohmarken R1–R4
in dem oben gegebenen Beispiel und den Ist-Marken 12a–12c, 12d–12f der Körper 11a bzw. 11b durch
Satzschnittmethoden anhand der Markensegmentsatztabelle 48 (13) des Körpers in
Verbindung mit der Segment-Rohmarken-Querverweistabelle 56 (15) des Körpers ermittelt.
Die 3D-Rohmarken werden in der Gemessene-Markenpositionstabelle 60 (17) dargestellt. Diese Schritte
werden nachfolgend in Verbindung mit 8,
Markenkorrespondenzextraktion, ausführlich beschrieben.
-
In Schritt 409 wird die
Ausrichtung (Lage) des Körpers
anhand der Marken ermittelt, die in der Gemessene-Markenpositionstabelle 60 (17) enthalten sind. Verfahren
zum Ermitteln der 6 Freiheitsgrade für einen starren Körper anhand
von diskreten Marken sind in der Technik hinlänglich bekannt und werden hier
nicht beschrieben. Schließlich
werden in Schritt 410 die Lagen aller Körper in Tabelle 62 (18) gespeichert und können angezeigt
werden. Die Lage kann je nach Bedarf auch gespeichert, zu einem
anderen Computer übertragen
oder weiterverarbeitet werden. Die obige Folge wird angesichts eines
Beispiels und im Hinblick auf die nachfolgenden ausführlichen
Beschreibungen leicht offensichtlich.
-
Erzeugung der 3D-Rohmarkentabelle 52
-
Die Energiequellen S1–S4, S5–S8 (9A und 9B), die in der Linker- und
Rechter-Sensor-Energiequellen-Ortstabelle 50L, 50R gespeichert
sind, werden analysiert, und 3D-Rohmarken
R1–R4 (10) werden ermittelt. Der
Rohmarkenzähler 53 wird
auf die Zahl der erfassten Rohmarken gesetzt. Es wird mit Bezug
auf 5 das folgende Verfahren zum
Erzeugen von 3D-Positionen von zwei stereoskopischen Bildern beschrieben.
Das folgende Verfahren ist in der Technik hinlänglich bekannt und es stehen
andere Methoden zur Verfügung.
-
In Schritt 501 wird der
Rohmarkenzähler 53 zunächst auf
0 gesetzt. Für
jede Linker-Sensor-Energiequelle 14L und jede Rechter-Sensor-Energiequelle 14R werden
in den Schritten 502, 503, 504 und 505 parametrische
Liniengleichungen erzeugt. Eine Linie verläuft zwischen einem Punkt auf
einem der Sensoren 18L, 18R (d. h. bei V = U =
Zs = O, oder dem Nullpunkt des Sensorkoordinatensystems)
und einer der Energiequellen S1–S4.
Somit gibt es vier Linien (d. h. linke Linien) von Sensor 18L zu
jeder der erfassten Quellen S1–S4.
Ebenso gibt es vier Linien (d. h. rechte Linien) vom Sensor 18R zu
jeder der erfassten Energiequellen S5–S8. In den Schritten 506, 507 sowie 512 bis 515 wird
eine Doppelschleife verarbeitet, die jede linke Linie mit jeder
rechten Linie paart. Die Zahl der Gesamtwiederholungen dieser Schleife
ist gleich LinkeQuellen 52L * RechteQuellen 52R.
In dem oben beschriebenen Beispiel gibt es 4 LinkeQuellen S1–S4 und
4 RechteQuellen S5–S8 (9A und 9B), die 16 Wiederholungen zum Berechnen
der Tabelle 52 (10)
erfordern.
-
In den Schritten 508 und 509 wird
die Mindestdistanz zwischen einer linken und einer rechten Linie
ermittelt. Wenn diese Distanz geringer ist als ein vordefiniertes
Minimum, dann werden die Linien als sich schneidend angesehen, und
eine mögliche 3D-Marke
R1–R4 wurde entdeckt. Diese Marke wird als roh
angesehen, da sie zu diesem Zeitpunkt unbekannt ist, wenn es sich
um eine gültige
Marke handelt. Es gibt in dem in 10 gezeigten
Beispiel 4 solche Übereinstimmungen.
Der Mindestabstand ist von der Systemgenauigkeit abhängig und
wird so klein wie praktisch möglich
gehalten, um die Zahl von falschen Marken zu reduzieren. In Schritt 510 und 511 wird
der 3D-Mittelpunkt zwischen der linken und der rechten Linie in
die 3D-Rohmarkentabelle 52 (10) gesetzt. Der Rohmarkenzähler 53 wird
inkrementiert.
-
Nach Beendigung der Schritte 501 bis 515 enthält der Rohmarkenzähler 53 die
Zahl der erfassten Rohmarken, und die 3D-Rohmarkentabelle 52 (10) ist komplett. Von diesem
Punkt an werden alle nachfolgenden Entscheidungen an 3D-Marken getroffen,
und die 2D-Sensorenergieorte werden nicht mehr benötigt. Für das Beispiel
werden 4 3D-Rohmarken R1–R4
erfasst. Zu diesem Zeitpunkt ist unbekannt, was die einzelnen Marken
sind.
-
Erzeugung der Segment-Rohmarken-Querverweistabelle 56 (15) für alle starren Körper
-
Nachfolgend wird der Ablauf der nächsten Folge
im Überblick
beschrieben. Alle möglichen
Segmente zwischen allen 3D-Rohmarken (z. B. R1–R4) in Tabelle 52 (10) werden mit allen Segmentlängen SLab,
SLbc, SLac sowie SLde, SLef, SLdf jedes Körpers 11a bzw. 11b in
Tabelle 44 (12)
verglichen. Wird eine Übereinstimmung
entdeckt, dann wird das 3D-Rohmarkenpaar zur Segment-Rohmarken- Querverweistabelle 56 (15) für diesen Körper addiert. Dasselbe getestete
Rohsegment kann mit mehreren starren Körpern übereinstimmen. Ebenso kann
ein starres Körpersegment
mehrere übereinstimmende
Rohtestsegmente haben. Diese werden in einem späteren Vorgang, Segmentverifizierung
(7), ausgefiltert.
-
Das oben Gesagte wird anhand eines
Beispiels und des Ablaufdiagramms von 6,
Generiere-Segment-Rohmarken-Querverweistabelle 56, für alle starren
Körper
erläutert.
In den Schritten 601, 602 sowie 613 bis 616 wird
eine zweistufige Verarbeitungsschleife gesteuert. Die zwei äußersten
Schleifen werden durch die Zähler
N und L indexiert (nicht gezeigt, aber im Prozessor 26 enthalten),
die zum Paaren aller Kombinationen von 3D-Rohmarken R1–R4 verwendet
werden. Es gibt N'*(N' – 1)/2 Segmente (Markenpaare),
wobei N' gleich
Rohmarken R1–R4
ist, hier z. B. N' =
4. Die Segmentlänge
zwischen 3D-Rohmarken N und L wird einmal pro Wiederholung der äußeren zwei
Schleifen (Schritte 603) berechnet. Diese Länge wird
als Testsegment bezeichnet und wird im folgenden Abschnitt verwendet.
-
In den Schritten 604, 611 und 612 wird
eine Verarbeitungsschleife vom Zähler
J (nicht dargestellt, aber im Prozessor 28 enthalten) gesteuert,
die durch alle verfolgten starren Körper sequenziert. In den Schritten 605, 609 und 610 wird
eine Verarbeitungsschleife vom Zähler
K (nicht dargestellt, aber im Prozessor 28 enthalten) gesteuert,
die durch alle Segmente in einem der Körper 11a, 11b sequenziert,
hier allgemein durch Körper
J angedeutet. Der Segmentvergleich erfolgt in den Schritten 606, 607 und 608. Das
Segment K von Körper
J wird mit dem Testsegment verglichen. Ein Segment wird dann als übereinstimmend
angesehen, wenn die Differenz kleiner als ein vordefinierter wert
ist. Wenn eine Übereinstimmung
vorliegt, werden die Werte der 3D-Rohmarkenpaar-Indexzähler N und
L in das nächste
verfügbare Paar
in der Segment-Rohmarken-Querverweistabelle 56 (15) für Körper J für Segment K gesetzt. Der Zähler „Gesamtrohpaare" (nicht dargestellt,
aber im Prozessor 28 enthalten) für Segment K wird inkrementiert.
Der vordefinierte Wert ist von der Systemgenauigkeit abhängig und
wird so klein wie praktisch möglich
gehalten, um die Zahl der Segmentübereinstimmungen zu reduzieren,
aber groß genug,
um eine unnötige
Rückweisung
von gültigen
Segmenten zu vermeiden.
-
In dem in 15 gegebenen Beispiel hat die Segmentlänge SLab
für Körper 11a eine
einzige Übereinstimmung,
nämlich
3D-Rohmarkenpaar R1 und R2. Die Segmentlänge SLbc hat 3 Übereinstimmungen,
nämlich
3D-Rohmarkenpaare
R1 und R4; R3 und R4 sowie R2 und R3. Die Segmentlänge SLac
hat zwei Übereinstimmungen,
nämlich
3D-Rohmarkenpaare
R2 und R4 sowie R1 und R3. Es ist klar, dass 3 der 6 Segmente nicht
Teil des starren Körpers 11a sind
und per Segmentverifizierung (7)
eliminiert werden müssen.
-
Segmentverifizierung
-
Alle möglichen Segmente, die von den 3D-Rohmarkenpaaren in
der Segment-Rohmarken-Querverweistabelle 56 (15) für jeden Körper 11a, 11b definiert
sind, werden durch Vergleichen der relativen Winkel θ zwischen
den Segmentlängen
SL des Körpers 11a, 11b verifiziert.
Das Verfahren wird klar, wenn man das in 7, 7A–7C gezeigte Ablaufdiagramm
anhand des folgenden Beispiels untersucht. Der Segmentverifizierungsvorgang
hat eine fünfstufige
Steuerschleife.
-
In den Schritten 701, 726 und 727 wird
eine Verarbeitungsschleife vom Zähler
L gesteuert, der durch alle verfolgten starren Körper sequenziert. In Schritt 701 wird
die Qualifiziertes-Segment-Tabelle 58 (16) für
den verifizierten starren Körper
L geleert. In den Schritten 702, 724 und 725 wird
eine Verarbeitungsschleife vom Zähler
J gesteuert, die durch alle Segmentlängen SL von Körper L sequenziert.
In die Steuerschleife wird gegangen, wenn das Segment J nicht bereits
qualifiziert ist, wie die Qualifiziertes-Segment-Tabelle 58 (16) zeigt.
-
In den Schritten 704, 720 und 721 wird
vom Zähler
N eine Verarbeitungsschleife gesteuert, die durch alle 3D-Rohmarkenpaare in
der Segment-Rohmarken-Querverweistabelle 56 (15) von Körper L für Segment
J sequenziert, wenn das Segment J in der Qualifiziertes-Segment-Tabelle 58 (16) nicht qualifiziert wurde
(d. h. auf FALSCH gesetzt, Schritt 703). In Schritt 705 wird
der Vektor X, auf den Koordinatenachsenmullpunkt von System 10 transponiert, für das 3D-Rohmarkenpaar
N von Segment J für
Körper
L berechnet. In den Schritten 706, 718 und 719 wird
vom Zähler
K eine Verarbeitungsschleife gesteuert, die durch alle Segmentlängen nach
dem Segment J im Körper
L sequenziert.
-
In den Schritten 707, 716 und 717 wird
von Zähler
M eine Verarbeitungsschleife gesteuert, die durch alle 3D-Rohmarkenpaare in
der Segment-Rohmarken-Querverweistabelle 56 (15) von Körper L für Segment
K sequenziert. In den Schritten 708 bis 711 wird
der Vektor Y, auf den Nullpunkt transponiert, für das 3D-Rohmarkenpaar M von
Segment K für Körper L berechnet.
Das Punkt- (•)
Produkt zwischen Vektor X und Vektor Y wird ermittelt. Dieses Punkt-
(•) Produkt
wird mit dem Ist-Punkt- (•)
Produkt für
Segmentpaar J und K wie in der Segment-Punktprodukttabelle 46 (14) für Körper L gespeichert verglichen.
Wenn die Differenz kleiner ist als ein vorbestimmter Wert, dann
gilt dies als eine Übereinstimmung.
Der vordefinierte Wert ist von der Genauigkeit des Systems 10 abhängig und
wird so klein wie praktisch möglich
gehalten, um die Zahl der falschen Segmentübereinstimmungen zu reduzieren,
aber groß genug,
um ein unnötiges
Zurückweisen
von gültigen Segmenten
zu vermeiden. Die bevorzugte Ausgestaltung benutzt einen Wert von
200.
-
Wenn eine Übereinstimmung gefunden wird, werden
beide Segmente als validiert angesehen, und die 3D-Rohmarkenpaare
N und M für
Segmente J und K in der Segment-Rohmarken-Querverweistabelle 56 (15) werden als wahr angesehen.
In den Schritten 712 bis 715 muss das gültige 3D-Rohmarkenpaar N und
M zur ersten Position in Reihe J und K bewegt werden. Ein Gesamtreihenpaarzähler (nicht
dargestellt) wird auf 1 gesetzt, alle anderen 3D-Rohmarkenpaare werden eliminiert. Die
Segmente J und K werden in der Qualifiziertes-Segment-Tabelle 58 (16) auf wahr gesetzt. Nach
Abschluss jeder Wiederholung von Steuerschleife J wird in Schritt 722 ein
Test durchgeführt.
Wenn Segment J nach dem Vergleich mit allen nachfolgenden Segmenten
nicht qualifiziert ist, wird es als schlechtes Segment angesehen.
In Schritt 723 werden alle 3D-Rohmarkenpaare für Segment J eliminiert, und die
Zähler-Gesamtrohpaare werden
auf 0 gesetzt. Der Prozess wird für alle Körper 11a, 11b wiederholt (Schritte 725–728).
-
Nachfolgend wird ein Beispiel mit
Bezug auf die Segment-Rohmarken-Querverweistabelle 56 (15), die Segment-Punktprodukttabelle 46 (14), die 3D-Rohmarkentabelle 52 (10) und das Ablaufdiagramm
von 7, Segmentverifizierung,
beschrieben. Die nachfolgende Eventfolge kann durch das Ablaufdiagramm
verfolgt werden:
L = Körper 11a
J
= Segmentlänge
SLab Segmentlänge
SLab ist nicht qualifiziert.
N = Paar 1 (R1 , R2) von SLab
Generiere Vektor für Paar
N (R1, R2)
K = Segmentlänge
SLbc
M = Paar 1 (R1, R4) von Segmentlänge SLbc
Generiere Vektor
für Paar
M (R1, R4)
Erzeuge Punktprodukt (•); (R1, R2) • (R1, R4)
= 3599.995117
Vergleiche mit Punktprodukttabelle 46 (14) für SLab, SLbc = 3600
Übereinstimmung
gefunden
Lösche
Paar 2 (R3, R4) und Paar 3 (R2, R3) von Segmentlänge SLbc
Setze Segmentlänge SLbc
auf qualifiziert
Setze Segmentlänge SLab auf qualifiziert
Rücke M vor
auf nächstes
Paar
Dies war das letzte Paar von Segmentlänge SLbc.
Rücke K vor
zu Segmentlänge
SLac
M = Paar 1 von Segmentlänge SLac
Generiere Vektor
für Paar
M (2,4)
Generiere Punktprodukt (•), (R1, R2) • (R2, R4)
= 0.001304
Vergleiche mit Punktprodukttabelle 46 (14) für Segmentlängen SLab, SLac = 0
Übereinstimmung
gefunden
Lösche
Paar 2 (R1, R3) von Segmentlänge
SLac
Setze Segmentlänge
SLac auf qualifiziert
Setze Segmentlänge SLab auf qualifiziert
Rücke M vor
zu nächstem
Paar
Dies war das letzte Paar von Segmentlänge SLab.
Rücke K vor
zu nächstem
Segment.
Dies war das letzte Segment.
Rücke N vor
zu nächstem
Paar
Dies war das letzte Paar.
Rücke J vor zu nächster Segmentlänge SLbc
Dieses
Segment ist qualifiziert.
Rücke
J vor zu nächster
Segmentlänge
SLac
Dieses Segment ist qualifiziert.
Rücke J vor
zu nächstem
Segment
Dieses war das letzte Segment.
Rücke L vor
zu nächstem
Körper
Dies
war der letzte Körper.
Fertig,
siehe Tabelle (Schritt 158)
-
Markenkorrespondenzextraktion
-
Die Korrespondenz zwischen den 3D-Rohmarken,
die in der Segment-Rohmarken-Querverweistabelle 56 (15) indexiert wurde, und
den Ist-Marken der Körper,
wird durch Satzschnittmethoden mittels der Markensegmentsatztabelle 48 (13) des Körpers ermittelt.
Die 3D-Rohmarken R1–R4
werden in der Gemessene-Markenpositionstabelle 60 (17) des Körpers dargestellt.
Diese Schritte werden nachfolgend gemäß Illustration anhand eines
Beispiels unter Verwendung des Ablaufdiagramms von 8, Markenkorrespondenzextraktion, beschrieben.
-
Der Vorgang der Markenkorrespondenzextraktion
hat eine dreistufige Steuerschleife. In den Schritten 801, 825 und 826 wird
vom Zähler
K eine Verarbeitungsschleife gesteuert, die durch alle verfolgten
starren Körper
sequenziert. In den Schritten 802, 823 und 824 wird
vom Zähler
N eine Verarbeitungsschleife gesteuert, die durch alle Marken von Körper K sequenziert.
Der Satzschnittpunkt wird mit Registern M1 und M2 ermittelt. Diese
werden in Schritt 803 zunächst auf leer gesetzt. In den
Schritten 804, 812 und 813 wird von Zähler J eine
Verarbeitungsschleife gesteuert, die durch alle Segmentlängen sequenziert,
die an der Marke N von Körper
K anhängen.
Für jede
Marke gibt es B-1 Verbindungssegmente, wobei B die Gesamtzahl der
Marken für den
Körper
ist.
-
In Schritt 805 wird L auf
die Segmentnummer gesetzt, indexiert um J für Marke N von Körper K in der
Markensegmentsatztabelle 48 (13).
In den Schritten 807 bis 811 wird, wenn es eine
qualifizierte Segmentlänge
SL in der Segment-Rohmarken-Querverweistabelle 56 (15) gibt, der Satzschnittpunkt von
Marken getestet. Wenn M1 leer ist, wird M1 auf die erste Marke des
Paares gesetzt und M2 wird auf die zweite Marke des Paares gesetzt.
Wenn M1 nicht leer ist, dann wird getestet, ob M1 entweder gleich der
ersten oder gleich der zweiten Marke des Paares ist. Wenn M1 nicht
gleich einer der Marken ist, dann schneidet es sich nicht mit dem
Satz und wird auf zurückgewiesen
gesetzt. Ebenso wird M2 entweder auf die erste oder die zweite Marke
des Paares getestet. Wenn M2 nicht gleich einer der Marken ist,
dann schneidet es sich nicht mit dem Satz und wird auf zurückgewiesen
gesetzt. Dies wird für
alle Verbindungssegmente mit Marke N wiederholt.
-
Zu diesem Zeitpunkt können M1
und M2 verschiedene Zustände
haben, die in den Schritten 814, 815–817, 818–820 sowie 821–822 getestet
werden. Wenn M1 eine gültige
Marke ist und M2 zurückgewiesen
wird, dann entspricht die durch M1 referenzierte Rohmarke Marke
N. Wenn M2 eine gültige
Marke ist und M1 zurückgewiesen
wird, dann entspricht die durch M2 referenzierte Rohmarke Marke
N. Die durch M1 oder M2 referenzierte 3D-Rohmarkenposition kann
auf die Gemessene-Markenpositionstabelle 60 (17) kopiert werden. Wenn
sowohl M1 als auch M2 zurückgewiesen
werden oder leer sind, dann gibt es keine übereinstimmende Rohmarke für Marke
N, und die Gemessene-Markenpositionstabelle 60 (17) wird für diese
Marke auf fehlend gesetzt.
-
Beispiel
-
Das Durcharbeiten eines Beispiels
soll die obigen Aussagen klären.
Es wird Bezug genommen auf die Segment-Rohmarken-Querverweistabelle 56 (15), die Markensegmentsatztabelle 48 (13), die 3D-Rohmarkentabelle 52 (10), die Gemessene-Markenpositionstabelle 60 und
das Ablaufdiagramm von 8, Markenkorrespondenzextraktion.
Die folgende Eventfolge kann durch das Ablaufdiagramm verfolgt werden:
K
= Körper 11a
N
= Marke 12a
Setze M1 und M2 auf leer
Setze J
auf erstes Segment in Markensegmentsatztabelle 48 (13) für Marke 12a
Setze
L auf Segmentlänge
SLab wie durch J referenziert.
-
Es gibt ein qualifiziertes SLab-Segment
in der Segment-Rohmarken-Querverweistabelle 56 (16). Das Rohmarkenpaar ist
R1, R2.
-
M1 ist leer, daher setze M1 = R1
und M2 = R2.
-
Rücke
J zu zweitem Segment in Markensegmentsatztabelle 48 (13) für Marke 12a vor.
-
Setze L auf Segmentlänge SLac
gemäß Referenzierung
durch J.
-
Es gibt ein qualifiziertes SLac-Segment
in der Segment-Rohmarken-Querverweistabelle 56 (15). Das Rohmarkenpaar ist
R2, R4.
-
M1 ist nicht leer.
-
M1 ist nicht gleich R2 oder R4, daher
setze M1 auf zurückgewiesen.
-
M2 ist gleich R2.
-
Rücke
J auf drittes Segment in Markensegmentsatztabelle 48 (13) für Marke 12a vor. Dies war
das letzte Segment für
Marke N.
-
Teste M1 und M2
-
M1 wird zurückgewiesen und M2 ist gleich R2,
daher entspricht 3D-Rohmarke R2 der Ist-Marke N (12a).
-
Kopiere 3D in Gemessene-Markenpositionstabelle 60 (17).
-
Rücke
N zu Marke 12b vor.
-
Die obige Folge wird für Marken 12b und 12c wiederholt.
Der Vorgang wird mit Rohmarke R2 wiederholt, aber wird in die Ist-Marke 12a abgebildet, Rohmarke
R4 wird in Ist-Marke 12b abgebildet, und Rohmarke R1 wird
in Ist-Marke 12c abgebildet.
-
Ermittlung der Körperausrichtung
(Lage)
-
Jetzt haben wir alle Informationen,
die zum Ermitteln der Lage des starren Körpers benötigt werden. Dies wird in der
Technik gut verstanden und hier nicht beschrieben. Die Lage wird
in der Berechnete-Starrer-Körper-Positions-
und -Ausrichtungstabelle 62 (18) gespeichert.