Jennifer Goodall, Nick Webb, Katy DeCorah http://www.albany.edu/robotics Machine Built to do job(s) Programmed Maybe autonomous If we want robots to do things for us, we have to program them How do we program a robot? What does the robot need to KNOW to do useful things? What do they need to do to perform tasks? Imagine picking up some trash from the floor and taking it to the nearest garbage bin Need to get an understanding of what’s around them, like where the trash is (SENSE) Need to work out what they are going to do, and how they are going to do it (PLAN) Then they need to actually do it (ACT) Designing new robots New sensors New ways of combining sensor information New effectors Making robots think How to get them to talk How to make their eyes work All of this involves writing programs Computer programming Create the behavior you want the robot or computer to do Think ‘algorithmically’ Write down that algorithm in a way that a machine understands Test it, improve it How do we do things? We move around We pick things up We drop things Robots need to use the same Called ACTING Speech Motor Wheels Gripper Display Tracks Legs Face Move forward 3 seconds, then backward 3 seconds Move forward 3 seconds, and turn left or right (try to get close to a 90o turn) Try to get robot to drive around a square Is there a better way to do this? Let’s create a new program Use the loop structure to make your robot drive around in a rough square Can you make it so that the robot drives EXACTLY once around the square, and then stops? Can you make it drive once around a square, and then rotate roughly 360 degrees on the spot? What do we use to find out about the world around us? Eyes Ears Touch Taste Smell Robots need to use the same Called SENSING Camera Color Infra Red Ultra Sonic Sound Touch Create a new program (called avoidObjects): Drive forward IF there’s an object ‘close’ to the robot THEN turn 90 degrees left or right (your choice) Do this forever Try a new program with the color sensor Make the robot drive around IF it detects something RED THEN stop You’ve been programming your robot Giving the PLANS or INSTRUCTIONS to do tasks Using SENSORS to help make decisions Using EFFECTORS to carry out those plans How do we decide what to do? Make decisions of what to do… …and when Put things together in sequence Make a plan (for the day, or week, or…) Have to be able to deal with things that occur as we do our stuff Robots need to use the same Called PLANNING Think of IF-THEN rules IF <see garbage> THEN <pick-up> IF <holding garbage> AND <at trash can> THEN <drop garbage> IF <10PM> OR <battery low> THEN <sleep> IF NOT <holding garbage> THEN <search room> Social robots will interact with us in our world Need to cooperate, communicate and collaborate with humans Have to understand our goals, our actions, and our behaviors What do robots need to achieve this? BANG!!! OUCH!!!! Ooops. Sorry! BANG!!! And then I said What the to her, you heck…hang ROOMBA: And SHENOT said know…. on… NOW!!! that I was, and I said… VRRROOOMMM Thinking about the AVOID program from earlier What would a POLITE robot do? Create a POLITE robot and show it off