background image

 

 

 

Z

AKŁAD 

P

ROJEKTOWANIA 

T

ECHNOLOGII

 

 

 

 

Laboratorium: 

 

 

Elastyczne systemy produkcyjne 

 

 

Instrukcja 4 

 

 

Temat: Systemy identyfikacji wizyjnej  

w elastycznej produkcji 

 

 

 

Opracował: mgr inż. Jakub Wojciechowski

 

background image

 

I. Wprowadzenie do systemów wizyjnych

 

Systemy wizyjne są środkami automatyzacji dążącymi do zastępowania wykonywanych 

przez pracowników operacji kontrolnych i pomiarowych na realizowane przy pomocy kamer i 
obróbki obrazu. Możliwość skrócenia czasu trwania procesu i podniesienia jakości produkcji 
sprawia,  że  są  szeroko  stosowanie  w  wielu  gałęziach  przemysłu.  Podstawowymi  zadaniami 
wykonywanymi technikami wizji maszynowej są: 

 

Lokalizacja  –  znalezienie  oraz  określenie  położenia  i  orientacji  w  przestrzeni 
elementów, które zostają następnie przenoszone przez manipulatory, 

 

Pomiar  –  ustalenie  fizycznych  wymiarów  badanego  przedmiotu,  długości,  średnicy, 
pola powierzchni, objętości, promieni krzywizny,  

 

Kontrola  –  sprawdzenie  poprawności  procesu  montażu,  pakowania,  weryfikacja 
obecności niezbędnych elementów,  

 

Identyfikacja  –  odczytywanie  kodów,  cyfr  i  ciągów  znaków,  w  celu  rozpoznania 
produktu lub weryfikacji znakowania.  

W  zastosowaniach  przemysłowych  używane  są,  w  zależności  od  wymagań,  różne  typy 

kamer. Do wykonywania ściśle określonego zadania, jak segregowanie względem koloru, bądź 
odczytywanie ciągu znaków stosuje się wyspecjalizowane czujniki wizyjne. Dzięki temu, że 
wykonują  tylko  jeden  typ  operacji,  ich  obsługa  jest  prosta.  W  zagadnieniach  bardziej 
rozbudowanych  stosuje  się  inteligentne  kamery  przemysłowe.  Posiadają  one  wbudowany 
komputer, który można zaprogramować do wykonywania zaplanowanych działań. Najbardziej 
wymagające  zadania  wymagają  przetwarzania  dużych  ilości  danych  na  zewnętrznym 
komputerze połączonym z kamerą strumieniową, przesyłającą obraz w czasie rzeczywistym.  

Do przeprowadzania obliczeń w systemach fotogrametrycznych wystarczającym modelem 

jest model kamery otworkowej, zaprezentowany na rys. 1. Obiektyw ma postać pojedynczej 
soczewki skupiającej, której punkt O jest środkiem układu współrzędnych kamery. Jedynymi 
parametrami  wymaganymi  do  opisu  układu  jest  ogniskowa  f  oraz  odległość  soczewki  od 
płaszczyzny  matrycy  światłoczułej  b.  Najczęściej  fotografowane  obiekty  znajdują  się  w 
odległości znacznie większej od ogniskowej kamery, przez co odległość b dąży do f. Wielkości 
powiązane są równaniem soczewki (wzór 1.1). 

 

f

=

b

+

Z

1

1

1

 

(1.1) 

 

 

 

Rys. 1. Model kamery otworkowej 

background image

 

Do geometrycznego śledzenia promieni model upraszcza się jeszcze bardziej, do postaci  

jak na rys. 1b. Obraz rzutowany jest na umowną płaszczyznę położoną w odległości ogniskowej 
od obiektywu. Nie uwzględnia się w nim odwrócenia obrazu oraz położenia sensora, do opisu 
niezbędny  jest  tylko  jeden  parametr.  Model  kamery  otworkowej  pozwala  przeliczać 
współrzędne rzeczywiste na współrzędne punktów rzutowanych na płaszczyznę obrazowania. 
Dowolny punkt sceny określony w układzie współrzędnych kamery zostaje rzutowany na punkt 
na obrazie płaskim w sposób przedstawiony na rys. 2. 

