¬аше окно в мир —јѕ–
 
Ќовости —татьи јвторы —обыти€ ¬акансии Ёнциклопеди€ –екламодател€м
—татьи

28 августа 2013

ѕроект Cyber-CAD-o-Punk, или Ђ–обот в каждый домї

—борка и развивающее сопровождение домашних роботов как область подлинно массового применени€ 3D-принтеров

ћихаил Ѕельман

Ѕельман портретик ќт редакции isicad.ru: јвтор статьи и инициатор представленного в ней проекта — матерый профессионал в области инженерного программного обеспечени€. ќн исчерпывающим образом охарактеризовал себ€ в заметке «¬оспоминани€ системного —јѕ–-пропагандиста, или 3D-модель лысой китайской женщины».

ћинимальной аннотацией к содержанию может считатьс€ приведенный выше, достаточно строгий подзаголовок, который предложен редакцией isicad.ru. — другой стороны, внутри проекта используетс€ совсем неформальное название «“алмудо-¬уду», смысл которого по€сн€етс€ автором в конце статьи.

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

¬ данной публикации максимально возможным дл€ нашей редакции образом сохранен авторский €зык и стиль.

1. ÷ели проекта и его рыночные предпосылки

Ѕурный рост рынка 3D принтеров порождает (или породит в ближайшем будущем) некий дисбаланс между доступностью по невысоким ценам домашних устройств ($500-$600 — цена на устройство с 12-15-сантиметровой стороной рабочей площади стола) и откровенно неудовлетворительным состо€нием индустрии программного обеспечени€, специально ориентированного на производственные особенности такого вида устройств. Ќа сегодн€шний день общее число пользователей, имеющих 3D принтеры на дому, исчисл€етс€ дес€тками тыс€ч, а с наращиванием мощностей по их массовому производству в  итае, число пользователей может вырасти до сотен тыс€ч, если даже не до миллионов уже через 1.5-2 года.

»менно доступность таких устройств порождает в каком-то смысле новую революцию в общем потоке развити€ общества потреблени€, ибо создает массово доступный вид де€тельности, который можно назвать «производство-на-дому». » сей феномен вполне может потребовать уже в ближайшем будущем адекватной реакции от профессионального рынка систем инженерного проектировани€ в виде относительно простых, но тщательно подструганных под особенности производства на таких устройствах как домашние 3D принтеры.

ѕрофессионалы 3D дизайна проектируют и печатают дл€ продажи различные оригинальные модели, ими же разработанные в программах 3D моделировани€, скажем, в Autodesk 3ds Max, но таких — меньшинство. ј зан€тием большинства владельцев 3D-принтеров (не дизайнеров, инженеров или программистов) €вл€етс€ поиск и скачивание из интернета разных готовых 3D моделей, их изготовление в домашних услови€х из пластика, последующа€ доработка (скажем, раскрашивание и склеивание габаритных частей), объединение в клубы по интересам, организаци€ обмена такими сувенирами, организаци€ галерей и т.п. ¬полне ожидаем момент, предположительно через год, когда всем им надоест такой вид де€тельности, а устройства начнут простаивать.

Ќесколько энтузиастов, включа€ автора этой статьи, объединенные в неформальный клуб, условно именуемый «Creativity of donkeys vs. stupidity of professionals», решили провести цикл работ по анализу возможности разработки набора программных средств проектировани€. ¬ основном речь идет о моделировании сборки и симул€ции на домашних компах деталей, из которых можно будет собирать небольшие простые роботы, а также о некоторых средствах разработки программ дл€ встроенных компьютеров, способных управл€ть такими роботами. ¬от неформальный логотип нашего проекта:

Ѕельман лого

’орошим примером готовых изделий, позвол€ющих сегодн€ собирать таких роботов из пластика, €вл€етс€ комплект MindStorm Lego, однако не совсем дешевый — $450-$500. Ќами вы€влены характерные трудности пользователей таких конструкторов и сформулирована концепци€ «от простого к сложному»: от простых расширений стандартных наборов Ћего до полностью оригинальных наборов строительных блоков, которые можно будет печатать на 3D принтерах. “акже предполагаетс€ проработка возможности стандартизации разработки управл€ющих программ дл€ встроенного компа робота, который мы предполагаем выбирать из серийно производ€щихс€ в индустрии компактных одноплатных компьютеров по цене в 2-3 раза дешевле MindStorm Lego NXT и при этом в 2-3 раза производительнее.

–обот Ѕельмана 1

Ёти кадры иллюстрируют размеры робота и относительные габариты серво-движков Ћего. √абариты движков значительны относительно общего размера робота, что весьма важно дл€ понимани€ повышенных требований к компактности сборки. —ерво-движки необходимо вписать в конструкцию весьма компактным образом, что влечет добавление в модель весьма жестких констрейнтов.

