Реклама: | Скачать 182.38 Kb.
|
Содержание Исследование объектной областиВыбор МК. Измерение расстояния. Электромеханические составляющие. Соединение аппаратной части курсовой и ПК. Выбор трехмерного редактора |
Министерство образования Российской Федерации. Московский государственный институт электроники и математики (технический университет). Кафедра информационно-коммуникационных технологий Курсовой проект: «Полусферический пространственный сканер» по дисциплине «Компьютерная Графика» Выполнили: студенты группы С-54 Капитонов И. С. Засдавский Д.С. Преподаватель: Д.А. Королёв Оглавление Введение 3 Исследование объектной области: 3 Выбор МК. 5 Измерение расстояния. 7 Электромеханические составляющие. 10 Соединение аппаратной части курсовой и ПК. 10 Выбор трехмерного редактора 11 ВведениеНемного о трехмерном моделировании. Основа основ любой трехмерной модели - это точка(вершина). Совокупность вершин образует полигон. Любая модель в трехмерной графике состоит из совокупности вершин или полигонов. Для моделирование какого-либо предмета достаточно иметь грамотно составленный чертеж. Если предмет реален то лучшим вариантом будет иметь к нему доступ(возможность детально осмотреть, потрогать и измерить габариты). Любой моделлер будет рад получить устройство при помощи которого он мог бы снимать координаты точек с реальных объектов, иметь своеобразное копирующее устройство. Это сильно облегчит его работу. Наше устройство будет являться точкой отсчета в Декартовой системе координат.Точка в данной системе задается тремя значениями осей (x,y,z). Идеальным вариантом такого устройства будет комплект (ручка, база), где база является точкой отсчета и ресивером, а ручка позиционируеться базой в пространстве. Таким образом база всегда знает координаты кончика ручки в пространстве относительно себя. Таким устройством можно в прямом смысле обводить реальные объекты. ^ На данный момент существует большое количество разнообразных приспособлений для получения трехмерных моделей - Это контактные и бесконтактные 3D сканеры.Контактные 3D-сканеры представляют собой устройства со специальным щупом и набором магнитных энкодеров, который, проходя по контурам объекта, составляет его трёхмерную копию на экране компьютера. Контактные сканеры точны, просты в использовании и прекрасно подходят для объектов с несложной геометрией – например промышленных деталей или автомобилей.Однако их использование затруднено там, где объекты имеют богатую детализацию, а форма контуров вместо чётко очерченных граней включает плавные линии. В этом случае сканирование может занимать неоправданно много времени. Кроме того, контактные сканеры неприменимы там, где принципиально невозможен сам контакт сканирующего узла с объектом. В качестве примера тут можно назвать необходимость сканирования живых объектов и внутренних органов для медицинских нужд или сканирование предметов со сверхмалыми размерами. Тем не менее, в настоящее время контактные сканеры успешно применяются в промышленности, нередко являясь дополнительной опцией различных фрезерных и гравировальных станков. Более универсальный метод 3D-сканирования – бесконтактный. По принципу работы бесконтактные 3D-сканеры весьма похожи на свои «обычные» аналоги. Тут тоже используется эффект отражения волн – в первую очередь световых – от поверхности объекта. Отражённые волны улавливаются специальными сенсорами, анализируются и с помощью различных алгоритмов преобразуются в виртуальное отображение. Однако если обычный сканер имеет дело с плоским объектов (рисунком, текстом) и способ его работы весьма прост, то 3D-сканеры вынуждены использовать сложные механизмы для анализа облика трёхмерной фигуры. По типу сканирования бесконтактные 3D-сканеры делятся на пассивные и активные. Пассивные 3D-сканеры для своей работы используют уже имеющийся окружающий свет, отражение которого от фигуры и анализируется. Фактически, пассивные бесконтактные 3D-сканеры представляют собой фото- или видеокамеру, оснащённую алгоритмами сведения снятого материала в единую объёмную фигуру. Работа этих алгоритмов может требовать как съёмки некоторого числа кадров с определённых ракурсов, так и круговой видеосъёмки с определённой скоростью движения камеры. Основное достоинство пассивных бесконтактных 3D-сканеров – простота их технической реализации, которая компенсируется за счёт сложности алгоритмов обработки и непростой (нередко многоступенчатой) процедуры приготовления объекта к сканированию. Кроме того, пассивные бесконтактные 3D-сканеры выделяются в среднем невысоким качеством итогового результата – а значит, перед пользователем встаёт проблема последующей ручной доработки модели в редакторе. Активные 3D-сканеры, помимо имеющегося окружающего света, генерируют собственный волновой сигнал, который может быть как световым или лазерным, так и, к примеру, звуковым. Кроме того, собственный волновой сигнал активных 3D-сканеров может иметь заданную производителем конфигурацию и форму – которая помогает сканировать объект с повышенной точностью. К примеру, некоторые 3D-сканеры проецируют на поверхность сканируемого объекта сетку (или другую регулярную структуру) из линий белого света. Искажения проекции от наложения на неровности объекта становятся дополнительным источником информации для алгоритмов 3D-сканера. Несмотря на видимую сложность технологий 3D-сканирования, 3D-сканеры с каждым годом получают всё большее развитие. Это связано с массой причин, среди которых можно назвать главные. Во-первых, современному промышленному производству нужны всё более быстрые, эффективные и дешёвые технологии разработки товаров. 3D-сканирование как одно из звеньев цепочки разработки и производства с каждым годом становится всё более востребованным. Во-вторых, торговля, всё больше и больше использующая возможности интернета и стевых маркетинговых технологий, нуждается в постоянном создании 3D-моделей товаров – для рекламных, презентационных нужд и нужд электронных версий каталогов. В-третьих, максимально реалистичными виртуальными копиями реальных объектов сейчас пользуются такие разные по своей сути сферы как мода, медицина, кино. Моделировать реальность предпочитают спецслужбы и службы спасения. Производство 3D-сканеров давно уже перестало быть серией технологических прорывов. В настоящее время 3D-сканеры производятся во многих странах мира тысячью различных компаний: от всемирно известных имён до дебютантов рынка. Точно также перестали привлекать пристальное внимание и различные типы и виды 3D-сканеров. Спокойное отношение к конструкции – следствие того, что все современные устройства так или иначе успешно справляются со своей задачей, в большинстве своём предлагая похожую функциональность и возможности. Тем не менее, иногда тот или иной 3D-сканер какой-нибудь компании становится героем новостной ленты. Среди этих устройств есть и серьёзные модели для промышленного производства, и концептуальные разработки, и примеры выполненных запросов рынка, и творческие вариации инженеров-одиночек. Дело дошло до того, что иметь дорогостоящий 3D сканер стало совсем не обьязательно. Компания Autodesk предоставила возможность любому желающему превратить свой фотоаппарат в 3D сканер, разработав ПО позволяющее получить трехмерную модель по её фотографиям. Для этого достаточно сделать пару десятков фотографий объекта с разных ракурсов и загрузить их в программу Autodesk 123D catch. Программа сама генерирует вершины и полигоны объекта, а продолжительность моделирования напрямую зависит от сложности объекта. Все вычисления происходят в “облаках”. Мало того получаемая модель уже имеет текстуры. ^ В настоящий момент на рынке представлено множество решений для промышленной и бытовой автоматизации в виде отдельных микросхем -- микроконтроллеров. По сути подобные ИМС представляют собой полноценные ЭВМ, выполненные на одном кристалле. В состав микроконтроллеров входят микропроцессор, оперативная память, память программ (flash), опционально, память eeprom, а так же переферийные устройства (контроллеры шин, АЦП, ЦАП, и т.д.). Среди всего множества доступных для изучения микроконтроллеров рассмотрим PIC, AVR, STM32, MSP430, MCS 51, так как по ним можно найти наибольшее число литературы и примеров на обоих (RUS, ENG) языках, и определимся с выбором конкретной архитектуры.
Однозначно выбор сделан в пользу класса Atmel AVR, серии mega из-за их высоких возможностей при невысокой цене, изобилии информации и библиотек, начальных знаний работы с AVR. Изначально стоял выбор между STM32 и AVR, однако, STM32 принципиально не выпускаются в DIP корпусах, что вызывает необходимость проектировать и заказывать печатную плату только для целей курсовой работы. Готовые решения типа STM32VL-Discovery и STM32F4-Discovery, имеемые в наличии не подходят для целей работы ввиду крайней избыточности возможностей контроллеров. Огромный потенциал, который может быть задействован разве что для многопоточной модели программы. В нашей работе используется учебная плата с микроконтроллером Atmega2560, DFRobot Mega 1280/2560. ^ Важнейшим органом аппаратной составляющей курсового проекта является лазерный дальномер -- измеритель расстояния от измерительной головы до исследуемой точки в пространстве. Существует несколько типов измерителей дистанции, однако, лазерный измеритель даёт наиболее точные показания как с точки зрения непосредственного расстояния до точки в пространстве, так и с точки зрения точности нахождения этой точки (лазерный луч, 4 мм, видимый свет). Не стоит приводить характеристики иных способов измерения дистанции (ультразвук, ик датчики) хотя бы по той причине, что их "точка" во много раз больше, и понять, откуда же отразилось их излучение невозможно в случае сложных моделей. Лазерный дальномер в нашей работе использует принцип измерения расстояния по сдвигу фазы отражённого от объекта импульсного лазерного света. Продолжительность импульса находится около 1.3 нс. Практически было установлено, что при измерении расстояния для поверхностей разного цвета из одинакового материала возникает погрешность порядка 1 мм. С практической стороны сложно понять, почему спектральная поглащающая способность материала сдвигает фазу светового сигнала, однако, эту погрешность следует учитывать при расчётах. Возможно, это связано с тем, что показания с измерителя отражённого света (pmd smart pixel) взаимосвязанно усредняются не только во времени, но и в интенсивности принятого светового сигнала. Для целей нашей курсовой работы было необходимо получить лазерный дальномер в виде конечного устройства, которое бы давало на выходе либо цифровой сигнал по известному стандарту (например, шина USART TTL-совместимая, с описанным протоколом) или же аналоговым сигналом, находящимся в прямой зависимости от расстояния, для обработки на АЦП. В процессе изучения объектной области были найдены следующие решения: 0) Собрать дальномер, работающий по принципу триангуляции, но с электронной линейкой http://www.xakep.ru/magazine/xs/026/080/1.asp , сводить лучи в точку руками. Это слабо применимо, но как вариант, если нет других. 1) Купить дальномер с интерфейсом Bluetooth (работать с таким очень сложно). 2) Купить дальномер промышленного назначения за 15 тысяч. Дорого. 3) Заказать из-за границы устройство, работающее по принципу триангуляции типа такого http://www.robotshop.com/parallax-15-122cm-laser-rangefinder-2.html Почти недорого (130 $) и доставка идёт по принципу "когда требуется срочно, опоздает на месяц". 4) Вариант с наибольшим риском испортить мат. часть. Покупаем за 2-3 тыс строительную лазерную "электронную рулетку", находим коннектор LCD дисплея, измеряем напряжения на линиях, устанавливаем соответствия между линиями на коннекторе и сегментами на дисплее (дисплеи в лазерниках до 2-3 тыс. в любом случае будут с 7-сегментными цифрами), это легко увидеть просветив дисплей немножко под углом. Зная, что на сегменты приходят какие-то напряжения, к линиям можно подсоединить полевые транзисторы. По 7 штук на цифру. Один порт контроллера на одну цифру+точку (в случае Atmel AVR). Если случайно не повредить коммутацию к дисплею, работать должно гарантированно. Явный минус -- скорость. Чем "рулетка" дешевле, тем медленнее она работает. Не понятно, когда с дисплея забирать число, да и вообще придётся написать целую библиотеку для распознания надписей на дисплее. 5) Менее рисковый вариант. Достаточно купить дальномер BOSCH DLE 50 или 40. В нём стоит контроллер ATMega169. На мегу заливается альтернативная прошивка (спасибо сообществу, разработавшему её), к выводам на плате распаивается интерфейс UART, подсоединяется либо к FT232RL, либо к другому микроконтроллеру. Команды и форматы данных известны. DLE 50 может получать координаты в большом диапазоне (0.05-50 м) с точностью в 1.5 мм. Однако, измерение дистанции просиходит от 1 до 3 секунд. 6) Аналогично варианту 2: промышленное устройство 01D100 с диапазоном измерений от 0.2 до 10 м, точностью в 1 мм. http://www.ifm.com/products/ru/ds/O1D100.htm Приобрести такой прибор вполне реально по цене в 1-4 тысячи рублей РФ, б/у, из Германии. Подобного рода оборудование продаётся компанией IFM Electronic студентам для исследовательских проектов, и только студентам по низким ценам. Естественно, скидка тоже даётся не просто так -- придётся включить их логотип в презентацию на защите, и рассказать, что за оборудование было приобретено (реклама). Именно этот прибор и был куплен. Характеристики датчика позволяют закрепить его на манипулятор (вес порядка 300 граммов, небольшие габариты), и соответствуют требованиям к выходному сигналу. Измеритель 01D100 способен измерять расстояние в диапазоне от 0.2 до 10 м -- этот диапазон наилучшим образом подходит для целей работы. Для работы датчика необходимо напряжение в диапазоне от 18В до 30В с током не более 200 мА. Оба выода датчика могут быть сконфигурирован:
Для выполнения задач проекта целесообразно использовать дальномер с третьей описанной конфигурацией выводов. Аналоговый выход в таком случае подключается к АЦП микроконтроллера через делитель напряжения 1/2. Более подробно характеристики прибора можно найти в описании на сайте, доступном по ссылке http://www.ifm.com/products/gb/ds/O1D100.htm ^ Выбор механики -- пожалуй, сама сложная часть курсовой работы. Это не микроконтроллер, для которого можно в крайнем случае вытравить плату самостоятельно, сделать преобразователи логических уровней, и т.д. В настоящий момент на рынке присутствует множество различных инженерных решений типа "сервопривод", однако, для частных случаев необходимо индивидуально выбирать комплектацию каждого, а так же заказывать производство кронштейнов для монтажа. Задачей сервопривода является проворачивать механизм на заданный угол, в так же удерживать этот угол под нагрузкой. в простом случае мы можем взять сборку электродвигатель-редуктор, добавить к ней измеритель угла (в простейшем случае, потенциометр), и драйвер. Драйвер -- электронная схема, обеспечивающая получение угла с микроконтроллера, поворот привода, удержание его в этом угле. Подобным образом построен прибор "сервомашина" ("сервомашинка"). Сервомашины часто используются робототехниками-любютелями и авиамоделистами. В авиамоделировании для всех движений самолёта используются исключительно сервомашины. Винты к таким движениям не относятся -- для них есть как специализированные бесколлекторные для винтов, так и ДВС. Собственно устройство подключается при помощи трёх проводов: питание, ноль, сигнальный. Питается устройство по умолчанию от 5В, с током до 3А в зависимости от модели привода. Сигнал на входе -- модулируемый ШИМ. Период ШИМ от 20 до 60 Гц, при этом импульсы шириной около 1 мс означают 0 градусов, 1.5 мс – 90 градусов, а 2 мс – 180. В случае нашей курсовой работы используются сервоприводы DF05BB Standard Servo (5kg) с комплектом кронштейнов DF05BB Tilt/Pan Kit [5kg]. 5кг -- угловая нагрузка. На выносе 10см, груз, весом в 0.3кг будет подниматься на пределе возможности привода. Лазерный дальномер ровно столько и весит. Стоит так же сказать о точности сервомашин. Под нагрузкой люфт механики можно не рассматривать, так как он даёт погрешность сильно меньшую, нежели точность управляющего сигнала. В случае нашей системы, PWM- сигнал имеет 8 допустимых значений. Это означает, что полуокружность (180 градусов) может быть пройдена за 255 шагов, длина каждого составит 0.705 градуса. Для работы с объектами на отдалении более 10м, единичный угол поворота крайне велик. Для решения данной проблемы можно изготовить драйверы обоих сервоприводов самостоятельно, например, на микроконтроллере Atmega8A. На этом МК присутствует 8 10-битных АЦП. Подключив двигатели к n-мостам, можно начать управлять двигателями. Позиционирование так же может осуществляться с помощью установленного в сервоприводе потенциометра, измеряющего угол. Таким образом, точность удастся поднять до шага 0.1757 градусов. На настоящей стадии в этом нет необходимости, однако, комплектующие есть. ^ Соединение с ПК реализуется микросхемой фирмы FTDI модели FT2323RL. Это универсальный адаптер интерфейсов USB<>USART. Выход USART полностью TTL-совместим. Микросхема уже установлена на плате UartSBee v4.0 производителя Seeed Studio. Кроме исследуемой микросхемы, на плате установлен самовосстанавливающийся предохранитель, светодиоды, переключатель, пассивные элементы и элементы коммутации (разъёмы ). Основное применение платы -- подключение модулей ZigBEE к компьютеру по USB, однако, необходимые выводы для подключения к микроконтроллеру так же присутствуют. Использование подобной платы является вынужденной мерой ввиду того, что микросхему FT2323RL невозможно примонтировать на макетную плату с DIP шагом. FT232 предназначена для планарного монтажа с шагом выводов 0.5мм. Выводы RX, TX преобразователя соединяются с выводами TX, RX микроконтроллера. Шины GND так же соединяются. Таким образом мы имеем полноценный двунаправленный канал обмена данными между ПК и микроконтроллером. ^ Современные трехмерные редакторы напичканы тоннами функция для упрощения моделирование, такие как отзеркаливание, сглаживание , создание массивов и многое другое. Например, для копирования станции метрополитена, достаточно будет скопировать около 30-50 точек её фрагмента с одной стороны, так как некоторые станции достаточно однородны. Далее скопированный фрагмент можно зеркально отразить и из получившегося блока сделать массив в длину станции. Затем, скопировав мелкие объекты, такие как скамейки, информационные панели и люстры. Скопированные объекты можно будет вручную расставить по специальным, заранее отмеченным точкам, которые не войдут в состав финальной модели и будут нести вспомогательную функцию. Что касается выбора ПО, то в последние годы устойчивыми лидерами в области 3D моделирования являются коммерческие продукты, такие как:
также и сравнительно новые Rhinoceros 3D, Nevercenter Silo иZBrush. Кроме того, существуют и открытые пакеты, распространяемые свободно: Blender, K-3D и Wings3D. Для реализации курсового проекта был выбран: Blender 3D — свободный пакет для создания трехмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки видео, а также создания интерактивных игр. В настоящее время Blender является проэктом с открытым исходным кодом и развиваеться при активной поддержке Blender Foundation. Открытый исходный код Blender 3D позволяет пользователям самостоятельно расширять функционал программы. Программа очень гибка в использовании, имеет свой собственный файловый браузер, широкие возможности импорта/экспорта, Python API. Наличие API на языке Python важный критерий. Blender имеет очень гибкий GUI который в свою очередь можно модифицировать и дополнять по средствам API. Москва, 2012. |