Na podstawie zależności geometrycznych z rys. 1.3 można zapisać równania: 

 

f

Z

=

u

X

 

(1.2) 

 

 

Z

X

f

=

u

 

(1.3) 

 

 

Z

Y

f

Z

X

f

v

u

 

(1.4) 

 

gdzie:  

uv – współrzędne danego punktu na obrazie płaskim uzyskanym z kamery, w układzie 

obrazu, u’v’ – w układzie sensora 

XYZ – współrzędne danego punktu w przestrzeni w układzie kamery, 
f
 – ogniskowa obiektywu kamery.  
Przestrzeń robocza kamery
, w której zawierają się punkty mogące zostać rzutowane na 

płaszczyznę obrazu ma kształt ściętego ostrosłupa (rys. 3).  

Rys. 2. Rzutowanie punktu na płaszczyznę obrazowania 

background image

 

 

Jego  geometria  jest  zdeterminowana  przez  ogniskową  obiektywu  i  wymiary  sensora 

kamery.  Interesującym  parametrem  jest pole widzenia w płaszczyźnie odległej od kamery o 
zadaną wartość. Posługując się proporcją z równania 1.2, podstawiając za  u szerokość, za v 
wysokość matrycy CCD, można określić pole widzenia FOV (ang. Field Of View). 

 

Z

f

V

Z

f

U

=

Y

X

=

FOV

maks

maks

  

(1.5) 

 

Obraz zapisany w postaci cyfrowej jest podzielony na elementy, piksele, które odpowiadają 

częściom sensora kamery. Liczba pikseli w pionie i poziomie nazywana jest rozdzielczością 
obrazu.      Rozdzielczością  obiektu  jest  fizyczny  wymiar  na  badanym  przedmiocie 
odpowiadający jednemu pikselowi na obrazie. Dana jest ona wzorem: 

 

V

maks

U

maks

n

Y

=

n

X

=

k

  

(1.6) 

 

gdzie: 

 

X

maks

, Y

maks

 – wymiary pola widzenia kanery w rozpatrywanej płaszczyźnie,  

 

n

U

, n

V

 – liczba pikseli obrazu odpowiednio w wierszach i kolumnach. 

Rozdzielczość  obiektów  w  danej  płaszczyźnie  pozwala  w  prosty  sposób  przeliczać 

jednostki obrazu, piksele na jednostki rzeczywiste, milimetry według wzoru 1.7: 

 

v

u

k

=

y

x

  

(1.7) 

 

gdzie:  

 

x, y [mm]– współrzędne rzeczywiste w rozpatrywanej płaszczyźnie, 

 

u, v [px] – współrzędne w płaszczyźnie obrazu. 

Przemysłowe  systemy  wizyjne  posługują  się  zwykle  obrazami  w  odcieniach  szarości. 

Obraz ma postać macierzy, w której każda komórka przechowuje liczbę od 0 do 255, przy czym 

Rys. 3. Przestrzeń robocza kamery 

background image

 

0 odpowiada czerni, a 255 bieli. Przykładowy obraz przedstawia rys. 4.  

 

Obraz jest przetwarzany w celu określenia kluczowych obserwowanych obiektów. Obraz 

