git clone PX4 环境配置与问题记录

 仿真平台基础配置 (yuque.com)

前言

        使用ubuntu下载ros、px4似乎是一件十分繁琐以及困难的事情,但是本人经过了参考大量链接,成功安装好后,发现这件事情其实并非难事。许多安装指导链接发布于一两年前,也许在当时确实是一个好方法,但时至今日,很多操作步骤已然删繁就简,成为一件易事了。

序、PX4初始环境依赖安装与问题  

  • 在使用apt安装的过程中(包括之后ROS的安装),如果出现难以解决的依赖问题,可以使用aptitude install(没有aptitude的话,使用sudo apt install aptitude 安装),如sudo aptitude install ros-kinetic-desktop,它会依次推荐依赖解决方案,觉得可行就按y,不可行就按n。当然这个工具也不是万能的,如果它也解决不了依赖问题,还是需要靠自己分析解决。
  • 有时候apt报错,提示“有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?”,这时按照提示进行操作即可。
  • 注意仔细检查依赖都装成功没有,之前有些开发者遇到的编译过程中出现'pthread_create'未定义的引用,就是因为少装了依赖

问题:Ubuntu20版的新问题;默认python3;之前的python直接改成python3 

sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawk


pip3 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml


pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse

以上代码都是针对于ubuntu18.04环境下使用,20.04会提示无pip2,直接改为pip3安装即可(20.04依赖库里再无python2)

●如果出现如下报错情况,可先更新 setuptools 和 pip

pip install --upgrade setuptools         #若未报错不需要输入这两行命令

python -m pip install --upgrade pip

详见:仿真平台基础配置 (yuque.com)

一、ROS下载与配置

ubuntu 20.04环境下ROS+PX4+RPG ROS DVS+DV-gui 安装_ch&sky的博客-CSDN博客_ubuntu20.04安装px4

1.ROS直接使用鱼香ros的一键安装指令:(比较简单)

wget http://fishros.com/install -O fishros && . fishros 

 

分别选择:1 (会同时完成换源和安装) 版本问题可了解后续使用的版本匹配问题:Ubuntu 16.04对应Kinetic,18.04对应Melodic,20.04对应Noetic,Kinetic以前的发行版不支持

                   初始化 rosdep

                   (如上)

                   7(很推荐的IDE,VS环境的配置在后面会说)

测试安装是否成功:

2、想要了解每个过程参见:


ROS官网:Installation/Ubuntu - ROS Wikihttp://wiki.ros.org/Installation/Ubuntu


仓库/Ubuntu - 社区帮助维基https://help.ubuntu.com/community/Repositories/Ubuntu

 3、ROS入门学习

ROS/教程 - ROS 维基

【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程_哔哩哔哩_bilibili

【古月居】古月·ROS2入门21讲 | 带你认识一个全新的机器人操作系统_哔哩哔哩_bilibili

二、Gazebo安装;mavros安装

仿真平台基础配置 · 语雀

1、gazebo重新下载配置

1.1、Gazebo包括Gazebo本身和ROS的插件,需要分别安装。首先卸载之前的Gazebo

1.2、我们对Gazebo的ROS插件做了修改,因此需要源码编译。

1)首先装依赖

2)然后编译(如果编译时还缺其他的依赖,同上方法安装),

由于需要用到XTDrone的文件,需要先完成XTDrone源码下载

3)编译成功后执行如下两条指令,判断gazebo_ros是否安装成功

Gazebo有很多开源的模型文件,我们将一些需要的模型文件上传到附件中,供大家下载:
--> 请点击models.zip(632.9 MB)

需将该zip文件提取到(解压)~/.gazebo中。其中,.gazebo为隐藏文件,可通过按ctrl+H显示隐藏文件

此时在~/.gazebo/models/路径下可以看到很多模型。如果不做这一步,之后运行Gazebo仿真,可能会缺模型,这时会自动下载,Gazebo模型服务器在国外,自动下载会比较久。


2、MAVROS安装

2.1创建一个工作空间(按照古月居ros入门21讲中的第九讲创建一个catkin_ws文件)

sudo apt-get install python-catkin-tools

mkdir -p ~/catkin_ws/src

mkdir -p ~/catkin_ws/scripts

cd catkin_ws && catkin init # 使用catkin_make话,则为cd catkin_ws/src && catkin_init_workspace

 2.2 在catkin_ws路径下执行以下代码

catkin init

wstool init src

2.3 执行完成后继续执行

sudo apt-get install python-catkin-tools python-rosinstall-generator -y
rosinstall_generator --rosdistro noetic mavlink | tee /tmp/mavros.rosinstall

2.4安装MAVROS(注意版本问题)

注意,mavros-extras一定别忘记装,否则视觉定位将无法完成

Ubuntu 16.04对应Kinetic,18.04对应Melodic,20.04对应Noetic,Kinetic以前的发行版不支持

## 看ROS版本
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras
sudo apt install ros-kinetic-mavros ros-kinetic-mavros-extras 		# for ros-kinetic
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras 		# for ros-melodic

wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh

sudo chmod a+x ./install_geographiclib_datasets.sh

sudo ./install_geographiclib_datasets.sh #这步需要装一段时间,请耐心等待PX4配置

