{"id":23517,"date":"2025-07-29T15:48:19","date_gmt":"2025-07-29T13:48:19","guid":{"rendered":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?p=23517"},"modified":"2025-09-04T10:38:32","modified_gmt":"2025-09-04T08:38:32","slug":"symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8","status":"publish","type":"post","link":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/","title":{"rendered":"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8"},"content":{"rendered":"\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"dowiesz-sie\">\n<h3>Z tego artyku\u0142u dowiesz si\u0119:<\/h3>\n<ul class=\"bulleted\">\n<li>jak zasymulowa\u0107 system wizyjny w \u015brodowisku RC+8,<\/li>\n<li>jak przygotowa\u0107 taki system do poprawnego dzia\u0142ania we wsp\u00f3\u0142pracy z robotem,<\/li>\n<li>jak napisa\u0107 prosty program pick and place wykorzystuj\u0105cy obraz z kamery.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Dzi\u0119ki temu poradnikowi dowiesz si\u0119, jak przygotowa\u0107 symulacj\u0119 systemu wizyjnego. Jest to prosty spos\u00f3b na zapoznanie si\u0119 z tym interesuj\u0105cym rozwi\u0105zaniem, bez potrzeby posiadania fizycznego sprz\u0119tu. Dowiesz si\u0119, w jaki spos\u00f3b dobra\u0107 kamer\u0119 do wykonywanego zadania, jak j\u0105 skalibrowa\u0107 oraz przygotowa\u0107 jej program. Na koniec dowiesz si\u0119 te\u017c, jak wykorzysta\u0107 j\u0105 w praktyce w zadaniu pick and place. Robot nie b\u0119dzie musia\u0142 zna\u0107 pozycji poruszanych obiekt\u00f3w, wszystkim zajmie si\u0119 kamera.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Po co wprowadza\u0107 systemy wizyjne?<\/h2>\n\n\n\n<p>Na pocz\u0105tek s\u0142\u00f3w kilka o samych systemach wizyjnych. Dlaczego warto si\u0119 nimi zainteresowa\u0107? Powod\u00f3w jest kilka. Systemy wizyjne maj\u0105 ogromn\u0105 ilo\u015b\u0107 praktycznych zastosowa\u0144, mog\u0105 by\u0107 wykorzystane w kontroli jako\u015bci, wspiera\u0107 prac\u0119 ludzi i robot\u00f3w, a nawet sprawdza\u0107 stan techniczny maszyn za pomoc\u0105 termowizji.<\/p>\n\n\n\n<p>Szczeg\u00f3lnie warta uwagi jest integracja robot\u00f3w z systemami wizyjnymi. Dobrym przyk\u0142adem s\u0105 tu roboty SCARA, kt\u00f3re dzi\u0119ki du\u017cej pr\u0119dko\u015bci mog\u0105 \u015bwietnie sortowa\u0107 lub paletyzowa\u0107 ma\u0142e elementy. W sytuacji, gdy produkujemy np. ma\u0142e uk\u0142ady scalone, robot z systemem wizyjnym mo\u017ce szybko lokalizowa\u0107 ich po\u0142o\u017cenie, podnosi\u0107 je i przenosi\u0107 do opakowa\u0144. Cz\u0119sto w takich realizacjach wykorzystuje si\u0119 sto\u0142y wibracyjne, aby spozycjonowa\u0107 elementy, wykry\u0107 je kamer\u0105 i przenie\u015b\u0107 z wykorzystaniem robota.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Potrzebne urz\u0105dzenia i oprogramowania<\/h2>\n\n\n\n<p>Do wykonania aplikacji wystarczy oprogramowanie RC+8 firmy EPSON, kt\u00f3re mo\u017cna pobra\u0107 bezp\u0142atnie ze <a href=\"https:\/\/www.astor.com.pl\/oferta\/robotyzacja\/roboty-przemyslowe\/oprogramowanie-narzedziowe\/epson-rc.html\" target=\"_blank\" rel=\"noreferrer noopener\">strony internetowej ASTOR<\/a>.<\/p>\n\n\n\n<p>W praktyce nic nie stoi na przeszkodzie, \u017ceby wykona\u0107 ten projekt na prawdziwym robocie z wykorzystaniem rzeczywistej kamery, jednak w artykule nie b\u0119d\u0119 zag\u0142\u0119bia\u0142 si\u0119 w kwestie konfiguracji fizycznego sprz\u0119tu. Wszelkie potrzebne informacje mo\u017cna znale\u017a\u0107 w dokumentacji producenta (Vision Guide 8.0 Software oraz Vision Guide 8.0 Hardware &amp; Setup).<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Tworzenie nowego projektu<\/h2>\n\n\n\n<p>Z uwagi na to, \u017ce artyku\u0142 ten dotyczy wykorzystania system\u00f3w wizyjnych, nie b\u0119dziemy porusza\u0107 tu wszystkich temat\u00f3w zwi\u0105zanych z wykorzystaniem \u015brodowiska RC+8.<\/p>\n\n\n\n<p>Pierwszym krokiem do stworzenia symulacji systemu wizyjnego jest stworzenie nowego, pustego projektu.<\/p>\n\n\n\n<p>Po uruchomieniu programu otwiera si\u0119 okno projekt\u00f3w, wybieramy tam <strong>Create New Project<\/strong>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"632\" height=\"609\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image01.png\" alt=\"\" class=\"wp-image-23521\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W zak\u0142adce <strong>Project Wizard<\/strong> nadajemy nazw\u0119 i wybieramy lokalizacj\u0119, w kt\u00f3rej chcemy zapisa\u0107 projekt.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"945\" height=\"548\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image02-1.png\" alt=\"\" class=\"wp-image-23522\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image02-1.png 945w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image02-1-840x487.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image02-1-768x445.png 768w\" sizes=\"auto, (max-width: 945px) 100vw, 945px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Wybieramy <strong>Empty project<\/strong>. Wyb\u00f3r <strong>Pick and place with vision<\/strong> w przypadku wirtualnego kontrolera i kamery nie zadzia\u0142a, dlatego stworzymy projekt od zera.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"942\" height=\"546\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image03-1.png\" alt=\"\" class=\"wp-image-23524\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image03-1.png 942w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image03-1-840x487.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image03-1-768x445.png 768w\" sizes=\"auto, (max-width: 942px) 100vw, 942px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>\u0141\u0105czymy si\u0119 z wybranym przez nas wirtualnym kontrolerem, mo\u017cliwe jest te\u017c stworzenie sobie kolejnego. Podw\u00f3jne wci\u015bni\u0119cie myszki na kontrolerze otworzy nast\u0119pne okno. Mo\u017cliwe jest te\u017c po\u0142\u0105czenie z prawdziwym kontrolerem za pomoc\u0105 USB.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"947\" height=\"551\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image04-1.png\" alt=\"\" class=\"wp-image-23525\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image04-1.png 947w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image04-1-840x489.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image04-1-768x447.png 768w\" sizes=\"auto, (max-width: 947px) 100vw, 947px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Wybieramy kontroler z listy i klikamy <strong>Connect<\/strong>. Nast\u0119pnie, kiedy przycisk <strong>Connect<\/strong> si\u0119 wyszarzy, a <strong>Disconnect<\/strong> b\u0119dzie aktywny (oznacza to nawi\u0105zanie po\u0142\u0105czenia z kontrolerem) mo\u017cemy zamkn\u0105\u0107 to okno. Uka\u017ce nam si\u0119 wtedy komunikat o poprawnym stworzeniu projektu.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"945\" height=\"548\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image05-1.png\" alt=\"\" class=\"wp-image-23526\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image05-1.png 945w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image05-1-840x487.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image05-1-768x445.png 768w\" sizes=\"auto, (max-width: 945px) 100vw, 945px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Dodawanie kamery<\/h2>\n\n\n\n<p>Po stworzeniu projektu zgodnie z poprzednimi krokami ukazuje si\u0119 nam ekran pustego projektu.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1312\" height=\"710\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image06-1.png\" alt=\"\" class=\"wp-image-23528\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image06-1.png 1312w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image06-1-840x455.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image06-1-768x416.png 768w\" sizes=\"auto, (max-width: 1312px) 100vw, 1312px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Zanim zaczniemy prac\u0119 z systemem wizyjnym, musimy najpierw uaktywni\u0107 jego symulacj\u0119 w ustawieniach.<\/p>\n\n\n\n<p>W g\u00f3rnej zak\u0142adce wybieramy <strong>Setup -&gt; System Configuration<\/strong>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"872\" height=\"126\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image07-1.png\" alt=\"\" class=\"wp-image-23529\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image07-1.png 872w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image07-1-840x121.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image07-1-768x111.png 768w\" sizes=\"auto, (max-width: 872px) 100vw, 872px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"762\" height=\"546\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image2b.png\" alt=\"\" class=\"wp-image-23530\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Na pocz\u0105tku musimy doda\u0107 now\u0105 kamer\u0119. Aby to zrobi\u0107, w zak\u0142adce <strong>System Configuration -&gt; Vision -&gt; Cameras<\/strong> wciskamy przycisk <strong>Add<\/strong>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"550\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image2c.png\" alt=\"\" class=\"wp-image-23531\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Przechodzimy do zak\u0142adki <strong>Vision -&gt; Cameras<\/strong> i zaznaczamy opcj\u0119 <strong>Virtual<\/strong>. W tym panelu mo\u017cemy r\u00f3wnie\u017c dobra\u0107 nasz\u0105 kamer\u0119. Zje\u017cd\u017caj\u0105c na sam d\u00f3\u0142 opcji, wybieramy <strong>Camera Lens Tool<\/strong>.<\/p>\n\n\n\n<p>Nale\u017cy si\u0119 r\u00f3wnie\u017c upewni\u0107, \u017ce opcja <strong>Simulate Camera View in Vision Guide<\/strong>&nbsp;jest zaznaczona, co umo\u017cliwi p\u00f3\u017aniej obs\u0142ug\u0119 kamery w \u015brodowisku wirtualnym.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"549\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image09-1.png\" alt=\"\" class=\"wp-image-23533\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"762\" height=\"552\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image10-2.png\" alt=\"\" class=\"wp-image-23534\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"684\" height=\"540\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image11-2.png\" alt=\"\" class=\"wp-image-23535\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W tej zak\u0142adce musimy poda\u0107 d\u0142ugo\u015b\u0107 i szeroko\u015b\u0107 obszaru, jaki ma widzie\u0107 kamera. Opcjonalnie mo\u017cemy dobiera\u0107 wysoko\u015b\u0107, na jakiej ma by\u0107 zamocowana kamera, konkretny model, soczewki, pier\u015bcienie po\u015brednie, rozdzielczo\u015b\u0107 i typ kamery. Po wci\u015bni\u0119ciu opcji <strong>Calculate<\/strong> system zaproponuje nam wszystkie pasuj\u0105ce rozwi\u0105zania. Nale\u017cy pami\u0119ta\u0107, \u017ce im wi\u0119cej narzucimy wymaga\u0144, tym trudniej mo\u017ce by\u0107 dopasowa\u0107 kamer\u0119.<\/p>\n\n\n\n<p>Istotnym zagadnieniem, na kt\u00f3re nale\u017cy zwr\u00f3ci\u0107 uwag\u0119, jest spos\u00f3b monta\u017cu kamery. Sekcja <strong>Mounting<\/strong> pozwala na wyb\u00f3r tego, w jaki spos\u00f3b kamera mo\u017ce by\u0107 zamontowana wzgl\u0119dem robota.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"185\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image12-2.png\" alt=\"\" class=\"wp-image-23536\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Najpierw trzeba zadecydowa\u0107, czy kamera ma by\u0107 <strong>Fixed <\/strong>(nieruchoma) czy <strong>Mobile <\/strong>(ruchoma). Po wyborze opcji mobile, nale\u017cy zadecydowa\u0107 do kt\u00f3rego przegubu ma by\u0107 podpi\u0119ta kamera. W zale\u017cno\u015bci od kamery i zastosowania obie opcje s\u0105 warte wykorzystania, natomiast na pocz\u0105tek polecam kamery stacjonarne (F<strong>ixed<\/strong>).<\/p>\n\n\n\n<p>Po zatwierdzeniu zmian nowa kamera pojawi si\u0119 na naszej scenie w symulacji. Przycisk:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"25\" height=\"31\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image13-2.png\" alt=\"\" class=\"wp-image-23537\"\/><\/figure>\n\n\n\n<p>w g\u00f3rnej cz\u0119\u015bci ekranu otworzy podgl\u0105d. Je\u015bli na scenie nie ma robota lub jest to robot inny, ni\u017c chcemy, mo\u017cemy zmieni\u0107 to w <strong>Setup -&gt; System Configuration -&gt; Controller -&gt; Robots -&gt; Change<\/strong>. W omawianym dalej programie wykorzystany zosta\u0142 poni\u017cszy robot.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"764\" height=\"547\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image14-2.png\" alt=\"\" class=\"wp-image-23538\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Przygotowanie sceny symulacji<\/h2>\n\n\n\n<p>Do stworzenia finalnego programu b\u0119d\u0105 potrzebne nast\u0119puj\u0105ce elementy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>robot (w tym przypadku SCARA),<\/li>\n\n\n\n<li>co najmniej dziewi\u0119\u0107 obiekt\u00f3w, kt\u00f3re robot b\u0119dzie rozpoznawa\u0142 i przenosi\u0142,<\/li>\n\n\n\n<li>kamera,<\/li>\n\n\n\n<li>opcjonalnie elementy otoczenia, z kt\u00f3rych robot b\u0119dzie pobiera\u0142 elementy i na kt\u00f3re b\u0119dzie je uk\u0142ada\u0142.<\/li>\n<\/ul>\n\n\n\n<p>Przyk\u0142adowa realizacja zosta\u0142a przedstawiona poni\u017cej.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"818\" height=\"446\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image15-3.png\" alt=\"\" class=\"wp-image-23540\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image15-3.png 818w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image15-3-768x419.png 768w\" sizes=\"auto, (max-width: 818px) 100vw, 818px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"430\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image16-1.png\" alt=\"\" class=\"wp-image-23541\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image16-1.png 829w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image16-1-768x398.png 768w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"840\" height=\"429\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image17-1-840x429.png\" alt=\"\" class=\"wp-image-23542\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image17-1-840x429.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image17-1-768x392.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image17-1.png 859w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Wida\u0107 tu robota typu SCARA, tack\u0119, na kt\u00f3rej znajduje si\u0119 dziewi\u0119\u0107 ma\u0142ych kulek oraz ta\u015bmoci\u0105g, na kt\u00f3ry b\u0119d\u0105 one uk\u0142adane. Nad tack\u0105 znajduje si\u0119 r\u00f3wnie\u017c kamera typu fixed. Jako \u017ce jest to \u015brodowisko symulacyjne, nie musimy si\u0119 przejmowa\u0107 tym, \u017ce kamera nie jest do niczego przytwierdzona.<\/p>\n\n\n\n<p>Warto tu zauwa\u017cy\u0107, \u017ce czerwona linia id\u0105ca od strony kamery to kierunek, w kt\u00f3rym skierowany jest obiektyw. \u017b\u00f3\u0142ty prostok\u0105t to <strong>Near Plane<\/strong>, czyli najbli\u017cszy kamerze obszar, na jakim mo\u017ce skutecznie pracowa\u0107, oraz zielony <strong>Far Plane<\/strong>, czyli obszar od kamery najdalszy. Dobrym rozwi\u0105zaniem jest umie\u015bci\u0107 obiekty, kt\u00f3rymi b\u0119dzie manipulowa\u0142 robot, pomi\u0119dzy tymi obszarami.<\/p>\n\n\n\n<p>Istotnym jest to, \u017ceby pocz\u0105tkowo rozmie\u015bci\u0107 obiekty, kt\u00f3re robot b\u0119dzie rozpoznawa\u0142, w taki spos\u00f3b, aby znajdowa\u0142y si\u0119 po trzy w wierszu i po trzy w kolumnie. B\u0119dzie to bardzo wa\u017cne podczas kalibracji.<\/p>\n\n\n\n<p>Je\u015bli chcemy podejrze\u0107 podgl\u0105d z kamery, nale\u017cy wej\u015b\u0107 w zak\u0142adk\u0119 <strong>Vision<\/strong>, klikaj\u0105c przycisk:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"28\" height=\"25\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image18-1.png\" alt=\"\" class=\"wp-image-23543\"\/><\/figure>\n\n\n\n<p>w g\u00f3rnej cz\u0119\u015bci ekranu.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"868\" height=\"368\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image19-1.png\" alt=\"\" class=\"wp-image-23545\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image19-1.png 868w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image19-1-840x356.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image19-1-768x326.png 768w\" sizes=\"auto, (max-width: 868px) 100vw, 868px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Pocz\u0105tkowo w miejscu obrazu uka\u017ce nam si\u0119 czarny ekran. Nie oznacza to jednak, \u017ce kamera nie dzia\u0142a. Na pocz\u0105tku musimy stworzy\u0107 now\u0105 sekwencj\u0119, wciskaj\u0105c pierwsz\u0105 od lewej ikon\u0119:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"30\" height=\"23\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image20-1.png\" alt=\"\" class=\"wp-image-23546\"\/><\/figure>\n\n\n\n<p>Nadajemy sekwencji nazw\u0119 i ustawiamy aktywn\u0105 dla niej kamer\u0119.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"302\" height=\"227\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image21-1.png\" alt=\"\" class=\"wp-image-23547\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Powinien pokaza\u0107 si\u0119 nam obraz z kamery, co u\u0142atwi odpowiednie ustawienie element\u00f3w w kadrze.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1740\" height=\"758\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image22-1.png\" alt=\"\" class=\"wp-image-23548\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image22-1.png 1740w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image22-1-840x366.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image22-1-768x335.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image22-1-1536x669.png 1536w\" sizes=\"auto, (max-width: 1740px) 100vw, 1740px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Istnieje szansa, \u017ce na obrazie z twojej kamery zaobserwujesz pewne dziwne kszta\u0142ty lub zniekszta\u0142cenia. Bierze si\u0119 to z faktu, \u017ce niekt\u00f3re kamery \u201ewidz\u0105\u201d cz\u0119\u015b\u0107 swojego modelu 3D. Aby temu zapobiec wystarczy ustawi\u0107 w oknie symulacji parametr kamery <strong>Visible<\/strong> na <strong>False<\/strong>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"258\" height=\"727\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image23-1.png\" alt=\"\" class=\"wp-image-23549\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Kalibracja i sekwencje<\/h2>\n\n\n\n<p>W tej chwili mo\u017cemy przej\u015b\u0107 do przygotowania naszej kamery. Wcze\u015bniej utworzy\u0142e\u015b co\u015b, co nazywa si\u0119 \u201esekwencja\u201d. W RC+8 sekwencja to program kamery, w kt\u00f3rym mo\u017cemy zadecydowa\u0107, jakie instrukcje ma wykonywa\u0107. Ca\u0142o\u015b\u0107 ustawia si\u0119 blokowo na schemacie, kt\u00f3ry pokazuje kolejno\u015b\u0107 wykonywania programu, jak r\u00f3wnie\u017c na ekranie podgl\u0105du kamery, gdzie zaznacza si\u0119 pola, na kt\u00f3rych dana instrukcja ma dzia\u0142a\u0107 oraz uczy si\u0119 model, co ma rozpoznawa\u0107. Instrukcje dziel\u0105 si\u0119 na nast\u0119puj\u0105ce grupy:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Locate \u2013 rozpoznawanie kszta\u0142t\u00f3w i ich po\u0142o\u017cenia,<\/li>\n\n\n\n<li>Count \u2013 zliczanie rozpoznanych element\u00f3w,<\/li>\n\n\n\n<li>Inspect \u2013 sprawdzanie, czy rozpoznane kszta\u0142ty spe\u0142niaj\u0105 okre\u015blone wymagania,<\/li>\n\n\n\n<li>Read \u2013 czytanie np. kod\u00f3w QR,<\/li>\n\n\n\n<li>Image \u2013 rozpoznawanie tekstu lub grafiki,<\/li>\n\n\n\n<li>Execution \u2013 bloki decyzyjne.<\/li>\n<\/ul>\n\n\n\n<p>W naszym projekcie skupimy si\u0119 na instrukcjach odnajduj\u0105cych po\u0142o\u017cenie obiekt\u00f3w oraz zliczaj\u0105cych je. Oba te kryteria spe\u0142nia instrukcja <strong>Geometric<\/strong>. Dodanie tej instrukcji skutkuje nast\u0119puj\u0105cym ekranem.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1739\" height=\"735\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image24-1.png\" alt=\"\" class=\"wp-image-23551\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image24-1.png 1739w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image24-1-840x355.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image24-1-768x325.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image24-1-1536x649.png 1536w\" sizes=\"auto, (max-width: 1739px) 100vw, 1739px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Na \u015brodku ekranu pojawi\u0142y si\u0119 dwa kwadraty. Wi\u0119kszy oznacza obszar, na kt\u00f3rym program szuka dopasowa\u0144, natomiast mniejszy wewn\u0119trzny kwadrat z krzy\u017cykiem w \u015brodku to pole, z kt\u00f3rego nasz model si\u0119 nauczy rozpoznawa\u0107 kszta\u0142t. Wi\u0119kszy kwadrat rozsu\u0144my na ca\u0142y ekran, natomiast mniejszy centralnie na jednym z obiekt\u00f3w.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1736\" height=\"748\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image25-1.png\" alt=\"\" class=\"wp-image-23552\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image25-1.png 1736w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image25-1-840x362.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image25-1-768x331.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image25-1-1536x662.png 1536w\" sizes=\"auto, (max-width: 1736px) 100vw, 1736px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Mo\u017ce si\u0119 zdarzy\u0107, \u017ce rozpoznawany przez nas obiekt nie najlepiej pasuje do kszta\u0142tu kwadratu, wobec tego mo\u017cemy zmieni\u0107 kszta\u0142t okna, z kt\u00f3rego model uczy si\u0119 kszta\u0142tu.&nbsp; Umo\u017cliwia to w\u0142a\u015bciwo\u015b\u0107 <strong>ModelWin<\/strong>. Mo\u017cna tu zmieni\u0107 jego pozycj\u0119, rozmiar i kszta\u0142t. Zmie\u0144my <strong>Rectangle<\/strong> na <strong>Circle<\/strong>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"420\" height=\"268\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image26-1.png\" alt=\"\" class=\"wp-image-23553\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"741\" height=\"665\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image27-1.png\" alt=\"\" class=\"wp-image-23554\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>W ten spos\u00f3b uda\u0142o nam si\u0119 precyzyjnie dobra\u0107 okno, z kt\u00f3rego model nauczy si\u0119 rozpoznawa\u0107 kszta\u0142t, do obiektu. Nast\u0119pnie klikamy <strong>Teach<\/strong>. Wci\u015bni\u0119cie <strong>Run<\/strong> spowoduje uruchomienie programu i wykrycie nauczonego kszta\u0142tu na obrazie z kamery.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"667\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image28-1.png\" alt=\"\" class=\"wp-image-23555\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Zielony kolor oblam\u00f3wki wskazuje na to, \u017ce program zadzia\u0142a\u0142 prawid\u0142owo. Zauwa\u017cmy jednak, \u017ce robot wykry\u0142 tylko jeden kszta\u0142t, a obiekt\u00f3w mamy dziewi\u0119\u0107. Aby to zmieni\u0107 nale\u017cy ustawi\u0107 parametr <strong>NumberToFind<\/strong> na <strong>All<\/strong>. Spowoduje to znalezienie wszystkich dost\u0119pnych kszta\u0142t\u00f3w.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"411\" height=\"345\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image29-1.png\" alt=\"\" class=\"wp-image-23557\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"725\" height=\"670\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image30-1.png\" alt=\"\" class=\"wp-image-23558\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pierwszy program<\/h2>\n\n\n\n<p>Tak przygotowan\u0105 kamer\u0119 mo\u017cna wykorzysta\u0107 w najprostszym programie, kt\u00f3ry b\u0119dzie w terminalu podawa\u0142 liczb\u0119 zliczonych element\u00f3w.<\/p>\n\n\n\n<p>Otwieramy plik <strong>main.prg<\/strong> i piszemy nast\u0119puj\u0105cy kod.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"558\" height=\"173\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image31-1.png\" alt=\"\" class=\"wp-image-23560\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>Function main\n\tReal how_many\n\n\tVRun My_seq\n\tVGet My_seq.Geom1.NumberFound, how_many\n\tPrint \u201cFound \u201c, how_many, \u201c elements.\u201d\nFend<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Po uruchomieniu programu w oknie <strong>Run<\/strong> otrzymamy nast\u0119puj\u0105cy rezultat.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"713\" height=\"734\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image32-1-713x734.png\" alt=\"\" class=\"wp-image-23562\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image32-1-713x734.png 713w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image32-1.png 740w\" sizes=\"auto, (max-width: 713px) 100vw, 713px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Przyjrzyjmy si\u0119 teraz bli\u017cej wykorzystanym funkcjom.<\/p>\n\n\n\n<p>Na pocz\u0105tku programu tworzymy zmienn\u0105 typu <strong>Real<\/strong>, kt\u00f3ra przechowuje warto\u015b\u0107 liczbow\u0105. Polecenie <strong>VRun My_seq<\/strong> uruchamia wybran\u0105 sekwencj\u0119 (w tym przypadku <strong>My_seq<\/strong>) na danej kamerze. Nasza sekwencja obecnie wykrywa wszystkie kszta\u0142ty pasuj\u0105ce do nauczonego modelu.<\/p>\n\n\n\n<p><strong>VGet<\/strong> to polecenie, kt\u00f3re umo\u017cliwi nam odczytanie wybranych warto\u015bci, kt\u00f3re sekwencja wyliczy\u0142a. Samo <strong>VRun<\/strong> jedynie j\u0105 uruchamia. Funkcji <strong>VGet<\/strong> podajemy jako argument warto\u015b\u0107, kt\u00f3r\u0105 chcemy uzyska\u0107 (<strong>NumberFound<\/strong>) oraz zmienn\u0105, do jakiej chcemy t\u0119 warto\u015b\u0107 zapisa\u0107 (<strong>how_many<\/strong>).<\/p>\n\n\n\n<p>Nasza kamera mo\u017ce mie\u0107 wiele sekwencji sk\u0142adaj\u0105cych si\u0119 z wielu instrukcji, dlatego musimy to sprecyzowa\u0107. Po <strong>VGet<\/strong> podajemy nazw\u0119 sekwencji, po kropce nazw\u0119 instrukcji w sekwencji i po kolejnej kropce zwracany przez ni\u0105 parametr.<\/p>\n\n\n\n<p>Na sam koniec za pomoc\u0105 polecenia <strong>print<\/strong> wypisujemy w terminalu warto\u015b\u0107 zmiennej. Jak wida\u0107, kamera poprawnie wykry\u0142a dziewi\u0119\u0107 element\u00f3w.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Kalibracja<\/h2>\n\n\n\n<p>Aktualnie napisany program niestety nie umo\u017cliwia realizacji aplikacji pick and place. Dzieje si\u0119 tak, poniewa\u017c robot nie wie, gdzie w przestrzeni znajduj\u0105 si\u0119 obiekty, kt\u00f3re kamera widzi. Konieczne jest przeprowadzenie kalibracji. W tym celu nale\u017cy doda\u0107 now\u0105 sekwencj\u0119 kalibracji za pomoc\u0105 przycisku:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"34\" height=\"33\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image33.png\" alt=\"\" class=\"wp-image-23565\"\/><\/figure>\n\n\n\n<p>w oknie <strong>Vision<\/strong>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1742\" height=\"746\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image34.png\" alt=\"\" class=\"wp-image-23566\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image34.png 1742w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image34-840x360.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image34-768x329.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image34-1536x658.png 1536w\" sizes=\"auto, (max-width: 1742px) 100vw, 1742px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Nadajemy sekwencji nazw\u0119 i wybieramy, kt\u00f3rej kamery ma dotyczy\u0107.&nbsp; Klikamy <strong>Next<\/strong>, a nast\u0119pnie wybieramy, jaki ma by\u0107 spos\u00f3b monta\u017cu kamery, w naszym przypadku <strong>Fixed looking downward<\/strong>. Wybieramy r\u00f3wnie\u017c, kt\u00f3rego robota ma si\u0119 tyczy\u0107 kalibracja.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"585\" height=\"428\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image35.png\" alt=\"\" class=\"wp-image-23567\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Klikamy <strong>Finish<\/strong> i przechodzimy do procesu uczenia punkt\u00f3w. W tym momencie istotne staje si\u0119 to, dlaczego potrzebujemy akurat dziewi\u0119ciu obiekt\u00f3w. Proces uczenia robota punkt\u00f3w kalibracyjnych polega na tym, \u017ce musimy podjecha\u0107 ko\u0144c\u00f3wk\u0105 robocz\u0105 robota jak najbli\u017cej punkt\u00f3w, kt\u00f3re wida\u0107 w kamerze. Obiekty w kamerze powinny by\u0107 ustawione tak, aby ka\u017cdy znajdowa\u0142 si\u0119 w innym segmencie ekranu. Nie jest to jednak warunek konieczny. W sytuacji, kiedy nie by\u0142oby mo\u017cliwo\u015bci dojechania robotem do najdalszych punkt\u00f3w, mo\u017cna ustawi\u0107 punkty kalibracyjne cia\u015bniej, jednak zachowuj\u0105c ich uk\u0142ad. Klikni\u0119cie <strong>Teach points<\/strong> otworzy nast\u0119puj\u0105ce okno:<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1738\" height=\"779\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image36.png\" alt=\"\" class=\"wp-image-23568\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image36.png 1738w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image36-840x377.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image36-768x344.png 768w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image36-1536x688.png 1536w\" sizes=\"auto, (max-width: 1738px) 100vw, 1738px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Jak wida\u0107, ka\u017cda z kul znajduje si\u0119 w innej cz\u0119\u015bci ekranu. Robot musi podjecha\u0107 jak najbli\u017cej ka\u017cdej z nich, nale\u017cy r\u00f3wnie\u017c pami\u0119ta\u0107 o zachowaniu odpowiedniej wysoko\u015bci od detalu. Im wi\u0119ksza staje si\u0119 odleg\u0142o\u015b\u0107 od \u015brodka kamery, tym istotniejsz\u0105 rol\u0119 odgrywa perspektywa. Warto tutaj pos\u0142u\u017cy\u0107 si\u0119 widokiem symulacji, sprawdzaj\u0105c koordynaty naszych obiekt\u00f3w i doje\u017cd\u017caj\u0105c robotem jak najbli\u017cej i klikaj\u0105c <strong>Teach<\/strong>.<\/p>\n\n\n\n<p>Po sko\u0144czeniu procesu uczenia punkt\u00f3w kalibracyjnych klikamy <strong>Calibrate<\/strong>. Nie jest to jednak koniec. Robot zna fizyczne umiejscowienie obiekt\u00f3w wzgl\u0119dem kamery, jednak nie wie, jak one si\u0119 zmieni\u0105 wraz z zmian\u0105 obrazu, czyli przesuni\u0119ciem istniej\u0105cych obiekt\u00f3w.<\/p>\n\n\n\n<p>Aby sko\u0144czy\u0107 proces kalibracji, nale\u017cy stworzy\u0107 now\u0105 sekwencj\u0119 i utworzy\u0107 na niej dziewi\u0119\u0107 oddzielnych instrukcji, z kt\u00f3rych ka\u017cda wykryje jeden obiekt w jednym z dziewi\u0119ciu segment\u00f3w ekranu. Wystarczy stworzy\u0107 i nauczy\u0107 jednego obiektu, a nast\u0119pnie go skopiowa\u0107. Nie trzeba za ka\u017cdym razem dopasowywa\u0107 okna uczenia do obiektu, je\u015bli kopiujemy nauczony model.<\/p>\n\n\n\n<p>Alternatywnie prostsz\u0105 metod\u0105 jest stworzy\u0107 jedn\u0105 instrukcj\u0119, kt\u00f3ry ma wykry\u0107 dziewi\u0119\u0107 obiekt\u00f3w. Oba sposoby zadzia\u0142aj\u0105.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1263\" height=\"714\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image37.png\" alt=\"\" class=\"wp-image-23569\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image37.png 1263w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image37-840x475.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image37-768x434.png 768w\" sizes=\"auto, (max-width: 1263px) 100vw, 1263px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Wa\u017cne, \u017ceby w parametrach naszych sekwencji ustawi\u0107, z jakiej kalibracji maj\u0105 korzysta\u0107.<\/p>\n\n\n\n<p>Na koniec mo\u017cemy doda\u0107 do naszej g\u0142\u00f3wnej sekwencji instrukcje <strong>Coordinates<\/strong>. Jest to opcjonalny krok, poniewa\u017c sama instrukcja <strong>Geom <\/strong>te\u017c przechowuje dane o swojej pozycji. W uzasadnionych przypadkach (np. przy u\u017cyciu kilku instrukcji rozpoznaj\u0105cych kszta\u0142ty i blok\u00f3w decyzyjnych), u\u017cycie <strong>Coordinates <\/strong>mo\u017ce by\u0107 konieczne. &nbsp;Niemniej jednak s\u0142u\u017cy ona do przechowywania wyznaczonych przez poprzedni\u0105 instrukcj\u0119 koordynat\u00f3w. Aby to zadzia\u0142a\u0142o, w naszej instrukcji Geom1 nale\u017cy ustawi\u0107 parametr <strong>CoordObject <\/strong>na nazw\u0119 dodanego bloku <strong>Coordinates<\/strong>.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"414\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image38.png\" alt=\"\" class=\"wp-image-23570\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"864\" height=\"695\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image39.png\" alt=\"\" class=\"wp-image-23571\" srcset=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image39.png 864w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image39-840x676.png 840w, https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image39-768x618.png 768w\" sizes=\"auto, (max-width: 864px) 100vw, 864px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Je\u015bli kalibracja przebieg\u0142a poprawnie, tak napisany program pozwoli wyznaczy\u0107 pozycje w przestrzeni obiekt\u00f3w zaobserwowanych na kamerze.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pick and Place<\/h2>\n\n\n\n<p>Realizacja aplikacji Pick and Place odbywa si\u0119 przez wykorzystanie poni\u017cszego programu.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"697\" height=\"608\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/image2e.png\" alt=\"\" class=\"wp-image-23573\"\/><\/figure>\n<\/div>\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>Function main\n\tMotor On\n\tPower High\n\tSpeed 100\n\tAccel 100, 100\n\t \n\tReal number_found, x, y, u, i\n\t \n\tPrint \"Program has started!\"\n\tWait .1\n\t \n\tGo P_HOME\n\tVRun My_seq\n\t \n\tFor i = 1 To number_found\n\t\tVGet My_seq.Coords.RobotXYU(i), found, x, y, u\n\t\tpick = XY(x, y, -65, u)\n\t\tPrint \"Coordinates \", i, \": \", pick\n\t\tJump pick\n\t\tOn Gripper_on\n\t\tWait .2\n\t\tplace = place_origin + XY(0, -20 * (i - 1), 0, 0)\n\t\tJump place\n\t\tOff Gripper_on\n\t\tWait .2\n\tNext\n\t \n\tJump P_HOME\n\tMotor Off\n \nFend<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Na pocz\u0105tku program uruchamia silniki i wchodzi w tryb du\u017cej mocy, pe\u0142nej pr\u0119dko\u015bci, maksymalnego przy\u015bpieszenia i op\u00f3\u017anienia. Nast\u0119pnie tworzymy zmienne <strong>Real<\/strong> b\u0119d\u0105ce odpowiednio: liczb\u0105 rozpoznanych element\u00f3w, pozycj\u0105 X, Y, U rozpoznanego obiektu oraz liczb\u0105 iteracji p\u0119tli. <strong>Print<\/strong> informuje nas o rozpocz\u0119ciu programu. Polecenie <strong>Go P_HOME<\/strong> przemieszcza robota na pozycj\u0119 nie zas\u0142aniaj\u0105c\u0105 kamerze widoku na obiekty. <strong>VRun<\/strong> uruchamia sekwencj\u0119 kamery, kt\u00f3ra rozpoznaje obiekty w kadrze.<\/p>\n\n\n\n<p>Nast\u0119pnie p\u0119tla <strong>for<\/strong> trwaj\u0105ca tyle iteracji, ile kamera rozpozna\u0142a obiekt\u00f3w, pozyskuje za pomoc\u0105 <strong>VGet.My_seq.Coords.RobotXYU(i) <\/strong>wsp\u00f3\u0142rz\u0119dne rozpoznanego obiektu o indeksie <strong><em>i<\/em><\/strong> wskazuj\u0105c na jeden z kolejnych rozpoznawanych obiekt\u00f3w. Funkcja ta zwraca warto\u015bci do zmiennych x, y i u.&nbsp; P\u00f3\u017aniej stworzony zostaje punkt <strong>pick<\/strong>, zadeklarowany za pomoc\u0105 funkcji <strong>XY()<\/strong>, kt\u00f3ry jako argumenty przyjmuje pozycj\u0119 (x, y, u) zwr\u00f3con\u0105 przez poprzedni\u0105 komend\u0119.<\/p>\n\n\n\n<p>Warto nadmieni\u0107, \u017ce komenda <strong>XY()<\/strong> domy\u015blnie tworzy punkt w konfiguracji <strong>Righty<\/strong>. Je\u015bli chcemy zmieni\u0107 j\u0105 na <strong>Lefty<\/strong>, nale\u017cy zastosowa\u0107 dodatkowy argument <strong>\/L<\/strong> na ko\u0144cu, np.<\/p>\n\n\n\n<p><strong>pick = XY(x, y, -65, u) \/L<\/strong><\/p>\n\n\n\n<p>Jest to bardzo istotne, np. przy unikaniu kolizji. Warto\u015b\u0107 -65 to odleg\u0142o\u015b\u0107, na jak\u0105 ma poruszy\u0107 si\u0119 o\u015b Z robota, nale\u017cy j\u0105 dobra\u0107 w zale\u017cno\u015bci od umiejscowienia manipulowanych obiekt\u00f3w. P\u00f3\u017aniejsze <strong>print<\/strong> wypisuje w terminalu pozycj\u0119 wykrytego punktu, co mo\u017ce pos\u0142u\u017cy\u0107 do sprawdzenia poprawno\u015bci dzia\u0142ania systemu wizyjnego. Polecenia <strong>Jump<\/strong> wykonuj\u0105 ruchy do konkretnych punkt\u00f3w, <strong>On<\/strong> oraz <strong>Off<\/strong> steruje wcze\u015bniej zadeklarowanym sygna\u0142em chwytaka, natomiast punkt <strong>place<\/strong> jest tak wyliczany, aby ustawia\u0107 obiekty w pojedynczym szeregu.<\/p>\n\n\n\n<p>Tak napisany program teoretycznie spe\u0142ni swoje za\u0142o\u017cenia. Teoretycznie, poniewa\u017c w \u015brodowisku symulowanym otwarcie i zamkni\u0119cie chwytaka za pomoc\u0105 sygna\u0142u nie da efektu. Musimy zastosowa\u0107 tu polecenia <strong>SimSet<\/strong> i <strong>SimGet<\/strong>, kt\u00f3re umo\u017cliwiaj\u0105 sterowanie symulacj\u0105. Ca\u0142y problem polega na tym, \u017ce przed rozpocz\u0119ciem programu nie wiemy, gdzie podjedzie robot, poniewa\u017c nie wiemy, gdzie le\u017c\u0105 manipulowane elementy ani nawet ile ich jest. W tym celu powsta\u0142y dodatkowe funkcje opisane poni\u017cej:<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>Global Real Sphere_index\n\nFunction sim_take\n    \n    Sphere_index = 0\n    Double x, y, obj_x(9), obj_y(9), i\n    String obj$(9)\n    \n    WaitPos\n    P_compare = Here\n    x = CX(P_compare)\n    y = CY(P_compare)\n    \n    For i = 1 To 9\n        obj$(i) = \"Sphere_\" + Str$(i)\n        SimGet obj$(i).PositionX, obj_x(i)\n        SimGet obj$(i).PositionY, obj_y(i)\n        \n        If Abs(x - obj_x(i)) &lt; 2 And Abs(y - obj_y(i)) &lt; 2 Then\n            Sphere_index = i\n            SimSet Pierwszy_robot.Pick, obj$(i)\n        EndIf\n    Next\n    \nFend\n\nFunction sim_put\n    Double i\n    String obj$(9)\n    \n    For i = 1 To 9\n        obj$(i) = \"Sphere_\" + Str$(i)\n        If Sphere_index = i Then\n            SimSet Pierwszy_robot.Place, obj$(i)\n        EndIf\n    Next\n    \nFend<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Funkcja <strong>sim_take<\/strong> odczytuje po\u0142o\u017cenie robota oraz wszystkich obiekt\u00f3w na scenie za pomoc\u0105 polece\u0144 <strong>SimGet<\/strong>, nast\u0119pnie wylicza, nad kt\u00f3rym obiektem znajduje si\u0119 robot. Ca\u0142o\u015b\u0107 dzieje si\u0119 w p\u0119tlach <strong>for<\/strong>, gdzie dzi\u0119ki temu, \u017ce obiekty maj\u0105 uporz\u0105dkowane nazwy (zako\u0144czone kolejno na 1, 2, 3&#8230;), mo\u017cemy \u0142atwo nadpisywa\u0107 zmienn\u0105 <strong>string<\/strong> i odwo\u0142ywa\u0107 si\u0119 do kolejnych obiekt\u00f3w. Za\u0142o\u017cona jest tu tolerancja 2 mm, kt\u00f3ra jest na tyle du\u017ca, \u017ce bez problemu zlokalizuje obiekt i jednocze\u015bnie na tyle ma\u0142a, \u017ce b\u0119dzie \u017cadnego konfliktu mi\u0119dzy obiektami.<\/p>\n\n\n\n<p>Je\u015bli kt\u00f3ry\u015b warunek zostanie spe\u0142niony, to warto\u015b\u0107 zmiennej <strong>Sphere_index<\/strong> zostaje ustawiona na numer konkretnego obiektu, tak \u017ce program pami\u0119ta, kt\u00f3ry obiekt aktualnie trzyma. Polecenie <strong>SimSet Pierwszy_robot.Pick<\/strong> przypisuje obiekt do chwytaka robota, umo\u017cliwiaj\u0105c symulowanie przenoszenia obiekt\u00f3w. Funkcja <strong>sim_put<\/strong> w zale\u017cno\u015bci od wcze\u015bniej zapami\u0119tanego obiektu wykonuje polecenie<strong> SimSet Pierwszy_robot.Place<\/strong>, odk\u0142adaj\u0105c wybrany obiekt w aktualnym miejscu.<\/p>\n\n\n\n<p>Poni\u017cej za\u0142\u0105czono film b\u0119d\u0105cy przyk\u0142adow\u0105 realizacj\u0105 tego kodu.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video height=\"744\" style=\"aspect-ratio: 1120 \/ 744;\" width=\"1120\" controls src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/movie_final.mp4\"><\/video><\/figure>\n\n\n\n<div style=\"height:60px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile has-background has-very-light-gray-background-color\" style=\"grid-template-columns:21% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"581\" src=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/09\/franciszek-rzesny.jpg\" alt=\"\" class=\"wp-image-24589 size-full\"\/><\/figure><div class=\"wp-block-media-text__content\">\n<p><\/p>\n\n\n\n<p>Autor artyku\u0142u:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Franciszek Rze\u015bny<\/strong><\/h2>\n\n\n\n<p>Praktykant ASTOR<\/p>\n\n\n\n<p>Student III roku kierunku Automatyka i robotyka na Politechnice Pozna\u0144skiej<\/p>\n<\/div><\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n            <div id=\"mailerlite-form_9\" data-temp-id=\"69d6d32bf130a\">\n                <div class=\"mailerlite-form\">\n                    <form action=\"\" method=\"post\" novalidate>\n                                                    <div class=\"mailerlite-form-title\"><h3>Newsletter Poradnika Automatyka<\/h3><\/div>\n                                                <div class=\"mailerlite-form-description\"><p>Czytaj trendy i inspiracje, podstawy automatyki, automatyk\u0119 w praktyce<\/p>\n<\/div>\n                        <div class=\"mailerlite-form-inputs\">\n                                                                                            <div class=\"mailerlite-form-field\">\n                                    <label for=\"mailerlite-9-field-email\">Email<\/label>\n                                    <input id=\"mailerlite-9-field-email\"\n                                           type=\"email\" required=\"required\"                                            name=\"form_fields[email]\"\n                                           placeholder=\"Email\"\/>\n                                <\/div>\n                                                        <div class=\"mailerlite-form-loader\">Please wait...<\/div>\n                            <div class=\"mailerlite-subscribe-button-container\">\n                                <button class=\"mailerlite-subscribe-submit\" type=\"submit\">\n                                    Zapisz si\u0119                                <\/button>\n                            <\/div>\n                            <input type=\"hidden\" name=\"form_id\" value=\"9\"\/>\n                            <input type=\"hidden\" name=\"action\" value=\"mailerlite_subscribe_form\"\/>\n                            <input type=\"hidden\" name=\"ml_nonce\" value=\"99d0dee280\"\/>\n                        <\/div>\n                        <div class=\"mailerlite-form-response\">\n                                                            <h4><p>Dzi\u0119kujemy za zapis do newslettera!<\/p>\n<\/h4>\n                                                    <\/div>\n                    <\/form>\n                <\/div>\n            <\/div>\n        <script type=\"text\/javascript\" src='https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/plugins\/official-mailerlite-sign-up-forms\/assets\/js\/localization\/validation-messages.js'><\/script>\n         <script type=\"text\/javascript\"> var selectedLanguage = \"pl\"; var validationMessages = messages[\"en\"]; if(selectedLanguage) { validationMessages = messages[selectedLanguage]; } window.addEventListener(\"load\", function () { var form_container = document.querySelector(`#mailerlite-form_9[data-temp-id=\"69d6d32bf130a\"] form`); let submitButton = form_container.querySelector('.mailerlite-subscribe-submit'); submitButton.disabled = true; fetch('https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-admin\/admin-ajax.php', { method: 'POST', headers:{ 'Content-Type': 'application\/x-www-form-urlencoded', }, body: new URLSearchParams({ \"action\" : \"ml_create_nonce\", \"ml_nonce\" : form_container.querySelector(\"input[name='ml_nonce']\").value }) }) .then((response) => response.json()) .then((json) => { if(json.success) { form_container.querySelector(\"input[name='ml_nonce']\").value = json.data.ml_nonce; submitButton.disabled = false; } }) .catch((error) => { console.error('Error:', error); }); form_container.addEventListener('submit', (e) => { e.preventDefault(); let data = new URLSearchParams(new FormData(form_container)).toString(); let validationError = false; document.querySelectorAll('.mailerlite-form-error').forEach(el => el.remove()); Array.from(form_container.elements).forEach((input) => { if(input.type !== 'hidden') { if(input.required) { if(input.value == '') { validationError = true; let error = document.createElement(\"span\"); error.className = 'mailerlite-form-error'; error.textContent = validationMessages.required; input.after(error); return false; } } if((input.type == \"email\") && (!validateEmail(input.value))) { validationError = true; let error = document.createElement(\"span\"); error.className = 'mailerlite-form-error'; error.textContent = validationMessages.email; input.after(error); return false; } } }); if(validationError) { return false; } fade.out(form_container.querySelector('.mailerlite-subscribe-button-container'), () => { fade.in(form_container.querySelector('.mailerlite-form-loader')); }); fetch('https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-admin\/admin-ajax.php', { method: 'POST', headers:{ 'Content-Type': 'application\/x-www-form-urlencoded', }, body: data }) .then((response) => { fade.out(form_container.querySelector('.mailerlite-form-inputs'), () => { fade.in(form_container.querySelector('.mailerlite-form-response')); }); }) .catch((error) => { console.error('Error:', error); }); }); }, false); var fade = { out: function(el, fn = false) { var fadeOutEffect = setInterval(function () { if (!el.style.opacity) { el.style.opacity = 1; } if (el.style.opacity > 0) { el.style.opacity -= 0.1; } else { el.style.display = 'none'; clearInterval(fadeOutEffect); } }, 50); if( typeof (fn) == 'function') { fn(); } }, in: function(el) { var fadeInEffect = setInterval(function () { if (!el.style.opacity) { el.style.opacity = 0; } if (el.style.opacity < 1) { el.style.opacity = Number(el.style.opacity) + 0.1; } else { el.style.display = 'block'; clearInterval(fadeInEffect); } }, 50); } }; function validateEmail(email){ if(email.match( \/^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$\/ )) { return true; } return false; } <\/script> \n","protected":false},"excerpt":{"rendered":"<p>Z tego artyku\u0142u dowiesz si\u0119: jak zasymulowa\u0107 system wizyjny w \u015brodowisku RC+8, jak przygotowa\u0107 taki system do poprawnego dzia\u0142ania we wsp\u00f3\u0142pracy z robotem, jak napisa\u0107 prosty program pick and place wykorzystuj\u0105cy obraz z kamery. Dzi\u0119ki temu poradnikowi dowiesz si\u0119, jak przygotowa\u0107 symulacj\u0119 systemu wizyjnego. Jest to prosty spos\u00f3b na zapoznanie si\u0119 z tym interesuj\u0105cym rozwi\u0105zaniem, [&hellip;]<\/p>\n","protected":false},"author":83,"featured_media":23589,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[234,233],"tags":[19,57],"class_list":["post-23517","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatyka-w-praktyce","category-dla-uzytkownikow-produktow-astor","tag-epson","tag-roboty-epson-scara"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8 | Poradnik Automatyka<\/title>\r\n<meta name=\"description\" content=\"Dzi\u0119ki temu poradnikowi dowiesz si\u0119, jak przygotowa\u0107 symulacj\u0119 systemu wizyjnego. Jest to prosty spos\u00f3b na zapoznanie si\u0119 z tym rozwi\u0105zaniem.\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/\" \/>\r\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8 | Poradnik Automatyka\" \/>\r\n<meta property=\"og:description\" content=\"Dzi\u0119ki temu poradnikowi dowiesz si\u0119, jak przygotowa\u0107 symulacj\u0119 systemu wizyjnego. Jest to prosty spos\u00f3b na zapoznanie si\u0119 z tym rozwi\u0105zaniem.\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/\" \/>\r\n<meta property=\"og:site_name\" content=\"Poradnik Automatyka\" \/>\r\n<meta property=\"article:published_time\" content=\"2025-07-29T13:48:19+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2025-09-04T08:38:32+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg\" \/>\r\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\r\n\t<meta property=\"og:image:height\" content=\"363\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\r\n<meta name=\"author\" content=\"Kamila Piechocka\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamila Piechocka\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuta\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/\"},\"author\":{\"name\":\"Kamila Piechocka\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/bb85922f1cba91e4049649720381de0c\"},\"headline\":\"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8\",\"datePublished\":\"2025-07-29T13:48:19+00:00\",\"dateModified\":\"2025-09-04T08:38:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/\"},\"wordCount\":2821,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg\",\"keywords\":[\"EPSON\",\"Roboty EPSON SCARA\"],\"articleSection\":[\"Automatyka w praktyce\",\"Produkty ASTOR\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/\",\"name\":\"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8 | Poradnik Automatyka\",\"isPartOf\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg\",\"datePublished\":\"2025-07-29T13:48:19+00:00\",\"dateModified\":\"2025-09-04T08:38:32+00:00\",\"description\":\"Dzi\u0119ki temu poradnikowi dowiesz si\u0119, jak przygotowa\u0107 symulacj\u0119 systemu wizyjnego. Jest to prosty spos\u00f3b na zapoznanie si\u0119 z tym rozwi\u0105zaniem.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#primaryimage\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg\",\"contentUrl\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg\",\"width\":1000,\"height\":363},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Automatyka w praktyce\",\"item\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/category\/automatyka-w-praktyce\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/\",\"name\":\"Poradnik Automatyka\",\"description\":\"Poradnik Automatyka to przydatne kursy, u\u017cyteczne artyku\u0142y i merytoryczne webinary dla ka\u017cdego automatyka i elektryka.\",\"publisher\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization\",\"name\":\"ASTOR\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2018\/08\/ASTOR_zwykly_sam_logotyp.png\",\"contentUrl\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2018\/08\/ASTOR_zwykly_sam_logotyp.png\",\"width\":3322,\"height\":1078,\"caption\":\"ASTOR\"},\"image\":{\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/bb85922f1cba91e4049649720381de0c\",\"name\":\"Kamila Piechocka\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/kamila-jaworowska-n-301x301.png\",\"contentUrl\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/kamila-jaworowska-n-301x301.png\",\"caption\":\"Kamila Piechocka\"},\"description\":\"In\u017cynier ds. system\u00f3w zrobotyzowanych w firmie ASTOR.\",\"url\":\"https:\/\/www.astor.com.pl\/poradnikautomatyka\/autor\/kamilaj\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8 | Poradnik Automatyka","description":"Dzi\u0119ki temu poradnikowi dowiesz si\u0119, jak przygotowa\u0107 symulacj\u0119 systemu wizyjnego. Jest to prosty spos\u00f3b na zapoznanie si\u0119 z tym rozwi\u0105zaniem.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/","og_locale":"pl_PL","og_type":"article","og_title":"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8 | Poradnik Automatyka","og_description":"Dzi\u0119ki temu poradnikowi dowiesz si\u0119, jak przygotowa\u0107 symulacj\u0119 systemu wizyjnego. Jest to prosty spos\u00f3b na zapoznanie si\u0119 z tym rozwi\u0105zaniem.","og_url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/","og_site_name":"Poradnik Automatyka","article_published_time":"2025-07-29T13:48:19+00:00","article_modified_time":"2025-09-04T08:38:32+00:00","og_image":[{"width":1000,"height":363,"url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg","type":"image\/jpeg"}],"author":"Kamila Piechocka","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Kamila Piechocka","Szacowany czas czytania":"1 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#article","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/"},"author":{"name":"Kamila Piechocka","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/bb85922f1cba91e4049649720381de0c"},"headline":"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8","datePublished":"2025-07-29T13:48:19+00:00","dateModified":"2025-09-04T08:38:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/"},"wordCount":2821,"commentCount":0,"publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg","keywords":["EPSON","Roboty EPSON SCARA"],"articleSection":["Automatyka w praktyce","Produkty ASTOR"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/","name":"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8 | Poradnik Automatyka","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#primaryimage"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg","datePublished":"2025-07-29T13:48:19+00:00","dateModified":"2025-09-04T08:38:32+00:00","description":"Dzi\u0119ki temu poradnikowi dowiesz si\u0119, jak przygotowa\u0107 symulacj\u0119 systemu wizyjnego. Jest to prosty spos\u00f3b na zapoznanie si\u0119 z tym rozwi\u0105zaniem.","breadcrumb":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#primaryimage","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/epson-rcp-head.jpg","width":1000,"height":363},{"@type":"BreadcrumbList","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/symulacja-systemu-wizyjnego-w-srodowisku-epson-rc-8\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Automatyka w praktyce","item":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/category\/automatyka-w-praktyce\/"},{"@type":"ListItem","position":2,"name":"Symulacja systemu wizyjnego w \u015brodowisku EPSON RC+ 8"}]},{"@type":"WebSite","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#website","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/","name":"Poradnik Automatyka","description":"Poradnik Automatyka to przydatne kursy, u\u017cyteczne artyku\u0142y i merytoryczne webinary dla ka\u017cdego automatyka i elektryka.","publisher":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#organization","name":"ASTOR","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/logo\/image\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2018\/08\/ASTOR_zwykly_sam_logotyp.png","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2018\/08\/ASTOR_zwykly_sam_logotyp.png","width":3322,"height":1078,"caption":"ASTOR"},"image":{"@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/bb85922f1cba91e4049649720381de0c","name":"Kamila Piechocka","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/#\/schema\/person\/image\/","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/kamila-jaworowska-n-301x301.png","contentUrl":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-content\/uploads\/2025\/07\/kamila-jaworowska-n-301x301.png","caption":"Kamila Piechocka"},"description":"In\u017cynier ds. system\u00f3w zrobotyzowanych w firmie ASTOR.","url":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/autor\/kamilaj\/"}]}},"_links":{"self":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/23517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/users\/83"}],"replies":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/comments?post=23517"}],"version-history":[{"count":3,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/23517\/revisions"}],"predecessor-version":[{"id":24593,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/posts\/23517\/revisions\/24593"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media\/23589"}],"wp:attachment":[{"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/media?parent=23517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/categories?post=23517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.astor.com.pl\/poradnikautomatyka\/wp-json\/wp\/v2\/tags?post=23517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}