Springen naar inhoud

Algoritme voor robot


  • Log in om te kunnen reageren

#1

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 14 april 2010 - 22:28

Ik heb een robot gebouwd voor een contest, waarbij het de bedoeling is dat de robot een bepaald parcours aflegt (zo snel mogelijk). Nu gaat die robot moeten proberen zo ver mogelijk in een bepaalde richting te komen.

De robot is voorzien van een (trage) kompassensor om de richting bij te houden, en kan 2 lange-afstandsensor gebruiken om muren te detecteren tot 40cm ver. (de robot zelf is ongeveer 10x15cm). Die lange afstandssensor kan hij naar links en rechts en rechts bewegen over +-30° ten opzichte van zijn voorkant (en de andere ten opzichte van zijn achterkant).
DSCN9223.JPG

Kent er iemand een algoritme, om min of meer efficiënt door een ruimte vol met obstakels te rijden?

Veranderd door 317070, 14 april 2010 - 22:29

What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

In physics I trust

    In physics I trust


  • >5k berichten
  • 7384 berichten
  • Moderator

Geplaatst op 16 april 2010 - 17:38

Dus je beschikt bijvoorbeeld over de gegevens "obstakel op 20 graden links voor de robot", is het dat?

Kan je iets doen met het feit dat de sensoren vlak naast elkaar staan? Bijvoorbeeld: als je met de linkse sensor de muur x seconden vroeger ziet dan met de rechtse sensor, dan staat de muur een beetje schuin, of klopt dat niet?
"C++ : Where friends have access to your private members." — Gavin Russell Baker.

#3

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 16 april 2010 - 17:45

Kan je iets doen met het feit dat de sensoren vlak naast elkaar staan? Bijvoorbeeld: als je met de linkse sensor de muur x seconden vroeger ziet dan met de rechtse sensor, dan staat de muur een beetje schuin, of klopt dat niet?

Klopt, maar nu staat er 1 sensor vooraan, en 1 achteraan, dus dat gaat wat moeilijk ](*,) (die 2 witte dingen zijn gewoon versiering)

Maar je zou inderdaad de sensor wat kunnen bewegen om dat te kunnen zien. Goed idee!
Heb je nog zulke ideetjes? :eusa_whistle: Wij zijn hier al even aan het brainstormen zonder veel resultaat...

Veranderd door 317070, 16 april 2010 - 17:45

What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#4

Schwartz

    Schwartz


  • >250 berichten
  • 691 berichten
  • Verbannen

Geplaatst op 19 april 2010 - 09:11

Je kunt voor elke richting die men kan volgen een waarde creeren.
Bij het nemen van een beslissing neemt men de reeks met de hoogste getallen of diegene die met zijn kop er boven uit steekt.
Men kan hierbij ook random toepassen als de robot niet beweegt.
Hij wordt dan dol en komt misschien uit het probleem.

Ook kan men telkens voor elke richting een waarde aftrekken zodat de robot bij een besluit blijft.
Hij onthoudt dan de vorige bijdragen.
Dit aftrekken gaat sneller als hij niet beweegt...
Men moet dan wel een goede waarde optellen voor een goede richting.
Eventueel moet men een waarde correctie uitvoeren als alles te hoog wordt of te laag.
En maximaliseren is soms ook nodig om overflow te voorkomen.

Het optellen en aftellen plus wat random plus de technieken zorgt precies voor datgene wat een beestje in de natuur ook doet....
Het optellen is stimulans,
aftrekken is inhibitie
bij geen signaal, stilstand, wordt de versterker open gegooid waardoor ruis toeneemt.

Hint: Je kunt voor de richtingen zeg maar 40 richtingen instellen...

Eventueel kan men deze 40 waarden in een memory opslaan om patroonherkenning op uit te voeren voor betere correcties.
De 40 waarden kan men ook verkleinen tot 10 waarden etc.

Veranderd door Schwartz, 19 april 2010 - 09:22

Een computertaal is voor mensen, niet voor de computer.

#5

Vladimir Lenin

    Vladimir Lenin


  • >250 berichten
  • 829 berichten
  • Ervaren gebruiker

Geplaatst op 23 augustus 2010 - 23:23

Misschien een beetje een laat antwoord, maar ik merk deze topic nu pas op.

Als je weet waar al de hindernissen staan, is het in principe eenvoudig. In dat geval heb je een rij met hoekpunten van alle obstakels. Je bekijkt je robot als een cirkel met een bepaalde radius. Vervolgens pas je de Minkowski-som toe op de hindernissen, en bekom je dus nieuwe hoekpunten van de virtuele hindernissen, en kan je je robot als een punt zien. Vervolgens beschouw je elk hindernishoekpunt als een knooppunt, en er bestaat een boog tussen twee knooppunten indien je vanuit punt 1, punt 2 kunt zien. Voor de lengtes van de bogen neem je de euleriaanse afstand, en vervolgens los je het probleem op met het algoritme van dijkstra op de graaf.
"Als je niet leeft zoals je denkt, zul je snel gaan denken zoals je leeft."
--Vladimir Lenin-- (Владимир Ильич Ульянов)

#6

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 24 augustus 2010 - 18:40

Misschien een beetje een laat antwoord, maar ik merk deze topic nu pas op.

Als je weet waar al de hindernissen staan, ...

Inderdaad, maar dat weet/wist je dus niet. Je begint op 'onbekend gebied'

Nu, uiteindelijk hadden we op de wedstrijd zelf een kapotte sensor/slechte regelkring, we hadden de helft van de ronden nodig om het probleem op te lossen, en dus zijn we slechts 7e geworden ;)

Overigens hebben we het idee van 'in fysics I trust' geimpelenteerd, en het werkte super.

Veranderd door 317070, 24 augustus 2010 - 18:43

What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures