Iniciei esta semana com a implementação da arquitetura ROS discutida na ultima reunião semanal. A arquitetura implementada, sem o modo automático (Navigation), pode ser visualizada na seguinte imagem:
Foi então criado um nó sensorRS232_v2 ( “v2” para não confundir com outro nó utilizado no bin picking ) para estar constantemente a publicar as leituras no tópico /output_laser_sensor., e um nó que verifica o alcance do laser “check_feasibility” e publica uma mensagem no tópico /feasibitity, que pode ser: "Platform should move." ou "Platform should stop." O limiar utilizado por este nodo é carregado através do ficheiro “checker_params.yaml”, o que possibilita a troca do limiar sem haver a necessidade de compilação. Posto isto foi criado um nodo denominado por “integrated_referee” que subscreve os botes do joystick (/joy) e o tópico /feasibitity de modo a decidir se pode ou não mover a plataforma. Para isso é necessário enviar a mensagem para o tópico /navi_comands com a velocidade linear e angular desejada. Para ver a arquitetura total com o modo automático incorporado, sugiro a visualização neste link para melhor perceção: https://ibb.co/1d3ht9f
Após a tentativa de implementação da arquitetura desenvolvida, surgiu um problema que importa salientar. Uma vez que existem 3 laseres que trabalhavam de forma independente (2 para a plataforma, 1 para o manipulador), existiam conflitos que se deviam à leitura correta dos lasers, ou seja existia uma falsa correspondência para a porta escolhida e o laser que realente se queria ler.
Durante a semana, tive uma reunião com investigador Rafael Lírio Arrais, do departamento de robótica do inesctec, que serviu para discutir alguns projetos realizados pelo o mesmo, na área de manipulação móvel para a industria.
Paralelamente às tarefas anteriores, continuei a investigar métodos e estratégias para implementação da cinemática integrada do ROBONUC.