“аким образом, име€ начальную целевую группу предположительно в дес€тки тыс€ч пользователей, мы хотели бы развить набор программного обеспечени€, покрывающий все аспекты проектировани€, моделировани€ и управлени€ такими роботами. ѕо одной из предварительных оценок, потенциальный рынок на такой полный вид продуктов (предоставл€емых, скорее, всего как облачные сервисы) можно оценить в дес€ть миллионов семей только в —Ўј. ќценка, пон€тно, груба€, но зато есть за что боротьс€.

ќдин из ожидаемых результатов — построение набора технологических, технических и методологических компонент, позвол€ющий реализовать разработку и производство «на дому» маленьких, простеньких, на первом этапе не об€зательно практически полезных, роботов из пластика, как с возможностью пр€мого управлени€ с домашнего компьютера, так и способных выполн€ть некие действи€ в автономном режиме.

— точки зрени€ самих участников проекта, не менее важным познавательным аспектом де€тельности в рамках данного проекта, €вл€етс€ попытка пон€ть — насколько сегодн€шний уровень технологий программного обеспечени€ дает возможность имплементировать в управл€ющих компах робота все четыре закона робототехники, сформулированные ј.јзимовым в его великой серии SF «Foundation».

јзимов

ј́йзек јзи́мов (Isaac Asimov), 1920-1992, американский писатель-фантаст русского происхождени€,
попул€ризатор науки, биохимик. јвтор около 500 книг.

(ќт редакции: ћассовый молодой читатель, скорее всего, знает не слишком удачный фильм «я, робот» по сценарию јйзика јзимова, но вр€д ли хорошо знаком с его книгами. Ётот признанный классик научно-фантастической литературы был чрезвычайно попул€рен в мире: не в последнюю очередь — в среде поздне-советской интеллигенции. ќснова всего написанного јзимовым — «три закона роботехники»:
1. –обот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинЄн вред.
2. –обот должен повиноватьс€ всем приказам, которые даЄт человек, кроме тех случаев, когда эти приказы противоречат ѕервому «акону.
3. –обот должен заботитьс€ о своей безопасности в той мере, в которой это не противоречит ѕервому и ¬торому «аконам
.

ћногие рассказы јзимова посв€щены причинам и следстви€м нарушени€ трех законов или непредвиденным последстви€м их соблюдени€ роботами.

»нтерес к јзимову заключаетс€ не столько в самих роботах, сколько в анализе (в рамках увлекательных литературных сюжетов) проекции «законов роботехники» на человека и на социум. ¬ одном из рассказов персонаж јзимова говорит: «...“ри «акона роботехники совпадают с основными принципами большинства этических систем, существующих на «емле... попросту говор€, если Ѕайерли исполн€ет все «аконы роботехники, он — или робот, или очень хороший человек».

ѕозднее јзимов предложил Ќулевой «акон:
0. –обот не может причинить вреда человеку, если только он не докажет, что в конечном счЄте это будет полезно дл€ всего человечества,
этические последстви€ которого совсем не кажутс€ очевидными...)

2. “ехнические средства и технологические компоненты, вовлеченные в проект или требующие разработки

ѕредполагаетс€ наличие набора CAD-подобных средств дл€ проектировани€ строительных блоков дл€ сборки роботов, инструмент сборки с верификацией корректности сборки, симул€ции на основе алгоритмов инверсной кинематики. –азумеетс€, мы и не предполагаем имплементацию еще одного 3D-моделера, наоборот, предполагаетс€, что пользователи смогут найти в сети и сгрузить нужные им 3D модели деталей роботов. ≈динственные функции моделировани€, которые необходимо обеспечить, — неоднородное масштабирование крепежных отверстий с/без паттернами, ну и булевы операции в простейшей имплементации. ¬ силу планарно-цилиндрической сущности 95% всей геометрии таких роботов, мы исключаем (на данном этапе) NURBS-modeler как таковой. Ѕолее того, если даже из сети будет загружена более сложна€ модель, предполагаетс€ ее планаро-цилиндрификаци€ — насколько сие возможно. “ребование простоты геометрии объ€сн€етс€ ниже.

»зготовление деталей из пластика предполагаетс€ на 3D принтерах дешевых моделей, доступных уже сегодн€ в диапазоне цен $500-$1000. Ќадо понимать что невысока€ разрешающа€ способность таких устройств (0.1мм по X/Y, 0.2-0.3мм по Z) не позвол€ет увлекатьс€ сложной геометрией, требующей высокого разрешени€, как скажем в таком высоко-качественном продукте как Lego. ¬ качестве материала предполагаетс€ использовать пластик ABS Filament.

