ubuntu下ardupilot编译环境搭建与仿真

这篇具有很好参考价值的文章主要介绍了ubuntu下ardupilot编译环境搭建与仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

虽然怒飞老师给出了详细的windows下的开发环境的搭建教程。但是对于开发者而言,最好的系统环境还是在Linux系统下,尤其一些顶层开发下,还是用ROS香呀,所以我将尝试在ubuntu下建立完整的ardupilot开发环境。这篇文章就作为这个尝试的第一篇笔记,希望可以帮助到之后的朋友。

一、ardupilot 源码下载

由于在github上下载较慢(我懒,还没弄过下载加速),所以建议使用gitee。
ubuntu下ardupilot编译环境搭建与仿真直接搜索一下就有了,搬运日期很新鲜,nice!
在自己喜欢的目录下,进行clone (这里默认大家都安装好了git并熟悉git的基本使用,如果不清楚的同学可以看这里Git教程)

git clone https://gitee.com/gu-kaifeng/ardupilot.git

不出意外的很快就下载完了。

然后我们基于目前最稳定的分支来新建一个分支“new_one”
然后需要更新子模块(这一步很容易失败,得想办法多试试;实在不行可以先用已经更新好的代码。比如我就失败好多次了,为了尽快弄通整个流程,我就用了以前的旧代码,它的子模块已经更新好了)

cd ardupilot
git checkout -b new_one Copter-4.0.7
git submodule update --init --recursive

最后一行命令其实也可以不用弄,在编译环境建立的时候,脚本会给我们自动更新子模块。

二、编译环境建立

ardupilot的开发人员已经帮我们写好了编译环境的一键配置脚本

./Tools/environment_install/install-prereqs-ubuntu.sh -y

有大佬指出这样才能正常运行(注意要先切到environment_install文件下哈)

chmod +x install-prereqs-ubuntu.sh

我自己好像都试过,好像都可以。不重要,反正上面两个总有一个ok。

!!!不过由于国内网络特性,我们需要在修改一些东西。
这里,参考monte3card大佬在知乎的文章。

  • 脚本中首先通过apt-get安装包,但是在国内由于众所周知的原因,默认的安装源下载较慢或是无法下载,安装前需要将apt-get更换为国内安装源。具体可以参考link(实际上,一开始装ubuntu时,我已经在系统设置中将源设置为了国内镜像源,所以这一步我并没有再做,大部分朋友应该也不用)
  • 脚本中使用pip2安装需要的包,同样需要更换为国内源,具体可以参考link
  • 在安装个过程中会安装ARM交叉编译工具链gcc-arm-none-eabi-6-2017-q2-update-linux安装包下载地址,在脚本中默认使用wget下载,速度奇慢无比,可以事先下载(迅雷下起来很快).
    并且自行解压/opt目录下(见下面命令),这样安装的时候会跳过下载,节省很多时间。
tar -jxvf xx.tar.bz2 -C /opt

按照monte3card大佬的说法上述一切顺利的话,最后只用像如下一样配置路径就好,ardupilot 官网也是这么写的。(注意,这个环境的配置命令的作用,如果不重启电脑的话,它只再当前terminal中有效。重启电脑后才算完全生效)

. ~/.profile

至此便大功告成!

仿真

完成了上述的编译环境搭建后,ardupilot的仿真环境也就搭建好了。接下来我们就可以按照官方的说明开始进行仿真。

  • 第一步:
    将目录切换到需要仿真的对象文件夹下
    eg:
cd ardupilot/ArduCopter
  • 第二步:若是第一次进行仿真,请先运行一下sim_vehicle.py -w,运行正常后,使用Ctrl+C kill这个程序的运行。然后执行如下命令:
sim_vehicle.py --console --map

就可以出现仿真界面了:我们可以在终端输入相应的指令来控制飞机,然后再console和map里观察飞机的飞行状况

ubuntu下ardupilot编译环境搭建与仿真

经验教训


这里是一些自己无意踩到的坑,记录一下。
我自己在最后实际上遇到了意外,这些情况各位看官可能并不会遇到,但是我自己是遇到了。所以我就自己记录一下。

坑1

输入飞控固件的配置指令:

./waf configure --board fmuv3

等着我的不是finished successfull,而是:
ubuntu下ardupilot编译环境搭建与仿真
然后我第一反应是这个好像在怒飞老师那里看见过,果然被我翻到了。ubuntu下ardupilot编译环境搭建与仿真但是重启并没有解决我的问题。那我猜测肯定是交叉编译环境没有成功地添加路径。于是我找到了这个帖子link
按照这个帖子的方法,和我自己的尝试,进行如下操作:

  1. 打开这个文本
vim /etc/profile

  1. 在文本最后添加这行(注意需要在最后一行代码后空一行再添加,不然会失败)
export PATH=$PATH:/usr/lib/gcc/gcc-arm-none-eabi-4_9-2014q4/bin
  1. 保存退出后,使能环境变量
source /etc/profile

此命令只在当前终端有效,若需要在其它终端中使用,需要重启计算机。在当前终端执行我们熟悉的waf命令后,everthing is ok! 最棒的是原来这台在windows环境下编译需要花费4min30s左右,而现在在ubuntu系统下,编译时间缩短为了1mim30subuntu下ardupilot编译环境搭建与仿真

坑2

在运行脚本时,我犯了两个致命错误,在编译上不会有问题,但是在进行仿真运行就让我找了很久的问题。

  • 错误1:在配置pip国内镜像源时,把第一行的[global]没复制全,导致pip一直报错: ConfigParser.MissingSectionHeaderError: File contains no section headers.

  • 解决方法:把pip的那个配置文件 .pip/pip.conf 里的错误改正

  • 错误2:既然已经配置好了国内的高速镜像源,我还开了代理,解决了错误1后,它又一直报错:TypeError: unsupported operand type(s) for -=: ‘Retry’ and ‘int’

  • 解决方法:关闭代理通道,重启电脑

