Algoritme voor robot

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 5.609

Algoritme voor robot

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
DSCN9223.JPG (71.14 KiB) 564 keer bekeken
Kent er iemand een algoritme, om min of meer efficiënt door een ruimte vol met obstakels te rijden?
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-

Gebruikersavatar
Berichten: 7.390

Re: Algoritme voor robot

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.

Gebruikersavatar
Berichten: 5.609

Re: Algoritme voor robot

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...
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-

Gebruikersavatar
Berichten: 691

Re: Algoritme voor robot

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.
Een computertaal is voor mensen, niet voor de computer.

Gebruikersavatar
Berichten: 829

Re: Algoritme voor robot

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-- (Владимир Ильич Ульянов)

Gebruikersavatar
Berichten: 5.609

Re: Algoritme voor robot

Vladimir Lenin schreef: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.
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-

Reageer