Michael_K, я тоже несколько страниц сказал, что потрошить комплектующие я не буду, во всяком случае пока не защищусь, потом риск все запороть к чертовой матери уже не будет столь важен
А комиссия меня не особо волнует
Расчеты.1) если говорить о точности вычислений в программе, то она определяется только операциями с плавающей точкой, типы операндов - float, представляемые 32 битами. я толком не разобрался в представлении таких чисел, но примерно представляю, что точность плавает в сторону уменьшения в зависисимости от дальности числа от его нормализованного представления. сильно маленькие и сильно большие числа у меня нигде в расчетах не фигурируют (стараюсь учитывать промежуточные расчеты, формируемые компилятором). еще плюс сама реализация математики тоже влияет, но в целом, давайте полагать, что погрешности пренебрежимо малы. расчета не вышло, попробую в следующем пункте
2) неточность распознавания объекта: положение центра и размера при разрешении картинки 160х120
это выясняется путем проведения экспериментов, расчет методом прямых вычислений. Благо, на первом курсе я написал прогу (для лаб по физике), поэтому я мне не составило труда провести 25 измерений. Коффициент надежности я принял 0.9 (так я оценил свое распознавание) Расхождение в пикселях между моим распознаванием и распознаванием робота я делю на диагональ разрешения (200 пикселей), чтобы получить относительную погрешность. результаты:
средняя отн. погрешность положения - 0,0086 (погрешность измерения 29,07%)
средняя отн. погрешность размера - 0,006 (погрешность измерения 41,67%)
3) неточности определения координат объекта в системе координат камеры-схвата
проекция изображения перспективная, поэтому с увеличением расстояния до объекта его размер уменьшается медленнее, а разрешение картинки неизменное, а значит погрешность размера быстро растет, что приводит к такому же быстрому увеличению вычисляемого расстояния до объекта. когда объект очень далеко, погрешность крайне большая, однако это не имеет большого значения, так как стоит задача тянуться к объекту, по мере приближения точность растет, поэтому рассмотрим погрешность, когда объект находится в плоскости, параллельной камере и пересекающей точку захвата (это такая точка перед схватом, где должен оказаться объект, после чего робот на него кидается
), т.е. когда точность имеет большую важность.
внизу показан схват, О3 - центр схвата, А - точка захвата, сверху упрощенная оптическая система камеры
<здесь мне что-то не хочется считать>
4) неточность определения положения сервы по сигналу с потенциометра
1. погрешность значения при пересчете в обобщенные координаты по модели маниплятора
значение измеряется 10-битным АЦП, но ввиду того, что АЦП встроенный, отбрасываем 2 бита мусора, тем более в них колебания сильные от дергания серв (движение не блещет плавностью), получаем 8-битное значение с дрожанием примерно в 1 бит, пускай. но диапазон фактических значений с потенциометра выходит в весьма узком пределе, обобщенные координаты имеют больший диапазон. я эту погрешность, кстати считал. заново лень, скажу сразу результат, который запомнил: ~1.5 градуса.
2. актуальность значения (запаздывание)
сигналы проходят через RC-цепочку (фильтр помех), запаздывание составляет примерно 1мс, во всяком случае по расчетам постоянной времени
5) результирующая неточность определения положения объекта
в этом расчете участвуют значения текущих положений серв, погрешности которых, указанных ранее, составляют 1.5 градуса.
это большой расчет, а мне это уже порядком надоело, поэтому быстренько грубо прикинем линейную погрешность: если в плоскости поворота всей платформы, то на расстоянии от начала координат до объекта в 10см, получаем 10*tg(1.5)=0,5см, а если в вертикальной плоскости, то берем 2 угла (2-е и 3-е звено вращаются) и складываем их, получаем 3 градуса...
6) реакция системы управления (ее динамика)
1. слежение
получение кадра с камеры длится 100мс, вычисления вплоть до выдачи управления - 400-600мс, итого около полсекунды. чтобы обхект, движущийся со скоростью не более 1 см/с, не покинул за это время кадр, он должен находиться в определенной центральной зоне обзора, относительный размер которой (по отношению к полной зоне обзора, в процентах) может дать представление о маневренности системы. посчитаем:
полный обзор камеры +-60 градусов
возьмем наихудшее направление движения объекта - параллельное плоскости камеры. тогда можно считать, что объект вращается вокруг, нас интересует случай, когда он на расстоянии точки схвата от камеры, т.е. 10см, это будет радиус вращения, посчитаем угловую скорость: 0,01 м/с / 0,1 м = 0,1 рад/с = 6 градусов/с. значит за полсекунды объект уйдет на 3 градуса, значит он должен находиться в рамках 60-3=57 градусов
57/60 = 95% - в такой зоне обзора он должен находиться, чтобы не потеряться. демократично
2. захват
захват происходит примерно за 50мс
7) динамика манипулятора
ну ее нафик... все, надоело.
))
В-общем, я привел основные косяки, но самый влиятельный из них - динамику манипулятора - я не расчитал. Если все по полной считать, то жутко сложно, теперь я сам в этом убедился, когда попробовал
Ну, по крайней мере, я основные цифры привел, можно ориентироваться