LusoRobótica - Robótica em Português
Software => Software e Programação => Tópico iniciado por: Marvin em 08 de Março de 2010, 18:19
-
Boas,
Estou a finalizar o meu "weekend project" (durante esta semana ja o coloco aqui) já com 3 fds em cima.
No decorrer do projecto deparei-me com alguns problemas e este é um deles. Como, apenas com uma camara, saber a distancia de um objecto do qual as dimensões são conhecidas.
Ou seja, atraves do processamento de uma imagem, saber a que distancia esta um objecto. Como ja era tarde e tinha pouco tempo, utilizei uma fita metrica, uma tradução pixel - cm mto "manhosa" e depois calculei as distancias e a escala com a ajuda do teorema Pitagoras...
Isto ate parecia bater certo mas o angulo da hipotenusa com a adjacente era "grande" demais para aquilo que eu estava a testar... para o utilizar tinha de o dividir por 3 e bate + - certo.
Fiz aqui um diagrama no paint:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fblog.skundu.net%2Fwp-content%2Fuploads%2F2010%2F03%2Fangulos.png&hash=e21e075ca707341ffbf83c1ed94af3f4cce5f7c7)
Portanto o circulo preto é o "objecto", as linhas verdes são os angulos de visão da imagem e as linhas vermelhas o triangulo de onde preciso de calcular o angulo. O X/Y são conhecidos o Z é deduzido atraves da tal conversão manhosa.
Ha alguma forma mais "cientifica" de fazer isto?
-
Tens de trabalhar em 3d, com x,y,z e usar normas e essas coisas assim, pois teorema de pitágoras só funciona a uma dimensão, ai não garantes um angulo de 90graus entre os catetos
-
Por que não tentas lei dos Senos, que serve para todo triângulo?
Com esta lei, se tiveres um ângulo e o valor do lado oposto ao mesmo, podes com ajuda do lado aposto do ângulo desejado calcular o ângulo.
Li o problema de outra forma e pensei: Para que estás a calcular todos esses angulos? Podes fazer isso apenas com escalas! Escala real x Escala da imagem.
-
Obrigado pelas sugestões.
Tens de trabalhar em 3d, com x,y,z e usar normas e essas coisas assim, pois teorema de pitágoras só funciona a uma dimensão, ai não garantes um angulo de 90graus entre os catetos
Pois tenho de fazer essa aproximação 3D, mas da forma como coloquei esta a funcionar + - com um erro minimo.
Por que não tentas lei dos Senos, que serve para todo triângulo?
Com esta lei, se tiveres um ângulo e o valor do lado oposto ao mesmo, podes com ajuda do lado aposto do ângulo desejado calcular o ângulo.
Li o problema de outra forma e pensei: Para que estás a calcular todos esses angulos? Podes fazer isso apenas com escalas! Escala real x Escala da imagem.
Vou tentar a lei dos senos assim que tiver um pouco de tempo, ver se o erro é inferior.
Preciso dos angulos para indicar qual a posição correcta de um servo, dai esta trabalheira toda. Em relação ás escalas é isso mesmo que preciso de fazer mas não estou a conseguir muito bem. Vou investigar mais.
-
que tal steppers? têm resolução maior :)