manual – controlo do movimento - ipcaweb.ipca.pt/idronecup2014/images/idronecup - manual -...

14
Manual – Controlo do Movimento João L. Vilaça Versão 1.0 – 31/1/2014

Upload: phungthuan

Post on 14-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

Manual – Controlo do Movimento

João L. Vilaça

Versão 1.0 – 31/1/2014

Page 2: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 2

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

Índice

1. Sistema de eixos e movimentos possíveis do Drone ............................................................ 3

2. Estratégias para controlo dos movimentos do Drone .......................................................... 3

2.1 Seguir objeto - Câmara Frontal ..................................................................................... 3

2.1.1. Variáveis a controlar no Drone ................................................................................... 4

2.1.2. Equações de controlo .................................................................................................. 4

2.1.3 Método da Classe DroneTrajectoria.cs ........................................................................ 6

2.2 Posicionar-se sobre um objeto - Câmara Inferior ......................................................... 7

2.2.1. Variáveis a controlar no Drone ................................................................................... 7

2.2.2. Equações de controlo .................................................................................................. 8

2.2.3 Método da Classe DroneTrajectoria.cs ........................................................................ 9

2.3 Posicionar-se sobre uma linha – Câmara inferior ......................................................... 9

2.3.1. Variáveis a controlar no Drone ................................................................................. 10

2.3.2. Equações de controlo ................................................................................................ 10

2.3.3 Método da Classe DroneTrajectoria.cs ...................................................................... 10

3. Programa de teste dos métodos de controlo de movimento do Drone ............................. 11

Page 3: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 3

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

1. Sistema de eixos e movimentos possíveis do Drone

2. Estratégias para controlo dos movimentos do Drone

Nas subsecções seguintes são apresentadas três estratégias possíveis para o controlo dos

movimentos do drone.

A biblioteca criada para o controlo dos movimentos do drone chama-se

DroneTrajectoria.cs e pode ser encontrado um exemplo da sua aplicação no projeto

iDroneExemplos

2.1 Seguir objeto - Câmara Frontal

O objetivo deste desafio de controlo é utilizar a imagem da câmara frontal para detetar

um determinado objeto de interesse e mover o drone para uma posição que permita

manter o objeto no centro da imagem e à mesma distância do drone.

Page 4: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 4

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

A figura seguinte ilustra a imagem adquiria pela câmara frontal.

2.1.1. Variáveis a controlar no Drone

• ���_�_���� - Velocidade em Z para controlar a altura do drone – será utilizada a

informação do centroide, em y, do objeto identificado na imagem.

o Objetivo: minimizar a diferença entre ΔY1 e ΔY2.

• ���_��_�_���� - Velocidade de rotação em Z que permite rodar o drone para

esquerda e para a direita – será utilizada a informação do centroide, em x, do objeto

identificado na imagem.

o Objetivo: minimizar a diferença entre ΔX1 e ΔX2.

• ���_�_���� - Velocidade em X para controlar a distância do drone ao objeto – será

utilizada a informação da área do objeto identificado na imagem.

o Objetivo: minimizar a diferença entre área atual do objeto e a área de

referência (que vai estabelecer a distância de referência do drone ao objeto)

2.1.2. Equações de controlo

• ���_�_����

Vel_z_drone � k1x�ΔY1 � ΔY2�

Dimensão_Imagem_Y

Page 5: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 5

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

Onde,

• k1 é uma constante proporcional que permite dar mais ou menos peso à

diferença (ΔY1 - ΔY2), quanto maior for o valor de K1 mais reativo será o

movimento do drone.

• Dimensão_Imagem_Y corresponde à dimensão da imagem em Y (380 pixéis) –

esta normalização permite limitar o resultado da diferença a um valor

compreendido entre -1 e 1.

A velocidade em z do drone poderá ser estabelecida na API com um valor entre

[-1…0…1]. Com valores negativos o drone vai para baixo, com valores positivos sobe, e

com o valor 0 mantem a posição em Z.

• ���_��_�_����

Vel_rot_z_drone = k2 x(ΔX1 − ΔX2)

Dimensão_Imagem_X

Onde,

• K2 é uma constante proporcional que permite dar mais ou menos peso à

diferença (ΔX1 - ΔX2), quanto maior for o valor de K2 mais reativo será o

movimento do drone.

• Dimensão_Imagem_X corresponde à dimensão da imagem em X (640 pixéis) –

esta normalização permite limitar o resultado da diferença a um valor

compreendido entre -1 e 1.

A velocidade de rotação em z do drone poderá ser estabelecida na API com um valor

entre [-1…0…1]. Com valores negativos o drone roda para a esquerda, com valores

positivos roda para direita, e com o valor 0 mantem a orientação em Z.

Page 6: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 6

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

• ���_�_����

Vel_x_drone = k3 x(Area_objecto_imagem − Area_de_referencia)

Area_de_referencia

Onde,

• /012_31_0141015672 – Constante, definida pelo utilizador, que irá estabelecer

a distância de referência do drone ao objeto.

