模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

3047查看 | 2回复

Pixhawk无人机扩展教程(5)---SITL仿真模拟飞行:开发环境搭建

[复制链接]
发表于 2020-7-4 19:10:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

Pixhawk无人机扩展教程(5)---SITL仿真模拟飞行:开发环境搭建 无人机,仿真,多旋翼,飞控,模拟器 作者:RXDlwE 3125

当然直接使用./waf --targets bin/arducopter --upload就可以完成编译和下载。
./waf --targets bin/arducopter --upload
关于ubuntu系统搭建开发环境,可以查看官网链接。还可参考我们公众号上另外一篇文章 在Linux/Ubuntu系统下设置Ardupilot构建环境





评分

参与人数 1牛币 +5 收起 理由
|肅| + 5 很给力!

查看全部评分

发表于 2021-1-9 15:24:24 | 显示全部楼层
请问那个视频地址在哪呀
回复 支持 反对

使用道具 举报

发表于 2021-3-10 13:34:49 | 显示全部楼层
你好,我在ubuntu上运行copter SITL仿真,使用mission planner作为GCS,在我飞行一定距离后,在GCS HUD上发现载具姿态不稳定,总是来回跳,陀螺传感器原始数据不不稳定,这是什么问题呢?,非常感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!