Virtual force field-algoritme

In robotica is het virtual force field-algoritme een reactief algoritme dat gebruikt kan worden om de bewegingen te plannen die een robot naar een bepaalde bestemming moeten leiden.

Werking bewerken

Op bepaalde punten zal de robot informatie vergaren van de obstakels rondom zich. Voor elk obstakel zal de robot een repulsieve krachtvector maken (een vector die de richting aanneemt van het obstakel naar de robot) die recht evenredig is met de waarschijnlijkheid dat het obstakel zich daar ook effectief bevindt (het is altijd mogelijk dat de sensors in de fout zijn gegaan). Deze repulsieve krachtvector is bovendien ook omgekeerd evenredig met het kwadraat van de afstand, wat de vector toelaat langer te worden indien het obstakel vlakbij is. De som van deze repulsieve krachtvectoren geeft een resulterende repulsieve vector, die als doel heeft de robot van obstakels weg te houden.

Ook zal de robot een aantrekkingsvector naar het uiteindelijke doel aanmaken. De som van deze aantrekkingsvector en de repulsieve vector, zullen de richting aangeven waarin de robot zich dient voort te bewegen. De actuatoren moeten dan enkel nog het bevel krijgen om de huidige bewegingsrichting te doen aanleunen bij de som van deze twee vectoren.

Voordelen bewerken

  • Het is een reactief algoritme dat zijn werk kan doen in een dynamische omgeving.
  • Eenvoudige implementatie.

Nadelen bewerken

  • Als de robot zich door een gang moet bewegen en zich niet exact in het midden bevindt, zullen de repulsieve krachten van de dichtstbijzijnde muur hem over de as tussen de twee muren sturen, waarna hetzelfde zal gebeuren ten opzichte van de andere muur. Hierdoor krijgt men een effect waarbij de robot zich zigzaggend naar het doel beweegt. Dit komt nogal vaak voor bij dit algoritme.
  • Het algoritme is niet altijd in staat een oplossing te vinden. De robot kan bijvoorbeeld in een ruststand terechtkomen, als er zich een obstakel vlak tussen hem en de bestemming ligt. Op het punt waar de repulsieve kracht van het obstakel en de aantrekkingskracht van de bestemming elkaar opheffen, zal de robot stilstaan.