Service Droid - The Build
The Service Droid is a new robot kit I am designing. It is intended to be a low cost, D.I.Y. robot chassis with two 3 DOF arms. The gripper on the right arm is designed for picking up objects such as drink cans, bottles and cups. The gripper on the left arm is designed to pick up objects that are lying flat on the ground such as paper, coins, keys, pens etc.
I've been wanting to build this robot for some time so I already had a fair idea of how it should look when I started. After designing the robot in Sketchup I then had to break it all down to individual parts and export each part as a DXF file. I then imported these files into CorelDraw to make a master file where all parts were a 2D pattern and seperated the parts into yellow and black.
Parts Arived Friday 6th of September 2013
Unfortunately the first batch of parts to arrive from the laser cutting factory were not all made from 3mm thick acrylic. The factory ran out of 3mm yellow and so without checking with me first, made half the parts from 3.5mm yellow acrylic. As all the parts are designed to interlock and all the slots are 3mm wide this meant that a lot of parts were completely useless and I could only do a partial assembly.
While I wait for them to purchase the correct material and make the parts again I assembled what I could as there were a few parts that look good on sketchup but I was unsure how well they would work in reality. The arm mechanism in particular.
In an attempt to reduce cost and simplify programming for students and beginners, the shoulder, elbow and wrist (up/down) are all driven by a single 12Kg.cm metal geared servo. The arm has only 3 basic positions:
- Reach down - for picking up things
- Hold (center) - for carrying an object
- Reach up - for handing an object to a person or accesing a shelf
The arm uses a parallelogram design to keep the grippers level with the ground at all times. This allows the arm to travel through it's full range of motion without spilling any liquid.
I have used DAGU's 65mm yellow wheels with the new soft rubber tires for good traction. Combined with 120:1 geared motors (actually 118.5:1) the robot should have good torque at low speeds which is needed for precision movement.
The motors have their shaft extended out the back so the encoders can be driven from either their output shafts or directly from the motors for much higher resolution. The encoder gives 8 pulses per revolution of the motor and the gearbox ratio is 118.5:1. This gives an ecoder resolution of 948 pulses per revolution and with the 65mm diameter of the tire give a distance resolution of about 0.2mm per pulse.
For the rear wheels I've chosen omni wheels. I didn't want to use a ball caster, the metal ball tends to be noisy and could potentially scratch a polished floor. I didn't want to use to use a small caster wheel because when you change between forward and reverse they tend to kick sideways as the wheel swivels around. This is not good for dead reckoning with the encoders.
I've machined an aluminium hub for the prototype wheels but later I want to get a new mold made with a smaller inside diameter and replace the plastic rollers with rubber rollers.
The right gripper is a fairly standard pincer type designed primarily for picking up cans, bottles and coffee mugs. As the pincers are interleaved the gripper can close down on objects as small as 15mm diameter.
The left gripper is a new design I came up with for picking up objects that are sitting flat on the floor or table. It should be able to pick up paper, coins, keys, pens etc. The sweep has a spring loaded pivot point that allows it to grip a wide range of objects from a thin piece of paper to a thick TV remote. Currently it uses a servo but I am thinking of changing it to a geared motor with encoder and home switch.
AT LAST! a 5xAA battery holder! It has always been my opinion that for small robots, 5x NiMh batteries are the best. There are 3 reasons for this.
- 5x NiMh (or NiCd) provide 6V which is perfect for servos and 5V LDO regulators (less power wasted as heat).
- NiMh batteries maintain a constant voltage for over 90% of the discharge cycle.
- NiMh batteries can deliver much higher currents than Alkaline batteries and are much easier and safer to charge than LiPo's.
In the case of this robot, the fact that NiMh batteries are reasonably heavy is also a good thing since they act as a counterweight when the robot is lifting something heavy.
Update: 9th September 2013
Received new parts after last batch was supplied with over 50% at the wrong thickness (3.5mm instead of 3mm). The new batch is also the wrong thickness (2.6mm instead of 3mm) and now the wrong colour as well. Fortunately with the new thickness being less than 3mm I can at least assemble the robot although it's a bit loose in some places.
The new colour is gold instead of bright yellow which is actually not a bad colour except that it does not match the wheels and gearboxes.
The bearings in the wrist are also the wrong bearing with an inside diameter of 5mm instead of 4mm. This means I had to use a spacer which is too long. Hopefully I will receive the correct bearings tomorrow so I can tidy up the wrist mechanisms. I've also got to get some springs for the arms tomorrow. Then I can get it working and take some video.
Update: 15th September 2013
Unfortunately version 1 did not work as intended, aside from some issues with the arm mechanism the arms hit the wheels. Now I'm working on Service Droid V2.0. The super big shoulders remind me of the robot from the 1998 movie "Lost In Space".
Update: 24th September 2013
Got the new parts yesterday. The robot looks much better with the broad shoulders. Unfortunately I'm really busy now so I don't have time to wire it back up and test it yet.
The new encoders are wired up and I'm adjusting the code so I get precise speed control. This will stop the robot jerking when it starts moving.
Because the encoder disc are now driven directly from the motors I get a resolution of 948 state changes (high to low or low to high) for each revolution of the wheel.