Workshop 2014

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 31

ROS WORKSHOP

2014

ROS WORKSHOP 2014
INTRODUCTION

ROS WORKSHOP 2014
INTRODUCTION
What is ROS?
A meta operating system for robots
A collection of packaging, software building tools
An architecture for distributed inter-process/inter-machine communication and
configuration
Development tools for system runtime and data analysis
A language-independent architecture (c++, python, lisp, java, and more)

ROS WORKSHOP 2014
INTRODUCTION
What is ROS not?
An actual operating system
A programming language
A programming environment /IDE
A hard real-time architecture
,

ROS WORKSHOP 2014
INTRODUCTION
ROS main features
Distributed framework
Reuse code
Language independent
Easy testing on Real Robot & Simulation
Scaling.

ROS WORKSHOP 2014
INTRODUCTION
CORE COMPONENTS

ROS WORKSHOP 2014
INTRODUCTION
Communications Infrastructure
The ROS middleware provides these facilities:

Message Passing

Recording and Playback of Messages

Remote Procedure Calls

Distributed Parameter System



ROS WORKSHOP 2014
INTRODUCTION
Robot-Specific Features

Standard Robot Messages

Robot Geometry Library

Robot Description Language

Preemptable Remote Procedure Calls

Diagnostics

Pose Estimation, Localization, and Navigation



ROS WORKSHOP 2014
INTRODUCTION
Tools

Command-Line Tools

Rviz

Rqt

ROS WORKSHOP 2014
INTRODUCTION
ROBOTS USING ROS

ROS WORKSHOP 2014
INTRODUCTION

ROS WORKSHOP 2014
INTRODUCTION
ROS DISTRIBUTIONS

ROS WORKSHOP 2014
INTRODUCTION
Current Distribution Releases

22 July 2014 - Indigo Igloo

4 September 2013 Hydro Medusa

31 December 2012 Groovy Galapagos



ROS WORKSHOP 2014
INTRODUCTION
End of Life (EOL) Distribution Releases
23 April 2012 Fuerte
30 Aug 2011 Electric Emys
2 March 2011 Diamondback
3 August 2010 C Turtle
1 March 2010 Box Turtle
22 January 2010 ROS 1.0

ROS WORKSHOP 2014
INTRODUCTION
We are using ROS Hydro Medusa in Ubuntu 12.04 LTS Precise Pangolin

ROS WORKSHOP 2014
INTRODUCTION
OVERVIEW OF ROS ARCHITECTURE

ROS WORKSHOP 2014
INTRODUCTION

ROS WORKSHOP 2014
INTRODUCTION

ROS WORKSHOP 2014
INTRODUCTION
Nodes: executables that uses ROS middleware to communicate with other
nodes, they are processes and communication happens by publish/subscribe
Topics: nodes can publish messages to a topic or subscribe to a topic to
receive messages; a topic is a typed communication channel
Messages: data type for the Topics
Master: Name service for ROS
rosout: standard output and standard error for ROS
roscore: Master + rosout + parameter server

ROS WORKSHOP 2014
INTRODUCTION
NODES

ROS WORKSHOP 2014
INTRODUCTION
Nodes use a client library to
communicate with other nodes
Nodes can publish/subscribe to a Topic
Nodes can use a Service
Nodes are implemented using client libraries

rospy: Python library

roscpp: C++ library

rosjava: java library (for android)



ROS WORKSHOP 2014
INTRODUCTION
ROS TOPICS

ROS WORKSHOP 2014
INTRODUCTION
The rostopic command-line tool displays information about ROS topics. Currently, it can
display a list of active topics, the publishers and subscribers of a specific topic, the
publishing rate of a topic, the bandwidth of a topic, and messages published to a topic.
The display of messages is configurable to output in a plotting-friendly format.

ROS WORKSHOP 2014
INTRODUCTION
ROS MESSAGES

ROS WORKSHOP 2014
INTRODUCTION
ROS uses a simplified messages description language for describing the data values
that ROS nodes publish. This description makes it easy for ROS tools to automatically
generate source code for the message type in several target languages. Message
descriptions are stored in .msg files in the msg/ subdirectory of a ROS package.

ROS WORKSHOP 2014
INTRODUCTION
ROSCORE

ROS WORKSHOP 2014
INTRODUCTION
The ROS core is a set of the only three programs that are necessary for the ROS
runtime.
They include:
ROS Master
A centralized XML-RPC server
Negotiates communication connections
Registers and looks up names for ROS graph resources
Parameter Server Stores persistent configuration parameters and other arbitrary
data
rosout : A network-based stdout for human-readable messages

ROS WORKSHOP 2014
INTRODUCTION

ROS WORKSHOP 2014
INTRODUCTION

ROS WORKSHOP 2014
INTRODUCTION

You might also like