może wymagać wstępnego filtrowania w celu poprawy jego przydatności w zadaniu. Może 
ono polegać na korekcie jasności  i  kontrastu,  usunięciu  szumu,  uwydatnieniu krawędzi,  lub 
usunięciu  nadmiarowych  informacji.  Często  stosowanym  zabiegiem  jest  binaryzacja,  która 
polega  na  przekształcenie  obrazu  w  odcieniach  szarości  na  obraz  czarno-biały,  w  którym 
piksele przyjmują wyłącznie wartości  0 i  1. Jest  to  podejście wystarczające do wykrywania 
jasnych obiektów na ciemnym tle i odwrotnie. Zwykle analizie nie musi być poddawany cały 
obraz, a jedynie jego fragment. Wybór obszaru, w którym znajdują się kluczowe dla analizy 
elementy, (ang. Region of Interest, ROI) ogranicza ilość koniecznych do wykonania obliczeń, 
rys. 5.a.  

 

Do podstawowych narzędzi stosowanych w analizie obrazu należy wykrywanie krawędzi

rys.    5a.  Rozpatrywana  są  poszczególne  kolumny  lub  wiersze  obrazu,  krawędź  zostanie 
rozpoznania,  jeżeli  wystąpi  na  niej  wystarczająco  duża  różnica  między  barwą  tła,  a  barwą 
przedmiotu. Analiza plam, rys 5b, analizuje zbiory połączonych ze sobą pikseli o poziomie 
szarości  wyraźnie  różnym  od  poziomu  tła.  Wykryte  plamy  można  segregować  względem 
wielkości i położenia, zatem do dalszego badania przekazywać jedynie obszary określonego 
typu.  Biorąc  pod  uwagę  złożoność  obliczeń,  bardziej  skomplikowaną  operacją  jest 
rozpoznawanie schematów. Algorytm wyszukuje zadanego próbką szablonu, przy czym mogą 
być również odnajdywane elementy innej wielkości i obrócone, rys. 5c. Analiza obrazu może 
również polegać na odczytywaniu różnorodnych kodów, oraz na rozpoznawaniu i weryfikacji 
ciągów znaków alfanumerycznych, rys. 5d. 

 

Rys. 4. Cyfrowy zapis obrazu w odcieniach szarości 

Rys. 5. Podstawowe techniki analizy obrazu 

background image

 

System wizyjny może komunikować się z operatorem wyświetlając raporty na ekranie lub 

wymieniać dane z innymi elementami automatyki. Komunikacja przeprowadzana jest poprzez 
standardowe  wejścia  i  wyjścia  cyfrowe  bądź  jeden  z  przemysłowych  protokołów 
komunikacyjnych. System może być również podłączony do lokalnej Ethernet i przekazywać 
dane do podłączonych komputerów PC. 

 

II. Przebieg ćwiczenia

1)  Ustalenie wspólnego układu współrzędnych dla manipulatora robota przemysłowego 

i kamery 
Współpraca  robota  przemysłowego  z  systemem  wizyjnym  jest  możliwa,  gdy  znane  jest 
wzajemne położenie manipulatora i kamery. Proces określenia tych wielkości nazywany 
jest kalibracją.  

a)  Uruchomić podgląd obrazu kamery dwukrotnie klikając na nazwie urządzenia (rys. 6) 

w programie IVC Studio.  

 

Rys. 6. Główne okno programu IVC Studio 

b)  Umiejscowić na palecie, pod kamerą systemu wizyjnego, kartkę papieru formatu A3. 

Narysować na niej krzyże w miejscach będących narożnikami obrazu widocznego  w 
podglądzie (rys. 7). Jeżeli obraz nie mieści się na ekranie, należy przesuwać go przy 
pomocy pasków bocznych, tak aby uzyskać skrajne punkty obrazu. Wzorzec nie może 
przesuwać się po palecie podczas nanoszenia punktów.  

 

Rys. 7. Wspólny układ współrzędnych dla systemu wizyjnego i manipulatora 

background image

 

Początek układu współrzędnych znajduje się w lewym górnym narożniku obrazu, oś X 
skierowana jest w prawo, a Y w dół.  

c)  Przy  pomocy  narzędzia  Chwytak  Cylindra  zostanie  zdefiniowany  nowy  układ 

