Top Banner
Robot Building Lab: Sonar and Servos DEMO Have your robot demonstrate the following movements using inverse kinematics, closed- loop encoder monitoring, and proportional control 1. Line: 36 inches forward, 180 degree turn, 36 inches forward 2. Square: 36 inches forward, 90 degree turn, 36 inches forward, 90 degree turn, 36 inches forward, 90 degree turn, 36 inches forward, 90 degree turn 3. Triangle: 16 inches backward, -90 degree turn, 12 inches backward, -307 degrees, 20 inches backward, 217 degrees Lab 7: Understanding Sonar
47

Robot Building Lab: Sonar and Servos DEMO Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Jan 16, 2016

Download

Documents

Scott Manning
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: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

DEMO Have your robot demonstrate

the following movements using inverse kinematics, closed-loop encoder monitoring, and proportional control1. Line: 36 inches forward, 180

degree turn, 36 inches forward2. Square: 36 inches forward, 90

degree turn, 36 inches forward, 90 degree turn, 36 inches forward, 90 degree turn, 36 inches forward, 90 degree turn

3. Triangle: 16 inches backward, -90 degree turn, 12 inches backward, -307 degrees, 20 inches backward, 217 degrees

Lab 7: Understanding Sonar

Page 2: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Lab 7

Understanding sonar and servos

http://plan.mcs.drexel.edu/courses/robotlab/labs/lab07.pdf

Page 3: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Today

Understanding sonarAttaching and programming sonarServo motors and programmingSonar for obstacle avoidanceSerial communication review

Page 4: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Magellan Sonar Display

Page 5: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Ultrasonic Distance Sensing

• Ultrasonic burst, or “chirp,”

• travels out to an object,

• reflected back into a receiver circuit, ( tuned to detect the specific frequency of sound)

• Measures time-of-flight of “chirp”

• sound travels about 0.89 ms per foot / 1.78 ms for round trip

• distance to the target object (in feet) is the time it takes for a chirp to make a round trip (in msec) divided by 1.78

•Greater accuracy than with IR

•Bats use radar-like form of ultrasonic ranging to navigate as they fly

(copyright Prentice Hall 2001)

Page 6: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Sonar Beam

Distance is not a point distance

Sonar beam has angular “spread” (about 30 degree dispersion in Polaroid module)

Closest point of object is somewhere within that arc

Need multiple readings to disambiguate – but readings take time; tradeoffs

?

Page 7: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Sonar effects

resolution: time / space

(d) Specular reflections cause walls to disappear

(e) Open corners produce a weak spherical wavefront

(f) Closed corners measure to the corner itself because of multiple reflections --> sonar ray tracing

(a) Sonar providing an accurate range measurement

(b-c) Lateral resolution is not very precise; the closest object in the beam’s cone provides the response

(Courtesy of Dodds)

Page 8: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Other Sources of Error

reflectance of surface to sound – signal strength, non-specular reflections, signal absorption, approach angle

corners Crosstalk/ghost images –

reflected sound received from wrong transmitter

change in speed of sound due to temperature and humidity

Page 9: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

•Used to measure distance in auto-focus camera systems

– Contemporary cameras use IR auto-focus: smaller, cheaper, less power

– Ultrasonic ranging system is sold as OEM (original equipment manufacturer) kit (unpackaged board-level technology)

• Easily interfaced to Handy Board using 2-3 simple digital control signals

• INIT: input to ranging board, generates chirp

• ECHO: output indicates when chirp received

• BINH: Blanking inhibit input: Signal to measure very close distances Single board which holds all of the

electronics

One ultrasonic transducer, which acts as both the speaker and microphone

Commercially Available Polaroid 6500

(copyright Prentice Hall 2001)

Page 10: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Signal Gain. Problem: Echo from a far away object may be one-millionth strength of echo from a nearby object. Solution: 6500 board includes a variable gain amplifier that is automatically controlled through 12 gain steps, increasing the circuit’s gain as time elapses while waiting for a echo to return.

Transducer Ringing. One transducer is used as transmitter/receiver (50 kHz). Problem: ringing problem: after transmitting outgoing chirp, transducer can have residual vibrations or ringing that may be interpreted as echo signal. Solution: By keeping initial circuit gain low, likelihood of false triggering is lessened. Additionally, the controller board applies a blanking signal to completely block any return signals for the first 2.38 ms after ultrasonic chirp is emitted. This limits the default range to objects 1.33 feet and greater. [close-up range: “blanking inhibit” input is used to disable this]

