Presentation is loading. Please wait.

Presentation is loading. Please wait.

CompSci 001 7.1 Today’s topics Robots Myro Loops Notes from the Institute for Personal Robots in Education Upcoming ä More Python Reading Learning Computing.

Similar presentations


Presentation on theme: "CompSci 001 7.1 Today’s topics Robots Myro Loops Notes from the Institute for Personal Robots in Education Upcoming ä More Python Reading Learning Computing."— Presentation transcript:

1 CompSci 001 7.1 Today’s topics Robots Myro Loops Notes from the Institute for Personal Robots in Education Upcoming ä More Python Reading Learning Computing with Robots, Chapter 1-5,9

2 CompSci 001 7.2 What is a robot? l Definitions ä Webster: a machine that looks like a human being and performs various acts (as walking and talking) of a human being ä Robotics Institute of America: a robot is a reprogrammable multifunctional manipulator designed to move material, parts, tools, or specialized devices through variable programmed motions for the performance of a variety of tasks ä What’s our definition? l Components of a robot system?

3 CompSci 001 7.3 Uses of robots l Where and when to use robots? ä Tasks that are dirty, dull, or dangerous ä Where there is significant academic and industrial interest l Ethical and liability issues l What industries? l What applications?

4 CompSci 001 7.4 Agents and Environments

5 CompSci 001 7.5 IPRE5

6 CompSci 001 7.6 IPRE IR Obstacle Sensors l The Scribbler has two IR obstacle sensors (under the light sensors) that return a binary value of 0 or 1. l The robot actually has 1 IR receiver located in the center, and two emitters located on the left and right side of the emitter.

7 CompSci 001 7.7 IPRE IR Obstacle Sensors l Return value of: 0 – IR light is bouncing back to receiver

8 CompSci 001 7.8 IPRE IR Obstacle Sensors l Return value of: 1 means that infrared light is not bouncing back to the receiver, so nothing is in front of the emitter/detector.

9 CompSci 001 7.9 IPRE IR Obstacle Sensors getIR() returns a list of two items [1,1]. You can also call getIR(“left”) to get just the left sensor, and similarly with getIR(“right”). The function also accepts 0 and 1 as the parameter to select which sensor value to return.

10 CompSci 001 7.10 IPRE Light Sensors (3)‏ l The scribbler has 3 light sensors ä Left, Center, and Right ä On the same side as getIR sensors. [45, 200, 430]  getLight()‏

11 CompSci 001 7.11 IPRE11 Light Sensors (3)‏ l Light sensor values range from 0 to 5000. Zero is very bright, 5000 is full dark. getLight() returns a list of all 3 values. getLight(“left” / “center” / “right”) or getLight(0/1/2) selects one value

12 CompSci 001 7.12 IPRE Internal Scribbler Sensors getBattery() - returns battery voltage getStall() - returns stall condition (0 or 1) ‏ ä This value changes to a 1 when the motors are overworked ‏ ä Note that it takes a half second to re-set the stall sensor getName() – returns the robot’s name  can be changed with setName(“newName”)‏

13 CompSci 001 7.13 IPRE13 Fluke Board l The Fluke add-on board has its own IR obstacle sensors and a camera.

14 CompSci 001 7.14 IPRE Fluke Board – IR Obstacle sensors Myro uses the getObstacle() function to differentiate the IR sensors on the Fluke from the IR sensors on the Scribbler. l The fluke sensors are more sensitive than the Scribbler sensors Instead of just returning a zero or one, they return an integer value between zero and 7000.

15 CompSci 001 7.15 IPRE Fluke Board – IR Obstacle sensors l The fluke has 3 IR emitters, one pointing forward...

16 CompSci 001 7.16 IPRE Fluke Board – IR Obstacle sensors l The fluke has 3 IR emitters, one pointing forward... l And two pointing to the left and right.

17 CompSci 001 7.17 IPRE Fluke Board – IR Obstacle sensors l The fluke has 3 IR emitters, one pointing forward... l And two pointing to the left and right. l They all bounce light back to a center mounted receiver.

18 CompSci 001 7.18 IPRE Fluke Board – IR Obstacle sensors l Zero indicates no IR light is bouncing back from an obstacle. l [0,0,0] = getObstacle() ‏

19 CompSci 001 7.19 IPRE Fluke Board – IR Obstacle sensors l Larger numbers indicate that more IR light is bouncing back. l [0, 1842, 0] = getObstacle() ‏

20 CompSci 001 7.20 IPRE Robot Actuators l Beep  beep() - issues a random beep  beep(1) – random beep for 1 second  beep(1,800) – Beep at 800Hz for 1 second  beep(1,440,880) – two tone beep at 440 & 880Hz for 1 second. l Motors l LED Lights

21 CompSci 001 7.21 IPRE21 Motor commands – Synchronous vs Asynchronous l What is the difference between these pieces of code? forward(0.85)‏ wait(1.5)‏ stop()‏ l And... forward(0.85, 1.5)‏

22 CompSci 001 7.22 IPRE22 Motor commands – Synchronous vs Asynchronous l What is the difference between these pieces of code? forward(0.85)‏ beep(1.5,880)‏ stop()‏ l And... forward(0.85, 1.5)‏ beep(1.5,880)‏

23 CompSci 001 7.23 IPRE23 Motor commands – Translate & Rotate l Other functions exist: ä translate(speed) ‏ ä rotate(speed) ä stop() is equivalent to translate(0); rotate(0) ‏

24 CompSci 001 7.24 IPRE24 Fluke Board – Camera l You can take a picture using the camera on the Fluke board. l p = takePicture() l show(p) ‏

25 CompSci 001 7.25 IPRE25 Fluke – Camera as a brightness sensor l Similar to the getLight() function on the Scribbler, the fluke allows you to use the camera as a “brightness” sensor with the getBright() function call. l getBright() returns a list of three values l getBright(0 / 1 / 2) or getBright( “right” / “center” / “left”) return a single value. l The numbers returned represent the sum of the luminance values of the pixels in the right/center/left of the camera, so they are quite large! l The lower the number, the darker that area of the camera is.

26 CompSci 001 7.26 IPRE26 Taking / Saving / Loading a Picture p = takePicture()‏ show(p)‏ savePicture(p, “class.gif”)‏ p2 = loadPicture(“class.gif”)‏ print getWidth(p)‏ print getHeight(p)‏ 256 192

27 CompSci 001 7.27 IPRE Robot Pictures l Robot pictures are: ä 256 pixels wide by 192 pixels high l Each pixel is made up of 3 colors: ä Red, Green, and Blue ä Colors range in value from 0 – 255 ä Plus an “Alpha” value we won't use (for now). l When you print a picture or a pixel, Python gives you some textual information about the item, but does not give a visual representation. l The show(picture) method will display the picture on the screen.

28 CompSci 001 7.28 IPRE Accessing a specific pixel print p pix = getPixel(p, 50,50)‏ print pix setRed(pix,0)‏ setGreen(pix,0)‏ setBlue(pix,0)‏ print pix show(p)‏

29 CompSci 001 7.29 IPRE Zoomed In View: One Black Pixel

30 CompSci 001 7.30 IPRE Looping through all pixels print p for pix in getPixels(p): setRed(pix,0) setBlue(pix,255)‏ setGreen(pix,255)‏ show(p)‏

31 CompSci 001 7.31 IPRE Looping through all pixels: getPixels( picture )‏ p = loadPicture(“class.gif”)‏ for pix in getPixels(p): setRed(pix,255) But what if you only change the red part of the pixels ?

32 CompSci 001 7.32 IPRE Pixel Functions l Getting a specific pixel: ä getPixel(picture,x,y) ‏ l Getting all pixels: ä getPixels(picture) ‏ l Getting pixel color info ä getRed(pixel) ‏ ä getGreen(pixel) ‏ ä getBlue(pixel) ‏ l Getting pixel location: ä getX(pixel) ‏ ä getY(pixel) ‏ l Setting color info: ä setRed(pixel, value) ‏ ä setGreen(pixel,value) ‏ ä setBlue(pixel,value) ‏


Download ppt "CompSci 001 7.1 Today’s topics Robots Myro Loops Notes from the Institute for Personal Robots in Education Upcoming ä More Python Reading Learning Computing."

Similar presentations


Ads by Google