SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
ROS
Robot Operating System
Bruno Faúndez Valenzuela
Empezamos con una mentira...
ROS no es un sistema operativo.
(Pero el nombre suena fabuloso)
ROS es...
Herramientas:
● Visualización de datos (Rviz, RQT)
● Simulación de Robots (Gazebo, Stage)
● Desarrollo de paquetes (Catkin)
ROS es...
Bibliotecas:
● Permiten desarrollar fácilmente componentes en
lenguajes estándar (C++, Python, Matlab...)
● Posee bibliotecas para tareas habituales de
robótica (Geometría, navegación, estimación de
posición, diagnósticos, sensores...)
ROS es...
Convenciones:
● Sigue los estándares del estado del arte de la
robótica.
● Utiliza formatos ampliamente conocidos.
Y además...
● Es OpenSource: la robótica de uso general es
difícil, por lo que era necesaria una plataforma
de desarrollo colaborativo.
A grandes rasgos
● ROS es un framework pensado para
implementar aplicaciones de robótica de manera
distribuida.
Sus componentes principales:
● Roscore
● Nodos
● Tópicos
● Mensajes
● Servicios
● Parámetros
El Maestro
● ROS requiere un nodo coordinador para llamar a
los otros nodos
● Se ejecuta con:
● roscore
Lanzando el roscore
... logging to /home/bruno/.ros/log/1976e978-2e49-11e5-aa44-b803058568da/roslaunch-cronidea-2483.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://cronidea:51918/
ros_comm version 1.11.13
SUMMARY
========
PARAMETERS
* /rosdistro: indigo
* /rosversion: 1.11.13
NODES
auto-starting new master
process[master]: started with pid [2497]
ROS_MASTER_URI=http://cronidea:11311/
setting /run_id to 1976e978-2e49-11e5-aa44-b803058568da
process[rosout-1]: started with pid [2510]
started core service [/rosout]
¿Qué hemos hecho?
● Se lanzó el nodo maestro
● Se pueden controlar los tópicos
● Se pueden llamar servicios
● Se abrió el servidor de parámetros
Ahora podemos hablar de nodos
● Cualquier programa se ejecuta como nodo
● Existen herramientas para gestionar nodos:
● rosrun
● rosnode
Rosrun: ejecutor
● Con rosrun ejecutamos un nodo
● Sintaxis: rosrun <paquete> <nodo>
● Probemos...
● rosrun turtlesim turtlesim_node
¡Tortugas!
● Hemos lanzado un nodo simulador de tortugas :)
Ahora el rosnode...
● Tiene varias opciones:
● ping
● list
● info
● machine
● kill
● cleanup
● rosnode list nos muestra los nodos actualmente corriendo:
● /rosout
● /turtlesim
¿Qué está haciendo el nodo?
● Corremos:
● rosnode info turtlesim
● Obtenemos:
● Publications (Tópicos)
● Subscriptions (Tópicos)
● Services
● Connections...
¿Hablemos con el nodo? ¡Tópicos!
● Los tópicos son canales de comunicación
● Siguen el paradigma publisher/subscriber
● La herramienta para gestionarlos es rostopic:
● Comandos: bw, echo, find, hz, info, list, pub,
type
¿Cómo habla la tortuga?
● Con rostopic list podemos ver los tópicos
abiertos:
● /rosout
● /rosout_agg
● /turtle1/cmd_vel
● /turtle1/color_sensor
● /turtle1/pose
El movimiento de un robot
● Los comandos de movimiento generalmente se
transmiten en el tópico cmd_vel
● Consultamos el tópico:
● rostopic info /turtle1/cmd_vel
● Obtenemos:
● Type: geometry_msgs/Twist
¿Cómo bailo al Twist?
● Con rosmsg se puede ver información de los
mensajes traspasados en los tópicos
● Ejecutando:
● rosmsg show geometry_msgs/Twist
● Se obtiene:
Ahora puedo hablar en Tortugo
● Con rostopic pub se puede publicar un mensaje
directamente a un tópico
● rostopic pub -1 /turtle1/cmd_vel
geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0,
1.8]'
Y la tortuga se mueve...
¿No es muy... engorroso?
● Ya existen nodos pensados en publicar al tipo
de mensaje Twist: los teleoperadores
● El simulador de tortuga trae un nodo de control:
● rosrun turtlesim turtle_teleop_key
¡Ahora sí!
● rosrun turtlesim turtle_teleop_key
Reading from keyboard
---------------------------
Use arrow keys to move the turtle.
Antes de seguir avanzando...
● ¿Qué hemos hecho?
● Levantar un nodo maestro
● Abrir un nodo simulador
● Abrir un nodo de teleoperación
● Comunicar a ambos nodos
Viendo lo que tenemos
● Existen herramientas que nos permiten ver lo
que tenemos funcionando
● Rqt_graph nos permite ver los nodos como un
grafo
RQT Graph
● Ejecutamos:
● rosrun rqt_graph rqt_graph
Servicios
● Además de tópicos, un nodo puede abrir
servicios
● Los servicios se llaman, se ejecutan y
responden
● La herramienta para gestionar servicios es
rosservice con las opciones: args, call, find, info,
list, type, uri
¿Qué servicios tenemos?
● Rosservice list nos muestra:
● /clear
● /kill
● /reset
● /rosout/get_loggers
● /rosout/set_logger_level
● /spawn
● /teleop_turtle/get_loggers
● /teleop_turtle/set_logger_level
● /turtle1/set_pen
● /turtle1/teleport_absolute
● /turtle1/teleport_relative
● /turtlesim/get_loggers
● /turtlesim/set_logger_level
¿Otra tortuga? Bueno, ya
● El servicio /spawn genera nuevas tortugas
● Ejecutamos:
● rosservice info spawn
● Obtenemos:
Llamando un servicio
● Conociendo los argumentos, podemos
llamar rosservice call
● rosservice call /spawn 2 1 1.57 Stephen
¡Voilá! ¡Otra tortuga!
Con estos componentes ya podemos
desarrollar aplicaciones de robótica
● Sí, en serio
Existen nodos para todo
● Existen nodos para la mayoría de las tareas
habituales en robótica: localización, mapeo,
planificación de movimientos, simulación,
diagnóstico de datos, trabajo con sensores...
Los robots no están tan lejos
● Ya hay drones en la región (y en mi casa)
● Estudiantes de la Universidad de Chile
desarrollaron un robot de servicio (“Bender”)
● En Codelco ya trabajan con robots
Repito, no están lejos
Veamos un robot real
● O sea, no tan real... Vamos a simularlo
Roslaunch
● Roslaunch es un comando para lanzar muchos
nodos a la vez
● Los nodos se especifican en un archivo xml
● Si no está corriendo el roscore, se lanza
automáticamente
Turtlebot
● A los tipos de ROS les gustan las tortugas...
Simulando al turtlebot
● Existen paquetes listos para simular al Turtlebot
con sus funcionalidades reales
● Ejecutamos:
● roslaunch turtlebot_gazebo turtlebot_world.launch
Turtlebot + Gazebo
Haciendo mapas
● El turtlebot puede generar mapas de su entorno
usando sus sensores
● Ejecutamos:
● roslaunch turtlebot_gazebo gmapping_demo.launch
¡El robot ya no es ciego!
● gmapping es un paquete que realiza SLAM con
sensores laser
● SLAM: Localización y Mapeo Simultáneos
● Genera un mapa y calcula la posición del robot en el
mapa
¿Cómo ver el mapa?
● Llega RViz, la herramienta de visualización de
propósito general de ROS
● El turtlebot tiene un lanzador preconfigurado
para ver el turtlebot y el mapa que genera
● Ejecutamos:
● roslaunch turtlebot_rviz_launchers view_navigation.launch
RViz
Y ahora a moverse...
● Los paquetes de turtlebot traen un launchfile
configurado para lanzar un controlador del robot
● Ejecutamos:
● roslaunch turtlebot_teleop keyboard_teleop.launch
● Con j y l rotamos, y con i avanzamos
Turtlebot empieza a mapear
No es la única forma de moverse
● Turtlebot lee comandos Twist, por lo que lo
podemos controlar con el nodo de teleoperación del
simulador de tortuga
● Ejecutamos:
● rosrun turtlesim turtle_teleop_key
/turtle1/cmd_vel:=/cmd_vel_mux/input/teleop
¡Hemos visto lo esencial de los robots!
● Resumiendo:
● La arquitectura de nodos de ROS nos permite
levantar aplicaciones poderosas de robótica
● Los elementos quedan claramente separados, por
lo que son fáciles de estudiar
Antes de irnos
● ROS se puede instalar en distintos sistemas
operativos
● La principal instalación es sobre ubuntu, aunque
existen adaptaciones para Fedora, Android,
RaspberryPi...
● Instrucciones para instalar en Ubuntu:
● http://wiki.ros.org/indigo/Installation/Ubuntu
Instalar más componentes
● Desde los repositorios podemos instalar paquetes
de la forma:
● sudo apt-get install ros-[version]-[paquete]
● Por ejemplo:
● sudo apt-get install ros-indigo-turtlebot-simulator
¿Cómo instalo al turtlebot?
● El tutorial principal está en:
http://wiki.ros.org/Robots/TurtleBot
● Para instalar el turtlebot de simulador:
● http://wiki.ros.org/turtlebot_gazebo/Tutorials/indigo/Gazebo%20Bringup%20Guide
● http://wiki.ros.org/turtlebot_gazebo/Tutorials/indigo/Explore%20the%20Gazebo%20world
● http://wiki.ros.org/turtlebot_gazebo/Tutorials/indigo/Make%20a%20map%20and%20navigate%20with%20it
¿Cómo empiezo a desarrollar?
● Para desarrollar hay que conocer:
● El entorno de trabajo catkin:
http://wiki.ros.org/catkin/Tutorials
● Las bibliotecas específicas de nuestro
lenguaje:
● C++: http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29
● Python:http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29
¿Y para participar?
● Preguntar o responder: http://answers.ros.org/
● Inscribirse en la lista de correo:
http://lists.ros.org/mailman/listinfo/ros-users
ROS hoy
● La versión más reciente es ROS Jade
● La más popular y estable es ROS Indigo
● En la lista de correo se empieza a planificar ROS
2.0
● Hace poco fue la ROSCon 2015
● Sitio del evento: http://roscon.ros.org/2015/
● Pronto publicarán las charlas
● Análisis anual de ROS:
● http://download.ros.org/downloads/metrics/metrics-
report-2015-07.pdf
¡Hasta aquí llegamos!
● Ojalá que no se hayan aburrido
● Pueden descargar esta presentación en mi blog:
● brunofaundez.wordpress.com
● Me pueden escribir a:
● brunofaundezv@gmail.com

