Battery Charger Docking Project

rgordon

USA

Hello Team,

Well I'm diving in on this project. So it's sink or swim. The discussion thread for Automatic Battery Charger Docking is still open for those who wish to keep brain storming on the topic.

We decided that it would be better to start a separate thread when someone started their build on this project as each one will probably be unique for each individual's home or tastes in design.

I know Fred is doing one Home Base Finding Design Using A Ir Beacon Idea

And I think Technopro is working on one at Ir Autonomous Home Base

So kick back, grab a cup of coffee and try not to fall asleep:D I decided to put down all my thoughts and plans on this subject and work through a scenario (tailored to my home) to help me understand just what will be involved in all this. There will be a bunch of scripting to accomplish this (Rich are you available to assist?) and lots more hardware issues I'm sure. I will en devour to post schematics and pictures as time permits.

Please...please, everyone who dares to wade through all this project, let me know your thoughts and criticisms. Poke holes in my theories, help brainstorm, whatever. All comments are welcome.

By — Last update
Jump to end

ARC Pro

Upgrade to ARC Pro

Join the ARC Pro community and gain access to a wealth of resources and support, ensuring your robot's success.

United Kingdom
#33  

Not yet I haven't, I've been short on time lately with working 18 hour days so have only had a quick look. Will look properly when I get chance though.

#34  

Here is yet another Ir beacon I have discovered while cruising the web. It is a LEGO approved sensor that may be of some use to us. If we could find a way to use it with EZ-B.

IR beacon

#35  

Idea i have planed after my EZB beacon design is like a LIDAR but uising one IR receiver in continuous turning turret and picking up 16 points of data, using whats called S&H circuit

The design is a little tricky only because after 360 deg the wire will break off,so it needs like the LIDAR design is using or like the design a hard drive has,magnetic reveiver and transmitter

#36  

What if the robot is in an area where it sees two blink patterns overlapping? If the script is configured so that it is ignoring all other blink patterns except the one it is looking for then maybe it will be OK? Say for instance it is in the Dining Room getting near the entrance to the Kitchen area (see floor plan dwg.)and it is seeing two beacons at the same time. At this point (trying to find the Kitchen) it is looking for two blinks and a 5 sec. pause. If it is seeing the two blinks from the beacon in the Kitchen and still seeing the three blinks from the Dining Room the timer does not have time to reset so it will ignore it until it gets to a place it is only seeing two confirmed blinks and a 5 sec. pause. .....I think......(see page 1, post # 6 for my idea on how the blink counting would work)

Help me out here guys...am I totally off my rocker here?

United Kingdom
#37  

Very quickly scanned over that and I may have the wrong end of the stick so excuse it if I have but you want a priority list of beacons... for instance;

Order of priority

  1. Kitchen
  2. Dining
  3. Living
  4. Hall

(Room names are not specific to your project, I am just getting the general idea across).

If that's the case you need the IFs in the right order...

This isn't the code (in a rush, will expand later) but it's something like...

IF(Kitchen Detected) Move to Kitchen ElseIf(Dining Detected) Move to Dining ElseIf(Living Detected) Move to Living ElseIf(Hall Detected) Move to Hall Else Keep Searching EndIf

That will first look for the kitchen, ignoring all else. Then the dining if kitchen isn't found... etc.

#38  

Hi Rich,

From my example: Say the omni-cone IR receiver digital input detects a repeating blink pattern of 6 blinks then a 5-sec. pause.

Within the script,whenever each IR blink is detected, a counter is incremented and a 3sec.wait period (timer) starts.

Each time a blink is detected, the timer gets reset to zero and starts over. However, when the beacon gets to the last blink in its pattern, there is a 5-sec pause.

If no more blinks are detected, this 5-sec pause allows the timer to finish and "time out". When the timer finishes, the script compares the number of blinks stored in the counter to the blink pattern database listed on page 1 post # 6.

The robot has confirmed that it is in Bedroom No. 3 (6 blinks= Bed Room No.3)

When the robot determines what room it is in then based on the info contained in the script database it makes a decision on which direction to move and what beacon to seek next. The counter is cleared and ready for the next count.

Can timers and counters be used within a script? I have not checked yet.


My main concern is what I mentioned earlier; it could possibly get to a point in its journey where it would encounter blinks from two beacons at the same time. This would be when it is in the Dining Room and nearing the entrance to the Kitchen.

If it is seeing the two blinks from the beacon in the Kitchen and still seeing the three blinks from the Dining Room the script timer would not have time to reset. So it should ignore this situation until it gets to a place it is only seeing, what it is currently seeking at that point in the journey, which is two confirmed blinks and a 5 sec. pause.

I hope all my babbling makes sense :D

United Kingdom
#39  

Yes counters can be used. I don't know how the IR beacons and sensor are working (or planned to work) but if for argument's sake it sets a digital port to on when detected...


IF(GetDigital(D0) = 1)
  $Counter = $Counter++
EndIf

That would increase the value of the variable $Counter by 1.

You could throw in a Digital_Wait (digitalPort, on/off/true/false) command to only run the code when a blink is detected too.

However, something that just sprung to mind and needs to be gotten around is this... What happens when the robot "sees" the beacon part way through it's blink cycle? If it's a beacon which blinks 8 times and then a 5 second pause but the robot catches it half way through it will count 4 blinks then a 5 second pause.

A way around that would be to check at least twice, if the count doesn't match then count a third time to determine the correct count. Or you could wait for a 5 second pause before counting. I'd have to think about how to achieve that though.

But it also leads back to "What happens if the robot detects two beacons at once"... It would count both... and since the blinks and 5 second pause would last different periods of time on each beacon it could result in a very large count. I'm unsure if there is a way for it to determine when it's only reading one beacon.

It's very probably going to be a complicated script and system. Are there any alternatives? Different constant blink rates, like different frequencies (which it basically is). 1 blink per second, 2 blinks per second and so on.

I still need to read through this topic properly as I'm rather blind looking at this and the things above may have already been thought of or gotten around. Hopefully I will have more time to look soon but this week is hectic with work.

#40  

Thanks Rich...yeah I know the feeling...."me" time is something that is hard to come by.

You may need a large cup of coffee to wade through all my ramblings on this topic. I'm not sure if this will work or not. I may have to try to find a way to send a three bit digit using the Fire Stick circuit from rentron.com. But I guess it will still have the issue of seeing more than one beacon.....

Quote from Star Trek...."Time is the fire in which we all burn"