Turtlebot3 Gazebo仿真环境下深度强化学习DQN开发环境构建

本文介绍了如何在Turtlebot3 Gazebo仿真环境中构建深度强化学习DQN的开发环境。详细步骤包括Anaconda2的安装、Tensorflow的安装、源码下载与编译,以及在遇到如缺少ROS依赖包和Keras模块等问题时的解决方法。通过4个不同障碍环境的训练,展示了DQN的学习效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Anaconda2 安装

 

2、Tensorflow安装

ubuntu18系统anaconda安装tensorflow_qq_39429669的博客-CSDN博客

3、下载并编译源码

本文先使用github中开源的机器学习的源码进行学习,下载编译过程如下

注:可以提前加载到gitee网站,再git clone gitee网址

cd ~/TB3DQN_WS/src/
 
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
 
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
 
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations
 
git clone https://github.com/ROBOTIS-GIT/turtlebot3_machine_learning

~/TB3DQN_WS/src/文件夹下只放前两个文件,激活环境,进入工作空间,编译

注:4个文件可以一起编译,第一次编译为了方便确定可能报错的位置,进行分步编译

setconda
source activate tf2
cd TB3DQN_WS/
catkin_make

~/TB3DQN_WS/src/文件夹下放入第3个文件turtlebot3_simulations,编译

catkin_make

 

~/TB3DQN_WS/src/文件夹下放入第4个文件turtlebot3_machine_learning,编译

catkin_make

 

4、设置参数并运行范例

  • 设置参数:

打开源码文件 turtlebot3/turtlebot3_description/urdf/turtlebot3_burger.gazebo.xacro,修改一下两处:

<xacro:arg name="laser_visual" default="false"/>   # 如果想看到激光扫描线,设置成 `true`
<scan>
  <horizontal>
    <samples>360</samples>            # 修改成24
    <resolution>1</resolution>
    <min_angle>0.0</min_angle>
    <max_angle>6.28319</max_angle>
  </horizontal>
</scan>

 

  • 打开一个终端,启动turtlebot3 gazebo环境等节点:
setconda
source activate tf2
cd TB3DQN_WS/
source ./devel/setup.bash
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_stage_1.launch

产生报错

xacro: in-order processing became default in ROS Melodic. You can drop the option.
substitution args not supported:  No module named rospkg
when processing file: /home/imu/TB3DQN_WS/src/turtlebot3/turtlebot3_description/urdf/turtlebot3_burger.urdf.xacro
RLException: Invalid <param> tag: Cannot load command parameter [robot_description]: command [['/opt/ros/melodic/lib/xacro/xacro', '--inorder', '/home/imu/TB3DQN_WS/src/turtlebot3/turtlebot3_description/urdf/turtlebot3_burger.urdf.xacro']] returned with code [2]. 

Param xml is <param command="$(find xacro)/xacro --inorder $(find turtlebot3_description)/urdf/turtlebot3_$(arg model).urdf.xacro" name="robot_description"/>
The traceback for the exception was written to the log file

报错原因

缺少rospkg等ROS依赖包

解决方法

pip install -U rosinstall msgpack empy defusedxml netifaces
  • 打开另外一个终端,启动DQN算法等节点:
setconda
source activate tf2
cd TB3DQN_WS/
source ./devel/setup.bash
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_dqn turtlebot3_dqn_stage_1.launch

产生报错

Traceback (most recent call last):
  File "/home/imu/TB3DQN_WS/src/turtlebot3_machine_learning/turtlebot3_dqn/nodes/turtlebot3_dqn_stage_1", line 31, in <module>
    from keras.models import Sequential, load_model
ImportError: No module named keras.models
[turtlebot3_dqn_stage_1-1] process has died [pid 12944, exit code 1, cmd /home/imu/TB3DQN_WS/src/turtlebot3_machine_learning/turtlebot3_dqn/nodes/turtlebot3_dqn_stage_1 __name:=turtlebot3_dqn_stage_1 __log:=/home/imu/.ros/log/2bc8c2cc-9db4-11ec-814d-fcaa14c35cee/turtlebot3_dqn_stage_1-1.log].
log file: /home/imu/.ros/log/2bc8c2cc-9db4-11ec-814d-fcaa14c35cee/turtlebot3_dqn_stage_1-1*.log
报错原因

缺少keras包

解决方法

下载对应版本的keras,Tensorflow 1.15对应Keras 2.3.1

tensorflow和keras版本对应关系_haosen-CSDN博客

pip install keras==2.3.1

安装成功显示如下,自动安装了scipy

 Installing collected packages: scipy, keras
Successfully installed keras-2.3.1 scipy-1.2.3

  • 打开第三个终端,启动数据图形显示节点:
pip install pyqtgraph
roslaunch turtlebot3_dqn result_graph.launch

产生报错

没有pyqt5,安装也安装不上,可能原因是anaconda版本低或者python版本低

https://blog.csdn.net/qq_39429669/article/details/123361466

注:源码范例中提供了turtlebot3_stage_1~turtlebot3_stage_4共4个环境,分别是无障碍、静态障碍、动态障碍、混合障碍环境。

5、训练与结果展示


这是训练约5个半小时后的结果:

 ROS开发笔记(8)——Turtlebot3 Gazebo仿真环境下深度强化学习DQN(Deep Q-Learning)开发环境构建_天涯的专栏-CSDN博客_gazebo 强化学习

Ubuntu20.04安装Cuda10.1+cuDNN10.1+Anaconda(Python3.8建议安装3.7)+Keras2.3.1+tensorflow2.2.0+Pycharm(最新版)_如意的小家的博客-CSDN博客_ubuntu20.04 安装cuda

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值