Ќа первом этапе предполагаетс€ разнести управление роботом между простеньким встроенном компом уровн€ не выше NXT-1 (примен€емый в MindStorm Lego) или даже простеньким јрдуино, где будут выполн€тьс€ лишь базовые функции управлени€ серво-моторчиками и датчиками, и домашним компом достаточной мощности, дл€ обработки изображений, алгоритмов инверсной кинематики, человеко-машинного интерфейса и самое сложное — моделей поведени€ автономного робота.

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

’отелось бы разработать полноценный механизм сборки 3D готовых деталей, независимого от мощных, и главное — дорогих, CAD систем. Ќа самом примитивном уровне мы планируем в ближайшие пол-года сделать некий прототип, позиционируемый как «Lego extension toolkit».

¬ достаточно упрощенной постановке проблемы моделировани€, сборки и простенькой такой симул€ции кинематики дл€ проектировани€ роботов и подготовки изготовлени€ их деталей на 3D принтерах как-то исчезает необходимость раздел€ть процессы CAD & CAM. “.е. в едином процессе будут объединены как минимальное моделирование (простейшие операции такие как non-uniform scale примен€емые как к геометрии оболочки, так и к pattern крепежных отверстий), так и сборка в 3D, скорее всего — на основе 3D решател€, также нека€ верификаци€ и возможно — симул€ци€ дл€ последующего изготовлени€ на 3D принтерах. “.е. тут надо иметь все вместе, ибо надо учитывать существенные ограничени€ NC machining, накладываемые примитивными возможност€ми 3D принтеров.

¬ процессе сборки мы хотели бы оторватьс€ от оперировани€ с относительно низко-уровнемыми сущност€ми. —кажем в классической постановке нужно сказать, что дл€ закреплени€ серво-моторчика надо определить constraints типа coaxial между, как минимум двум€ крепежными цилиндрическими дырками на моторчике и соответствующими дырками на корпусе. ¬место этого мы хотели бы сказать, что моторчик должен быть закреплен так, чтобы удовлетворить constraints на ограничени€ габаритов его BBox, а уж найти дырки или при их отсутствии — добавить (вот где стыкуютс€ операции сборки и моделировани€) — это уж пусть решатель сам найдет.

”же на уровне проектировани€ основных корпусных деталей и остальных компонент (моторчиков, осей с колесами, вращающихс€ платформ сверху и т.п.) надо посто€нно делать контроль на технологические ограничени€ изготовлени€ на 3D принтерах.

ƒаже если кто-то сгрузил готовую геометрию детали дл€ робота и хочет эту деталь включить в сборку, необходим механизм анализа данной детали на технологичность ее изготовлени€ на на 3D принтерах. » если надо — резать деталь на части.

–езюмиру€ сказанное в приведенном выше техническом фрагменте, заметим, что дл€ такой специфической технологии как простые 3D принтеры, напрашиваетс€ разработка некоей уникальной модели CAD/CAM, пусть и более примитивной в сравнении с широко примен€емыми системами, но все-таки несущей в себе некие элементы новизны. ¬не вс€кого сомнени€, весь механизм моделировани€/сборки должен быть имплементирован в рамках парадигмы вариационного моделировани€. ¬ рамках нашего неформального клуба реализаци€, пусть и частична€, даже одного из за€вленных пунктов выгл€дела бы несомненным успехом. — другой стороны, очевидно, что при построении такого рода продукта выход за рамки совсем уже примитивных конструкций может потребовать имплементации весьма нетривиальных методов решени€ сложных геометрических задач. ќднако при по€влении любых вразумительных схем финансировани€ проекта мы очень рассчитываем на возможность кооперации с одним из убедительных разработчиком именно сложных систем.

3. «адачи, возникающие в проекте, и возможные пути их решени€

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

ћы начинаем не с за€вленного набора инструментов, а с куда более приземленного — выбрать некий существующий конструктор роботов и разрабатывать к нему различные расширени€, которые по разным причинам в рамках данного конструктора нереализуемы. ћы выбрали один из самых попул€рных, хоть и недешевых, продуктов — MindStorm Lego (цена пор€дка $450-$500). ћне кажетс€ что нам удалось обнаружить методологическую ошибку фирмы Ћего с данным продуктом : если конструкторы дл€ маленьких деток, имеющие целью развитие моторики рук, €вл€ютс€ идеальным решением — можно сказать что это — Big toy for small kids — то в отношении MindStorm Lego, который рекламируетс€ как Small toy for big kids, веро€тно, была допущена если не ошибка, то неточность уж точно. ѕо опросу нескольких владельцев такой цацки было обнаружено, что им совсем неинтересно заниматьс€ раззвитием моторики рук, муча€сь со сборкой конструкций из большого числа мелких деталек, им хочетс€ как можно скорее покончить с этим мазохизмом — сборкой, и начать программировать робота.

ƒальнейшее изложение основано на опыте одного из членов нашего клуба по имени —тас, который выстрадал весь сей мазохизм. »так, он собрал строго по инструкции Ћего шасси начетырех колесах, передние поворачиваютс€, задние — крут€тс€, двига€ телегу вперед/назад. ¬сего в комплект вход€т три серво-моторчика, вот два из них уже задействованы. ƒалее, он захотел добавить сверху вращающуюс€ вокруг вертикальной оси платформу, на которую надо поставить мини-камеру и источник питани€ к ней. Ќу, желание пон€тно — какой же это робот без глаз. „то у него получилось — видно на приложенных картинках.

–обот Ѕельмана 2

Ќеобходимость сделать робота зр€чим повлекла потребность в аккуратном дизайне вращающейс€ горизонтальной платформы, котора€ должна крепитьс€ на вертикально расположенную ось третьегого движка и на которой надо разместить и камеру, и элемент питани€ к ней

¬ чем тут проблема и как мы пытаемс€ ее решить? ѕоскольку на верхней грани телеги мы хотим смонтировать вращающуюс€ платформу, на которой будет сто€ть камера, то враща€ платформу на 90 градусов от вектора движени€, можно распознавать предметы вдоль линии движени€. ќднако если платформа не строго горизонтальна, то уже на самом раннем этапе написани€ IP (image processing) софта придетс€ мучитьс€ с нудной проблемой Image Alignment, от чего хотелось бы уйти. —тало быть — надо выровн€ть платформу. –уками пересобирать корму телеги — влом, стало быть — процесс надо автоматизировать. ¬от так и родилась проблема инверсной сборки. » хот€ возможно в данном контексте, возможно, она высосана из пальца, тем не менее, в подобных сборочных проектах она может встретитьс€ не раз и не два, особенно учитыва€, что в набор Ћего входит много мелких деталей.

»так, на первом этапе задача формулируетс€ достаточно просто: заданы одна или более точек начала сборки, различных, как по высоте, так и по длине. «адан набор доступных деталей Ћего, которые очень хорошо унифицированы как по толщине и ширине, так и по количеству элементов паттерна, определ€ющих длину сегментов сборки. Ѕольшинство из них — линейные, но есть немного угловых: два сегмента под неким ненулевым углом друг к другу. «адано правило сочленений — минимум/максимум совмещенных крепежных отверстий — так варьируем длину наращиваемых сегментов.  аждый следующий линейный сегмент может отсто€ть по высоте от предыдущего максимум на одну ширину сегмента (а может остатьс€ на том же уровне). »звестно, куда по высоте и длине надо привести свободный конец финальной детали, на который будет посажена ось задних колес. ¬от и все — надо построить некую формальную модель и получить какое-нибудь приемлемое решение. ћожно, скажем, минимизировать число задействованных деталей. “.е. переформулиру€ задачу — решаем 2D задачу инверсной сборки на виде сбоку. ¬от в такой постановке задачи мне удалось без особого напр€га с небольшим допущением, свести задачу к модели целочисленного линейного программировани€ (MIP LP). «вучит дико, ибо солверы MIP LP не имеют никакого отношени€ к решению подобных геометрических задач. Ќа такой простоватой модели € просто спекулирую высокой степенью унификации деталек Ћего и несколькими допущени€ми. Ќу что, € беру свободно доступный (GNU license) солвер MIP LP — lp_solve с весьма удобным API и IDE, в IDE уже построил прототип модели и убедилс€, что солвер вполне решает ее.

ƒалее в ближайшие несколько недель надо написать на C++ сам движок, на Qt построить front-end, определить простейший формат дл€ ввода исходных данных, отладить код, после чего начинаетс€ увлекательный процесс: усложн€ем модель до тех пор, пока не упремс€ в предел возможностей MIP LP солвера дл€ решени€ данной задачи. (Ётот предел вызывает у мен€ не столько озабоченность, сколько зоологическое любопытство...)

–обот Ѕельмана 3

ѕопытка удлинить телегу — шаг в сторону от шаблона Ћего — привела к тому что корма оказалась задранной, что нас не у страивает — надо пересобрать корму...

≈сли все получитс€, то мы можем сказать что мы существенно облегчили житуху дл€ big kids. ќсталось пон€ть — а как тут со small toy?

ќтвет — никак! »бо далее мы начинаем проектировать Lego extension. » вот тут как раз формулировка задачи очень €сна€ и четка€: есть крепежные отверсти€ на насадке на ось серво-моторчика Ћего, котора€ (ось) строго вертикальна, есть габариты мини-камеры и ее элемента питани€, есть вес камеры и элемента питани€, заданы дополнительные расширени€ платформы дл€ последующего креплени€ на ней дополнительных конструкций. Ќадо спроектировать вполне так себе ортогональную конструкцию, смоделировать ее совместимость по сборке с тем, что имеем, разбить ее (если потребуетс€) на односторонне-выпуклые части, и отправить ее на 3D printer.

“аким образом из двух базовых концепций фирмы Ћего : «Big toy for small kids» & «Small toy for big kids» — мы свели к одной : «Smart toy for all kids».

»так, скажем, решили проблему Lego extension — можно начинать программировать робота. ¬ рамках такого проекта максимум, что он может делать — кататьс€ по полу или рабочему столу и пытатьс€ распознать некие предметы. »нтересно, но ненадолго.  лассические ожидани€ от робота — перемещатьс€ с места на место, распознавать предметы и совершать с ними некие манипул€ции. ќднако, еще до перехода к проблеме дизайна манипул€тора, хотелось бы посмотреть : какие более-менее интересные задачи такой робот (без манипул€тора) мог бы решать. — учетом того, что основной софт пока еще пашет на PC, у нас руки разв€заны. Ќа уровне чисто сост€зательной де€тельности: если в каком-либо неформальном робото-сообществе (клубе) захот€т устроить соревнование, то вот навскидку три уровн€ такого игрового контента :

  • в автономном режиме пройти по лабиринту
  • проверить, кто больше распознает лица известных де€телей — ту конечно можно (раз все на PC) воспользоватьс€ evaluation license на Samsung Luxand SDK, тогда вместо программировани€ эвристических алгоритмов на C++ можно снова воспользоватьс€ мат. модел€ми, ибо Luxand SDK возвращет 66 контрольных точек на каждый фрейм
  • решить в том или ином виде, но оп€ть в соревновательном контексте, всеобщую проблему парковки телеги на 4 колесах с приводом на задние и поворотом в заданных пределах передних. (¬от смеху будет если народ решит эту задачу эффективнее чем ее сегодн€ решают на экспериментальных модел€х автономных легковушек такие монстры, как ‘орд или “ойота, причем за ничтожные доли процента от затрат тех монстров)...
“ут еще вопрос: а какого уровн€ интерфейс должен получить пользователь дл€ такого вида игрового контекста? ѕока у мен€ нет ответа, и € был бы сильно благодарен за любые идеи. ¬от так вот: уже выползло полно проблем, а заодно — и идей превращени€ простых таких экспериментов в некий продукт.

’отелось бы уже на этом этапе отметить что, начина€ со встроенного компа Lego NXT 1 и оставл€€ практически все алгоритмы на уровне домашнего компа, мы должны определитьс€: когда и на какой встроенный комп реально переносить сложные алгоритмы. —обственно, определение таких границ и €вл€етс€ одной из насто€щих целей проекта с точки зрени€ зоологического любопытства его участников. Ќа первом этапе решение более-менее очевидно — это двух-платный компактный комп типа Raspberry Pi с сотн€ми ћб пам€ти под Linux + Arduino на основе 8-bit микроконтроллера семейства AVR.

ќднако, при всем нашем уважении к процессорам архитектуры ARM, надо заметить, что дл€ сложных задач IP, да и не только, в более-менее real-time их мощи скорее всего не хватит. » хот€ мы к такому придем где-то через год-полтора, но думать надо уже сегодн€.  расивым шансом выгл€дит убедить руководство фирмы MobilEye (или найти инвесторов под такое) в реализации consuming version оригинальной разработки — чипа EyeQ, интегрирующего multi-core MIPS, VMP и GPU-like процессорных €дер, последние два — оригинальна€ разработка MobilEye, при чем скажем VMP — целочисленный векторный процессор — ускор€ет некоторые алгоритмы IP в 10-30 раз в сравнении с универсальным процессором на той же тактовой частоте.

ƒалее об€зательно надо будет переходить к решению проблемы манипул€тора. ’отелось бы заметить, что дл€ решени€ частных проблем, скажем, дл€ захвата небольших легких цилиндрических предметов, не требуетс€ особо гибкий манипул€тор как в реальных роботах, модель будет куда как упрощенной, а стало быть — на этом этапе мы не об€заны решать в общем виде задачу инвесной кинематики. ј частный алгоритм дл€ сильно упрошенного манипул€тора может оказатьс€ весьма простым. ƒл€ более сложных манипул€торов с 3+ степен€ми свободы у нас есть в загашнике решение — см. на сайте http://212.150.186.143/ikw/ — разработка одного из членов клуба.

