环境准备工作
前提要求:Ubuntu 18.04 and ROS Melodic (Python2.7)
#ros melodic安装:http://wiki.ros.org/melodic/Installation/Ubuntu (注意使用国内源:http://wiki.ros.org/ROS/Installation/UbuntuMirrors)首先创造一个新的ros工作区
cd ~
mkdir -p drone_racing_worksapce/src
cd ~/drone_racing_worksapce
catkin init **#catkin安装 :http://wiki.ros.org/catkin**
catkin build
cd ~/drone_racing_worksapce/src
git clone https://github.com/tianqi-wang1996/DeepRobustDroneRacing.git
#git clone加速方法:https://blog.youkuaiyun.com/Mickey_c_mouse/article/details/113872841
#用Anaconda创建虚拟环境python2.7
#anaconda官网安装方法:https://www.anaconda.com/
conda create -n virtual_env python=2.7.17
conda activate virtual_env
#安装依赖
cd ~/drone_racing_worksapce/src/DeepRobustDroneRacing/sim2real_drone_racing
pip install -r python_dependencies.txt #pyside2安装容易超时,可以手动安装或重复多试几次
conda install tensorflow-gpu==1.12.0
#pip换源:https://blog.youkuaiyun.com/yuzaipiaofei/article/details/80891108
conda换源:https://blog.youkuaiyun.com/Mickey_c_mouse/article/details/114088415
#重新编译工作环境
cd ~/drone_racing_worksapce
catkin build
#编译过程可能会提示找不到octomap_msgs,解决方法:
sudo apt-get install ros-melodic-octomap-msgs
#编译rotors_gazebo_plugins可能会失败,解决方法:
#删除build文件夹里面的rotors_gazebo_plugins重新编译
source ./devel/setup.bash
echo "source ~/drone_racing_worksapce/devel/setup.bash" >> ~/.bashrc #添加至bash启动变量
搭建tensorflow-gpu环境
建议提前在win系统下好对应的显卡驱动
安装驱动过程可参考文章:https://www.cnblogs.com/jimchen1218/p/11804927.html
https://cloud.tencent.com/developer/article/1509929
过程需要多次重启
cuda和cudnntensorflow-gpu里自带简版,有需要可以额外手动安装
用训练好的模型进行训练
参数修改在main.yaml中,第一次训练用不到
#the following two maximum velocity settings (preferably set to be the same)
global_traj_max_v: 6.0 max velocity of precomputed global trajectory
max_velocity: 6.0 max velocity
# perturb the gate positions before each experiment
gates_static_amplitude: 1.5 max amplitude for statically replacing the gates at new runs # even make the gates keep moving while testing
moving_gates: true triggers dynamically moving gates
# if moving_gates is set to be false, then the two parameters below would be ignored
gates_dyn_amplitude: 1.0 max amplitude for moving at test time speed_moving_gates: 0.3 max speed moving gates
#重新打开一个新终端
conda activate virtual_env
roslaunch deep_drone_racing_learning net_controller_launch.launch
#启动节点程序会出现找不到模块Network :ImportError: No module named Network
#通过sudo find ~/drone_racing_worksapce -name "Network"找到Network模组路径并添加到报错程序syspath中
报错ImportError: No module named ddr_learner.models.base_learner和上面同样的方法find ddr_learner位置在import程序加入位置
#再打开一个终端
conda activate virtual_env
roslaunch test_racing test_racing.launch
出现问题和之前一样,修改import部分
根据搜集数据训练自己的模型
这里采用提供的数据训练网络:下载训练数据
将文件解压缩到文件夹./sim2real_drone_racing/learning/deep_drone_racing_learner/data and then train the network
conda activate virtual_env
roscd deep_drone_racing_learner/src/ddr_learner
#修改文件train_model.sh中的train_data和checkpoint_dir参数指向目标路径(注意必须是绝对路径)
gedit train_model.sh
./train_model.sh #开始训练