Week 10 Lab

TASK #1

Get some of the basic components:

  1. Check which LED corresponds to each of the LEDs variables available in URBI (for the list look at the pages on the ERS-7 from the manual UrbiDoc-Aibo-1.4.pdf). The pages have been distributed in the lab.
  2. Check how the values of the acceleration sensors change as you move the AIBO
  3. Check for how long the AIBo should turn to turn by 90 degrees
TASK #2

Use the results from Task #1 to write a program to

  1. set the lower left LED when the left front paw pad is depressed
  2. set the upper left LED when the left rear paw pad is depressed
  3. set the lower right LED when the right front paw pad is depressed
  4. set the upper right LED when the right rear paw pad is depressed
  5. set the middle right LED when the robot is off the ground and tilted to the right
  6. set the middle left LED when the robot is off the ground and tilted to the left
TASK #3

To measure the accuracy of AIBO movements, write a program to:

  1. move to a sitting position
  2. when the top of head sensor is pressed, walk forward in a straight line at 1/2 max velocity for 20 seconds
  3. turn right 90 degrees
  4. walk again straight at 1/2 max velocity for 20 seconds
  5. turn right 90 degrees
  6. repeat this until the dog completes a square. Measure the amount of error (distance between initial position and final position reached)

Short Tutorial on URBI

TIME OPERATORS

A; B B starts after A is finished (not necessarily immediately)
A, B B starts after A starts (so, B can start before A is finished)
A & B A and B starts exactly at the same time
A | B B starts immediately after A is finished
URBI PREDEFINED FUNCTIONS FOR MOTIONS Functions:
robot.walk(duration) walk for duration milliseconds.
Walk backward if duration is negative
robot.stopwalk() interrupt the walk
robot.turn(duration) turn couterclockwise for duration milliseconds.
Turn clockwise if duration is negative
robot.stopturn() interrupt the turn
robot.initial() initial position sitting down (strech and lay)
robot.stretch() stretching like in the morning...
robot.lay() laying (sitting down)
robot.sit() sit on the back
robot.beg() stand up with knees bent
robot.stand() stand up
Variables:
robot.walkspeed speed of walk, the smaller the faster: period of a step. Defaults to 1s
robot.turnspeed speed of turn, the smaller the faster: period of a step. Defaults to 1s
You can assign variables values by using an assignment, such as robot.walkspeed = 750 // milliseconds. The smaller the faster.