Три закона роботехники в научной фантастике — обязательные правила поведения для роботов, впервые сформулированные Айзеком Азимовым в рассказе «Хоровод» (1942).
Законы гласят:
-
Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред.
-
Робот должен повиноваться всем приказам, которые дает человек, кроме тех случаев, когда эти приказы противоречат Первому Закону.
-
Робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому и Второму Законам.
Как показывает практика, сбываются далеко не все фантазии авторов книг и сценариев о будущем нашей планеты. Так, например, ничего похожего на восстание машин в нашем мире пока не наблюдается, а роботы совсем не так агрессивны, как всем известный Терминатор.
Кстати, роботов нынче превеликое множество, начиная от простеньких конструкций из кубиков «Лего», создаваемых школьниками на уроках робототехники, до сложных человекоподобных созданий с запрограммированным интеллектом. К слову, последние, как правило, существуют в единичных экземплярах. Но если вы думаете, что создание роботов — прерогатива опережающей весь мир Японии, то вы наверняка ошибетесь.
Не так давно разработкой андроидов (человекоподобных роботов) занялись и российские специалисты. В 2004 г. на рынке появилась компания «Андроидные роботы», которая занимается конструированием человекоподобных механизмов (начиная от совсем небольших, размером с куклу, и заканчивая полноразмерными, в человеческий рост). Помимо этого специалисты компании ведут прикладные исследования по расширению возможностей роботов с помощью дополнительного оборудования: систем навигации, аппаратного «зрения», «слуха», телеметрии.
Разработки компании пользуются спросом прежде всего у научных и учебных заведений: кому, как не ученым и учащимся, применять роботов-андроидов в исследованиях и обучении! Ну а кроме того, российские роботы имеют заметный успех у серьезных компаний, занимающихся автоматизацией и роботизацией производства.
Самая популярная модель, разработанная в компании, — робот-андроид серии AR-100 «Добрыня». Хоть этот богатырь и невелик размерами, но умеет достаточно: уверенно имитирует человеческие движения, а при установке голосового синтезатора, переводящего текст в речь, даже говорит. Причем робота отличают устойчивая ходьба и плавное движение туловища, а это немаловажно в экстремальных ситуациях. Уникальность андроидных роботов состоит именно в особенностях их кинематики: ведь шагающему роботу намного проще передвигаться по неровностям, например по лестницам или завалам, чем роботам на гусеничном ходу. А потому разработка и программирование таких роботов — одно из перспективных направлений.
Есть у российских роботов и еще одно преимущество: программное обеспечение, необходимое для их работы, открыто и масштабируемо. Штатное ПО позволяет быстро разрабатывать сложные сценарии движения с использованием мультимедийных возможностей. Таким образом, роботы серии AR-100 считаются отличным пособием по изучению современных робототехнических технологий.
В самом деле, средства для программирования роботов довольно просты, и после недолгого изучения заниматься этим интереснейшим делом сможет даже школьник.
Язык программирования андроидов основан на знакомом многим Бейсике. Он так и называется — AR-Basic. А кроме того, для удобства работы специалисты компании «Андроидные роботы» создали специальную среду разработки AR-Basic Studio. Это ПО довольно просто в освоении.
Отличается AR-Basic от Бейсика наличием специальных команд, позволяющих оперировать сервомоторами — механизмами, которые отвечают за движение робота. В модели «Добрыня» сервомоторов (их еще называют сервоприводами) семнадцать. Они отвечают за сгибание рук и ног робота, повороты головы и наклоны туловища. Помимо них имеется контроллер, который вполне можно назвать мозгом робота, и аккумулятор, имитирующий сердце.
Языковые конструкции AR-Basic позволяют управлять сервоприводами как по отдельности, так и объединяя их в группы. Принцип управления прост: большинству команд в качестве параметров передаются лишь номер сервомотора или группы сервомоторов и значения, на которые должен подвинуться тот или иной сервопривод. Есть также команды для обмена данными — приема сигналов от пульта ДУ или компьютера, передачи данных по каналу Bluetooth, подачи звуковых и световых сигналов.
Ограничения сервопривода робота AR-100 составляют от 0 до 2048 единиц. Для удобства при выставлении нулевой отметки за максимальное значение принято число 1024, а за минимальное — минус 1024. Таким образом, программисту доступен диапазон значений примерно от –1000 до 1000, где 0 — середина.
В качестве параметров к этим функциям задается числовое значение — идентификатор привода (или группы) и одна или несколько точек, определяющих, куда следует повернуть конкретный привод (от –1000 до 1000).
Простейшая команда srv_move(mn, val) означает движение привода с номером mn в позицию val с учетом текущей скорости. А скорость можно задать командами srv_speed(mn, val) (для одного мотора с номером mn) или srv_speed_all(val) — для всех сразу. Интересна команда srv_moveptp(mn, val), обеспечивающая перемещение мотора с номером mn в позицию val таким образом, чтобы все сервомоторы в той же группе, что и mn, закончили движение одновременно. Вообще ptp (point-to-point) в названии функции означает автоматическое смещение скоростного режима для некоторых приводов в группе или в целом, для того чтобы конечное положение приводы в группе (или в целом) приняли одновременно.
Предположим, приводы плеча и локтевого сустава находятся в нейтральном положении, и мы хотим заставить робота поднять согнутую в локте руку. Для этого нам нужно подвинуть соответствующие приводы в разные точки, например, один в точку 300, а другой — в 600. Но поскольку скорость движения приводов по умолчанию одинакова, второй будет двигаться в два раза дольше. Чтобы избежать этого, нужно использовать команду PTP; тогда контроллер автоматически выставит для первого привода скорость в два раза меньше и оба сустава достигнут своих конечных точек одновременно.
Конечно, сразу научить робота определенным действиям довольно непросто. Чего стоит только разобраться в движении сервоприводов! Но разработчики AR-100 предусмотрели более простой способ программирования — визуальный. В AR-Basic Studio есть специальное окно управления сервоприводами, где на изображении робота рядом с каждым сервомотором указаны параметры: индикатор включения и число, характеризующее движение сервопривода. Это же окно позволяет автоматически генерировать фрагменты кода, описывающие определенные позы робота (поклон, приседание, поднятие рук и т.д.).
Кстати, если робот подключен к компьютеру, то можно сразу же проверить правильность заданных команд. Синхронизация робота с компьютером возможна как по USB, так и через порт Bluetooth.
Не думайте, что программировать сложно. Российские роботы умеют не только выполнять простейшие движения, их можно обучить танцам и боевым искусствам.
В 2006 г. компания «Андроидные роботы» организовала первое в России соревнование роботов. С тех пор в «Открытом чемпионате России по боям роботов-андроидов», проводимом регулярно, принимают участие команды из разных городов России. Но таланты человекоподобных машин раскрываются не только на ринге, но и на танцевальной площадке. Как уже было сказано выше, андроиды достаточно достоверно имитируют движения человека и танцевальные па в их исполнении вполне похожи на настоящие. После неожиданно успешной презентации танцевальной программы в рамках первого чемпионата по боям компания «Андроидные роботы» организует соревнования по танцам на различных робототехнических выставках.
За пару лет существования на рынке российские роботы завоевали прочные позиции, и прежде всего в области обучения и исследований. Простота программирования, высокие кинематические характеристики и относительно небольшая стоимость — главные преимущества наших андроидов. И это значительно расширяет возможности дальнейшего развития робототехники, ускоряет появление новых направлений исследований и использование роботов в самых разных сферах деятельности.
Дополнительные материалы на «Мир ПК-диске»