Robotics lies at the intersection of three different disciplines, each of which having substantial content: mechanical engineering, electrical engineering, and software engineering.
Mechanical engineering is the discipline of things that interact using physical force: wheels and driveshafts, gears, levers and pulleys. Electrical engineering is the discipline of things that interact using electrical forces: motors and circuits, signals from one component to another, power supply. Together these two delimit the hardware of a robot. (The hardware part of a system is the part you can kick when it misbehaves.) Software engineering is the discipline of computer programs, which is used in robots to direct and control their behavior. (The software part of a system is the part you can merely curse at when it misbehaves.) A number of types of activities are specific to robots; these are generally called “robotics,” which is an area of active research and development and probably not quite yet a discipline.
What constitites a “robot” is, to a large extent, a matter of opinion. Any mechanism — such as an alarm clock or a folding chair — might be considered a robot, albeit a rudimentary one. A stick stuck vertically in the ground is a robot: it tells you the local solar time. Any mechanism that exhibits activity and directs that activity in accordance with user inputs — such as a thermostat or a CNC router — can be very definitely considered a robot. Homeostasis, seeking a constant condition of something or other, is definitely a complex and goal-oriented behavior; following detailed directions expressed symbolically is also a complex behavior. The robots developed in this course will start out on the rudimentary side, as simple programs or simple circuits or simple mechanisms, and get more complex as the course progresses. Ultimately, the goal of this course is to produce autonomous robots: mechanisms that exhibit complex, typically goal-seeking, behaviors with results of value to humans. Some of our robots will be sessile (have a fixed location); some will be mobile (moving around); some will be largely immaterial (have few hardware components); some will be reflexive (simple inputs produce stereotyped activity); and some will, to some extent, be cognitive (inputs produce novel combinations of behavior).
We need all three types of engineering — software, electrical, and mechanical — as well as a dash of robotics in order to design a robot. And we need the activities associated with these engineering disciplines — writing programs, building circuits, and fabricating mechanisms — to build a robot. And, as hobbyists, there are two significant constraints we must meet: it all needs to be inexpensive, and it all needs to be fun.
Shall we begin?