Saturday 24 December 2011

Apologies.....

If there is anyone out there trying to follow this, my apologies for the lack of updates and the direct dump of information straight from the other (class-based) wordpress...

if the links and images etc are broken, i can gladly provide anything via email:
kerfoffle[at]gmail[dot]com

&c.

INtroducing the RoverX

> parts, technical & conceptual documentation can be dl [here]
> > the arduino code can be downloaded [here]...
>> > hi-res promo posters and process diary [here]
>>> > and finally:
http://vimeo.com/32142280

so most discussion is in the documentation,
but i just wanted to say most of all..
thxxx guys, AWEsome work & it's been a real  pleasure learning amongst yas :)
hope to see some faces 'round next year, if not at the verge...

&c.
o man talk about cutting it fine...
my ir beacons (for the tracking) and bumper switches just now arrived via courier (!)
hello, sleepless night...
best wishes everyone!! hope its all going well...
...see you all tomorrow!
&c

battery monitor kit 12v -> 6v conversion

So not going though the process of actually ordering a pcb fromBatchPCB, (proof of the design passing DRC can be foundhere )to satisfy this part of the course requirements i purchased a 12v battery monitor kit from jaycar... but i forgot to check that it worked for 6 volts!
it's built on the LM3914 led driver, so with a bit of luck and some help from the datasheet i managed to modify it for the dagu rover's 6v operation (with a switch to go back to 12v for when the real tank is operational)...
The basic idea of the hack is that there is an internal voltage regulator in the chip, and the ratio of a pair of resistors attached to this define the upper and lower voltage limits that light the led bar graph.  Hmm. Simple, just got to find the resistors! the 1k variable resistor that comes in the kit is obviously one of the pair, and the other is the 1k at the top left of the chip socket. i substituted the 10k variable from the sparkfun kit and hooked up to 6v DC to test some values... once the correct value was established (2.8 k) it was a simple task to add a spdt switch to select either resistor value....

progress3

So i've installed the MaxBotix ultrasonic sensors and also upgraded the heart of the little rover to an Arduino Mega 2560 that i got cheap on ebay (au$37, to be exact!)... This was mainly to accomodate the various upgrades i forsee in the future (when it gets transplanted into the tank)....

the eyes: maxbotix ultrasonic sensors installed (for obstacle avoidance)

the upgraded brain: arduino mega 2560







38 kHz IR reciever installed (small board in foreground)
i've also removed the wii-joystick control (well, not entirely - can still see the plug hanging out the side there), and created a basic autopilot (which operates via the apple IR remote)... the mode is obstacle avoidance when you press the center button on the remote, and the +/- buttons control the max speed.... the center button again acts as a moto kill switch (sleep)!
after some calibration & testing, i've set the parameters to start the hardwired obstacle avoidance (i.e - turn in the direction of furthest sensor) at around 50 cm, and full stop occurs around twenty cm.
http://vimeo.com/31675146
http://vimeo.com/31675230
the little rover sometimes got stuck in corners with this simple routine, so i programmed a small "turn_left_until_free" routine which kicks in if the sensors detect an object close and is not turning to avoid it... on the other side of the coin, the speed-scaled-with-distance algorithms lead to some quite gentle & inquisitive explorations.... even as is, i would not hesitate transferring this program into the larger (50kg+) tank esky...
http://vimeo.com/31675532
the "turn_left.." routine is not optimal, as i think it leads to some repetitive exploratory behaviour - sometimes the robot gets caught in little spaces without realising theres a wider world out there!
http://vimeo.com/31675733
Next, it's time to work on the subsumption routines some more; see if the encoders will work (hopefully i didn't blow the board); and assess the possibilities of 2d mapping, localisation and mission control.    And to wait urgently for the delivery of the Polulu IR beacon pair that i am going to try and use for tracking a human... if possible, some more on-site user testing with the same landscapers as before... All in the next four days!??
Arduino .pde for the current stage can be downloaded here...
on a side note, been watching some excellent lectures by Nick Hawes, from the University of Birmingham... the lectures are on Lego NXT and LeJOS, which is easily transferred to arduino... plus, his teaching style reminds me of Rob :)

progress2

In accordance with my sprint1, all the parts have arrived, the preliminary research has taken into account and the prototyping has begun.  I have decided to build a model that incorporates the most-requested features from the user research, but most importantly has the capacity to be upgraded / modified to any future situations.  It's basically a prototyping platform for the larger tank/esky created in the device lab. Prior to any wiring, i planned out the arduino pin mappings, seeROVER PINOUT document for current allocations.  This allowed me to know which pins are free, and what mode to attach sensors in.

Here's how the dagu rover5 arrives
So my little dagu rover5 along with it's four channel ESC & quadrature decoder arrived a few days ago in the mail... It's the 2 motor / 2 encoder version, just the thing for prototyping the various possibilities of the personal autonomous tracked mobility device.   The first thing was to install the higher capacity 6v 1.3AH SLA battery... This required cutting the chassis with a dremel tool to accomodate the larger size, along with the installation of a suitably rated DPDT switch and charging points.  A large green led was installed via 150 ohm resistor to indicate current flowing in the circuit.  Main battery to motor controller is connected via relay, so as to switch on afterarduino powers up (to avoid any wierd behaviours).

charge points & led in rear. led via 150 ohm resistor to main battery...will be upgraded to battery state monitor later

battery and wiring installed, note cutaway in chassis to fit battery - it is just big enough for the 6v SLA to clip in..
With the internals wired, the (recycled three ply) platform goes on the top like so:

the platform, with arduino, screwshield and the 4ch dagu motor controller

dagu motor controller mounted on brass stand-off's








For the initial test, a simple servo example was used, sending key commands from the Arduino IDE via serial:
http://vimeo.com/31182283
After spending an hour or two modifying the original tank's code from servo pulses to 0-255PWM, and writing my own tread mixing routines and dead-band adjustment of the joystick....
Download .pde sketch for arduino + dagu ESC here
But when taking the rover for it's first real test drive, i managed to short circuit one of the mosfets in the motor controller (grr! had the wiimote just hanging there, in my hand and didn't notice the smoke of the metal plug shorting out two pins !! )...

damage to dagu motor controller

Close up of burned SP8M3 mosfet







a frantic search on the internet turned up no similar boards in australia (i bought the last one from robotshop) and not even the same chip (SMD DIL 8pin SP8M3) in any of the parts suppliers (digikey, farnell, jaycar etc) in aus... ....so the solution is to use the original Robo Claw 2x10a from the deviceLab Tank.... holy how frustrating to be at this point and to have to start again from scratch, especially after modifying all that code and writing all the algorithms (because the dagu unit did not do auto calibration / mixing)...
Here's the link for the .pde of the Robo-claw version for arduino....
http://vimeo.com/31182570
http://vimeo.com/31183136
Next week: sprint2....
-&c

progress update / agile


here's how the rover5 arrives...
So my little dagu rover5 along with it's four channel ESC & quadrature decoder arrived a few days ago in the mail...
It's the 2 motor / 2 encoder version, just the thing for prototyping the various possibilities of the personal autonomous tracked mobility device.
In accordance with my sprint1, all the parts have arrived, thepreliminary research has taken into account and the prototyping has begun.  I have decided to build a model that incorporates the most-requested features from the user research, but most importantly has the capacity to be upgraded / modified to any future situations.  It's basically a prototyping platform for the larger tank/esky created in the device lab.

Installing charge points, on/off switch and 6v SLA battery into dagu chassis
First was the cutting of the chassis with a dremel tool and small cutting disc to accomodate the 6v 1.3AH SLA battery.  Holes were drilled for charge points (visible on the back, and a DPDT switch to select either power or charge mode.  A large green LED was also installed (direct to battery via 150ohm resistor) to indicate current flowing in the circuit.  A 5v input / 5AMP load

research interviews

At Elmar's request, here are two interviews conducted on-site with landscapers.
The idea outlined to each interviewee is:
" the ubiquitous wheelbarrow could be replaced by the tracked mobility platform, providing a load-assisting device and possibly extending functionality further to autonomous load depositing (after one or two 'training' runs to show it where to go)..."

Nick is a member of the old-school, self made crew... Began many years ago with just a shovel and a barrow, he now owns his own business employing up to five subcontractors at any one time.  He is an example of a 'hard-to-convince' type....
The site survey shows the typical easy (i.e flat, not many obstacles) front-yard beginnings of a job, clearing grass and removing dirt:
http://vimeo.com/30838050

Alex is a young sub-contractor, and also understands computers and digital devices well.  His is an interesting and elucidating response to the questions from the up and coming generation.
The site survey shows the other extreme of what the new wheelbarrow device would have top face.... moving a heavy and possibly unstable load up multiple stair cases, avoiding holes, gardens and even the neighbourhood cat!
http://vimeo.com/30840205
Alex brings up the ideas of incorporating other useful worksite items like the stereo and fridge into the device.... actually, the idea of a cold drink always on hand whilst working in the outdoors is a really healthy idea and may even save lives!

Interesting to note, is that Nick called me days after the video was made, (he had lay awake that night thinking of the possibilities) to suggest a really pertinent idea - the incorporation of a 'scissor lift' type device to raise the load to the truck, and make the platform of adjustable height (for holding a mortar-board while laying bricks etc)... By providing an adjustable platform, this caters for ergonomics of the user and provides a relief from the back-breaking work that is landscaping...


some other propositions for the tanSky

At Elmar's Request, here's ten possible uses for the Autonomous Tracked Motion Platform (aka tanSKy).... in brackets are the various sensors etc envisaged to perform task....

  • fire fighting bot (flame/smoke/temp/gas sensor)
    This one has been done numerous times, here's a paper describing a bot using a visual recognition system for the detection of flame... here's another using visible, ir and uv spectrum light...
    The low cost and availability of numerous dedicatedflameco2smoke, and temperature sensors out there make this a very practical and exciting project to open source, especially if possible at a low cost...


  • autonomous courier (gps / safety / live tracking to internet via pachube) - esp for dangerous areas like warzone/minefield/extreme environments
    The idea proposed here is for a gps-guided autonomous version of the bicycle couriers you see round the city all the time.  Allow your smartphone (via customer software) to send your location to the service (activating a virtual 'butler' bell) and the next available courier will arrive at your premise, ready for its load.  Once loaded, it will zip off speedily to the destination you program into the software.
    An idea like this would need much further development, pedestrian & traffic awareness,  a lockable safe, and some kind of live update tracking system so location could be tracked in real time (and perhaps updated for clients viapachube...
    Here's at least one customer savvy to my ideas :)
    Interesting research by Brosch with regards to an autonomous picking / moving / sorting device that could be upscaled to warehousing and perhaps rather suited to domestic cleaning also if objects could be catalogued in a database with desired location?


  • water transportation in developing nations (solar, robust, simple, flexible, built in purifier/cooler)
    See pertinent research by Geere, Hunter & Jagals (2010) doi: 10.1186/1476-069X-9-52 for more insight into the health implications (i.e actually causing disabilities) faced in the third world due to both transportation of and unsanitary water supplies...
    Exceptionally important for this solution to work would be the simplicity of the device (making maintainance/repair possible anywhere, with minimal tools/specific parts/knowledge) and the ability to power/recharge the device from a number of sources.
    A built in purifier with a high capacity and easily maintainable filtration system is mandatory.... And perhaps a cushion for those long suffering ladies to take the load off?
    Ideas of an autonomous water-seeking device could be expanded, with the device being able to seek and refill the water reservoir, and smart-charge itself when not in use...


  • shopping cart / suitcase (esp for elderly/disabled - speech control, auto tracking, emergency sos beacon built in, can ride on for mobility if tired)
    Where to begin here.... Check out the local market? Airport? It's basically a scaled down electric wheelchair for the slightly more able, i guess.  But it follows you around.  And you can ride it when you are tired..
    Tremendous amounts of money and research going into mobility aids for the disabled, but of worthy mention from the research i did is a direct quote that i think neatly encapsulates one person's unique situation:
    "Been that we have an aging population any people have special needs. To have a robot to help at everything would be a blessing. I am a paraplegic and been new am not as independent as I would like to be. To have to ask for help is the last thing I want. We tend to think write or wrong that we are been a burden. To be able to go ego less and ask a robot for our special needs would be fantastic. I think this could really be something many people with special needs would love."
    11/10/2011 7:22 AM

  • @play - tank-esky (as previously discussed)...


  • fishing tackle + catch along the beach (solar, sandproof, gps/clock/weather forecast stream)
    Everyone's dream... the golden sun, sand and salt of the beach... But who wants to carry the tackle (or the monstrous catch) along? and with all the destruction of dunes by recreational vehicles, one has to be environmentally conscious about the old 'cruiser rippin up the beach...
    ...so let's downscale, and up-feature - add in a small screen with all the relevant weather / tide / emergency warning feeds updated in realtime,  gps (so you don't get lost out there, and as an emergency locator), and a solar cell to charge the batteries whilst waiting for the fish to bite... hey, why not buy two - one to take the tackle, and aTanSKy to keep the beers cold!


  • @work - tool-box (rfid? beacon? intelligent sorting/identification/recognition/retrieval of tools, perhaps with a robot arm to pick the right tool and present it…
    A niche idea of need identified a number of times, unprompted, in my survey....
    My thoughts (without further research into this area) would be this would be another nice project to open source - perhaps a perfect d.i.y job for a mechanic or engineer....
    Much development would be needed with regards to the sorting / picking mechanism, thankfully there is plenty of research into the matter thanks to warehousing solutions and the previously mentioned courier-bot study.  Interesting avenues could be found in the language interactions and machine learning side, with a user being able to 'train' his toolbox to 'fetch' the 'ten-mil'-ring-spanner'.
    Further excitement and functionality could be added (if required, to break the monotony of a long lonely day at work) by human-bot language games, quiz/trivia games, parts reference / repair guide (spoken out loud step by step walkthroughs of repair jobs) and a hands-free telephone service complete with robot secretary if you arejust too busy!


  • @work or home - power assisted wheelbarrow / load transporter (hydraulic tip, motors controlled by cord eg, also can program/remember actions for unattended work)
    Another area of interest in the survey - but this time it's personal! thats me in the pink above... well, almost.. landscaping is a job i do for cash sometimes... and often spend large portions of my day thinking there are so many ways this or that process could be improved...
    The most important issue for me was to not have to take the wheelbarrow to and from the skip bin all day, when i could be digging more dirt.  I'd love to be able to 'show' the wheelbarrow where the bin is once, and then have it 'repeat' those movements when a weight sensor attached to it's payload knows it's full.   Of course stairs are an issue here, and robustness...
    The Tokyo Institute of Technology have prototyped an interesting load-carrying robot that you guide gently with a rope... This looks like a simple, intuitive and effective method of guidance for such a bot?


  • @work (suggested by research) - drinks / snacks butler (does lap of office and offers drinks n snacks to employees) (safety , speech control or can activate beacon on desk to call butler - would be good example of pooling resource)
    The offender in blue in the above photo is Bar2d2.... He'salready been open-sourced on instructables.com....
    A number of survey respondents identified the want for a robot butler, cook or cleaner.... Personally, i'd prefer the girls beside Bar2d2 to serve my drinks, but, you never know...
    Carnegie Mellon University has some very similar research (but backed by NASA - so with a little more budget..) into the design of a domestic personal robot (2003) - this one uses a software interface for task design and scheduling.
    Most interesting was this colourful and elucidating response to the survey:
    "For work: have it deliver sh^t to your desk, food, coffee... id be happy to share one between say 5 employees. For home id want a clean/cook style bot but one which can climb stairs easily. Preferrably a hover bot."
    ...The idea of robot-pooling, or for a small local community to be able to offset the cost and downtime of such devices by sharing is a very futuristic and sustainable idea.  Perhaps participants in a scheme could book times via an online calendar system, accessible through smartphone?


  • half time drinks @ robo wars? (fill full of beer/robofluids)
    We all get thirsty... ;)

    Hope this gives a starting point for some of the possibilities afforded by the proposed platform..... Any more ideas / suggestions are greatly appreciated!! 
    >&c.

research results

Coming out of last week's discussions with Elmar and Andy, we decided i needed to revisit the actual design process (specifically the sensemaking > synthesis)....  I designed a short internetsurvey to be deployed across a wide range of sites.  The thirty-two responses in the first two days indicate a high level of interest in the topic ("Do you need a Personal Assistive Robot Companion?").... with responses coming from various sectors such as education, commercial and the special needs community.
I tried to keep the survey questions as open ended as possible, without mentioning specific forms or tasks for the robot companion, to see what needs / possibilities the  different communities identify...
Of real interest to me is the disabled and elderly population, however the few forums i tried to join (to post the survey and initiate discussion) still have not got back to me after a week with registration information.... wondering if i answered all the rego questions properly ;) will keep trying ...
The interim results can be seen in the charts below... Click to zoom in....

