Buscar

Seminário 3 - OMPL

Prévia do material em texto

Sistemas Robóticos Autônomos 
Guilherme Pereira Marchioro Bertelli 
Isaac Diego Tavares de Souza 
Rodrigo José Araújo Damasceno 
Natal, dezembro de 2013. 
1 
 Nova biblioteca de algoritmos de planejamentos de 
caminhos baseados em amostragem; 
 
 Construída de tal forma que permite que o usuário possa 
resolver com facilidade uma variedade de problemas 
relativos ao planejamento de movimento; 
 
 Disponível para uso através do ROS (Robot Operating 
System). 
 
 
2 
 Biblioteca focada essencialmente em 3 públicos: 
 Pesquisadores na área de planejamento de movimentos; 
 Professores de robótica; 
 Usuários finais na indústria de robótica. 
3 
 Facilita a contribuição de pesquisadores da área; 
 
 Os códigos são disponibilizados sob a licença Berkeley 
Software Distribution, que é uma das menos restritivas das 
licenças Open-source. 
 
 
 
 
 Algumas aplicações no mundo real: 
4 
 Muito trabalho e pesquisa foi feito tanto no 
desenvolvimento de algoritmos quantos softwares de 
planejamento de movimentos; 
 
 Será discutido: 
 Planejamento de movimentos baseado em amostragem: definição; 
 Pacotes de software; 
 Relação com outros softwares de robótica. 
5 
 A ideia fundamental do planejamento por amostragem é 
aproximar a conectividade do espaço de configuração com 
uma estrutura em grafo; 
 
 Existem duas considerações chave na aproximação por 
grafo: 
 A distribuição de probabilidade usada nos estados amostragem; 
 Estratégia para gerar os vértices. 
 
6 
 Probabilistic roadmap: 
7 
 Planejadores baseados em árvore: 
8 
 Componentes comuns de um algoritmo baseado em 
amostragem: 
 Espaço de estados; 
 Espaço de controle; 
 Amostrador; 
 Verificador de validade de estado; 
 Planejador local. 
 
9 
 Principais softwares de planejamento de movimento: 
 MSL 
 MKP 
 VIZMO++ 
 OpenRAVE 
 
10 
 Tipicamente, plataformas de hardware requerem 
configurações de software complexas, e usam várias formas 
de middlewares para acomodar essas requisições; 
 
 OMPL se encaixa facilmente nesses sistemas: 
 Provê apenas algoritmos de planejamento baseados em amostragem; 
 Interface abstrata acomoda uma variedade de implementações de 
baixo nível. 
 
 
11 
 Seus principais critérios de design são: 
 Clareza dos conceitos; 
 Eficiência; 
 Integração simples com outros pacotes de software; 
 Integração objetiva de contribuições externas. 
 
 Em oposição as outras bibliotecas de software planejamento de 
movimentos, a OMPL não possui uma representação do espaço de 
configuração ou dos Robôs, possuindo apenas os algoritmos; 
 
 Permite um projeto de biblioteca que pode ser usado para buscas 
genéricas, em espaços contínuos de alta dimensão, sujeitos a 
restrições complexas; 
 
 Dá ao usuário enorme liberdade de projeto. 
 
 
12 
13 
14 
Estados, controles e espaços: 
 
 Espaços de estados (StateSpace) incluem operações nos estados, 
tais como: 
 Avaliação de distância; 
 Teste de igualdade; 
 Interpolação; 
 Gerenciamento de memória para os estados. 
  OMPL inclui uma forma de combinar espaços de estados: 
CompoundSpaceState. 
 
 Espaços de Controle (ControlSpace) espelham a estrutura de 
espaço de estados providenciando funcionalidades especificas de 
controle, para que os algoritmos de planejamento sejam 
implementados de forma genérica. 
 
15 
Validação de estados e propagação: 
 
 A validade ou não de um estado depende do contexto do 
planejamento; 
 
 Baseado num dado verificador de validade de estados, um 
MotionValidator default é construído, que verifica se a 
interpolação entre dois estados em determinada resolução 
produz estados válidos; 
 
 Foi pré-definido um verificador de validade de estados para 
planejamento de movimentos de corpo rídigo no OMPL.app; 
 
 
 
 
 
16 
Validação de estados e propagação: 
 
 Foi implementado um verificador de validade de estados que 
utiliza a Open Dynamics Engine: 
 
 
 
 
 
17 
Validação de estados e propagação: 
 
 Para planejamento com controle, o usuário deve especificar 
como o sistema evolui quando certos controles são aplicados 
por determinado período de tempo: propagação de estados 
no OMPL; 
 
 
 
 
 
 
18 
Amostrador: 
 
 A operação fundamental que planejamento baseados em 
amostragem realizam é a amostragem do espaço que é 
explorado; 
 
 Para dar suporte a funcionalidade de amostragem, o OMPL 
possui 4 amostradores: 
 StateSampler; 
 ValidStateSampler; 
 Control Sampler; 
 DirectedControlSampler. 
 
 
 
 
 
 
19 
Amostrador: 
 
 Três distribuições de amostragem são implementadas por cada 
espaço de estados amostrador: 
 Uniforme; 
 Gaussiana; 
 Uniforme nas proximidades de um ponto específico. 
 
 
 
 
 
 
 Quando se considera controles no processo de planejamento, os 
mesmos também devem ser amostrados, o que pode ser 
implementado como parte do espaço de controle que eles 
representam; 
 
 Noção de direção também é importante em alguns planejadores. 
 
 
 
 
 
20 
Representação de metas: 
 
 OMPL utiliza uma representação hierárquica de metas; 
 
 Uma meta (Goal) pode ser definida por uma função IsSatisfied() 
que, dado um estado, retorna se este é uma meta ou não; 
 
 GoalRegion é um refinamento da representação geral de um Goal, 
que especifica a distância até a meta utilizando a função 
distanceGoal(); 
 
 GoalSampleableRegion adicionalmente permite a retirada de 
amostras à partir da região de metas; 
 
 GoalState e GoalStates são implementações concretas do 
GoalSampleableRegion. 
 
 
 
 
 
 
 
 
 
21 
Representação de metas: 
 
 Para aplicações práticas, é possível amostrar a região de 
metas, mas o processo de amostragem pode ser 
relativamente lento. 
 
 Neste caso, utiliza-se um refinamento do GoalStates: 
GoalLazyStates: 
 Continuamente retira amostras em um processo separado de 
amostragem, e permite que os planejadores retirem amostras da 
região de meta sem espera. 
 
 
 
 
 
 
 
 
 
22 
Algoritmos de planejamento: 
 
 OMPL possui dois tipos de planejadores de movimento: 
 Os que consideram controle no planejamento; 
 Os que não consideram controle no planejamento. 
 
 Para planejamentos puramente geométricos, o caminho solução 
de um número finito de segmentos, calculados pela interpolação 
de um par de espaços amostrados (PathGeometric); 
 
 Quando considerados os controles, o caminho solução é 
construído por uma sequência de controles (PathControl), e são 
geralmente utilizados quando o planejamento precisa respeitas 
restrições diferenciais. 
 
 
 
 
 
 
 
23 
Exemplo: 
 
 Integrar o OMPL com outros softwares robóticos é bastante 
objetivo e simples; 
 
 Principais softwares com o qual o OMPL pode ser integrado: 
 OMPL.app 
 ROS 
24 
25 
OMPL.app: 
 
 Uma interface gráfica de usuário para o OMPL, criada pelos 
próprios desenvolvedores do OMPL; 
 
 Criada por três motivos: 
1. Prover aos usuários novos uma interface intuitiva para brincar com 
diversos algoritmos de planejamento e aplica-los em diversos 
exemplos de planejamento de movimento de corpo rígido. 
2. Demonstrar a integração do OMPL com bibliotecas de terceiros de 
verificação de colisão, carregamento de malhas 3D e kit de 
ferramentas para GUI. 
3. Permitir aferição (benchmarking) utilizando um novo planejador 
existente de corpo rígido, fazendo uso de uma ferramenta de linha 
de comando. 
 
 
 
 
 
 
26 
OMPL.app: Benchmarking: 
 
 
 
 
 
27 
OMPL.app: 
 
 A interface gráfica do OMPL.app: 
 
 
 
 
 
28 
Integração com o ROS: 
 
 É esperado que a maioria dos usuários utilizem o OMPL 
através do ROS; 
 
 Para planejar movimentos para um robô utilizando ROS, 
deve-se seguir estes passos: 
1. Criar um modelo cinemático do robô (pode-se utilizar o URDF); 
2. Definir um ou mais grupos de juntas; 
3. Definir os problemas de planejamento de movimentos para o robô 
em questão; 
 
 
 
 
 
 
 
29 
Integração com o ROS: 
 
 
 
 
 
 
 
30 
Integração com o ROS: 
 
 A interface ROS-OMPL possui algumas funcionalidades mais 
avançadas: 
 Os problemas de planejamento podem não ser especificados pelo 
usuário, mas sim programaticamente; 
 São possíveis parametrizações diferentes de espaços de estados; 
 Permite ao usuário especificar restrições complexas. 
 
 Para a interação do usuário com os problemas de 
planejamento, só são necessários o grupo de juntas para qual 
o usuário desejar planejar e uma especificação da meta; 
 
 
 
 
 
 
 
 
[1] SUCAN, Ioan A.; MOLL, Mark; KAVRAKI, Lydia E.; “The Open 
Motion Planning Library”, IEEE, 2012. 
 
[2] KAVRAKI, Lydia E.; “Open Motion Planning Livrary: A 
Primer”, Rice University, 2013. 
 
[3] http://www.ros.org/wiki/Robots 
31 
32 
 :)

Continue navegando