Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建具有多种功能的OpenAI健身房观察空间_Python_Python 3.x_Ros_Reinforcement Learning_Openai Gym - Fatal编程技术网

Python 如何创建具有多种功能的OpenAI健身房观察空间

Python 如何创建具有多种功能的OpenAI健身房观察空间,python,python-3.x,ros,reinforcement-learning,openai-gym,Python,Python 3.x,Ros,Reinforcement Learning,Openai Gym,使用Python3.6、Ubuntu 18.04、Gym 0.15.4、RoS melodic、Tensorflow 1.14和RLU coach 1.01: 我建立了一个定制的健身房环境,使用360元素阵列作为观察空间 high = np.array([4.5] * 360) #360 degree scan to a max of 4.5 meters low = np.array([0.0] * 360) self.observation_space = spaces.Box(low, h

使用Python3.6、Ubuntu 18.04、Gym 0.15.4、RoS melodic、Tensorflow 1.14和RLU coach 1.01:

我建立了一个定制的健身房环境,使用360元素阵列作为观察空间

high = np.array([4.5] * 360) #360 degree scan to a max of 4.5 meters
low = np.array([0.0] * 360)
self.observation_space = spaces.Box(low, high, dtype=np.float32)
但是,这还不足以通过ClippedPO algo进行正确训练,我想在我的状态中添加其他功能,包括:

在世界上的位置(x,y坐标)
世界中的方向(四元数:x、y、z、w) 线性轨迹(x、y、z坐标) 角轨迹(x,y,z坐标)

我将上述四个特性放入它们自己的np.array中,并尝试将它们作为state对象传递回去,但显然它与观测空间不匹配。这个空盒子把我弄糊涂了。我假设我无法将所有这些特性转储到一个np数组中,因为上限和下限将不同,但是,我无法确定如何创建具有多个“特性”的spaces.Box对象


TIA

请查看
健身房空间元组
课程

另外,您可以看看我是如何将其用于我自己的ROS环境的,您需要的是:

导入健身房
空格={
“位置”:gym.spaces.Box(低=0,高=100,形状=(2,),
“方向”:。。。
}
dict_space=gym.spaces.dict(spaces)

我查看了您的源代码以及如何返回
gym.spaces.Tuple
对象作为观察值。但是至少StableBaselines3中的RL算法不支持
Tuple
观察值或动作空间。您能告诉我您使用了哪种算法吗?您知道支持
Dict
观察值的RL算法吗ces?我找不到一个,StableBaselines3的文档说,
Tuple
Dict
不受支持。@Philipp我一直在使用PPO,从框架中观察到
Dict
。据我所知,框架中的所有/大部分算法(有很多!)支持
Dict
observations.@CGFoX因此,当您训练代理时,Ray RLlib会直接连接所有Dict观测,还是每个值都有一个单独的NN()关于Dict?@SatyaPrakashDash,我不是100%确定,但我相信RLlib只是将值连接到单个向量,并将向量传递到单个NN。也就是说,Dict中的每个条目都没有单独的NN。通常,这是您想要的,因为您需要一个NN输出(值、动作等)基于所有观察结果,而不是基于部分观察结果的多个输出。@CGFoX是的,我也这么认为。谢谢。