Survey Results as of 14/10/11
So far, some interesting findings:
  • Majority (>75%) of respondents thought the idea "sounded cool" or "would use [a robot companion] all the time"..
  • Majority (~60%) of respondents would prefer to buy the device ready-made, with only 20% considering the d.i.y approach.  However Q3 & 4 prove the sampled population is competent with their digital devices and do d.i.ysometimes..  Most stated complexity / time would be the key factor in the decision not to build from plans.
  • frequently requested (50% respondents) was the idea of a domestic assistant - vacuum, mow, etc - now, these devices already exist (see: Roomba and associatedhacks).... but were so heavily requested in research that it provides a great incentive to open source....    dishes & laundry? hasn't anyone ever heard of a dishwasher? washing machine? maid??  these frequent requests lead me to believe that even in 2011, with certain demographics, the technology (and awareness thereof) is not as all-pervasive as perhaps we thought?
  • a number of respondents identified issues of ownership - with the most interesting ideas being the concept of 'robot-pooling' - or sharing one device between a number of people / neighbourhood / community
  • issues of empowering disabled / elderly individuals to be able to be more self-sufficient..... One very specific response from the disabled community strikes a resonant chord within me: "to go ego-less and be able to ask a robot for our special needs".....
  • many people wish to offload domestic and repetitive tasks to robots - cleaning and cooking etc.  Especially cooking surprises me.... this brings up so much philosophical debate - how can a robot taste(!>?) Does cooking require love embedded in?
  • Also in line with the Latitude study was the stated the desire for a more physical or tangible computing interface - for the device / information to not be trapped within a screen.... along the lines of SIRI
  • predominantly natural interactions (71%) & speech (84%) is the preferred interaction method, with some people asking for embedded personality whilst others desired the opposite! (perhaps this comes from a division in generations?  Mushkin also finds kids want personality…)
  • Regardless of physical world integration, the vast majority of participants in the Latitude study (83%) desired technologies capable of highly intuitive interaction. They requested responsive virtual environments, 3-D games, “homework help” computers, telepathy as a form of device input (4% of all submissions), etc.
  • also, alongside the natural interactions, the survey seemed to identify a certain desire for anthropomorphism with our devices -  the desire for a playfulness of interaction,for the device to interact with the user also....
  • backed up with Latitude findings: "Half of all participants visually represented themselves interacting with their invented technologies, supporting the “iGeneration” understanding of device as merely an extension of oneself." devices need to be individual interactive and customisable…. a unique identifier of the user...

    So far, the impressions i get from the research is of a great deal of interest in the project, with the majority of respondents indicating that the idea "sounds cool" or they would use a Personal Assistive Robot Companion "all the time"...
    My worry is that the desire for the d.i.y community to take a hold of the plans / open source information and modify these for personal requirements is not great - the complexity and cost of such a device puts it out of the reach of a large percentage of the surveyed audience towant to build themselves.
    Indeed, perhaps the best to hope from the creation of a wiki surrounding the tank/esky is the formation of a community of users around the concept... to further the ideation and possibilities afforded by the platform; provide support/maintenance for any devices and users out there already / about to be created; and to provide a sounding ground for new ideas...

tanSky

So here she is... after many sleepless nights and greasy dirty days in the workshop, the tank base is beginning to take shape:
As you can see, the 32mm timing belt track is auto tensioned and sits on independent torsion-style suspension...  This is such a delicate and temperamental procedure to get this exactly right so as to not throw tracks.... (i'm not quite there yet!)

EMD motor
The motors are EMDwheelchair motors from the dark ages, found rusting away on the roof of a mates storage shed, lovingly coaxed back into life over the last week... they draw approx 3.5 amps unloaded at 12v (though they are 24v, they merely run at half speed @12v)... still well fast enough for my testing and exploration purposes.  For operation in the field, however, the power system will be upgraded to 24v to moderate the current requirements (in accordance with ohm's law)...
H-Bridge is Robo Claw 2x10amp (underpowered for motors!)... This will be upgraded as finance permits to a 2x25 amp unit to provide ample headroom.  This is a very flexible unit, supporting a multitude of control options, liPo battery protection and high current / thermal cutout.  The added bonus of this unit over theSabretooth in the same price bracket is the Robo Claw supports 'dual channel quadrature decoding' - allowing for a closed-loop control system (accurate positional updates, movement control and feedback) when the vehicle goes autonomous... This will also allow the software to detect if the track is slipping or stalled and adjust power accordingly (reducing strain on the motors and power subsystem).  The ESC is currently set to RC mode, accepting standard servo pulses from 1000-2000 us (supplied by Arduino)...

Motor Controller and Microprocessor installed....
Currently control is via Wii Nunchuck (wired via i2c into Arduino).... with the very handy and very cheap breakout board from Solarbotics... the code library is taken almost directly fromwindmeadow labs
--------------------------000------------------------------>>
Full Code for the project so far can be found here...
                                     --000--
Parts List:
[chassis] - we-ef street light frame
[axles] - 1/2" steel thread bar
[road wheels] - 32mm trolley wheels (bearings to be upgraded later)
[suspension] - steel flat bar + bolts & washers (see diag..)
[drive wheel / idler] - 2x timing belt cogs - to be covered in rubber for friction drive..
[tracks] - 2x 32mm timing belt (can be upgraded to 2 on each side if necessary for more traction / surface area)
[motor] - 2x EMD 1/4 Hp 24vDC wheelchair motors (electro-magnetic brake removed due to ESC regen braking)
[power] - 12v battery (Sealed Lead Acid, 27AH) - will be upgraded to 24v system, LiPo as finance permits..
[microprocessor] - Arduino Uno, powered via BEC on Robo Claw
[H-Bridge] - Robo Claw 2x10a - NEEDS to be upgraded to 2x25 - includes regenerative decel / charge circuit
[control] - Wii Nunchuck + SolarBotics breakout board
[misc] - 10 gauge wiring / 22 gauge wiring / 20A fuse / fuse holder / bolts / washers /springs / nuts / angle bracket
-------------000-----------------------------------------000--------------------------------------------000-------------->>
Fritzing Diagram:
-------------------000-----------------------------------------000--------------------------------------------000------------------->>
Build Process Gallery:

---------000-----------------------------------------000--------------------------------------------000------------------------------>>
......... and lastly, the beast in action:
* Test Flight 001 * on VIMEO....

-&c