Robot Operating System ROS: Textbook P. 9 21

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

Robot Operating System

ROS

Textbook
P. 9~21

1
Contents
I. About ROS

II. Meta operating system

III. Purpose of ROS

IV. Configuration of ROS

V. ROS ecosystem

VI. History of ROS

VII.Version of ROS Textbook


P. 9~21

2
Introduction to ROS

3
ROS?

ROS is an open-source, meta-operating sy


stem for your robot. It provides the services y
ou would expect from an operating system, in
cluding hardware abstraction, low-level device
control, implementation of commonly-used fu
nctionality, message-passing between process
es, and package management. It also provides
tools and libraries for obtaining, building, writ
ing, and running code across multiple comput
ers.

http://www.ros.org/wiki/

http://www.ros.org/news/ 4
Software framework

 Software framework for developing robot software


 It is possible to jointly develop complex programs by finely dividing them with
message exchanging method between nodes.
 Supports command tool, visualization tool Rviz, GUI toolbar rqt, 3D simulator Gazebo
 Supports modeling, sensing, recognition, navigation, and manipulation functions
commonly used in robotics
 Create Robotics Ecosystem!

http://www.ros.org/about-ros/ 5
True purpose of ROS

Building an ecosystem that enables


robotics software development to be
collaborated on a global level!

http://imgfave.com/ 6
Is ROS a new operating system (OS)?
 Operating System

 General purpose computer


• Windows(Windows XP, 7, 8 ...)
• Linux(Ubuntu, Redhat, Fedora, Mint, Gentoo ...)
• MAC(OS X ...) etc

 Smart phone
• Android, iOS, Windows Phone, Symbian, RiMO, Tizen etc

 ROS = Robot Operating System

 ROS is Meta-Operating System

7
Meta-Operating System
• Meta-Operating System (Meta-Operating System): It is not a precisely defined term but it can be
regarded as a system that performs scheduling, loading, monitoring, error handling and utilizing
distributed computing resources as a virtualization layer between applications and distributed
computing resources.

• It is not a traditional operating system like Windows, Linux, and Android. Rather, ROS uses the
traditional operating system (Linux, Windows, OS-X, and Android).

• It uses the existing operating system's process management system, file system, user interface, program
utilities (compiler, thread model, etc.). In addition, it provides essential functions for developing robot
application software such as data transmission / reception, scheduling and error handling among many
different types of hardware in a library form.

• In addition, it develops, manages and provides various application programs based on the robot
software framework, and has an ecosystem that distributes packages developed by users.

8
Meta-Operating System
• Meta-Operating System (Meta-Operating System): It is not a precisely defined term but it can be
regarded as a system that performs scheduling, loading, monitoring, error handling and utilizing
distributed computing resources as a virtualization layer between applications and distributed
computing resources.

• It is not a traditional operating system like Windows, Linux, and Android. Rather, ROS uses the
traditional operating system (Linux, Windows, OS-X, and Android).

• It uses the existing operating system's process management system, file system, user interface, program
utilities (compiler, thread model, etc.). In addition, it provides essential functions for developing robot
application software such as data transmission / reception, scheduling and error handling among many
different types of hardware in a library form.

• In addition, it develops, manages and provides various application programs based on the robot
software framework, and has an ecosystem that distributes packages developed by users.

9
Meta-Operating System

Device drivers, libraries, debug tools, message communication


Drivers, compilation tools, installers, package creation and release
Meta-Operating System

10
Support communication between different devices

iOS

11
Support communication between different devices

iOS

12
ROS-enabled operating system
 Traditional operating system

 Ubuntu, OS X, Windows, Fedora, Gentoo, OpenSUSE, Debian, Raspbian,


Arch, and QNX Realtime OS. (There can be functional limitations in some
OS)

 Partially available for Android and iOS, smartphone operating systems

 In case of microcontroller unit (MCU) which can not be equipped with OS,
it provides a library to communicate via serial communication, Bluetooth,
and LAN ROS 2.0 supports
three major
 Basically it is recommended to run on Ubuntu, OS X! operating systems

13
ROS Configuration
Client roscpp rospy roslisp rosjava roslibjs
Layer
MoveIt! navigatioin executive smach descartes rospeex
Robotics
Application teleop pkgs rocon mapviz people ar track

dynamic robot localization robot pose ekf Industrial core robot web tools ros realtime mavros
reconfigure
Robotics
robot state
Application tf
publisher
robot model ros control calibration octomap mapping
Framework vision opencv image pipeline laser pipeline perception pcl laser filters ecto

common msgs rosbag actionlib pluginlib rostopic rosservice


Communication
Layer rosnode roslaunch rosparam rosmaster rosout ros console

Hardware camera drivers GPS/IMU drivers joystick drivers range finder 3d sensor drivers diagnostics
drivers
Interface force/torque power supply
audio common rosserial ethercat drivers ros canopen
Layer sensor drivers drivers

Software
RViz rqt wstool rospack catkin rosdep
Development Tools

Simulation gazebo ros pkgs stage ros


http://wiki.ros.org/APIs 14
Current ROS ecosystem

Developer, User

APP

ROS

ROBOT, SENSOR

Robot, Sensor Company

15
Current ROS ecosystem

Developer, User

APP

ROS

ROBOT, SENSOR

Robot, Sensor Company  Supports more than 90 kinds of robots, more than 80 kinds of sensors

16
Current ROS ecosystem

17
Current ROS ecosystem

Developer, User

APP

ROS

ROBOT, SENSOR

Robot, Sensor Company  Supports more than 90 kinds of robots, more than 80 kinds of sensors

18
Current ROS ecosystem

Developer, User
 Application fetch beer, elevator …
 Simulator gazebo, player/stage, STDR Simulator …
