|
In lugnet.robotics.rcx.legos, Elizabeth Mabrey wrote:
>
> I built this 6-legs bug for a black line tracking test.
>
> The construction:
> It is a walker with 2 motors, one for 3-left-legs, another one for the
> right. Middle leg on each side is connected on an 8-tooth gear and attach
> an 40-tooth gear. This serves as a crankshaft for moving the middle leg.
Am I correct in thinking the two front, and two back legs don't move, only the
middle two?
That's a nice, simple design.
And you have two light sensors, and your goal is to keep them on either side of
the line, right?
> The robolab program:
> - The light sensors detection are done in 2 different tasks, and each has
> its container/variable. Each task increments the variable as it reads black.
> - The main task is to move the legs . The movement of left and right are
> all serialized.
> - psuedo code for the two sides movement for handling the detection of the
> black line:
> a) loop if left light variable>0
> --> do one turn (ie. left side walks back & right side walks forward)
> --> decrement the left light variable
> b) loop if right light variable > 0
> --> do one turn (ie. left side walks back & right side walks forward)
> --> decrement the left light variable
If I understand what you're saying, then this program is MUCH more complex than
it needs to be. And the robot may never turn just the right amount...
> I have 1 major and 1 minor issue:
>
> MAJOR: it turns well as long as it does not involve multiple reverse turns,
> e.g. right ...left ... right ... left... etc. Sometimes, some turns are
> either too much or too little?!
right. :)
Here's something else to try. Start a new program. (let me see if I can use
text for Robolab pictures :)
start Loop
if-left light sensor=dark (less than threshold) -> reverse left motor
else -> forward left motor
end if block
if-right light sensor=dark -> reverse right motor
else -> forward right motor
end if block
end loop (jump to start)
That's the whole program. Whenever a light sensor sees the line, it should
reverse (or stop) the motor on that side. Depending on how fast the whole thing
moves, you'll want to test if reverse or stopping the motor works better. For
fast robots, stop works better, because reverse will go too far, too fast.
> minor: the light seems to be susceptible to a slight light variance. The
> light sensor may give a value of 32 to 36 for the same black spot if the
> light sensor is elevated about an inch. If this bot is using wheels, this
> issue will not arise because the distance of the light sensor to the test
> platform is constant. But for a walker, the light sensor goes up and
> down... Now if the platform only has black and white, this slight variation
> does not matter... but with some green at some spots, it becomes problem.
> I perhaps could reduce gear size from 40-tooth to say 24-tooth... but I'm
> afraid the reduction of torque may make the walking difficult.... Input?
As it turns out, the minor problem is harder to resolve. The bouncing is common
with walking robots. One way to minimize the problem is to start with the light
sensor mounted higher. Then, the difference between the two readings will be
less. (but will still exist)
Moving the sensor like this can cause other problems. The sensor will be more
subject to ambiant light changes (like the robot casting a shadow around the
line).
I hope that helps
Steve
|
|
Message has 1 Reply:
Message is in Reply To:
5 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|