环境安装
利用anoconda创建虚拟环境,取名为tensorflow。(最好用anoconda3,取名可随便取)
conda create -n tensorflow pip python=2.7
激活虚拟环境
conda activate tensorflow
安装显卡驱动、cuda、cudnn
conda install cudatoolkit==9.0
conda install cudnn==7.1.2
在虚拟环境中安装tensorflow_gpu=1.8, keras=2.1.6, ros包, 画图工具包等
pip install -U rosinstall msgpack empy defusedxml netifaces
pip install --ignore-installed --upgrade https://download.tensorflow.google.cn/linux/gpu/tensorflow_gpu-1.8.0-cp27-none-linux_x86_64.whl
pip install keras==2.1.6
pip install pyqtgraph
conda install pyqt
下载源码包并编译
mkdir -p catkin_ws/src
cd ~/catkin_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
git clone https://github.com/ROBOTIS-GIT/turtlebot3_machine_learning.git
若上面4个链接下载慢可用下面4个代替
git clone https://gitee.com/zthcool/turtlebot3_msgs.git
git clone https://gitee.com/zthcool/turtlebot3.git
git clone https://gitee.com/zthcool/turtlebot3_simulations.git
git clone https://gitee.com/oliver_zxh/turtlebot3_machine_learning.git
Make
cd ~/catkin_ws && catkin_make
打开用gedit打开 .bashrc文件
gedit ~/.bashrc
然后在.bashrc文件中添加:
source /home/xxx/catkin_ws/devel/setup.bash
export TURTLEBOT3_MODEL=burger
设置参数并运行
设置参数:
打开源码文件 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>
运行程序
打开一个终端执行如下命令开启仿真环境:
roslaunch turtlebot3_gazebo turtlebot3_stage_1.launch
再打开一个终端执行如下命令启动DQN节点:
conda activate tensorflow
roslaunch turtlebot3_dqn turtlebot3_dqn_stage_1.launch
安装运行问题及解决方法
运行roslaunch turtlebot3_gazebo turtlebot3_stage_1.launch时出现以下错误:
Invalid <arg> tag: environment variable 'TURTLEBOT3_MODEL' is not set.
解决方法:
export TURTLEBOT3_MODEL=burger
运行roslaunch turtlebot3_dqn turtlebot3_dqn_stage_1.launch时出现以下错误:
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory Failed to load the native TensorFlow runtime
原因是没有安装cuda,在conda虚拟环境中安装cuda和cudnn:
conda install cudatoolkit==9.0
conda install cudnn==7.1.2
运行roslaunch turtlebot3_dqn turtlebot3_dqn_stage_1.launch时出现以下错误:
rospy.service.ServiceException: transport error completing service call: receive_once[/controller_manager/load_controller]: DeserializationError cannot deserialize: unknown error handler name 'rosmsg
解决方法:在普通环境(不是conda虚拟环境)下执行
sudo apt-get install ros-kinetic-rosmsg
sudo apt-get install ros-kinetic-genpy
运行roslaunch turtlebot3_dqn result_graph.launch时出现以下错误:
ModuleNotFoundError: No module named 'PyQt5.QtWidgets'
解决方法:
conda install pyqt
以上内容参考链接:
参考的链接