TURTLEBOT ROBOTIC GUIDE. Project Description Teach a robot to guide a person to a predefined destination. General requirements: 1. Use a Turtlebot as.

Slides:



Advertisements
Similar presentations
Project Title Here IEEE UCSD Overview Robo-Magellan is a robotics competition emphasizing autonomous navigation and obstacle avoidance over varied, outdoor.
Advertisements

Categories of I/O Devices
Chapter 1:Introduction to the world of computers
Presentation by: Serena, Ann & Nicole
Business Technology Applications Computer Basics.
Design & Developed by: EATL
I NTRODUCTION TO ROBOTICS Tutorial 1. A GENDA Administrations Basic Matlab Robotic Tool Box Introduction to ROS.
3: OS Structures 1 OPERATING SYSTEM STRUCTURES PROCESS MANAGEMENT A process is a program in execution: (A program is passive, a process active.) A process.
Discovering Computers: Chapter 1
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
2: OS Structures 1 Jerry Breecher OPERATING SYSTEMS STRUCTURES.
ROBOTIC GUIDANCE Joe Stawicki. PROJECT DESCRIPTION  Teach a robot to guide a person to a predefined destination.  The robot must use a cam and a vision.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
A Quick Review of Unit 1 – Recognizing Computers Computing Fundamentals © CCI Learning Solutions.
Computer Networks IGCSE ICT Section 4.
Systems Software Operating Systems.
COMPUTING IN THE NATIONAL CURRICULUM. WHY?  The 2014 national curriculum introduces a new subject, computing, which replaces ICT. This represents continuity.
Concepts and value of TI-Nspire™ Technology
Basic Concepts of Computer Networks
Computer for Health Sciences
Lesson 4 Computer Software
Section 2.1 Identify hardware Describe processing components Compare and contrast input and output devices Compare and contrast storage devices Section.
CAEL 5012 Rich Internet Applications. What you need For this part of the course you will need access to a server with PHP and MYSQL which will be supplied.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Linux+ Guide to Linux Certification Chapter Three Linux Installation and Usage.
Lesson 6 Operating Systems and Software
Guide to Linux Installation and Administration, 2e 1 Chapter 9 Preparing for Emergencies.
 Introduction to Operating System Introduction to Operating System  Types Of An Operating System Types Of An Operating System  Single User Single User.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Portable SSH Brian Minton EKU, Dept. of Technology, CEN/CET)‏
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Alex Layton, Purdue University
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
MobileMAN Internal meetingHelsinki, June 8 th 2004 NETikos activity in MobileMAN project Veronica Vanni NETikos S.p.A.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Jasmine sells. Hardware are physical components that make up your computer. a Software are programs or applications that run on your computer. Computer.
Joe Cohen Presentation Overview  Project definition and requirements  Solution process and explanation  Methodology.
Getting To Know Computers COMPUTER BASICS. WHAT IS A COMPUTER? A computer is an electronic device that manipulates information, or “data.” It has the.
Page 1 Printing & Terminal Services Lecture 8 Hassan Shuja 11/16/2004.
Nir Mendel, Yuval Pick & Ilya Roginsky Advisor: Prof. Ronen Brafman
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Ryan Rasmussen Maggie Krause Jiajun Yang. Hardware Progress Mechanical assembly complete Received APM case and power module last week Connected wi-fi.
Cevgroup.org C utting E dge V isionaries. cevgroup.org TODAY’s TALK 1) Internet Of Things (IoT) 2) Wi-Fi Controlled Robots 3) Augmented Reality.
Website Design, Development and Maintenance ONLY TAKE DOWN NOTES ON INDICATED SLIDES.
THE PARTS OF A COMPUTER WHAT ARE THE PARTS OF A COMPUTER THAT MAKE A COMPUTER A COMPUTER?
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
11 Computers, C#, XNA, and You Session 1.1. Session Overview  Find out what computers are all about ...and what makes a great programmer  Discover.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Defining the terms assignment. I will define the following terms: computer literate, computer, storage, Data, Information, input, output, information processing.
Digital Literacy: Computer Basics
Systems and User Interface Software. Types of Operating System  Single User  Multi User  Multi-tasking  Batch Processing  Interactive  Real Time.
Parts of a Computer Created by Carmen Garzes. An electronic device that manipulates information or data. It can store, retrieve or process data. There.
By the end of this lesson you will be able to explain: 1. Identify the support categories for reported computer problems 2. Use Remote Assistance to connect.
Web Design Vocabulary #3. HTML Hypertext Markup Language - The coding scheme used to format text for use on the World Wide Web.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
Section 2.1 Section 2.2 Identify hardware
Operating Systems & System Software
Exploring Computer Science Lesson 6-5
2. OPERATING SYSTEM 2.1 Operating System Function
Chapter 2: System Structures
Introduction to Operating System (OS)
Robotic Guidance.
Introduction to AppInventor
Quick Introduction to ROS
Build Your Own Computer
Presentation transcript:

TURTLEBOT ROBOTIC GUIDE