Operating Frequency and Voltage. Polaroid ultrasonic system operates at 49.4 kHz. Each sonar “chirp” consists of sixteen cycles of sound at this frequency. Polaroid board generates a chirp signal of 400 volts on the transducer. Problem: High voltage is necessary to produce an adequate volume of chirp, so that the weak reflected signals are of enough strength to be detected. Polaroid ultrasonic transducer can deliver an electrical shock. Solution: do not touch!

Electrical Noise. Problem: High amplification causes sensitivity to electrical noise in the power circuit, especially the type that is caused by DC motors. Solution: all high current electronic and electro-mechanical activity be suspended while sonar readings are in progress, or provide the sonar module with its own power supply, isolated from the power supply of the robot’s motors.

Ultrasonic Distance Sensing Issues

(copyright Prentice Hall 2001)

Page 11: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Sonar modelinginitial time response

spatial response

blanking time

accumulated responses

cone width

(Courtesy of Dodds)

Page 12: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Sonar vs. IR

Both can be used as distance sensorsSonar is more commonly usedSonar cannot easily be used between 1

and 6 inches from obstacle

Page 13: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Today

Understanding sonarAttaching and programming sonarServo motors and programmingSonar for obstacle avoidanceSerial communication review

Page 14: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Attaching Sonar and Circuit Board

Page 15: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Wiring Sonar and Circuit Board

3 connections– SPI expansion header (2 pin cable)– Digital port 7 (3 pin cable)– Power expansion header (4 pin cable)

Page 16: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Wiring Sonar and Circuit Board

http://lcs.www.media.mit.edu/groups/el/projects/handy-board/software/sonar.html

(Middle of second column, blue closest to LCD)

(Blue on left)

Page 17: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Sample Sonar Code*

initialization code:

void sonar_init() { bit_set(0x1009, 0x30); /* sets output pins

for sonar pulses and blanking */ bit_set(0x1021, 1); /* trigger on rising

edge of sonar echo */ bit_clear(0x1021, 2); }* The code in this slide and the next two are

already in sonar.c – just load sonar.c to use the functions

Page 18: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Grabbing a Sonar Sampleint sonar_sample() {

int start_time; poke(0x1023, 1); /* clear tic3 flag */ start_time= peekword(0x100e); /* capture start time */ bit_set(0x1008, 0x20); /* trigger pulse */ while (!(peek(0x1000) & 0x1)) { /* wait until receive echo */ if ((peekword(0x100e) - start_time) < 0) { /* if too much time has elapsed, abort */ bit_clear(0x1008, 0x20); return -1; } defer(); /* let others run while waiting */ } bit_clear(0x1008, 0x20); /* clear pulse trigger */ return peekword(0x1014) - start_time; /* tic3 has time of

echo */}

Page 19: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Getting Closer Readings Allow reading of echo sooner (shorter blank

period .5 msec vs 2.38 msec, inches vs. 1.33 feet)int sonar_closeup() { int start_time; poke(0x1023, 1); /* clear tic3 flag */ start_time= peekword(0x100e); poke(0x1008, 0x20); while ((peekword(0x100e) - start_time) < 1000); bit_set(0x1008, 0x30); /* turn on BINH */ while (!(peek(0x1000) & 0x01)) { if ((peekword(0x100e) - start_time) < 0) { /* if too much time has elapsed, abort */ bit_clear(0x1008, 0x30); return -1; } defer();} bit_clear(0x1008, 0x30); return peekword(0x1014) - start_time; /* 0x1014 is tic3 */}

Page 20: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Using the Sonar Functions

void sonar_display(){ sonar_init(); while (1) { int result; result= sonar_sample(); if (result != -1) printf("%d\n", result); else printf("*******\n"); msleep(50L); /* need to pause between

readings */ }}

Page 21: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Converting from Sonar Reading to Distance

Distance (ft) = ((counts/2000) * 1.1)/2– (or 2.75 * (counts/10000))

Sound travels 1.1 feet per millisec (In average air conditions) .5 microsecs per timer count (10000 counts =

5 millisecs) Example

– 10000 counts– 5 millisecs * 1.1 ft/millisec = 5.5 feet– 5.5 ft/2 for round trip time = 2.75 feet for 10000

timer counts- ((10000/2000) * 1.1)/2 = 2.75

Page 22: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Using Sonar Library, With count-to-feet translations

void main(void) {float dist, cdist;

sonar_init();

/* Normal sampling routine */ dist = 2.75 * (sonar_sample() / 10000.0);

/* Close range sampling */ cdist = 2.75 * (sonar_closeup() / 10000.0);

}

Page 23: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Today

Understanding sonarAttaching and programming sonarServo motors and programmingSonar for obstacle avoidanceSerial communication review

Page 24: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Servo Motors

Package includes:– Dc motor– Gear reduction– Shaft positioning

sensor and control circuit

Command output shaft to move to a certain angular position

