搭建飞控开发环境:ubuntu下pixhawk开发环境搭建(PX4开发)

2023-05-16

搭建飞控开发环境:ubuntu下pixhawk开发环境搭建(PX4开发)

关于开发环境,可以选择Windows、Linux或者Mac,若选择Linux,建议安装Ubuntu16.04的版本,版本太旧会导致一些核心库文件无法下载。

博主最开始是用Ubuntu16.04,环境搭建过程是按照英文官网翻译后进行的,但是不知道为什么一直不顺畅,安装也要等待很久,尤其是在下载ubuntu_sim_nuttx.sh脚本后,注意博主因为是小白,不太会,所以不知道为什么脑袋抽风的是百度了打开/新建脚本的命令,自己复制粘贴了上文所说的脚本,运行后,重启(也是百度的重启指令,现在想想有点不太靠谱),重启开机之后ubuntu的界面一直就是黑屏,图片见博主其他的文章虚拟机开机黑屏,如果有“热心网友”知道这是什么问题,请您一定滴滴博主,万能的网友们啊!

 

后来百度了很多解决方法都不可行,于是,又是那一句话“没有什么问题是重装解决不了的”,所以博主重装了一个学姐给的ubuntu,是她们老师自己搞的,给学生用的,不用很复杂的导入,可以直接用,或许就是“这点方便”导致博主后来的尴尬。

这次是ubuntu14.04的了,搭建飞控环境的过程也不是那么的顺利,但是也比第一次流畅多了,但是问题就出在安装git一直安装不成功,这个也是百般试探解决方法,都不可取,感觉可能是因为ubuntu是老师自己搞的,可能缺了点什么东西,于是,又是万能的金句“没有什么问题是重装解决不了的”,

所以,博主就又新建的一个ubuntu,结果搭建环境很流畅,安装git也是很舒服的呢。

下面就和大家分享一下过程,当然很多经验都是借鉴融合了很多前辈的。

 

主要链接:

官方英文原文地址:

http://dev.px4.io/starting-installing-linux.html

Ardupilot的官方网站:

http://ardupilot.org/dev/docs/building-the-code.html

Ubuntu环境下Pixhawk原生固件PX4的编译:

https://blog.csdn.net/grand910616/article/details/52089039

PX4中文维基:Linux开发环境:

https://fantasyjxf.gitbooks.io/px4-wiki/content/1_Getting-Started/linux.html

PX4开发(1):ubuntu下pixhawk开发环境搭建:

https://blog.csdn.net/Egean/article/details/79016768

 

 

一,配置环境:(简单介绍一下博主的安装环境,因为发现不同的环境可能会产生不同的问题和不同的结果)

新手,所以没有采用双系统的方式,而是在Windows下安装了虚拟机。

Windows:win10 64位

虚拟机:VMware Workstation 12

Ubuntu: Ubuntu 16.04

具体下载安装方式网上都有很详细的教程,博主就不解释了。

 

二,编译环境的搭建(博主本来是按照官网的一步一步弄的,但是发现可能还是需要改变)

官方说明:

我们使用Debian / Ubuntu LTS 作为Linux的标准支持版本,但是也支持Cent OS 和 Arch Linux的发行版本

1、权限设置

英文官网提示:

Warning Never ever fix permission problems by using 'sudo'. It will create more permission problems in the process and require a system reinstallation to fix them.

中文翻译是:

警告:永远不要使用sudo来修复权限问题,否则会带来更多的权限问题,需要重装系统来解决。

 

最开始,博主也有点慌啊,因为不用sudo,下面的命令博主的ubuntu根本执行不了,ubuntu自动提示需要给权限才可以执行,所以博主只好不顾警告,采用sudo,幸好后面也没出现什么大问题。

 

打开终端(快捷键Ctrl+Alt+T)

把用户添加到用户组 "dialout":(输入下面的命令)

sudo usermod -a -G dialout $USER

 

可能还需要输入密码,输入密码,等待一会,就会有结果了,如果还是没有,可以再输入一遍上面的命令。