ќднако возникает вопрос — в наборе Ћего всего 3 моторчика, если даже дозакупим 4-й/5-й — все равно в Ћего компе NXT заложено всего 3 выходных разьема дл€ управлени€ моторчиков. Ќу что тут поделать — надо покупать за $15-$20 простенький јрдуино, цепл€ть его по USB к Ћеговскому NXT — и проблема решаетс€. Ќо есть еще один вопрос — равномерное распределение грузов по платформе может сильно отличатьс€ если на нее придетс€ крепить еще один серво-моторчик (а у Ћего они — относительно большие и относительно т€желые). » что — закладывать такую гибкость в дизайн платформы? Ќичего подобного! ћы же уже в мире at-home production — просто снимаем эту платформу, проектируем новую (как было рассказано выше), печатаем ее на 3D printer — и проблема решена!

ќсталось задать самим себе честный вопрос и еще более честно на него ответить : а как мы с роботом общатьс€-то будем? Ќекий тут ответ есть: общение с роботом на естественном английском трактуетс€ как об€зательна€ часть неких обучающих программ дл€ деток с использованием маленьких роботов, а в такие проекты в цивилизованном мире сейчас вкладывают немало денег.

4. “екущее состо€ние работ и ближайшие планы

Ќа сегодн€ мы имеем :
  • Ќеплохой алгортим инверсной кинематики, правда без динамических констрейнтов на максимальные углы поворота и без collision detection, — надо бы доработать, но сие не столь срочно.
  • ѕолуразобранный робот — платформа на 4-х колесах, требующа€ досборки как было указано выше.
  • Ѕолее-менее отработанный минимум кода на NQC (not-quite-C — диалект , на котором народ пишет вс€кие библиотеки, позвол€ющие программировать такие же цепочки управлени€ моторчиками робота, как и скрипты, предлагаемые Ћего дл€ runtime на их компе NXT).
  • Ѕазовый прототип кода на NQC дл€ двустороннего обмена между NXT и PC, причем grabbing с камеры идет, мину€ NXT).
  • ѕринципиальный прототип MIP LP модели, реализующей решение задачи инверсной сборки в рамках ограничений, описанных выше.
ј вот и план работ до конца этого 2013 года :
  • (1) –еализовать движок инверсной сборки на основе MIP LP солвера lp_solve с соответствующим front-end,
  • (2) «авершить пересборку задней части робота с использованием движка инверсной сборки.  ак минимум, приготовить презентацию с скриншотами всего процесса, как максимум — on-line demo в интернете,
  • (3) —проектировать в каком-нибудь CADe платформу дл€ стыковки с вертикальной осью движка платформы, напечатать ее на 3D принтере и установить на шасси робота,
  • (4) ƒоработать имеющус€ тестовую программу на PC дл€ управлени€ роботом в рамках выполнени€ простейшего сценари€ — проехать линейно на рассто€ние 1 метр по рабочему столу, с самого начала повернуть платформу на 90 град. и граббить на всем пути изображени€ с камеры, сохран€€ их просто как цепочку JPG фалов с нумерацией фреймов в имени файла. Ёто даст нам на первом этапе зависимость разрешающей способности протокола граббинга картинок с камеы на PC как функцию скорости движени€,
  • (5) ѕопытатьс€ построить приложение на основе движка из п. 1 данного раздела с достаточно богатым GUI и дать на тестирование всем знакомым, конструирующим роботов из MindStorm Lego дл€ получени€ feedbacks на самом раннем этапе. »бо — no feedback — no business,
  • ¬ случае успешного завершени€ первых четырех пунктов до конца но€бр€, попытатьс€ имплементировать на PC механизм векторизации изображений по всем полученным фреймам с целью оценки качества доступного в Open Source кода raster-2-vector converter дл€ последующей оценки уровн€ сложности изображений, которые удастс€ классифицировать на основе векторизации ¬ случае успешного завершени€ п. 5 до конца но€бр€ (включа€ получение feedbacks) попытатьс€ реализовать задачу интеграции сборок из деталек Ћего в более крупные блоки дл€ их последующей печати на 3D принтере (попытка ухода от зависимости от Ћего). Ёта задача сама по себе малополезна, ибо дл€ успешного построени€ даже простейших роботов надо все равно иметь готовое решение дл€ альтернативы как управл€ющего компа Lego NXT, так и серво-моторчиков, включа€ разъемы, которые, конечно, надо печатать на 3D принтере:). Ќу, мы и так живем в мире альтернативы, стало быть, надо искать решение уже в начале следующего года.

5. ѕослесловие: о названии проекта и женском лаке дл€ волос

