Jaký je nejlepší programovací jazyk pro robotiku?

by Lukáš Bílek

To je otázka, kterou si mnozí programátoři robotů položí alespoň jednou za svou kariéru. Bohužel je to také otázka, která nemá jednoduchou odpověď. V tomto článku se podíváme na deset nejpopulárnějších programovacích jazyků používaných v oblasti robotiky.

Probereme jejich silné a slabé stránky, stejně jako důvody pro a proti jejich použití.

Na otázku "Co je nejlepší programovací jazyk pro robotiku?" bohužel nikdy nedostanete jednoduchou odpověď.

Elektroinženýři dostanou jinou odpověď od robotických techniků. Programátoři počítačových programů poskytnou jinou odpověď než kognitivní robotici. A všichni by nesouhlasili s tím, co má být "nejlepší programovací jazyk." Nakonec odpověď, se kterou by většina lidí souhlasila, je "to záleží…". I když je to nejrealističtější odpověď, protože závisí na tom, jaký typ aplikace chcete rozvíjet a jaký systém používáte. Pro nového programátora robotů je to velmi složité se rozhodnout, jaký jazyk se naučit.

Který programovací jazyk byste se měli nejdříve naučit?

Pravděpodobně je lepší se ptát, který programovací jazyk je ten, na který byste se měli nejprve soustředit? Stále bude mnoho odlišných názorů, ale většina programátorů robotů se na klíčových jazycích shodne.

Nejdůležitější věcí pro programátory robotů je rozvíjet svou "programovací mysl" než být schopný programovat jen v jednom specifickém jazyce. V mnoha ohledech nezáleží na tom, který programovací jazyk se nejdříve učíte. Každý jazyk, který se naučíte, rozvíjí vaši znalost a usnadňuje učení jakéhokoli nového jazyka, kdykoli je to nutné.

Top 10 populárních programovacích jazyků v robotice

Na světě je více než 1500 programovacích jazyků, což je mnohem více, než se dá naučit. Zde je deset nejpopulárnějších programovacích jazyků v oblasti robotiky. Každý jazyk má pro robotiku různé výhody.

10. BASIC / Pascal

Jsou základem několika průmyslových robotových jazyků popsaných níže. BASIC byl navržen pro začátečníky (znamená "všestranný symbolický výukový kód"), což z něj dělá docela jednoduchý jazyk. Pascal byl navržen tak, aby podpořil dobré programovací postupy a také zavádí konstrukce jako ukazatele, což z něj činí dobrý "odrazový kámen" z BASICu do více zapojeného jazyka. V dnešní době jsou oba jazyky trochu zastaralé, aby byly dobré pro "každodenní použití". Nicméně může být užitečné se je naučit, pokud budete dělat hodně nízké úrovně kódování nebo pokud se chcete seznámit s více programovacími jazyky průmyslových robotů.

9. Jazyk průmyslových robotů

Téměř každý výrobce robotů vyvinul vlastní programovací jazyk pro roboty, který byl jedním z problémů v průmyslové robotice. Když začnete používat nový robot, budete se muset vždy naučit nový jazyk daného výrobce.

ABB má svůj programovací jazyk RAPID. Kuka má KRL (Kuka Robot Language). Comau používá PDL2, Yaskawa používá INFORM a Kawasaki používá AS. Roboty Fanuc používají Karel, roboty Stäubli používají VAL3 a univerzální roboty zase URScript.

V posledních letech programovací možnosti jako ROS Industrial začaly poskytovat programátorům více standardizovaných možností. Pokud jste technikem, je však stále více pravděpodobné, že budete muset používat jazyk výrobce.

8. LISP

LISP je druhý nejstarší programovací jazyk na světě (nejstarší je FORTRAN, ale pouze o jeden rok). Není tak široce používán jako mnoho dalších programovacích. V programování umělé inteligence je však stále velmi důležitý. Části ROS jsou napsány v LISP, i když nepotřebujete vědět, jak používat ROS.

7. Programovací jazyk hardwaru (HDL)

Jazyk HDL je v podstatě programovací způsob popisu elektroniky. Jazyk připomínají běžné programovací jazyky, jeho účel i princip jsou naprosto odlišné. Na rozdíl od programovacích jazyků nepopisují sekvenčně vykonávané činnosti, ale funkci distribuovaných logických obvodů. Pokud nemáte prototyp elektroniky, nikdy nemusíte HDL jazyk používat.

Přesto je důležité vědět, že existuje, neboť je zcela odlišný od jiných programovacích jazyků. Všechny operace jsou prováděny paralelně, ne postupně, jako u jazyků založených na procesorech.

6. Jazyk symbolických adres

Jazyk symbolických adres nebo také jazyk symbolických instrukcí je v informatice nízkoúrovňový programovací jazyk, který je tvořen symbolickou reprezentací jednotlivých strojových instrukcí a konstant potřebných pro vytvoření strojového kódu programu pro daný procesor. Symbolickou reprezentaci tvoří zpravidla výrobce procesoru a je založena na mnemotechnických zkratkách, které vyjadřují, co daná strojová instrukce dělá, označují symbolicky registr, slovní zkratku podmínky a podobně.

