Baixe o app para aproveitar ainda mais
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 :)
Compartilhar