Last Updated
    2 / 28 / 12
Original Site



    Path: BinaryBedlam > Krill Labs > robotics > Semi-Autonamous > Rover DK-001-02 (Lady Bug)    


     
   
Rover DK-001-02 (Lady Bug)
Developed:        
5/1/2008


Status:
Continuing Development


Summary:
A rover with a successful obstical avoidance algorithm.
-OVERVIEW-




About:
      Here it is, my most advanced, and most importantly, not dismantled rover. Using NASA's rovers as my inspiration, this robot was
built not only to have something neat to drive around, but as an experimental test bed for new programming ideas, and custom
hardware. Already this rover is equipped with an extended range receiver for long distance missions, movement encoders so the
onboard computer knows exactly where it is, external force sensors to detect obstacles, and a beefy lead acid battery for
more power.







Data Transmission:
      Somewhat primitive by todays standards, the communications between this robot and the home base are established using a system
similar to how the old sputnik or telstar satellites transferred data. Over a public RF band, different frequency tones and beeps
are transmitted from a computer then received and interpreted by the robot as executable instructions. I accomplished this rather
inexpensively, I wired a walkie talkie receiver into the robot. To discriminate the tones, I have the output of the receiver wired
into a tone decoder circuit which when confirming a frequency match, simply raises the output of a corresponding pin which represents
either a 1 or 0. Now that the problem of sending 0s and 1s wirelessly was overcome, interpreting the message would only be a matter
of programming.
      So of course I developed my own protocol to handle this as well! It's not too complicated, though. The first 3 bits of the message
signal a mode the robot should enter, the following bits indicate an action indicative to that mode. For example, if in mode 1, which
is Manual Drive, sending three more bits like 0-0-1 would make it go forward. If in mode 7, which is Individual Motor Control, 0-0-1
would just make the head look to the left.







Semi-Autonomy:
      What makes this rover so special is that it's not just another romote controlled drone. It has the ability to do certain things on
it's own with out me directly telling it to do so. Like the robots NASA has been sending to Mars, a general command can be issued
and then the robot will do it's best based on current conditions and it's own experiences to achieve that goal. An example would be
ground control telling the robot to go into power save mode, instead of the robot just going to sleep, it might first power down any
extraneous instruments and then maybe it would drive over to a hill which faces the sun to maximize solar collection. As of right
now my rover is still pretty dumb, though. So far I can tell it to 'go over there' and it will start going there driving around objects
in the way on it's own.







Obstacle Avoidance:
      The most advanced feature this robot currently possesses is it's ability to avoid obstacles during a 'drive mission'. To do this
requires three main things: External Object Detection, Position Articulation with Feedback, and an algorithm to make it all happen.
These items can be metaphorically related to: Seeing or feeling something in your way, using your feet to move you, and using your
brain to decide the best course of action around the obstruction.
      For the object detection part, the robot is fitted with lever switches along it's side which can detect objects brushing up against
it. There are infra-red ranging sensors on the front which can tell if something is in the way and how far away it is.
      Position articulation with feedback refers to motors moving the robot with out the onboard computer loosing track of where it is in
space. This is most commonly done with encoders. In the case of my robot, I made my own notched wheel encoders with a UV
emitter/receiver pair. These are placed on each drive axel so for every 8 pulses from the encoder, the robot's computer knows that
the respective wheel has moved 1 foot.
      Finally, the algorithm. This is the portion of obstacle avoidance still undergoing constant revision. It's basically just a set
of complex equations and logic questions that work together to decide the next action given the last input. Obviously the more
time spent on coding this program, the smarter the robot will appear. So with lots of trial/error and constant experimentation
I'm slowly making this rover more and more intelligent.







Initial Construction:

                  


Deck Assembly:

      


Additional Pics:

       The price of linear actuators these days is rediculous! So I was looking around at Lowes for ideas
for alternatives and I came across this. It's an Eye-tentioner. When the center part is rotated,
the two ends draw in.







       Here is how I turned it into a home-made linear actuator. The motor turns the whole coupling portion
which in turn pushes or pulls the threaded rod.







       Here is a view of the rover from the front.






       Here it is from the rear.






Related Videos:
      This is my first run testing my new obstacle avoidance algorithm. After boot up, this robot was instructed with the simple task of just going forward. After getting so far, it found an obstruction, it began it's avoidance maneuvering pattern but then had a software crash, probably some error in one of my recursive function calls. Besides knocking the vase over, it at least drove around it, sort of.











Viewer Comments




Leave A Comment


NAME: REMARK:









BinaryBedlam's Basic Web Development 2010© .
Created by Dan Krill of BinaryBedlam ; Krill Labs and any of its subsidiary components, which include but are not limited to: Graphical Design and Layout, Images, and Decals;
are the property of the owner and should not be used with out expressed written consent from the web administrator .