BaseObject#
safety_gymnasium.bases.base_object#
- class safety_gymnasium.bases.base_object.BaseObject(type: str | None = None, name: str | None = None, engine: Engine | None = None, random_generator: RandomGenerator | None = None, agent: BaseAgent | None = None)#
Base class for obstacles.
Methods:
cal_cost(): Calculate the cost of the object, only when the object can be constrained, it is needed to be implemented.set_agent(): Set the agent instance, only called once for each object in one environment.set_engine(): Set the engine instance, only called once insafety_gymnasium.World.set_random_generator(): Set the random generator instance, only called once in one environment.process_config(): Process the config, used to fill the configuration dictionary which used to generate mujoco instance xml string of environments._specific_agent_config(): Modify properties according to specific agent.get_config(): Define how to generate config of different objects, it will be called in process_config.
Attributes:
type(str): Type of the obstacle, used as key inprocess_config()to fill configuration dictionary.name(str): Name of the obstacle, used as key inprocess_config()to fill configuration dictionary.engine(safety_gymnasium.world.Engine): Physical engine instance.random_generator(safety_gymnasium.utils.random_generator.RandomGenerator): Random generator instance.agent(safety_gymnasium.bases.base_agent.BaseAgent): Agent instance.pos(np.ndarray): Get the position of the object.
Methods#
- safety_gymnasium.bases.base_object.BaseObject.__init__(self, type: str | None = None, name: str | None = None, engine: Engine | None = None, random_generator: RandomGenerator | None = None, agent: BaseAgent | None = None) None#
Initialize self. See help(type(self)) for accurate signature.
- safety_gymnasium.bases.base_object.BaseObject.cal_cost(self) dict#
Calculate the cost of the obstacle.
- Returns:
dict – Cost of the object in current environments at this timestep.
- safety_gymnasium.bases.base_object.BaseObject.set_agent(self, agent: BaseAgent) None#
Set the agent instance.
Note
This method will be called only once in one environment, that is when the object is instantiated.
- Parameters:
agent (BaseAgent) – Agent instance in current environment.
- safety_gymnasium.bases.base_object.BaseObject.set_engine(self, engine: Engine) None#
Set the engine instance.
Note
This method will be called only once in one environment, that is when the whole environment is instantiated in
safety_gymnasium.World.bind_engine().- Parameters:
engine (Engine) – Physical engine instance.
- safety_gymnasium.bases.base_object.BaseObject.set_random_generator(self, random_generator: RandomGenerator) None#
Set the random generator instance.
- Parameters:
random_generator (RandomGenerator) – Random generator instance.
- safety_gymnasium.bases.base_object.BaseObject.process_config(self, config: dict, layout: dict, rots: float) None#
Process the config.
Note
This method is called in
safety_gymnasium.bases.base_task._build_world_config()to fill the configuration dictionary which used to generate mujoco instance xml string of environments insafety_gymnasium.World.build().
- safety_gymnasium.bases.base_object.BaseObject._specific_agent_config(self) None#
Modify properties according to specific agent.
Note
This method will be called only once in one environment, that is when
set_agent()is called.
- safety_gymnasium.bases.base_object.BaseObject.get_config(self, xy_pos: ndarray, rot: float)#
Get the config of the obstacle.
- Returns:
dict – Configuration of this type of object in current environment.
Additional Methods#
- abstract property BaseObject.pos: ndarray#
Get the position of the obstacle.
- Returns:
np.ndarray – Position of the obstacle.