ubantu18.04+ros melodic+px4,安装和配置教程汇总
- 在按链接给出的教程装之前,先看一下后面写的说明和应注意的点。
0 PX4用户指南及开发指南
https://docs.px4.io/master/zh/
https://dev.px4.cc/master/zh/
1 前期准备及ros安装
-
主要参考:ubuntu18.04安装ROS Melodic(最详细配置), by 抚琴弹出情调零
https://blog.csdn.net/qq_41450811/article/details/99079041 -
辅助补充:按上面的博文安装,过程中出现的问题,可以到这个下面这个博文寻找解决方法:
Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤),by 爱跑步的mango
https://blog.csdn.net/qq_44830040/article/details/106049992 -
运行gazebo报错:
关于Gazebo [Err] [REST.cc:205] Error in REST request 问题的解决,by 当SLAM遇见小王同学
https://blog.csdn.net/qq_43802597/article/details/97996255 -
rosdep update出错
https://www.ngui.cc/51cto/show-24469.html
https://blog.csdn.net/nidie508/article/details/104156378 -
在这里有可能会出现pyulog 0.9.0 装不好的情况。解决方法:
- 先去网站找到对应版本的pyulog压缩包,然后把它解压
- 根据报错信息可以知道,是因为versioneer.py文件的print是python3的语法,而我们是用python2编译的,所以在解压后的文件夹里,找到并打开versioneer.py,在import那里加一句话:
from __future__ import print_function
-
- 然后保存退出
-
- 在当前pyulog-0.9.0目录下打开终端,输入:
python setup.py install
2 mavros安装
二进制安装比较方便
- 主要参考:Ubuntu18.04下基于ROS和PX4的无人机仿真平台的基础配置搭建,by
http://www.ngui.cc/51cto/show-23557.html
将其中的kinetic改为melodic - 辅助参考:https://github.com/mavlink/mavros/blob/master/mavros/README.md#installation
- 辅助参考:https://dev.px4.io/master/en/ros/mavros_installation.html
- 辅助参考:最新mavros详细安装教程(亲测可行),by 总被蚊子叮的小旭
https://blog.csdn.net/zouxu634866/article/details/106526769
sudo ./install_geographiclib_datasets.sh这一步非常慢,也没有进度条提示,要耐心等它走完。
3 px4环境
- 主要参考:https://blog.csdn.net/sinat_16643223/article/details/113096829
- Ubuntu18.04下基于ROS和PX4的无人机仿真平台的基础配置搭建, by
http://www.ngui.cc/51cto/show-23557.html
- Ubuntu18.04下基于ROS和PX4的无人机仿真平台的基础配置搭建, by
注意一下版本1.11,稳定,
如果需要nuttx和jmavsim,就bash ./Tools/setup/ubuntu.sh
(先看一下下面的链接后面写的说明)
- 辅助参考: https://dev.px4.io/master/zh/setup/dev_env_linux_ubuntu.html
- 辅助参考:无人机仿真环境搭建-Ubuntu18.04安装PX4固件、ROS、gazebo、mavros,by 不断积淀
https://www.it610.com/article/1277474029715865600.htm - 辅助参考:最详细的Ubuntu18配置px4_ros_gazebo仿真,by 简单1024
https://blog.csdn.net/weixin_43568893/article/details/104533500 - 辅助参考:Ubuntu18.04 PX4 开发环境搭建,by Wzy
https://www.jianshu.com/p/98f56aaf3ac3
git submodule update --init --recursive --progress 可以显示进度
因为先装了ros,两种方式:
- 把ubantu.sh中的gazebo部分注释掉,这样仍然会装java8(1.11自己装的就是java8,master好像是java11(ubantu18.04),后面Fast RTPS推荐的是java8)
--no-sim-tools
(uabtu.sh装gazebo和前面ros装的两个版本不一样,如果直接装后面会容易出现找不到libignition-common1.so.1.0.1的问题)(不过–no_sim_tools的话也就不装java,后面测试就没有这个,可以再去ubantu.sh中找与jmavsim对应的语句安装)
master会出现gcc-arm-none-eabi-9-2020-q2-update-linux这个装不下来的情况,
从ubantu.sh看出来,下载的文件名和解压的不一样,下载下来的是gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
,解压的是gcc-arm-none-eabi-9-2020-q2-update-linux.tar.bz2
,应该修改一下ubantu.sh中的语句,把解压的文件的名字修改一下?(不确定这是不是个问题)- 反正不管因为啥,不成功的话,可以去ubantu.sh里面找网址,下载下来以后,放到/tmp里面,然后把后面的语句执行一下(这里需要注意版本,master是9-2020-q2-update,1.11是7-2017-q4-major)(master还是要注意一下解压的文件名):
# 1
## master
sudo tar -jxf /tmp/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2 -C /opt/;
## 1.11
sudo tar -jxf /tmp/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2 -C /opt/;
# 2
## master
exportline="export PATH=/opt/gcc-arm-none-eabi-9-2020-q2-update/bin:\$PATH"
## 1.11
exportline="export PATH=/opt/gcc-arm-none-eabi-7-2017-q4-major/bin:\$PATH"
# 3
if grep -Fxq "$exportline" $HOME/.profile;
then
# 没装过的话直接输入else后面那个就行,这句话就是提示一下弄过了
## master
echo "9-2020-q2-update path already set.";
## 1.11
echo "7-2017-q4-major path already set.";
else
echo $exportline >> $HOME/.profile; # 可以在exportline那句执行完了以后就执行这句
fi
4 QGroundControl下载及安装
- 下载:https://docs.qgroundcontrol.com/master/en/releases/daily_builds.html
- 安装:https://docs.qgroundcontrol.com/master/en/getting_started/download_and_install.html
5 在测试 make px4_sitl gazebo_iris时出现的问题
- 测试:
cd Firmware
make px4_sitl gazebo_iris
-
错误:ninja: error: rebuilding ‘build ninja’: subcommand falled
- 解决:先看一下gazebo的版本:gazebo --version
安装:sudo apt-get install libgazebo9-dev
- 解决:先看一下gazebo的版本:gazebo --version
-
错误:ninja: error: ‘/usr/lib/x86_64-linux-gnu/libignition-common1.so.1.0.1’, needed by ‘libmav_msgs.so’, missing and no known rule to make it
- 解决:直接点最后一个链接,这里记录一下寻找的过程
- https://packages.ubuntu.com/focal/libs/libignition-common,最下面的表格里选择amd64
- https://packages.ubuntu.com/focal/amd64/libignition-common/download,一些推荐库的下面选择完整源镜像列表
- https://launchpad.net/ubuntu/+archivemirrors,选择一个中国的镜像
- https://launchpad.net/ubuntu/+mirror/mirrors.tuna.tsinghua.edu.cn-archive,下面Mirror location information那里的随意点一个
- https://mirrors.tuna.tsinghua.edu.cn/ubuntu/,接着进入pool/universe/i/ignition-common/ 子目录中
- https://mirrors.tuna.tsinghua.edu.cn/ubuntu/pool/universe/i/ignition-common/,下载libignition-common_1.0.1-1_amd64.deb
- 右键->用软件安装打开
-
问题:No package ‘gstreamer-base-1.0’ found
- 解决:https://blog.csdn.net/qq_34213260/article/details/108333197
-
问题:…以杀死…
- 解决:并不确定最后解决了有没有第二个方法的原因,第一个肯定有用:
- 反复运行这一句make px4_sitl gazebo_iris,每次都搞几句,最后能搞完
- ubuntu增加swap交换空间, by 未知
https://blog.csdn.net/littleRpl/article/details/92626436?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromBaidu-1.channel_param增加swaplittleRpl
- 问题:CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
- 解决:CMake Error: The following variables are used in this project, but they are set to NOTFOUND解决办法,by 神秘憨憨
https://blog.csdn.net/Sunchanghaosch/article/details/103616729
- 解决:CMake Error: The following variables are used in this project, but they are set to NOTFOUND解决办法,by 神秘憨憨