Ќазвание проекта «“алмудо-¬уду» имеет вполне конкретный смысл: ¬уду — ну тут все пон€тно — из неживого делаем квази-живое. “алмудо — как символ трепетного отношени€ к неким св€щеным текстам. “олько тут у нас роботы вместо иудеев, стало быть, их “алмуд — это тексты јйзека јзимова из серии «Foundation». “ех, кто знает об этих текстах немало, включа€ нулевой закон робототехники, но не хочет перечитывать так многа букафф, решительно призываю читать пародию на роботов —тепана ¬артанова «AI» — не пожалеете!

“еперь пару слов о 3D printer — если кто не знает, то главной инновацией за последние пару лет в этой области надо считать по€вление возможно самого ценного материала, существенно подн€вшего качество изготовлени€ на дешевых устройствах — женский лак дл€ волос! »менно так — народ делает плиту из 2-мм стекла размером как раз под стол принтера, опрыскивает его женским лаком дл€ волос, греет стекло до 85-90 град., после чего пластик так здорово прилипает — куда лучше, чем к конвенциональной прокладке стола принтера!

ј можно найти новую, не менее прикольную инновацию в мирке 3D принтеров? Ќадеюсь что да. ƒалее излагаю пример.

—егодн€ 3D принтеры самых дешевых моделей сто€т пор€дка $500-$600, при весьма ограниченной площади стола. ј можно иметь полностью функциональное устройство по цене скажем $200, не счита€ затрат на материал? ћой ответ — да! »так, сегодн€ можно купить в Ѕостоне полностью собранный extruder за $75 — 3Doodler — в конструктиве толстого такого карандаша. ƒалее, делаем, как было описано выше, стационарный манипул€тор, способный держать такой 3Doodler. »сключаем стоимость печати деталей (мы же живем в мире неформальных клубов пользователей 3D принтеров:)), однако один-два моторчика надо прикупить — ну еще $25 — итого $100. ≈ще $20 — купить јрдуино 8-бит и накатать дл€ него код, а скорее — сгрузить готовый. ¬есь софт дл€ 3D принтеров доступен в Open Source. »того, уложились всего в 120$! Ќу, еще $1 за плату 2-мм стекла. »так, манипул€тор, держащий extruder — карандаш-переросток — будет выполн€ть все функции подачи, разогрева пластика и елозить его по разогретой стекл€ной плате с женским лаком дл€ волос. ¬ы имеете право задать вопрос — а стекло кто греть-то будет? » имеете право получить ответ — а греть стекло будет ... перевернутый кверху каком бытовой утюг! ќсталось решить вполне инженерную задачу — сделать станину дл€ фиксации перевернутого утюга и продумать механизм его горизонтальной калибровки. “аким образом, мы и дадим наш ответ „емберлену — в ответ на их буржуазную принципиальность доминировани€ всеобщего потреблени€ мы ответим нашей пролетарской беспринципностью доминировани€ производства средств производства! ———– — forever!

—пасибо за любые feedbacks!

ѕриложение. √лоссарий, составленный автором

MindStorm Lego — весьма попул€рна€ верси€ конструктора Ћего, ориентированна€ на подростков и взрослую публику, отличаетс€ от детских конструкторов Ћего добавлением к набору деталек таких новых компонент как серво-моторчики, несколько видов датчиков, встроенным управл€ющим компьютером и набором программного обеспечени€ как дл€ встроенного управл€ющего компьютера, так и дл€ PC под Windows, позвол€ющего создавать управл€ющие программы (скрипты) дл€ конструируемых изделий без знаний программировани€ на низком уровне (типа —и).

MindStorm Lego NXT — управл€ющий компьютер дл€ MindStorm Lego — см. выше. »меютс€ две версии — NXT1 и NXT2.

«Foundation» — сама€ значима€ сери€ романов в жанре научной фантастики, написанна€ одним из самых знаменитых авторов в данном жанре — јйзеком јзимовым. ¬ советских издани€х называлась «ќснование». ¬ данной серии книг автор неоднократно формулирует им же предложенные основные три закона робототехники, а в последней (недописанной) книге серии формулирует самый главный — нулевой закон робототехники. ≈ще более фундаментальной идеей автора €вл€етс€ иде€ о разработке не совсем пон€тной науки «психо-истори€», в основе которой — гипотеза о возможности разработки математического аппарата, позвол€ющего с высокой степенью точности прогнозировать поведение больших масс людей, живущих в некоем социуме. ƒанна€ иде€ перекликаетс€ с законами робототехники.

ABS Filament — весьма высококачественный вид пластика, дл€ дешевых 3D принтеров поставл€етс€ в виде тонкой (1.75мм) проволоки в рулонах, удобных дл€ креплени€ р€дом с 3D принтерами. “емпература плавлени€ — около 190 град. ÷ельси€. ѕомимо бытового применени€ в 3D принтерах широко примен€етс€ в промышленности в весьма сложных устройствах.

