Here are some pics of our "crab arm" / "goose neck" rover, called Regis. It uses a 4WD3 base extended a bit with some lexan plates, and two SES arms: one with a webcam, one with a gripper. Electronics includes an SSC-32 to run the 10 servos, a Sabretooth 2x10 R/C to run the motors, a Logitech webcam, and a Gumstix verdex board (600 MHz, 128 MB) as the brains. The rover is designed to run autonomously using our Tekkotsu "cognitive robotics" software framework on the verdex, although at the moment it's being remotely controlled by Tekkotsu running on a Pentium.
This is a very cool, and I think exciting, design! I really like what you have done with the webcam on the "goose neck" arm. I have wanted to do something similar, but my idea is to put the gripper at the end of the arm the camera is on and provide the camera with full pan/tilt mounted just behind where the gripper is. That might be too much weight at the end of an arm though, so it may not work, possibly depending on how big the camera is.
Two interesting points about the design. People who design robots almost always put the camera in the wrong place. It's either too low to the ground, which limits the field of view, or positioned in such a way that the robot can see landmarks but can't see its own body.
That never did make sense to me either, which is why I have been thinking about alternatives too. Using two arms may be the most sensible way to do this, even though it likely adds much more weight than using a single arm. Have the camera on an arm also makes more sense for a spy bot type of robot. My idea is to add a thermal sensor along with the camera to allow detection of warm bodies such as my favorite fuzzball.
The second point is the "crab arm": an arm that lies in the plane of the workspace instead of perpendicular to the workspace. This has some drawbacks, but it offers the advantage of making it easier to do visual servoing, especially when combined with the goose neck webcam.
I can see where this would be much easier. You only have to track X/Y coordinates rather than X/Y/Z. That durn Z axis can really throw some kinks into the works.
The shoulder of this arm has a big ServoCity/RobotZone gearbox (thanks to robodude666 for suggesting this solution), so it can rotate into vertical mode if necessary. In vertical mode it can't rotate in the groundplane, so we'd have to use the wheels for that degree of freedom.
Do you have encoders on one of the left and right wheels? This might help with positioning when having to use the platform as a DOF for the gripper arm.
We still need to get some kinks out of the design. We originally used a 6V battery to power the 10 servos and a 7.2V battery to power the motors, Gumstix, SSC-32, and webcam (via a voltage converter). Unfortunately, the batteries can't provide enough current to drive everything at once, so for now we're using power supplies and running the robot in tethered mode.
The only idea I can add that might make things better is to split the servo power between two batteries, using a separate VS1 and VS2 supplies using a 6V, 1600mAH pack for each side. Then use the 7.2V pack (1600mAH or 2800mAH) for the motors and electronics (which may not be a good combination). I hesitate to suggest adding yet a fourth battery just for the electronics, but it may be an alternative.
I think you are doing some very cool and progressive stuff here! Is the software framework available for experimentation or will it be made available in some form? I am all in favor of Linux, but am shying away from the gumstix. If the software could be built for a different platform, I would be interested, and it would definitely point me at getting an NGW100 (uses the Atmel AVR7000 series chips) network board ($69.00, runs Linux).
You've also definitely finished convincing me that I need to move to a four wheeled platform.
I was already pretty convinced, but this settles things for me.