základy robotikyrobotika/2017_brob/2017_b08_emulator_robotu.pdfŠířka nabývá 0°–90° na...

12
Základy robotiky Název projektu: Emulátor robotů Rok vypracování: 2017 Vedoucí práce: Ing. Tomáš Jílek, Ph.D. Autoři: Matúš Zakarovský, Ondřej Váško, Matej Žido, Jakub Dušek

Upload: others

Post on 19-Dec-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

Základy robotiky Název projektu: Emulátor robotů Rok vypracování: 2017 Vedoucí práce: Ing. Tomáš Jílek, Ph.D. Autoři: Matúš Zakarovský, Ondřej Váško, Matej Žido, Jakub Dušek

Page 2: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

Poděkování Děkujeme Ing. Tomáši Jílkovi, Ph.D. za pomoc při vypracování projektu.

Page 3: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

Obsah Zadání: ..................................................................................................................................................... 4

Formát NMEA .......................................................................................................................................... 4

Formát NMEA pro náš projekt ............................................................................................................ 5

Příklad výstupní zprávy ............................................................................................................................ 6

Převod ECEF na geodetické souřadnice .................................................................................................. 7

Převod z geodetických souřadnic na ECEF .............................................................................................. 7

Geodetický souřadnicový systém ............................................................................................................ 8

WGS 84 .................................................................................................................................................... 9

WPF Aplikace ......................................................................................................................................... 10

Zdroje .................................................................................................................................................... 11

Page 4: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

Zadání: Cílem projektu je implementace aplikace pro PC, která bude umožňovat emulaci skutečných robotů (z dostupných na UAMT).

Vytvořte kinematický a dynamický model podvozku mobilního robotu a implementujte je. Implementujte emulátory základních používaných zařízení v mobilních robotech (GNSS přijímač, motory, enkodéry, komunikační modul, atd.).

Formát NMEA NMEA je standard, původně určený pro automatizovaný přenos dat mezi jednotlivými zařízeními elektroniky lodí.

Všechny zprávy mají stanoven formát podle následujícího schéma:

$XXYYY,a1,a2,a3,....,an*cc

Zprávu tvoří řádek ASCII znaků (písmen a číslic), který ukončuje znak odřádkování.

Každý řádek začíná znakem $, po kterém následují dva znaky určující typ vysílače.

Další tři znaky označují druh zprávy

Pak následují datová pole. Tato pole jsou od úvodního řetězce i od sebe navzájem oddělena čárkami

Po posledním datovém poli následuje znak *

Za znakem * jsou už jen dva znaky kontrolního součtu. Kontrolní součet je tvořen hexadecimálním zápisem bytu, který vznikne jako XOR všech předchozích ASCII kódů znaků zprávy mezi znaky $ a *.

Page 5: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

Formát NMEA pro náš projekt

Page 6: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

Příklad výstupní zprávy

Na místo nepoužívaných parametrů byla vložena nula.

Page 7: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

Převod ECEF na geodetické souřadnice Převádění je vypočteno pomocí ferrariho řešení

Převod z geodetických souřadnic na ECEF

φ= zeměpisná šířka

λ= zeměpisná délka

Page 8: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

Geodetický souřadnicový systém Geodetický souřadnicový systém je souřadnicový systém používaný v geografii, který umožní, aby každé místo na Zemi bylo označeno specifickou sadou čísel, písmen a nebo symbolů. Souřadnice jsou často voleny tak, že jedno číslo reprezentuje vertikální pozici a dvě nebo tři čísla reprezentují horizontální. Běžná volba souřadnic je latitude (zeměpisná šířka), longitude (zeměpisná délka) a elevation (zeměpisná výška).

.

Page 9: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

WGS 84 Souřadnice WGS84 vycházejí ze souřadnic zeměpisných, polohu tedy určíme pomocí zeměpisné délky, šířky a výšky.

Šířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180° na západ od nultého poledníku a 0°–180° na východ od nultého poledníku.

Nultým poledníkem ve WGS84 je „IERS Reference Meridian“, ležící 5,31 úhlových vteřin východně od „Greenwich Prime Meridian“. Souřadnicový systém WGS84 je pravotočivá kartézská soustava souřadnic se středem v těžišti Země (včetně moří a atmosféry). Kladná osa x směřuje k průsečíku nultého poledníku a rovníku, kladná osa z k severnímu pólu a kladná osa y je na obě předchozí kolmá ve směru doleva (90° východní délky a 0° šířky), tvoří tak pravotočivou soustavu souřadnic.

Page 10: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

WPF Aplikace Windows Presentation Foundation je rozhraní pro návrh a zobrazování uživatelského prostředí.

Pracuje s elementy uživatelského prostředí vestavěného přímo v systému Windows, které není úplně snadné upravovat jak po stránce vzhledové, tak po stránce chování.

WPF se snaží poskytnout co nejrozšiřitelnější objektový model. Vývojář není vázán na pevnou sadu komponent s pevným vzhledem. Lze si plně graficky upravit jakoukoliv část jakékoliv komponenty nebo vytvořit komponentu úplně novou. Zároveň však WPF dává k dispozici sadu základních komponent v základním vzhledu operačního systému.

Page 11: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

Zdroje https://cs.wikipedia.org/wiki/NMEA_0183

https://en.wikipedia.org/wiki/Geographic_coordinate_system

https://cs.wikipedia.org/wiki/World_Geodetic_System

http://www.dotnetportal.cz/clanek/196/Uvod-do-Windows-Presentation-Foundation-WPF-

Page 12: Základy robotikyrobotika/2017_BROB/2017_B08_emulator_robotu.pdfŠířka nabývá 0°–90° na sever od rovníku a 0°–90° na jih od rovníku. Délka pak nabývá hodnot 0°–180°

ZávěrV našem projektu sme měli naprogramovat emulátor robotů. To spočívá v tom, že z nějakého robota na kterém je umístěn komunikační modul pro bezdrátovou komunikaci, nám přicházejí data přes UDP klienta v formátu NMEA. Tyto data náš program rozšifruje a uloží do proměnných aktuální rychlost a natočení (v rad/s). Tyto data nám chodí v intervalech 20ms. Náš program je zpracovává, přepočítává je do GPS souřadnic a posílá je na server ve zprávách NMEA (GGA, GST, PTNL VHD, PTNL AVR, PTNL PJK, PTNL VGK). Aplikaci jsme programovali v jazyce C# .NET Framework jako WPF aplikaci. V aplikaci v pravé části nastavujeme IPv4 adresu a port odesílatele/příjemce. Je tam také okénka pro nastavení IPv6 ale to jsme v našem projektu nepoužívali. Zadávání je ošetřeno tak, že musí být zadána ip adresa ve správném formátu jinak dojde k chybě. V levé horní části se nachází Setting button a Export button. Tyto tlačítka jsou spíše experimantální a zatím jsou jen pro ilustraci a budou doplněny v budoucích verzích. Přibližně uprostřed se nachazí nastavení Error Statistik, tyto nastavení simulují chybové zprávy přicházející z robota. Protože naše aplikace zatím slouží jen pro simulaci museli sme tyto hodnoty simulovat. Poté tam sou hodnoty pro nastavení podvozku pro řízení emulátoru pomocí rychlosti kol a maximální akcelerace aby se robot nezačal pohybovat skokově. Pro tyto nastavení máme napsané funkce, ale nepodařilo se nám to stihnout přidat do programu. Dále se na aplikaci nachází políčko Initial Rotation. To musí být vyplněno, protože se používá k výpočtu azimutu. Azimut je natoční hlavní osy objektu proti ose severu. Když neznáme natočení robotu na začátku odesílání dat tak musíme tuto hodnotu simulovat ručním zadáním.V projektu nám největší problém dělalo příjímání dat. Zatím sme ale žádná data nepřijímali takže pokud program nedostane do 10ms data tak posílá zprávu, že nedošlo k pohybu a pošle aktuální data polohy.Pro převod z ECEF do WGS84 jsme použili Ferrariho řešení kvartické rovnice (viz. Zdroje https://cs.wikipedia.org/wiki/World_Geodetic_System). Zpětný převod byl realizován normály což je popsáno v dokumentaci.