5. MATLAB

MATLAB (matrix laboratory) je interaktivní programové prostředí a skriptovací programovací jazyk čtvrté generace. Je velmi oblíbený u inženýrů pro analýzu dat a vývoj řídicích systémů. Velmi populární je rozšíření Robotics Toolbox pro MATLAB. Jsou známy případy, kdy programátoři vyvinuli kompletní robotické systémy používající samotný MATLAB. Pokud chcete analyzovat data, vytvářet pokročilé grafy nebo implementovat řídicí systémy, budete se MATLAB chtít určitě naučit. Někteří odborníci nepovažují MATLAB za programovací jazyk, jiní o něm zase říkají, že je velice cenným a užitečným programovacím jazykem.

4. C#/.NET

C# je proprietární programovací jazyk. Zahrnuje C#/.NET hlavně kvůli Microsoft Robotics Developer Studio, které ho používá jako svůj primární jazyk. Pokud budete používat tento systém, pravděpodobně budete muset použít C#. Nicméně naučení se C/C++ jazyka jako první může být dobrou volbou pro dlouhodobý rozvoj vašich programátorských dovedností.

3. Java

Java je objektově orientovaný programovací jazyk. Jde o jeden z nejpoužívanějších programovacích jazyků na světě. Díky své přenositelnosti je používán pro programy, které mají pracovat na různých systémech.

Java používá automatickou správu paměti pro řízení paměti v object lifecycle. Programátor určuje, kdy bude objekt vytvořen a Java runtime zodpovídá za obnovu paměti, jakmile se objekty přestanou používat. Jedním z účelů pro automatickou správu paměti Java bylo zbavit programátora nutnosti lámat si hlavu nad manuální správou paměti, což nemusí být vždy výhodou.

Pokud se programováním robotiky zabýváte, nejspíš se dříve či později Javu naučíte stejně, jako C# a MATLAB. Java je interpretační jazyk, což znamená, že není kompilován do strojového kódu. Java Virtual Machine spíše interpretuje pokyny za běhu. Teorie pro používání Java je, že můžete používat stejný kód na různých strojích díky virtuálnímu počítači Java. V praxi to vždy nefunguje a stává se, že kód běží pomalu. Nicméně, Java je v některých částech robotiky populární, takže ji možná budete potřebovat.

2. Python

Python je vysokoúrovňový skriptovací programovací jazyk. Nabízí dynamickou kontrolu datových typů a podporuje různá programovací paradigmata, včetně objektově orientovaného, imperativního, procedurálního nebo funkcionálního.

V posledních letech došlo k obrovskému oživení Pythonu, zejména v oblasti robotiky. Jedním z důvodů je pravděpodobně to, že Python a C++ jsou dva hlavní programovací jazyky nacházející se v ROS. Stejně jako Java je to interpretační jazyk. Na rozdíl od Java je hlavním zaměřením jazyka snadné použití. Python se zbavuje obvyklých věcí, které zabírají čas v programování, jako je definování proměnných apod. Existuje také obrovský počet bezplatných knihoven, což znamená, že nemusíte "vymýšlet program", když potřebujete implementovat některé základní funkce. A protože umožňuje jednoduché provázání s kódem C/C++, znamená to, že výkonné části kódu mohou být implementovány v těchto jazycích, aby se předešlo ztrátě výkonu.

1. C/C++

Nakonec se dostáváme k programovacímu jazyku číslo 1 v oblasti robotiky! Mnoho lidí souhlasí s tím, že C a C++ jsou dobrým výchozím bodem pro nové programátory robotických systémů. Proč? Protože mnoho knihoven hardwaru tyto jazyky používá. V dnešní době pravděpodobně použijete C++ více než C, protože tento jazyk má mnohem více funkčnosti. C++ je v podstatě rozšíření C. Může být užitečné, abyste se nejprve naučili alespoň trochu C, abyste jej mohli rozpoznat, když najdete hardwarovou knihovnu napsanou pouze v jazyce C. C/C++ nejsou tak jednoduché jako například Python nebo MATLAB.

Implementování stejné funkce pomocí C může trvat mnohem déle a bude vyžadovat mnoho dalších řádků kódu. Nicméně, protože robotika je velmi závislá na výkonu v reálném čase, C a C++ jsou pravděpodobně tou nejlepší volbou.

V jakém pořadí byste se je měli naučit?

Nejdůležitější je najít jazyk, který je pro vás přirozený a vyhovuje vašemu robotickému hardwaru. Chcete jazyk, který vám umožní rychle a snadno vytvářet programy, abyste se mohli více soustředit na vývoj funkčnosti. Z tohoto důvodu doporučujeme nejprve se naučit Python. Je-li pro vás smysluplnější jiný jazyk, naučte se místo toho právě ten. Nicméně, Python je úžasně jednoduchý jazyk, který se lehce učí a je velmi výkonný díky mnoha dostupným knihovnám. Poté, bychom doporučili naučit se C a následně C++. Budete je potřebovat k propojení s obrovskou většinou robotických ovladačů hardwaru.

Leave a Comment