Tag: Robotics

The Robot Arm is Working!

Posted by rmadams on February 14, 2010 | 2 comments
Picture of the complete robot arm with controller

Complete Robot Arm

One marathon hacking session later, and the robot arm is complete and functional. Thanks to a whole uninterrupted stretch of time, I was able to complete the assembly of the arm- including the most problematic part, the gripper. It is so problematic that Ril3y and I are quickly fabbing up a replacement that will be much more flexible, robust, and easier to assemble. For now, though, the robot structural framework is complete, and matches the photos that have been posted by the Oomlaut Labs guys. Of course, my arm is in the cool, racy red color, which is very nice.

Complementing the hardware, I took a few bits and pieces of software discovered on the net, and mashed it together into a manual control program for the Arduino board and the Pololu motor control board. The code is really messy, and all in Wiring, so not very elegant or compact. But it is pretty clear and easy to understand- nothing hidden, and should work on every Arduino variant. By using a readily-available Playstation PS1 controller, the interface is both familiar and cheap!

Basically, I mapped each pair of buttons to the motor axes, and hard-wired in reasonable limits, to make it harder to completely crash the machine. I also set up the “select” button to change the speed. It works great, and as you can see from the video, you can pick up and drop things with ease.


Next steps are:

1) Get the documentation completed so others can build them too, easily, if desired. Post the programs, such as they are for the same reason.


2) Add a “learning mode” using the “Start” button and L1/L2 to allow the user to program a series of way-points and then play them back. I may add a little EEPROM memory, too, for non-volatile storage of the programs. I have room on the breadboard and pins to spare.

4) Work with Ril3y to design and integrate a better gripper. As mentioned above, the one currently implemented is suboptimal.

5) Develop the framework for the kinematics programming. This will (at least at first) probably be hosted in Processing, to simplify development. There are a number of existing Open Source kinematics packages for 5DOF arms, so I am hoping to leverage (read steal) an existing one and work from that.

6) Redesign the arm to use high-torque and fine-grained stepper motors instead of the servos. This will require some position feedback. Both of these goals will nicely match what Ril3y and Alden are doing in the motion control space. Hopefully, the arm will evolve into a simple test-bed for those concepts.

Lots of fun- and a great, great weekend!

Google Buzz

Tags: , , ,

Progress on the Robot Arm!

Posted by rmadams on January 31, 2010 | 2 comments


A picture of the open source robot arm, first joint  assembled with servos

First joint of the Open Source Robot Arm


Thanks to the Hong Kong Parcel Post, I got my metal-gear servomotors last week, and then thanks to work commitments, they had to sit taunting me on my workbench the whole week. Luckily, I had a chance to do some assembly work this weekend, and got a couple of the major subassemblies put together. As you could see from the earlier post, I had the base assembled, and it was short work to put the base rotation servomotor in place.

You have to make sure that when you assemble the deck, you put the servo in so that it is at the center of its rotation when the arm is facing forward. Once that was done it was short work to get the deck put on. I went ahead and clipped the little screws that hold the servo horn on short, so they won’t rub on the acrylic frame and scratch it. I also added a trio of modified furniture casters to provide a bearing surface for the rotating platform. The oomlaut guys used M8 screws with acorn nuts, but that would also scratch up my beautiful red acrylic, so I chose to go another way. If you look at the flickr set, you can see how I did it. I had to trim them a bit to allow for the small M3 nuts on the bottom of the platform to have sufficient clearance.

You can see that the first joint of the arm is supported by two servos- note that in order to make the parts fit without undue stress on the lasercut plastic, I put one servo inside and one outside the mounts. I also had to make sure that the motors were both turned to the same degree of rotation before mounting them. The way I mounted them, the first joint can swing from fully to the back of the platform all the way to fully front. This should be perfect, and maximize the reach of the arm.

Assembling the second joint turned out to be much more problematic, and necessitated several tear-downs and re-assemblies. As far as I can tell from the (albeit sparse) pictures on the oomlaut website, it appears that the motors are mounted on the outside of the arm assembly, but as far as I can tell, this will not fit without really bending the lasercut frame. I don’t want to do this as I do not want to break the plastic, but I am at a loss about what to do. I am planning on sleeping on it, and ordering a couple of the motors that the oomlaut guys suggest and see if they fit better. According to the specs posted on the motor source website, they are exactly the same size as the ones that I have now, so I am kind of puzzled.

Next up- second arms joint, gripper (which is its own puzzle, to be sure) and the control mechanism. (Yes, I am still hacking around with my old Playstation2 controller!)

Google Buzz

Tags: , , ,

Serial Servo Controller

Posted by rmadams on January 14, 2010 | No comments
Picture of a semi-assembled Micro Serial Servo Controller

Pololu Micro Serial Servo Controller, from SparkFun Electronics

Since I am still waiting for my servomotors to arrive from across the ocean, I went ahead and assembled the servo controller. I decided to use the Pololu Micro Serial Servo Controller, which I ordered on Free Day from SparkFun electronics. I did not end up getting it for free, however, as I am too slow on the “reload” key. Nevertheless, I ordered it anyway, which is exactly what several Internet curmudgeons would rather I didn’t do- “don’t encourage them!” they claim. I like SFU, though, and I have to support my Colorado brethren. Maybe I will move back to Colorado one day and become a combined snowboard bum / electronics guru!

The Micro SSC, despite being the size of a postage stamp, is not the latest technology, and is being threatened with extinction itself by a slightly more expensive USB-connecting version. In fact, it implements the serial protocol from an even older controller, the SSC from Scott Edwards Electronics, which had it’s debut way back when “Nuts and Volts” magazine was in that weird large tabloid format. I used it successfully on several projects, mostly interfaced to an HC11 Miniboard (thank you Fred Martin and MIT Media Lab!) or a Basic Stamp BS1. It had a remarkably easy command structure, and you could string several of the boards together to get even more servos online. Neat!

The Pololu unit implements the old SSC interface, but also a much-improved interface of its own that has lots of nice features like travel limits and travel rates, etc., all of which make for a much nicer robot arm. I will probably start off using the old SSC language that I am familiar with, and then move to the new framework as I need the additional features (or as I break servos doing the usual stupid stuff…)

Next step is to set up the pendant for programming the robot. Ultimately, I am planning on integrating one of the several open source inverse kinematics frameworks available or path planning, but for now I am going to integrate a simple “do as I do” training system, using an old Playstation 2 joypad that I have sitting around. While I am waiting for the servos to come in, I will set that up- watch for a post on that topic in the next couple of days.

Google Buzz

Tags:

Powered by Wordpress and Stripes Theme Entries (RSS) | Comments (RSS)

Bad Behavior has blocked 114 access attempts in the last 7 days.