APP
 Intelligence module navigation, action, grasping …
 Library tf, PCL, OpenCV, OpenRave …
 Device driver camera_drivers, urg_node …
 Debug tool rviz, rqt_graph, rosbag, rostopic …
ROS
 Message communication rosmaster, rosmsg, rosservice …
 Execution tool rosrun, roslaunch …
 Compile tool catkin_make, rosbuild …
 File system roscd, rosls …
ROBOT, SENSOR  Install tool rosinstall …
 Programing Language C++, Python, Lisp, Java, Ruby, MATLAB등

Robot, Sensor Company  Supports more than 90 kinds of robots, more than 80 kinds of sensors

19
Current ROS ecosystem
 More than 5,000 packages
 Provides 2,818 official packages (Indigo / March, 2017)
 13,441,711 .deb packages downloads (July 2017)
 18,839 Wiki pages (July 2017)
Developer, User
 Application fetch beer, elevator …
 Simulator gazebo, player/stage, STDR Simulator …
APP
 Intelligence module navigation, action, grasping …
 Library tf, PCL, OpenCV, OpenRave …
 Device driver camera_drivers, urg_node …
 Debug tool rviz, rqt_graph, rosbag, rostopic …
ROS
 Message communication rosmaster, rosmsg, rosservice …
 Execution tool rosrun, roslaunch …
 Compile tool catkin_make, rosbuild …
 File system roscd, rosls …
ROBOT, SENSOR  Install tool rosinstall …
 Programing Language C++, Python, Lisp, Java, Ruby, MATLAB등

Robot, Sensor Company  Supports more than 90 kinds of robots, more than 80 kinds of sensors

20
Features of Robot operating system ROS

21
Feature 1) Communication infrastructure
 Provides data communication between nodes
 Support for message transfer interface, which is commonly referred as the middleware

 Message parsing function


 Provides communication system frequently used in robot development
 Message transfer interface between nodes facilitating encapsulation and code reuse

 Message Record and Play


 Messages that are transmitted/received between nodes can be stored and reused as needed
 It is possible to repeat an experiment based on stored messages, and it is easy to develop algorithm

 Use of various programming languages due to the use of messages


 Since data exchange between nodes use messages, each node can be written in different languages
 Client libraries: roscpp, rospy, roslisp, rosjava, roslua, roscs, roseus, PhaROS, rosR

 Distributed parameter system


 Variables used in the system are created as global key values so they can be shared, modified and applied in real-time

22
Feature 2) Various functions related to robots
 Define a standard message for a robot
 Modularization by defining standard message such as camera, IMU, laser sensor / odometry, navigation data
such as route and map, inducing collaborative work, and improving efficiency
 Robot geometry library
 Provides TF to calculate the relative coordinates of robot, sensor, etc.
 Robot description language
 XML document describing physical characteristics of the robot
 Diagnostic system
 Provides diagnostic system to grasp the state of the robot
 Sensing / recognition
 Sensor drivers, libraries for sensing / recognition
 Navigation
 Estimation of poses (position / posture) of robots commonly used in robots, provision of self position
estimation in the map
 SLAM required for map creation, and Navigation library for navigating to destinations within the created map
 Manipulation
 Provides various Manipulation libraries to support IK and FK used in robot arm as well as pick and place of
application
 Provides GUI manipulation tools (MoveIt!)

23
Feature 3) Various development tools
 Provides various development tools needed for robot development
 Improving the efficiency of robot development
 Command-Line Tools
• Access to the robot and use ROS functions only with commands provided by ROS without GUI
 RViz
• Provide powerful 3D visualization tool
• Visualize sensor data such as laser, camera, etc.
• Represent robot outline and planned motion
 RQT
• Provides Qt-based framework for developing graphic interface
• Displays connection information among nodes (rqt_graph)
• Values such as encoder, voltage, numbers that change over time (rqt_plot)
• Records and plays data in the form of message (rqt_bag)
 Gazebo
• 3D simulator with physics engine. Supports robot, sensor, environmental models
• Highly Compatible with ROS

http://www.ros.org/core-components/ 24
Selecting ROS version

25
ROS release schedule and version selection!
• Full version of ROS will be released once a year since Hydro!

 2017.05.23 - Lunar Loggerhead

 2016.05.23 - Kinetic Kame (LTS) Recommendation

 2015.05.23 - Jade Turtle

 2014.07.22 - Indigo Igloo (LTS)

 2013.09.04 - Hydro Medusa

 2012.12.31 - Groovy Galapagos

 2012.04.23 - Fuerte Turtle

 2011.08.30 - Electric Emys

 2011.03.02 - Diamondback

 2010.08.02 - C Turtle

 2010.03.02 - Box Turtle

 2010.01.22 - ROS 1.0

 Lunar Loggerhead (EOL=May, 2019)

 Kinetic Kame (EOL=April, 2021)  Ubuntu 16.04.x Xenial Xerus LTS


 Jade Turtle (EOL=May, 2017)
 ROS Kinetic Kame
 Gazebo 7.x
 Indigo Igloo (EOL=April, 2019)
26
Question Time!
Advertisement #1

Download link
Language:
English, Chinese, Japanese, Korean

“ROS Robot Programming”


A Handbook is written by TurtleBot3 Developers
Advertisement #2

AI Research Starts Here


ROS Official Platform
TurtleBot3 is a new generation mobile robot that’s modular, compact and
customizable. Let's explore ROS and create exciting applications for education,
research and product development.

Direct Link
Advertisement #3

www.robotsource.org
The ‘RobotSource’ community is the space for people making robots.

We hope to be a community where we can share knowledge about robots, share


robot development information and experiences, help each other and collaborate
together. Through this community, we want to realize open robotics without disti
nguishing between students, universities, research institutes and companies.

Join us in the Robot community ~


END.

You might also like