Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição...
Transcript of Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição...
![Page 1: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/1.jpg)
Robot Operating System (ROS)Introdução e Implementação de Controladores
Walter Fetter [email protected]
Universidade Federal do Rio Grande do Sul
Escola de Engenharia
Departamento de Sistemas Elétricos de Automação e Energia
SBAI 2017
Copyright (c) Walter Fetter Lages – p.1
![Page 2: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/2.jpg)
Introdução
ROS é um pseudo sistema operacional comferramentas para desenvolvimento de software pararobôs:
• Gerenciamento de pacotes• Abstração de hardware
• Bibliotecas com algoritmos comumenteutilizados
• Simuladores• Mecanismos de comunicação• scripts úteis
Copyright (c) Walter Fetter Lages – p.2
![Page 3: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/3.jpg)
Porque ROS?
• Código aberto• Centralização das informações• Reuso de código• Desenvolvimento em grupo• Processamento inerentemente distribuído• Nodos fracamente acoplados• Parar de reinventar a roda
Copyright (c) Walter Fetter Lages – p.3
![Page 4: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/4.jpg)
Histórico
• Sistema desenvolvido em Stanford em 2000 parao robô STAIR 1
• Aperfeiçoado em 2007 pela Willow Garage parao robô PR2 e denominado ROS
Copyright (c) Walter Fetter Lages – p.4
![Page 5: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/5.jpg)
Versões do ROS
• Lunar Loggerhead - 23 de maio de 2017• Kinetic Kame - 23 de maio de 2016• Jade Turtle - 23 de maio de 2015• Indigo Igloo - 22 de julho de 2014• Hydro Medusa - 4 de setembro de 2013• Groovy Galapagos - 31 de dezembro de 2012• Fuerte Turtle - 23 de abril de 2012• Electric Emys - 30 de agosto de 2011• Diamond Back - 2 de março de 2011• C Turtle - 2 de agosto de 2010• Box Turtle - 2 de março de 2010
Copyright (c) Walter Fetter Lages – p.5
![Page 6: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/6.jpg)
Sistema Operacional Host
• Linux é o sistema operacional host
• A distribuição "oficial" é a Ubuntu• Outras distribuição suportadas:
• Ubuntu ARM• OS X• Yocto• Debian• Arch Linux• Ângström• UDOO• Android• Código fonte• robotpkg Copyright (c) Walter Fetter Lages – p.6
![Page 7: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/7.jpg)
Conceitos
• O ROS é organizado em pacotes• Nodos (processo do sistema operacional
hospedeiro)• programas utilitários• Bibliotecas• Definições de mensagens• Arquivos de configuração• Plugins
• Pacotes podem ser agrupados em metapacotes
Copyright (c) Walter Fetter Lages – p.7
![Page 8: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/8.jpg)
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
![Page 9: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/9.jpg)
Estrutura de um Pacote
catkin_ws/
build/nome_do_pacote/ ...........Temporários
devel/lib/ ...........................Bibliotecasnome_do_pacote/ ...........Executáveissetup.bash ..........Script de configuração
src/nome_do_pacote/src/ ......................Códigos-fontelaunch/ .................Scripts de cargascripts/ .................Outros scripts
include/ ...........Arquivos de cabeçalhopackage.xml ...Metadados e dependênciasCMakelist.txt ..Configuração do Cmake
Copyright (c) Walter Fetter Lages – p.9
![Page 10: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/10.jpg)
Metapacotes
• Agrupam pacotes que em conjunto oferecem umafuncionalidade mais abstrata• Pacotes não podem depender de metapacotes
Copyright (c) Walter Fetter Lages – p.10
![Page 11: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/11.jpg)
roscore
• roscore é um conunto de nodos e programasque são pré-requisitos para um sistema ROS
• Deve ser executado para que os nodos do ROSpossam se comunicar
• É lançado com o comando roscore• O comando roslaunch também lança oroscore, se ele ainda não estiver executando
• O roscore inicia os seguintes nodos:• ROS master• ROS parameter server• rosout
Copyright (c) Walter Fetter Lages – p.11
![Page 12: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/12.jpg)
ROS Master
• Nodo que provê serviços de registro e consulta denomes de nodos, tópicos e serviços
• Ao iniciar, os nodos devem registrar-se com omestre
• Ao subscrever um tópico, os nodos consultam omestre e estabelecem conexão diretamente entresi
• É lançado pelo comando roscore• O computador onde o ROS Master está
executando é especificado através da variável deambiente ROS_MASTER_URI
Copyright (c) Walter Fetter Lages – p.12
![Page 13: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/13.jpg)
Servidor de Parâmetros
• Nodo que provê um dicionário acessível aosdemais nodos
• É lançado pelo comando roscore• 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• Não é um substituto para aplicações de banco
de dados
Copyright (c) Walter Fetter Lages – p.13
![Page 14: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/14.jpg)
Comunicação através de Tópicos
Nodo: processo do S.O. hospedeiro
Tópico: mecanismo de comunicação entre nodos dotipo publisher/subscriber
Mensagem: dados publicados nos tópicos
Gráfico de computação: Representa a comunicaçãoentre os nodos através de tópicos
Copyright (c) Walter Fetter Lages – p.14
![Page 15: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/15.jpg)
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áriostópicos
• Publicadores e assinantes não sabem daexistência um dos outros
• A ordem de execução não é garantida• Comunicação assíncrona
Copyright (c) Walter Fetter Lages – p.15
![Page 16: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/16.jpg)
Serviços
• Tópicos não são apropriados para solicitação deserviços entre nodos
Serviço: mecanismo de comunicação entre nodos dotipo remote procedure call (RPC)
• Serviços oferecem um mecanismo derequisição/resposta
Copyright (c) Walter Fetter Lages – p.16
![Page 17: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/17.jpg)
Action Servers
• Apropriados para serviços exigem longo tempode execução
• Permitem o cancelamento da requisição• Permitem receber informações sobre o status da
execução
Copyright (c) Walter Fetter Lages – p.17
![Page 18: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/18.jpg)
Rviz
• Rviz é uma ferramenta do ROS para vizualização• Mostra de forma conveniente dados publicados
em tópicos
Copyright (c) Walter Fetter Lages – p.18
![Page 19: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/19.jpg)
Gráfico de Computação
• A ferramenta rqt_graph Permite vizualizar osnodos e tópicos
Copyright (c) Walter Fetter Lages – p.19
![Page 20: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/20.jpg)
Gazebo
• Simulador 3D• Suporta diversos backends
• Open Dynamics Engine (ODE)• Bullet
• O modelo do robô é descrito em URDF
Copyright (c) Walter Fetter Lages – p.20
![Page 21: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/21.jpg)
Barrett WAM no Gazebo
Copyright (c) Walter Fetter Lages – p.21
![Page 22: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/22.jpg)
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 fixaCopyright (c) Walter Fetter Lages – p.22
![Page 23: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/23.jpg)
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"
iyy="0.69058" iyz="−6.3289E−18" izz="0.28611" />
</inertial>
<visual>
<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.23
![Page 24: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/24.jpg)
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.24
![Page 25: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/25.jpg)
Meta-pacote ufrgs_wam
• Pacote para o robô Barrett WAM adaptado para orobô da UFRGS
ufrgs_wam/CMakelist.txtpackage.xml
wam_description/wam_controllers/
Copyright (c) Walter Fetter Lages – p.25
![Page 26: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/26.jpg)
Pacote wam_description
wam_description/
launch/wam.launchwam_sim.launch
package.xmlmeshes/wam1.stl...wambase.stl
xacro/wam_base.urdf.xacro...wam.urdf.xacro
Copyright (c) Walter Fetter Lages – p.26
![Page 27: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/27.jpg)
Pacote wam_controllerswam_controllers/CMakeLists.txt
config/computed_torque_control.yaml
include/wam_controllers/computed_torque_controller.h
launch/computed_torque.launch
package.xmlsrc/computed_torque_controller.cpp
wam_controllers_plugins.xml
scripts/move_home.shmove_zero.sh
Copyright (c) Walter Fetter Lages – p.27
![Page 28: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/28.jpg)
Gráfico de Computação do WAM
Copyright (c) Walter Fetter Lages – p.28
![Page 29: Robot Operating System (ROS)fetter/sbai2017-ros/intro.pdf · URDF • Formato XML para descrição de robôs • Descreve a geometria e propriedades de massa •](https://reader034.fdocumentos.tips/reader034/viewer/2022042404/5f1b792eb6abaa4cd51bdd76/html5/thumbnails/29.jpg)
Barrett WAM no Gazebo
Copyright (c) Walter Fetter Lages – p.29