5 Dynamixel AX-12+ servos has been used to build the robot arm and gripper. The arm has 4DoF and the gripper 1DoF. An Arduino Mega board has been used to control the servos. Only UART1 (RX1,TX1) are needed to control all servos. No external hardware is needed to attach the servos. The gripper is made by a claw from the local home depot. The idea has been lent from the Make project Teleclaw.
Software:
There is no real programming needed. The Pypose sketch from the Arbotix project has been used without any modification. You can create poses very easy using the Pypose editor. Also sequences (running different poses time controlled) can be created with a few mouse clicks.
Update 2012-04-30:
This is my actual setup. Nothing has changed on the robot arm. A bowl with 140 wooden dowels has been used for a sample drawing. Each dowel will get a unique number from 1..140 or whatever the actual number of contributors is. No detection of invalid drawing so far (if the gripper gets none or more than one dowel). The robot arm is doing some kind of stirring now, before the drawing. But it doesn't work well, the bowl is moving more than the dowels. The 2nd video shows a sample drawing 5 out of 140. It takes 7 attempts to complete. 2 failed attempts.
Sample numbering of a wooden dowel.
Update 2012-05-04:
The winners of the LMRv4 donation marathon has been drawn. I couldn't show the drawing live at the RobotParty, but a prerecorded video has been showed during the hangout. Spacial thanks to Andrew 'inoblegnome', Erin 'RobotGrrl', Nils 'NilsB' for their efforts and all others that gave me great tips to complete this challenge.
To use it to select winners from the LMR fundraising donors, would you number the pegs 0 through 9 and select a three digit number one digit at a time? Or what?
Thank you, Markus. I have lent the idea for the gripper from the Teleclaw robot. Just saw your gripper with the light barrier. That brings up a new idea to sense that the gripper has caught a dowel.
Maybe a small potentiometer could do the job as well. If the gripper moves out of the bowl and is still in a certain opening position, it has caught a dowel.
Nice work RobotFreak, that gripper looks really good.
I see you’re communicating to the servos directly from the Arduino - how did you go about connecting the RX/TX lines together for the half duplex mode?
Thank you Telefox. The RX/TX lines are simply tight together. The Arbotix firmware is doing the job to disable the UART transmitter after sending the data to the servos. Because the servos act as slaves they will never send any data without a request from the Arduino. That works great without any issues. But there must be done a simple modification on the Arduino core library to make the UART receiver work at 1 MegaBaud.
That is one elegant arm! One very nice electro-mechanical design. Its good someone knows how to do that (I don’t!)
Just one question. Why didn’t you use a FEZ controller? You said your system doesn’t need programming (an excellent reason to use the systen you did), but just imagine what a FEZ based system could have done. (Something to think about in the future.)
(Hey, its you guys that turned ME into a FEZ fan, and I am sure glad you did!)
Thanks. Maybe there is a misunderstanding. The term no programming needed means, that I don’t have to write a program by myself. You will need the Arbotix firmware which includes a sketch for the Arduino to make it work. These sketch works out of the box without any programming. It is just a router for the messages from USB serial to Dynamixel serial.
Not sure if this will work on the FEZ too. You ill need to rewrite the Arbotix library to run on a FEZ device. One problem I see is a proper way to disable the UART transmitter after sending a request to the servo. In Arduino language this is easy, because you have full access to all UART registers. On FEZ side this is hidden by the NETMF framework. You can disable the transmitter, but you don’t know if:
all bytes where send
how long it takes to disable the transmitter. If the servo responds too early, this could fry your transmitter pin. Or at least you will need some extra hardware.
For this project, the Arduino Mega is the best choice because of the limited time I have. But it’s good to know other controllers. Who knows, for the next project FEZ device could be the better choice.