Multi-Robot Systems with ROS Lesson 1

Slides:



Advertisements
Similar presentations
Teaching Assistant: Roi Yehoshua
Advertisements

Teaching Assistant: Roi Yehoshua
TURTLEBOT ROBOTIC GUIDE. Project Description Teach a robot to guide a person to a predefined destination. General requirements: 1. Use a Turtlebot as.
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
I NTRODUCTION TO ROBOTICS Tutorial 1. A GENDA Administrations Basic Matlab Robotic Tool Box Introduction to ROS.
Teaching Assistant: Roi Yehoshua
7/13/2007AIIT Summer Course - D#1 Wireless Embedded Systems and Networking Lab Day 5: Part 1: TinyOS Programming on Open Source Distribution Jaein Jeong.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Chapter 13 Chapter 13: Managing Internet and Network Interoperability.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Teaching Assistant: Roi Yehoshua
Check Disk. Disk Defragmenter Using Disk Defragmenter Effectively Run Disk Defragmenter when the computer will receive the least usage. Educate users.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Teaching Assistant: Roi Yehoshua
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
16.1 © 2004 Pearson Education, Inc. Exam Managing and Maintaining a Microsoft® Windows® Server 2003 Environment Lesson 16: Examining Software Update.
Operating System.
Robot Operating System Tutorial ROS Basic
Teaching Assistant: Roi Yehoshua
V Avon High School Tech Crew Agenda Old Business –Delete Files New Business –Week 10 Topics: Coming up: –Yearbook Picture: Feb 7 12:20PM.
Module 7: Configuring TCP/IP Addressing and Name Resolution.
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
ORCA Robot Simulator HY-475 Autonomous Robot Navigation.
File Recovery and Forensics
Software Framework for Teleoperated Vehicles Team Eye-Create ECE 4007 L01 Karishma Jiva Ali Benquassmi Safayet Ahmed Armaghan Mahmud Khin Lay Nwe.
Introduction to Interactive Media Interactive Media Tools: Software.
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
Software Writer:-Rashedul Hasan Editor:- Jasim Uddin.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Chapter 4 System Software. Software Programs that tell a computer what to do and how to do it. Sets of instructions telling computers to perform actions.
Module 9: Preparing to Administer a Server. Overview Introduction to Administering a Server Configuring Remote Desktop to Administer a Server Managing.
Syzygy Design overview Distributed Scene Graph Master/slave application framework I/O Device Integration using Syzygy Scaling down: simulators and other.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Processes and Threads Processes have two characteristics: – Resource ownership - process includes a virtual address space to hold the process image – Scheduling/execution.
Ling Chen ( From Shanghai University 1.
Teaching Assistant: Roi Yehoshua
City College of New York 1 Player Stage Gazebo Rex Wong CCNY Robotic Lab A robotic research and development environment.
Development of a Distributed MATLAB Environment with Real-Time Data Visualization Authors: Joseph Diamond, Richard McEver Affiliation: Dr. Jian Huang,
SKYPIAX, how to add Skype capabilities to FreeSWITCH (and Asterisk) CHICAGO, USA, September 2009.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Connecting to the Network Introduction to Networking Concepts.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
Application Software System Software.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Linux Operations and Administration
ATLAS-specific functionality in Ganga - Requirements for distributed analysis - ATLAS considerations - DIAL submission from Ganga - Graphical interfaces.
Lab 9 Department of Computer Science and Information Engineering National Taiwan University Lab9 - Debugging I 2014/11/4/ 28 1.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
Access Grid Workshop – APAC ‘05 Node Services Development Thomas D. Uram Argonne National Laboratory.
Module 9: Preparing to Administer a Server
Lecturer: Roi Yehoshua
.NET Framework 2.0 .NET Framework 3.0 .NET Framework 3.5
What is ROS? ROS is an open-source robot operating system
Lab 1 introduction, debrief
CMPE419 Mobile Application Development
Multi-Robot Systems with ROS Lesson 2
TIGERBOT 2 REJUVENATION
Networks Software.
- The Robot Operating System
Robotics and Perception
Multithreaded Programming
Quick Introduction to ROS
Robotics and Perception
Robotic Perception and Action
Robotic Perception and Action
Module 9: Preparing to Administer a Server
CMPE419 Mobile Application Development
Presentation transcript:

Multi-Robot Systems with ROS Lesson 1 Teaching Assistant: Roi Yehoshua roiyeho@gmail.com

Course Agenda Working with multi robots in ROS Handling communication and synchronization between robots Canonical multi-robot problems in ROS Patrolling, Formation, Coverage, etc. Decision making system We will be using CogniTAO, a decision making system developed by Cogniteam (C)2014 Roi Yehoshua

Course Requirements Course grade will be composed of: 40% Assignments 40% Project 20% Exam (C)2014 Roi Yehoshua

Who am I? My name is Roi Yehoshua PhD Student at Bar-Ilan Robotics lab headed by Prof. Gal Kaminka Teaching assistant at the courses: Introduction to Robotics (89-685) Multi-Robot Systems (89-689) My home page: http://u.cs.biu.ac.il/~yehoshr1/ (C)2014 Roi Yehoshua

Today’s Agenda ROS Recap Turtlesim Demo Intro to Multi-Robots Systems in ROS (C)2014 Roi Yehoshua

What is ROS? ROS is an open-source robot operating system The primary goal of ROS is to support code reuse in robotics research and development ROS was originally developed in 2007 at the Stanford Artificial Intelligence Laboratory and development continued at Willow Garage Today managed by the Open Source Robotics Foundation ROS Wiki (C)2014 Roi Yehoshua

ROS Main Features ROS has two basic "sides" The operating system side, which provides standard opearting system services such as: hardware abstraction low-level device control implementation of commonly used functionality message-passing between processes package management A suite of user contributed packages (organized into sets called stacks) that implement common robot functionality such as SLAM, planning, perception, simulation etc. (C)2014 Roi Yehoshua

ROS Distributed Architecture (C)2014 Roi Yehoshua

ROS Core Concepts Nodes Messages and Topics Services ROS Master Parameters Stacks and packages (C)2014 Roi Yehoshua

ROS Nodes Single-purposed executable programs Modular design e.g. sensor driver(s), actuator driver(s), mapper, planner, UI, etc. Modular design Individually compiled, executed, and managed Nodes are written using a ROS client library roscpp – C++ client library rospy – python client library Nodes can publish or subscribe to a Topic Nodes can also provide or use a Service (C)2014 Roi Yehoshua

ROS Topics Nodes communicate with each other by publishing messages to topics Publish/Subscribe model: 1-to-N broadcasting (C)2014 Roi Yehoshua

ROS Topics A shared topic can be used to send messages between different robots (C)2014 Roi Yehoshua

ROS Messages Strictly-typed data structures for inter-node communication For example, geometry_msgs/Twist is used to express velocity broken into linear and angular parts: Vector3 is another message type composed of: Vector3 linear Vector3 angular float64 x float64 y float64 z (C)2014 Roi Yehoshua

ROS Services Synchronous inter-node transactions / RPC Service/Client model: 1-to-1 request-response Service roles: carry out remote computation trigger functionality / behavior Example: map_server/static_map – retrieves the current occupancy grid map (C)2014 Roi Yehoshua

ROS Master Enable ROS nodes to locate one another Think of it as a ROS directory service, sort of DNS Provides naming & registration services for nodes, topics, services, etc (C)2014 Roi Yehoshua

Parameter Server A shared, multi-variate dictionary that is accessible via network APIs.  Best used for static, non-binary data such as configuration parameters. Runs inside the ROS master (C)2014 Roi Yehoshua

ROS Packages Software in ROS is organized in packages. A package contains one or more nodes and provides a ROS interface (C)2014 Roi Yehoshua

ROS Package System Taken from Sachin Chitta and Radu Rusu (Willow Garage) (C)2014 Roi Yehoshua

ROS Important Packages Maintains the relationship between multiple coordinate frames over time TF Provides a standardized interface for interfacing with preemptable tasks. actionlib Provides laser-based SLAM (Simultaneous Localization and Mapping) using a grid map gmapping a probabilistic localization system for a robot moving in 2D amcl Print information about a node move_base Stage 2-D multi-robot simulator stage_ros (C)2014 Roi Yehoshua

ROS Command-Line Tools rostopic (Topics) rosservice (Services) rosnode (Nodes) rosparam (Parameters) rosmsg (Messages) rossrv (Services) roswtf (General debugging) (C)2014 Roi Yehoshua

ROS Visualization Tools rqt – ROS integrated graphical user interface rviz – 3D visualization tool for ROS (C)2014 Roi Yehoshua

Installing ROS Make sure you have a recent Linux Ubuntu installation (12.04 and above) 64bit installation is recommended Latest version of ROS is called Hydro (released on September 2013) Follow the installation instructions in http://wiki.ros.org/hydro/Installation/Ubuntu (C)2014 Roi Yehoshua

Install Terminator Terminator is a program that allows you to manage multiple terminals in one window and use key bindings to switch between them. To install terminator type: To run terminator for the first time type: By right clicking on the terminator window you can choose to split it horizontally/vertically $ sudo apt-get install terminator $ terminator (C)2014 Roi Yehoshua

Terminator (C)2014 Roi Yehoshua

roscore roscore is the first thing you should run when using ROS roscore will start up: a ROS Master a ROS Parameter Server a rosout logging node $ roscore (C)2014 Roi Yehoshua

rosrun rosrun allows you to use the package name to directly run a node within a package Usage: Example: $ rosrun <package> <executable> $ rosrun turtlesim turtlesim_node (C)2014 Roi Yehoshua

TurtleSim Demo Now we will try to run two turtlesim nodes at the same time First start the ROS infrastructure by running in a terminal the command: Then start the first turtle simulator node by running in a new terminal: $ roscore $ rosrun turtlesim turtlesim_node (C)2014 Roi Yehoshua

TurtleSim Demo (C)2014 Roi Yehoshua

ROS Topics To display the list of current topics, use the following command: $ rostopic list (C)2014 Roi Yehoshua

Publish to ROS Topic Use the rostopic pub command to publish messages to a topic For example, to make the turtle move forward at a 0.2m/s speed, you can publish a cmd_vel message to the topic /turtle1/cmd_vel: You can specify only the linear x velocity: $ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}' $ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist '{linear: {x: 0.2}}' (C)2014 Roi Yehoshua