јрдуино (Arduino) — весьма попул€рное семейство одноплатных дешевых микро-контроллеров, построенных на семействе AVR 8-bit микро-контроллеров. ћассово примен€етс€ в управлении простенькими устройствами типа домашних роботов и пр. именно дл€ домашнего конструировани€. »меет весьма полный набор библиотек дл€ программировани€ на €зыке —и, посто€нно расшир€етс€ и развиваетс€. Ќа сегодн€ уже по€вились 32-бит версии таких устройств, с полностью совместимыми с предыдущими поколени€ми средствами программировани€. »деальное решение дл€ работ на уровне хобби. ”ровень цен — $16-$25 за 8-бит устройства, $40-$80 — за 32-бит устройства.

lp_solve — один из самых попул€рных, бесплатных (в рамках GNU license) решателей целочисленного линейного программировани€, массово используемый во многих задачах оптимизации, как в финансовой, так и в технической сферах.

Samsung Luxand SDK — одна из недавних разработок фирмы Samsung — библиотеки на €зыке —и++ дл€ идентификации человеческих лиц по картинкам, сн€тым с моно камеры. »спользуетс€ в разработках фирмы дл€ нового поколени€ “¬.

Raspberry Pi — весьма продвинута€ платформа из семейства одноплатных много-функциональных компьютеров с очень эффективным показателем соотношени€ цена-функциональность/производительность. ѕостроена на процессорах семейства ј–ћ, массово используемых в мобильных устройствах. —егодн€ можно купить такое устройство в комплектации 2-€дерный процессор на 1.7ћ√ц с 1√б пам€ти, интерфейсами ethernet и USB, всего за $40-$50. ћожет работать как под Linux, так и под Android.

ARM — 32-бит RISC процессоры оригинальной разработки фирмы Acorn Computers, ныне архитектура лицнзирована многими производител€ми чипов. ƒоминирует на рынке мобильных устройств, Set-top boxes и многих других рынках встроенных устройств.

MobilEye — одна из ведущих в мире фирм по разработке систем Image Processing дл€ встроенных систем автомобильной электроники. »меет серьезные наработки (более 10 лет на рынке) как в области разработок сложных алгоритмов распознавани€ образов в реальном времени, так и в области разработки специальных чипов, интегрирующих внутри много-€дерные архитектуры как стандартных процессоров (MIPS, ARM и др.), так и спец. процессоров дл€ ускорени€ операций с матрицами битов). ‘ирма также имеет богатый опыт в разработке кросс-компил€торов, загрузчиков, спец. одноплатных компьютеров и многих других компонент дл€ встроенных систем. ‘ирма также позиционируетс€ сегодн€ как конкурент Google в разработке систем управлени€ автономных автомобилей (полное компьютерное управление).

VMP — спец. процессор обработки изображений, используемый фирмой MobilEye — см. пункт выше. ќригинальный дизайн ®сси  рейнина — сотрудника MobilEye — главный архитектор SoC (System-on-Chip) фирмы.

Inverse kinematics

http://212.150.186.143/ikw/ — ссылка на персональную страницу члена нашего клуба јлекса Ўвефельберга — оригинальный алгоритм решени€ задачи Inverse kinematics.

NQC — Not Quite C


„итайте также:


¬акансии:

јктуальное обсуждение

RSS-лента комментариев

ƒавид Ћевин
ƒавид Ћевин
ќт редактора: –аботаешь в »“, остерегайс€ говорить о платформах
ѕроект ЂЌародное —јѕ–-интервьюї

—лучайна€ стать€:

BIM-смета ј¬—. OpenBIM подход к сметной оценке — ¬оронин ».ј., »затов ¬.ј., ѕискунов ё.ј. (16 июн€ 2020)
isicad Top 10

—амые попул€рные материалы

   ‘орумы isicad:

isicad-2010 isicad-2008
isicad-2006 isicad-2004

ќ проекте

ѕриглашаем публиковать на сайте isicad.ru новости и пресс-релизы о новых решени€х и продуктах, о проводимых меропри€ти€х и другую информацию. јдрес дл€ корреспонденции - info@isicad.ru

ѕроект isicad нацелен на

  • укрепление контактов между разработчиками, поставщиками и потребител€ми промышленных решений в област€х PLM и ERP...
ѕодробнее

»нформаци€ дл€ рекламодателей


¬се права защищены. © 2004-2020 √руппа компаний «Ћ≈ƒј—»

ѕерепечатка материалов сайта допускаетс€ с согласи€ редакции, ссылка на isicad.ru об€зательна.
¬ы можете обратитьс€ к нам по адресу info@isicad.ru.