NOTA: Este valor pode ser obtido através da aplicação de software

iDroneExemplos (explicada na secção 3).

• /012_89:16;8_7<2=1< – Área do objeto, identificado na imagem, que

aumenta e diminuiu em função da distância do drone ao objeto. Quanto mais

próximo o drone estiver do objeto maior será o valor desta variável.

• K3 é uma constante proporcional que permite dar mais ou menos peso à

diferença (/012_89:16;8_7<2=1< − /012_31_0141015672), quanto maior

for o valor de K3 mais reativo será o movimento do drone.

A velocidade em x do drone poderá ser estabelecida na API com um valor entre

[-1…0…1]. Com valores negativos o drone recua, com valores positivos aproxima-se, e

com o valor 0 mantem a posição em x.

2.1.3 Método da Classe DroneTrajectoria.cs

//método que determina a direção (em X e Z), orientação (em Z) e peso de cada uma dessas

//componentes, do movimento do drone, em função da posição do centroide e área do

//objeto detetado na imagem.

//centroid - centroide do objeto

//imgsize - dimensão da imagem em X e Y

//objarea_actual - área atual do objeto

//Area_de_referencia - área de referência

public void ObjectTracking1(Point centroid, Point

imgsize, double Area_objecto_imagem, double Area_de_referencia)

Page 7: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 7

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

2.2 Posicionar-se sobre um objeto - Câmara Inferior

O objetivo deste desafio de controlo é utilizar a imagem da câmara inferior para detetar

um determinado objeto de interesse sobre o drone e move-lo para uma posição que

permita manter o objeto no centro da imagem.

A figura seguinte ilustra a imagem adquiria pela câmara inferior.

2.2.1. Variáveis a controlar no Drone

• ���_�_���� - Velocidade em X para controlar o movimento do drone em X – será

utilizada a informação do centroide, em y, do objeto identificado na imagem.

o Objetivo: minimizar a diferença entre ΔY1 e ΔY2.

• ���_>_���� - Velocidade em Y para controlar o movimento do drone em Y – será

utilizada a informação do centroide, em X, do objeto identificado na imagem.

o Objetivo: minimizar a diferença entre ΔX1 e ΔX2.

Page 8: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 8

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

2.2.2. Equações de controlo

• ���_�_����

Vel_x_drone = k1 x (ΔY1 − ΔY2)

Dimensão_Imagem_Y

Onde,

• k1 é uma constante proporcional que permite dar mais ou menos peso à

diferença (ΔY1 - ΔY2), quanto maior for o valor de K1 mais reativo será o

movimento do drone.

• Dimensão_Imagem_Y corresponde à dimensão da imagem em Y (380 pixéis) –

esta normalização permite limitar o resultado da diferença a um valor

compreendido entre -1 e 1.

A velocidade em X do drone poderá ser estabelecida na API com um valor entre

[-1…0…1]. Com valores negativos o drone recua, com valores positivos avança, e com o

valor 0 mantem a posição em X.

• ���_>_����

Vel_y_drone = k2 x(ΔX1 − ΔX2)

Dimensão_Imagem_X

Onde,

• K2 é uma constante proporcional que permite dar mais ou menos peso à

diferença (ΔX1 - ΔX2), quanto maior for o valor de K2 mais reativo será o

movimento do drone.

• Dimensão_Imagem_X corresponde à dimensão da imagem em X (640 pixéis) –

esta normalização permite limitar o resultado da diferença a um valor

compreendido entre -1 e 1.

Page 9: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 9

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

A velocidade de rotação em y do drone poderá ser estabelecida na API com um valor

entre [-1…0…1]. Com valores negativos o drone realiza um movimento para a

esquerda, com valores positivos realiza um movimento para a direita, e com o valor 0

mantem a posição em Y.

2.2.3 Método da Classe DroneTrajectoria.cs

//método que determina a direção e peso dos movimento do drone (em X e Y), em

função da posição do centroide do objeto detetado na imagem.

//centroid - centroide do objeto

//imgsize - dimensão da imagem em X e Y

public void ObjectTracking2(Point centroid, Point imgsize)

2.3 Posicionar-se sobre uma linha – Câmara inferior

O objetivo deste desafio de controlo é utilizar a imagem da câmara inferior para detetar

uma linha e mover o drone para uma posição que permita manter a linha no centro da

imagem.

A figura seguinte ilustra a imagem adquiria pela câmara inferior.

Page 10: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 10

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

2.3.1. Variáveis a controlar no Drone

• ���_>_���� - Velocidade em Y para controlar o movimento do drone em Y – será

utilizada a informação do centroide, em X, da linha identificado na imagem.

o Objetivo: minimizar a diferença entre ΔX1 e ΔX2.

2.3.2. Equações de controlo

• ���_>_����

Vel_y_drone = k1 x(ΔX1 − ΔX2)

Dimensão_Imagem_X

Onde,

• K2 é uma constante proporcional que permite dar mais ou menos peso à

diferença (ΔX1 - ΔX2), quanto maior for o valor de K2 mais reativo será o

movimento do drone.

• Dimensão_Imagem_X corresponde à dimensão da imagem em X (640 pixéis) –

esta normalização permite limitar o resultado da diferença a um valor

compreendido entre -1 e 1.

A velocidade de rotação em y do drone poderá ser estabelecida na API com um valor

entre [-1…0…1]. Com valores negativos o drone realiza um movimento para a

esquerda, com valores positivos realiza um movimento para a direita, e com o valor 0

mantem a posição em Y.

2.3.3 Método da Classe DroneTrajectoria.cs

//método que determina a direção e peso do movimento do drone (em Y), em função

da posição do centroide de uma linha detetada na imagem.

//centroid - centroide do objeto

//imgsize - dimensão da imagem em X e Y

Page 11: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 11

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

public void ObjectTracking3(Point centroid, Point imgsize)

3. Programa de teste dos métodos de controlo de movimento do Drone

O programa desenvolvido para teste dos diferentes métodos de controlo chama-se

iDroneExemplos e pode ser encontrado no projecto com o mesmo nome. Neste é possível:

• Estabelecer a ligação do PC ao drone;

• Selecionar o tipo de câmara que queremos utilizar (frontal ou inferior);

• Testar os três modos de controlo descritos nas secções anteriores:

o Seguir objeto através da câmara frontal;

o Seguir objeto através da câmara inferior;

o Centrar o drone sobre uma linha;

• Selecionar a cor do objeto que se pretende detetar no espaço de cor HSV.

• Descolar o drone;

• Aterrar o drone;

• Aterrar de emergência o drone (esta opção deverá ser utlizada em último recurso,

dado que corta a energia dos motores, o que pode danificar o drone!)

• Reset ao estado do drone;

• Janela com informação do estado do drone, que poderá ser útil para debug:

o Nível da Bateria (quando a bateria apresentar um valor inferior a 15%, apesar

de ser possível ver a imagem da câmara, não será possível acionar os

motores);

o Orientação do drone (yaw, pitch e roll)

o Velocidade ao longo do eixo dos X (resultante da opção de controlo

selecionada);

o Velocidade ao longo do eixo dos Y (resultante da opção de controlo

selecionada);

o Velocidade ao longo do eixo dos Z (resultante da opção de controlo

selecionada);

o Rotação em Z (resultante da opção de controlo selecionada);

o Área do objeto detetado.

Page 12: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 12

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

Instruções de utilização:

1. Antes de executar o programa: Ligar PC à rede wifi disponibilizada pelo drone

“ardrone2_XXXXX” (em definições de wifi do PC)

2. Carregar no botão “Ligar”

3. Ativar a opção “Captura Continua”

Nas duas janelas de cima, deverá ter aparecido, no lado esquerdo a imagem original

capturada da câmara do drone, e no lado direito, o resultado do processamento de

imagem.

4. Selecionar qual a câmara que quer utilizar para controlar os movimentos do drone.

(Carregar no botão “Câmara Superior” ou no botão “Câmara Inferior”)

5. Selecionar a opção de controlo pretendido:

• “Segue Objeto Câmara Frontal” (modo apresentado na secção 2.1 do

documento)

Page 13: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 13

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

• “Segue Objeto Câmara Inferior” (modo apresentado na secção 2.2 do

documento)

• “Centra Linha Câmara Inferior” (modo apresentado na secção 2.3 do

documento)

Page 14: Manual – Controlo do Movimento - IPCAweb.ipca.pt/idronecup2014/images/iDroneCup - Manual - Controlo do... · Com valores negativos o drone recua, com valores positivos aproxima-se,

João L. Vilaça 14

Licenciatura em Engenharia Eletrotécnica e de Computadores

Mestrado em Engenharia Eletrónica e de Computadores

6. Carregar no botão “Descolar”

Esta opção liga os motores do drone e eleva-o até 1 metro de altura.

7. Ativar a opção “Ativar controlo”

Esta opção aplica no drone o controlo de movimento selecionado no ponto 5 (Alerta!

Com esta opção ativa o drone passa a ter um comportamento autónomo, qualquer

bug pode provocar um comportamento imprevisível nos seus movimentos). Com esta

opção desativada é possível ver o comportamento do modo de controlo selecionado

no ponto 5 (na janela de informação do estado do drone), sem que o seu resultado

seja transmitido aos movimentos do drone.

8. Carregar no botão “Aterrar”

Para aterrar o drone e terminar com o seu movimento. Neste modo o drone aterra de

uma forma controlada e segura, desde que não existam objetos sobre ele.

Caso seja necessário uma aterragem forçada, o utilizador deverá carregar no botão

“Emergência” (opção a evitar, pois pode danificar o drone!). Para reativar o drone

deverá carregar no botão “Reset”, caso esta opção não resulte, desligue e volte a ligar

a bateria. Nota: não se esqueça que sempre que desligar o drone da bateria, poderá

ser necessário, voltar a estabelecer a ligação wifi do PC com o drone.