Skip to content

Limit Cycle

João Pedro Leal edited this page Mar 7, 2024 · 1 revision

Limit Cycle

image

The uni-vector algorithm returns a vector with norm 1 that represents the desired direction to follow at a given point. This implementation is based on Kim D.-H. Kim J.-H. Kim Y.-J. Seow K.-T. Soccer Robotics.

NeonPathPlanning.LimitCycle(fitness=15)

Parameters

fitness : float, optional
    The size of the field margin in which a repulsion vector filed will be applied

Methods

NeonPathPlanning.LimitCycle.add_obstacle(pos, radius, force_direction=False, clockwise=False):

Add one obstacle

Parameters

pos : Point
    Obstacle center x and y coordinates, any object with x and y parameters works
radius : float
    The radius of the obstacle avoidance field
force_direction : bool, optional
    Whether to force a direction around obstacle
clockwise : bool, optional
    If forcing direction go clockwise or counter-clockwise

Returns

pos : object
    The identifier of the obstacle created

NeonPathPlanning.LimitCycle.del_obstacle(*args, all=False):

Delete any amount of obstacles

Parameters

args : list of object
    a variable amount of obstacles to be deleted`
all : bool
    whether to delete all obstacles

NeonPathPlanning.LimitCycle.set_target(target):

Defines the target position

Parameters

target : Point
    Target x and y coordinates,  any object with x and y parameters works

NeonPathPlanning.LimitCycle.compute(p):

Runs the Limit Cycle algorithm

Parameters

p : Point
    The position for which the vector will be calculated, any object with x and y parameters works

Returns

next : Point
    The next point on the path