91.549 mobile robotics: introduction to robotics contact

14
Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 1 91.549 Mobile Robotics: Introduction to Robotics Lecture 1 Fall 2006 Prof. Holly Yanco Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 2 Contact Information E-mail: [email protected] (best contact method) Phone: 978-934-3642 Office: Olsen 206 Lab: Olsen 304 Office hours Tuesdays 10:15-11:15 Thursdays 1:00-3:00 By appointment Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 3 Course Topics Sensors and Effectors Machine Vision • Manipulation Robot Architectures Machine Learning Evolutionary Robotics Mapping and Localization Planning and Reasoning Multi-Agent Robotics • Human-Robot Interaction Current Research in Robotics Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 4 Readings We’ll read current and historical research papers on the week’s topics, which will form the basis for the week’s discussion You should come to class with a page written on each paper: summary, discussion and 2-3 discussion points or questions

Upload: others

Post on 12-Sep-2021

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 1

91.549 Mobile Robotics:Introduction to Robotics

Lecture 1

Fall 2006

Prof. Holly Yanco

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 2

Contact Information

• E-mail: [email protected] (best contact method)

• Phone: 978-934-3642

• Office: Olsen 206

• Lab: Olsen 304

• Office hours– Tuesdays 10:15-11:15

– Thursdays 1:00-3:00

– By appointment

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 3

Course Topics

• Sensors and Effectors

• Machine Vision

• Manipulation

• Robot Architectures

• Machine Learning

• Evolutionary Robotics

• Mapping andLocalization

• Planning andReasoning

• Multi-Agent Robotics

• Human-RobotInteraction

• Current Research inRobotics

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 4

Readings

• We’ll read current and historical researchpapers on the week’s topics, which willform the basis for the week’s discussion

• You should come to class with a pagewritten on each paper: summary, discussionand 2-3 discussion points or questions

Page 2: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 5

Assignments and Labs

• Pioneer robots• Player/Stage simulator• Programmed in Pyro• Labs must be checked

off before class startson due date (let meknow if this presents aproblem for yourschedule)

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 6

Project

• Topics selected by students, dicussed withme

• Project discussions on 10/26

• Proposals due on 11/2

• Presentations on 12/21

• Reports due 12/21

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 7

Today’s Lecture

• Sensors

• Locomotion

• Python tutorial

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 8

Sensors

• Also known as transducers• Measure internal or external state• Internal state, also called proprioception

– Battery level– Wheel rotations– Position of gripper

• External state:– Location of objects with respect to the robot– Color of objects

Page 3: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 9

Sensors

• Active– Emit energy into the environment to make observations

– E.g., infrared, sonars

– Don’t confuse active sensors (devices that emit energy)with active sensing (e.g., pan-tilt camera)

• Passive– Receive already existing energy from environment

– E.g., bump sensor, video camera (without additionallighting)

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 10

Sensors

• Sensors which measure same form ofenergy and process it in similar ways form amodality

• Modalities refer to the raw input– Sound– Pressure– Temperature– Light

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 11

Types of Data Returned

• Range (distance to objects)

• Absolute position (e.g., latitude andlongitude)

• Environmental (e.g., temperature or color ofobjects)

• Inertial (e.g., acceleration)

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 12

Sensors: Inertial Sensors

• Accelerometers– Measure acceleration in a single direction

• Gyroscopes– Measure change in orientation

• Compasses– Measure position relative to magnetic north

• Inclinometers– Measure orientation of the gravity vector

Page 4: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 13

Sensors: Global Positioning

• Global Positioning Sensors (GPS) usesatellite readings to determine location

• Differential GPS (DGPS) uses a basestation to eliminate the intentional error inthe satellite signals

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 14

Ranging Sensors: Sonar

• Sends an acoustic pulse andlistens for echo

• Can determine how far awayan obstacle is based upontime of flight and speed ofsound

• Can have problems withspecular reflections

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 15

Ranging Sensors: Infrared

• Fast and inexpensiveproximity sensors

• Emit an infrared pulseand detect thereflected signal

• Infrared can bewashed out by brightlight

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 16

Ranging Sensors: Laser Ranging

• Uses one of the following methods– Triangulation (relationship between

outgoing light beam, incoming ray and itsposition on the film plane)