współrzędnych robota, tożsamy z układem kamery. W tym celu należy zamocować w 
chwytaku  narzędzie  zakończone  stożkiem  (proszę  zwrócić  się  o  pomoc  do 
prowadzącego  zajęcia).  Wskazane  jest  sprawdzenie  poprawności  definicji  narzędzia, 

ustalenia jego punktu roboczego TCP (ang. Tool Center Point). W kontrolerze robota 
wybrać ABB→Poruszanie (rys. 8) i następnie ustawić narzędzie: ChwytakCylindra
układ  współrzędnych:  narzędzia  oraz  rodzaj  ruchu:  reorientacja.  Przez  poruszanie 
drążkiem  zmieniana  zostaje  orientacja  narzędzia.  Skontrolować,  czy  punkt  roboczy 
narzędzia, wierzchołek stożka, pozostaje nieruchomy podczas tego ruchu.  

 

Rys. 8. Okna kontrolera przy ręcznym sterowaniu ruchami robota 

d)  Ustawić narzędzie tak, aby można było wskazywać przy pomocy narzędzia punkty na 

palecie,  oś  narzędzia  powinna  być  pionowa,  stożek  skierowany  w  dół.  Przejść  w 

kontrolerze  robota  do  Menu→  Dane  programu→  wobjdata.  Dane  typu  wobjdata 
przechowują  informację  o  układach  współrzędnych  zdefiniowanych  przez 
użytkownika.  Zadaniem  jest  zdefiniowanie  układu  robota  tożsamego  z  wcześniej 
ustalonym układem kamery. W tym celu należy wybrać polecenie Nowy oraz wybrać 
łatwą  do  zapamiętania  nazwę.  Wciśnięcie  przycisku  oznaczonego  trzema  kropkami 
wyświetla klawiaturę ekranową. Zatwierdzić klawiszem ok.  

e)  Następnie należy zaznaczyć utworzony układ i wybrać polecenia Edytuj→ Zdefiniuj

Wybrać metodę 3-punktowo. Ekran powinien wyglądać jak na rys. 9.  

background image

 

 

Rys. 9. Definiowanie nowego układu współrzędnych robota. 

f)  Przełączając  się  pomiędzy  zakładkami  Poruszanie  oraz    Dane  Programu  należy 

wskazać najpierw dwa punkty na osi X układu. Będą to punkty na opracowanym wzorcu 
odpowiadające górnemu lewemu i górnemu prawemu narożnikowi obrazu. W zakładce 

Poruszanie  ustawić  narzędzie:  ChwytakCylindra,  układ  współrzędnych:  bazowy

rodzaj ruchu: liniowy. Punkt roboczy narzędzia będzie poruszał się liniowo wzdłuż osi 
wewnętrznego  układu  współrzędnych  robota.  W  celu  wskazania  punktu  należy 
posługiwać  się  małymi  wychyleniami  drążka,  skutkującymi  małymi  prędkościami 
przemieszczeń manipulatora. Po wskazaniu punktu odpowiadającego górnemu lewemu 
narożnikowi  obrazu  zaznaczyć  Punkt  użytkownika  X1  oraz  wybrać  polecenie 

Modyfikacja  pozycji.  Podobnie  postąpić  dla  pozostałych  dwóch  punktów.  Po 
wskazaniu wszystkich niezbędnych pozycji zatwierdzić przyciskiem ok. Teraz możliwy 
jest już wybór zdefiniowanego układu współrzędnych w zakładce Poruszanie.  

g)  Sprawdzić, czy wskazywane są odpowiednie wartości pozycji narzędzia X, Y i Z oraz 

czy ruch odbywa się w wcześniej założonych kierunkach. Wyjąć wskaźnik z chwytaka.  

 

Rys. 10. Pomiar pola widzenia kamery w płaszczyźnie palety 

h)  Należy zdjąć wzorzec z palety i zmierzyć odległości między punktami jak  na rys. 10 

oraz obliczyć rozdzielczość obiektu k, jako średnią daną wzorem: 

