本博文系列将记录本人理解gym-gazebo的过程。最终目标是添加自己建的环境,并使用gym来在此环境中进行强化学习的研究。
gym-gazebo的安装见本人的前一个博客http://blog.youkuaiyun.com/zhangdadadawei/article/details/78906103
这一篇博客主要是理解gym-gazebo的安装文件,了解如果我们想添加一个新的环境的话,应该改动哪些文件。
安装过程中有两个文件很重要,一个是在/home/zhw/gym-gazebo/gym_gazebo/envs/installation目录下的setup_kinetic.bash文件,另一个是该目录下的turtlebot_setup.bash文件。首先理解setup_kinetic.bash文件。注意在理解bash文件时候,就是把这些代码当做一条条在终端运行的指令即可。因为我对shell脚本语法不熟,在理解的时候主要参考的是这篇文章http://docs.linuxtone.org/ebooks/C&CPP/c/ch31s05.html,关于catkin_make -j1的解释视参考的这篇文章http://blog.youkuaiyun.com/cscrazybing/article/details/50789482
#!/bin/bash
if [ -z "$ROS_DISTRO" ]; then
echo "ROS not installed. Check the installation steps: https://github.com/erlerobot/gym#installing-the-gazebo-environment"
fi
#[ -z STRING ] 如果STRING的长度为零则为真, 即当不存在$ROS_DISTRO这个环境变量时,说明没有安装ROS
program="gazebo"
condition=$(which $program 2>/dev/null | grep -v "not found" | wc -l)
if [ $condition -eq 0 ] ; then
echo "Gazebo is not installed. Check the installation steps: https://github.com/erlerobot/gym#installing-the-gazebo-environment"
fi
source /opt/ros/kinetic/setup.bash
# Create catkin_ws
ws="catkin_ws"
if [ -d $ws ]; then
echo "Error: catkin_ws directory already exists" 1>&2
fi
src=$ws"/src"
mkdir -p $src
cd $src
catkin_init_workspace
# # Install dependencies
# sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116
# sudo apt-get update