– Time-of-flight (similar to sonar or infrared)

– Phase-based (based on difference betweenphase of emitted and reflected signals)

• Low-power ranges a few meters

• High-power can range over a kilometer

Page 5: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 17

Sensors: Cameras

• Images from cameras must be processed inorder for the robot to use the information– Edge detection

– Tracking movement

– Finding particular colors

– Distance of objects from the camera

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 18

Problems with Sensors

• Noisy• Return an incomplete description of the

environment• Can not be modeled completely

• We will come back to these issuesthroughout the term, particularly when wetalk about mapping

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 19

Attributes of a Sensor Suite

Consider for entire suite:1. Simplicity

2. Modularity

3. Redundancy– A sensor might be noisy or inaccurate by itself

– False positives / False negatives

– Complementary sensors can be used to providedisjoint information about a percept

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 20

Fusing Sensor Data:Sensor Fission

sensor

sensor

sensor

behavior

combinationmechanism

behavior

behavior

percept

percept

percept

action

action

action

action

Page 6: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 21

Fusing Sensor Data:Action-Oriented Sensor Fusion

sensor

sensor

sensor

behaviorfusion

percept

percept

percept

actionpercept

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 22

Fusing Sensor Data:Sensor Fashion

sensor

sensor

sensor

sequenceselector

behavior

percept

percept

percept

actionpercept

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 23

Locomotion

• Terrestrial

• Aquatic

• Airborne

• Space

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 24

Locomotion: Wheels

• Differential Drive– Two wheels mounted on a common

axis controlled by separate motors

• Synchronous Drive– Usually three wheels, all of which

can be driven and steered

• Ackerman Steering– Car drive: front steering wheels turn

on separate arms

Page 7: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 25

Locomotion: Tracks

• Usually two treads

• May have ability tochange shape

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 26

Locomotion: Legs

• Varying numbers of legs: 1,2, 4, 6, etc.

• Usually more difficult tocontrol than wheeled robots:need to consider gait andbalance

• Can traverse areas thatwheels can not

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 27

Python

• Interpreted language• Dynamically typed• Object oriented

Following is a quick Python tutorial. Formore on Python, see the reference manualsin the lab or How to Think Like a ComputerScientist, linked on the course web site

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 28

Python Tutorial:Calculating Compound Interest

principal=1000rate = 0.05numyears = 5year = 1

while year <= numyears:principal = principal * (1 + rate)print “%3d %0.2f” % (year, principal)year += 1

Page 8: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 29

Python Tutorial

• Indentation matters! (No specific amount,but must be consistent within a block.)

• No semi-colons are needed (but can putthem in)

• print is similar to C’s printf

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 30

Python: Conditionals

if a<b: print aelse: print b

if a<b: pass #do nothingelse: print b

if a<b and a<c: print aelif b<a and b<c: print belse: print c

and, or, not for boolean expressions== for testing equality

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 31

Python: Strings

a = ‘Hello World’b = “Python is fun”c = “””Multi-line string, either with single or double quotes”””

Indexed starting at 0

a[4] is oa[0:5] is Helloa[6:] is Worlda[3:8] is lo Wo

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 32

Python: Strings

Concatenated with +

d = a + “. “ + b

Can convert other data types to string using str(x) repr(y) `y` #same as repr

If use repr to convert, can use eval()to turn back into original data type

Page 9: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 33

Python: Lists

names = [“Joe”, “Harry”, “Mary”, “Jill”]

Indexed starting at 0

names[2] is Mary

names[0] = “Bob” changes first name fromJoe to Bob

Length of a list: len(<list>)

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 34

Python: Lists

Use append method to append new items to a list:names.append(“Kate”)

To insert an item to a list:

names.insert(2, “Bill”)

names[0:2] is [“Bob”, “Harry”]

names[2:] is

[“Bill”, “Mary”, “Jill”, “Kate”]

+ concatenates lists

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 35

Python: Lists

Lists can consist of any type of Python object,including other lists

Referencing nested lists: a[1][3]is thefourth element of the second element of alist

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 36

Python: Tuples

Tuples are like lists but you can’t modifyindividual elements or append new elements

a = (1, 3, 5, 7)

person = (first, last, phone)

