This semester, Professor Pletch is teaching a course on programming robots. The robots have obstacle and light sensors along with a stall sensor that can tell us if the robot is stuck somewhere. The robot is a “rover” type. It has independently motored wheels.
Instead of asking “What can a robot do”?” more appropriate questions include “What sensors does a robot have?” and “What functionality does a robot have?” Just as our human ability to accomplish tasks is dependent on the senses we possess and the motor functions we can make use of, a robot is similarly restricted in what it can accomplish.
The programming environment for the robots is Python – a most delicious programming language. Although Python is a great pedagogical tool and a really easy way to start programming you will find many important websites on the Internet that are Powered by Python. Communication with the robots is through Bluetooth, so interacting with the robot is an asynchronous, live activity. There is no need for a serial cable and a labourious sequence of program, connect a cable to the robot, upload the program, disconnect the serial cable, start the robot, program, connect a cable to the robot, upload, ...
Here we see ChunChieh Lu programming his Scribbler robot. Since the course is taught with on-line, free textbooks, students can acquire their own robot for about the same price as the books would have cost.
So “What can a robot do?” We know the robot's own limitations so given these, the rest is up to the programmer. Watch it here.