Что нужно знать, чтобы начать создавать роботов?

940
1
0
4 августа
10:46
август
2016

Сейчас появилось великое множество возможностей, которые позволяют начать создавать роботов не имея каких-то супер-пупер особенных таких знаний. И это великолепно! Потому что запускает лавину познания.

Причём начинать нужно не со знаний. Не знания должны быть паровозом. Знания это багаж, который едет в этом поезде. А что же тогда паровоз? А паровоз — это как раз незнание того, как бы так сделать, чтобы нечто делалось само собой. Строительство робота — это как раз обретение такого знания.

Чтобы не погрязнуть в примерах давайте возьмём один только пример. Самый тривиальный пример. Пусть робот перемещается по комнате не впечатываясь в стены. Что нужно знать:

1. Какой будет механика перемещений. (У большинства роботов есть механика, но бывают и бестелесные роботы, например, биржевые.) Если у вас нет знаний в этой области, то сразу начинайте их приобретать. Какие есть механизмы для перемещения, по ровной поверхности, по неровной, шагающие, на колёсах… Если на можете сделать такой механизм, найдите готовый. Разберите и соберите его заново, если это возможно.

2. Как робот будет взаимодействовать с внешним миром. Тут хорошо бы иметь знания в радиоэлектронике и/или информационных технологиях, чтобы понимать как считывать звуковые, оптические, механические сигналы, как получать информацию из сети (последнее особенно важно для бестелесных роботов). Минимальные знания уже подойдут, недостающие нужно немедленно начать восполнять. Благо вы можете использовать огромное количество модульных элементов и датчиков, сопрягаемых с уже готовыми контроллерами, которые превращают сигналы этих датчиков просто в числа. (если интересно, можно в комментариях обсудить/обменяться ссылками/адресами, где всё это приобретается)

3. (самое важное) Как робот будет думать. Надо определиться в чём заключается его «мыслительная» деятельность. Для выбранного примера это всего лишь умение в нужные моменты времени включать и выключать N электродвигателей в зависимости от измеренного расстояния до стены впереди (как минимум). Для мыслительной деятельности роботу нужен программируемый блок с микропроцессором. Есть множество готовых платформ для конструирования роботов (Arduino, Матрёшка, Strawberry Pi, Iskra, Troyka и др. Опять приглашаю в комментарии: делитесь ссылками, спрашивайте)

Сразу возникает вопрос: значит надо знать программирование? Строго говоря да. Но среди перечисленных платформ есть такие, в которых программирование осуществляется в визуальной среде без использования какого-либо конкретного языка программирования. (Т.е. внимание! Не обязательно знать программирование чтобы начать. Но естественно обязательно знать, чтобы продолжить)

Вот три основных косточки, на которых надо иметь сухожилия начальных знаний и навыков, доступных даже ребёнку, и на которых потом наращивать мясо высших инженерных знаний:

  •  строить механизмы из конструктора —  в перспективе это весь спектр «механических наук»: физика (механика), детали машин и механизмов, сопромат, гидравлика и т.п.
  • знать, как обеспечивается взаимодействие с внешним миром (даже детские конструкторы сегодня снабжены модулями-датчиками) — в перспективе это программирование, сетевые протоколы, физика (электричество, оптика, акустика, радиолокация, и т.д.)
  • иметь начальное представление о программировании: переменные, алгоритмы — в перспективе программирование (разные языки и парадигмы программирования), алгоритмы и структуры данных, базы данных. Выбор языка программирования не принципиален, выбор очень широк, от визуальных сред для детей, но ассемблера конкретного микропроцессора. Вы сами можете выбирать в зависимости от имеющихся знаний

Ну, и напоследок, для вдохновения посмотрите (и это не реклама, я к этому производителю не имею отношения (поделитесь другими примерами)) какие есть детские инструменты для создания роботов https://www.tinkerbots.de/

3
1
Если вы знаете ответ на этот вопрос и можете аргументированно его обосновать, не стесняйтесь высказаться
Ответить самому
Выбрать эксперта