X SBAI – Simpósio Brasileiro de Automação Inteligente 18 a 21 de setembro de 2011 São João del-Rei - MG - Brasil CONTROLE DE POSIÇÃO APLICADO A UM ROBÔ GUIA COM SISTEMA DE VISÃO OMNIDIRECIONAL Milton César Paes Santos∗, Flávio Garcia Pereira†, Raquel Frizera Vassallo∗ ∗ † Universidade Federal do Espı́rito Santo Vitória – Brasil Centro Universitário Norte do Espı́rito Santo São Mateus – Brasil Emails: [email protected], [email protected], [email protected] Abstract— This paper presents a nonlinear position controller, applied to a mobile robot, capable of guiding a person to a certain destination spot. The robot is equipped with an omnidirectional vision system, which is used for classify and determining the location of objects in the environment. Thus, robots can identify people who wish to be guided and obtain considerable features such as distance from the robot, the intensity of the pixel in the images of people and the area occupied by them, to accomplish the desired task of guiding. The method presented in this paper uses the technique of background subtraction to identify objects in the environment, the apparent motion of the image to perform visual tracking, and based on polynomials that relate points in the the image with points in the world, recoverers the three dimensional coordinates of the person. Thus, according to these coordinates, the robot can make adjustments in the position controller in order to adapt its linear and angular velocity according to the person’s ability to walk. In order to validate the proposed method, some experiments were performed and are shown in this paper. Keywords— tion Nonlinear controller guidance, Omnidirectional Vision, Mobile Robots, Robot-Human Interac- Resumo— Este trabalho apresenta um controlador de posição não linear, aplicado a um robô móvel, capaz de realizar a condução de uma pessoa a um determinado ponto de destino. O robô é dotado de um sistema de visão omnidirecional, o qual é utilizado para classificação e determinação da localização dos objetos no ambiente. Dessa forma, os robôs podem identificar pessoas que desejam ser conduzidas e obter dados relevantes, tais como distância do robô, intensidade dos pixel das pessoas nas imagens e, também, área ocupada por estas, para realizar a tarefa de condução desejada. O método apresentado neste trabalho utiliza a técnica de subtração de fundo para identificar os objetos no ambiente, o movimento aparente da imagem para realizar o rastreamento visual e, baseado em polinômios que relacionam os pontos na imagem e no mundo, recuperar as coordenadas tridimensionais da pessoa. Assim, de acordo com essas coordenadas, é possı́vel realizar ajustes no controlador de posição, a fim de adaptar sua velocidade linear e angular de acordo com a capacidade de locomoção da pessoa. Para validar o método proposto, foram realizados alguns experimentos que serão mostrados neste artigo. Keywords— Controlador de Condução, Visão Omnidirecional, Robôs Móveis, Interação Homem-Robô 1 Introdução Apesar do crescimento do uso de robôs nas residências, a maioria dos robôs existentes está na indústria, cujas principais tarefas são o deslocamento em um ambiente (locomoção) e a movimentação de objetos ao seu redor (manipulação). Essa distinção por tarefas pode dividir os robôs em duas categorias: robôs móveis e robôs manipuladores, ainda que exista robôs que executem ambas as funções. Um robô, independente da categoria, possui conexões de realimentação (feedback) entre seus sensores, atuadores e o ambiente, dispensando a ação do controle humano direto para realizar determinadas tarefas (Takubo et al., 2002). Podendo, também, haver robôs parcial ou totalmente em cooperação com pessoas (Pereira et al., 2010). O grau de automatização de um robô pode atingir o nı́vel de aprendizado automático e adaptarse aos problemas momentâneos que podem surgir durante a execução do seu trabalho. Em contrapartida, a capacidade de realizar tarefas e desenvolver novas maneiras para solu- ISSN: 2175-8905 - Vol. X cionar eventuais problemas que surgem no decorrer dessas, é uma das habilidades mais fascinantes do ser humano. Com o avanço da tecnologia nos últimos anos, o ser humano tem buscado, cada vez mais, construir sistemas e máquinas capazes de realizar e cooperar em suas tarefas diárias (Pereira et al., 2009). Os robôs móveis autônomos devem possuir essa capacidade e, assim, devem ser capazes de analisar o ambiente ao seu redor, analisar as mudanças observadas e, com isso, tomar decisões ou agir a fim de cumprir seus objetivos (Júnior, 2002). Recentemente, as pesquisas em robótica direcionam-se para aplicações relacionadas ao cotidiano das pessoas, onde é necessário a cooperação dos robôs, com uma ou mais pessoas, com o propósito de executar tarefas, tais como, conduzir uma pessoa com dificuldades de se locomover a um determinado lugar e na indicação de um caminho para recém chegados no ambiente de trabalho. Para que seja possı́vel realizar tais tarefas, é importante obter a maior quantidade possı́vel de informação do ambiente no qual o robô está inserido, a fim de aumentar o número de obser- 432 X SBAI – Simpósio Brasileiro de Automação Inteligente 18 a 21 de setembro de 2011 São João del-Rei - MG - Brasil vações e análises realizadas pelo mesmo e, assim, aperfeiçoar sua base de dados para tomada de decisões e um controle autônomo (Júnior, 2001). É possı́vel obter essas informações por meio de fusão de dados de diferentes tipos de sensores. Outra maneira é através da utilização de um único sensor como um sistema de visão computacional, capaz de obter uma imagem com a maior quantidade possı́vel de informação do ambiente. O uso de um sistema computacional com campo de visão de 360◦ pode ser selecionado para esse propósito. Esses sistemas são denominados de visão omnidirecional e são úteis, por exemplo, quando a tarefa a ser executada pelo robô necessita constantemente de informações visuais da posição de uma pessoa ou objetos localizados em diferentes direções. 2 Controlador de Condução Considerando que na tarefa cooperativa de condução o robô guiará uma pessoa a um determinado ponto de destino, o objetivo proposto é adaptar e ajustar as velocidades linear e angular do robô de acordo com as caracterı́sticas de locomoção da pessoa, a fim de manter sua velocidade e posição proporcional à da pessoa seguidora e continuar navegando até atingir o ponto final desejado. Contudo, vale evidenciar que para realizar os ajustes nas velocidades é necessário estimar a posição relativa da pessoa ao robô, obtidas pelo processamento das imagens omindirecionais, a posição e a orientação do robô ao ponto de destino. A Figura 1 demonstra o robô navegando para alcançar o ponto destino e uma pessoa o seguindo. Figura 1: O robô navega até o ponto de destino e uma pessoa o segue. O modelo cinemático apresentado na Equação 1 descreve, em coordenadas cartesianas, o movimento de um robô móvel, do tipo monociclo, em seu espaço de trabalho. ẋ = v.cos(ϕ) (1) ẏ = v.sen(ϕ) ϕ̇ = ω. Porém, para desenvolver o controlador de condução final, convém representar a posição do robô ISSN: 2175-8905 - Vol. X por meio das coordenadas polares (Secchi, 1998). Para isso, consideram-se ρ e α, respectivamente, o erro de posição do veı́culo e o erro de orientação do mesmo em relação ao referencial inercial <g>. Isto permite escrever as equações cinemáticas em coordenadas polares, conforme pode ser visto na Equação 2. ρ̇ = −v cos (α) sen (α) α̇ = −ω + v , (2) ρ sen (α) θ̇ = v ρ onde v e ω são respectivamente, a velocidade linear e velocidade angular realizada pelo robô durante o trajeto, α expressa o ângulo entre o eixo de movimento do robô e o vetor de erro de posição ρ, isto é, o erro angular entre a orientação do robô e a direção do ponto que se deseja alcançar. Com base neste sistema, as ações de controle necessárias para a navegação a um determinado ponto de destino podem ser representadas conforme as ações de controle expressas pela Equação 3. v = kv tanh(ρ) cos(α) , (3) sen (α) cos (α) ω = kω α + kv tanh(ρ) ρ com kv > 0 e kw > 0, onde os coeficientes kv e kω representam, respectivamente, o valor máximo, em módulo, (kv = |vmax |) da máxima velocidade linear que poderá ser aplicada ao robô e, uma constante de ajuste para a velocidade angular máxima. Os resultados apresentados neste artigo foram obtidos com uma velocidade linear máxima de 350 mm/s e uma velocidade angular máxima de 90 graus/s. Para isso, fez-se kv = 0.35 e kw = 0.45 De acordo com a Figura 1 e com controlador apresentado pela Equação 3, será proposto um controlador de condução que de acordo com a distância d do robô a pessoa guiada assume as seguintes ações de controle (Santos, 2010) v = δ(d)kv tanh(ρ) cos(α) , ω = kω α + δ(d)kv tanh(ρ) sen (α) cos (α) ρ (4) com kv > 0 e kw > 0, e δ(d) é uma função que atua no controlador de posição, como um saturador da velocidade. Esta apresenta-se em função da distância do robô da pessoa guiada. Dessa forma, δ(d) é representada por δ(d) = 1 − tanh(λ(d − dm)) ≥0 2 (5) onde dm é a distância média que a pessoa se encontra e λ é uma constante que influencia na saturação da tangente hiperbólica. A Figura 2 mostra a curva de δ(d) para determinados valores de λ. 433 X SBAI – Simpósio Brasileiro de Automação Inteligente 18 a 21 de setembro de 2011 São João del-Rei - MG - Brasil (a) Figura 2: Curvas das equações de δ 2.1 Análise de Estabilidade Para o controlador não linear proposto, a seguinte função candidata de Lyapunov é considerada V (ρ, α) = 1 2 1 2 ρ + α , 2 2 (6) a qual é definida positiva e possui derivada temporal dada por V̇ (ρ, α) = ρρ̇ + αα̇. (7) Substituindo os valores de ρ̇ e α̇ de 2 em 7, tem-se que sen (α) . V̇ (ρ, α) = −ρv cos (α) + α −ω + v ρ (8) Agora, substituindo as velocidades linear e angular apresentadas em 3 na Equação 8, a derivada temporal da função candidata de Lyapunov pode ser reescrita como como objetivo apresentar, de forma resumida, as técnicas de processamento de imagens utilizadas para efetuar tal detecção, além de apresentar o algoritmo de rastreamento utilizado. A detecção da pessoa é realizada por meio do método de subtração de fundo (Lampert et al., 2005). Dessa forma, utiliza-se as imagens omnidirecionais para a construção do modelo de fundo e, com isso, a imagem resultante obtida por este método é processada de forma a gerar uma imagem binária que contenha os contornos dos blobs das regiões que não pertencem ao modelo de fundo. Estas regiões provavelmente pertencem à pessoas que desejam ser conduzidas. A próxima etapa para a identificação da pessoa é a escolha do blob que melhor corresponde a um ser humano. Neste trabalho explora-se uma caracterı́stica importante das imagens omnidirecionais para detectar a pessoa e sua distância do robô: deformação de um objeto na forma radial, ou melhor, o objeto que se encontra na vertical no mundo real aparece de forma radial na imagem (Vassallo, 2004). Portanto, quando a pessoa encontra-se na imagem, seus pés estão perto do centro da mesma e, consequentemente, do robô. Por essa razão, escolheu-se o blob que está mais próximo do centro da imagem e possui área entre as mı́nimas e máximas determinadas para uma perna humana. Estes valores de área foram obtidos experimentalmente por forma de medições em diferentes condições. A Figura 3 apresenta um exemplo de detecção de um humano. V̇ (ρ, α) = −δ(d)kv ρ tanh ρ cos2 (α) − kω α2 . (9) Assim, a função derivada temporal da candidata de Lyapunov apresentada na Equação 7 possui derivada definida negativa, o que indica que os erros do sistema, isto é, ρ̇ e α̇ → 0 quando t → ∞, comprova, dessa maneira, a estabilidade do controlador proposto. Para o controle de posição final, é necessário escolher os valores máximos das velocidades linear e angular calculadas pelo controlador. 3 Sistema de Visão e Detecção de Pessoas O controlador de condução apresentado na Seção 2 possui 3 variáveis que determinam suas ações de controle. Uma destas é a distância que a pessoa se encontra do robô; a qual será obtida a partir do processamento das imagens fornecidas por um sistema de visão omnidirecional, as quais fornecem um campo de visão de 360◦ na horizontal, montado sobre o robô. Nesse contexto, esta seção tem ISSN: 2175-8905 - Vol. X Figura 3: Detecção de um humano em uma imagem omnidirecional. Ainda vale ressaltar que, se essas caracterı́sticas coincidem com as de um ser humano, o robô aguarda, por 3 segundos, o blob permanecer na mesma posição. Ao concretizar este passo, ele inicia o movimento ao ponto de destino e suas velocidades são estimadas de acordo com o controlador apresentado na Seção 2. É válido informar que a pessoa encontra-se na parte inferior da imagem adquirida pelo sistema de visão, sendo, a princı́pio, desnecessário o processamento da região superior da imagem para aquisição de informações a respeito dela. Assim, aplica-se uma máscara nas imagens para evidenciar a área de interesse. A 434 X SBAI – Simpósio Brasileiro de Automação Inteligente 18 a 21 de setembro de 2011 São João del-Rei - MG - Brasil Figura 4 apresenta a imagem original (a) e o resultado da aplicação da máscara (b). (a) torna-se ineficiente em situações em que há mudanças no modelo de fundo. De posse desta posição, e baseado nos polinômios que relacionam os pontos na imagem e no mundo, as coordenadas tridimensionais da pessoa são recuperadas e, juntamente, com as informações obtidas pelos encoders do robô é possı́vel traçar o caminho feito pela pessoa durante a condução. 4 (b) Figura 4: Imagem original (a) e o resultado de aplicação da máscara (b). Realizada a detecção da pessoa com a subtração de fundo é necessário converter a distância entre o robô e a pessoa no espaço da imagem para o mundo real. Com o intuito de aprimorar essa conversão, a região de interesse da imagem foi divida em 5 setores de 36◦ e, para cada um, foi estimado uma função polinomial (Gava, 2007) para a conversão de pixel para metros, como determinado. A Figura 5 demonstra os setores divididos e a Figura 6 representa um exemplo dos erros obtidos na conversão dos dados do Setor 2. Resultados Experimentais De acordo com a teoria apresentada na Seção 2, os experimentos a seguir têm como principal objetivo demonstrar a convergência das variáveis de estado e assegurar a funcionalidade dos controladores implementados. O robô móvel utilizado nos experimentos foi Pioneer 2-DX, dotado de um sistema de visão omnidirecional para calcular a distância da pessoa. 4.1 Experimento 1 Neste experimento, o robô foi posto para detectar uma pessoa e guiá-la ao destino de 6 m à sua frente e 4 m à sua esquerda. Dessa forma, podese visualizar os resultados obtidos nesta tarefa nas seguintes Figuras 7 e 8. Figura 5: Exemplo de conversão da função polinomial. (a) (b) (c) Figura 7: Posição no mundo real (a), deslocamento em x (b) e deslocamento em y (c). (a) Figura 6: Erros obtidos na conversão no Setor 2. Durante o trajeto do robô, a posição da pessoa na imagem é estimada utilizando o algoritmo de rastreamento visual proposto por (Lucas and Kanade, 1981). Já que a subtração de fundo ISSN: 2175-8905 - Vol. X Na Figura 7 (a) observa-se que o trajeto executado pela pessoa é diferente do caminho executado pelo robô. Isso ocorre devido ao fato do robô orientar a pessoa sem uma formação prédefinida, semelhante ao comportamento humano quando deseja-se conduzir alguém a um determinado lugar. 435 X SBAI – Simpósio Brasileiro de Automação Inteligente 18 a 21 de setembro de 2011 São João del-Rei - MG - Brasil (a) (b) (a) (c) (d) Figura 8: Distância entre o robô e a pessoa (a), velocidade angular (b), velocidade linear do robô (c) e distância do destino (d). De acordo com as Figuras 8 (a) e (c), nota-se que a medida que há o distanciamento do robô, a velocidade linear do robô diminui e, consequentemente, não há alteração significativa no erro de posição do robô, conforme mostrado na Figura 8 (d). Em vista disso, é possı́vel interpretar que o robô “aguarda” a aproximação da pessoa para continuar o trajeto. Outro fato interessante que deve ser extraı́do da Figura 8 (d) é o erro de posição tendendo a zero, demonstrando que o robô atinge o ponto de destino. 4.2 Experimento 2 Neste experimento o robô deve guiar uma pessoa até o destino de 5 m à sua frente, cuja representação é dada por (5 m, 0 m). A trajetória descrita é apresentada pela Figura 9 (a). O robô atinge, então, a posição final de (4.95 m, 0.0025 m). Sendo assim, pode-se visualizar os resultados obtidos nesta tarefa nas seguintes Figuras 9 e 10. Na Figura 9 (a) observa-se que o trajeto executado pela pessoa é semelhante ao caminho percorrido pelo robô. As Figuras 9 (b) e (c) mostram o comportamento do deslocamento em cada eixo. As velocidades linear e angular adquirida pelo robô durante o trajeto são demonstradas, respectivamente, nas Figuras 10 (a) e (b). Da mesma forma que foi evidenciado no experimento 1, notase neste experimento, que a medida que há afastamento do robô, a velocidade linear do mesmo decresce. Neste experimento, a velocidade angular do robô, representado na Figura 10 (b), permanece em zero pelo fato do ponto de destino estar posicionado a direita do robô, de modo que o erro angular já inicia sendo mı́nimo. ISSN: 2175-8905 - Vol. X (b) (c) Figura 9: Posição no mundo real (a), deslocamento em x (b) e deslocamento em y (c). O erro de posição neste experimento é demonstrado na Figura 10 (d), onde é notória deste erro tendendo a zero no decorrer do tempo, o que significa que a tarefa de condução foi executada. 5 Conclusões e Trabalhos Futuros Neste trabalho foi abordado uma estratégia de controle para realizar a tarefa de condução de uma pessoa, utilizando um robô com sistema de visão omnidirecional. Foi implementado um controlador não linear para navegação em busca de um ponto objetivo e, também, para realizar a condução. Com a aquisição de informações do ambiente e, principalmente, da pessoa conduzida através das imagens obtidas do sistema omnidirecional instalado no robô móvel, foi possı́vel guiar a pessoa durante todo o trajeto, uma vez que a distância entre a pessoa guiada e o robô era fornecida ao controlador. O sucesso do controlador implementado pode ser verificado por meio dos experimentos realizados, nos quais o robô atingiu o objetivo de controle (navegar em direção a um ponto destino e realizar a condução até esse ponto). Para trabalhos futuros pode-se evidenciar alguns exemplos de projetos; realizar um aprendizado do ambiente para que seja possı́vel a condução de pessoas a lugares de interesse, como a porta de saı́da de um escritório; integrar o controlador de condução a uma estratégia de desvio de obstáculos utilizando um sensor laser (Pereira, 2006) ou sistema de visão omnidirecional (Franca, 2005); adicionar uma interface de comunicação para proporcionar uma interação en- 436 X SBAI – Simpósio Brasileiro de Automação Inteligente 18 a 21 de setembro de 2011 São João del-Rei - MG - Brasil First Int’l. Workshop on Camera-Based Document Analysis and Recognition, pp. 79–86. (a) (b) Lucas, B. D. and Kanade, T. (1981). An iterative image registration technique with an application to stereo vision (ijcai), Proceedings of the 7th International Joint Conference on Artificial Intelligence (IJCAI ’81), pp. 674–679. Pereira, F. G. (2006). Navegação e desvio de obstáculos usando um robô móvel dotado de sensor de varredura laser, Master’s thesis, Universidade Federal do Espı́rito Santo. (c) (d) Figura 10: Distância entre o robô e a pessoa (a), velocidade angular (b), velocidade linear do robô (c) e distância do destino (d). tre a pessoa e o robô antes que a tarefa de condução inicie, ou seja, após a detecção da pessoa, o robô pode ”começar” um diálogo, com isso a pessoa pode definir o lugar que deseja ir. Agradecimentos Os autores gostariam de agradecer à UFES (Universidade Federal do Espı́rito Santo) pelos equipamentos fornecidos para a execução do projeto, à FAPES (projeto 45443211/2009) e CAPES/MinCyt (projeto 181/10) pelo suporte financeiro. Referências Franca, A. S. (2005). Detecção de obstáculos através de um fluxo óptico padrão obtido a partir de imagens omnidirecionais, André Stanzani Franca, Raquel Frizera Vassallo e Hans Jörg Andreas Schneebeli. Gava, C. C. (2007). Controle de formacão de robôs móveis baseado em visão omnidirecional, Master’s thesis, Universidade Federal do Espı́rito Santo. Pereira, F. G., de Sá, F. B., Ferreira, D. B. and Vassallo, R. F. (2010). Cooperação entre homem e um robô móvel para transporte de cargas, XVIII Congresso Brasileiro de Automática - CBA 2010. Pereira, F. G., Schmitz, N., Vassallo, R. F. and Berns, K. (2009). Cooperação entre homens e robôs baseada em reconhecimento de gestos, IX Simpósio Brasileiro de Automação Inteligente - SBAI 2009. Santos, M. C. P. (2010). Controle de posição aplicado a um robô guia com sistema de visão omnidirecional, Universidade Federal do Espı́rito Santo, Projeto de Graduação. Secchi, H. A. (1998). Control de vehı́culos autoguiados con realimentación sensorial, Master’s thesis, Facultad de Inginerı́a de la Universidad Nacional de San Juan, San Juan - Argentina. Takubo, T., Arai, H., Hayashibara, Y. and Tanie, K. (2002). Human-Robot Cooperative Manipulation Using a Virtual Nonholonomic Constraint, The International Journal of Robotics Research 21(5-6): 541–553. Vassallo, R. F. (2004). Uso de Mapeamento Visuomotores com imagens omnidirecionais para aprendizagem por imitação em Robótica, PhD thesis, Universidade Federal do Espı́rito Santo. Júnior, V. G. (2001). Desenvolvimento de um sistema de visão omnidirecional, XVI Congresso Brasileiro de Engenharia Mecânica 16th Brazilian Congress of Mechanical Engineering. Júnior, V. G. (2002). Sistema de visão omnidirecional aplicado no controle de robôs móveis, Master’s thesis, Escola Politécnica - USP. Lampert, C. H., Braun, T., Ulges, A., Keysers, D. and Breuel, T. M. (2005). Oblivious document capture and real-time retrieval, In Proc. ISSN: 2175-8905 - Vol. X 437