设置参数篇
DQN Agent 的目标是让 TurtleBot3 达到避开障碍物的目标。当 TurtleBot3 接近目标时,它会获得正奖励,而当它更远时,它会获得负奖励。当 TurtleBot3 撞上障碍物或经过一段时间后,这一集就结束了。在这一集中,TurtleBot3 在达到目标时会获得很大的正奖励,而 TurtleBot3 在撞到障碍物时会获得很大的负奖励。
设置状态
状态是对环境的观察,描述当前的情况。在这里,state_size
是 26,有 24 个 LDS 值、到球门的距离和到球门的角度。
Turtlebot3 的 LDS 默认设置为 360。您可以在 中修改 LDS 的样本turtlebot3/turtlebot3_description/urdf/turtlebot3_burger.gazebo.xacro
。
<xacro:arg name="laser_visual" default="false"/> # Visualization of LDS. If you want to see LDS, set to `true`
<scan> <horizontal> <samples>360</samples> # The number of sample. Modify it to 24 <resolution>1</resolution> <min_angle>0.0</min_angle> <max_angle>6.28319</max_angle> </horizontal> </scan>
设置动作
行动是代理在每个状态下可以做的事情。在这里,turtlebot3 的线速度始终为 0.15 m/s。角速度由动作决定。
行动 | 角速度 |
0 | -1.5 |
1 | -0.75 |
2 | 0 |
3 | 0.75 |
4 | 1.5 |
设置Reward
当turtlebot3 在某个状态下采取行动时,它会收到Reward。Reward设计对于学习非常重要。Reward可以是正面的或负面的。当turtlebot3 达到目标时,它会获得很大的正Reward。当turtlebot3 与障碍物发生碰撞时,它会获得很大的负Reward。如果您想应用您的Reward设计,请修改setReward
./turtlebot3_machine_learning/turtlebot3_dqn/src/turtlebot3_dqn/environment_stage_#.py
设置超参数
本教程是使用 DQN 学习的。DQN 是一种强化学习方法,通过逼近动作值函数(Q-value)来选择深度神经网络。代理在 处具有跟随超参数/turtlebot3_machine_learning/turtlebot3_dqn/nodes/turtlebot3_dqn_stage_#