Robot Arm : Phase 4 - It does stuff !
Posted 8/23/2009 by Emil Valkov
In this phase the Arm is no longer content to merely point at its target. It tracks it, picks it up, and sets it down close by. To achieve this, the software has been upgraded to support sequences of actions.
Here's a video of the new version in action.
Very few hardware upgrades this time around. Adding a gripper would have beeen too heavy for my low torque servos, so instead I added a simple hook.
I also shifted the forearm position a bit, so that all blue pompoms are perfectly aligned among themselves and with the hook.
The software has had a radical change in this phase.
In phase 3 I had problems with my Phillips SPC 900NC cameras. The Phillips drivers had bugs making Windows unable to work with both cameras plugged in the same computer. It was a pity as those are very good cameras otherwise.
However the cameras worked fine in pairs on Linux ! So I bit the bullet and ported everything to Linux.
It's a pity I couldn't use Roborealm, as it's very user friendly. There's nothing preventing me from going back though, because the vision system is completely abstracted. I can still use Roborealm on Windows, and even on linux by calling the api on a remote Windows box. Which I won't hesitate to do on future projects. Actually, nothing precludes me from using both at the same time, and get the best of both worlds!
As I mentioned earlier, the software has been upgraded to support sequences of commands. A command reports success, failure, or in-progress.
The commands I implemented are (in sequence):
The point command is of course the most important one. It's the core of the software, which I've been working on since the beginning.
The pick up command is much simpler in comparison, but it's noteworthy because it can detect failure. Thanks to that, the arm appears to be more “intelligent” by trying again when the point command didn't quite find the exact spot necessary to hook the target"
Now that I've shown that the Arm can do something useful. I've reached the limits of the current hardware.
To push this further, I need more powerfull motors, to handle the extra weight of a gripper and payload. The extra power is also needed to increase the degrees of freedom, as it would need to handle not only the weight of the new motors required, but also the increase in overall length of the arm.
Also this arm has been stuck on a table since the beginning. To be truly useful, it needs to be set on a mobile platform, which is a whole other project in itself.