当前位置: 首页 > 工具软件 > PX4-Firmware > 使用案例 >

记录我重新安装ORBSLAM2和PX4的过程

康照
2023-12-01

1、背景:今天卸载了Ubuntu16.04,重新装了一个Ubuntu18.04,成功做完系统之后需要把之前的备份恢复。我的备份比较粗暴,就是直接把/home里的文件都先复制到Windows下。我的主要软件有两部分:一部分是ORBSLAM2有关的文件,另一部分是PX4有关的文件。

2、准备工作:首先联网、改背景、设置root密码、更新源为清华源(默认源的服务器在欧洲,下载速度慢)、安装Flash插件、安装vim、安装gcc、安装cmake、安装git;

3、恢复ORBSLAM2相关的备份:
(1)恢复Clion的备份:将clion的目录复制回home下,运行clion.sh重新激活;
(2)恢复OpenCV3:
先下载opencv的依赖项,注意一定要安上vtk的依赖项之后才能用viz,vtk的版本也很重要,我是用的vtk6安装的opencv3.4.5。另外并不能直接用之前编译好的文件安装,于是我重新下载了一个源代码,重新编译,再安装就行了,默认是安到/usr/local/lib中;
(3)恢复Eigen:安装opencv的时候已自带安装了,可以locate一下查看一下有没有eigen3
(4)恢复sophus:sophus是在eigen基础上安装的,所以不需要依赖项,注意一定要下载非模版类的sophus,我这里直接把备份的目录拷贝过来,编译进度5%的时候报错so2.cpp第32行有问题,打开该文件,修改为:
unit_complex_.real(1.);
unit_complex_.imag(0.);
再编译就通过了,有可能是gcc的版本太高造成的(我这里是gcc7),然后再sudo make install就安装完成了;
(5)恢复pangolin备份:之前的备份怎么着都不能通过编译,所以新下载了一个,就通过编译了,原来是Ubuntu16.04给用老版本的pangolin,而Ubuntu18.04给用新版本的pangolin;
(6)恢复ORBSLAM2备份: 重新下载一个ORBSLAM2,运行有错误,是因为orbslam2对Ubuntu18.04支持不太好的原因造成的,按照这篇加个头文件就行了:

www.mamicode.com/info-detail-1773781.html

运行时若提示:
Failed to load module “canberra-gtk-module ”
安装gtk即可:
sudo apt-get install libcanberra-gtk-module

(7)恢复evo备份:从github上重新下载evo,先安装pip,然后安装evo,安装完重启电脑,发现能出数但画不了图,安装一个python-tk包,再运行就好了。至此,完全恢复ORBSLAM2的相关内容。

4、恢复PX4有关的备份:
经过上一步琐碎的操作,我放弃了直接把备份拷贝过来再运行的策略,直接从网上重新下载px4。
下载并运行脚本ubuntu_sim_ros_melodic.sh,系统会自动同时下载ROS melodic、gazebo 9、MAVROS。正好顺便下载了ROS melodic,注意它不适用于ubuntu16.04。

中途提示:
ERROR: your rosdep installation has not been initialized yet. Please run : sudo rosdep init, rosdep update
按照要求运行了该组命令,又出错:
Error: There already is a workspace config file .rosinstall at “src”. Use wstool install/modify.
运行如下命令:wstool init src
接着运行,又出现如下错误:

正在连接raw.githubusercontent.com(raw.githubusercontent.com)|151.101.228.133|:443…失败:拒绝连接。

输入命令:
wget - -no -check-certificate raw.githubusercontent.com

再次运行脚本,依然出错。

于是换了一个阿里源,再次运行,依然不行,再运行一遍,通过。

所以如果下载安装不顺利的话,建议多换换网和源试试。基本上都是网络问题,多试几次(别人说的:wifi不行就换热点,热点多试几次,刚开始热点会不稳定,最后实在不行可以试试翻墙)。注意不管在哪个目录下运行脚本,最后都会下到home下。

结束后我们就已经安装了:
(i)ROS Melodic + Gazebo9
(ii)catkin(ROS的编译系统)的工作空间已经创建在了~/catkin_ws中
(iii)MAVROS

验证一下,打开gazebo,虽然能进去但是出现错误:
[Err] [REST.cc:205] Error in REST request
输入sudo gedit ~/.ignition/fuel/config.yaml
把url那行注释掉,换成:
url: https://api.igitionrobotics.org
保存,再运行gazebo就没有错误了,注意到Gazebo9在Ubuntu18.04里不需要OpenCV2。

接下来下载Firmware,运行ubuntu.sh安装Nuttx,然后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.

运行:sudo apt-get install libgstreamer-plugins-base1.0-dev
再运行就能编译了,完成之后看到打开了gazebo,可以看到小飞机,至此成功恢复了PX4有关的备份。

 类似资料: