Я работаю в команде старшеклассников по робототехнике (FR C) и пытаюсь выстрелить в цель, отмеченную светоотражающей лентой, на расстоянии от 40 до 2 футов, пусковая установка постоянно стреляет в одно и то же место на больших расстояниях (хорошо), мне просто нужно повернуть бота в положение и изменить скорость стрелка, чтобы поразить цель. Камера считается датчиком и не может быть перепрограммирована. Камера очень низкого разрешения и установлена под углом и над землей. Работа камеры заключается в том, что она постоянно направляет углы к центру ограничительной рамки цели и длины каждой стороны ограничительной рамки для компьютера роботов. Я знаю точные размеры отражающей ленты на цели и соответствующие точки на изображении в пикселях. камера может вывести XYZ-тангаж с вертикальной высотой цели, если я выберу алгоритм использования PNP-решения, который поставляется с использованием размеров отражающей ленты.
Это решение PNP выводит очень шаткие значения, которые изменяются с точностью до фута от цели, когда она стоит на месте, и у меня нет такого запаса погрешности. Я подумал о том, чтобы попытаться повысить точность, и решил, что крен относительно цели постоянен, а высота относительно цели также постоянна, потому что цель не двигается, и мы предполагаем, что робот лежит на земле. Исходя из этих значений и того, что у меня есть из камеры, мне нужно построить свой собственный PNP для решения, чтобы он мог решать в обратном направлении, используя эти значения, чтобы повысить точность остальных значений.
Я провел исследование и столкнулся с Open CV, я не могу использовать это на этой камере, потому что я не могу перепрограммировать камеру.
Как мне запрограммировать решение PNP, учитывая только координаты каждого угла и расстояния между ними в реальном мире для относительного положения к цели с учетом относительного крена и Z (высота цели от камеры), которые я могу обратно разрешить в рыскание Pitch и XY для повышения точности
Я нахожусь в продвинутом классе предкалькуляции и имею базовое c понимание дифференциальных уравнений с производными интегралов, но не имею опыта работы с линейной алгеброй, необходимой для решения уравнений, которые я нашел в Google или для изменения они работают для моей ситуации
Если бы вы, ребята, могли бы помочь мне найти примеры решения основ c решения функции PNP на любом языке программирования и некоторые объяснения всех переменных в матричных уравнениях и того, как я бы подставил мои переменные в этот алгоритм, которые были бы полезны
извините, у меня не так много кода, кроме setroll () и targetheight - robotheight =lativeheight