I am working on a rather novel/possibly interesting project and could use some advice as I am planning to make some kind of wheeled robot but I have no experience at all of this type of project:
Brief overview of what I am planning:
I have recently bought myself a hot drinks vending machine (something I have always fancied despite the obvious stupidity of having such a thing in a domestic house
i.e. one of these:
I have now added an Arduino to it with RFID reader and attached RFIDs to the bottom of my mugs so that simply offering up a mug to this machine dispenses the relevant drink for that mug (i.e. owner of said mug)
I used a couple of Mux chips to control the keypad of the vending machine
What I would like to have a try at now is making some kind of wheeled robot which I can summon to come to where I sit (different room to my vending machine) and collect my mug, take the mug to the vending machine and get it refilled (this is simply a matter of putting the mug into the vending machine as the RFID does the rest) and then bring the drink back to me.
I just figured this would be an interesting and challenging project to have a try of
I figure that the easiest way of doing this would be to make some kind of wheeled "robot" which follows a line on the floor from where I sit to the vending machine?
but any suggestions, advice etc. etc. would be much appreciated because as I say I have never attempted anything like this before
I think that is an awesome project and definitely do able. Are you going to have a sort of lifting mechanism to make the cup reach the dispenser? I envision a lifter already at your machine and the robot just having to drive up to it. I agree with the line on the floor, simplest way to do it in my opinion. You could have a micro switch or any other button on the front and back of your car that tells it when to stop, a button on the top that tells it when it has a cup on it. I think the actual building of a lifter of some kind would be the hardest part, Everything else relatively strait forward. The idea i am imagining involves 2 arduinos though, if thats a problem, one to run the car/robot, and one to operate the coffee machine and lifter.
There is no need for a lifter as all the robot needs to do is hold the cup at the correct height for the vending machine so as the cup is put into the machine it passes over the RFID reader and is then held in the correct place so that the drink goes into the cup (you can tell the vending machine not to dispense a plastic cup)
This cup height would also be ideal for bringing it to the coffee table where I sit
So the robot will not need any moving parts other than the wheels to move it
Other than actually programming it to find it's way, I think the only problem will be not spilling any drink on the way?
although, at a later date I am hoping to somehow get it to open and close the door on it's way (this is not vital though)
As the robot is going to be doing a set route round the house is there and chance of just using ultra sonic distance sensors to navigate round (rather than having to have lines drawn round the house for it to follow)
i.e. It sets off from a set point and knows it needs to move forward until 30cm from the wall then turning left 90 degrees etc. etc.
it could have side ones as well to keep a check how far it is from the other walls....
alanesq:
As the robot is going to be doing a set route round the house is there and chance of just using ultra sonic distance sensors to navigate round (rather than having to have lines drawn round the house for it to follow)
The challenge with this scenario is things that move, like humans and pets, also reflect ultrasonic waves and will mess up your little robot's world view. You could put rotary encoders into it so it knows the distance it has travelled based on the turns of the wheel axles, then tell it to move a certain distance, turn, move another distance...rinse, repeat. There is the possibility of wheel-slip potentially upsetting that, but if you cross-referenced that with another sensor (potentially homing in on an iR LED on your destination?) you'd do away with the markings on the floor.
I really like this project and hope you keep at it. If only we could make the robot climb stairs I'd think the same project could be a must-have.
O yes !
I only yesterday got it dispensing drinks with the RFID (i.e. no more tedious pressing of buttons so I have been testing it all morning....
I dismantled a rfid keyfob, removed the coil/chip and epoxied this under the mug - works really well.
strykeroz:
I really like this project and hope you keep at it. If only we could make the robot climb stairs I'd think the same project could be a must-have.
I must admit, this thought had occurred to me
I need to get myself some kind of wheeled/powered device to start experimenting with
What is the best (or more importantly cheapest) way to go ?
e.g. stepper motors, modify a old radio control car????
For simplicity I'd think getting a robotic chassis that has motors and rotary encoders in it already. I'm pretty sure there are kits from Pololu and DFRobot to name just two.
If you aren't going to use anything to raise and lower the mug, you need a base big enough to not be unsettled by a relatively large mass around a metre away from the centre of drive.
I would agree with dxw00d, large base and moving pretty slow. If you really don't want to put a line on the floor then i would go with some IR distance sensors or ultrasonic. I would also get a kit of some kind, defiantly with the rotary encoders and a large base with motors you will easily be able to control with the arduino. Is the robot going to have to go from say a tile or laminate floor to carpet? i think a bump like that might unsettle your valuable cargo. Stick to it man! cool project.
I don't want to end up spending a lot of money on this (which it looks like I could easily do)
so what I plan to do at the moment is make a basic 3 wheeled trolley with a couple of dc motors on the wheels and start experimenting / getting some experience....
I am wondering if an optical mouse would be a easy way of tracking actual movement?
this combined with a ultrasonic sensor
btw-all the floors are wooden
alanesq:
I am wondering if an optical mouse would be a easy way of tracking actual movement?
this combined with a ultrasonic sensor
btw-all the floors are wooden
I dont know a lot about mouses, but some freinds of mine used a ball mouse to track movement in a maze robot, totally do-able, easiest and cheapest place to start i would think.
I have just tried connecting a PS2 optical mouse to an Arduino and it is surprisingly easy to do - just power and 2 data wires
used this library - Arduino Playground - Ps2mouse
although the library gave errors on compile and I had to use the older version of the Arduino software (IDE version 23) don't know if there is a newer version of the library available??
the error is most likely from the library being old. Things have changed in the release of 1.0, you need to find in the library .txt files where it says
It has been a while as I have been waiting for parts etc., but I have now made a start at building a robot.......
I have now built a basic 3 wheeled robot - at the moment there are no sensors on it so it is just obeying basic turn motor on for 3 seconds type commands
but so far so good
It looks like the plan to use an optical mouse is a no go - it is just not giving accurate enough data to be of any use
The ultrasound sensors are very good but I am getting a lot of places in the room where it doesn't work (I guess reflections from furniture etc.) so I can't rely on these for navigation (at least not on their own)
so any more ideas on what I can try before resorting back to the line following plan?
alanesq:
The ultrasound sensors are very good but I am getting a lot of places in the room where it doesn't work (I guess reflections from furniture etc.) so I can't rely on these for navigation (at least not on their own)
Hi, What are the ultrasonics doing that is causing you problems?
strykeroz:
Hi, What are the ultrasonics doing that is causing you problems?
It works great when pointed straight at a decent flat surface, but if I try to send the robot through a gap (e.g. out the door) or at an angle through the room etc. it soon starts receiving data of 0 or 256 which I am guessing means poor signal?
0 I would have thought means the pulsein() timed out without receiving an echo from your sensor, which potentially means your wall deflected the ultrasonic ping at an angle that didn't get captured by the sensor on its return...or the wall is too far away but that's unlikely from what you're saying. Is it a HC-SR04 you're using?