Tuesday, 21 January 2014

Voxel Project (Part 4)

This week starts another 'wacky robot week', so thought I would keep the blog updated as I go this time rather than a single update months down the line.

Core aim of the week is to get a cube capable of locomotion. That said I have been thinking about the cube for the last few months and think that not only could this be a very useful device for researching models within Darwinian Neurodynamics (and others) but may also be an excellant educational 'toy'. For both these applications we need to have a robot that is both robust to continual use (unlike the previous version with bits falling off) and easy to store, move and assemble. To this end I spent time sourcing new parts that would stand up to the wear and tear but that required minimal tools to construct (i.e. 'build your own robot cube at home').

The image below shows the robot cube construction kit, injection moulded corners provide a smaller firmer 3 way conner, these are designed to fit 19mm flexible PVC pipe, which provides the movement and flex required, in addition being transparent it allows you to see what the syringes are doing.

One advantage of the new pieces was a radical reduction in weight, because of this a single syringe could be used along the cube edges without upsetting the dynamics. This saved the fiddly job of connecting the syringes together and made construction much easier. Conveniently the syringes and piston end fit perfectly into the PVC pipe and allow you to exactly set how far the syringes can extend and compress and make sure each edge is identical (note: pvc pipe cutters would be much better than the hobby knife for exact cuts). The process is now simply cutting 12 identical pieces for each edge. 

Each edge is made of two pieces a small connector for the plunger end and a larger piece that covers the whole syringe allowing a gap at the end for the hose to escape and some flexibility. This edge then connects to a reciprocal syringe for the control cube.

The edges are built into squares and finally into the cube. All the parts are a simple push fit, strong enough to hold the cube together during use but loose enough to allow some flex when needed and to be taken apart just as easily.

The weight loss of the new version allowed the robot to be run on just air rather than the hydraulic water system used for SpongeBot. This makes construction much easier and less messy. The dynamics are however slower and less accurate than with the water but I don't think this should be a major problem for the Darwinian Neurodynamics project as we are looking at temporal predictors which will need to learn and adapt to this slow response. It may also be useful for the servos, previously if a single servo stuck or drew too much current the system would behave erratically trying to pull itself apart, with air there is enough give that the servos should not stall (in theory).

Putting the new cube through its paces, I am currently controlling the cube manually rather than through the control cube. Takes a while to juggle the syringes and can only control one edge at a time but did manage to record a full cube step. Took 3 mins to cover 4.5cm, but not bad for its first baby step. The dynamics of this little guy has given him the name StretchBot (son of SpongeBot).

Next stage is to get the control cube rigged up (will try to update the control cube as well this week). Will keep you posted and hopefully next video we'll be flying along.

Few pics:

Monday, 20 January 2014

Voxel Project (Part 3)

During the Snowdonia hackademia retreat in November 2013 the voxel project made a massive evolutionary jump. Virtually the entire week was spent on the manufacturing and construction of a mega control cube. This cube would power 12 servo syringe modules, each of which would be connected to a voxel cube edge.

Each servo syringe module followed the same oil rig design first tested in the previous post 'Voxel Project (Part 2)', however the arm was extended to provide better power transfer and the Lego motors were replaced with high torque servo motors. To allow for easy wiring all of the twelve modules were attached together to form a 3 x 4 mega control cube. All of the servos were connected to an AdaFruit servo controller board and from there to an Arduino Mega control board. A huge huge thanks goes to Boris and Rollo for all their help with the sawing, screwing and fiddly nut fastening that went into making each module.

The control cube now allowed twelve hydraulic syringes to be powered simultaneously and with adjustment of the servo timing and rotation rate a smooth motion of all syringes could be maintained. One issue that did arise was if a servo got stuck or drew to much current then all other servos would behave erratically until the issue freed itself, the system also continually looked for the weakest point with screws, nuts and lego parts often working loose. 

Unfortunately most of the week was spent building the control cube and very little time was available to work on the actual robot cube itself. I did manage to put together codename: SpongeBot. This robot was constructed from the same dual syringe setup used in codename Squeaky (see Voxel Project part 1) but the corners were made from plumbing parts to give a more stable corner, the edges were made from car wash sponges to allow the edge to bend and flex as required. There was no time available for actual experiments but we were able to create Arduino scripts (many thanks to Chrisantha) to put both the control cube and SpongeBot through its paces. Video below shows the SpongeBot left, control cube centre and the laptop controlling the action on the right (video was kindly made by Rollo and is time lapsed as actual speed was a tad sedate.)

Overall I am extremely happy with the progress made over the retreat and the SpongeBot robot. There was a huge amount learnt during the construction and testing that will be applied to the next generation. 

-- update --
Main things learnt, that will need modifying: 
a) Construction and transport - Both the robot and control cube look amazing and in the case of the control cube, scary! However transport has been an issue and this should be taken into account and an effort made to either shrink the control cube or at least disassemble into smaller parts. 

b) Storage - On the same note as above the cubes are currently connected together by hydraulic tubes, this means the whole apparatus has to stay rigged up in one piece and takes up considerable space. 

c) Hydraulics - For the SpongeBot cube we needed to use hydraulics as air was simply to compressable to get nice fluid movement (if any) but this did mean that the syringes and pipes needed to be filled with water and then connected up to the control cube syringes. Inevitably air entered the system which in turn reduced the effectiveness of syringe system. It would be nice to have some form of reservoir system to remove trapped air. Again during storage and movement it meant there was a chance of water leaking out, so emptying and top up process would be nice.

d) SpongeBot components - The plumbing parts used to make SpongeBot made a considerable difference compared with the original squash ball setup, providing well needed stability. However these were also easily damaged during transport and storage. The other issue was once a syringe piston had been removed from the syringe it never had as good a seal as originally, so often leaked. It would be nice to have a setup where the syringes could be left intact during construction. Finally the sponges used for the edges provided a nice flexible edge but as can be seen in the video hamper any form of locomotion as they are deeper than the corners and the movement is simply centred around them. 

To do:
a) Create a new cube capable of locomotion
b) Enhancements to the control cube to rectify some of the problems above

Few pics: