Технологии binary-code-507786_1280

Published on Июнь 26th, 2015 | by Юрий Брызгалов

1

Какие навыки нужны для программирования роботов

Программирование роботов – это очень интересная область науки и бизнеса. Однако она требует специальных навыков от разработчика. Каких именно? На этот вопрос на сервисе Quora ответил Брайен Фелдман (Brian Feldman), инженер, руководитель технологической консалтинговой компании.

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

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

Есть 9 направлений, в которых стоит разобраться программисту, если он хочет заняться робототехникой:

  • Электроника;
  • Механика;
  • Микропроцессоры;
  • Сенсоры;
  • Выходные устройства;
  • Объединенные сети/Коммуникации;
  • Масштабирование для производства;
  • Устойчивость к окружающей среде;
  • Безопасность.

Электроника

Если вы создаете роботов, то необходимо иметь хорошое фундаментальное представление об электронике. Надо знать про электропотоки, напряжение, про нагрузочные и согласующие резисторы, как рассчитать мощность и тепловыделение, как составить спецификацию компонентов. Вам придется объединить миры слаботочных и обычных устройств.

Механика

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

Микропроцессоры

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

Один из самых распространенных микропроцессоров в Arduino-проектах – это ATMEL ATMega328P. Инструкция к нему с описанием всех возможностей и функционала занимает 448 страниц.

Сенсоры

Очувствления роботов – одна из фундаментальных задач робототехники. Есть большое количество разных сенсоров и интерфейсов их взаимодействия. Сенсоры могут передавать информацию о напряжении, скорости, ускорении, ориентации в пространстве и множестве других характеристик, которые необходимо проанализировать. Необходимо не только выбрать подходящие сенсоры для того, что вы измеряете, но и понимать что в действительности контролируется. А также есть ли какие-то особенности, которые могут привести к неправильной работе сенсора.

У многиех сенсоров есть инструкции, написанные производителями или open-source сообществом, но надо самому понимать, что происходит “за кулисами”, чтобы устранять неполадки или модифицировать устройства.

Выходные устройства

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

Объединенные сети/Коммуникации

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

Масштабирование для производства

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

Устойчивость к окружающей среде

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

Безопасность

В отличие от компьютерной программы робот, который состоит из “железа” и двигается в реальном мире, может причинить физический ущерб. Надо приложить все усилия, чтобы свести к минимуму риск таких ситуаций.

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

А какие еще навыки важны для программиста-робототехника, на ваш взгляд?

Если материал понравился, то, пожалуйста, поделитесь им с друзьями:

Tags: ,


About the Author

Юрий Брызгалов

Главный редактор онлайн-журнала Robome. Фанат роботов. Считает, что хороший бизнес меняет мир к лучшему, особенно если он связан с робототехникой.



  • RoboIvan

    Делать роботов — это сложно. Я сейчас сам учусь, но не хватает знаний. Хочу на курсы пойти.

Back to Top ↑