← Вернуться к оглавлению

Урок 3. Языки программирования, используемые в робототехнике

Продолжаем курс "Ардуино для начинающих". Мы уже поговорили о платах Ардуино, разобрали конкретную модель Arduino Uno во втором уроке и сегодня мы коснемся темы языков программирования для робототехники и электроники.

C++

Почти каждый производитель роботов разработал свой собственный язык программирования роботов, что является одной из проблем в промышленной робототехнике. Можно ознакомиться с некоторыми из них, изучая Паскаль. Тем не менее, программисту все равно придется изучать новый язык каждый раз, когда проектируется новый робот.

Тем не менее, в отношении плат Ардуино и ряда других аналогичных микроконтроллеров широкое применение получил язык C++.

Из википедии: C++ (читается си-плюс-плюс) — компилируемый, статически типизированный язык программирования общего назначения.

Под Ардуино используется очень близкий к C++ язык программирования. Основы языка мы разберем позже, но если вы хотели бы уже сейчас с ним познакомиться - на нашем сайте есть справочник языка C++ Ардуино.

Стоит отметить, что C++ используется для:

  • разработки программного обеспечения;
  • создания операционных систем;
  • создания различных программ;
  • создния драйверов устройств;
  • реализации приложений для встраиваемых систем, высокопроизводительных серверов, игр.

Этот язык не очень прост для старта изучения программирования в целом, но если вы его выучите, то сможете применять его практически для любых задач.

LISP

LISP является вторым старейшим языком программирования в мире (FORTRAN старше, но только на один год). Он не так широко используется, как многие другие языки программирования в этом списке; однако, это все еще весьма важно в программировании искусственного интеллекта. Части ROS написаны на LISP, хотя не нужно знать это, чтобы использовать ROS.

Hardware Discription Languages (HDLs)

Эти языки довольно знакомы некоторым робототехникам, потому что они используются для программирования полевых программируемых массивов шлюзов (FPGA).

FPGA позволяют разрабатывать электронное оборудование без необходимости фактически производить кремниевый чип, что делает их более быстрым и простым вариантом для некоторой разработки. Тем не менее, важно знать, что они существуют, поскольку они сильно отличаются от других языков программирования.

Assembly

Assembly позволяет программировать на «уровне единиц и нулей». Это программирование на самом низком уровне (более или менее). В недавнем прошлом, большинству низкоуровневой электроники требовалось программирование на Assembly.

С ростом Arduino и других подобных микроконтроллеров, теперь можно легко программировать на этом уровне, используя C/C++, что означает, что Assembly станет менее необходимой для большинства роботов.

MATLAB

MATLAB и его родственники с открытым исходным кодом, такие как Octave, очень популярны среди инженеров-робототехников для анализа данных и разработки систем управления. Существует также очень популярный Robotics Toolbox для MATLAB. Существуют люди, которые разработали целые робототехнические системы, используя только MATLAB.

C# / .NET

C# - проприетарный язык программирования, предоставляемый Microsoft. Если планируется использовать эту систему,то вероятно, придется использовать C#.

Тем не менее, изучение C/C++ может быть хорошим вариантом для долгосрочного развития навыков программирования.

Java

Многие успешные инженеры-электронщики удивляются, что некоторые ученые степени в области компьютерных наук преподают Java студентам как свой первый язык программирования.

Java «скрывает» основные функции памяти от программиста, что облегчает программирование, чем, скажем, C, но это также означает, что программист меньше понимает, что на самом деле делает его код.

Теория использования Java заключается в том, что можно использовать один и тот же код на разных машинах, благодаря виртуальной машине Java. На практике это не всегда работает и иногда может привести к медленному выполнению кода. Тем не менее, Java довольно популярен в некоторых областях робототехники, поэтому он может понадобиться.

Python

В последние годы было огромное возрождение Python, особенно в области робототехники. Он сейчас очень популярен и я думаю, что сделаю отдельный курс по этому языку программирования применительно к электронике и другим областям.

Вероятно, одной из причин его популярности является то, что Python (и C++) являются двумя основными языками программирования, найденными в ROS. Как и Java, это интерпретирующий язык. В отличие от Java, основной целью языка является простота использования.

Python обходится без многих обычных вещей, которые отнимают время в программировании, таких как определение и приведение типов переменных. Кроме того, существует огромное количество бесплатных библиотек, что означает, что не нужно «изобретать велосипед», когда нужно реализовать некоторые базовые функции. А поскольку он допускает простые привязки с кодом C/C ++, это означает, что на этих языках могут быть реализованы части кода, требующие высокой производительности, чтобы избежать потери производительности.

В последние годы такие опции программирования, как ROS Industrial, стали предоставлять более стандартизированные опции для программистов. Однако, если программист является техническим специалистом, ему, скорее всего, придется использовать язык производителя.

В следующих уроках этого курса мы более детально коснемся основ программирования плат Ардуино.

Ардуино+