Top Banner
Computer Science 22-03-25 1 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary
21

Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

Computer Science

23-04-18 1

iRobot Create Command Interface

CPSC 601.68/CPSC 599.68Rob Kremer

Department of Computer ScienceUniversity of Calgary

Page 2: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 2

Anatomy

Page 3: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 3

Anatomy

Bump Sensors

Page 4: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 4

Anatomy

Page 5: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

Agent software support: sensor tab

23-04-18 CPSC 609.68/599.68: Agent Communications 5

Page 6: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

Agent software support: sensor tab

23-04-18 CPSC 609.68/599.68: Agent Communications 6

Page 7: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

Agent software support: execute command

23-04-18 CPSC 609.68/599.68: Agent Communications 7

execute takes a string of bytes (in decimal).

Can also prefix a number with "s" to make it parse it as two bytes (a short).

Page 8: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 8

Modes• OFF

– Unresponsive (except START (128))– Can charge

• PASSIVE– Sensor status commands– No Actuator commands– Can charge

• SAFE recommended!– Sensor status commands– 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– Sensor status commands– Actuator commands– No Charging

Page 9: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 9

Modes

OFF

FULLSAFE

PASSIVE

START (128)

FULL (132)

SAFE (131)

FULL (132)

SAFE (131)

START (128)START (128)

Page 10: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 10

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

Page 11: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 11

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

Page 12: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 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

Page 13: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 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 reciever

at the front of the robot• Could be use to transmit short-distance identifiers

for each robot• Does not replace CASA agent communication

protocols!

Page 14: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 14

Actuators: Songs

• Load 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 ([email protected]

[email protected])

• Play a song– 141 <song#>– Doesn’t work if a song is already playing

Page 15: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 15

Inputs: Sensors

• Read Sensors– 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)

Page 16: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 16

Sensor Groups Packets

Page 17: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 17

Sensor Single Packets

Page 18: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 18

Scripts

• Load a 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)

• Show script– 154– Returns the current script

Page 19: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 19

Scripts: Wait

• Wait time– 155 <time>

• <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)

Page 20: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 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

Page 21: Computer Science 10/06/20151 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary.

23-04-18 CPSC 609.68/599.68: Agent Communications 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-bumb, you’ve probably hit a corner