然后注销后,重新登录,因为重新登录后所做的改变才会有效。

或者博主下面这样,好像也没出问题

2、安装

官方说明:

更新包列表,安装下面编译PX4的依赖包。PX4主要支持的系列:

  • NuttX based hardware: Pixhawk, Pixfalcon, Pixracer, Crazyflie, Intel Aero
  • Snapdragon Flight hardware: Snapdragon
  • Linux-based hardware: Raspberry Pi 2/3), Parrot Bebop
  • Host simulation: jMAVSim SITL and Gazebo SITL

提示:安装Ninja Build System可以比make更快进行编译。如果安装了它就会自动选择使用它进行编译。

 

重启之后,再打开终端,输入以下命令:

 

sudo add-apt-repository ppa:george-edison55/cmake-3.x -y

sudo apt-get update

# 必备软件

sudo apt-get install python-argparse git-core wget zip \

python-empy qtcreator cmake build-essential genromfs -y

# 仿真工具

sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jre

sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y

 

注意这里有命令的最末是斜杆\,博主最开始也很疑问,以为是直接带上的,后来发现这是指代下一行的命令的,其实就是命令一行输入,只是可能因为排版原因,所以写在第二行,使用时直接将第二行的命令替代斜杆即可。例如:

sudo apt-get install python-argparse git-core wget zip \

python-empy qtcreator cmake build-essential genromfs -y

其实是

sudo apt-get install python-argparse git-core wget zip python-empy qtcreator cmake build-essential genromfs -y(都在一行上)

输入每个命令之后,可能都要等待一下,安装仿真工具时间比必备软件耗时更长一些

博主的结果如下图:

 

 

这个可能要等待长一点时间

 

3、基于NuttX的硬件

PX4不只支持我们的pixhawk,还支持其他的很多硬件,如高通骁龙飞控板,树莓派,派诺特等,所以基于NuttX的硬件就是指我们目标板子是pixhawk系列,参照下面方法配置。这里博主小白,最开始看官方英文版的没怎么太理解,还以为是全部都要安装,哈哈。

(1)删除管理代理

官方说明:

Ubuntu配备了一系列代理管理,这会严重干扰任何机器人相关的串口(或usb串口),卸载掉它也不会有什么影响:

sudo apt-get remove modemmanager

 

博主结果如下图:

(2)更新包列表和安装下面的依赖包。务必安装指定的版本的包

sudo apt-get install python-serial openocd \

flex bison libncurses5-dev autoconf texinfo build-essential \

libftdi-dev libtool zlib1g-dev \

python-empy -y

注意:斜杆说明如上文

博主结果如下图:

 

(3)在添加arm-none-eabi工具链之前,请确保删除残余

sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi gcc-arm-embedded

sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa

博主的第一个命令结果如下图:

这就很尴尬了,博主到网上找解决方法,所示要更新软件源:

然而,并没有什么用,如果有大佬看这里,知道是什么原因,请滴滴我!

所以,博主这一步就没有完成了,而是换了一个步骤:(但是如果网友朋友们是可以的,就按照官网的来哟,因为博主感觉自己这个也有点莫名其妙的成功了,不太懂)

1)输入命令sudo apt-get install lsb-core

博主的结果如下图:

 

2)可以检查arm-none-eabi 4.8.4是否安装成功,输入以下指令:

arm-none-eabi-g++ -v

博主的结果如下图:

就可以的,交叉编译环境搭建就搭建成功了啦!

 

如果有朋友知道我的疑问或者发现我的行文有什么错误,请滴滴我哟!

 

 

 

*****************************************************************************************************************

问题一:安装git不成功(噢,这个环境是ubuntu14.04的,一位老师自己弄的)

 

即使是更新软件源,输入命令sudo apt-get update

 

但是,问了ubuntu群里的大佬,说是更新软件源没用,得修改,但博主小白,不会,所以还是重装吧。嘤。

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

搭建飞控开发环境:ubuntu下pixhawk开发环境搭建(PX4开发) 的相关文章

  • 网络部分之Physical Layer

    2 Physical Layer Physical layer需要将 data 转换成 signal xff0c 所以需要 2 steps xff1a Step 1 xff0c 叫做 information coding xff0c 来对数
  • 树莓派 软键盘matchbox-keyboard 安装

    我的树莓派3b在第二步和第三步执行都 出现问题 但是顺序执行下去 最终虚拟键盘还是可以使用 1 安装必需文件 sudo apt get install libfakekey dev libpng dev y 2 安装编译虚拟键盘ato sa
  • Pi3 E14中国版 MySQL安装详细过程

    硬件环境 xff1a 树莓派 xff1a Pi3 E14中国版 Usb键鼠 10 1 1280 800电视机 xff08 集成HDMI xff09 wifi路由器 笔记本电脑 软件环境 xff1a 树莓派Linux raspberrypi
  • 在Ubuntu下进行安卓开发遇到“insufficient permissions for device: user in plugdev group; ”问题的解决办法

    开发环境 Ubuntu 16 04 IDE Android Studio 开发语言 Java 在接入设备进行联机调试的时候 遇到了这样的问题 insufficient permissions for device user in plugd
  • 谈谈技术在日常工作生活中的重要性

    我从事 技术方面 的工作也有10多年了 从最初的一个软件工程师 xff0c 也逐渐成长为项目经理 xff0c 部门经理 无论岗位怎么变换 xff0c 但是我还是没有离开技术方面的工作 xff0c 一直对技术的研究有很大热情 Csdn是非常棒
  • JSP中的网页编写格式——MIME TYPE?

    一 首先 xff0c 我们要了解浏览器是如何处理内容的 在浏览器中显示的内容有 HTML 有 XML 有 GIF 还有 Flash 那么 xff0c 浏览器是如何区分它们 xff0c 决定什么内容用什么形式来显示呢 xff1f 答案是 MI
  • 安卓开发05:Activity之间链接和传递参数

    Activity之间链接和传递参数主要通过Intent安卓的一个对象来实现 首先我们创建一个MainActivity xff1a java view plain copy print package com example androidt
  • 安卓开发06:布局-线性布局 LinearLayout

    LinearLayout把视图组织成一行或一列 子视图能被安排成垂直的或水平的 线性布局是非常常用的一种布局方式 请看一个布局例子 xff1a html view plain copy print lt LinearLayout xmlns
  • 可以带到2015年的几点思考

    1 自己的事情永远得自己出头 我从小就是个很独立的人 我不知道这种独立是什么时候培养起来的 xff0c 但清楚的记得一件事情 上小学那会儿 xff0c 有一年母亲生病了 xff0c 在医院 xff0c 家里就我一个人 xff0c 有时候 x
  • 纪事2011—中国,建大,家,我

    前言 2011 年就要真的成为我记忆了 xff0c 我一直在想该怎样总结我的2011 xff0c 我的2011留下的是什么 xff0c 收获的又是什么 xff0c 这365天的句号我该怎么画上 xff0c 是圆是扁 xff0c 还是有缺口
  • 用java做的一个小游戏—黑白反斗棋(适合菜鸟)

    用Java做的一个小游戏 xff0c 黑白反斗棋 xff0c 我玩过了5 5和10 10的 是学习之后做的 xff0c 不是自己原始开发的 import java awt Color import java awt FlowLayout i
  • 我的精神分裂——普通青年用二-B的方式走文艺的范儿

    一直以来都是以一种低沉的文笔在写些我的垃圾生活 xff0c 垃圾感想 xff0c 每次都会放那些特定的音乐 xff0c 那是一种心境 xff0c 那些音乐带着我的手在敲动 今天我想换种音乐 xff0c 猜猜我在放什么音乐 xff0c 很Hi
  • 读书随笔(1)——《计较是贫穷的开始》

    xff08 读书之后写感 xff0c 本该是读书之后自然的一个延续 xff0c 但我却很少这样了 xff0c 这不能说是一个极其坏的习惯 xff0c 虽不知道我究竟能不能改了 xff0c 但还是希望能尽可能的写写 xff0c 对自己想法有个
  • 2012年终随笔

    时至年终 xff0c 按我此前的惯例 xff0c 该写篇年终总结性的文章 xff0c 在之前末日说沸沸扬扬的时候 xff0c 我在想是否该早点写 xff0c 写个末日遗言什么的 xff0c 但还是没有写 xff0c 觉得如果真的末日来临 x
  • Tomcat多端口映射配置

    1 多端口映射配置 在server xml中 xff0c 找到 lt Connector gt 标签 xff0c 默认情况下会有一个 8080 端口的 lt Connector gt 标签 xff1a lt Connector port 6
  • 10个艰难的Java面试题与答案

    10个最难回答的Java面试题 这是我收集的10个较难回答的 Java 面试题 这些问题主要来自 Java 核心部分 不涉及 Java EE 相关问题 这些问题都是容易在各种 Java 面试中被问到的 1 为什么 wait xff0c no
  • Spring Security 5.x兼容多种密码加密方式

    1 spring security PasswordEncoder spring security 5不需要配置密码的加密方式 xff0c 而是用户密码加前缀的方式表明加密方式 xff0c 如 xff1a MD5 88e2d8cd1e92f
  • linux把进程或线程绑定到特定cpu核上

    绑定进程到cpu核上运行 查看cpu有几个核 使用cat proc cpuinfo 查看cpu信息 xff0c 如下两个信息 xff1a processor xff0c 指明第几个cpu处理器cpu cores xff0c 指明每个处理器的
  • Suse重启samba指令

    重启前先查看后台进程 linux jzp3 home w210412 ps aux grep smbd root 4400 0 0 1 2 308428 22372 Ss 18 23 0 00 usr sbin smbd D F root
  • uIP和LwIP背后的那个牛逼男人

    在公众号给大家介绍过Uip和LwIP xff0c 如果使用过这两种TCP IP协议栈 xff0c 那么你一定会熟悉一个人Adam Dunkels亚当 邓克尔 瑞典计算机科学院的教授 xff0c 这两种开源的协议栈都出自他手 xff0c 现在

随机推荐

  • 一张表看懂uIP和lwIP的区别

    我们给大家介绍过目前比较流行的开源TCP IP开源协议栈uIP和lwIP 这两种都是由瑞典计算机科学研究院开发的 xff0c 广泛应用于嵌入式系统中 因为全功能的TCP IP协议是很庞大的 xff0c 在资源紧张的嵌入式上是很难实现的 xf
  • 小猿助你freeRTOS驱动开发

    主要介绍在移植好的基于NXP之kinetis K64 43 freeRTOS平台上添加Modbus驱动 对freeRTOS不懂或者移植不懂的可以看看之前公众号的文章 准备工作 xff1a 1 xff0c 基于之前移植好的K64 43 fre
  • 告诉过你PID很重要,你不听

    曾经在公众号 xff0c 多次提到在控制系统中经常用到的PID控制 xff0c 也在培训中讲过PID的应用和在软件中的实现以及调试 xff0c 但是现实中还是有很多工程师对PID很陌生 xff0c 如果你是搞电力电子 xff0c 电力变换
  • Windows 使用 VNC 远程连接 Ubuntu 桌面版

    前言 工作需要使用 Windows 远程桌面版的 Ubuntu xff0c 原来使用的 TeamViewer 现在经常被检测为商业用途 xff0c 就很麻烦 因此 xff0c 现在转战使用 VNC 进行远程 使用步骤参考地址 xff1a 法
  • IP第十天笔记 - - - BGP

    BGP 边界网关协议 AS 自治系统 由单一机构或组织管理的一系列IP网络及其设备的集合 1 网络范围太大 xff0c 协议跑不过来 xff0c 需要进行划分 xff1b 2 自治管理 为了方便区分和标定不同的AS xff0c 我们给每一个
  • Makefile(1)

    1 前言 有幸拜读了http blog csdn net haoel article details 2888 http www cnblogs com Anker p 3242207 html http www groad net bbs
  • 解决vnc客户端不能拷贝粘贴

    在vnc窗口里输入如下命令 vncconfig nowin amp 在一个node的vnc里发现vncconfig nowin amp 不工作 xff0c 但是vncconfig amp 工作 https blog csdn net qq
  • shell的等号两边不能有空格

    shell的等号在赋值的时候两边不能有空格 xff0c 在比较的时候两边必须有空格
  • uCOS上下文切换,PendSV中断函数

    摘自 xff1a http www stmcu org module forum thread 384142 1 1 html 介绍一 xff1a 移植详解1和2中主要讲了移植需要用到的基础知识 xff0c 本文则对具体的移植过程进行介绍
  • Eigen稀疏线性求解

    在 Eigen 中 xff0c 当系数矩阵稀疏时 xff0c 有多种方法可用于求解线性系统 由于此类矩阵的特殊表示 xff0c 应特别注意以获得良好的性能 有关 Eigen 中稀疏矩阵的详细介绍 xff0c 请参阅稀疏矩阵操作 此页面列出了
  • Eigen关于稀疏矩阵

    处理和解决稀疏问题涉及各种模块 xff0c 总结如下 xff1a 模块 头文件 内容 SparseCore include lt Eigen SparseCore gt SparseMatrix 和 SparseVector 类 矩阵组装
  • Eigen构造稀疏矩阵

    Eigen构造稀疏矩阵 xff0c 这里我们对稀疏矩阵采用三元组的存储方式 xff0c 即用 i j value i j 这样的组合把非零元的位置和值表示出来 废话不多说 xff0c 我们直接上例子 include 34 iostream
  • cmake CMakeLists.txt 命令 add_compile_options、add_definitions、target_compile_definitions、build_command

    add compile options 增加源文件的编译选项 add compile options lt option gt 为当前路径和下层路径的目标增加编译器命令行选项 xff0c 选项在此命令被调用后添加 查看文档中关于路径和目标的
  • linux curl编译 arm交叉编译

    虚拟机环境 ubuntu12 04 开发板 EasyARM i MX280A xff1a 64m sdram 128M nandflash 运行官方提供的Linux 2 6 35 3内核linux 首先 xff0c 如果需要使用curl解析
  • c++中 双冒号作用

    1 作用域符号 的前面一般是类名称 xff0c 后面一般是该类的成员名称 xff0c C 43 43 为例避免不同的类有名称相同的成员而采用作用域的方式进行区分 如 xff1a A B表示两个类 xff0c 在A B中都有成员member
  • 解决:CUDA安装程序不成功

    解决 xff1a CUDA安装程序不成功 报错如下分析原因解决方法 报错如下 分析原因 由于电脑里的原版本是11 2 xff0c 可能降到11 0会出现错误 xff0c 因此安装不成功 xff01 解决方法 在 Driver compone
  • linux shell awk BEGIN END 处理文本之前之后执行操作 简介

    目录 简介 1 最简单的action 既没有pattern 有没有options 2 awk是逐行处理 2 1 输出整行 2 2 输出最后一列 2 3 输出倒数第二列 3 pattern 3 1 begin 简单语法 3 2 不添加输入文件
  • ROS使用自定义的msg发送topic

    1 新建工作空间 span class token function mkdir span p catkin ws src span class token function cd span catkin ws catkin make 2
  • snorkel提取关系实验一——英文新闻里面提取配偶

    参考https github com HazyResearch snorkel 代码地址 xff1a https github com HazyResearch snorkel blob master tutorials intro Int
  • 搭建飞控开发环境:ubuntu下pixhawk开发环境搭建(PX4开发)

    搭建飞控开发环境 xff1a ubuntu下pixhawk开发环境搭建 xff08 PX4开发 xff09 关于开发环境 xff0c 可以选择Windows Linux或者Mac xff0c 若选择Linux xff0c 建议安装Ubunt