Rodando o simulador flatland

O que é o flatland? É um “simulador de robôs bidimensional com foco na performance e compatível com ROS”[1].

O vídeo abaixo mostra o flatland em ação:

Fiz a instalação e alguns testes preliminares no Pop! OS 20.04 e usando a versão noetic do ROS. Para outras versões pode ser necessário adaptar algum comando.

Como instalar?

1º) Fazer a instalação do ROS versão Noetic (versão base)

Mais detalhes em http://wiki.ros.org/noetic/Installation/Ubuntu

2º) Instalar as dependências

Precisei instalar as dependências a seguir para o simulador funcionar. Eles englobam vários pacotes e pode ser que alguns deles já estejam instalados no seu sistema. As dependências podem ser instaladas através do apt:

sudo apt install ros-noetic-tf ros-noetic-tf2 ros-noetic-tf2-geometry-msgs ros-noetic-interactive-markers libyaml-cpp-dev qtbase5-dev liblua5.3-dev

3º) Instalar o simulador em si

Seguir o tutorial “Create Plugin Tutorial”: https://flatland-simulator.readthedocs.io/en/latest/flatland_tutorials/create_plugin.html

Até esse ponto, usando o comando roslaunch (último comando do tutorial) deve abrir o simulador sem nada muito interessante

4º) Rodar o modelo básico

Uma vez instalado o flatland é possível criar um modelo básico que pode interagir com o mapa

Para isso siga o tutorial “Quick start”: https://flatland-simulator.readthedocs.io/en/latest/quick_start.html

Se tudo deu certo agora você pode mandar mensagens nos tópicos do ROS controlando o robô.

Se você não entendeu o parágrafo acima e/ou o que é o ROS vale a pena visitar o site do projeto antes de mais nada: https://www.ros.org/

Se você já sabe o que é o ROS e o que é um tópico pode mandar mensagens do tipo Twist para controlar o robô via linha de comando da seguinte maneira

rostopic pub -1 /cmd_vel geometry_msgs/Twist ‘{linear: {x: 1.0, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}’

O comando acima faz o robô andar para a frente. Se o valor de x for negativo ele vai andar para trás. Para girar o robô modifique o valor de z da velocidade angular.

5) Controlando o robô via Python

Fiz um programa em Python bem básico que faz o robô ser controlável pelo teclado: ‘a’ e ‘z’ fazem o robô andar para frente e para trás respectivamente e ‘s’ e ‘x’ para girar o robô. A tecla ‘q’ faz o robô parar e encerra o programa.

O código está disponível abaixo.

Script em Python para controlar um robô via ROS

Se o ROS estiver corretamente instalado o programa abaixo deve funcionar sem precisar de nenhuma instalação adicional.

Referências:

[1] Site do flatland https://flatland-simulator.readthedocs.io/en/latest/index.html

[2] Site do ROS https://www.ros.org/

Palestra Tchelinux Live 2021 – Detecção de objetos com imagens usando Keras e Python

Link da palestra:

Alguns links de referência para quem assistiu a palestra

Apresentação no Tchelinux 2020

Artigos do prof. Ricardo:

https://ricardomatsumura.medium.com/material-de-apoio-para-aulas-de-intelig%C3%AAncia-artificial-e-aprendizado-ce43543e886d

Site do PinguimBots:

http://www.pinguimbots.com/


Artigo no qual baseamos a versão inicial do nosso código:

Código no GitHub

https://github.com/viniciusalveshax/object-detection-2021

Palestra Tchelinux Live 2020

Para quem assistiu a palestra do Tchelinux Live deixo algum material complementar.

Ted Talk – The first 20 hours – Josh Kaufmann:

Trailer do filme Robocop (envelheceu bem):

Robôs da Boston Dynamics (assista com ceticismo):

Dataset utilizado:

Descrição: PALECHOR, Fabio Mendoza; DE LA HOZ MANOTAS, Alexis. Dataset for estimation
of obesity levels based on eating habits and physical condition in individuals from
Colombia, Peru and Mexico. Data in brief, v. 25, p. 104344, 2019.

Onde baixar: https://archive.ics.uci.edu/ml/datasets/Estimation+of+obesity+levels+based+on+eating+habits+and+physical+condition+

Arquivos da apresentação (incluindo o código):

https://github.com/viniciusah/conteudos_diversos/tree/main/tchelinux-live-2020

Para saber mais sobre IA e robótica acesse:

Agradecimentos

Ao prof. Ricardo (http://www.ricardoaraujo.net/) e ao grupo PinguimBots (http://www.pinguimbots.com/) pelo grande aprendizado que propiciou essa palestra;

A organização do evento Tchelinux Live, especialmente Leo Vaz, Diego Costa e Rafael Jeffman;

A todo mundo que prestigiou a palestra e esse texto, incluindo você 🙂

Olá, mundo!

Começando então um novo projeto que eu pretendo utilizar para centralizar conteúdos interessantes que tenham relação com computação e TI