Robot Operating System (ROS)

Documentos relacionados
Robot Operating System (ROS)

Robot Operating System (ROS)

Criação de um Pacote ROS com o Modelo de um Robô

Unified Robot Description Format (URDF)

Jacobiano no ROS. Walter Fetter Lages

Estilos Arquiteturais

Implementação de Controladores no ROS

Sistemas Autônomos através do Robot Operating System (ROS)

Engenharia de Controle e Automação: ENG03316 Mecanismos I Engenharia Elétrica: ENG10017 Sistemas e Sinais e ENG04475 Microprocessadores I

Arquiteturas de Software

Sistemas Distribuídos

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Quando Distribuir é bom

Instrumentos Analógicos e Digitais

Funcionalidade e Protocolos da Camada de Aplicação

Redes de Computadores

PROVA 03/07 Segunda-feira (semana que vem)

SAMBA4 Para Ambientes Corporativos. Nome: Caio Monteiro Web:

ROS Robot Operating System. Diones Fischer Felipe Almeida Luan Silveira Matheus Longaray Silvia S. C. Botelho

Reúso de Software. Adaptado de. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide by Pearson Education

OpenWrt: modelagem do

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services

Camera, Kinect e ROS. Andrey Masiero. 5 de fevereiro de 2016

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Brilliant Solutions for a Safe World

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Soluções em tecnologia da informação que viabilizam implementar uma arquitetura computacional escalável, sólida e confiável em nuvem distribuída.

Virtualização do System302 em ambiente VMWARE

Histórico e conceitos básicos. GSO I Gestão de Sistemas Operacionais

Arquitetura de Software Parte 2/3-Estilos Arquiteturais. Jorge H. C. Fernandes Junho de 1999

Arquiteturas. capítulo

UTILIZAÇÃO DA BIBLIOTECA DIMEPSAT PARA ANDROID

Ctree Server: Instalação

SISTEMAS DISTRIBUÍDOS ARQUITETURAS. Slides cedidos pela Professora Aline Nascimento

Visões Arquiteturais. Visões Arquiteturais

Engenharia de Requisitos

Instalação do IBM SPSS Modeler Entity Analytics

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

GERENCIAMENTO DE REDES: Aluno: Gianluca de Campos Engenharia de Computação

Escrito por Luís Talora Qui, 19 de Maio de :32 - Última atualização Seg, 11 de Julho de :45

Disciplina de. Programação de Robôs Móveis SSC-0712

Arquitetura de Software visão emergente

Universidade Tecnológica Federal do Paraná (UTFPR) Disciplina: CPGEI/PPGCA - Robótica Móvel Experimentação Virtual

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Desenvolvimento de Aplicações Distribuídas

Introdução à Computação

Índice. Introdução. Pré-requisitos. Requisitos. Componentes Utilizados

Brilliant Solutions for a Safe World

CATÁLOGO DE SERVIÇOS DE TI Versão 2.0 DEPARTAMENTO DE TECNOLOGIA DA INFORMAÇÃO

Desenvolvimento de Aplicações Distribuídas

Responsáveis: Bruno Silva, André Coelho, Wellington Silva, Marcelo Hirano. Atualizado em: 08/09/2017 CONFIGURAÇÃO DE BACKUP DE ORIGEM LINUX

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Administração Central Cetec Capacitações Capacitação Sistema Operacional Linux Semana III

Transcrição:

Robot Operating System (ROS) Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG04479 Robótica A Copyright (c) Walter Fetter Lages p.1

Introdução ROS é um pseudo sistema operacional com bibliotecas e ferramentas para desenvolvimento de software para robôs: Gerenciamento de pacotes Abstração de hardware Bibliotecas com algoritmos comumente utilizados Simuladores Mecanismos de comunicação scripts úteis Copyright (c) Walter Fetter Lages p.2

Porque ROS? Código aberto Centralização das informações Reuso de código Desenvolvimento em grupo Processamento inerentemente distribuído Nodos fracamente acoplados Copyright (c) Walter Fetter Lages p.3

Histórico Sistema desenvolvido em Stanford em 2000 para o robô STAIR 1 Aperfeiçoado em 2007 pela Willow Garage para o robô PR2 e denominado ROS Copyright (c) Walter Fetter Lages p.4

Versões do ROS Jade Turtle - maio de 2015 Indigo Igloo - maio de 2014 Hydro Medusa - setembro de 2013 Groovy Galapagos - dezembro de 2012 Fuerte Turtle - abril de 2012 Electric Emys - agosto de 201; Diamondback - março de 2011 C Turtle - agosto de 2010 Box Turtle - março de 2010 Copyright (c) Walter Fetter Lages p.5

Sistema Operacional Host Linux é o sistema operacional host A distribuição "oficial" é a Ubuntu Outras distribuição suportadas: Ubuntu ARM; OS X OpenEmbedded/Yocto Debian Arch Linux Ângström UDOO Android Código fonte robotpkg Copyright (c) Walter Fetter Lages p.6

Conceitos O ROS é organizado utilizando o conceito de pacotes Nodos Bibliotecas Definições de mensagens Arquivos de configuração Plugins Pacotes podem ser agrupados em metapacotes Copyright (c) Walter Fetter Lages p.7

