Voor een groot project, waarbij het de bedoeling is dat robots in een formatie komen, is het noodzakelijk dat de robots elkaar herkennen en naar elkaar toe kunnen rijden. De hardware ontwerpen en maken is echter een bijkomstig onderdeel van het project, de nadruk ligt meer op de intelligentie van de robots zelf.
Nu hadden we aan volgend concept gedacht:
1. Iedere robot zendt rondom (=> 8 IR-leds, of bvb 3 leds met een bereik van 120°) een pakket van 8 bit via een IR-zender. Het IR-signaal wordt gemoduleerd tegen 36 of 38 kHz zodat we omgevingslicht kunnen filteren en gebruik kunnen maken van eventueel bestaande protocollen zoals RC5. Wegens plaatsgebrek zal het wss nodig zijn de 8 IR leds tegelijk aan te sturen, t.t.z. gebruik makende van 1 zender IC en 1 microcontroller. De robot moet ook kunnen stoppen met zenden van een code.
2. Iedere robot krijgt eveneens 8 IR-ontvangers mee. Die door 1 microcontroller elk afzonderlijk kunnen worden aangestuurd. De microcontroller verwerkt de data van iedere IR-ontvanger en zou de robot als uitgang de uitgezonden code van het sterkste (dicht bijzijnde) signaal meegeven. Eventueel zou ook de sterkte van dit signaal moeten worden meegegeven zodat aan afstandsmeting gedaan kan worden.
M.a.w. iedere robot krijgt een IR-baken mee die een welbepaalde code uitzendt.
Problemen:
-> het richten van de IR-led, men moet de richting kennen van de verzender, dus men zou het systeem moeten kunnen maken zodat slechts 1 IR-ontvanger de data ontvangt zodat men naar een welbepaalde richting kan rijden.
-> het systeem zou geen interferentie mogen geven met 8 Sharp GP2D12x sensoren die we rondom de robot zouden plaatsen om aan afstandsmeting te doen.
-> wanneer twee robotten in formatie staan en de derde de twee andere robotten moet zoeken zal deze waarschijnlijk de twee IR-codes ontvangen, het sterkste zou moeten winnen, kan men vermijden dat deze interfereren? Eventueel kan men ervoor zorgen dat wanneer een robot in formatie komt één van de twee robots zijn code niet meer verstuurt.
-> reflectie op de muren zou niet mogen voorkomen, m.a.w. de stralingsintensiteit moet laag zijn, op zo'n 50 cm van elkaar zouden robots elkaar moeten kunnen "herkennen". Reflectie van de eigen code op zichzelf is niet erg, immers de robot kent zijn eigen code, maar reflectie van robot1 op muur naar robot2 is wel erg omdat robot2 dan naar de muur zou lopen.
Vragen:
-> heeft iemand een ander idee om robots elkaar te laten herkennen, met camera werken is geen optie aangezien we niet de middelen hebben om de camera rondom te laten zien. Er bestaat wel zo'n camera maar onze robot is niet in staat deze beelden autonoom te verwerken zodat we de beelden zouden moeten verzenden naar een computer wat in contradictie is met de eis dat de robots autonoom moeten zijn.
-> Indien men geen beter idee heeft is bovenstaande realiseerbaar? En waar zouden we moeten op letten, welke problemen zouden we mogelijk nog kunnen tegenkomen.
-> Ik heb op het internet reeds erg veel informatie gevonden over het zenden en ontvangen van IR. Echter misschien weet er iemand een plaats waar een eenvoudige IR- beacen staat uitgewerkt die ongeveer doet wat wij willen (na wat hacks). 't is in feite de bedoeling dat we iets creëren zoals de Pololu Beacon echter met een kleiner input spanning (5V) en een bereik van 5 tot 50 cm of iets meer, maar mag geen problemen veroorzaken met reflectie.
Ideëen, opmerkingen of informatie steeds welkom. Via dit en mss andere topics zal ik de lezer op de hoogte houden van de vorderingen van de hardware, en later ook het volledige project.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Om interferentie met die sharps te vermijden kan je een heel andere frequentie kiezen, tsops zijn er van 30 tot 60 kHz.
Om onderlingen beinvloeding te verminderen kan iedere robot met een ander interval zenden, bv signaal - 20 ms pauze - signaa - etc, waarbij die 20 ms lang moet zijn tov de puls e voor iedere robot anders (en liefs priem tov elkaar).
Ik heb wel eens iets gezien met een US zender-ontvanger op een servo, die als een soort radar een scan maakt van z'n omgeving.
Is het toegestaan om de muren met (IR-) zwart spul te bekleden?
Om interferentie met die sharps te vermijden kan je een heel andere frequentie kiezen, tsops zijn er van 30 tot 60 kHz.
Inderdaad, echter het is niet duidelijk aan welke frequentie die Sharp sensoren werken. Bij Sharp benelux konden ze daarover ook geen informatie kwijt.
Om onderlingen beinvloeding te verminderen kan iedere robot met een ander interval zenden, bv signaal - 20 ms pauze - signaa - etc, waarbij die 20 ms lang moet zijn tov de puls e voor iedere robot anders (en liefs priem tov elkaar).
Dit is inderdaad een goed idee echter in strijd met het idee dat iedere robot hetzelfde gedrag heeft. Het liefst zouden we op iedere robot exact hetzelfde programma laten draaien (Behaviour-based model). Op de PIC's een ander tijdsinterval te nemen voor iedere robot of onderling af te spreken elk om beurt IR te zenden. Bovendien moeten de robots dan ook elk een zelfde tijdssynchronisatie hebben.
Ik heb wel eens iets gezien met een US zender-ontvanger op een servo, die als een soort radar een scan maakt van z'n omgeving.
US-zender ontvanger?
Servo/stappenmotor monteren zal niet gaan onze robots zijn daarvoor veel te klein en kunnen niet genoeg stroom leveren voor motoren.
Is het toegestaan om de muren met (IR-) zwart spul te bekleden?
Dit is uiteraard toegestaan echter dit gaat problemen geven met de afstandsmetingen tot de muren. I.h.b.z. voor de ingebouwde proximity sensoren.
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 6 oktober 2006 16:59:25 schreef pikachuf:
Dit is inderdaad een goed idee echter in strijd met het idee dat iedere robot hetzelfde gedrag heeft.
dan zendt iedere robot dus ook de zelfde code uit (als je andere codes toestaat dan beschouw je die pauze lengte gewoon als onderdeel van de code)
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 6 oktober 2006 16:59:25 schreef pikachuf:
Inderdaad, echter het is niet duidelijk aan welke frequentie die Sharp sensoren werken. Bij Sharp benelux konden ze daarover ook geen informatie kwijt.
meten (IR fotodiode + oscilloscoop) of proberen (pak een stel TSOP17xx en)
dan zendt iedere robot dus ook de zelfde code uit (als je andere codes toestaat dan beschouw je die pauze lengte gewoon als onderdeel van de code)
iedere robot zendt een andere code uit, net zoals een mens een ander gezicht heeft is de robot herkenbaar aan zijn uniek ID. Dit ID wordt reeds gebruikt bij de radio-turrets en wij zullen dit systeem behouden.
Normaal was het de bedoeling met een 360° camera te werken maar dit is niet mogelijk omdat er geen camera's met onboard dataverwerking bestaan voor 360° (toch niet voor onze robots). En aangezien het absoluut verboden is de data op de computers te laten verwerken (in strijd met het idee autonome robots) moeten we dit laten varen.
Maar uw idee van het zenden met elk een tijdsinterval is zeker niet slecht (komt beetje overeen met ons onderling afspreek idee wanneer iemand mag "hallo" zeggen) en wij gaan dit zeker in beschouwing nemen indien we niets beters vinden of niemand andere ideëen heeft.