1 引言
本人是先看了多个博客实现了:在ubuntu下建立完整的ardupilot开发环境。
该文是基于搭建完编译环境后,也就是搭建好ardupilot的仿真环境实现的。
在文章: 《Pixhawk无人机扩展教程(5)—SITL仿真模拟飞行:开发环境搭建》.中指出:
要进行SITL仿真飞行,需要分以下几步进行:
第一步:搭建Ardupilot开发环境;
第二步:ArduPilot 软件在环仿真SITL(SITL+MAVProxy);
第三步:ArduPilot 软件在环仿真SITL(SITL+Mission Planner或则SITL+QGC);
第四步:ArduPilot 软件在环仿真SITL(SITL+Gazebo三维仿真)
本文实现的是第二步ArduPilot 软件在环仿真SITL(SITL+MAVProxy),接下来我们就可以开始进行仿真
.。
官方文档:MAVProxy
官方解释:
1)MAVProxy是基于MAVLink系统的无人机地面站软件包
2)MAVProxy是一个强大的基于命令行的“开发人员”地面站软件。
3)它可以通过附加模块进行扩展,也可以与另一个地面站(如Mission Planner、APM Planner 2、QGroundControl等)进行补充,以提供图形用户界面。
2 实现步骤
第一步:打开终端,把路径转到ArduCopter目录下
cd ardupilot/ArduCopter
第二步:执行命令启动SITL仿真
注意:
若是第一次进行仿真,请先运行一下sim_vehicle.py -w,运行正常后,使用Ctrl+C kill这个程序的运行。然后执行如下命令:
sim_vehicle.py --console --map
启动选项解释:
--console:Load the GUI console module on startup.启动时加载GUI控制台模块。
--map:Load the moving map module on startup.启动时加载移动地图模块。
正常启动后,会出现3个窗口,Terminal、Console和Map 。
出现的问题:
1、注意:如果没有看到map和console窗口。
没有地图,没有控制台,也没有 MAVProxy 命令提示符。看到了这些错误:
Failed to load module: No module named ‘console’. Use ‘set moddebug 3’ in the MAVProxy console to enable traceback Failed to load module: No module named ‘map’. Use ‘set moddebug 3’ in the MAVProxy console to enable traceback
解决问题的帖子:https://github.com/ArduPilot/ardupilot/issues/13357
解决方法一:按照帖子提供的方法,您很可能错过了一些 mavproxy 依赖项,例如 python-wxgtk3.0 。请从http://ardupilot.github.io/MAVProxy/html/index.html检查你是否正确安装了 mavproxy 。
Linux下正确安装mavproxy:
对于基于 Debian 的系统(包括 Ubuntu、WSL、Raspian):
sudo apt-get install python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python3-pygame
pip3 install PyYAML mavproxy --user
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
当我安装python3-pygame,出现错误:python3-pygame 没有可安装候选,然后百度谷歌也搜不到解决办法,我就先把其他包安装上,然后用python-pygame代替了python3-pygame。
解决方法二:可能是由于MAVProxy,pymavlink,future,lxml这几个python包没有安装好,运行下面的命令安装:
sudo -H pip2 install --upgrade MAVProxy pymavlink future lxml