Three wires: power, ground and control

Use digital port number 9

Page 25: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Servomotors

“direct” position control -- in response to the width of a regularly sent pulse

modified to run continuously

Page 26: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Servo Motor Output Commands

Need to load servo motor library -- servo.icb and servo.c (done by default)

void servo_on() void servo_off()– Enables/Disables servo output waveform.

int servo(int period)– Sets length of servo control pulse. Minimum allowable value is 1400 (i.e., 700

sec); maximum is 4860. Function return value is actual period set by driver software.

int servo_rad(float angle)– Sets servo angle in radians.

int servo_deg(float angle)– Sets servo angle in degrees.

For our specific servos, you must set the MIN_SERVO_WAVETIME variable to 600, and the MAX_SERVO_WAVETIME variable to 4400 for a proper mapping between degrees/radians and pulses.

Page 27: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Servo Turret

Attach forward-facing servo motor to robot

Can use to mount various sensors that can actively scan a scene

Page 28: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Today

Understanding sonarProgramming sonarServo motors and programmingSonar for obstacle avoidanceSerial communication review

Page 29: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Closed-loop Control

Drive parallel to wall Feedback from

proximity sensors (e.g. bump, IR, sonar)

Feedback loop, continuous monitoring and correction of motors -- adjusting distance to wall to maintain goal distance

(Courtesy of Bennet)

Page 30: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Separate Sensor State Processing from

ControlFunctions might each make use of other sensors and

functions – need to decide how to implement each

(Courtesy of Bennet)

Page 31: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Use Proximity Sensor to Select One of Three States

Sensor used to select one of three states

(Courtesy of Bennet)

Page 32: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Obstacle Avoidance and Tracking Using Sonar

Have continuously running task update obstacle state:– Left, right, both, neither

If one obstacle detected use closed-loop control to keep it away from robot

If two obstacles detected– Estimate distance and try to

pass in-between with closed-loop control, if possible

Page 33: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Simple Processing Using Single Threshold

•Robot ground sensor can be in one of two states:

•State A: Over line

•State B: Over floor

•Compare sensor reading with setpoint value

•If less than this threshold set variable to indicate robot is in State A

•Otherwise, set variable to indicate State B

• What to use as setpoint threshold?

• midpoint between floor value and line value

•E.g. 10 when aimed at the floor, and 50 when aimed at the line choose 30 as setpoint threshold

(copyright Prentice Hall 2001)

Page 34: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Two Thresholds for Hysteresis

•Problem with single threshold – variances in sensor readings

• Bump on floor may spike the readings

• Shiny spots on line may reflect as well as the floor, dropping the sensor readings up into the range of the floor

• Solution: two setpoints can be used

– Imposes hysteresis on the interpretation of sensor values, i.e., prior state of system (on/off line) affects system’s movement into a new state

Line Following performance run :Setpoint =20

int LINE_SETPOINT= 35;int FLOOR_SETPOINT= 10;void waituntil_on_the_line() { while (line_sensor() < LINE_SETPOINT);}void waituntil_off_the_line() { while (line_sensor() > FLOOR_SETPOINT);}

(copyright Prentice Hall 2001)

Page 35: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Separate Sensor State Processing from

ControlFunctions might each make use of other sensors and

functions – need to decide how to implement each

(Courtesy of Bennet)

Page 36: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Today

Understanding sonarProgramming sonarServo motors and programmingSonar for obstacle avoidanceSerial communication review

Page 37: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Serial Communication Modes

Collect sensor data on Handy Board Upload to PC host, either

1. Batch mode: program stores data on Handy Board and later writes to host using serial line

2. Real-time data collection: program on Handy Board writes data directly to serial line during data collection activities

3. On-line interaction: programs active on both Handy Board and Host communicate with each other over serial line

(copyright Prentice Hall 2001)

Page 38: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Connecting to a Terminal Program We’ll use terminal emulator on host side for grabbing serial data

from the Handy Board -- Download from software directory Load serialio.c

– disable_pcode serial(): so that HB does not interpret any accidental characters that might be sent from the host computer

– Process: download program to HB using IC; shutdown IC; start terminal emulator; turn off/on HB to start program that communicates with terminal

– To restart HB in normal mode: hold down Start button while turning it on/* serxmit.c */

void main(){ int i; disable_pcode_serial(); while (1) { printf("Press Start button to begin\n"); start_press(); printf("Transmitting...\n"); for (i= 32; i< 128; i++) serial_putchar(i); }}

(copyright Prentice Hall 2001)

Page 39: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Sending Integers to Terminal Emulator

IC library file printdec.c (in software directory) provides printdec(), which takes an integer as input and prints its value as a decimal number over the serial line

Example: sensor data is continuously displayed on the host computer screen/* analogpr.c requires printdec.c, serialio.c */void main(){ disable_pcode_serial(); while (1) { printdec(analog(0)); serial_putchar(10); /* line feed */ serial_putchar(13); /* carriage return */ /* wait 0.1 sec between each print */ msleep(100L); }}

(copyright Prentice Hall 2001)

Page 40: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Batch Data Capture

• Faster capture rate – not limited by slow serial comms

/* datacoll.c requires printdec.c, serialio.c */int SAMPLES=1000;char data[1000];void main(){ disable_pcode_serial(); printf("press Start to collect data\n"); start_press(); collect_data(); beep(); printf("press Start to dump data\n"); start_press(); dump_data(); beep(); printf("done.\n");}

(copyright Prentice Hall 2001)

Page 41: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Review: Collect Data into Array and Dump to Serial Line

void collect_data(){ int i; for (i= 0; i< SAMPLES; i++) { data[i]= analog(0); /* to slow down capture rate, add msleep here */ }}

void dump_data(){ int i; for (i= 0; i< SAMPLES; i++) { printdec(data[i]); serial_putchar(10); /* line feed */ serial_putchar(13); /* carriage return */ }}

(copyright Prentice Hall 2001)

Page 42: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Lab 7

Understanding sonarhttp://plan.mcs.drexel.edu/courses/robotlab/labs/lab07.pdf

Page 43: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Lab 7: Sonar In-class lab overview:

– Add sonar and servo– (Download serial communications libraries to IC libs, Download

terminal program to X:\ and install)– Program sonar to read 200 pings, 100 for closeup and 100 for

sample, put in 2 arrays, dump to terminal – graph and show to TA

• Once with close obstacle• Once with far obstacle• Once with no obstacle

– Program sonar to sweep back and forth, alternating between sonar closeup and sonar regular samples – Show to TA

– Write program to grab sweeps and store arrays of data with an obstacle positioned as follows: 1) Left close, 2) Left far, 3) Right close, 4) Right far, 5) Front close, 6) Front far, 7) No block

– Send all 14 (7 for sonar closeup and 7 for sonar sample) arrays to host using serial comms and terminal program. Store data for graphing using Excel – mail graphs to TA as part of Week 7 questions

Page 44: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Next Week Take-home part of Lab

– Write program to use sonar closeup and sonar sample to determine one of 8 states: bump-on-left, bump-on-right, bump-in-center, no bump, obstacle-on-left, obstacle-on-right, obstacle-in-center, no obstacle – launch as parallel process

– Re-use bumper program with sonar closeup states – Re-use IR progam with sonar sample states– Modify behavior/priority based control (from Week 5) to combine:

1. Light following, 2. Sonar closeup reaction (bumper), and 3. Sonar sample obstacle avoidance and tracking

Read on-line documents; answer questions for Week 7 on Plan Grad students need to include one-page project proposal that

specifies in detail 1) task to be solved, 2) hardware needed, 3) software needed, 4) experiments planned, 5) how success will be evaluated (e.g. demo, experimental data, etc.)

Lab 8: Localization and map building

Page 45: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Lab 7 ProgramsGlobal variables for:

light calibration variables light state, collision state, obstacle state

Function to move toward left (done)Function to move toward right (done)Function to determine light-state (done)Function to move toward light (done)Function to detect sonar close-up state (in-class)Function to react to collision (done for bumpers)Function to determine sonar sample state (in-class)Function to avoid and track obstacles (done for IR)

void main(void) {calibratestart servo and sonar

start processes to keep track of: light, collision, obstacle states(with good use of defer)behavior/priority based control program to switch between:

light following, collision reaction, obstacle avoidance – according to priority scheme(at home)

}

Page 46: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

References

http://plan.mcs.drexel.edu/courses/robotlab/labs/lab07.pdf

http://plan.mcs.drexel.edu/courses/robotlab/readings/hbmanual.pdf

http://plan.mcs.drexel.edu/courses/readings

Page 47: Robot Building Lab: Sonar and Servos DEMO  Have your robot demonstrate the following movements using inverse kinematics, closed-loop encoder monitoring,

Robot Building Lab: Sonar and Servos

Portsinputs for 7 analog sensors and

9 digital sensorsWe are using 2/4 motor ports,

7/7 analog sensor ports and 6/9 digital sensor ports next week

Light sensors – 3 analog ports (eg 0,1,2)

IR sensors – 2 analog ports (eg 3,4)

Wheel encoders – 2 analog ports 5,6

Sonar – 1 digital port 7Turret servo – digital port 9Bumpers – 4 digital ports (eg

10,11,12,13)Motors – 2 DC motor ports