Publish to ROS Topic Some of the messages like cmd_vel have a predefined timeout If you want to publish a message continously use the argument -r with the loop rate in Hz (default is 10Hz) For example, to make the turtle turn in circles: continuously $ rostopic pub /turtle1/cmd_vel -r 10 geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}' (C)2014 Roi Yehoshua

Publish to ROS Topic (C)2014 Roi Yehoshua

rqt rqt provides the main to start an instance of the ROS integrated graphical user  rqt contains many plugins that can help you perform various operations in ROS List of plugins To start rqt type the following command: $ rqt (C)2014 Roi Yehoshua

rqt (C)2014 Roi Yehoshua

ROS Graph Plugin Visualizes the ROS computation graph (C)2014 Roi Yehoshua

Publisher Plugin Publishes arbitrary messages (similar functionality to rostopic pub). (C)2014 Roi Yehoshua

Intro to Multi Robot Systems in ROS Three options to run a multi-robot system in ROS: Running multiple instances of the same node on the same computer Running multiple nodes on different computers using one common roscore Establishing a multi-master network (C)2014 Roi Yehoshua

Homework (not for submission) Make sure you have a working installation of ROS Hydro If you are unfamiliar with ROS perform all the Beginner Level tutorials http://wiki.ros.org/ROS/Tutorials (C)2014 Roi Yehoshua