Last Updated
    2 / 28 / 12
Original Site



    Path: BinaryBedlam > Krill Labs > robotics > Autonomous > PASA-001    


     
   
PASA-001
Developed:        
9/20/2009


Status:
Functional / Continuing Development


Summary:
To protect and serve.
-OVERVIEW-




Overview Right Arm Neck / Head




9/23/09: Building the Arm
         I guess I'll keep a running record of my progress. So right now this robot is just an arm, but that's how DK-002 got started, he was just a head for the longest time. Anyway this is the most advanced piece of hardware I've built to date. It's got custom made everything and tons of control with equally as many inputs. While the arm is now done, capable of a wide variety of movements, I'm continuing to develope software to fully utilize this advanced piece of hardware. So far I can instructionally step the arm though a list of 3-dimentional coordinates.






Position / Protection Sensors
         This circuit actually serves two applications, it acts as both a motor protection countermeasure and a max-travel indicator. The motor's main power is routed through this circuit's limit switches via the N.C contacts. So during normal operaion the current goes straight to the motor. Once the motor reaches one of it's position extremedies, however, the limit switch is pressed redirecting the current from the N.C. contact to the N.O contact resulting in the motor stopping itself and the circuit recieving the power instead. When the circuit receives that power it sends a signal back to the input card indicating that one of the limit switches was pressed and that the motor has reached the extent of it's travel.

      


Optical Encoders
         Everything here is custom made, and that includes the motor encoders! Using the voltage division rule, this circuit generates a high or low signal based on weather the LED is visible or not. The opto-resistor receiving the light is tied high, so when the beam is broken, it's resistance is also high, so the output tied to the middle of the voltage divider is low. When the beam is present, it's resistance is low so the output goes high.
         The encoder wheel is a piece of black construction paper cut into a half circle then sandwiched between two pieces of shipping tape cut into full circles resulting in a wheel half opaque half transparent. The encoder wheel is then placed on the motor's lead screw and positioned between the encoder. Given the length and thread size of these lead screws I get about 28 pulses from the full range of travel.

      


Digital / Analog Input Card
         If you want to have more intelligent machines you need to have lots of feedback, so this device has sensors all over. Now With loads of information coming back from every motor, it wasn't sufficient to have a single processor board handle both control and interpretation, it just isn't fast enough, so I build this. It's an input board with 24 opto isolated digital inputs and 8 analog line-voltage inputs. The processor's sole purpose is to constantly transmit the status of all it's inputs out over the serial bus.
         Each transmission packet contains 13 USART ASCII characters. The first 3 characters represent the 3 1-byte digital ports (b,c, and d). Each bit of these 3 characters represent each pin. 8 * 3 = 24 digital inputs. The next 8 characters are for each of the 8 analog inputs. So a voltage detection range of 0 to 5v is proportionally translated into an 8bit value for a pretty high resolution. The last 2 characters transmitted are just '!!'. This is the stop delimiter that tells the computer that the packet is complete.

      


Motor Drivers
         These motor drivers are actually a series of relays tied to an opto isolated transistor network for static noise isolation. Now since these drivers are relay based instead of H-bridged or MOSFETed, there is no speed control. There is only forward/reverse/stop. For this application, however, this is perfectly fine. We are more intrested in position accuracy than we are with anything else so it's a good compromise. For the big motors I'm using automotive cube relays, and for the smaller motors I'm using 2amp PCB relays. All are SPDT (form C). In each motor channel they are connected in such a fashion that if both relays are activated at the same time mistakenly, instead of shorting out the source, nothing happens at all because you are just bringing both sides of the motor to the same potential again. So it's like a built in safty measure.

                        


Digital Output card
         The output card is extreamly efficient because like the input card, it too is serial, so it can receive a lot of information very quickly, resulting in outputs that can switch very fast. The card has an onboard voltage regulator for power spike protection, 3 sets of 8 digital outputs, and is addressable so you can string several of these cards together for a combined total of 192 outputs. The onboard processor is constantly listening for it's instruction packet from the rs232 port. The packet consists of 4 characters, the first byte is the address, and the following three are for each of it's three output ports, each bit in these characters coresponds to each output pin.

      


The Hand
         I wanted this hand to be more humanoid than robotic. While it only has three fingers, it's better than using clamps, grippers, or pinchers. It not only looks neater, I think it will give it more dexterity in the long run. Each finger is custom cut and assembled from scrap aluminum and has it's own motor. The motors are all power drill assemblies so they're pretty strong. There are also limit sensors on each finger for the motors to know when to stop. The wrist is controlled by a junked car's climate control servo from the dashboard ventillation system.

                        




Putting It All Together


      
This is the car part that inspired the whole project. With out this, none of this would have been possible. It's a power seat gearbox and lead screw scrounged from the junk yard. It provides me an actuator that gives me more torque and speed to push and pull than I've ever had before. It also allows me to use electric motors instead of hydralics.






      
Here are all the sensors for just one axis mounted to the arm.






      
This is all the control cards wired together.






Completed Arm
         Here is the arm fully assembled, hand attached, and connected to the computer. Everything is now fully functional, hardware-wise. There is still tons to do on the software side. It's like, it's capable of anything, but it's limited by it's 'intelligence'. Construction time was about 5 months. Aluminum costs were about $5 from a scrap yard, motors about $20 from a junk yard, and various other components from ebay that I didn't already have, maybe $50. Not too bad for a robotic arm that could easily cost thousands!

      


Related Videos:


Initial Dexterity Test
         In this video I finally have the arm discconected from lever switches and hooked up to the computer controlled control circuits. So to get a feel for this things potential I program some hard coded actions in there to see it come alive for the very first time.
      
Programmed Coordinate Execution Test
         Five days from it's initial connection to a computer and already I've made leaps and bounds in the control programming. I've developed a 3-dimentional coordinate system with an algorithm that can interpret spacial points and translate them into motor control signals which drives the arm into the specified location. I also wrote a scripted command parser and incorporated it into the program so you can quickly write and execute complex tasks with out having to re-compile the control program each time you want the arm to do something new.










Viewer Comments

Name: grandpa.
Time: 06:43 PM
Date: September 25, 2009
Comment:     i loved it. keep up the good work.


Name: Hannah
Time: 08:36 PM
Date: September 27, 2009
Comment:     WOW, Dan.


Name: km
Time: 03:47 PM
Date: October 02, 2009
Comment:     Where's the video sensor thing? It is too cool not to be here!


Name: DK
Time: 11:07 PM
Date: December 08, 2009
Comment:     The arm is strong enough to tear a hole in the carpet and lift the table it's attachted to off the floor at the expense of only 1 motor ligament and 2 fingers, don't ask me how I know all this :-/


Name: Km
Time: 02:48 PM
Date: December 19, 2009
Comment:     Lol,big hole on our floor now.





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 .