Contenu connexe

Tendances

Cable directo,cruzado y rollover
Cable directo,cruzado y rolloverCable directo,cruzado y rollover
Cable directo,cruzado y rolloverIan Berzeker Tovar
 
Introducción a la Capa de Red
Introducción a la Capa de RedIntroducción a la Capa de Red
Introducción a la Capa de RedJavier Peinado I
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCuplGilbert_28
 
Enrutamiento estatico
Enrutamiento estaticoEnrutamiento estatico
Enrutamiento estaticoAnthony
 
Control digital: Retenedor de orden cero y uno
Control digital: Retenedor de orden cero y uno Control digital: Retenedor de orden cero y uno
Control digital: Retenedor de orden cero y uno SANTIAGO PABLO ALBERTO
 
Mapa conceptual ucp
Mapa conceptual ucpMapa conceptual ucp
Mapa conceptual ucpBetzis2013
 
Curso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: DialplanCurso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: DialplanIrontec
 
Sessão do Modelo OSI-Camada 5
Sessão do Modelo OSI-Camada 5Sessão do Modelo OSI-Camada 5
Sessão do Modelo OSI-Camada 5Hélder Batista
 
Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)Julio Daniel Ruano
 
Utp pds_l5_transformada discreta de fourier
 Utp pds_l5_transformada discreta de fourier Utp pds_l5_transformada discreta de fourier
Utp pds_l5_transformada discreta de fourierc09271
 
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓNORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓNstandarman
 

Tendances (20)

Ethernet historia
Ethernet   historiaEthernet   historia
Ethernet historia
 
Cable directo,cruzado y rollover
Cable directo,cruzado y rolloverCable directo,cruzado y rollover
Cable directo,cruzado y rollover
 
Introducción a la Capa de Red
Introducción a la Capa de RedIntroducción a la Capa de Red
Introducción a la Capa de Red
 
Protocolos ruteo
Protocolos ruteoProtocolos ruteo
Protocolos ruteo
 
Unidad1_potenica.pdf
Unidad1_potenica.pdfUnidad1_potenica.pdf
Unidad1_potenica.pdf
 
direcciones ip no validas
direcciones ip no validasdirecciones ip no validas
direcciones ip no validas
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCupl
 
Enrutamiento estatico
Enrutamiento estaticoEnrutamiento estatico
Enrutamiento estatico
 
Modbus apostila
Modbus apostilaModbus apostila
Modbus apostila
 
DIRECCIONAMIENTO IP BASICO I
DIRECCIONAMIENTO IP BASICO IDIRECCIONAMIENTO IP BASICO I
DIRECCIONAMIENTO IP BASICO I
 
SISTEMAS LTI
SISTEMAS LTISISTEMAS LTI
SISTEMAS LTI
 
Control digital: Retenedor de orden cero y uno
Control digital: Retenedor de orden cero y uno Control digital: Retenedor de orden cero y uno
Control digital: Retenedor de orden cero y uno
 
Mapa conceptual ucp
Mapa conceptual ucpMapa conceptual ucp
Mapa conceptual ucp
 
Curso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: DialplanCurso de VoIP / Parte 03: Dialplan
Curso de VoIP / Parte 03: Dialplan
 
Sessão do Modelo OSI-Camada 5
Sessão do Modelo OSI-Camada 5Sessão do Modelo OSI-Camada 5
Sessão do Modelo OSI-Camada 5
 
Unidad 3 c1-control
Unidad 3 c1-control Unidad 3 c1-control
Unidad 3 c1-control
 
Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)
 
Utp pds_l5_transformada discreta de fourier
 Utp pds_l5_transformada discreta de fourier Utp pds_l5_transformada discreta de fourier
Utp pds_l5_transformada discreta de fourier
 
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓNORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
ORGANIZACIONES NACIONALES E INTERNACIONALES DE ESTANDARIZACIÓN
 
DIRECCIONAMIENTO IP: IPv4 y IPv6
DIRECCIONAMIENTO  IP: IPv4 y IPv6DIRECCIONAMIENTO  IP: IPv4 y IPv6
DIRECCIONAMIENTO IP: IPv4 y IPv6
 

Similaire à Presentación Taller ROS - Robotic Operating System

Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonCodeSyntax
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011Jano González
 
Network.Penetration.CGSOL
Network.Penetration.CGSOLNetwork.Penetration.CGSOL
Network.Penetration.CGSOLykro
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no ProgramadoresJavier_J
 
Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'AulaDeVideojuegos
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJano González
 
Javascript
JavascriptJavascript
JavascriptMaideoz
 
Javascript desde cero
Javascript desde ceroJavascript desde cero
Javascript desde ceroalbanis Meza
 

Similaire à Presentación Taller ROS - Robotic Operating System (20)

Ia Robotica
Ia RoboticaIa Robotica
Ia Robotica
 
Ia Robotica
Ia RoboticaIa Robotica
Ia Robotica
 
Introducción a ROS
Introducción a ROSIntroducción a ROS
Introducción a ROS
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en Python
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
 
Expo mandriva Linux
Expo mandriva LinuxExpo mandriva Linux
Expo mandriva Linux
 
Network.Penetration.CGSOL
Network.Penetration.CGSOLNetwork.Penetration.CGSOL
Network.Penetration.CGSOL
 
Decompiladores
DecompiladoresDecompiladores
Decompiladores
 
AdV - Programación para no Programadores
AdV - Programación para no ProgramadoresAdV - Programación para no Programadores
AdV - Programación para no Programadores
 
Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'Primera Interaula, 'Programación para no programadores'
Primera Interaula, 'Programación para no programadores'
 
Java Y Robocode
Java Y RobocodeJava Y Robocode
Java Y Robocode
 
Jano Gonzalez - jruby
Jano Gonzalez - jrubyJano Gonzalez - jruby
Jano Gonzalez - jruby
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterprise
 
Javascript
JavascriptJavascript
Javascript
 
Javascript
JavascriptJavascript
Javascript
 
Javascript desde cero
Javascript desde ceroJavascript desde cero
Javascript desde cero
 
Javascript
JavascriptJavascript
Javascript
 
Javascript completo
Javascript completoJavascript completo
Javascript completo
 
Javascript
JavascriptJavascript
Javascript
 
Presentacion
PresentacionPresentacion
Presentacion
 

Dernier

La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 

Dernier (20)

La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 

Presentación Taller ROS - Robotic Operating System

  • 1. ROS Robot Operating System Bruno Faúndez Valenzuela
  • 2. Empezamos con una mentira... ROS no es un sistema operativo. (Pero el nombre suena fabuloso)
  • 3. ROS es... Herramientas: ● Visualización de datos (Rviz, RQT) ● Simulación de Robots (Gazebo, Stage) ● Desarrollo de paquetes (Catkin)
  • 4. ROS es... Bibliotecas: ● Permiten desarrollar fácilmente componentes en lenguajes estándar (C++, Python, Matlab...) ● Posee bibliotecas para tareas habituales de robótica (Geometría, navegación, estimación de posición, diagnósticos, sensores...)
  • 5. ROS es... Convenciones: ● Sigue los estándares del estado del arte de la robótica. ● Utiliza formatos ampliamente conocidos.
  • 6. Y además... ● Es OpenSource: la robótica de uso general es difícil, por lo que era necesaria una plataforma de desarrollo colaborativo.
  • 7. A grandes rasgos ● ROS es un framework pensado para implementar aplicaciones de robótica de manera distribuida.
  • 8. Sus componentes principales: ● Roscore ● Nodos ● Tópicos ● Mensajes ● Servicios ● Parámetros
  • 9. El Maestro ● ROS requiere un nodo coordinador para llamar a los otros nodos ● Se ejecuta con: ● roscore
  • 10. Lanzando el roscore ... logging to /home/bruno/.ros/log/1976e978-2e49-11e5-aa44-b803058568da/roslaunch-cronidea-2483.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is &lt;1GB. started roslaunch server http://cronidea:51918/ ros_comm version 1.11.13 SUMMARY ======== PARAMETERS * /rosdistro: indigo * /rosversion: 1.11.13 NODES auto-starting new master process[master]: started with pid [2497] ROS_MASTER_URI=http://cronidea:11311/ setting /run_id to 1976e978-2e49-11e5-aa44-b803058568da process[rosout-1]: started with pid [2510] started core service [/rosout]
  • 11. ¿Qué hemos hecho? ● Se lanzó el nodo maestro ● Se pueden controlar los tópicos ● Se pueden llamar servicios ● Se abrió el servidor de parámetros
  • 12. Ahora podemos hablar de nodos ● Cualquier programa se ejecuta como nodo ● Existen herramientas para gestionar nodos: ● rosrun ● rosnode
  • 13. Rosrun: ejecutor ● Con rosrun ejecutamos un nodo ● Sintaxis: rosrun <paquete> <nodo> ● Probemos... ● rosrun turtlesim turtlesim_node
  • 14. ¡Tortugas! ● Hemos lanzado un nodo simulador de tortugas :)
  • 15. Ahora el rosnode... ● Tiene varias opciones: ● ping ● list ● info ● machine ● kill ● cleanup ● rosnode list nos muestra los nodos actualmente corriendo: ● /rosout ● /turtlesim
  • 16. ¿Qué está haciendo el nodo? ● Corremos: ● rosnode info turtlesim ● Obtenemos: ● Publications (Tópicos) ● Subscriptions (Tópicos) ● Services ● Connections...
  • 17. ¿Hablemos con el nodo? ¡Tópicos! ● Los tópicos son canales de comunicación ● Siguen el paradigma publisher/subscriber ● La herramienta para gestionarlos es rostopic: ● Comandos: bw, echo, find, hz, info, list, pub, type
  • 18. ¿Cómo habla la tortuga? ● Con rostopic list podemos ver los tópicos abiertos: ● /rosout ● /rosout_agg ● /turtle1/cmd_vel ● /turtle1/color_sensor ● /turtle1/pose
  • 19. El movimiento de un robot ● Los comandos de movimiento generalmente se transmiten en el tópico cmd_vel ● Consultamos el tópico: ● rostopic info /turtle1/cmd_vel ● Obtenemos: ● Type: geometry_msgs/Twist
  • 20. ¿Cómo bailo al Twist? ● Con rosmsg se puede ver información de los mensajes traspasados en los tópicos ● Ejecutando: ● rosmsg show geometry_msgs/Twist ● Se obtiene:
  • 21. Ahora puedo hablar en Tortugo ● Con rostopic pub se puede publicar un mensaje directamente a un tópico ● rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
  • 22. Y la tortuga se mueve...
  • 23. ¿No es muy... engorroso? ● Ya existen nodos pensados en publicar al tipo de mensaje Twist: los teleoperadores ● El simulador de tortuga trae un nodo de control: ● rosrun turtlesim turtle_teleop_key
  • 24. ¡Ahora sí! ● rosrun turtlesim turtle_teleop_key Reading from keyboard --------------------------- Use arrow keys to move the turtle.
  • 25. Antes de seguir avanzando... ● ¿Qué hemos hecho? ● Levantar un nodo maestro ● Abrir un nodo simulador ● Abrir un nodo de teleoperación ● Comunicar a ambos nodos
  • 26. Viendo lo que tenemos ● Existen herramientas que nos permiten ver lo que tenemos funcionando ● Rqt_graph nos permite ver los nodos como un grafo
  • 27. RQT Graph ● Ejecutamos: ● rosrun rqt_graph rqt_graph
  • 28. Servicios ● Además de tópicos, un nodo puede abrir servicios ● Los servicios se llaman, se ejecutan y responden ● La herramienta para gestionar servicios es rosservice con las opciones: args, call, find, info, list, type, uri
  • 29. ¿Qué servicios tenemos? ● Rosservice list nos muestra: ● /clear ● /kill ● /reset ● /rosout/get_loggers ● /rosout/set_logger_level ● /spawn ● /teleop_turtle/get_loggers ● /teleop_turtle/set_logger_level ● /turtle1/set_pen ● /turtle1/teleport_absolute ● /turtle1/teleport_relative ● /turtlesim/get_loggers ● /turtlesim/set_logger_level
  • 30. ¿Otra tortuga? Bueno, ya ● El servicio /spawn genera nuevas tortugas ● Ejecutamos: ● rosservice info spawn ● Obtenemos:
  • 31. Llamando un servicio ● Conociendo los argumentos, podemos llamar rosservice call ● rosservice call /spawn 2 1 1.57 Stephen
  • 33. Con estos componentes ya podemos desarrollar aplicaciones de robótica ● Sí, en serio
  • 34. Existen nodos para todo ● Existen nodos para la mayoría de las tareas habituales en robótica: localización, mapeo, planificación de movimientos, simulación, diagnóstico de datos, trabajo con sensores...
  • 35. Los robots no están tan lejos ● Ya hay drones en la región (y en mi casa) ● Estudiantes de la Universidad de Chile desarrollaron un robot de servicio (“Bender”) ● En Codelco ya trabajan con robots
  • 37. Veamos un robot real ● O sea, no tan real... Vamos a simularlo
  • 38. Roslaunch ● Roslaunch es un comando para lanzar muchos nodos a la vez ● Los nodos se especifican en un archivo xml ● Si no está corriendo el roscore, se lanza automáticamente
  • 39. Turtlebot ● A los tipos de ROS les gustan las tortugas...
  • 40. Simulando al turtlebot ● Existen paquetes listos para simular al Turtlebot con sus funcionalidades reales ● Ejecutamos: ● roslaunch turtlebot_gazebo turtlebot_world.launch
  • 42. Haciendo mapas ● El turtlebot puede generar mapas de su entorno usando sus sensores ● Ejecutamos: ● roslaunch turtlebot_gazebo gmapping_demo.launch
  • 43. ¡El robot ya no es ciego! ● gmapping es un paquete que realiza SLAM con sensores laser ● SLAM: Localización y Mapeo Simultáneos ● Genera un mapa y calcula la posición del robot en el mapa
  • 44. ¿Cómo ver el mapa? ● Llega RViz, la herramienta de visualización de propósito general de ROS ● El turtlebot tiene un lanzador preconfigurado para ver el turtlebot y el mapa que genera ● Ejecutamos: ● roslaunch turtlebot_rviz_launchers view_navigation.launch
  • 45. RViz
  • 46. Y ahora a moverse... ● Los paquetes de turtlebot traen un launchfile configurado para lanzar un controlador del robot ● Ejecutamos: ● roslaunch turtlebot_teleop keyboard_teleop.launch ● Con j y l rotamos, y con i avanzamos
  • 48. No es la única forma de moverse ● Turtlebot lee comandos Twist, por lo que lo podemos controlar con el nodo de teleoperación del simulador de tortuga ● Ejecutamos: ● rosrun turtlesim turtle_teleop_key /turtle1/cmd_vel:=/cmd_vel_mux/input/teleop
  • 49. ¡Hemos visto lo esencial de los robots! ● Resumiendo: ● La arquitectura de nodos de ROS nos permite levantar aplicaciones poderosas de robótica ● Los elementos quedan claramente separados, por lo que son fáciles de estudiar
  • 50. Antes de irnos ● ROS se puede instalar en distintos sistemas operativos ● La principal instalación es sobre ubuntu, aunque existen adaptaciones para Fedora, Android, RaspberryPi... ● Instrucciones para instalar en Ubuntu: ● http://wiki.ros.org/indigo/Installation/Ubuntu
  • 51. Instalar más componentes ● Desde los repositorios podemos instalar paquetes de la forma: ● sudo apt-get install ros-[version]-[paquete] ● Por ejemplo: ● sudo apt-get install ros-indigo-turtlebot-simulator
  • 52. ¿Cómo instalo al turtlebot? ● El tutorial principal está en: http://wiki.ros.org/Robots/TurtleBot ● Para instalar el turtlebot de simulador: ● http://wiki.ros.org/turtlebot_gazebo/Tutorials/indigo/Gazebo%20Bringup%20Guide ● http://wiki.ros.org/turtlebot_gazebo/Tutorials/indigo/Explore%20the%20Gazebo%20world ● http://wiki.ros.org/turtlebot_gazebo/Tutorials/indigo/Make%20a%20map%20and%20navigate%20with%20it
  • 53. ¿Cómo empiezo a desarrollar? ● Para desarrollar hay que conocer: ● El entorno de trabajo catkin: http://wiki.ros.org/catkin/Tutorials ● Las bibliotecas específicas de nuestro lenguaje: ● C++: http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29 ● Python:http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29
  • 54. ¿Y para participar? ● Preguntar o responder: http://answers.ros.org/ ● Inscribirse en la lista de correo: http://lists.ros.org/mailman/listinfo/ros-users
  • 55. ROS hoy ● La versión más reciente es ROS Jade ● La más popular y estable es ROS Indigo ● En la lista de correo se empieza a planificar ROS 2.0 ● Hace poco fue la ROSCon 2015 ● Sitio del evento: http://roscon.ros.org/2015/ ● Pronto publicarán las charlas ● Análisis anual de ROS: ● http://download.ros.org/downloads/metrics/metrics- report-2015-07.pdf
  • 56. ¡Hasta aquí llegamos! ● Ojalá que no se hayan aburrido ● Pueden descargar esta presentación en mi blog: ● brunofaundez.wordpress.com ● Me pueden escribir a: ● brunofaundezv@gmail.com