2008/2009
Departamento de Engenharia Electrotecnica e de Computadores
Area
Cientfica de Sistemas, Decisao e Controlo
2 Projecto
Introducao ao planeamento de caminhos,
navegacao e controlo de robots moveis
Objectivos
Estrutura do trabalho
Pretende-se comandar um robot movel de tipo uniciclo atraves de um computador utilizando uma
ligacao via porta serie. O comando do robot sera suportado exclusivamente no modelo cinem
atico,
n
ao devendo ser considerados quaisquer aspectos relacionados com a dinamica do mesmo, e.g., efeito
da massa de cada um dos trocos no movimento. No entanto e de notar que a dinamica pode influenciar
o comportamento dos robots de forma evidente, e.g., o nvel de carga das baterias de alimentacao dos
motores influencia a forma como estes respondem.
O trabalho e realizado em MatlabT M e subdivide-se em tres modulos base:
1. Determinacao e simulacao da cinem
atica diferencial do robot movel;
2. Planeamento e geracao de caminhos e navegacao num meio envolvente estruturado;
3. Controlo de seguimento de caminhos (conducao), evitando obstaculos inesperados.
O trabalho deve ser resolvido no robot movel ActivMedia Pioneer III DXe. Este robot possui uma
cinem
atica caracterizada pela existencia de 2 rodas colocadas em lados opostos de forma a que o
movimento de translacao do robot e conseguido quando ambas rodam no mesmo sentido. A rotacao
do robot e conseguida quando as rodas rodam com velocidades diferentes (por exemplo, uma rotacao
pura consegue-se com as rodas rodando com a mesma velocidade, em modulo, mas com sentidos
diferentes.
ler a posicao estimada (por odometria) no referencial do mundo e/ou as medidas efectuadas pelos
sonares (no caso do Pioneer). O Apendice A detalha a lista de M-funcoes disponveis para o robot
Pioneer.
2.1
Planeamento e gerac
ao de caminhos num ambiente estruturado
No Apendice B est
a representada a planta de parte do piso 5 da Torre Norte, contemplando os
corredores em redor da coluna central (elevador) e as entradas das varias salas, incluindo o LSDC4.
Trata-se de um meio estruturado, dado que tem uma configuracao geometricamente regular e pontos
de referencia (por exemplo as paredes dos corredores ou as portas das salas).
Para o robot Pioneer, utilize este mapa para planear, usando um dos 2 metodos leccionados nas
aulas da disciplina, um caminho, representado em FW , que leve da entrada do LSDCS4 ate `a sala
de laboratorio LSDC1, visitando de passagem o atrio do elevador. Especificamente, os dois metodos
lecionados nas aulas sao os seguintes:
1. Planeamento de traject
orias cl
assico baseado em via points e usando interpolacao (splines/pchip). Note que o sistema de geracao de caminhos devera interpolar um caminho usando
as configuracoes inicial, final e de via, que permita ao robot cumprir a missao sem colidir com
nenhum dos obstaculos presentes no mapa. A forma de interpolacao do caminho e livre, mas
deve ser cuidadosamente justificada.
2. Planeamento de traject
orias baseado em artificial potentials.
Portanto, um dos objectivos do trabalho consiste na implementacao de um dos metodos e justificacao
da escolha do metodo.
A sequinte informacao sera dada:
o mapa do ambiente considerado,
a configuracao inicial do robot nesse mapa,
a configuracao final desejada para o robot (especificada pelo utilizador)
2.2
Seguimento de um caminho
Existem diversos metodos para deslocar um robot movel de uma dada configuracao (posicao e orientacao) inicial para uma configuracao final desejada.
Se ao sistema de conducao for indicado como objectivo apenas a configuracao final desejada, ao
caminho seguido pelo robot enquanto se dirige para o objectivo pode ser qualquer. Esta situacao
pode conduzir a traject
orias de colisao com obstaculos (mesmo os conhecidos a priori) e portanto n
ao
e, em geral, aceit
avel.
Um objectivo de controlo prefervel consiste em fazer o robot seguir um caminho de referencia previamente gerado, garantindo ainda a n
ao colisao com obst
aculos inesperados (assumindo-se que o
caminho planeado j
a evita os obstaculos conhecidos). O caminho de transicao da configuracao inicial
para o caminho de referencia deve ser neste caso o mais curto possvel.
2
2.2.1
Cinem
atica diferencial do uniciclo
Existem varias metodologias de projecto de controladores de conducao para robots uniciclo. Neste
projecto prop
oe-se uma abordagem simples, de tipo modelo inverso, utilizando o modelo da cinem
atica
diferencial do robot.
A Figura 2 ilustra a definicao dos principais par
ametros do robot uniciclo que permitem obter o
modelo diferencial para a cinem
atica.
yW
FW
YR
FR
XR
xW
Figura 2: Par
ametros cinem
aticos do uniciclo
A relacao entre os diferentes par
ametros pode ser expressa matricialmente da seguinte forma:
W
R
x
v
v
y = J() x
=
J()
=
R()K
(1)
onde J(q) e uma matriz jacobiano e R() e uma matriz de rotacao em torno do eixo Z (note que os
referenciais FW e FR tem sempre os eixos Z com a mesma orientacao) que relaciona as velocidades
linear, v, e angular, , expressas no referencial do robot, FR , com as velocidades x W , y W , W expressas
no referencial do mundo, FW .
Em condicoes ideais (que vamos assumir) o atrito faz com que y R = 0, ou seja, o robot n
ao sofre qualquer deslocamento lateral. Numa situacao real as expressoes deveriam ser calculadas contemplando a
possibilidade de y R 6= 0.
Calcule a matriz R() e, a partir desta, escreva uma M-file Matlab que permita simular o movimento
do robot expresso no referencial FW do mundo.
Teste o comportamento do simulador para diversas combinacoes de v e , i.e., para diferentes tipos
de comportamentos elementares.
Represente graficamente (numa janela de visualizacao) o movimento do robot. Note que se pretende
apenas o mapa da evolucao ao longo do tempo da posicao (xW , y W ), e orientacao, W , do robot.
Importante: Os referenciais indicados na Figura 2 n
ao coincidem necessariamente com os assumidos
parte do processo de identificacao da cinem
pelos comandos reconhecidos pelos robots. E
atica determinar quais os referenciais assumidos pelos comandos de movimento. Por exemplo, pode determinar
3
o sentido do eixo de rotacao de ambos os robots simplesmente verificando qual a direccao de rotacao
quando se executa uma traject
oria com v = 0 e = cte.
2.2.2
Dado um caminho a seguir, e necessario assegurar que o robot converge para o mesmo e n
ao mais o
abandona, mesmo na presenca de erros diversos, nomeadamente de odometria, i.e., erros no sistema
de localizacao baseado na integracao dos caminhos percorridos por cada roda.
A Figura 3 esquematiza a estrutura do um controlador possvel, em cadeia fechada, baseado na tecnica
de modelo inverso.
Resultados esperados
M-file (ou conjunto de M-files) para comando do robot escolhido, nomeadamente simulando a
cinem
atica do uniciclo e o seguimento de caminhos, e contendo os algoritmos de seguimento do
caminho gerado, evitando obstaculos inesperados, para o robot real.
ametros
Relatorio final, detalhando todas as opcoes de projecto, nomeadamente a determinacao dos par
4
da cinem
atica do robot, os algoritmos de planeamento e geracao de caminhos, os par
ametros do
controlador de conducao e o algoritmo para evitar obstaculos inesperados.
O relat
orio dever
a definir um conjunto de experiencias capaz de mostrar o desempenho das
aplicacoes desenvolvidas bem como graficos com as traject
orias obtidas em varias situacoes.
O relat
orio poder
a ter o maximo de 10 p
aginas A4, singlespace, 12pt. Do relat
orio devera ainda
constar, em apendice (extra `
aquele n
umero de p
aginas), um pequeno manual tecnico descrevendo
os procedimentos para utilizacao da(s) M-file(s).
Devera ser entregue um CD-ROM contendo o relat
orio (em formato pdf ou doc) e o c
odigo fonte
da(s) M-file(s). Se preferir, o aluno poder
a enviar o relat
orio e o c
odigo fonte da(s) M-file(s)
para o Professor Gustavo Carneiro.
The Pioneer is a differential drive traction vehicle developed by ActivMedia Robotics, which body
contains 3 batteries, 2 DC motors for independent traction, a ring of 16 sonars, and control electronics.
The robot interfaces the outside via a RS232 serial port.
M-file
sp = serial port start()
serial port stop(sp)
pioneer init(sp)
pioneer close(sp)
pioneer set controls(sp, v, )
pioneer set heading(sp, )
pioneer set translation(sp, d)
[
s1 sn ] = pioneer read sonars()
= pioneer read odometry()
[
x y ]
Description
Initializes serial port
Closes serial port
Starts communication with the robot, and enables
the motors
Disables the motors, and stops communications
Sets linear and angular velocities
Makes the robot turn to an absolute angle w.r.t.
odometry
Makes the robot move straight ahead a given distance
Reads the last updated sonar readings
Reads the last updated odometry estimate
d
x
si
Meaning
Serial port Matlab object
Linear speed of the robot
Angular speed of the robot
Angle (absolute heading)
Distance (relative, straight line)
Position x coordinate estimate
Position y coordinate estimate
Heading estimate
Sonar reading for the ith element
Dimens
oes em cm