Robot Operating system (ROS)

Download Report

Transcript Robot Operating system (ROS)

Robot Operating System
(ROS)
Weijun Huang
Computer Sciences
OUTLINES
• What is ROS?
• Design goals of ROS
• Usage of ROS SDK
• Build and Install ROS
• Sample Project
• Embedded ROS
What is ROS?
• ROS is a framework for robotics:
from drivers to state-of-the-art algorithms, with developer tools
• ROS was originally designed for a specific set of challenges encountered when
developing large-scale service robots.
• Some design goals of ROS [Quigley 2009]:
1.
Peer-to-peer
2.
Multi-lingual
3.
Tools-based
4.
Thin
5.
Free and open-source
Design Goals of ROS?
1. Peer to Peer
• Heterogenous network situation:
onboard robots (at Ethernet) communicate wirelessly (slow) with offboard
machines running intensive tasks (e.g. speech recognition).
• Running a central data server would result in heavy traffic across the
wireless link.
• Peer-to-peer connectivity avoids the issue (with buffering or fanout software
if necessary).
• ROS provides a lookup mechanism name service for peer-to-peer network
topology: processes can find each other at runtime
Design Goals of ROS?
2. Multi lingual (language neutral):
• supports four languages: C++, LISP, Octave and Python, and provides
other language ports
• supports cross-language development, by using a so-called interface
definition language (IDL)
3. Tools based
• This is an effort of complexity management of ROS
• microkernel design: a large number of tools/modules are used to build/run
the ROS components
Usage of ROS SDK
• Downloadable from ROS.org: http://wiki.ros.org/ROS/Installation
select Ubuntu, OS X, Windows, … ,
• Let select Windows –
WinRos sdk
development environment: Microsoft Visual Studio
• What needs to build the SDK:
http://wiki.ros.org/win_ros/Msvc%20Build%20Environment%20-%20Fuerte
• Uses Windows sdk 7.1
• Compiles with cmake/nmake.
• Compiles in Release mode
• (Currently 32 bit support)
Usage of ROS SDK
• ROS robot software distributions:
http://www.willowgarage.com/pages/software/ros-platform
• ROS Hydro Medusa (September, 2013)
• ROS Groovy (December, 2012)
• ROS Fuerte (April, 2012)
• ROS Electric (August, 2011)
• ROS Diamondback (March, 2011)
• ROS C Turtle (August, 2010)
• ROS Box Turtle (March, 2010)
Build and Install ROS
• Install the following dependencies -•
•
•
•
•
Windows SDK 7.1
CMake 2.8.7
Empy 3.1
PyNose 1.1.2
PySetupTools 0.6c11
• Extract the following archives to C:\opt
Rosdeps : boost 1.47.0, bzip2 1.06, log4cxx 0.10
• WinRos Build Script (pay attention to downloading winros.bat finally)
> mkdir C:\work
> cd C:\work
> wget --no-check-certificate
https://raw.github.com/stonier/win_ros/master/msvc/msvc_sdk/scripts/fuerte/winros.bat
Build and Install ROS
• > cd C:\work
• > winros sdk download
• Then the cmd prompt will guide you to finish the config, build, install
• Python packages:
• Python 2.7.2 : add C:\Python27\ and C:\Python27\Scripts to your PATH.
• PyWin32 217
• PyYaml 3.10
• PySetupTools 0.6c11
• Rospkg 1.0.6
• WinRos Sdk 0.1.3 - extract into C:\opt.
Sample Project
• Back to ROS.org: http://wiki.ros.org/ROS/Installation
select robots -- PR2, Dr. Robot, Kobuki, …
• Let select Kobuki
• Tutorial for testing automatic docking:
http://wiki.ros.org/kobuki/Tutorials/Testing%20Automatic%20Docking
• Download a sample project of Kobuki from
https://github.com/yujinrobot/kobuki
Embedded ROS
• An embedded ROS is an interface framework that provides control &
communication architectures for robots, such as multi-sensor systems [Song
2008].
• It supports human-robot interaction (keyboard, mouse, menu interface, etc).
• Three function layers:
• Low level function call manager (LLFCM) menu
• Mid level functions layer (communication layer)
• High level user interface dialog
control the mobile robot and display sensor status
Reference
• Quigley, M., et al, 2009, ROS: an open-source Robot Operating System,
http://pub1.willowgarage.com/~konolige/cs225B/docs/quigley-icra2009-ros.pdf
• Song, T., et al, 2008, Embedded Robot Operating Systems for Human-Robot
Interaction, Computer-Human Interaction: 8th Asia-Pacific Conference, SpringerVerlag
• Mueke & Powell, 2010, “A Distributed, Heterogeneous, Target-optimized
Operating System for a Multi-robot Search and Rescue Application”, Modern
Approaches in Applied Intelligence: 24th International Conference on, SpringerVerlag