ubuntu16.04下,ROS+PX4+QGC安装
ROS安装:
第一步:ROS安装前准备工作
1.在Ubuntu系统上,确认git已经安装
sudo apt-get install git
2.添加sources.list
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
3.添加keys
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
4.系统更新
sudo apt-get update && sudo apt-get upgrade
5.安装ROS
Ubuntu 16.04安装Kinetic版本
sudo apt-get install ros-kinetic-desktop-full # Ubuntu 16.04
第二步 配置ROS
配置ROS是安装完ROS之后必须的工作
1.初始化rosdep
sudo rosdep init && rosdep update
2.ROS环境配置
#For Ubuntu 16.04
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
注意: ROS的环境配置,使得你每次打开一个新的终端,ROS的环境变量都能够自动配置好,也就是添加到bash会话中,因为命令source /opt/ros/kinetic/setup.bash 只在当前终端有作用,即具有单一时效性,要想每次新开一个终端都不用重新配置环境,就用echo语句将命令添加到bash会话中。
3.安装rosinstall
sudo apt-get install python-rosinstall
至此,ROS的安装就结束了,下面测试ROS能否正常运行。
第三步 测试ROS
首先启动ROS,输入代码运行roscore:
roscore
如果出现下图所示,那么说明ROS正常启动了!
PX4安装:
第一步前期环境搭建
1.在终端输入以下指令将将用户添加到附属组群
sudo usermod -a -G dialout $USER
2.按照官网教程
下载脚本ubuntu_sim_nuttx.sh
(可能需要科学上网,也可到文末网盘下载)
3.使脚本生效,执行指令
source ubuntu_sim_nuttx.sh
这一步需要时间较长,等脚本执行完,重启电脑
4.检查gcc版本来检查是否成功安装Nuttx
arm-none-eabi-gcc --version
显示下列结果7.2.1则无问题
arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2017-q4-major)
7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
Copyright (C) 2017 Free Software Foundation, Inc.This is free software;
see the source for copying conditions. There is NO warranty;
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
接下来就会发现在~/src目录下已经下载好了最新的PX4固件(如果没有看第二步)
第二步 下载编译px4源码
1.下载源码
git clone https://github.com/PX4/Firmware.git
(已有请跳过)
2.在Firmware文件夹下运行命令
cd Firmware
git checkout v1.8.0
选择v1.8.0版本较为稳定
git submodule update --init --recursive
执行这一步的原因是clone的源码可能在/Tools
下/sitl_gazebo
和/jMAVSim
等都是空文件夹,这一步很重要耗费时间较长
3.编译px4源码
若以上工作都没有问题就开始编译源码
make px4fmu-v4_default
4.编译仿真器
make posix_sitl_default gazebo
若编译通过,此时会弹出Gazebo模拟器窗口,你会看到一架无人机出现在环境中
编译问题汇总
每个人PC环境不同,遇到的问题也不尽相同,以下没提到的bug欢迎在评论区留言讨论。
使用双系统ubuntu16.04版本,自带默认python版本2.7,而执行脚本ubuntu_sim_nuttx.sh时自动安装python3.5,可以像下列这样查看一下
zyf@zyf:~/src/Firmware$ python
Python 2.7.12 (default, Jul 21 2020, 15:19:50)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
zyf@zyf:~/src/Firmware$ python3
Python 3.5.2 (default, Jul 17 2020, 14:04:10)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
报错:需要安装 pip3 install --user packaging
缺乏一些python库按照提示去安装,这里需要注意的一点用pip3 install
不要用pip install
因为上述讲过python版本的问题,编译px4需要python3.5,所以一些依赖库也得安装到python3下,可能会出现numpy
安装不上的情况,这个时候使用sudo apt-get install python3-numpy
报错:gz: symbol lookup error: /usr/lib/libgdal.so.1: undefined symbol: sqlite3_column_table_name
ninja:build stopped: subcommand failed
手动安装sqlite3库(附上网址)我下载的是sqlite-autoconf-3330000.tar.gz
解压后执行
CFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA=1" ./configure
make
sudo make install
QGC安装:
QGC下载安装网址
我下载了最新版qgc发现不支持16.04,至少得18.04的系统,所以我安装的是较为老版的QGCCv3.0.2,我下的是.AppImage
下载后安装过程就按英文教程来就行
chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage (or double click)
附网盘
内含脚本、sqlite库、qgc地面站
链接: https://pan.baidu.com/s/1Kvtn9ywK8IdUriaKEP7-CQ 提取码: up6t