|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
前面安装好了Dronrkit-Pyhton,并且测试飞控连接成功后,肯定会迫不及待的想通过编写python程序控制pixhawk飞行。但是,心急吃不了热豆腐!如果直接真机试飞,多数情况下都会以失败炸机告终!因为你没有验证自己代码的合理和正确性,怎么办呢?这里就涉及到我们接下来几节教程介绍的仿真问题。先看一下实际运行效果:
仿真的目的就是在电脑上模拟出一个环境,验证编辑或则修改后的代码确实有我们所期望的那样。
网上的多数教程,都是直接安装Dronekit-SITL开始进行仿真,这是因为很多作者都是在笔记本上验证,没有在真正的树莓派上实施。然而事实确是:DroneKit-SITL目前仅为Mac,Linux和Windows提供x86二进制文件。不能在树莓派这样的ARM平台上运行它。那树莓派上的代码如何在SITL运行呢?别急,下面逐步介绍一种测试树莓派里面的代码仿真的方法:因为树莓派不能安装SITL仿真软件,我们还是需要在自己的笔记本 Ubuntu系统上安装SITL,然后在树莓派上执行Dronekit示例,在笔记本SITL上看到运行模拟器效果。仿真结束,修改连接地址,树莓派即可控制飞控进行飞行。
要进行SITL仿真飞行,需要分以下几步进行:
第一步:搭建Ardupilot开发环境;
第二步:ArduPilot 软件在环仿真SITL(SITL+MAVProxy);
第三步:ArduPilot 软件在环仿真SITL(SITL+Mission Planner或则SITL+QGC);
第四步:ArduPilot 软件在环仿真SITL(SITL+Gazebo三维仿真)
其中第一步和第二步是必须做的,后面两步有兴趣可以研究研究。
这节教程做第一步:搭建Ardupilot开发环境
我们使用的系统是Ubuntu16.04,搭建过程如下,其他Ubuntu系统没有一一测试,想必都是一样的。
首先更新系统,安装git:
sudo apt-get update
sudo apt-get install git
sudo apt-get install gitk git-gui
然后输入以下命令:
git clone https://github.com/ArduPilot/ardupilotcd ardupilotgit submodule update --init --recursive
之后,大部分网上教程都是运行对应的sh执行脚本开始安装所需的各种依赖包。
Tools/scripts/install-prereqs-ubuntu.sh-y
如果按照网上教程,多半会遇到以下问题:
运行命令 Tools/scripts/install-prereqs-ubuntu.sh-y会出错,提示没有这个文件。因为新版本sh文件目录有所改变,现在集中在/ardupilot/Tools/environment_install中,对应ubuntu安装文件依然是install-prereqs-ubuntu.sh。另外需要注意的是这个sh文件默认是没有运行权限的,需要通过chmod +x install-prereqs-ubuntu.sh增加运行权限才可以执行。
在国内由于众所周知的原因,默认的安装源下载速度慢得让人怀疑人生。。。中途会报错无法安装。所以安装前需要将apt-get更换为国内安装源。具体可以参考这篇教程 ubuntu 执行apt-get update报错Failed to fetch
脚本中使用pip2安装需要的包,同样需要更换为国内源,具体可以参考PIP 更换国内安装源
在安装个过程中会安装ARM交叉编译工具链gcc-arm-none-eabi-6-2017-q2-update-linux,在脚本中默认使用wget下载,速度奇慢无比,可以事先下载并且自行解压到/opt目录下,这样安装的时候会跳过下载,节省很多时间。
当然,如果有用付费VPN,或则有能力翻Qiang的朋友,不受网速限制,以上问题基本可以忽略。
上述问题都注意到的话,整体安装过程应该是比较顺利的。之后就需要配置路径:
Tools/environment_install/install-prereqs-ubuntu.sh-y. ~/.profile
到此Ardupilot的开发环境就已经安装好,使用中还要注意以下问题:
ardupilot源码已经转向Waf工具编译,所以编译指令有所区别,并且需要注意一定在ardupilot安装的根目录执行,这点与make不同。
waf编译前需要配置飞控运行板卡,但是之前网上教程所提到px4-v1、px4-v3等板卡名称都已经被替换,可以使用./waf list_boards命令查询支持板卡对应的名字。
例子,编译支持pixhawk1飞控板的多旋翼飞控的流程:
cd ardupilot
./waf configure--board Pixhawk1
./waf copter
当然直接使用./waf --targets bin/arducopter --upload就可以完成编译和下载。
./waf --targets bin/arducopter --upload
关于ubuntu系统搭建开发环境,可以查看官网链接。还可参考我们公众号上另外一篇文章 在Linux/Ubuntu系统下设置Ardupilot构建环境
|
评分
-
查看全部评分
| |