安装最新版mavros(按上面的安装就好

rosinstall_generator --upstream-development mavros | tee -a /tmp/mavros.rosinstall

2.5 创建工作区

wstool merge -t src /tmp/mavros.rosinstall

wstool update -t src -j4

rosdep install --from-paths src --ignore-src -y

 2.6 安装地理图书馆数据、构建源代码

./src/mavros/mavros/scripts/install_geographiclib_datasets.sh

catkin build

 2.7 确保从工作区安装程序(注:执行下列代码后,rosrun将会失效。)

source devel/setup.bash

​​​​​仿真平台基础配置 (yuque.com)(以此为主)

ubuntu20.04安装ros1与px4、mavros、QGroundControl

三、PX4拉取与配置

1、下载PX4源代码

git clone https://github.com/PX4/PX4-Autopilot.git --recursive

网络问题下载不下来;解决方法:

1)直接拷贝别人下好的代码;或则自己下载好。(下一步更新子模块还是会遇到问题。)

2)虚拟机科学上网;(这个要怎么设置??)  参见:(22条消息) 虚拟机科学上网原理与设置_fushengxiaoyao的博客-CSDN博客

3)换源:(21条消息) Ubuntu更换国内源(apt更换源)_墨痕诉清风的博客-CSDN博客_ubuntu换源

靠、、是不是可以考虑一下大部分VPN都是有Ubuntu里的版本。。没有也可以找一个、、

不科学上网太难了。

PX4配置过程与踩坑 (copyfuture.com)

2、完成下载后,进入目录    PX4-Autopilot

更新子模块(验证PX4下载是否完全):(直接用别人下好了所有子模块的可以不更新)

git submodule update --init --recursive

如果出现无法更新的情况:用以下命令删除所有子模块,重新更新:

git status                                 // 查看git库状态,刚下完成的应该是干净的
git submodule sync                         // 查看所有同步子模块

git submodule deinit  --all -f             // 强制删除所有子模块
git submodule update --init --recursive    // 下载更新所有子模块

git status  // 查看 无文件要提交,干净的工作区
ll          // 查看 总用量 260(版本变化可能会有不一样)

git submodule update --init --recursive   // 验证一下

3.运行ubuntu.sh以安装所有工具链:

终端输入(终端路径为主目录下)

bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

出现权限不够:
sudo bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

安装报错:

解决方案:

错误:找不到scipy==1.7.1的匹配分发 - 问答 - 腾讯云开发者社区-腾讯云 (tencent.com)

自己下载:

pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

然后重启电脑

网不好会出问题,之后编译会通不过,多下载几次。

仿真能过就好;实际的编译不使用实物就不强求了、、、、

4、环境配置验证:编译运行测试

在完成上述环境的搭建之后,就可以开始仿真和固件的编译了,打开终端输入

(注意:如果此处使用的是虚拟机的话需要注意扩大分配的内存最小需分配4G)

cd PX4-Autopilot

make px4_fmu-v3_default
make px4_sitl jmavsim
make px4_fmu-v5_default
make px4_sitl gazebo

编译报错:查看报错问题,确实哪个模块??  直接找到对应路径删除文件夹,
然后重新:(缺哪个补哪个。。)
git submodule update --init --recursive

Ubuntu20.04或18.04下PX4(pixhawk)源码编译环境配置教程,及构建代码各种错误解决办法_Iamsonice的博客-CSDN博客

错误2:Configuring incomplete, errors occurred!

原因还是因为编译环境还未安装齐全再次输入(可多次运行以免安装不齐全)

cd ..
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

错误3:You may need to install it using: pip3 install --user empy

原因还是因为编译环境还未安装齐全Python3,类似的错误(pip3 install --user numpy
、pip3 install --user toml、pip3 install --user packaging...等)按照提示终端输入

pip3 install --user empy

(如出现错误多是网络原因多尝试几次即可)

四、建立ROS与PX4的通信配置

1、环境配置(PX4+MAVROS)

ubuntu 20.04环境下ROS+PX4+RPG ROS DVS+DV-gui 安装_ch&sky的博客-CSDN博客_ubuntu20.04安装px4

仿真平台基础配置 (yuque.com) (以此为主)

打开一个终端,输入:

gedit ~/.bashrc

将下列代码复制粘贴:(前面有重新下载过gazebo,留意路径问题)


source ~/catkin_ws/devel/setup.bash

source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/sitl_gazebo
source ~/catkin_ws/devel/setup.bash

source ~/PX4-Autopilot/Tools/simulation/gazebo/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo/sitl_gazebo

上面代码第二行为ubuntu20.04环境下的路径,18.04需要根据自己情况对路径进行修改

保存并退出之后输入:

source ~/.bashrc

验证PX4+MAVROS是否配置完成:

cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch
rostopic echo /mavros/state

若connected: True,则说明MAVROS与SITL通信成功。如果是false,一般是因为.bashrc里的路径写的不对,请仔细检查。

---
header:
seq: 11
stamp:
secs: 1827
nsecs: 173000000
frame_id: ''
connected: True
armed: False
guided: False
manual_input: True
mode: "MANUAL"
system_status: 3
---

五.安装地面站

按照官网来就好Download and Install · QGroundControl User Guide

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值