Кстати, вот ссылка на репозиторий: github.com/karfly/balanceball Скоро сдавать этот код, может кто сode-review сделает, а то явно где-то накосячил. Пишите сюда: iskakov@phystech.edu
Поздравляю с успешной реализацией. Для меньшей дерганности можно попробовать команды на сервы сглаживать с помощью экспоненциально взвешенного скользящего среднего. Проще подбирается коэффициент, чем на ПИД, а результат для серв не хуже. P.S Я тот, кто предложил использовать кардан в качестве опоры ))
Блин, вот это я понимаю семестровый а проект, а не та херь которой мы занимаемся по стандартам 80х годов для прохождения сессии. Распиши подробно. Будь добр
А у тебя определяется, что шарик на поверхности лежит? По виду сверху этого не поймёшь. Что будет, если я буду шариком над платформой водить - она будет пытаться загнать шарик в центр, как если бы он находился на поверхности?
То есть вес не и учитывается и съёмки сбоку нет:) Можно положить на платформу кружок из бумаги (даже приклеить его можно;)), и она будет пытаться его сдвинуть в центр. Или водить над поверхностью шариком меньшего размера, чтобы пройти проверку размера изображения.
Я учусь на Факультете Радиотехники и Кибернетики (ФРТК). И да мы напрямую связаны с РТ, с микроконтроллерами в частности. Хотя последнее время все больше и больше времени уделяется программированию
Вопрос: чем захватывались движения шарика? У меня единственная идея дурацкая: Заранее поставить камеру так, чтобы гарантированно захватывалась ТОЛЬКО область площадки(максимально контрастной с шариком), и программно понизить разрешение съемки, допустим, до состояния 100*100 пикселей и повысить контрастность до состояния "черное-белое". Передавать картинку в программу, далее поиском с шагом 4-5 пикселей, как по горизонтали, так и по вертикали, находится любой из пикселей, близких по коду к белому цвету, потом исследовать ближайшие пиксели, определив таким образом границы шарика, а потом находить его центр(среднее арифметическое граничных точек). А как реализовано в программе? Извиняюсь за вопрос, если он глупый/и так понятный, но мне, школьнику, этот момент не особо понятен.
Думаю смысла в убыстрении получения кадров с камеры особо нет, тк серво приводы не такие быстрые, они и так уже на пределе работают. А так, я получаю кадр -> перевожу его до HSV -> пропускаю через маску белого цвета -> считаю моменты изображения -> по моментам считаю координаты. Посмотри чуть выше я выложил ссылку на репозиторий, там весь код
Распберрри немного для других целий создана, если будешь реализовывать алгоритмы управления в железе, для регулирования в реальном времени можно использовать более дешевые и предназначенные для этого решения, где можно все написать на чистом Си, по типу STM32 либо TMS320.
А так все правильно делаешь, супер) связка компьютер для просчета алгоритмов + простецкий микроконтроллер на первом этапе всегда выручает)
Вопрос, по какому интерфейсу общаешься? Последовательный порт, UART обычный, или что-то посложнее по типу CAN?
Для студента круто, респект тебе! Автономную площадку в планах сделать нет? То есть без помощи компьютера. Только вот Atmega не справится уже сама, ARM наверно будет. +5 респект)
В голову сраз raspberry приходит, тем более там opencv нативна. Но у меня ее не было, поэтому все обрабатывается на ноутбуке. Еще причина, почему считается все на ноуте, в том, что это еще и проект по информатике:)
В чём тогда суть? Это же не ново, тоже самое, что построить самому игрушечный вертолёт, и сказать, смотрите как я умею. Это не ново. Утрированно можно назвать изобретением велосипеда
То есть ты еще даже не на третьем (или четвертом, точно не знаю, когда распределение) курсе? Тогда это действительно круто. У меня есть один вопрос по поводу учебы. Необходимы ли практические навыки работы с электроникой при поступлении на ФРТК?