0

我正在运行来自 flow/examples/rllib 的 stabilizing_highway 示例。我注意到有时,在合并环境中的状态计算过程中:

    for i, rl_id in enumerate(self.rl_veh):
        this_speed = self.k.vehicle.get_speed(rl_id)

我时不时地得到 this_speed=-1001 的值。这始终是开始新模拟时的第一个观察结果(我猜这就是环境中使用 warmup_steps 参数的原因。但在模拟的后期,这种情况也一直在发生。

sumo 返回 error=-1001 值的原因可能是什么?

4

1 回答 1

0

如果您阅读该get_speed函数的文档字符串,您会看到如果找不到车辆的 ID,它会返回 -1001。

在该_apply_rl_actions方法中,会进行测试以查看车辆 ID 是否存在:

        for i, rl_id in enumerate(self.rl_veh):
            # ignore rl vehicles outside the network
            if rl_id not in self.k.vehicle.get_rl_ids():
                continue
            self.k.vehicle.apply_acceleration(rl_id, rl_actions[i])

我猜这个测试没有被执行,get_state因为无论如何我们都需要为观察输出一些值,因为它是固定大小的,无论是实际速度还是恒定值 -1001,这意味着它不是实际的车辆。

于 2019-07-22T12:39:19.670 回答