Skip to content

Potential Field Line Field

Alexsandro edited this page Oct 30, 2020 · 8 revisions

Campos Potenciais

Parametros:

Parametro Função
target (x, y) centro do campo potencial, pode ser uma função dinâmica, em metros
decay Função matemática, preferencialmente deve ter domínio e imagem entre [0, 1]
theta Angulo, em radianos, usado para definir o angulo da reta
line_size Tamanho da reta apartir do centro em m/s, alem desse tamanho o campo não tem efeito
line_dist Tamanho do campo potencial em m/s em direção a reta onde a função decaimento tem efeito, alem desse tamanho o robo é atraido com velocidade maxima
inverse Campo opcional, true para que o campo seja de repulsão, por padrão é false e o campo sera de atração
line_dist_max Tamanho do campo potencial em m/s em direção a reta onde o campo funciona, alem dele o robo não sofre efeito do campo
line_size_single_side Campo opcional, true para que a linha seja projetada para apenas um direção em relação ao ponto target. Por padrão sera projetado nas duas direções
line_dist_single_side Campo opcional, true para que o campo da linha seja projetada para apenas um direção em relação ao ponto target. Por padrão sera projetado nas duas direções
multiplier Velocidade máxima desse comportamento, em m/s
field_limits Aplica as dimensoes do campo, caso você deseje que a função não funcione fora do campo (por exemplo, dentro dos gols)

Campo de Line (LineField)

  • Comportamento na simulação

  • Line Field

  • Visualização do Campo Potencial

  • Line Field

  • Código

        self.field.add_field(
            algorithims.fields.LineField(
                self.match,
                target = (0.75, 0.65),
                theta = math.pi/2,
                line_size = 0.5,
                line_dist = 0.25,
                line_dist_max = 0.5,
                decay = lambda x: x,
                multiplier = 0.5
            )
        )