iRobot Create Introduction Assembled from various online resources

Slides:



Advertisements
Similar presentations
Description: Internal Variables Control and Display Sensor Control and Display Debug Window w/ custom application breakpoints Emergency Controls : STOP.
Advertisements

Getting started with LEGO NXT Mindstorms software This is intended to be a short introduction to the LEGO Mindstorms software and programming the LEGO.
4-1 Timers Timers can be used for  timing  event counting  pulse width measurement  pulse generation  frequency multiplication There are 8 Timers.
Programmable Interval Timer
ACCURACY IMPROVEMENT FOR PHYSICAL ROBOT Gal Lerman, Dorin Ben-Zaken.
SOUTHEASTCON I KARMA ECE IEEE SoutheastCon Hardware Competition Must build an autonomous robot that can –Start at rest at the Starting Station.
Automation and Robotics
Handy Board. Why the Handy Board Designed to be the controller of small, mobil robots Has many features that make it ideal for robotics projects –Integrated.
Navigating the BOE-BOT
Computer Science 10/06/20151 iRobot Create Command Interface CPSC /CPSC Rob Kremer Department of Computer Science University of Calgary.
Photolithography Machine Control System Ben Conrad and Mark Edwards Projects in Computer Engineering II December 9, 2003.
CS 1 with Robots Robot Sensors & Actuators Institute for Personal Robots in Education (IPRE)‏
The Create robot, by iRobot Same as the 4000 series of the Roomba vacuum cleaner, but: Without the vacuum and brush With a port that gives easy access.
Wireless Data Acquisition for SAE Car Project by: J.P. Haberkorn & Jon Trainor Advised by: Mr. Steven Gutschlag.
Tracking Rover Team Rubber Ducky Alex Chi Joshua Rubin Alexander Starick Ryan Ramos.
VEX Robotics Platform and ROBOTC Software
CS Team: ECE Team: Reckoning IEEE Region V Robotics Competition Cody Mass, Jared Saul David Ameh, Lance Martin, Nick Schlag CS 425 Senior Project Design,
Your Python program uses the create library. It supplies functions that send commands: to your laptop’s Bluetooth radio, then to the BAM on the Create,
11 iRobot ® Introduction part 2. 2 drive (velocity, radius, distance, angle) turn (angle) wait for bump, wait for button,... other sensors: right side.
Capacitor Connection in to LED socket Connection to 5v and ground Connection to light sensor pin.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class 2.
Weston Schreiber & Joshua Gabrielse Robotics Summer Training Programming #1: EasyC Basics.
Programming Concepts (Part B) ENGR 10 Introduction to Engineering 1 Hsu/Youssefi.
Dmitry Korobov April 13,  GUI interface for the robot ◦ Atomic Actions Panel ◦ Script generator for complex actions ◦ Sensors Panel  Robot’s module.
Camilo Martinez Advisor : Dr. Cris Koutsougeras Dept of Computer Science and Industrial Technology Southeastern Louisiana University.
CEG 4392 : Maze Solving Robot Presented by: Dominic Bergeron George Daoud Bruno Daoust Erick Duschesneau Bruno Daoust Erick Duschesneau Martin Hurtubise.
Programming the CheapBot-14. Start the Editor Set the Mode.
8086/8088 Hardware Specifications Power supply:  +5V with tolerance of ±10%;  360mA. Input characteristics:  Logic 0 – 0.8V maximum, ±10μA maximum;
Introducing Cubelets What do they do?
Robotics Overview of NXT-G Actuators in Mindstorms. Touch sensor Labwork: Right turn. Touch/bump. [Explore move versus Motor Move mini & motor mini. Motor*.]
RomoRobot Feras Khateeb Yousef Azem supervisors Dr.Raed Al-Qade Dr.Lui Malhis.
7.2 V battery pack and charger Put the battery in the charger station at the end of the lab. period. Red light indicates charging. Ken Youssefi Introduction.
CS-280 Dr. Mark L. Hornick 1 Programming for the LCD Display.
Overview What is Arduino? What is it used for? How to get started Demonstration Questions are welcome at any time.
The Handy Board Bryan Valentini General Robotics 2003.
Slide 1 Project 1 Task 2 T&N3311 PJ1 Information & Communications Technology HD in Telecommunications and Networking Task 2 Briefing The Design of a Computer.
Joe Cohen Presentation Overview  Project definition and requirements  Solution process and explanation  Methodology.
Automatic accident avoiding system PROJECT MEMBERS MUTHUKUMAR.K (05ME33) SAKTHIDHASAN.S (05ME39) SAKTHIVEL.N (05ME40) VINOTH.S (05ME56) PROJECT GUIDE:
ARDUINO 1. Basics  Comments  /* * Blink * * The basic Arduino example. Turns on an LED on for one second, * then off for one second, and so on... We.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class3/Lab 2.
Introduction to Microprocessors - chapter3 1 Chapter 3 The 8085 Microprocessor Architecture.
EV3 Software EV3 Robot Workshop
The Create robot, by iRobot
ROBOTC Software EV3 Robot Workshop
Line Sensing 101 TEAM SpeedRacers _______Team Leader _______ Hardware Specialist _______ Software Specialist _______ Assistant 1.
ROBOTC Software EV3 Robot Workshop Lawrence Technological University.
Mechanical Components and Programming Ken Youssefi Introduction to Engineering – E10 1.
Forward Until Near Stop when near a wall.
ROBOTC for VEX Online Professional Development. Homework Questions Thoughts? Questions?
Final Design Review By: Alireza Veiseh Anh-Thu Thai Luai Abou-Emara Peter Tsang.
GreenJacket IMDL Summer 2002 Final Report Matthew Chernosky August 6, 2002.
USING TV REMOTE AS A CORDLESS MOUSE FOR THE COMPUTER
CORDLESS MOUSE FEATURES BY TV REMOTE USING PIC MICROCONTROLLER
Application Case Study Christmas Lights Controller
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
NXT Mindstorms Kit Programming
An Arduino Workshop A Microcontroller.
The Create robot, by iRobot
Module 2 Controlling a Lego EV3 Robot
BASIC Stamp II Programming for Descartes Robots
ROBOTC for VEX Online Professional Development
Development Commitment Package
Sasha Popov November 16, 2018 iRobot Create.
A more in depth look (XUF TQ128)
Jamie Snape University of North Carolina at Chapel Hill
CBC v2 Using the CBC.
1.15: Dual Joystick Control (Tank)
Coding Edbot Dream with Scratch
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Getting started with LEGO EV3 Mindstorms software
Presentation transcript:

iRobot Create Introduction Assembled from various online resources mainly slides and pictures from Rob Kremer and Jamie Snape

Anatomy 22/04/2017 2

Anatomy Bump Sensors 22/04/2017 3

Anatomy 22/04/2017 4

Overview Based on Roomba robotic vacuum cleaner Programmable with open interface of over 100 commands 32 internal and external sensors including bumpers and infrared Expansion port to add microcontroller, Bluetooth, and/or additional sensors

Programming (Bluetooth) Send Open Interface commands via a virtual serial port: 57600 baud, 8 data bits, 1 stop bit Linux stty –F /dev/ttyUSB0 57600 cs8 -cstopb Receive sensor data back as packets Using any scripting language (Perl, Python, etc.) Drive Create forward (OI script): 128 131 (Start in safe mode) 137 0 100 128 0 (Drive forward 100 mm/s)

Modes OFF PASSIVE SAFE  may be recommended FULL Unresponsive (except START (128)) Can charge PASSIVE Sensor status commands No Actuator commands SAFE  may be recommended Actuator commands But reverts to PASSIVE if moving forward and any cliff sensor is activated; any wheel drop sensor is activated; or the charger is plugged in No Charging FULL 22/04/2017 7

Modes OFF PASSIVE SAFE FULL START (128) SAFE (131) FULL (132) 22/04/2017 8

Modes: WAIT A 5th Mode: WAIT When in WAIT mode the robot does not respond to ANY input. Goes into WAIT mode for 3 commands (see WAIT slide): WAIT-DISTANCE WAIT-ANGLE WAIT-TIME WAIT-EVENT If the robot is prevented, for some reason, from traveling the distance or the angle, it won’t respond to anything (try the undocumented command 7). Use only in scripts, NOT RECOMMENDED 22/04/2017 9

Programming (Microprocessor) Command Module plugs into expansion port 8-bit RISC microprocessor (~18 MHz) Upload C programs that send Open Interface commands and read sensor data Open source toolkit (Windows/Mac compatible) Four extra expansion ports to add custom hardware (sensors, LCD display, etc.)

Programming (Microprocessor) Drive Create with specified velocity and radius (C function): 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)); }

Actuators: Drive DRIVE (137 <velocityhigh> <velocitylow> <radiushigh> <radiuslow>) 2 short (16 bit) parameters Each represented by 2 bytes, high byte first (so a total of 5 bytes for this command) Parameter 1: velocity in mm/sec -500 to +500 (-ve means “backwards”) Parameter 2: curve radius in mm -2000 to +2000 where -ve means clockwise and +ve means counterclockwise 32768 means “go straight” -1 and +1 mean spin in place clockwise, counterclockwise respectively 22/04/2017 12

Actuators: LEDs LEDs (139 <Adv&Play> <powerColor> <powerInten>) Adv&Play: Bit 1 (=2): Play LED Bit 3 (=8): Advance LED PowerColor (0-255): 0=green; 255=red PowerIntensity (0-255) 0=off; 255=full intensity 22/04/2017 13

Actuators: Send IR SEND-IR (151 <IRbyte>) Sends a byte using an add-on circuit and a IR LED Can be received by the omnidirectional IR receiver at the front of the robot Could be use to transmit short-distance identifiers for each robot 22/04/2017 14

Actuators: Songs Load a song Play a song 140 <song#> <length> {<note> <duration>}* <song#>: 0-15 <length>: number of notes (1/2 of bytes) (up to 16 notes) <note>: see table in OI Manual <duration>: in 1/64 second (31=G@49.0Hz … 127=G@12543.9Hz) Play a song 141 <song#> Doesn’t work if a song is already playing 22/04/2017 15

Inputs: Sensors Read Sensors Also a commands for: 142 <packetID> Packets 0-6 are “packet groups” (eg: 0 is sensors 7-26, which is 26 bytes [some are two-byte returns]) Packets 7-42 are individual sensors Either numerical values (1 or 2 bytes) or bitmaps See OI Manual Also a commands for: reading a list of sensors (149) requesting a continuous stream of packet data (148) pausing/resuming a stream (150) 22/04/2017 16

Sensor Groups Packets 22/04/2017 17

Sensor Single Packets 22/04/2017 18

Scripts Load a script Play a script Show script 152 <length> <opcode>* <length>: number of bytes in script (up to 100) <opcode>: OI commands Play a script 143 No flow control except for WAIT commands (next slide) Infinite cycle if script ends with 143 Show script 154 Returns the current script 22/04/2017 19

Scripts: Wait Wait time Wait Distance Wait Angle Wait Event <time> in 1/10 sec (resolution of 15ms) Wait Distance 156 <disthigh> <distlow> <dist> distance in mm. +ve=forward, -ve=back Works for passively rotating the wheels Wait Angle 157 <anglehigh> <anglelow> <angle> angle in deg. +ve=counterclockwise, -ve=clockwise Wait Event 158 <event#> <event#>: eg: 1=wheel drop (see table in OI Manual, p.16) Use -ve for inverse of event (eg: -1 wheel drop stops) 22/04/2017 20

Tasks: measuring You can track the distance traveled by using sensor 19 (distance) Angle with sensor 20 (angle) Note: reading these sensors causes them to be reset Distance (angles) increment for forward (counterclockwise) and decrement for backward (clockwise) Class iRobotCreate’s regular sensor reading keeps an accumulator for distance and angle 22/04/2017 21

Tasks: Following a wall You can track along a wall using the wall sensor (sensor 8) Use Drive straight (137 <velocity> 32687) when the wall is there; or a wide right curve (137 <velocity> -2000) when the wall goes away You should expect the occasional right-bump If you get a left-bump, you’ve probably hit a corner 22/04/2017 22

Commands from shell stty -F /dev/ttyUSB0 57600 cs8 –cstopb echo -e '\0200\0204' | cat > /dev/ttyUSB0 (full mode) echo -e -n '\0214\0000\0004\0076\0014\0102\0014\0107\0014\0112\0044\r\n' | cat > /dev/ttyUSB0 (defines song) echo -e -n '\0215\0000\r\n' | cat > /dev/ttyUSB0 (plays song) echo -e -n '\0200\0203' | cat > /dev/ttyUSB0 (start move) echo -e -n '\0211\0000\0144\0200\0000' | cat > /dev/ttyUSB0 (go)

Further Reading iRobot Create http://www.irobot.com/sp.cfm?pageid=305 Manuals and downloads http://www.irobot.com/sp.cfm?pageid=294