BARK
Getting StartedBuilding From SourceCore ModulesDeveloping Behavior ModelsBenchmarkingAdvanced TopicsBARK-ML
Getting StartedObserversEvaluatorsEnvironmentsBARK-ML AgentsBARK-ML observers convert the BARK world into a suitable input representation for machine learning, such as a vectorial representation that can be used by deep neural networks.
There are several observers available ranging from concatenated state vector to graph representations.
The observer base class (BaseObserver) looks as follows:
class BaseObserver(ABC):
def __init__(self,
params):
self._params = params
@abstractmethod
def Observe(self, observed_world):
"""Generates an observation for the BARK world
Arguments:
world {bark.ObservedWorld} -- observed BARK world
Returns:
e.g., np.array, graph, ...
"""
pass
def Reset(self, world):
pass
@property
def observation_space(self):
passEach Observer in BARK has to implement two functions (Observe and Reset) and the property observation_space.
The Observe function returns a machine learning friendly input representation, such as a numpy array or graph.
Observers that trace vehicles over the course of an episode might require the Reset function to be overloaded to, e.g., reset member variables.
And, finally, the property observation_space needs to be defined that tells the learning agent the dimension of the input space.
BARK-ML implements currently these observers: