ESTRATÉGIAS PARA NAVEGAÇÃO CAUTELOSA DE CADEIRAS DE RODAS ROBÓTICAS Wanderley Cardoso Celeste, Teodiano Freire Bastos Filho, Mário Sarcinelli Filho e Ricardo Carelli* Departamento de Engenharia Elétrica, Universidade Federal do Espı́rito Santo Av. Fernando Ferrari, 514, 29075-910, Vitória-ES, BRASIL *Instituto de Automática, Universidade Nacional de San Juan Av. San Martı́n Oeste 1109, San Juan, ARGENTINA Emails: {wanderley, teodiano, mario.sarcinelli}@ele.ufes.br, *[email protected] Abstract— Strategies for cautious navigation of robotic wheelchairs are presented. They are based on known navigating environments, which allow to generate paths with low risk of collision. A proposed path-following algorithm maintains the mobile vehicle near the reference route, minimizing the risk of collision. Although navigating environments are known, they are not necessarily static. Possible changes can create obstacles to the vehicle motion. So, an obstacle avoidance method is considered, and a convergence method, also proposed, allow the mobile vehicle to come back to the reference path after escaping of an obstacle. A supervisory system for managing the several modules is presented, resulting in a harmonic structure. Simulations and experiments are also presented, whose results validate the proposed system. Keywords— Robotic Wheelchair, Cautious Navigation, Path-Following Control, Obstacle Avoidance. Resumo— São apresentadas estratégias para navegação cautelosa de cadeiras de rodas robóticas. Os ambientes de navegação são conhecidos, o que permite a geração de caminhos com baixo risco de colisão. Um algoritmo de seguimento de caminho é proposto, de modo que o veı́culo é mantido próximo à rota de referência, minimizando a chance de colisão. Os ambientes, embora conhecidos, não são necessariamente estáticos. Possı́veis variações podem criar obstáculos à movimentação do veı́culo, de modo que um método para desvio de obstáculos é também considerado. Uma vez livre do obstáculo, o sistema promove o retorno do veı́culo para o caminho de referência. Os vários módulos que compõem o sistema de navegação são coordenados por um sistema supervisório também proposto. Resultados experimentais e de simulação mostram o bom desempenho do sistema. Keywords— Cadeira de Rodas Robótica, Navegação Cautelosa, Controle de Seguimento de Caminho, Desvio de Obstáculos. 1 Introdução Pesquisas recentes realizadas pela OMS (Organização Mundial de Saúde) têm revelado um acelerado aumento do número de pessoas com deficiência em todo o mundo. Com isso, muito temse falado sobre a chamada tecnologia assistiva, a qual trabalha no sentido de aumentar, ou até mesmo restaurar a função humana perdida, o que, em muitos casos, representa um grande desafio do ponto de vista tecnológico. É o caso, por exemplo, quando se busca devolver a capacidade de ir e vir a pessoas com deficiência motora severa, as quais possuem enormes limitações com relação à realização de atos voluntários, embora gozem de plena atividade cognitiva. Pessoas com deficiência motora severa estavam, até alguns anos atrás, fadadas a passar o resto de suas vidas completamente dependentes da ajuda de terceiros. Porém, com o avanço em técnicas de aquisição e processamento de sinais biológicos (Eletro-MioGramas, EletroEncefaloGramas, Eletro-OculoGramas, etc.) e o empenho de grandes centros de pesquisas aplicadas à robótica, tem-se criado uma grande expectativa por soluções que venham a servi-las. Já são muitos os trabalhos visando o desenvolvimento de Interfaces Homem-Máquina (Ferreira et al., 2007; Millán et al., 2004) capazes de permitir que o indivı́duo com deficiência use Figura 1: Cadeira de rodas para assistência a pessoas com deficiência motora severa. sua mı́nima capacidade muscular ou sua plena capacidade cognitiva para comunicar-se com sistemas artificiais inteligentes, tais como cadeiras de rodas robóticas (Becker, 2000; Mazo et al., 2002). Em (Ferreira et al., 2007) é apresentado um sistema composto por uma Interface HomemMáquina (IHM) e por uma cadeira de rodas robótica (Fig. 1). Com tal sistema, foi possı́vel mostrar que mesmo no pior caso de deficiência motora (quando a pessoa não é capaz de mover nenhum músculo do corpo e nem mesmo tem controle sobre o movimento do globo ocular), é possı́vel permitir que a pessoa com deficiência movimente-se com o auxı́lio de uma cadeira de rodas robótica, comandada a partir de seus sinais cerebrais voluntariamente gerados. Tais avanços serviram de motivação para a realização deste trabalho, cujo objetivo é elaborar e implementar estratégias de navegação de cadeiras de rodas robóticas em ambientes semiestruturados, preservando a segurança da pessoa a bordo que, em geral, possui uma grande limitação em gerar comandos para tais veı́culos, de modo que as intervenções de usuário são minimizadas em troca de um sistema com um nı́vel de autonomia maior do que o observado em trabalhos relacionados presentes na literatura (Becker, 2000; Mazo et al., 2002). Neste contexto, a Seção 2 apresenta uma visão geral do sistema de navegação proposto, enquanto que a Seção 3 detalha tal sistema. Resultados que mostram o bom funcionamento do sistema proposto estão presentes na Seção 4. Por fim, na Seção 5 são feitas as considerações finais. 2 Visão Geral O sistema proposto é basicamente constituı́do por uma parte fı́sica e uma parte lógica, sendo que a primeira reúne a cadeira de rodas robótica, o usuário e uma IHM capaz de permitir a interação entre ambos, enquanto que a parte lógica, de acordo com o próprio nome, contém toda a lógica necessária para a navegação autônoma do veı́culo. A Fig. 2 ilustra tal divisão, onde percebe-se que o sistema de navegação é formado por um sistema de controle e um supervisório. O sistema de controle pode ser composto por distintos controladores, sendo que cada controlador pode ser acionado pelo supervisório em um dado momento, a fim de cumprir uma tarefa. Entende-se por tarefa como sendo um desejo do usuário de alcançar uma determinada postura no ambiente de navegação. Para isto, o usuário com deficiência motora severa conta com a IHM mostrada em (Ferreira et al., 2007). O sistema de navegação, mais especificamente o supervisório, entende o desejo do usuário como sendo um comando, o qual é transformado em objetivos de controle para a camada mais baixa do sistema de navegação, isto é, a camada de controle. Esta, por sua vez, recebe ainda informações sensoriais que estabelecem a postura do veı́culo no tempo, sua velocidade e a distância em que se encontram os objetos do ambiente com relação ao Figura 2: Diagrama de blocos do sistema. veı́culo móvel. Com base em tais informações e nos objetivos de controle, o sistema de controle gera as ações de comando para a cadeira de rodas. Tais ações de comando são baseadas nos estados controlados, os quais são monitorados pela camada mais alta do sistema de navegação, isto é, o supervisório, servindo de parâmetros (juntamente com o comando do usuário) para um perfeito chaveamento de controladores. 3 Navegação Cautelosa Define-se como navegação cautelosa a capacidade de o veı́culo deslocar-se em um ambiente, correndo o mı́nimo risco de colisão possı́vel. Logo, são apresentadas estratégias que venham a permitir uma navegação autônoma cautelosa de cadeiras de rodas robóticas em ambientes conhecidos. Vale ressaltar que, embora conhecido, o ambiente é não estático. Isto significa que podem haver variações, as quais são também consideradas pelo sistema apresentado nesta seção. 3.1 Ambientes de Navegação A geração de um caminho cauteloso é baseada em três informações: o mapa do ambiente de navegação, a posição atual do veı́culo, e um ponto de destino em tal ambiente. Define-se como mapa de um ambiente a distinção entre zonas livres e zonas com obstáculos. A Fig. 3 apresenta o mapa de um ambiente hipotético descrito em Mapper (Celeste et al., 2008a), onde os espaços em negro são zonas ocupadas. Trata-se de uma ferramenta gráfica, cujo objetivo é permitir uma fácil descrição do ambiente, gerando versões discretizadas em forma de mapas métricos, que são finalmente armazenados em arquivo texto. Na sequência, o mapa passa a ser utilizado pelo sistema de navegação, onde zonas ocupadas são dilatadas conforme mostrado na Fig. 4. Figura 3: Ambiente gerado em Mapper. Parede repulsiva Zonas ocupadas 5.0 Origem Obstáculos 4.0 Y [m] Zona livre 3.0 Figura 5: Mapeamento de células livres para navegação em uma estrutura de grafos. 2.0 Destino 1.0 Caminho Dilatação 1.0 2.0 3.0 4.0 X [m} Figura 4: Mapa discretizado. Definição 1 Seja M o conjunto das células de um mapa métrico discretizado, as quais são distribuı́das em CN , CO e CR , que são os subconjuntos formados por células navegáveis, ocupadas e repulsivas, respectivamente, de tal forma que CN ∪ CO = M , CN ∩ CO = ∅ e CO ∩ CR = CR . De acordo com a Definição 1, as zonas ocupadas são formadas pela união entre as zonas com obstáculo e as zonas dilatadas, enquanto que as células repulsivas são aquelas que formam a parede repulsiva (Fig. 4). Assim, o risco de colisão é definido como segue: Definição 2 µ ¶ K 1 P −Ko dist(ni ,rk ) c (ni ) = e × 100% , K rk =1 c (oj ) = 100% onde ni ∈ CN , oj ∈ CO , rk ∈ CR , K é o número de células repulsivas, Ko é uma constante positiva, e c (·) é o risco de colisão estabelecido para cada célula do ambiente de navegação. 3.2 Caminhos Cautelosos A Definição 2 estabelece uma quantização do risco de colisão para cada pequena região de um ambiente de navegação, permitindo a obtenção de caminhos com menores riscos de colisão. Para isto, desprezam-se as células oj (cujo risco de colisão é de 100%), enquanto que as células ni são mapeadas em uma estrutura de grafo, como ilustra a Fig. 5, sendo c (n) o risco de o veı́culo móvel colidir, estando ele na n-ésima célula navegável. Logo, dada duas células ni distintas, as quais representam um ponto origem e um ponto destino em um ambiente de navegação, e considerando a representação de tal ambiente em forma de grafo, aplica-se o algoritmo de Dijkstra (Tanenbaum, 2003) para obtenção de um caminho que conecta os dois pontos (Fig. 4). Tal caminho é ótimo no sentido de que nele o risco de colisão e a distância percorrida são minimizados. Os centros geométricos das células que formam o caminho obtido são interpolados, utilizando-se o método Spline Cúbica (Knott, 1999). Além disso, trechos não-lineares do caminho interpolado são substituı́dos por curvas de Bezier (Shao e Zhou, 1996). Por fim, o caminho é gravado em arquivo e disponibilizado ao sistema de controle da cadeira de rodas robótica. 3.3 Seguimento de Caminho Dado um caminho de referência com menor risco de colisão, deve-se garantir que o veı́culo móvel permaneça o mais próximo possı́vel dele, a fim de alcançar o destino através de uma navegação cautelosa. Logo, o sistema deve contar com um módulo de controle de seguimento de caminho. Algumas soluções ao problema são verificadas na literatura. Aqui propõe-se o que segue (Celeste et al., 2008b): Lema 1 Seja o modelo da cinemática de movimento de um veı́culo móvel uniciclo dado por x̃˙ = c (s) ỹ ṡ − ṡ + v cos ψ̃ ỹ˙ = −c (s) x̃ṡ + vsenψ̃ , ˙ ψ̃ = ω − c (s) ṡ (1) onde x̃, ỹ e ψ̃ são os estados do sistema, v e ω são as velocidades linear e angular do veı́culo móvel, e c (s) é a curvatura do caminho de referência, sendo s a abscissa curvilı́nea do caminho. Então, µ ¶ kx̃ x̃ ṡ = vcosψ̃ + X̃max tanh X̃max ³ ´ (2) senψ̃ − senβ ˙ ψ̃ = β̇ − γ ỹv − kψ̃ ψ̃ − β ψ̃ − β são as leis de controle que estabilizam assintoticamente o sistema, sendo v 6= 0, X̃max ∈ <+ uma constante de saturação, kx̃ ∈ < e kψ̃ ∈ < ganhos positivos, e Γmax (3) γ≡ 1 + |ỹ| um ganho variável estritamente positivo, sendo Γmax ∈ <+ uma constante de saturação. O Lema 1 (cuja prova é mostrada em detalhes em (Celeste et al., 2008b)) estabelece que ωref = ˙ ψ̃ + cṡ, enquanto que vref (t) 6= 0 ∀ t. Figura 7: Desvio Tangencial Modificado. Figura 6: Ajuste da velocidade linear. Uma restrição ainda maior é imposta na sequência, a fim de tornar a manobra de seguimento de caminho ainda mais cautelosa. Consiste em fazer vref (t) > 0 ∀ t, ou seja, o veı́culo deve sempre andar para frente. Ao mesmo tempo que o Lema 1 impõe restrições para assegurar a estabilidade do sistema, ele também dá a liberdade de ajuste automático da velocidade linear. Assim, propõe-se a lei de ajuste tanh (Ldist dobst ) ´ + Vmin , ³ cosh Lψ̃ ψ̃ (4) onde ψ̃ é o erro de orientação, dobst é a distância entre veı́culo e obstáculo, Vmax ∈ <+ e Vmin ∈ <+ são os limites máximo e mı́nimo da velocidade linear, e Lψ̃ ∈ <+ e Ldist ∈ <+ são constantes. A Fig. 6 mostra a velocidade ajustada em função do erro de orientação e da distância do obstáculo, com Ldist = 1, Lψ̃ = 2, Vmin = 0, 05m/s, Vmax = 0, 3m/s, dmin = 0m e dmax = 10m. de modo a fazer com que o veı́culo móvel passe a seguir o alvo virtual 1 em vez do alvo real obstruı́do, mantendo-se em uma rota tangente ao obstáculo e a uma distância igual a Ly do mesmo. Por outro lado, quando o veı́culo móvel entra na região crı́tica (dmin < Ly e d90 < Lx ), o alvo real sofre uma rotação igual a ϕ − sign (β) π/2, fazendo com que o veı́culo autônomo siga o alvo virtual 2, tangenciando o obstáculo a uma distância Lx , o que aumenta a chance de o veı́culo escapar de obstáculos em forma de U (Brandão, 2008). vref = (Vmax − Vmin ) 3.4 Desvio de Obstáculo Mesmo mantendo-se próximo da rota com menor risco de colisão, é possı́vel que o veı́culo se depare com um obstáculo não previsto no mapa. Neste caso, a estratégia de seguir caminho deve dar lugar a uma estratégia de fuga. Mais uma vez, verificam-se inúmeras propostas ao problema na literatura e, novamente, opta-se pela simplicidade e eficiência apresentados pelo método de Desvio Tangencial Modificado (DTM) apresentado em (Brandão, 2008). A Fig. 7 ilustra o método, onde Ly define uma distância crı́tica, enquanto que Lx e Ly definem uma região crı́tica. A distância dmin representa a distância mı́nima entre veı́culo móvel e obstáculo, enquanto que d90 é a distância observada pelo sensor posicionado a 90◦ daquele que detecta dmin . Assim, quando dmin < Ly , rotaciona-se o alvo real de um ângulo ϕ, dado por ϕ = β − α − sign (β) π , 2 (5) 3.5 Arcos Convergentes Ao escapar do obstáculo, o veı́culo móvel deve iniciar uma manobra de retorno ao caminho de referência. A Fig. 8 ilustra três estratégias possı́veis, a saber: seguir a reta que leva ao ponto mais próximo do caminho; seguir a reta que converge em um ponto predeterminado; seguir um arco que converge em um ponto predeterminado. Percebese, na figura, que as duas primeiras estratégias podem conduzir o veı́culo a um local anterior ao obstáculo, entrando em um ciclo indesejável. Em contrapartida, tal problema não se verifica no caso de arcos convergentes, sendo esta a estratégia adotada. Considera-se a Fig. 9 para estabelecer um mecanismo de geração de arcos convergentes. O ponto Probo é a posição do veı́culo móvel no momento em que ele se vê livre do obstáculo, enquanto que Pcam é um ponto do caminho de re- Figura 8: Retorno ao caminho de referência. Figura 9: Geração de arcos convergentes. Figura 10: Sistema supervisório. ferência que está além do ponto objetivo no momento em que se detecta um obstáculo (o critério utilizado foi definir pontos a uma distância fixa do veı́culo robótico). Assim, Pc1 = (Probo + Pcam ) /2 (6) r = kProbo − Pcam k/2 (7) e são o centro (Pc1 ≡ [x0 , y0 ]) e o raio da circunferência C1. Observa-se que é necessário gerar apenas um arco (no caso, uma semicircunferência), cujo sentido de rotação está intimamente ligado ao sentido em que o veı́culo móvel contorna o obstáculo. A circunferência C2 (Fig. 9) consiste de uma extensão ao método anterior. Ela também passa por Probo e Pcam , porém, seu raio é dado por r , (8) cos α onde α ∈ [0, π/2) é uma variável ajustada de forma empı́rica, com base nas dimensões do veı́culo e dos obstáculos tı́picos encontrados. As coordenadas do centro de C2 são ½ X0 = x0 + s (cosγ) , (9) Y0 = y0 + s (senγ) R= sendo s = rtanα e γ = β ± π/2 (da Fig. 9). Sejam z = [r, x0 , y0 ] e Z = [R, X0 , Y0 ] vetores com as caracterı́sticas que definem C1 e C2, respectivamente. Então, lim Z (α) = z. Além α→0 disso, a curvatura de C2 é definida como κ2 ≡ 1/R. Logo, lim κ2 (α) = 0 (uma reta), conα→π/2 cluindo que é possı́vel gerar circunferências com curvaturas suaves, independente da distância entre Probo e Pcam . 3.6 Supervisório O sistema supervisório para coordenação dos módulos de controle consiste de uma máquina composta de oito estados, como mostra a Fig. 10. Os estados Inı́cio, Seguir caminho e Parar formam a sequência verificada em uma navegação sem a presença de obstáculos. Entretanto, na presença de um, o supervisório entra no estado Esperar, onde ocorre uma espera cronometrada (alguns segundos). Trata-se de um mecanismo para evitar fugas devido a obstáculos dinâmicos, tais como pessoas transitando nas proximidades do veı́culo, sem criar qualquer impedimento à sua navegação. Neste caso, o supervisório retorna ao estado Seguir caminho. Caso contrário, ele vai para o estado Aguardar decisão do usuário, onde as opções de comando desviar pela direita, desviar pela esquerda e ajuda-me! são exibidas ao usuário, sendo as duas primeiras associadas a uma confirmação de desvio, enquanto que a última exprime uma impossibilidade de desvio. A decisão do usuário leva o supervisório ao estado Aguardar ajuda ou Escapar de obstáculo. No primeiro, um sinal sonoro é acionado, servindo como alerta ou pedido de auxı́lio. A remoção do obstáculo faz com que o supervisório retorne ao estado Seguir caminho. No estado Escapar de obstáculo, inicia-se a manobra de fuga, passando para o estado Seguir arco convergente quando o obstáculo é vencido, onde é gerado um arco curvilı́neo que conecta o veı́culo móvel ao caminho de referência, o qual serve de referência para uma manobra de seguimento do caminho. Durante tal manobra, duas coisas podem acontecer: o veı́culo alcança o caminho de referência original, o que faz com que o supervisório passe para o estado Seguir caminho, ou então o veı́culo volta a detectar o obstáculo, o que faz com que o supervisório retorne ao estado Escapar de obstáculo. 4 Resultados Os experimentos foram realizados em uma cadeira de rodas robótica (veja a Fig. 1) e em um am- Agradecimentos 6 Parede 5 Os autores agradecem à Fundação de Apoio à Ciência e Tecnologia do Espı́rito Santo (FAPES) e ao CNPq pelo apoio financeiro, o qual proporcionou a execução deste trabalho. Fuga Início 4 Zona de risco Y [m] Robô Obstáculo 3 2 Arcos convergentes Convergência 1 Caminho Referências Destino 0 0 1 2 X [m] 3 4 5 Figura 11: Navegação cautelosa. Brandão, A. S. (2008). Controle descentralizado com desvio de obstáculos para uma formação lı́der-seguidor de robôs móveis, Dissertação de mestrado, Universidade Federal do Espı́rito Santo, Vitória, ES, Brasil. dobst [m] Retornar Desviar Esperar SC Parar Inicio 2 Zona de risco 1 0 [rad/s] [m/s] vref 0.2 0.1 0 0.5 0 −0.5 0 v ωref ω 1.0 2.0 Tempo [s] 3.0 4.0 Figura 12: Dados de telemetria. biente tal como o representado na Fig. 11. Uma caixa retangular foi posicionada muito próxima ao caminho de referência, tornando-se um obstáculo para o robô. Os sensores de ultrassom foram calibrados para detectar um obstáculo antes que o veı́culo alcance a zona de risco. Foi observado que o veı́culo contorna o obstáculo, mantendo uma distância segura, e, por fim, retorna ao caminho de referência, seguindo-o até o destino. A Fig. 12 mostra os estados assumidos pelo supervisório (SC significa Seguir Caminho e Retornar significa Seguir arco convergente), a distância mı́nima entre veı́culo e objetos do ambiente dobst , e os comandos de velocidade linear vref e angular ωref , com as respectivas respostas do veı́culo móvel, isto é, v e ω. 5 Becker, M. (2000). Aplicação de tecnologias assistivas e técnicas de controle em cadeiras de rodas inteligentes, Master’s thesis, Universidade Estadual de Campinas, Faculdade de Engenharia Mecância, Departamento de Projeto Mecânico. Conclusão Foi proposto e implementado um sistema de navegação, o qual baseia-se em ambientes conhecidos, permitindo a geração de rotas com baixo risco de colisão. O sistema conta também com um módulo responsável por escapar de objetos ou pessoas próximos ao caminho, além de um módulo capaz de permitir o retorno ao caminho de referência. O sistema foi experimentado com sucesso em uma cadeira de rodas robótica. Celeste, W. C., Arantes, I. B., Bastos, T. F., Sarcinelli, M. e Carelli, R. (2008a). Chaveamento de controladores dinâmicos para navegação de cadeira de rodas robótica em ambientes conhecidos, Anais do XVII Congresso Brasileiro de Automática 1. Celeste, W. C., Bastos, T. F., Sarcinelli, M. e Carelli, R. (2008b). Controle de seguimento de caminho com sinais de comando limitados aplicado a robôs móveis uniciclos, Anais do XVII Congresso Brasileiro de Automática 1. Ferreira, A., Silva, R. L., Celeste, W. C., BastosFilho, T. F. e Sarcinelli-Filho, M. (2007). Human-machine interface based on emg and eeg signals applied to a robotic wheelchair, Journal of Physics: Conference Series 1. Knott, G. D. (1999). Interpolating Cubic Splines: Progress in Computer Science and Applied Logic, Vol. 1, 1 edn, Birkhäuser Boston, USA. Mazo, M., Garcia, J. C., Rodriguez, F. J., Lazaro, J. L. e Espinosa, F. (2002). Experiences in assisted mobility: the siamo project, Proceedings of the 2002 International Conference on Control Applications 2: 766–771. Millán, J., Renkens, F., Mouriño, J. e Gerstner, W. (2004). Non-invasive brain-actuated control of a mobile robot by human eeg, IEEE Trans. on Biomedical Engineering 51: 27. Shao, L. e Zhou, H. (1996). Curve fitting with bezier cubics, Graphical Models and Image Processing 58: 223–232. Tanenbaum, A. S. (2003). Computer Networks, Vol. 1, 4 edn, Prentice Hall, USA.