Esse programa roda na BeagleBoard, que possui uma arquitetura diferente da de um PC, e portanto precisa de um compilador especial. Para compilar abra o artigo [Cross-compilando e gravando um programa em C para a BeagleBoard].
Para executar o programa, podendo fazê-lo rodar embarcado no carro por exemplo, veja o artigo [Executando o programa da Guiagem na BeagleBoard]
O guimag-beaglemodule é o programa que roda na BeagleBoard. Ele é responsável pelas seguintes tarefas:
O programa faz uso dos seguintes arquivos de configuração:
[parametros-gerais.txt]
parametros-fisicos.txt
parametros-controle.txt
Um exemplo deles está na pasta inputs/, mas é necessário fazer uma cópia deles para o diretório onde se encontra o binário (bin/, Debug/ ou Release/)
Para efetuar o controle de esterçamento é utilizado um modelo matemático que calcula a posição do veículo:
L: distancia entre as rodas
d: distancia que o veículo vai andar
Estado atual: x, y, theta
alfa: ângulo de esterçamento
Angulo de viragem B = d/L * tan(alfa)
R = L / tan(alfa) = d / B
Caso B >= 0,001
Cx = x - R sen(theta)
Cy = y + R cos(theta)
x' = Cx + R sen(B + theta)
y' = Cy - R cos(B + theta)
theta' = (theta+B) mod 2pi
caso B < 0,001
x' = x + d cos(theta)
y' = y + d sen(theta)
theta' = (theta+B) mod 2pi
Bibliotecas
-------------a
Este programa faz uso da biblioteca RS232 for Linux and WIN32, que está licenciada sob GPLv2.
Wiki: Cálculo do desvio lateral
Wiki: Cross-compilando e gravando um programa em C para a BeagleBoard
Wiki: Executando o programa da Guiagem na BeagleBoard
Wiki: Telemetria
Wiki: communication protocol
Wiki: microcontrolador de aquisição de dados
Wiki: parametros-gerais.txt
Wiki: placa de processamento central
Wiki: vehicle