Name(s) __________________________
Reading for Week 3: Choose one of the four papers (handed out in class):
Designing a Miniature Wearable Visual Robot
An Innovative Locomotion Principle for Minirobots Moving in the Gastrointestinal Tract
Get Back in Shape! A reconfigurable microrobot using Shape Memory Alloy
Walk on the Wild Side: The reconfigurable PolyBot robotic system
The example stepper motor shown in class had 4 teeth on the stator and 2 on the rotor. The angle that that motor turned for each full step was 90 degrees. A full step is considered the smallest (nonzero) angular turn that causes two teeth on either side of the rotor to align with two teeth (also diametrically opposed) on the stator. For example, the diagram below shows four consecutive full steps of 15 degrees each in a stepper motor with a six-toothed rotor and eight-toothed stator.
How large is the full-step angle in a stepper motor with R rotor teeth and S stator teeth? Note that you may need to consider separate cases, depending on the values of S and R. You may assume, however, that S is an even number greater than 4 and R is an even number greater than 2. Why would the motor not be very useful if If S == 2 ?
A typical commercial stepper motor offers a full-step resolution of 1.8 degrees. What would you guess are the number of rotor and stator teeth on such a motor?
This question asks you to implement P and PD control on the Nomad simulator. If you are not already familiar with the simulator, you may want to read the description available here in Lab A, Part 1. The first section of that file explains how to get the Nomad software running and how to write code to control the robot.
In the directory /cs/cs154/as/problemset1 there are some files that will help get you started. Feel free to copy them to your directory -- the file pd.cc has some skeleton code to support your writing and testing proportional and PD control.
Controlling real robots is complicated by the inevitable time delays that are inherent in any sensing system. To model those delays, there is a DELAY global in pd.cc that is set from a parameter file (named parameter). (There is also a MAX_SPEED global variable.) You should implement your P and PD controllers with a DELAY of 1.5 seconds (the default).
Problems
plot 'output' with lines
Gnuplot also has online help, or you could use any other package
(matlab, maple, etc.)
pd.cc to include a derivative term (PD control).
Identify the parameters that give you maximum performance
(i.e., minimum rise time) with no overshoot or oscillation.
(Hint: hold one
parameter steady while you optimize the other, then do the same
for the other parameters. Repeating this process 2-3 times should
result in good values).To submit this problem, include the values of your proportional gain Kp from part 1, your proportional and derivative gains Kp and Kd from part 2, and the delay time that causes instability from part 3. Also, email me your PD implementation (or mail me a URL with a link to that file and any other supplementary information, e.g. screenshots).