Project Description Teach a robot to guide a person to a predefined destination. General requirements: 1. Use a Turtlebot as the robot 2. The robot must use a vision algorithm(s) as the main guidance. 3. Sensors such as bump, infra-red and ultra-sound could provide direction and safety for the robot. 4. First get the robot to follow someone somehow "remembering" the route so that it can take a turn leading. 5. The solution should be easily modified for alternative routes. 6. Check out Joseph Stawicki's 2013 project for techniques about driving the robot.Joseph Stawicki's 2013 project

Meet Turtlebot

Hardware Breakdown Kinect and Mobile Base Gyro combined so all sensor data can be read from one place iRobot create listens for commands on a serial port, so serial port to USB converter required for communication. Sensors send data to laptop, laptop sends commands to the mobile base. Hardware requires software framework in order to receive, process, and send data

The Robot Operating System(ROS) Services Provided by ROS: Hardware abstraction Low-level device control Message passing service Name and Parameter service Package management + Laptop’s main OS is Ubuntu which is then overlaid with ROS. ROS also allows for Android connectivity to the robot

Developing Apps with ROS Workspace allows for packages to be installed and edited easily Very easily pulls from repositories for quick installs Symbolically linked to main ROS install Workspace set up based on directory structure ROS incorporates a lot of different programming languages C, C++, Python, Java, and more The catkin workspace allows for building and debugging across all languages ROS created ROS specific API’s for Python and C++ (rospy & roscpp) Makes it extremely easy to call ROS functions Also allows for cross-language communication

ROS Limitations and Frustrations  Open Source – does not necessarily mean “FUNCTIONING”  Sources, Documentation, and Support not easily obtained  Newest ROS distribution designed for newest Turtlebot base (Kobuki)  The ROS Wiki – instructions misleading  For the first time ever, Google.com was not my friend

How it Works  Remote communication to the Turtlebot required  Workstation Computer connects via SSH  Applications are also run locally on Workstation Computer for monitoring, information processing, and visuals  These applications receive info via HTTP  Android connectivity via HTTP Incorporated the Wifi Pineapple Allows for a portable and private Local Area Network

Wireless Communication

Services, Nodes, Parameters, Messages, Topics  Nodes are processes that perform computation  Communicate with one another via topics, services, and parameters  Topics are named busses over which nodes exchange messages  Nodes either subscribe or publish to relevant topics  Services handle requests and replies  Defined by a pair of messages  Messages are simply data structures comprising of typed fields  ROS Parameter server is a dictionary accessible via network APIs  Nodes use this to retrieve parameters at runtime

Software & Hardware Communication

Kinect Example

Sound Demo Keyboard inputs command Keyboard node processes command Parameters obtained from server Word node processes the sound to play based on parameters Sound node processes sound Output to speakers

The Puzzle Pieces  Teleoperation  Room mapping (SLAM Algorithm)  Autonomous Navigation of Known Map  Following  Voice Commands  Color Blob Tracking Its all here! But why is it in pieces? Applications are limited by the way they interact with the robot Publishing/Receiving information cannot be done on the same node at the same time

Room Mapping with the SLAM Algorithm

Autonomous Navigation of a Known Map

The Problem: Communication Interrupts  Both Nodes need to publish movement commands to the mobile base  The Voice Command Node is designed to continually publish directly to the mobile base node  The mobile base node sees the Voice Command messages as priority and blocks movement commands from the Follower node

The Pivot Node/Dynamic Subscriber  Could also be considered ‘nested nodes’  Subscribing node is dynamic  If multiple messages received simultaneously then prioritize

My Solution (Follower with Voice Commands)  The node needs help prioritizing  Processing and movement become slowed when subscribing to commands from multiple nodes  Using multiple pivot nodes helps speed and processing  Created new voice commands that correspond to OS commands  Bringing the process down to the OS level allows for universal actions across all applications  The use of shell scripts allows the ability to talk to ROS via command line  OS helps flag enabled nodes  Mobile base will then only listen for commands from enabled nodes

Command Recognition Process for enabling follow mode This particular command effects the follower node the most. Little is done inside the Voice Command Node.

Command Recognition Process for disabling follow mode This particular command corresponds to actions in both the Voice Command Node and the Follower Node

Testing/Methodology  Alter launch files to see how nodes react  On screen messages are given when things go wrong  Adjust Node publishing target  Shows which nodes are capable of handling certain applications or combinations of applications  Try as much hardware as possible  Different laptops, headsets, graphics cards, etc. respond and process very differently from one another  Experiment on EVERYTHING  If I didn’t know what it was, I played with it until I understood how it worked

Follower with Voice Commands Live Demo

Learning and Development Process  RESEARCH – find as much information from as many different sources as possible  Run it and see what happens  Try everything that’s available, watch and see how the Robot reacts and then connect what’s seen to what sources say  Guess, check, and actually read the error messages  Make alterations and see what kind of errors come up, helps to correlate what broke to what was changed

Project Continuation & Advice  UNDERSTAND ROS!!!  Not understanding how ROS is working makes it extremely difficult to try and make any changes  Follow the link trail  Google.com is not your friend for this project. Scimming google search results will get you almost no where. In order to find good information follow links in forums and on web pages that indicate they might be helpful. Eventually you will find something actually useful  Consider upgrading mobile base to the Kobuki  Gyro is built in allowing for more efficient processing and little calibration  Attempt to break Kinect data apart  The Kinect has many separate sensors, learning how to get data from each sensor individually would allow for efficient visual application multitasking