Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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