Robot Operating System ROS: Textbook P. 9 21
Robot Operating System ROS: Textbook P. 9 21
Robot Operating System ROS: Textbook P. 9 21
ROS
Textbook
P. 9~21
1
Contents
I. About ROS
V. ROS ecosystem
2
Introduction to ROS
3
ROS?
http://www.ros.org/wiki/
http://www.ros.org/news/ 4
Software framework
http://www.ros.org/about-ros/ 5
True purpose of ROS
http://imgfave.com/ 6
Is ROS a new operating system (OS)?
Operating System
Smart phone
• Android, iOS, Windows Phone, Symbian, RiMO, Tizen etc
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
10
Support communication between different devices
iOS
11
Support communication between different devices
iOS
12
ROS-enabled operating system
Traditional operating system
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
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
Developer, User
APP
ROS
ROBOT, SENSOR
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
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!
2011.03.02 - Diamondback
2010.08.02 - C Turtle
Download link
Language:
English, Chinese, Japanese, Korean
Direct Link
Advertisement #3
www.robotsource.org
The ‘RobotSource’ community is the space for people making robots.