Page 194 - Anatomy of a Robot
P. 194

07_200256_CH07/Bergren  4/10/03  3:30 PM  Page 179
                                                                     ENERGY CONTROL AND SOFTWARE 179
                            power. We can alter the algorithm so fewer steps are required and thus save power.
                            Certainly, algorithms can be structured many different ways, but to save power, keep
                            them short and sweet.
                            SCHEDULING

                            To coin a phrase, one should better buy the pizza instead of just eating it by the slice.
                            Certainly, buying the whole pizza at once will be cheaper, and the same is true in the
                            software domain. It becomes easy to chop a control problem into tiny pieces without
                            realizing it. Often, this happens during the design process as various aspects of the
                            power control problem are considered one at a time. Once a problem is chopped into
                            pieces, we wind up paying for it in lost compute time, lost energy, and lower reliability.
                            Problems become fragments in more than one dimension. Here are a few ways to
                            decrease wasted overhead in the robot:

                                Computer overhead    A computer control program that executes intermittently
                                 is wasteful. The robot’s computer must be awakened or used more often, and the
                                 attendant overhead becomes excessive. If we can find a way to pull the program
                                 back together so it can be handled in one fell swoop, we can reclaim the lost
                                 energy and time. Consider auditing all the tasks the robot performs and identify-
                                 ing those that are being handled in a fragmented way. Several such tasks creep
                                 unnoticed into a design during the design phase. Rewriting those tasks will often
                                 bring power savings and make the software more reliable.
                                Power overhead   Most robots have dozens of tasks to perform. Some of the
                                 energy  to  perform  these  tasks  will  be  wasted  in  overhead.  Consider,  for  the
                                 moment, a car. Starting a car, at the very least, causes energy to be expended from
                                 the battery. If we have two errands to run, we could group them together so we
                                 only have to start the car once. The same grouping technique can work in energy
                                 management in a robot. Some of the hardware circuitry will need to be charged
                                 up to perform tasks. We can save energy by grouping tasks together in time so less
                                 energy overhead is wasted.
                                Pipelining  (real  time)  Consider  modifying  the  robot’s  control  software  to
                                 pipeline tasks. To illustrate why this is useful, we need to revisit pipelining as it
                                 applies to processors.

                              In processors with pipelines, instructions are not executed immediately, but they are
                            put into a pipeline. Pipelines can be used in different ways to control energy consump-
                            tion or execution speed. A trade-off takes place between speed and power since more
                            compute power requires more energy.
   189   190   191   192   193   194   195   196   197   198   199