background image

 

 

𝑘 =

1
4

⋅ (

𝑋

𝑚𝑎𝑘𝑠1

𝑛

𝑈

+

𝑋

𝑚𝑎𝑘𝑠2

𝑛

𝑢

+

𝑌

𝑚𝑎𝑘𝑠1

𝑛

𝑣

+

𝑌

𝑚𝑎𝑘𝑠2

𝑛

𝑣

(2.1) 

gdzie: 

X

maks1

,  X

maks2

,  Y

maks1

,  Y

maks2

  –  zmierzone  wymiary  pola  widzenia  kamery 

w płaszczyźnie bazowej, 

 

n

u

, n

v

 – liczba pikseli obrazu, dla kamery Sick 2d-m1131: 

𝑛

𝑢

 = 1600, 

𝑛

𝑣

 = 1200.  

Parametr  k  jest  rozdzielczością  obiektów  znajdujących  się  w  płaszczyźnie  bazowej, 

pozwala  on  przeliczać  długości  na  obrazie  dane  w  pikselach,  na  rzeczywiste  wymiary  w 

milimetrach. Jednemu pikselowi odpowiada k milimetrów w rozpatrywanej płaszczyźnie.  

2)  Program wykrywania obiektu w środowisku IVC Studio 

a)  W  oknie  głównym  programu  IVC  Studio  (rys.  6)  utworzyć  nowy  program,  klikając 

prawym przyciskiem myszy na ikonie Programs, wybierając przycisk New program 

i przypisując rozpoznawalną nazwę. Podobnie utworzyć tabele danych klikając ppm na 

ikonie Tables i wybierając przycisk New tableKliknąć na nowo utworzony program, 
potwierdzić przypisanie programu i tabeli do urządzenia. Pokazane zostanie nowe okno 

tworzenia programu kamery.  

b)  W  zakładkach  (rys.  11.)  pogrupowane  są  funkcje  jakie  mogą  być  użyte  w 

opracowywanym programie.  

 

Rys. 11. Funkcje kamery w programie Sick IVC Studio 

c)  Wstawić z zakładki Image funkcje Grab Setup (rys. 12). Definiuje ona ustawienia zdjęć 

wykonywanych przez kamerę.  

 

Rys. 12. Ustalanie parametrów zdjęć kamery Sick IVC 2D-m1131 

Parametr  Exposure  time  odpowiada  za  czas  ekspozycji  i  tym  samym  ilość  światła 
padającego  na  sensor  i  jasność  zdjęć.  Ustawienie  parametru  Strobe  enable  na  true  i 

ustalenie  czasu  w  parametrze  Strobe  time  sprawi,  że  przy  każdym  zdjęciu  będzie 
uruchamiane dodatkowe oświetlenie. Wstawić funkcję Grab  z zakładki Image. Każdy 

background image

10 

 

krok  programu  można  wywołać  zaznaczając  go  i  wciskając  klawisz  F5.  Zaznaczyć 
funkcję  Grab  Setup  i  wywołać  ją,  zaznaczyć  funkcję  Grab  i  również  wywołać 
klawiszem F5. Obraz z kamery powinien pojawić się w oknie oznaczonym cyfrą 0 nad 
oknem programu. Dopasować omówione parametry, aby uzyskać odpowiednią jasność 
i kontrast ujęcia.  

d)  Kolejnym krokiem jest ustalenie fragmentu obrazu, który będzie dalej przetwarzany. Z 

zakładki  Region  of  Interest  wybrać  funkcję  ROI  Rectangle.  W  tym  przypadku 
rozpatrywany  będzie  cały  uzyskany  obraz,  dlatego  region  został  zdefiniowany  jako 
prostokąt  pokrywający  całe  ujęcie.  Wymiary  podawane  są  pikselach.  Uzupełnić 

parametry kroku tak jak na rys. 13.  

 

 

Rys. 13. Ustawienie dalej przetwarzanego obszaru obrazu 

