Society of Robots - Robot Forum
Electronics => Electronics => Topic started by: jana on December 10, 2010, 07:12:27 PM
-
Hi everyone, I would like to build a robot that could position him self on a table, with help of X and Y cordinates. My thought is to have 4 senders/recivers at each corner. And one sender/reciver on my robot that will recive and send cordinates.
I have some expirence of programing 8bit microcontrollers and step motors.
My question is: Wich wireless device is easyest and good for my project? (e.g. bluetooth, WiFi, RF....)
Wich micro controller is the most suitable for my project?
Bluetooth module is one of the cheepest solutions, what is the downside of using bluetooth? I would rather go with something as simple as possible.
Thanks in advance
-
The biggest downside, in my opinion, to using Bluetooth in a project like this is you need a PC to act as a hub for the modules to communicate. With a simple RF link, the PC wouldn't be required.
-
hi Jana,
what are you trying to do here?
i'm guessing you plan to measure the time it takes for a RF signal to travel to the edge of the table and back.
any radio module that manages data packets for you will have far too much latency to accurately time the signal's time of flight over a table top.
most RF modules are designed for data throughput and reliability rather than low latency so there is no consistency between when data is sent to the radio and exactly when it appears at the other end.
that rules out using Bluetooth or anything similar.
even using analogue radio modules you are not going to get very good resolution.
consider:
if you use a fast microcontroller with a clock speed of 40MHz
and presuming the speed of light is approximately 300 000 000ms
the radio waves will travel 300000000/40000000 = 7.5 meters per microcontroller clock cycle.
presuming you were using a hardware timer module on the microcontroller to detect an incoming RF signal that means the best resolution you could possibly hope for is 7.5meters every time you receive a signal.
as you would need to receive the signal twice (once on the robot and once on the remote station) you can double that number straight away.
realistically i doubt if you would get resolution of better than 50 meters using this method.
that's just my hunch though.
i actually get very rough range calculations on my RC system but i'm using RF modules that have too much latency to give any real accuracy.
i can tell how far away the receiver is correct to within about 200m.
dunk.
-
Hi,
One or more Sharp distance sensors would be a better start (with a wooden stick or similar in each corner for measuring distance to).
To be sure about direction, perhaps let one corner transmit modulated IR. Then you know where you are by where the IR comes from.
-
Thank you, that was the answer I was looking for. The "table" that my robot would be on is about 15x10 meter, so its more like a room.
Does anyone know hos this works then?
http://www.amazon.com/Wild-Planet-Gear%C2%AE-Agent-Tracker/dp/B0007V62XQ (http://www.amazon.com/Wild-Planet-Gear%C2%AE-Agent-Tracker/dp/B0007V62XQ) (Wild planet Gear, Agent tracker)
any ather ideas?
-
no. all EMF including light and radio waves travel at the speed of light.
have you considered ultrasound?
release an ultrasound pulse at the same time as a radio signal and compare the difference in time to reach a receiver.
this would only really work if you have no obstacles in the way though as sound will be blocked by obstacles.
or worse, the receiver will hear echoes of the sound which would have a longer path length.
dunk.
-
Well, what if I send three different packets with 1us intervall from each base station. I think I would be able to record the time difference/distance from each base stations.?
-
Well, what if I send three different packets with 1us intervall from each base station. I think I would be able to record the time difference/distance from each base stations.?
are you talking about a radio "packet"?
presumably your base stations are around 10 meters apart.
you would need to find a way to synchronise the base station clocks so the pulses stay exactly in sync.
this is not going to be easy as any method you use to communicate between the base stations will be limited to the speed of light.
presuming you can synchronise the base station clocks with the desired level of accuracy your next challenge will be finding a timer that can give the resolution you want.
to get 1m accuracy you will need something capable of sampling at 300MHz.
maybe have a look at some DSPs (Digital Signal Processor) and see if there is anything capable of sampling at that rate.
you will need access to a proper surface mount workshop to deal with these sorts of timing accuracy.
Does anyone know hos this works then?
http://www.amazon.com/Wild-Planet-Gear%C2%AE-Agent-Tracker/dp/B0007V62XQ (http://www.amazon.com/Wild-Planet-Gear%C2%AE-Agent-Tracker/dp/B0007V62XQ) (Wild planet Gear, Agent tracker)
it's been discussed before.
http://www.societyofrobots.com/robotforum/index.php?topic=5923.0 (http://www.societyofrobots.com/robotforum/index.php?topic=5923.0)
but in short, it measures signal strength and as such will never give predictable results.
i think airman00 get as far as buying one and dismantling it so maybe he can give you more info.
dunk.
-
Hi,
A slight correction:
to get 1m accuracy you will need something capable of sampling at 300MHz.
That would give a 1m resolution, not accuracy (there's a huge difference).
To get anything usable for the purpose, the sampling speed should be in the GHz range.
you will need access to a proper surface mount workshop to deal with these sorts of timing accuracy.
And proper microwave CAD and techniques, to avoid standing waves, lumped component interference etc.
I have seen seasoned engineers pull their too early greyed hair, trying to make PCB's for practical µwave implementations.
I would definitely not let a beginner even ponder doing this - it's the fastest route to disappointment.
I'll still suggest Sharp distance sensors as they will work.
U.S. could be used as well, but will require synch'd pulses from all "towers" and an omnidirectional receiver (or a large array to simulate omnidirectionality) on the 'bot.
-
Well... I will give up my idea of a bot positioning him self with RF.
Thanks for all help anyway
-
Here is a way to have your bot position itself in a room. Use a Wii remote camera on the bot facing the ceiling. On the ceiling, install 4 IR LEDs spread around at an even distance. Use the I2C bus to talk to the camera. There are projects on the net showing how to use the hacked Wii remote camera.
-
If the table is a fixed size couldn't you put LEDs in corners. Use different colors or pulse them at different intervals. By checking the angles between the LEDs you should be able to figure your position.
Conscripted
-
intresting idea, I will examine the possibilities of leds and wii camera =)
-
What about infrared lasers and a single camera? The camera is above the table and you project an infrared grid on the table. Then the camera can see the infrared and all you do is scan for breaks in the grid. That is your robot. Then return the positional data to the bot for the next move. Sorta like a poor mans Kinect