笔者小白一枚,意欲实现PX4“Hello Sky”仿真开发,在进行仿真模拟之前,需要在主机操作系统上安装开发人员工具链(Developer Toolchain)。本文记录了在ubuntu20.04环境下安装PX4固件的过程中出现的问题以及解决方法。本文所采用的解决方法都是来自网上大神们的智慧,笔者在实践中觉得有效就收集了下来,希望对读者有用。
关于常见的配置问题,PX4官网给出了常见疑难解答,如果不能解决,可以参考下面的方法。
笔者安装时间为2020年9月15日,根据官网中工具链安装的最新教程,仅仅安装PX4固件,步骤如下:
git clone https://github.com/PX4/Firmware.git --recursive
--no-nuttx
和--no-sim-tools
)bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools
make px4_sitl_default gazebo
git clone https://github.com/PX4/Firmware.git --recursive
这一步特别慢https://gitee.com/designer/PX4Firmware.git
。然后git clone该网站会飞快。.cnpmjs.org
,即https://github.com.cnpmjs.org
,然后git clone该网站会飞快,参考文章彻底解决git clone以及 recursive慢的问题export http_proxy=http://proxyAddress:port
export https_proxy=http://proxyAddress:port
git submodule update --init --recursive
.cnpmjs.org
,参考文章彻底解决git clone以及 recursive慢的问题make px4_sitl_default gazebo
报错-- Configuring incomplete, errors occurred!
……
ninja: build stopped: subcommand failed.
Makefile:200: recipe for target 'px4_sitl' failed
make: *** [px4_sitl] Error 1
……
FAILED: : && /usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTC_316db.dir/CheckFunctionExists.c.o -o cmTC_316db -lpthreads && :
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
sudo apt-get install libprotobuf-dev libprotoc-dev protobuf-compiler libeigen3-dev libxml2-utils python-rospkg python-jinja2
sudo apt-get install libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly -y
然后再运行
make px4_sitl_default gazebo
运行成功,可以看到gazebo中的无人机画面。打开QGroundcontrol,发现连接上PX4,控制无人机运动,gazebo中的无人机也会运动。
1.三者之间的区别cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递。sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。存储大小: cookie数据大小不能超过4k。...
介绍1.ButterKnife中,在你的View或布局上使用注释@Bind来标示,它会自动将ID字段和View进行绑定。class ExampleActivity extends Activity { @Bind(R.id.title) TextView title; @Bind(R.id.subtitle) TextView subtitle; @Bind(R.id.fo
Android是一种激动人心的开源移动平台,它像手机一样无处不在,得到了Google以及其他一些开放手机联盟成员(如三星、HTC、中国移动、Verizon和AT&T等)的支持,因而不能不加以学习,否则你承担不起为此付出的代价。好在Android开发入门很容易,即使没有Android手机都没关系,只需有一台可供安装Android SDK和设备模拟器的计算机即可。本章首先介绍如何安装所...
0 前言 CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之
BFC基本概念:块级格式化上下文。BFC的原理:在BFC这个元素的垂直方向的边距发生重叠;BFC的区域不会与浮动元素的box重叠,用来清除浮动;BFC在页面上是一个独立的容器,不受外部元素影响,也不影响外部元素;计算BFC高度的时候浮动元素也会参与计算。如何创建BFC? overflow: hidden/auto float: none position的值不是relative,static display:inline-block/table-cell 和tabl
在本文中,我们将与广大读者一起来仔细分析一下当前推动着软件定义的存储市场的力量都有哪些;软件定义的存储都有哪些不同的类型;以及每种不同类型的各自的优缺点。在当前的存储领域,恐怕再没有比“软件定义的存储”(SDS)这一概念术语更能引起更多的意见分歧了。鉴于关于软件定义的存储在业界尚未有一个被普遍广泛接受的定义,SDS都是存储供应商们所特定的。存储供应商们...
在生产环境中,有时候会遇到程序从开发到测试一切正常,但是将程序部署到线上后,一段时间之后程序无法向外提供服务,但是端口却正常暴露出来的情况。 最近在搞分布式服务时遇到了这个问题,服务框架选用dubbo,服务通过spring容器部署使用,底层默认用netty进行消息通信。服务由开发完成到测试完成一切正常,但是部署到线上一段时间后,服务服务提供服务,注册中心显示服务依然在在
概述程序:Program,是一个静态的概念进程:Process,是一个动态的概念进程是程序的一次动态执行过程, 占用特定的地址空间.每个进程都是独立的,由3部分组成cpu,data,code缺点:内存的浪费,cpu的负担线程:Thread,是进程中一个“单一的连续控制流程” (a single sequential flow ofcontrol)/执行路径线程又被称为
写经验少不了插图,无论是自己拍摄、从网络上下载还是从屏幕上截取,都需要对图片进行剪裁、缩放等处理,让所有图片都有大体一致的大小和比例。GIMP 就是个好工具,再结合使用快捷键,可以让经验插图的制作事半功倍。工具/原料 GIMP 2.8.14。 三组快捷键,四个步骤,快速剪裁 1 第一组快捷键:Ctrl + v 粘贴截图。 以屏幕截图为例,如图,按下键盘上的 Pr...
importosimportplatformimportsysfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *importnumpy as npimportmatplotlibmatplotlib.use("Qt5Agg")from matplotlib.backends.backend...
//一个section刷新 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:0]; [tableview reloadSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic]; //一个cell刷新 NSIndexPath *index
采用的基本搭建环境:SpringMVC、MyBatis、MySQL、tomcat Spring事务管理分解了传统的全局事务管理和本地事务管理的劣势,使得在任何环境中都可以使用统一的事务管理模型,你可以写一次代码,然后在不同的环境从你的代码里面配置不同的事务管理策略,Spring提供两种事务管理策略:一种是声明式事务管理策略,另一种是编程式事务管理策略,这里主要介绍声明式事务管理