我是一个刚开始接触px4的小白,因为社团的原因,需要学习px4来做飞控模拟。
在配置px4环境的过程中遇到过许多各种各样的波折,现在把我搭配px4环境的过程总结下来,希望能对刚开始学习px4而对如何搭配px4环境束手无策的人提供一点帮助。
一 Ubuntu系统的安装
设备信息
本人使用的电脑型号为联想拯救者y7000,单硬盘,系统为win10家庭版
关于虚拟机和双系统
本人曾经试过在虚拟机上配置px4,多次尝试之后都以失败告终,这里建议直接在电脑上安装ubuntu双系统,虽然这对一个以前没有安装ubuntu系统经验的小白来说是很困难且危险的事(我就试过把原来的win10系统搞崩了~~),但我依旧推荐你去试试,这对提高对计算机的了解很有帮助,而且只要在事前做好资料的准备,按照前人的步子走,搞崩电脑的情况也没那么容易发生(没错,我会把电脑搞崩很大原因是自己的莽和作死)。另外,直接在电脑上运行ubuntu系统也比在虚拟机上要高效的多,虚拟机终究只是一个过渡,通过虚拟机学习一些linux操作系统的指令就ok了。
启动盘的制作
本文将通过u盘启动的方式安装ubuntu系统。
(1)首先是关于镜像文件的选择:
阿木社区有提供配好px4环境的ubuntu系统资源,只需要按照其提供的教程就可以轻松地在电脑上安装一个配置好px4环境的ubuntu系统,这里附上链接:
阿木社区ubuntu镜像资源
可惜的是,这个资源目前还存在很多漏洞,有些非洲人(比如我)用这个资源制作的启动盘无法 被电脑检测,所以无奈之下只能自己去摸索。如果你制作的启动盘可以被检测,那么就不用再往下看了, 跟着阿木社区附带的教程走就行,跟我一样非的就需要继续往下看了。
非洲人专用ubuntu18.0.4资源:在官网下载即可,ubuntu18.0.4
(2)制作启动盘
准备好一个至少有5G内存的U盘,我们用rufus制作启动盘。
rufus下载:https://pan.baidu.com/s/1oM06MfEiPp0Y2nE3x_I44A ,提取玛:1111
打开rufus,选择你的u盘和镜像文件,
点击开始,选择以ISO写入,
点击OK即可。
注:制作完成后,在“我的电脑”右键单击你的U盘,点击硬件,查看一下你的u盘的第一个磁盘驱动器的名称,这在之后会有用,我的是Kingston DataTraveler 3.0 USB Device.
(因为是用同一款软件制作启动盘,所以名称应该是一样的)
(3)分配空闲分区
在网上下载diskgenius,打开genius之后,右键单击你的win10系统的最后一个磁盘,点击调整分区大小,
分配出足够的空间给ubuntu系统,我这里分配了98G,最好分配100G左右。
(4)设置U盘启动
重启电脑,在进入系统之前快速按下F2,进入bios。然后找到secure Boot,设置为Disabled;找到USB Boot,设置为Enabled;找到Fast Boot,设置为Disabled
由于不同型号的电脑的bios存在着差异,这里我不会详细说明,不过很多的选项都是大同小异的,在网上查找一下相关的博文,最后可以检测到启动盘即可。
(5)安装
重启电脑,在进入电脑之前迅速按下F12,进入Boot Manager(不同的电脑进入Boot manager的按键有所不同,请自行查找),这时如果你前面设置的没问题,那么你会看到一个选项
Linpus lite(你的U盘的第一个磁盘驱动器的名称),我的是Linpus lite(Kingston DataTraveler 3.0 USB Device)。移动到该选项并按下ENTER,进入u盘安装界面。
选择install ubuntu,进入ubuntu安装界面,选择好中文的键盘方式和语言,然后到选择安装方式,推荐选择最小安装;接下来是最重要的,选择安装类型,这里我们选其他选项
选择中文的安装界面,
选择中文的键盘布局,
可以不连wifi,
建议选择最小安装,
接下来是最重要的,安装类型选择其他选项,
然后就会进入分区的界面,因为我安装的时候忘记拍下来了,所以我这里鼠标点击的空闲分区的大小为0,而你在这里应该会看到你刚刚分配的空闲区间,注意千万不要碰这个空闲区间以外的其他区间,那些都是win10系统的磁盘区间,乱搞的话会把你原来的win10系统搞坏。可以通过区间的大小来确认哪个是你刚刚分配的空闲区间
接下来是分配空闲区间,选中你的空闲区间,再点击左下角的“+”号,
这样分配:
a.引导区:
大小 200M
分区类型 逻辑分区
分区位置 空间起始位置
用于 EFI引导分区
挂载点:/boot
b.交换分区
大小 与计算机物理内存相同,我是8G
分区类型 逻辑分区
分区位置 空间起始位置
用于 交换分区
挂载点: 无
c.根目录分区
大小 空闲空间的剩余大小
分区类型 逻辑分区
分区位置 空间起始位置
用于 Ext4日志文件系统
挂载点: /
(tip:不小心分错了的话,可点击右下角的还原,重新分配)
分好之后,应该和上面那幅图看起来一样的,然后点击你刚刚创建的efi引导分区,看清楚它的设备名,把下面的“安装启动引导器的设备”换成这个分区的设备名,随后点击现在安装。
安装成功后,开机时会进入系统选择界面,第一个就是ubuntu系统。
二 px4环境搭建
成功安装ubuntu后,现在开始搭建px4环境,尽量选在网最好的时候进行。
1.首先设置软件源
设置好合适的软件源可以提高之后的下载速度。
启动ubuntu系统,打开软件更新器,挑选软件源,
我一般选择阿里云的软件源。
2.安装gazebo模拟器和ros
通过按键:ctrl+Alt+T,打开终端。
运行:
wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh
下载px4官网提供的ros/gazebo安装脚本。
这时你通常会看到这个报错:
这是常见…的GitHub的raw.githubusercontent.com问题,
解决方法:
在终端输.入sudo vi /etc/hosts
, 然后按下i,进入文本的编辑模式,(注意:这个模式下按上下左右键都会视作输入,特别烦人),把下面的这些站点都粘贴进去
52.74.223.119 github.com
192.30.253.119 gist.github.com
54.169.195.247 api.github.com
185.199.111.153 assets-cdn.github.com
151.101.76.133 raw.githubusercontent.com
151.101.108.133 user-images.githubusercontent.com
151.101.76.133 gist.githubusercontent.com
151.101.76.133 cloud.githubusercontent.com
151.101.76.133 camo.githubusercontent.com
151.101.76.133 avatars0.githubusercontent.com
151.101.76.133 avatars1.githubusercontent.com
151.101.76.133 avatars2.githubusercontent.com
151.101.76.133 avatars3.githubusercontent.com
151.101.76.133 avatars4.githubusercontent.com
151.101.76.133 avatars5.githubusercontent.com
151.101.76.133 avatars6.githubusercontent.com
151.101.76.133 avatars7.githubusercontent.com
151.101.76.133 avatars8.githubusercontent.com
按一下Enter换行,随后同时按下:shift + Alt + :,再输入wq,按下enter,保存并退出。
此时,再运行上面的代码,便可以正常下载了。
下载完后,输入:bash
bash ubuntu_sim_ros_melodic.sh
,运行刚下载的脚本,下载和安装ros melodic版和gazebo。
等待下载完成。。。。。。
等待安装完成。。。。。。
四个小时终于好了。。。。。。
运行命令:
roscore
打开一个新的终端,输入:
rosrun gazebo_ros gazebo
如果成功运行,那就证明安装成功了,如果无法运行,那就要回头看一下,运行脚本的时候有什么错误发生。
这是我找到的错误:
脚本中的几行代码没有成功运行,这是我几次安装都遇到过的老error了,一般再把脚本运行一次就可以解决,下载过的东西不会i重新下载,所以很快就可以搞定。
再次运行上面的命令,出现
这里它提示我们命令无法运行,但通过安装某样东西就可以运行,大概率是我们在运行脚本的时候又有几条命令没有运行,你可以根据它的提示安装缺少的部分,不过我更推荐再运行一次脚本,因为一般我们需要的东西,只要脚本好好运行了就都会具备,脱离脚本的话很有可能会在解决了这个问题之后又出现新的麻烦。
第三次运行脚本后,再此输入命令,得到结果
弹出gazebo模拟器
则证明ros/gazebo安装成功,你会在你主目录看到一个名为catkin_ws的文件夹,ros的文件都放在这个文件夹里。
这一步基本上重新运行一次脚本就能解决大部分问题,如果总是出问题,那就想办法找个信号好的wifi或者改一下软件更新器里的软件源,只要下载的没问题,安装应该也问题不大。
3.下载px4源码,运行安装脚本
运行命令
bash
git clone https://github.com/PX4/Firmware.git --recursive
下载px4的源玛,等下需要运行的脚本也会一起下好。(一定找个网好的时候!!!)
这次的下载很快,然后运行命令
cd Firmware
bash
bash ./Tools/setup/ubuntu.sh
转到存放px4源玛的文件夹,运行存放在其中的ubuntu.sh脚本。
然后就会根据脚本的命令下载需要的东西,有一个特别要注意的东西就是在下载
gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2的时候,这个是交叉编译器的压缩包,下载的时候经常会卡顿,如果卡的太久没反应,建议Ctrl+c,停止运行脚本之后,重新运行脚本。
下载完成后,经常会出现这个错误
我一直没有解决这个问题,不过其实影响也不大,可以不用管。
脚本运行结束后,运行命令
sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
安装GCC,
运行命令
sudo apt-get install clang
安装Clang
现在,所有需要安装的东西都已安装完成,运行命令
cd Firmware
make px4_sitl jmavsim
如果能成功打开jmavsim模拟器
那么,恭喜你,px4的安装已基本成功
我们再试一下运行使用更加广泛的gazebo模拟器,运行命令
make px4_sitl gazebo
注:关于gazebo模拟器的运行,我之前搭配完环境后,常遇到这样一个问题,
终端报错:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
我之前一直不明白这个问题出现的原因,但这次我搭配好px4环境后运行gazebo模拟器时没有遇到这个问题,所以我感觉还是因为之前运行ubuntu.sh脚本的时候有几行没走成功导致的,这里附上我之前找到的解决方法的链接:https://blog.csdn.net/Sunchanghaosch/article/details/103616729,防止你遇到了这个问题。
这篇文章并不算是特别严谨的安装教程,更像是我在搭配px4的开发环境的过程的记录,我一开始想在虚拟机上搭,多次失败后,打算在实机系统上搭,然后就去研究怎么安装双系统,还不小心把windows系统搞崩了,好不容易安装好了ubuntu,下好了源玛,最后运行gazebo模拟器老是出错,直到最后找到了上面提到的某个大佬的博文才终于解决,当时看到gazebo模拟器弹出来时真的是激动的一批。。。。。后来发现自己再分区的时候给ubuntu系统分了太多空间,导致windows系统不够用,无奈之下,只能又把ubuntu给铲了,重装一遍,也因此有了这篇文章的诞生,但这次我感觉十分的轻车熟路,花了半天的时间再次安装好ubuntu并配置好了px4环境,感觉这是每个搞技术的人都被经历的过程,熬过去了就有提升了。
当然了,这篇文章是不可能涉及到所有你会遇到的问题,或者说我敢肯定,即使你用的电脑跟我是同一型号,也照着前文的步骤来走了,也还是会遇到很多前文没有提及的问题,需要自己去网上找出解决的方法
感谢那些帮助了我的博文的作者们,这里附上我参考过的文章:
参考1:https://www.cnblogs.com/sinferwu/p/12726833.html,
参考2:https://blog.csdn.net/Sunchanghaosch/article/details/103616729
参考3:https://blog.csdn.net/ly_222222/article/details/83591973
最后,希望我的文章能对你有所帮助,如果我写的内容有问题,欢迎在评论区指出。