Introduction to Roomba and Create

Similar documents
Martin Dekan, František Duchoň, Ladislav Jurišica, Anton Vitko and Andrej Babinec

Roo232 User Guide. Revision 1.0. Copyright 2006 RoboDynamics Corp

Operational Concept Description (OCD)

Part 1. Moving Forward

500 Series.

Homework 4: Packaging Specifications and Design

Charles P. Hoppe II. Thirst Quencher. EEL5666: Intelligent Machine Design Laboratory. 10 April Report #3 FINAL REPORT. Dr. Eric M.

Table of Contents. page 2-3 page 4 page 5 page 6-7 page 8-9 page 10 page 11 page 12

500 Series.

RS485 MODBUS Module 8AI

Final Report FIREMAN

Introducing the latest in a line of robot technology

irobot Roomba Owner s Manual

600 Series Owner s Guide

600 Series Owner s Guide

Azatrax Quad Infrared Proximity Detector Shield for ArduinoTM Uno, Mega and compatibles

Sensor Report. University of Florida Department of Electrical and Computer Engineering EEL5666 Intelligent Machines Design Laboratory

500/600 Series Owner's Manual

Break-in Detector and Alarm System

Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick

A Cost Effective Embedded Design for Security and Automation in Industries

Sholapur, Maharashtra, India

600 Series Owner s Guide

Downloaded from manuals search engine

PUCRC90. Smart Robot Vacuum Automatic Floor Cleaner with Sweep, Dust and Vacuum Ability

Real Time Smart House Data Logging System Using LabVIEW

1, 2, 3,

ENACTMENT OF SCADA SYSTEM FOR JUDICIOUS DWELLING

ECO N DATE DESCRIPTION OF CHANGE CHG

O W N E R S M A N U A L

600 Series Owner s Guide

Welcome! Dear Scooba Owner,

Smoke/Temperature Controlled Fan

Smart Personal Security Alert Walking Stick For Visually Challenged People

Microcontroller based design for Tele-sensing and extinguishing fire

AUTOMATIC ROOM LIGHT AND FAN CONTROLLER WITH BI- DIRECTIONAL VISITOR COUNTER

Android Controlled Fire Fighting Robot

Welcome! Dear irobot Roomba Owner,

Intelligent Fire Detection and Visual Guided Evacuation System Using Arduino and GSM

800 Series Owner s Guide

Wireless Floor Cleaning Robot

Design of Classroom Intelligent Lighting System Based on SCM. Jiale Zheng1, a

CDR-AL Room CO 2 Traffic Light Alarm Units and Sensors

Petrol Bunk Automation with Prepaid Card using GSM Identification

Welcome! Dear Scooba Owner,

Table of Contents SECTION PAGE SECTION 1 INTRODUCTION Description Features Models... SECTION 2 RS-232 COMMUNICATIONS...

Roomba Discovery Series Service Manual

6367(Print), ISSN (Online) Volume (IJCET) 3, Issue 2, July- September (2012), IAEME

EQ-ROBO Programming : Cliff Check Robot

901-M / 901-ML. Pulse Oximetry System. Technical Information and Service Manual

Model 4880 Status Output Display Module Manual

ATSTORM v2. The sensor with FCES technology is connected to the interface with a communication cable.

part Interfacing COPYRIGHTED MATERIAL in this part

S3F8S28. Smoke Detector. Revision 0.00 February Samsung Electronics Co., Ltd. All rights reserved.

Fire and Gas Monitoring Panel ST7-HV

REMOTE CONTROL AND MONITORING OF LANDMINES DETECTION ROBOTIC SYSTEM

ENERGY AWARE SMART HOME AUTOMATION USING ARDUINO AND LABVIEW

Preliminary Design Report with Diagrams

O W N E R S M A N U A L

Maintenance Manual ALARM SHELF 19D902821P1 & P2. ericssonz LBI-38496C. TABLE OF CONTENTS (Vendor Documentation)

ModBus DE-1 INSTALLATION AND USER MANUAL

XBee Based Industrial And Home Security System

SETTING UP A VIRTUAL KEYPAD WITH A DSC POWERSERIES ALARM SYSTEM

VESICA LINEAR SUSPENDED VES L

Team Rescue X: Autonomous Firefighting Robot

Sensor MSS100 Multi-Sonic

Volume Measuring System Using Arduino for Automatic Liquid Filling Machine

GPS Evaluation Kit EVA1037/1080

Android Operated Intelligent Fire Extinguishing Vehicle

irobot Scooba Owner s Manual

Derek Otermat and Jason Taylor Mechanos Labs Final Report

Portable Perimeter Detection and Monitoring System - PoPDaMS

User Manual Doc.Ref : EVO-KNX-UM. EVO-KNX Paradox KNX Interface ELAUSYS EVO-KNX. KNX Interface for Paradox alarm system. User Manual.

Design of Microwave Anti-theft Alarm Based on Microcontroller

i Series Owner s Guide

Smoke Detector and Siren. Manual

IntesisBox BACnet/IP Server - Notifier ID3000 series

Design of Intelligent Alarm System Based on GSM Network Shun Qing XU

DHM5150 Human Motion Sensor Module User Manual

FL500 Modbus Communication Operating Manual. Order No.: /00. MSAsafety.com

Multi Security System

Passive infrared ceiling sensor

Model 6496 Freezing Rain Sensor

FlameGard 5 UV/IR HART

BURGLAR ALARM USING ARDUINO AND PIR SENSOR WITH SMS ALERT Burgoji Santhosh Kumar 1, S.Ramesh 2 1

INSTRUCTION MANUAL and DETAILED PRODUCT SPECIFICATION TRIPLEX PUMP CONTROL SYSTEM MODEL NUMBER CPC-3. M336 Rev F. November 21, 2000.

TER Active Room Temperature Sensor (Controller),

Preface. Thank you for purchasing our GSM Security Alarm System ( The System )! The System will keep your home and property safe around the clock.

Home-based Security System for Intruder detection using GSM module and PIR Sensors

OPERATOR S MANUAL MODEL AP15/AP15-1/AP15-2 PC-ALARM PANEL

ANALYSIS OF THE FIRE FIGHTING ROBOT

EN Instruction Manual

Safety Information Important Safety Information

FlameGard 5 MSIR HART

Using Motion Sensor for Auto Controlling Air Conditioner s Temperature

FieldServer Driver - Serial FS McQuay Microtech Open Protocol

Mission Science. By Team 07

HM-4201-RTCM High-Temp Real Time Clock Module

Robotics Tutorial 1: Robot Floor Cleaner

CRUSH: Cognitive Radio Universal Software Hardware

Transcription:

Introduction to Roomba and Create Jamie Snape The University of North Carolina at Chapel Hill 1

Vacuum cleaning robots Earliest related patents issued in 1970 s for autonomous lawn mowers Hitachi and Sanyo demonstrated prototypes in 1991 First commercial product released in 2000 by Electrolux of Sweden Fiorini and Prassler (2000) 2

Roomba First released in 2002 and patented 2005 Development took 30 prototypes over twelve years Two-millionth Roomba sold in 2006 Now in its fifth generation, the 500 series irobot Corporation 3

Roomba actuators Two drive wheels Agitator brush Side brush Vacuum (Speaker) Roomba Exchange 4

Roomba steering Differential steering Each wheel controlled by a distinct motor Allows Roomba to spin on the spot Roomba Exchange 5

Roomba sensors Over 30 sensors including: Bump and wheel drop (mechanical) Wall and virtual wall (infrared) Wheel overcurrents (electrical) Dirt detector (piezoelectric) irobot Corporation 6

Roomba heuristics Spiraling: Cleans a concentrated area Wall following: Follows the perimeter of the room Room crossing: Crisscrosses the room to achieve full coverage Dirt detection: Senses dirt and cleans more intensively irobot Corporation 7

Human-Roomba interaction Georgia Tech interviewed Roomba owners: Most named their Roomba and decided on a gender Many worried or felt sorry for Roomba if it became stuck Roombarization to help and protect Roomba My Room Bud 8

Based on the Roomba platform Scooba: Floor washing robot Dirt Dog: Workshop sweeping robot ConnectR: Virtual visiting robot Create: Programmable robot irobot Corporation 9

Create Almost identical to fourth generation Roomba except: No vacuum Extra LEDs and louder speaker Serial port for adding extra actuators, sensors, communications, microprocessor, etc. irobot Corporation 10

Programming Create Access actuators and 32 sensors over serial port Create accepts serial commands and sends back sensor packets Connect via serial cable or Bluetooth and use any scripting language Attach a microcontroller and use a subset of C Acroname Robotics 11

Create Open Interface Electronic interface: 7-pin Mini-DIN (also present on Roomba) and DB-25 connectors Software interface: Mode, actuator, song, demo, sensor commands, etc. Each command is a one-byte opcode, possibly followed by data bytes 12

Open Interface modes Passive: Request and receive sensor data only Safe: Control of actuators, but if a cliff or wheel drop is detected, or the charger is attached, switches to passive mode Full: Complete control of actuators, all safety features turned off Opcodes 128, 131, and 132 13

Example Start Create, switch to full mode, run some commands, then switch to passive: [128] [132]... [128] Create always starts in passive mode 14

Driving Create Opcode 137 with four data bytes interpreted as two 16-bit signed values First two bytes velocity, second two radius Special cases for radius: Straight = hex 8000 or 7FFF Clockwise spin = hex FFFF Counterclockwise spin = hex 0001 15

Example Reverse at a velocity of -200 mm/s while turning at a radius of 500 mm: [137] [255] [56] [1] [244] Velocity = -200 = hex FF38 = hex FF hex 38 = 255 56 Radius = 500 = hex 01F4 = hex 01 hex F4 = 1 244 16

Reading sensors Create updates its sensors every 15 ms 43 sensor packets representing a sensor or group of sensors Use opcode 142 with one data byte to request packets Special packet IDs: Specific subgroups: 0-5 All sensors: 6 17

Example Get the state of the left cliff sensor: [142] [9] Cliff sensors are packets 9-13 18

Command Module Plugs into cargo bay connector Four expansion ports for custom hardware Powered by Atmel AVR ATMega168 microcontroller 8-bit RISC architecture with ~18 MHz crystal, 14336 bytes flash memory irobot Corporation 19

AVR-GCC Toolchain AVR Freaks 20

Command Module programming Main software components: avr-gcc: C compiler avrdude: Programmer Possible to program in C++, but poorly supported Easiest to adapt and extend example code and makefiles oi.h contains Open Interface definitions 21

#include "oi.h" #include <avr/interrupt.h> #include <avr/io.h> Initialization void initialize(void) { cli(); // Turn off interrupts // Set I/O pins DDRB = 0x10; PORTB = 0xCF; DDRC = 0x00; PORTC = 0xFF; DDRD = 0xE6; PORTD = 0x7D; // Set baud rate to 57600 bps UBRR0 = 19; UCSR0B = 0x18; UCSR0C = 0x06; // Set up timer 1 to generate an interrupt every 1 ms TCCR1A = 0x00; TCCR1B = (_BV(WGM12) _BV(CS12)); OCR1A = 71; TIMSK1 = _BV(OCIE1A); } sei(); // Turn on interrupts 22

#define Sen6Size 52 #define CmdSensors 142 volatile uint8_t sensors_flag = 0; volatile uint8_t sensors_index = 0; volatile uint8_t sensors_in[sen6size]; volatile uint8_t sensors[sen6size]; Reading sensors if(!sensors_flag) { for(temp = 0; temp < Sen6Size; temp++) sensors[temp] = sensors_in[temp]; bytetx(cmdsensors); bytetx(6); sensors_index = 0; sensors_flag = 1; } // Serial receive interrupt to store sensor values ISR(USART_RX_vect) { if(sensors_flag) { sensors_in[sensors_index++] = UDR0; } } if(sensors_index >= Sen6Size) sensors_flag = 0; 23

Timer interrupt volatile uint16_t timer_cnt = 0; volatile uint8_t timer_on = 0; // Timer 1 interrupt to time delays in ms ISR(TIMER1_COMPA_vect) { if(timer_cnt > 0) timer_cnt ; else timer_on = 0; } 24

Send and receive // Transmit a byte over the serial port void bytetx(uint8_t value) { while(!(ucsr0a & 0x20)); // Do nothing UDR0 = value; } // Receive a byte from the serial port uint8_t byterx(void) { while(!(ucsr0a & 0x80)); // Do nothing } return UDR0; 25

Drive function #define CmdDrive 137 // Send Create drive commands in terms of velocity and radius void drive(int16_t velocity, int16_t radius) { bytetx(cmddrive); bytetx((uint8_t)((velocity >> 8) & 0x00FF)); bytetx((uint8_t)(velocity & 0x00FF)); bytetx((uint8_t)((radius >> 8) & 0x00FF)); bytetx((uint8_t)(radius & 0x00FF)); } 26

Other options Create and Roomba can be controlled by these platforms via serial cable or Bluetooth and/or simulated (in part): Cogmation robotsuite Microsoft Robotics Developer Studio Player/Stage/Gazebo 27

References Fiorini and Prassler (2000): Cleaning and household robots - a technology survey. Autonomous Robots Grossman (2002): Maid to order. TIME Magazine irobot Corporation (2007): irobot Command Module Owner s Manual 28

References irobot Corporation (2007): irobot Create Open Interface Specification irobot Corporation (2007): irobot Roomba 500 Series Owner s Guide Jones et al. (2005): Autonomous floor-cleaning robot. U.S. Patent 6,883,201 29

References Jones et al. (2004): Method and system for multi-mode coverage for an autonomous robot. U.S. Patent 6,809,490 Landry et al. (2005): Debris sensor for cleaning apparatus. U.S. Patent 6,956,348 Sung et al. (2007): My Roomba is Rambo : Intimate home appliances. UbiComp 2007 30