Robótica
Licenciatura em Engenharia Electrotécnica e de Computadores
Licenciatura em Engenharia Biomédica
Licenciatura em Engenharia Informática e de Computadores
2008/2009
Departamento de Engenharia Electrotécnica e de Computadores
Área Cientı́fica de Sistemas, Decisão e Controlo
o
2 Projecto
Introdução ao planeamento de caminhos,
navegação e controlo de robots móveis
1
Objectivos
Este trabalho tem como objectivos:
(i) a familiarização com a descrição cinemática, de robots com tracção diferencial,
(ii) a introdução ao planeamento de caminhos e navegação em ambientes de baixa complexidade,
(iii) a motivação para o estudo da programação de robots baseada em comportamentos.
2
Estrutura do trabalho
Pretende-se comandar um robot móvel de tipo uniciclo através de um computador utilizando uma
ligação via porta série. O comando do robot será suportado exclusivamente no modelo cinemático,
não devendo ser considerados quaisquer aspectos relacionados com a dinâmica do mesmo, e.g., efeito
da massa de cada um dos troços no movimento. No entanto é de notar que a dinâmica pode influenciar
o comportamento dos robots de forma evidente, e.g., o nı́vel de carga das baterias de alimentação dos
motores influencia a forma como estes respondem.
O trabalho é realizado em MatlabT M e subdivide-se em três módulos base:
1. Determinação e simulação da cinemática diferencial do robot móvel;
2. Planeamento e geração de caminhos e navegação num meio envolvente estruturado;
3. Controlo de seguimento de caminhos (condução), evitando obstáculos inesperados.
O trabalho deve ser resolvido no robot móvel ActivMedia Pioneer III DXe. Este robot possui uma
cinemática caracterizada pela existência de 2 rodas colocadas em lados opostos de forma a que o
movimento de translação do robot é conseguido quando ambas rodam no mesmo sentido. A rotação
do robot é conseguida quando as rodas rodam com velocidades diferentes (por exemplo, uma rotação
pura consegue-se com as rodas rodando com a mesma velocidade, em módulo, mas com sentidos
diferentes.
Robots móveis ActivMedia Pioneer III DXe
Figura 1: Robots móveis de tipo uniciclo
O robot Pioneer pode ser controlado através de um computador portátil com o qual comunica através
de uma ligação série RS-232.
Para o robot Pioneer é disponibilizado um conjunto de M-funções MatlabT M que permitem, por
exemplo, especificar os valores das variáveis de controlo (velocidades das rodas linear e/ou angular),
1
ler a posição estimada (por odometria) no referencial do mundo e/ou as medidas efectuadas pelos
sonares (no caso do Pioneer). O Apêndice A detalha a lista de M-funções disponı́veis para o robot
Pioneer.
2.1
Planeamento e geração de caminhos num ambiente estruturado
No Apêndice B está representada a planta de parte do piso 5 da Torre Norte, contemplando os
corredores em redor da coluna central (elevador) e as entradas das várias salas, incluindo o LSDC4.
Trata-se de um meio estruturado, dado que tem uma configuração geometricamente regular e pontos
de referência (por exemplo as paredes dos corredores ou as portas das salas).
Para o robot Pioneer, utilize este mapa para planear, usando um dos 2 métodos leccionados nas
aulas da disciplina, um caminho, representado em FW , que leve da entrada do LSDCS4 até à sala
de laboratório LSDC1, visitando de passagem o átrio do elevador. Especificamente, os dois métodos
lecionados nas aulas são os seguintes:
1. Planeamento de trajectórias clássico baseado em “via points” e usando interpolação (splines/pchip). Note que o sistema de geração de caminhos deverá interpolar um caminho usando
as configurações inicial, final e de via, que permita ao robot cumprir a missão sem colidir com
nenhum dos obstáculos presentes no mapa. A forma de interpolação do caminho é livre, mas
deve ser cuidadosamente justificada.
2. Planeamento de trajectórias baseado em “artificial potentials”.
Portanto, um dos objectivos do trabalho consiste na implementação de um dos métodos e justificação
da escolha do método.
A sequinte informação será dada:
• o mapa do ambiente considerado,
• a configuração inicial do robot nesse mapa,
• a configuração final desejada para o robot (especificada pelo utilizador)
2.2
Seguimento de um caminho
Existem diversos métodos para deslocar um robot móvel de uma dada configuração (posição e orientação) inicial para uma configuração final desejada.
Se ao sistema de condução for indicado como objectivo apenas a configuração final desejada, ao
caminho seguido pelo robot enquanto se dirige para o objectivo pode ser qualquer. Esta situação
pode conduzir a trajectórias de colisão com obstáculos (mesmo os conhecidos a priori) e portanto não
é, em geral, aceitável.
Um objectivo de controlo preferı́vel consiste em fazer o robot seguir um caminho de referência previamente gerado, garantindo ainda a não colisão com obstáculos inesperados (assumindo-se que o
caminho planeado já evita os obstáculos conhecidos). O caminho de transição da configuração inicial
para o caminho de referência deve ser neste caso o mais curto possı́vel.
2
2.2.1
Cinemática diferencial do uniciclo
Existem várias metodologias de projecto de controladores de condução para robots uniciclo. Neste
projecto propõe-se uma abordagem simples, de tipo modelo inverso, utilizando o modelo da cinemática
diferencial do robot.
A Figura 2 ilustra a definição dos principais parâmetros do robot uniciclo que permitem obter o
modelo diferencial para a cinemática.
yW
FW
YR
FR
ω
l
ω
y
d
XR
v
θ
h
ωr
x
xW
Figura 2: Parâmetros cinemáticos do uniciclo
A relação entre os diferentes parâmetros pode ser expressa matricialmente da seguinte forma:
W
R
ẋ
v
v
 ẏ  = J(θ) ẋ
= J(θ)
= R(θ)K
ω
ω
θ̇
θ̇

(1)
onde J(q) é uma matriz jacobiano e R(θ) é uma matriz de rotação em torno do eixo Z (note que os
referenciais FW e FR têm sempre os eixos Z com a mesma orientação) que relaciona as velocidades
linear, v, e angular, ω, expressas no referencial do robot, FR , com as velocidades ẋW , ẏ W , θ̇W expressas
no referencial do mundo, FW .
Em condições ideais (que vamos assumir) o atrito faz com que ẏ R = 0, ou seja, o robot não sofre qualquer deslocamento lateral. Numa situação real as expressões deveriam ser calculadas contemplando a
possibilidade de ẏ 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 combinações de v e ω, i.e., para diferentes tipos
de comportamentos elementares.
Represente graficamente (numa janela de visualização) o movimento do robot. Note que se pretende
apenas o mapa da evolução ao longo do tempo da posição (xW , y W ), e orientação, θW , do robot.
Importante: Os referenciais indicados na Figura 2 não coincidem necessariamente com os assumidos
pelos comandos reconhecidos pelos robots. É parte do processo de identificação da cinemática determinar quais os referenciais assumidos pelos comandos de movimento. Por exemplo, pode determinar
3
o sentido do eixo de rotação de ambos os robots simplesmente verificando qual a direcção de rotação
quando se executa uma trajectória com v = 0 e ω = cte.
2.2.2
O sistema de controlo de condução
Dado um caminho a seguir, é necessário assegurar que o robot converge para o mesmo e não mais o
abandona, mesmo na presença de erros diversos, nomeadamente de odometria, i.e., erros no sistema
de localização baseado na integração dos caminhos percorridos por cada roda.
A Figura 3 esquematiza a estrutura do um controlador possı́vel, em cadeia fechada, baseado na técnica
de modelo inverso.
Figura 3: Estrutura do esquema de controlo para seguimento de um caminho
Na figura, xd (t)W , yd (t)W , θd (t)W representa a configuração
a seguir no instante t, ou seja, o caminho
W
W
W
de referência no instante t, e x(t) , y(t) , θ(t)
a configuração onde se encontra o robot nesse
instante. O bloco detector de obstáculos introduz alterações locais ao caminho gerado, sempre que
um obstáculo inesperado é detectado, de forma a evitar a colisão com esse obstáculo. Determine
uma estratégia para evitar obstáculos, baseada no princı́pio de alteração local do caminho gerado,
e implemente-o, utilizando as leituras dos sonares (Pioneer) para detectar os obstáculos. O bloco
C(θ) é uma matriz de dimensão 3x3 que deve ser dimensionada para que o controlador funcione
convenientemente, isto é, para que o veı́culo se aproxime do caminho de referência sempre que o erro
for diferente de zero. Dimensione esta matriz baseado em intuição geométrica do problema e procure
ajustar o valor dos seus parâmetros simulando o controlo em cadeia fechada do robot no seguimento
dos caminhos planeados na Secção 2.1.
Sugestão: Antes de testar o desempenho da arquitectura desenvolvida no robot real é fundamental
avaliar o desempenho do sistema através de simulação.
3
Resultados esperados
• M-file (ou conjunto de M-files) para comando do robot escolhido, nomeadamente simulando a
cinemática do uniciclo e o seguimento de caminhos, e contendo os algoritmos de seguimento do
caminho gerado, evitando obstáculos inesperados, para o robot real.
• Relatório final, detalhando todas as opções de projecto, nomeadamente a determinação dos parâmetros
4
da cinemática do robot, os algoritmos de planeamento e geração de caminhos, os parâmetros do
controlador de condução e o algoritmo para evitar obstáculos inesperados.
O relatório deverá definir um conjunto de experiências capaz de mostrar o desempenho das
aplicações desenvolvidas bem como gráficos com as trajectórias obtidas em várias situações.
O relatório poderá ter o máximo de 10 páginas A4, singlespace, 12pt. Do relatório deverá ainda
constar, em apêndice (extra àquele número de páginas), um pequeno manual técnico descrevendo
os procedimentos para utilização da(s) M-file(s).
• Deverá ser entregue um CD-ROM contendo o relatório (em formato pdf ou doc) e o código fonte
da(s) M-file(s). Se preferir, o aluno poderá enviar o relatório e o código fonte da(s) M-file(s)
para o Professor Gustavo Carneiro.
A
The Pioneer mobile platform
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)
[ŝ1 · · · ŝn ] = pioneer read sonars()
[x̂ ŷ θ̂] = pioneer read odometry()
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
Tabela 1: Main commands for the Pioneer robot
Parameter
sp
v
ω
δ
d
x̂
ŷ
θ̂
ŝi
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
Tabela 2: Meaning of the parameters involved in the Pioneer control
Table 1 illustrates the main commands available for the control of the robot. Table 2 explains the
meaning of the parameters.
5
The utilization of the Pioneer robot requires the following steps:
1. In Matlab, create a serial port object using the command serial port start;
2. Initialize the robot using the command pioneer init ;
3. Create a control algorithm, using the functions described in table 1, to obtain odometry and
sonar readings, and establishing the movement control signals;
4. Close the robot interaction using the command pioneer close.
6
B
Planta do piso 5 da Torre Norte
Dimensões em cm
7
Download

Segundo Projecto