Page 10: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 37

Python: Loops

for i in range(1, 10)

print i

range(i,j) constructs a list of integers with valuesfrom i to j-1

If i is omitted, assumed to be 0, e.g. range(5)

Optional stride can be third element

range(0,14,3) is [0, 3, 6, 9, 12]

range(8,1,-1) is [8, 7, 6, 5, 4, 3, 2]

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 38

Python: Loops

For can iterate over any sequence type:

a = “Hello World”

b = [“Dave”, “Mark”, “Ann”, “Phil”]

for c in a:

print c

for name in b:

print name

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 39

Python: Ranges

If creating a large sequence, e.g.range(1:1000000), use xrange

xrange is more efficient because it doesn’tcompute the next element until needed

range constructs a list and populates it withvalues

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 40

Python: Dictionaries

a = { “username” : “holly”,

“home” : “/home/holly”,

“uid” : 500 }

To access members of a dictionary

u = a[“username”]

d = a[“home”]

Page 11: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 41

Python: Dictionaries

Inserting and modifying dictionaries:

a[“username”] = “yanco”

a[“shell”] = “/usr/bin/tcsh”

Strings are the most common key indictionaries, but you can use other Pythonobjects like numbers and tuples

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 42

Python: Dictionaries

Dictionary membership tested with has_key() method

if a.has_key(“username”):

username = a[“username”]

else:

username = “unknown user”

More compact:

a.get(“username”, “unknown user”)

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 43

Python: Dictionaries

To get a list of dictionary keys:

k = a.keys()

To remove an element of a dictionary:

del a[“username”]

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 44

Python: Functions

Use def statement to create

def remainder(a, b):q = a / b

r = a - q * b

return r

To invoke:

result = remainder(37, 15)

Page 12: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 45

Python: Functions

Use a tuple to return multiple values from a function

def divide(a, b):

q = a / b

r = a - q * b

return (q, r)

Function call:

quotient, remainder = divide(1456,33)

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 46

Python: Functions

Can invoke functions with arguments inarbitrary order

divide(b=3, a=124)

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 47

Python: Functions

Variables created or assigned inside a function havelocal scope

To modify the value of a global from inside afunction, use the global statement

a = 4…def foo():global a

a = 8

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 48

Python: Classes

class Stack:

def __init__(self):

self.stack = []

def push(self, object):self.stack.append(object)

def pop(self):

return self.stack.pop()

#pop is a list method

def length(self):return len(self.stack)

Page 13: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 49

Python: Classes

__init__ is a special method

Used to initialize an object after it’s created

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 50

Python: Classes

Other list methods:list(s) - Converts sequence s to a lists.append(x) - Appends a new element x to end of ss.extend(t) - Appends a new list t to the end of ss.count(s) - Counts occurrences of x in ss.index(x) - Returns smallest I where s[I]==xs.insert(i,x) - Inserts x at index Is.pop([i]) - Returns the element I and removes it from the list.

If I is omitted, the last element is returneds.remove(x) - Searches for x and removes it from ss.reverse() - Reverses items of s in places.sort(<cmpfnc>) - Sorts items of s in place. cmpfun is a

comparison function

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 51

Python: Classes

s = Stack() #create a stack

s.push(“Dave”)

s.push(42)

s.push([3, 4, 5])

x = s.pop() #x gets [3,4,5]

y = s.pop() #y gets 42

del s #destroys s

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 52

Python: Modules

Can put definitions in a file and use them as amodule that can be imported into other programsand scripts

File must have a .py extension

#file: div.py

def divide(a, b):q = a / b

r = a - q * b

return (q, r)

Page 14: 91.549 Mobile Robotics: Introduction to Robotics Contact

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 53

Python: Modules

To use the module in other programs, use importstatement:import div

a, b = div.divide(2305, 29)

Can import with a different name:import div as foo

a, b = foo.divide(2305, 29)

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 54

Python: Modules

To import specific functions:from div import divide

a, b = divide(2305, 29)

To load all contents:from div import *

Prof. Yanco 91.549 Mobile Robotics, Fall 2006 Lecture 1, Slide 55

Python: Modules

dir() function lists the contents of a moduleand can be useful for interactiveexperimentation

>>>import string

>>>dir(string)