(English version at the bottom)
Tive o prazer de bater um papo com Marcos Maximo, engenheiro de computação, PhD em eletrônica, atualmente professor adjunto do Instituto Tecnológico Aeronáutico (ITA) e pesquisador do Laboratório de Sistemas Computacionais Autônomos. O foco da nossa conversa foi as suas experiências trabalhando com robótica e sistemas autônomos.
Durante sua graduação, Marcos foi um dos responsáveis pela reestruturação da ITAndroids, uma equipe composta por estudantes de graduação e pós-graduação do ITA visando participar de competições de robótica. Dentre as várias competições que participam, destaca-se a Robocup, a qual existe desde 1997 e possui várias categorias, de sistemas reais ou simulados, onde equipes de vários países disputam partidas de futebol.
Trabalhando há mais de dez anos na ITAndroids, e atualmente ocupando o cargo de presidente, Marcos acompanhou de perto a evolução das tecnologias dos robôs desenvolvidos pela equipe, tanto a parte hardware, mas, sobretudo, a parte de software. Competições do gênero envolvem várias áreas do conhecimento, tais como visão computacional, inteligência artificial, aquisição e tratamentos de sinais, mecatrônica, teorias de controle, entre outras. As equipes de destaque conseguem aplicar táticas e técnicas inovadoras do estado da arte da robótica. As partidas demandam que os robôs realizem em tempo real as melhores ações para ganhar. Vale ressaltar que os robôs são geralmente fabricados com elementos eletromecânicos de médio ou baixo custos, cujas capacidades de memória, processamento e precisão são limitadas. Além disso, estão presentes incertezas nas medidas realizadas pelos sensores, bem como imperfeições de fabricação e perturbações externas, que tornam ainda mais desafiadora a partida.
Para competir com os melhores times do planeta, Marcos ressalta a importância de boas práticas antes e durante as competições. Do ponto de vista software, por exemplo, é fundamental que o código seja eficaz, modular, bem estruturado e devidamente testado. Também é muito relevante adotar boas práticas de Engenharia de Software, incluindo o versionamento do código e a realização de revisão de código. Isso facilita a capacidade de debug, torna o código mais robusto e reutilizável, além de facilitar a sua manutenção. Já do lado hardware, a calibração dos dispositivos é essencial para um bom desempenho. Durante as competições, é importante calibrar alguns elementos críticos dos robôs, como os encoders dos servo-motores presentes nas juntas, bem como as câmeras usadas para visão computacional. A equipe desenvolveu uma série de procedimentos e ferramentas que auxiliam nessas tarefas.
Uma das missões da ITAndroids é promover o desenvolvimento acadêmico por meio da robótica. Marcos orienta anualmente estudantes de graduação e mestrado que realizam trabalhos acadêmicos aplicados aos sistemas autônomos desenvolvidos pela equipe. Essa parceria beneficia tanto os estudantes, pois eles têm a oportunidade de realizar estudos baseados em problemas reais, como também a ITAndroids, visto que os resultados podem ser testados e eventualmente implementados otimizando seus sistemas. Outra vantagem para os estudantes é a possibilidade de submeter trabalhos acadêmicos ou artigos científicos para conferências e periódicos da área.
Um exemplo de problema que o grupo resolveu, e está continuamente aprimorando, é o movimento de caminhada de um pequeno robô humanoide. O robô tem uma altura de 50 cm e usa uma câmera e um sensor inercial de 6-eixos (acelerômetro 3D, girômetro 3D) para determinação da orientação do seu torso durante a caminhada. Depois que o robô recebe o comando com o ponto onde deve ir, uma série de algorítimos que Marcos ajudou a implementar entram em funcionamento contemporaneamente para realizar esta percepção e movimento.
O sistema de visão computacional recebe imagens de uma câmera instalada na cabeça do robô. Com essas informações, algoritmos são executados em um hardware dedicado para esse tipo de operações, e iterados a uma frequência de cerca de 10 Hz. O objetivo é extrair não somente informações da localização do robô no campo, com base em pontos referenciais fixos, mas também realizar a identificação e o rastreio de objetos em movimento, como, por exemplo, a bola e os outros jogadores. Um algoritmo de inteligência artificial com redes neurais, previamente treinado, é executado para identificar vários tipos de objetos. Variações na cor e reflexos entre o modelo treinado e as condições reais dificultam a operação. Esses erros podem aumentar o número de falsos positivos interpretados pelo robô. No entanto, a dificuldade maior é a reconstrução do mapa 3D, a partir da imagem 2D previamente capturada. Técnicas de filtragem das estimativas obtidas através das imagens, como o filtro de partículas, são usadas para melhorar o desempenho do algoritmo de rastreio da bola e de localização, respectivamente.
O movimento das pernas do robô é executado por servos motores nas juntas das pernas do pequeno humanoide, seguindo um algoritmo de caminhada, que envolve um gerador de padrão do centro de massa, um termo do tipo feedforward para compensar o efeito da gravidade e uma malha fechada com base nas medidas do sensor inercial para estabilização. O controle do movimento é computado em uma CPU e iterado a uma frequência de 125 Hz. Nesse caso, como os dados do sensor inercial são ruidosos, um algoritmo realiza a fusão dos dados de aceleração e velocidade angular de modo a haver uma boa estimativa do estado do robô. Um filtro de Kalman é aplicado a esses dados e, com um embasamento estatístico, é possível estimar a orientação do robô. Esta técnica de filtragem é muito utilizada em diversas aplicações cientificas há décadas, pois permite predizer o estado do sistema, a um custo computacional relativamente baixo, medindo grandezas físicas distintas. Dessa forma é possível compensar os pontos fracos de cada medida, como os ruídos no sinal de aceleração e os efeitos de deriva do giroscópio.
Assim como as regras das competições de robótica são frequentemente ajustadas, constantemente inovações são desenvolvidas na área de robótica tanto para hardware como software. Vale a pena conferir o canal do YouTube da ITAndroids para conhecer um pouco mais dos seus projetos e demonstrações, defesas de mestrado, aulas, entre outros materiais de estudo interessantes.
-------------------------------------------
I had the pleasure of chatting with Marcos Maximo, computer engineer, PhD in electronics, currently assistant professor at the Aeronautics Institute of Technology (ITA) and researcher at the Autonomous Computational Systems Laboratory. The focus of our conversation was his experiences working with robotics and autonomous systems.
During his graduation, Marcos was one of those responsible for the restructuring of ITAndroids, a team composed of undergraduate and graduate students from ITA aiming to participate in robotics competitions. Among the various competitions they participate in, Robocup stands out, which has existed since 1997 and has several categories, both real or simulated systems, where teams from different countries compete in soccer matches.
Working for more than ten years at ITAndroids, and currently holding the position of president, Marcos has closely followed the evolution of the technologies of the robots developed by the team, both the hardware part, but, above all, the software part. Competitions of this kind involve several areas of knowledge, such as computer vision, artificial intelligence, signal acquisition and treatments, mechatronics, control theories, among others. Outstanding teams are able to apply innovative state-of-the-art robotics tactics and techniques. The matches require the robots to perform the best actions in real time to win. It is noteworthy that robots are generally manufactured with medium or low-cost electromechanical elements, whose memory, processing and precision capabilities are limited. Furthermore, uncertainties are present in the measurements made by the sensors, as well as manufacturing imperfections and external disturbances, which make the match even more challenging.
To compete with the best teams on the planet, Marcos emphasizes the importance of good practices before and during competitions. From the software point of view, for example, it is essential that the code be effective, modular, well structured and properly tested. It is also very relevant to adopt good Software Engineering practices, including code versioning and code review. This facilitates debugging capabilities, makes the code more robust and reusable, and makes it easier to maintain. On the hardware side, device calibration is essential for good performance. During competitions, it is important to calibrate some critical elements of robots, such as encoders of the servomotors present in the joints, as well as the cameras used for computer vision. The team has developed a series of procedures and tools to help with these tasks.
One of ITAndroids' missions is to promote academic development through robotics. Marcos annually guides undergraduate and master's students who carry out academic work applied to the autonomous systems developed by the team. This partnership benefits both the students, as they have the opportunity to carry out studies based on real problems, and ITAndroids, as the results can be tested and eventually implemented optimizing their systems. Another advantage for students is the possibility of submitting academic works or scientific articles to conferences and periodicals in the area.
An example of a problem that the group solved, and is continually improving, is the walking movement of a small humanoid robot. The robot has a height of 50 cm and uses a camera and a 6-axis inertial sensor (3D accelerometer, 3D gyroscope) to determine the orientation of its torso during walking. After the robot receives the command with the point where it should go, a series of algorithms that Marcos helped to implement come into operation at the same time to carry out this perception and movement.
The computer vision system receives images from a camera installed on the robot's head. With this information, algorithms are executed on dedicated hardware for this type of operations, and iterated at a frequency of about 10 Hz. The objective is not only to extract information from the robot's location on the field, based on fixed reference points, but also to carry out the identification and tracking of moving objects, such as, for example, the ball and other players. An artificial intelligence algorithm with neural networks, previously trained, is executed to identify various types of objects. Variations in color and reflections between the trained model and real conditions make operation difficult. These errors can increase the number of false positives interpreted by the robot. However, the biggest difficulty is the reconstruction of the 3D map, from the previously captured 2D image. Filtering techniques of the estimates obtained through the images, such as the particle filter, are used to improve the performance of the ball tracking and localization algorithm, respectively.
The movement of the robot's legs is executed by servo motors at the joints of the small humanoid's legs, following a walking algorithm, which involves a centre of mass pattern generator, a feedforward type term to compensate for the effect of gravity and a closed loop based on inertial sensor measurements for stabilisation. Motion control is computed on a CPU and iterated at a frequency of 125 Hz. In this case, as the inertial sensor data are noisy, an algorithm performs the fusion of the acceleration and angular velocity data in order to have a good estimate of the state of the robot. A Kalman filter is applied to these data and, with a statistical basis, it is possible to estimate the robot's orientation. This filtering technique has been widely used in several scientific applications for decades, as it allows predicting the state of the system, at a relatively low computational cost, measuring different physical quantities. In this way it is possible to compensate for weak points in each measurement, such as noise in the acceleration signal and the drift effects of the gyroscope.
Just as the rules of robotics competitions are frequently adjusted, innovations are constantly being developed in the field of robotics for both hardware and software. It is worth checking the ITAndroids YouTube channel to learn a little more about their projects and demonstrations, master's defenses, classes, among other interesting study materials.
No comments:
Post a Comment