O ROS, Robot Operating System, fornece um ambiente estruturado e flexível, que promove a reutilização de código, e permite o rápido desenvolvimento de software para robot’s.
Para funcionar, o ROS precisa de um sistema operativo de base. O sistemas operativo adequado é o linux, preferencialmente distribuições do ubuntu e do debian. Como as distribuições do ROS acompanham as distribuições do ubuntu, este será o sistema mais aconselhado.
O ROS é um sistema que requer pelo menos um computador e não pode ser usado somente com microcontroladores.
A implementação do ROS consiste num conjunto de ferramentas, bibliotecas, mecanismos de comunicação e convenções que visam simplificar a tarefa de criar programas para robots complexos e robustos em diversas plataformas robóticas (hardware).
Do ponto de vista conceptual o ROS serve como base de um sistema de controlo e acção distribuído.
Existe um computador, ou mais computadores, onde correm vários processos (em diferentes terminais), sendo que um deles é o ROS master, e os outros são nodes que comunicam entre eles por publicação e subscrição de mensagens em tópicos.
Os microcontroladores aparecem na arquitectura do ROS como nodes, publicando os dados dos sensores, e subscrevendo os comandos para os actuadores, atravez da porta série.
O ambiente de exploração robótico em ROS contém ou integra-se facilmente com diversos pacotes de software especializados, com destaque para:
- Rviz (visualização)
- Gazebo (simulador)
- openCv (visão artificia)