refornenced learing
理论的东西看着总是让人云里雾里没有实感,别担心,看看代码就懂了。
让我们来看一下ROS里面是如何实现强化学习算法的
1.基础准备
首先,让我们来了解下ROS-RL-agent的基本结构及其定义。
1.1.ROS-RL-agent
ROS 的RL引擎提供了一系列强化学习的引擎和环境。
代码可以在https://github.com/toddhester/rl-texplore-ros-pkg下载到
其主要包含以下几个包:
rl_common: Some files that are common to both agents and environments.
引擎和环境共通方法的定义,加入新引擎时必须COMMON中定义的头文件
rl_msgs: Definitions of ROS messages for agents and envs to communicate.
引擎和环境之间消息的定义
rl_agent: A library of some RL agents including Q-Learning and TEXPLORE.
一些强化学习的引擎
rl_env: A library of some RL environments such as Taxi and Fuel World.
一些强化学习用的模拟环境
rl_experiment: Code to run some RL experiments without ROS message passing.
不使用ROS中MESSAGE机制而直接 实例化引擎和环境并通过其方法的直接调用来进行实验的环境
1.1.1.rl_common
common package定义了在ROS——RL框架下引擎和环境中必须拥有的一些方法,其都定义在core.hh文件中,如果想要撰写新的引擎或者环境,都必须包含core.hh并继承为其对应目标的子类。
Experience
struct experience {
std::vector<float>