解决这两个问题后再重新操作一下整个编译环境的配置过程,最终得到了完美解决


参考

1.https://zhuanlan.zhihu.com/p/61616055
2.https://ardupilot.org/dev/docs/building-setup-linux.html#building-setup-linux
3.https://blog.csdn.net/yk150915/article/details/80117082文章来源地址https://www.toymoban.com/news/detail-422025.html

到了这里,关于ubuntu下ardupilot编译环境搭建与仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu18.04搭建AirSim+ROS仿真环境

    AIRSIM在UBuntu 18.04上构建的官网文档 AIRSIM是依赖于UE4引擎实现的,因此在安装AIRSIM之前要安装UE4引擎。 在Ubuntu上安装UE4引擎需要从源文件进行编译,因此我们需要访问UE4的github仓库。但想要访问UE4的github仓库,我们就必须建立github与UE4许可的链接,否则直接访问UE4的github仓库时就

    2023年04月08日
    浏览(80)
  • (最新)ubuntu搭建PX4无人机仿真环境(1) —— 概念介绍及环境建议

    搭建PX4仿真环境一个有挑战性的过程,如果没有一个有经验的人来带的话会走很多弯路。我在搭建PX4仿真环境的时候,不知道Linux、ROS、git,语言也只会一个C语言,没有任何无人机基础,纯小白一个,靠着自学与网上的各种教程,花了一两个月才搭好基本的仿真环境框架。我

    2024年02月08日
    浏览(41)
  • ubuntu20.04搭建arm交叉编译环境

    源码下载地址:Downloads | GNU-A Downloads – Arm Developer 要根据目标系统选择编译器版本,我的主板: aarch64bit体系结构(arm 64bit),linux内核GNU操作系统=GNU/Linux操作系统(简称linux) 大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存

    2023年04月24日
    浏览(37)
  • ubuntu搭建PX4无人机仿真环境(3) —— ubuntu安装QGC地面站

    前言 QGC ( QGroundControl) 是一个开源地面站,基于QT开发的,有跨平台的功能。这次安装是基于Ubuntu 18.04,QGC v4.2.6 但也适用于其他ubuntu发行版,QGC 版本也可以自行选择,如果发现不行可以降版本。 搭建仿真环境系列教程 👇 ubuntu搭建PX4无人机仿真环境(1) —— 概念介绍 ubuntu搭

    2024年02月16日
    浏览(31)
  • (最新)ubuntu搭建PX4无人机仿真环境(2) —— MAVROS安装

    MAVROS是一个ROS(Robot Operating System)软件包 , 有了它就可以让ROS与飞控通信。这次安装是以ubuntu 18.04 (ROS Melodic)为例,也适用于其他版本 。安装之前确保 ROS 安装成功,没安装的可以看我仿真系列教程。 (注:安装方式有二进制安装和源码安装两种方式,源码安装需要从Git

    2024年02月09日
    浏览(35)
  • (最新)ubuntu搭建PX4无人机仿真环境(3) —— ubuntu安装QGC地面站

    前言 QGC ( QGroundControl) 是一个开源地面站,基于QT开发的,有跨平台的功能。这次安装是基于Ubuntu 18.04,QGC v4.2.6 但也适用于其他ubuntu发行版,QGC 版本也可以自行选择,如果发现不行可以降版本。 搭建仿真环境系列教程 👇 ubuntu搭建PX4无人机仿真环境(1) —— 概念介绍 ubuntu搭

    2024年02月09日
    浏览(34)
  • Ubuntu上搭建ARM Linux GCC交叉编译环境

    在Ubuntu操作系统上搭建ARM Linux GCC交叉编译环境是为了能够在x86架构的主机上编译运行适用于ARM架构的程序。本文将介绍详细的步骤以及相应的源代码。 安装必要的软件包 首先,我们需要安装一些必要的软件包,包括GCC、GNU Binutils和GDB。打开终端,运行以下命令来安装这些软

    2024年02月02日
    浏览(35)
  • 基于Ubuntu20.04搭建OpenHarmony v3.0.6的qemu仿真环境

    出于个人兴趣,也出于对国产操作系统的好奇,想尝试一下以LiteOS为内核的Openharmony。但过程相当不顺利,主要原因是官方文档内容组织的不敢恭维。挺好的东西,不把说明书写好,让用户怎么用?我研究的核心问题就一个:如何在基于Qemu仿真的Openharmony中输出一个hello worl

    2024年02月09日
    浏览(31)
  • ubuntu环境下gcc-arm交叉编译环境的搭建(ARM32 8.2)

    1.在arm官网下载gcc-arm 8.2的版本(下载arm32架构的x64上运行的版本),网址如下 https://developer.arm.com/downloads/-/gnu-a 图1 从ARM官方下载aarch32架构的交叉编译器   2.拷贝下载的交叉编译器到ubuntu系统的/opt/pkg/gcc_linaro目录,如下图所示: 图2 拷贝arm交叉编译器到gcc安装目录   3.解压gcc到

    2024年02月09日
    浏览(39)
  • x86架构ubuntu 搭建arm64交叉编译环境及QT编译arm64架构工程

    背景:由于最近项目需要做国产系统适配,很多软件需要重新编译以适配不同架构CPU。 环境: 1、主机win10 64bit   vmware虚拟主机ubuntu1804 64bit 2、vmware虚拟主机已经安装了qt5.14.2及qt_create4.11.1 一、C/C++程序交叉编译 1、交叉编译环境搭建 ①选定编译工具aarch64-linux-gnu ②安装交叉

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包