def create_obs_spec(vehicle): obs_spec = None for attached in vehicle.sensors: sensor = attached.sensor ss = StreamSpec.from_yaml(sensor.observations_spec) obs_spec = (ss if obs_spec is None else StreamSpec.join(obs_spec, ss)) assert obs_spec is not None assert obs_spec is not None return obs_spec
def __init__(self, base, top): self.base = base self.top = top cmd1 = StreamSpec.from_yaml(self.base.get_commands_spec()) cmd2 = StreamSpec.from_yaml(self.top.get_commands_spec()) cmd_spec = StreamSpec.join(cmd1, cmd2).to_yaml() components = [self.base.get_state_space(), self.top.get_state_space()] state_space = ProductManifold(components) Dynamics.__init__(self, commands_spec=cmd_spec, state_space=state_space)