irobot create command interface

21
Computer Science 22-06-12 1 iRobot Create Command Interface CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary

Upload: renate

Post on 22-Jan-2016

57 views

Category:

Documents


0 download

DESCRIPTION

iRobot Create Command Interface. CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary. Anatomy. Anatomy. Bump Sensors. Anatomy. Agent software support: sensor tab. Agent software support: sensor tab. Agent software support: execute command. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: iRobot Create Command Interface

Computer Science

23-04-21 1

iRobot Create Command Interface

CPSC 601.68/CPSC 599.68Rob Kremer

Department of Computer ScienceUniversity of Calgary

Page 2: iRobot Create Command Interface

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

Anatomy

Page 3: iRobot Create Command Interface

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

Anatomy

Bump Sensors

Page 4: iRobot Create Command Interface

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

Anatomy

Page 5: iRobot Create Command Interface

Agent software support: sensor tab

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

Page 6: iRobot Create Command Interface

Agent software support: sensor tab

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

Page 7: iRobot Create Command Interface

Agent software support: execute command

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

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

Sensor Groups Packets

Page 17: iRobot Create Command Interface

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

Sensor Single Packets

Page 18: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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: iRobot Create Command Interface

23-04-21 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