Python 如何在开放式AI健身房游戏中映射自定义键?

Python 如何在开放式AI健身房游戏中映射自定义键?,python,openai-gym,Python,Openai Gym,我试图让用户使用自定义键来播放CarRacing-v0环境,我想我可以使用utils.play这样做: import gym from gym.utils.play import * play(gym.make("CarRacing-v0")) 它在atari环境下运行良好,但在本例中,我得到了 --------------------------------------------------------------------------- AssertionError

我试图让用户使用自定义键来播放CarRacing-v0环境,我想我可以使用utils.play这样做:

import gym
from gym.utils.play import *

play(gym.make("CarRacing-v0"))
它在atari环境下运行良好,但在本例中,我得到了

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-3-080385c697d2> in <module>()
      8 # play.keys_to_action = KEYWORD_TO_KEY
      9 
---> 10 play(gym.make("CarRacing-v0"))
     11 
     12 # mapping of keys

~/Documents/openai/gym/gym/utils/play.py in play(env, transpose, fps, zoom, callback, keys_to_action)
     92         else:
     93             assert False, env.spec.id + " does not have explicit key to action mapping, " + \
---> 94                           "please specify one manually"
     95     relevant_keys = set(sum(map(list, keys_to_action.keys()),[]))
     96 

AssertionError: CarRacing-v0 does not have explicit key to action mapping, please specify one manually
我知道car_racing脚本通过将按键捕捉到一个3元素数组中并将该值传递给env.step来实现这一点。所以我在这里尝试了类似的方法:

KEYWORD_TO_KEY = {'STEER':ord('a'),'GAS':ord('w'),'BREAK':ord('s')}
play.keys_to_action = KEYWORD_TO_KEY
它不起作用。我知道方向盘是错的,但我想我至少会让车转向一个方向。 然后,我检查了将关键字重新映射到一个Atari游戏的自定义组合。 游戏成功了,但关键点映射是原始的,不是我的修改

你们知道如何正确地进行自定义密钥映射吗

KEYWORD_TO_KEY = {'STEER':ord('a'),'GAS':ord('w'),'BREAK':ord('s')}
play.keys_to_action = KEYWORD_TO_KEY