РобоХак Електро-Утюг (e-tug@mail.ru) Спецвыпуск Xakep, номер #030, стр. 030-112-2 РОБОХАК Победу над очередным роботом (http://robotoy.elec.uow.edu.au) не предвещало ничто. Манипулятор маленький, кубиков мало, стол кажется необъятным. В ВЕБ-интерфейс добавлены ограничения на движения роборуки. Однако почти сразу я натолкнулся на интересный баг. Я хотел всего лишь сгрести кубики вместе и потому опустил клешню пониже. Однако рука почему-то не захотела двигать кубики. Оказалось, что стол кривой, и манипулятор просто цепляется за неровности и не двигается дальше. Однако программа WEB-интерфейса при таком простое остается в полной уверенности, что робот сдвинулся и корректирует допуски. То есть, специально заклинив руку, я получил возможность подвинуть ее за пределы программных ограничений. А двигать было куда: было видно, что сзади из манипулятора торчат провода. Но до них я не дотянулся, помешали аппаратные ограничения, оказалось, что робот просто механически не способен вращаться на все 180 градусов. Конечно, это стало понятно не сразу, наоборот, мне все время казалось, что до заветных проводов не хватает пары сантиметров, и я снова и снова заклинивал манипулятор, пока не убедился, что механический барьер преодолеть нельзя. Жаль, до проводов я не достал, но зато во время заклинивания чуть-чуть задралась клеенка. Было решено этим воспользоваться: я раскрыл клешню, подвел ее к задранному краю, опустил, сдвинул в сторону, чтобы получше зацепить, и дал команду закрыть. Однако клешню тоже, оказывается, заклинивает, и закрыть ее не удалось. Пришлось поднять ее от стола, дать команду открыть, и только после этого удалось ухватить кленку металлическими пальцами. Я тащил в сторону и одновременно приподнимал, однако клеенка все время выскальзывала! Тогда я попытался ухватить ее, сложив вдвое, но она все равно выскользнула! У этих роботов, видимо, специально делают очень слабый захват, видимо чтобы интернетчики не раздавили кубики. Тогда я перешел к другой тактике: раскрыл клешню, опустил ее максимально близко к столу и стал аккуратно поддевать ею клеенку. Выяснилось, что робот двумя передними ножками стоит на куске ненавистной клеенки, а под нею самый обычный деревянный стол. В определенный момент рука все время застревала на складке - эх, были бы моторы помощнее, тогда можно было бы вообще все здесь изорвать в клочья. Оказалось, что если дать механической руке разогнаться - она двигает мощнее. Мотая манипулятором из стороны в сторону :). Однако все равно она застревала где-то на середине. При этом робот начинал сам себя подталкивать к краю стола. Через некоторое время я уже дотягивался до края - этого достаточно, чтобы выкинуть кубики. Но с этим я не хотел спешить. Одной ножкой робот все-таки держал клеенку, и было решено высвободить ее. На это я убил около часа, цепляя клеенищу то с одной, то с другой стороны. И, наконец, она высвободилась! Почему-то после этого сервер стал сразу недоступен. Нет, меня не запалили, просто на сайт зашел другой пользователь и взял на себя управления. Видимо его удивил погром на выставочном стенде, и перец быстро свалил. Снова овладев управлением, я сразу же зацепил освободившуюся клеенищу и спихнул ее со стола вместе с кубиками. |