e)  Z zakładki Filter wybrać funkcję Binarize. Służy ona do ograniczenia liczby kolorów 

obrazu z 256 stopni szarości do czerni i bieli. Jest to krok, którego parametry można 
zmieniać przy pomocy konfiguratora dostępnego po wybraniu przycisku Setup. Należy 
wybrać numer kroku w którym zdefiniowano ROI oraz wartości graniczne algorytmu 

binaryzacji. Dobrać parametry tak, aby tło było czarne, a elementy na palecie były białe. 
Sprawdzić powtarzalność efektów w przypadku zmiany oświetlenia zewnętrznego (np. 
odsłonięcia rolet okiennych).  

background image

11 

 

 

Rys. 14. Konfiguracja parametrów binaryzacji obrazu 

f)  Zadaniem jest wykrywanie położenia zadanych obiektów na palecie w celu uchwycenia 

ich przez manipulator robota. Przydatna do tego jest funkcja Shape Locator  z zakładki 

Matching. Konfigurator kroku przedstawiono na rys. 15a. Po wciśnięciu przycisku Edit 

Shape pokazuje się okno definicji poszukiwanego kształtu (rys. 15b). Należy zaznaczyć 
kształt prostokątem oraz podać współrzędne punktu referencyjnego. W podstawowym 

oknie  definicji kroku należy zaznaczyć możliwość skalowania i  obrotu (allow scaled 

objects,  allow  rotation).  Danymi  wyjściowymi  algorytmu  są  współrzędne  punktu 
referencyjnego  poszukiwanego  obiektu.  Należy  sprawdzić  działanie  algorytmu 
przestawiając przedmiot w różne położenia na palecie.   

background image

12 

 

 

 

Rys. 15. Wyszukiwanie zadanego kształtu 

g)  Dla  wybranego  położenia  obiektu  odczytać  jego  położenie  na  obrazie.  Przekształcić 

współrzędne dane w pikselach na rzeczywiste, mierzone w milimetrach. Posłużyć się 
zależnościami: 

 

𝑥 = 𝑘 ⋅ 𝑢 

(2.2) 

background image

13 

 

 

𝑦 = 𝑘 ⋅ 𝑣 

(2.3) 

gdzie: 

 

x, y – współrzędne w rzeczywistym układzie współrzędnych kamery i robota. 

 

u, v – współrzędne na płaszczyźnie obrazu.  

h)  Przy  pomocy  kontrolera  przemieścić  manipulator  na  obliczoną  pozycję  (przyjąć  

z = –120 mm). Sprawdzić, czy jest możliwe uchwycenie obiektu jedynie przy pomocy 

danych uzyskanych z kamery.  

VI. Zawartość sprawozdania 

1) Algorytm  ustalania  wspólnego  układu  współrzędnych  dla  kamery  i  robota 

przemysłowego. 

2) Algorytm wykrywania zadanych elementów przez system wizyjny.  

3) Omówienie  wpływu  zmienianych  na  zajęciach  parametrów  na  działanie  programu 

identyfikacji wizyjnej.  

4) Wnioski  na  temat  przydatności  opracowanego  rozwiązania  w  praktycznych 

zastosowaniach. 

VII. Zagadnienia 

1) Wymienić zadania, które można zrealizować przy użyciu systemów wizji maszynowej.  

2) Omówić rodzaje kamer stosowanych w przemysłowych systemach wizyjnych.  

3) Przedstawić model kamery otworkowej.  

4) Omówić przestrzeń roboczą kamery.  

5) Jaka jest różnica między rozdzielczością kamery, a rozdzielczością obiektu? 

6) Omówić techniki filtrowania obrazu.  

7) Omówić techniki analizy obrazu.  

8) Omówić cyfrową reprezentację obrazu.  

9) Przedstawić  sposoby  komunikacji  systemów  wizyjnych  z  innymi  elementami 

automatyki.