FollowRoute

A NavigationStrategy allowing to follow a given route. The route consists of a list of positions (= waypoints) that may or may not be in sight of each other (i.e. the path leading from a waypoint to the next one may or may not be representable as a single segment), for this reason Pursue behavior is used to reach each waypoint. In this context, a waypoint is considered reached when it's inside the current room (not when the node reach that exact position), apart from the last waypoint which is actually approached. Cuts to the route are allowed (i.e. if the node finds a waypoint which is farther than the expected next one, he/she skips all the waypoints in between).

Parameters

route

the route to follow.

T

the concentration type.

L

the type of landmarks of the node's cognitive map.

R

the type of edges of the node's cognitive map, representing the Relations between landmarks.

Inheritors

Constructors

Link copied to clipboard

Properties

Link copied to clipboard

The NavigationAction used to navigate the environment.

Link copied to clipboard
protected open override var destination: Euclidean2DPosition

The destination to pursue.

Functions

Link copied to clipboard
open override fun inNewRoom(newRoom: ConvexPolygon)

This is called whenever the node enters a new room.

Link copied to clipboard
open override fun inUnexpectedNewRoom(previousRoom: ConvexPolygon, expectedNewRoom: ConvexPolygon, actualNewRoom: ConvexPolygon)

When in an unexpected room the node gets back to previousRoom to continue following the route correctly.

Link copied to clipboard
fun setDestination(newDestination: Euclidean2DPosition, voidVolatileMemory: Boolean = false)

Changes the destination of the strategy. If voidVolatileMemory is true, the node's volatile memory is set to zero. This has two effects: