Atividade #782
FechadaGerar o evento de robô travado
Descrição
Temos um problema no Kalman quando algum obstáculo está impedindo o movimento do robô, pois ele leva em conta a velocidade mandada para o robô. Como o robô está travado devido à algum obstáculo, temos que ele está acelerando mas não está se mexendo, fazendo com que as aproximações feitas pelo Kalman fiquem erradas. Também temos um problema quando existem robôs desligados em campo, pois da mesma forma o comando de velocidade existe mas eles não se mexem.
A tarefa é gerar um evento que diga se o robô está travado ou não e corrigir o evento que diz se o robô está ou não respondendo.
Arquivos
Atualizado por Lucas Germano há mais de 6 anos
- Atribuído para ajustado para Lucas Germano
- Versão ajustado para RoboCup 2018
Atualizado por Lucas Germano há mais de 6 anos
- Arquivo CodeCogsEqn (1).png CodeCogsEqn (1).png adicionado
As análises foram feitas analisando o deslocamento real do robô e o deslocamento previsto pelas velocidades enviadas pelo controle de trajetória.
![](CodeCogsEqn (1).png)
O intervalo de tempo escolhido para verificar se o robô está travado ou não é de 0,1 segundo e o valor de threshold foi definido com base nas observações feitas quando o robô está travado. Quando o robô se movimenta normalmente, a diferença entre o deslocamento previsto e o deslocamento real é próximo de zero.
Foi adicionado no cluster de eventos da SSLView 1 vetor de clusters que indicam o ID do robô travado e o erro relativo dos deslocamentos. Além de 1 booleano que indica que algum robô está travado.
Atualizado por Nicolas Oliveira há mais de 6 anos
Não seria melhor verificar esse evento pelo erro relativo. Assim, por exemplo, se tivermos um erro acima de 50% (valor aleatório) o robô esta travado. Pq para deslocamentos pequenos poder ser q esse limiar 'E' não detecte o evento.
A ideia capitão, seria usar esse erro relativo para aumentar a covariância do erro no kalman.
Atualizado por Lucas Germano há mais de 6 anos
- Situação alterado de Em andamento para Resolvida
Essa implementação não funcionou pq quando o robô se movimentava o erro relativo ficava variando aleatoriamente e não nos davam uma ideia precisa do que estava acontecendo, tentamos colocar variar o valor do threshold mas tbm não deu certo. O nicolas implementará uma ideia que o Cap Renault nos deu, que é analisar quando se deve usar a velocidade mandada no robô no Kalman, vamos tentar fazer o robô usar somente quando a derivada da velocidade for maior que um certo valor (que resume a maioria dos casos quando o robô não está parado).
Atualizado por Gabriel Borges da Conceição há mais de 6 anos
- Situação alterado de Resolvida para Fechada