Pacotes Menor nível na organização do ROS Dedicados a uma única funcionalidade Cada pacote deve ser implementado em um diretório Copyright (c) Walter Fetter Lages p.8

Estrutura de um Pacote nome_do_pacote src/...códigos-fonte bin/...executáveis lib/... Bibliotecas build/... Temporários launch/...scripts de carga include/... Arquivos de cabeçalho package.xml...metadados e dependências CMakelist.txt...Configuração do Cmake Copyright (c) Walter Fetter Lages p.9

Metapacotes Agrupam pacotes que em conjunto oferecem uma funcionalidade mais abstrata Pacotes não podem depender de metapacotes Copyright (c) Walter Fetter Lages p.10

Gráfico de Computação Representa a comunicação entre os nodos Nodo: processo do sistema operacional Tópico: mecanismo de comunicação entre nodos do tipo publisher/subscriber Mensagem: dados publicados nos tópicos Serviço: mecanismo de comunicação entre nodos do tipo RPC Copyright (c) Walter Fetter Lages p.11

Mestre Nodo que provê serviços de registro e consulta de nomes de nodos, tópicos e serviços Ao iniciar, os nodos devem registrar-se com o mestre Ao subscrever um tópico, os nodos consultam o mestre e estabelecem conexão diretamente entre si Copyright (c) Walter Fetter Lages p.12

Servidor de Parâmetros Dicionário acessível aos nodos Parte do ROS master Nodos podem usar o servidor de parâmetros para armazenar e recuperar parâmetros Não projetado para alto desempenho Adequado para parâmetros de configuração Copyright (c) Walter Fetter Lages p.13

Tópicos Nodos podem publicar mensagens em tópicos Cada tópico pode ter vários publicadores e assinantes Cada nodo pode publicar ou assinar vários tópicos Publicadores e assinantes não sabem da existência um dos outros A ordem de execução não é garantida Comunicação assíncrona Copyright (c) Walter Fetter Lages p.14

Serviços Tópicos não são apropriados para solicitação de serviços entre nodos Serviços oferecem um mecanismo de requisição/resposta Copyright (c) Walter Fetter Lages p.15

Action Servers Apropriados para serviços exigem longo tempo de execução Permitem o cancelamento da requisição Permitem receber informações sobre o status da execução Copyright (c) Walter Fetter Lages p.16

Gazebo Simulador 3D Suporta diversos backends Open Dynamics Engine (ODE) Bullet O modelo do robô é descrito em URDF Copyright (c) Walter Fetter Lages p.17

Barrett WAM no Gazebo Copyright (c) Walter Fetter Lages p.18

URDF Formato XML para descrição de robôs Descreve a geometria e propriedades de massa <robot name="twil" >: definição do nome do robô <link name="chassis" >: define um elo do robô <mass value="6.4923"/>: define a messa do ele <inertia=... >: define a inércia do elo <geometry> <mesh filename="package://twil/meshes/chassis.stl </geometry>: STL com a geometria do elo <joint name="right_wheel_suport_joint"type="fixed" >: define uma junta fixa Copyright (c) Walter Fetter Lages p.19

Exemplo de URDF <robot name="twil"> <link name="chassis"> <inertial> <origin xyz="6.3955e 06 2.1963E 17 0.27338" rpy="0 0 0" /> <mass value="6.4923" /> <inertia ixx="0.67525" ixy="0.0014553" ixz=" 0.00017525" </inertial> <visual> iyy="0.69058" iyz=" 6.3289E 18" izz="0.28611" /> <origin xyz="0 0 0" rpy="0 0 0" /> <geometry> <mesh filename="package://twil/meshes/chassis.stl" /> </geometry> </visual> Copyright (c) Walter Fetter Lages p.20

Exemplo de URDF <collision> <origin xyz="0 0 0" rpy="0 0 0" /> <geometry> <mesh filename="package://twil/meshes/chassis.stl" /> </geometry> </collision> </link>.. <joint name="right_wheel_suport_joint" type="fixed"> <origin xyz="0 0.161 0.002" rpy="0 0 0" /> <parent link="chassis" /> <child link="right_wheel_suport" /> <axis xyz="0 0 0" /> </joint> </robot> Copyright (c) Walter Fetter Lages p.21

Meta-pacote ufrgs_wam Pacote para o robô Barrett WAM adaptado para o robô da UFRGS ufrgs_wam/ CMakelist.txt package.xml wam_description/ wam_controllers/ Copyright (c) Walter Fetter Lages p.22

Pacote wam_description wam_description launch/ wam.launch wam_sim.launch package.xml meshes/ wam1.stl. wambase.stl xacro/ wam_base.urdf.xacro. wam.urdf.xacro Copyright (c) Walter Fetter Lages p.23

Pacote wam_controllers wam_controllers/ CMakeLists.txt config/ computed_torque_control.yaml include/ wam_controllers/ computed_torque_controller.h launch/ computed_torque.launch lib/ libwam_controllers.so package.xml src/ computed_torque_controller.cpp wam_controllers_plugins.xml scripts move_home.sh Copyright (c) Walter Fetter Lages p.24

Gráfico de Computação do WAM Copyright (c) Walter Fetter Lages p.25

Barrett WAM no Gazebo Copyright (c) Walter Fetter Lages p.26