Підписатися на RSS

Первый робот университета

Впервые увидев перед собой коробку, полную разнообразной электроники, я вспомнил свое детство.

/Files/images/pershiy_robot_universitetu/pershiy robot7.png

Тогда у меня был период в жизни, тесно связавший меня с паяльником и электроникой. Меня окружали сотни резисторов, конденсаторов, микросхем и многого другого. Я привык к ним, и они стали моими игрушками. Листая отцовские подшивки журналов «Моделист-конструктор», я удивлялся необыкновенным устройствам. В фантазиях у меня они получались, причем намного лучшие, чем в описании. Нужно намотать 1000 витков провода? Зачем мелочиться, ведь мне не жалко намотать и 50000 и 100000, а если нужно, смогу и больше.

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

Да, можно было поехать на радиорынок. Но так не хотелось искать деньги, ехать, покупать. Вот, если б все нужно уже было в наличии, только бери и делай…

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

Позже я узнал о программировании. Самым главным для меня в нем стало то, что у тебя всегда есть все «запчасти» в любом количестве и все дороги открыты. Множество необыкновенных программ возникали, по моему желанию, и со временем поглощались энтропией жесткого диска. Веселое было время – адреналин исследований, невероятные случайности, бессонные ночи, победы и поражения, которые уже почти забыты, оставив после себя только тени в памяти и мегабайты на диске.

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

Не все так просто, и не идут с каждой деталью инструкции и пояснение. Интернет помогал, но совсем неохотно. Как только твои «почему?» оказываются чуть глубже обычного, каждую крупицу знаний приходится отвоевывать у него, а потом путем проб и ошибок самому отвечать на заданный вопрос.

После периодических опытов и двух недель сборки и настройки у меня получился… робот!

Да, многие видят перед собой только детскую машинку с неэстетично торчащими наружу печатными платами и проводами. Разве может эта игрушка называться роботом? У нее ведь нет ни рук, ни ног! Многие под роботом понимают нечто человекоподобное с манипуляторами. Как ведь еще он сможет заменить человеческий труд?

Но зачем роботу-водителю переключать рычаги управления манипулятором, если можно просто подать управляющий сигнал?

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

Функционирует все так же, по аналогии с системой человек-машина:

1. От датчиков по проводам идут сигналы, по которым можно вычислить расстояние до преграды.

2. Мозг робота – микропроцессор, пользуясь заложенными правилами, принимает решение – в какое положение нужно повернуть руль, куда и с какой скоростью двигаться.

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

4. Двигатель и сервопривод приводят в движение весь аппарат.

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

Такого рода исследования в Украине популяризируются благодаря международным соревнованиям «Роборейс», которые основала и регулярно проводит Ассоциация робототехники Украины. Именно эти соревнования дали толчок этому процессу в Университете «Украина», который начал и всячески поддерживает директор Института Компьютерных технологий В. В. Полиновский. Одним из результатов процесса и стала упомянутая коробка.

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

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

/Files/images/pershiy_robot_universitetu/pershiy robot1.png

/Files/images/pershiy_robot_universitetu/pershiy robot2.png

Он появился для того, чтоб принять участие в соревнованиях, прошедших в Черновцах 16 февраля 2012. Тяжелые, но надежные болты пронизывали его корпус, фиксируя платформу из оргстекла. На самой платформе расположились управляющие платы и полукруг из инфракрасных датчиков расстояния. Питало его 4 замечательных аккумулятора, пожертвованные на благое дело моим директором. Полукругом послужил кусок крышки от банки с мороженным.

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

Тестировался робот два дня перед самим отъездом на соревнования. Именно при тестировании сплава мысли и техники начинаешь понимать, что в действительности все не так, как на самом деле… Датчики выдают немного не то, что предполагалось. Руль и двигатель ведут себя неестественно. То, что логично, не всегда работает. И все на фоне постоянной беготни от ноутбука с текстом программы, которую правишь и по кабелю сливаешь в робота, к собранной наспех трассе.

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

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

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

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

/Files/images/pershiy_robot_universitetu/pershiy robot3.png

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

После того, как мой робот прошел «медосмотр» и стали известны его вес, габариты и «вменяемость», которые были вполне в норме, был пробный заезд. В том заезде роботу, будучи одному на трассе, предстоит преодолеть один круг. Мой робот с этим справился отлично. Настолько хорошо, что попал в первую группу, вместе с лидерами соревнования.

/Files/images/pershiy_robot_universitetu/pershiy robot4.png

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

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

Далее было проведено еще три заезда, где участвовали другие наборы роботов. Из роботов последнего заезда до финиша не добрался никто, хотя было очень интересно смотреть на их поведение. По показанным результатам, мой робот занял «среднее» место, т.е. 8-е из 15 участников. Семеро было быстрее и семеро медленнее его.

В финал попали 6-ть лучших, т.е. мне не хватило двух позиций до финала.

Все призовые места заняли парни из Ивано-Франковска. Трижды каждого из них вызывали и вручали медали и грамоты, что выглядело забавно.

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

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

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

/Files/images/pershiy_robot_universitetu/pershiy robot5.png

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

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

/Files/images/pershiy_robot_universitetu/pershiy robot6.png

Студенты ударными темпами готовили к превращению в робота древнюю машинку, которой требовался крупный ремонт. Они решили, что проще настроить ее, чем отладить второго собранного мной робота.

За день до соревнований мы заработались до того, что в 22:00 охрана нам напомнила, что университет закрывается. До этого мы разложили и распрямили основу прошлогодней трассы, а студенты починили механику и практически отладили электронную начинку своего робота.

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

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

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

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

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

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

На этот раз пробный заезд выдержало только 6 машин, и их разделили на два заезда. В первом заезде шли машины-лидеры квалификационного круга. Мой робот был во второй тройке.

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

За все 10 кругов робот всего раз попал в ловушку, что было намного лучше, чем у других роботов. Это было нашим общим чудом. Я был готов его расцеловать и пообещал в следующий раз непременно украсить.

Всего ушло на 10 кругов 11 минут (это вместе с тем временем, что я потратил на поиск ошибки и перепрошивку робота). Такой результат гарантировал мне 4-е место и попадание в финал!

Перед финалом я пару раз проверил его роботу и успокоился.

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

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

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

Максим Петренко,
преподаватель Института компьютерных технологий

Кiлькiсть переглядiв: 271

Коментарi

Для того, щоб залишити коментар на сайті, залогіньтеся або зареєструйтеся, будь ласка.