Lesson: What Level (scope) are we working at?

Overview: 
Explore where a student's program fits in the hierarchy of programs that make up a robot's complete set of software.
Objectives: 

Understand where in the hierarchy of software layers that make up a robots code the student program sits and the scope what it needs to control.

Content: 

Software systems are typically made up of several layers of programs, each providing services to the layer above. Robots are no different. In a robot, there will be a layer below your program that provides services to the programs you will write. This layer below (an API) hides complexity or details that have already been programmed for you and you can ignore. There may also be a layer above your program that tells your program when to stop and start and may provide input. In that sense your program is providing a service to that higher layer. The layer at which your program sits and the things it needs to know about and control are its scope.

A way to think about this is to consider the example of the human body. If we think of the body, the body has a brain, nerves, neurons and limbs (arms, fingers). Comparing to a robot, the robots processor is the brain, the nerves are wires, the neurons are motor controllers and the limbs are motors. The brain does not need to know how the neurons work or how the limbs work, it just tells the neuron to move the hand and the neuron takes care of the details of hand movement. In a robot, we don’t worry about how the motor controller chooses the right voltage to make the motor turn, we can just tell the controller to move the motor.

During your learning how to program robots, there will be plenty things going on at lower and higher levels, which we will not discuss in detail but you typically don't need to know how these other levels work. Your program just asks the lower level to perform a function and may respond to a request from a higher level.

Lesson navigation: