前言
Erle_copter仿真无人机飞行器相比于ardone仿真无人机飞行器的优势在于,Erle_copter更偏底层控制一点,使用Erle_copter仿真,可以和自己组装的真机无人机相匹配,而ardrone仿真无人机飞行器更接近于真机的ardrone或bebop,如果想要对真机ardrone或真机bebop进行修改,会有一定的难度,且购买成品无人机比自己组装无人机价格更贵。
安装前提
- 操作系统:ubuntu16
- ROS:kinetic
- Gazebo:8.6
一、安装gazebo8
1 | $ sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' |
二、安装ros kinetci(不安装desktop-full版本)
1 | $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' |
三、安装必要ROS程序包
1 | $ sudo apt-get install ros-kinetic-gazebo8-msgs |
四、安装erle_copter仿真环境
安装基础包
1 | $ sudo apt-get update |
安装MAVProxy依赖
1 | $ sudo apt-get install g++ python-pip python-matplotlib python-serial python-wxgtk2.8 python-scipy python-opencv python-numpy python-pyparsing ccache realpath libopencv-dev -y |
如果安装python-wxgtk2.8报该错误:E: Package ‘python-wxgtk2.8’ has no installation candidate
则按下面方法即可解决
1 | $ sudo add-apt-repository ppa:nilarimogard/webupd8 |
安装MAVProxy
1 | $ sudo pip install future |
下载相关程序包
1 | $ git clone https://github.com/ldgcug/erlecopter_gazebo8.git |
安装ArUco
1 | $ cp -r ~/erlecopter_gazebo8/aruco-1.3.0/ ~/Downloads/ |
下载ardupilot到特定文件夹
1 | $ mkdir -p ~/simulation; cd ~/simulation |
创建ros工作空间及初始化工作空间
1 | $ mkdir -p ~/simulation/ros_catkin_ws/src |
拷贝相关源码到工作空间内
1 | $ cp -r ~/erlecopter_gazebo8/ardupilot_sitl_gazebo_plugin/ ~/simulation/ros_catkin_ws/src/ |
拷贝fix-unused-typedef-warning.patch文件到工作空间内
1 | $ cp -r ~/erlecopter_gazebo8/fix-unused-typedef-warning.patch ~/simulation/ros_catkin_ws/src/ |
安装drcsim7(ubuntu16不支持apt-get,需使用源码下载安装)
1 | $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu xenial main" > /etc/apt/sources.list.d/ros-latest.list' |
拷贝drcsim相关包到工作空间
1 | $ cp -r ~/erlecopter_gazebo8/osrf-common/ ~/simulation/ros_catkin_ws/src/ |
source一下
1 | $ source /opt/ros/kinetic/setup.bash |
修改 has_binary_operator.hpp文件(为避免包BOOST_JOIN错误)
1 | $ sudo gedit /usr/include/boost/type_traits/detail/has_binary_operator.hpp |
点击此处,拷贝其中的has_binary_operator.hpp代码,并粘贴至当前的has_binary_operator.hpp 文件中
主要的修改是在源文件中的两处位置添加了 #ifndef Q_MOC_RUN
和#endif
下载相应包进行替换(替换掉原工作空间的drcsim、hector_gazebo、gazebo_ros_pkgs) 链接: https://pan.baidu.com/s/1TufCNJ8z5TxyC5rnZhi56A 提取码: usjz 下载文件主要包含三个文件,分别是drcsim、hector_gazebo、gazebo_ros_pkgs,将它们解压,并将(drcsim、hector_gazebo、gazebo_ros_pkgs)复制到~/simulation/ros_catkin_ws/src目录下,将前面的三个文件进行替换
编译工作空间
1 | $ cd ~/simulation/ros_catkin_ws |
下载gazebo模型
1 | $ mkdir -p ~/.gazebo/models |
五、启动erle_copter
启动ArduCopter(一个终端)
1 | $ source ~/simulation/ros_catkin_ws/devel/setup.bash |
在另一个终端启动launch
1 | $ cd ~/simulation/ros_catkin_ws/ |
在第一个终端上输入如下命令:
1 | $ param load /[path_to_your_home_directory]/simulation/ardupilot/Tools/Frame_params/Erle-Copter.param |
用你的实际目录替换掉上面的path_to_your_home_directory,如我的是:param load /home/cug/simulation/ardupilot/Tools/Frame_params/Erle-Copter.param
起飞测试,仍然在第一个终端执行
1 | $ mode GUIDED |
说明:在执行了arm throttle后,尽快输入takeoff 2 已完成起飞
官网安装网址:
http://docs.erlerobotics.com/simulation/configuring_your_environment
Github安装网址:
https://github.com/ldgcug/erlecopter_gazebo8/blob/master/README.md
总结
在前面的安装过程中,中间有一个步骤是从百度云盘上下载了三个文件夹,并将之前的工作空间内的相关文件夹进行替换,之所以这样做,是因为在将文件上传到github的过程中,好像有部分文件丢失,因此下载了这缺失的部分文件,在编译过程中会报错,因此将文件解压并上传到百度云盘上以解决该问题
第二个是还是从别人的github上git程序包,原因如上,但是也压缩上传到百度云,下载后替换掉没有换,由于这个不在工作空间内,因此不影响编译,但是在运行时,会报权限的相关错误。因此还是从别人的github上下载较好。