Как рассчитать углы поворота сервоприводов в моем случае? Здравствуйте. Есть программа, которая берет изображение с камеры (разрешение 640*480) и дает две координаты X равен к примеру 500 а Y = к примеру 250. Тоесть отсчитываем от левого верхнего пикселя 250 пикселей вниз и 500 вправо и это будут координаты пикселя, который является центром окружности, которую я держу в руке. Дальше... Есть определенный центр этого изображения с координатами X,Y = 320, 240 соответственно.
У меня есть ардуинка с сервоприводами. Сервоприводы, вебка и прочее соединяться примерно так www.parkflyer.ru/static/user_files/2013/9/1/IMG_06...
Вопрос. Подкиньте идею, какие математичекие операции надо совершить, чтобы вычеслить углы поворотов сервоприводов, чтобы они повернули камеру в такое положение, чтобы центр изображения совместился с центром окружности. Подкиньте саму идею (а еще лучше готовую библиотеку для c++).
П.С Сервоприводы могут крутиться от 0 до 180 градусов

21 Авг 2019 в 06:16
189 +1
0
Ответы
1

Для решения этой задачи можно использовать теорию треугольников и пропорций.

Найдите расстояние по X и по Y между центром изображения и центром окружности:
deltaX = 500 - 320 = 180
deltaY = 250 - 240 = 10

Найдите максимальное расстояние по X и по Y от центра изображения до края изображения 320,240320, 240320,240:
maxX = maxabs(320−0),abs(320−640)abs(320-0), abs(320-640)abs(3200),abs(320640) = 320
maxY = maxabs(240−0),abs(240−480)abs(240-0), abs(240-480)abs(2400),abs(240480) = 240

Нормализуйте deltaX и deltaY к диапазону от -1 до 1:
normDeltaX = deltaX / maxX
normDeltaY = deltaY / maxY

Теперь вы можете использовать нормализованные значения deltaX и deltaY для управления углами поворота сервоприводов. Например, углы поворота будут:
angleX = normDeltaX 90 + 90
angleY = normDeltaY 90 + 90

Таким образом, сервоприводы будут поворачиваться в зависимости от положения центра окружности относительно центра изображения.

Что касается готовой библиотеки для C++, то, к сожалению, я не могу предложить конкретную библиотеку, так как такие задачи часто решаются индивидуально, но вы можете поискать подходящую библиотеку для управления сервоприводами в Интернете или попробовать написать свой алгоритм управления.

20 Апр 2024 в 13:21
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир