全过程记录PX4环境搭建(ROS+Gazebo+Mavros+PX4+QGC)

  • 本人飞控专业在读,近段时间在老师的建议下,开始搭建PX4环境配置。因为并没有之前相关环境配置的经验,所以走了不少弯路,在此 感谢我的室友伙伴的一起努力和老师的辛苦指导。

  • 注:本文基于的系统是Ubuntu18.04,在VMware上运行,此两者的安装请各位读者自行参考相关链接。

环境搭建

  • 在PX4配置中本人参考了以下这个链接
  • PX4环境配置

ROS环境安装


依赖安装
  • 注意,不要一直使用一个终端进行配置,下面的都是,建议每配置完一个环境就重新新建一个终端。
  • 打开终端
  • sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
  pip2 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse

ROS安装
配置Ubuntu源码库
  • 打开Ubuntu系统的九个点,类似windows系统的开始选项,找到“软件和更新”这个选项卡

  • 点击软件和更新


  • 设置sources.list
    • sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
      

设置key
  • sudo apt install curl
    curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
    

报错则输入
  • sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
    

安装ROS
  • sudo apt update
    sudo apt install ros-melodic-desktop
    

设定环境
  • echo “source /opt/ros/melodic/setup.bash” >> ~/.bashrc
    source ~/.bashrc```

构建软件包依赖关系
  • sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
    sudo apt install python-rosdep
    
  • sudo rosdep init
  • 出现错误

    • ERROR: cannot download default sources list from:
      https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
      Website may be down.

      • cd /etc
        sudo gedit hosts
        
    • ERROR: default sources list file already exists:
      /etc/ros/rosdep/sources.list.d/20-default.list
      Please delete if you wish to re-initialize

      • sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

启动ROS
  • roscore
    
  • 出现此环境则为安装成功

新建工作空间
  • 此空间为ROS所有,方便后续步骤安装

    • mkdir -p ~/catkin_ws/src
      mkdir -p ~/catkin_ws/scripts
      cd catkin_ws/src
      catkin_init_workspace
      cd ..
      catkin_make
      

Gazebo安装


卸载之前安装的gazebo
  • sudo apt-get remove gazebo*
    sudo apt-get remove libgazebo*
    sudo apt-get remove ros-melodic-gazebo* #kinetic noetic对应修改
    

设置计算机以接受来自package.osrfoundation.org的软件
  • sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'cat /etc/apt/sources.list.d/gazebo-stable.list#如果出现deb http://packages.osrfoundation.org/gazebo/ubuntu-stable xenial main表示没问题

设置密钥
  • wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
    sudo apt-get update
    

安装gazebo指令
  • sudo apt-get install gazebo9=9.1*
    
  • 安装后终端输入gazebo,若能出现gazebo则为安装成功,界面如下

    -


安装gazebo与ROS插件
  • sudo apt install ros-melodic-gazebo9-*
    sudo apt install ros-melodic-gazebo-*
    
  • 测试

    • roscore
      rosrun gazebo_ros gazebo
      
    • 界面如上张图片


MAVROS安装
  • 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配置
    #注意,我们安装的ROS环境为ROS1,所以选择melodic方式安装,#后面的内容为注释,只需要运行终端代码即可
    

PX4配置

  • 这一块的步骤参考的是上文所说的第二个链接。

​ 注意:由于GitHub网址国内访问太慢,所以 我们采用gitee网站的方式

git clone https://gitee.com/bingobinlw/Firmware.git

这一步下载过后打开Firmware文件夹,勾选显示隐藏文件

找到如图所示选中的文件,双击打开

[submodule "mavlink/include/mavlink/v2.0"]path = mavlink/include/mavlink/v2.0url = https://gitee.com/bingobinlw/c_library_v2.gitbranch = master
[submodule "src/drivers/uavcan/libuavcan"]path = src/drivers/uavcan/libuavcanurl = https://gitee.com/bingobinlw/uavcan.gitbranch = px4
[submodule "Tools/jMAVSim"]path = Tools/jMAVSimurl = https://gitee.com/bingobinlw/jMAVSim.gitbranch = master
[submodule "Tools/sitl_gazebo"]path = Tools/sitl_gazebourl = https://gitee.com/bingobinlw/sitl_gazebo.gitbranch = master
[submodule "src/lib/matrix"]path = src/lib/matrixurl = https://gitee.com/bingobinlw/Matrix.gitbranch = master
[submodule "src/lib/ecl"]path = src/lib/eclurl = https://gitee.com/bingobinlw/ecl.gitbranch = master
[submodule "boards/atlflight/cmake_hexagon"]path = boards/atlflight/cmake_hexagonurl = https://gitee.com/bingobinlw/cmake_hexagon.gitbranch = px4
[submodule "src/drivers/gps/devices"]path = src/drivers/gps/devicesurl = https://gitee.com/bingobinlw/GpsDrivers.gitbranch = master
[submodule "src/modules/micrortps_bridge/micro-CDR"]path = src/modules/micrortps_bridge/micro-CDRurl =https://gitee.com/bingobinlw/micro-CDR.gitbranch = px4
[submodule "platforms/nuttx/NuttX/nuttx"]path = platforms/nuttx/NuttX/nuttxurl = https://gitee.com/bingobinlw/NuttX.gitbranch = px4_firmware_nuttx-8.2
[submodule "platforms/nuttx/NuttX/apps"]path = platforms/nuttx/NuttX/appsurl =  https://gitee.com/bingobinlw/NuttX-apps.gitbranch = px4_firmware_nuttx-8.2
[submodule "cmake/configs/uavcan_board_ident"]path = cmake/configs/uavcan_board_identurl = https://gitee.com/bingobinlw/uavcan_board_ident.gitbranch = master
[submodule "platforms/qurt/dspal"]path = platforms/qurt/dspalurl = https://gitee.com/bingobinlw/dspal.git

将上面代码文件拷贝覆盖选中的文件的内容,并点击保存。


更新子模块组
  • 在Firmware文件夹内打开终端
git submodule update --init --recursive

安装必要的python依赖
  • 新开一个终端

  • cd ~/Firmware
    bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools
    

编译PX4配置
  • make px4_sitl_default gazebo
    

新建终端,修改bashrc路径

sudo gedit ~/.bashrc


- 将打开的文件在最下面添加以下路径代码,然后保存- ```source ~/catkin_ws/devel/setup.bashsource ~/Firmware/Tools/setup_gazebo.bash ~/Firmware/ ~/Firmware/build/px4_sitl_defaultexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmwareexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo```- ```
source ~/.bashrc
  • 注意自己的PX4安装包是什么名字,路径配置就填什么,如果自己的px4配置包是PX4_Firmware,就需要将本人的路径代码中的Firmware改成PX4_Firmware

  • 此命令能够使环境变量正确加载

新建终端运行以下命令

  • cd ~/Firmware
    roslaunch px4 mavros_posix_sitl.launch
    
  • 成功如图所示

  • 并运行以下代码

    • rostopic echo /mavros/state
      
    • 此命令是检查mavros和PX4之间的通信是否正确,在终端显示 connected:true表示正确无问题,若显示false,则表示bashrc文件路径配置不正确,需要检查一遍路径。成功如图所示


QGC地面站安装

安装链接
  • https://docs.qgroundcontrol.com/en/getting_started/download_and_install.html
    
  • 注意这个链接需要在Ubuntu系统中打开,并且下载在Ubuntu系统中

  • 根据官网所给出的链接进行安装

  • 打开终端,分别输入以上代码,然后运行

  • 点击蓝色字体QGC进行下载

  • 在下载好的QGC安装包文件夹位置打开终端,运行下一条命令

    • chomd +x ./QGroundControl.Applmage
      

最终实现效果如图所示

  • 至此,仿真平台配置完成。以上所有代码都跑过一遍,安装有效。
  • PX4的环境配置了很久,因为会出现各种各样的问题,最后总结问题大概会出现在以下几点
  • PX4源码尽量直接git clone GitHub网址或者gitee网站。本人之前直接利用PX4安装包去Ubuntu解压,效果有,但是最后的mavros通信不成功。
  • 有些需要配置环境路径,需要一点耐心。如果出现错误,可以从错误地方直接复制到网上参考有关链接。
  • 本次记录心得结束,感谢各位观看

PX4环境搭建记录(ROS+Gazebo+mavros+PX4+QGC)相关推荐

  1. TensorRT 环境搭建记录

    TensorRT 环境搭建记录 文章目录 TensorRT 环境搭建记录 1.TensorRT介绍 2.使用TensorRT总目标 3.Centos下TensorRT环境搭建(Ubuntu一样) 4. ...

  2. 极简darknet环境搭建记录

    <极简darknet环境搭建记录>   darknet的环境搭建已经非常简单了,但是偶尔的一点小坑,可能会浪费一些时间,比如编译的时候使用CUDA报错,或者没找到OpenCV-简单记录一下 ...

  3. MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04)

    MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04) 一.安装依赖包 sudo apt install mesa-common-dev freeglut3-dev co ...

  4. Linux环境搭建记录——GitLab安装

    Linux环境搭建记录 GitLab安装 GitLab安装 更多GitLab详细信息请参考:GitLab官方文档 分步指南 获取GitLab资源 可以访问 https://mirrors.tuna.t ...

  5. Linux环境搭建记录——Jenkins安装

    Linux环境搭建记录 Jenkins安装 Jenkins升级 Jenkins插件离线安装 构件Jenkins项目 Jenkins安装 更多Jenkins详细信息请参考:Jenkins官方文档 分步指 ...

  6. ubuntu16.04下px4环境搭建与固件编译

    px4官网提供了一个批处理方式搭建px4开发环境,十分好用,按照官网步骤 1 sudo usermod -a -G dialout $USER 2 登出再登入使命令生效 3下载几个脚本,不需要每个都下 ...

  7. linux ubuntu安装pytorch(深度学习环境搭建记录,无sudo权限)踩坑全记录

    一些牢骚:深度学习没怎么学习几次,搭建环境已经把我搞秃了哈哈哈. 之前在网上找到的搭建环境的步骤,我没有root权限,很多操作都不行(比如运行.run文件,cuda 和cudnn的安装和修改也需要ro ...

  8. Windows下Qt编写Android应用程序的环境搭建记录

    目录 前言 配置开发环境 安装JDK1.8 安装SDK 安装NDK Qt配置OpenCV C++&Java混合编程 结语 前言 由于要在手机上实现一些应用,例如部署目标检测模型.添加单目测距定 ...

  9. 一、PX4环境搭建和编译(Ubuntu 16.04、ROS kinetic)

    Ubuntu16.04 ROS:kinetic 源于:官网PX4开发指南(v1.10.0)<master> https://dev.px4.io/v1.10/zh/ 稍微参考一下这个网站: ...

最新文章

  1. ASP.NET页面包含另外一个页面
  2. 学习python需要什么基础-学习python需要什么基础
  3. java 继承的内存分配_图解Java继承内存分配
  4. 漫谈度量学习(Distance Metric Learning)那些事儿
  5. 用tensorflow实现yolov3
  6. bcd编辑工具Linux,​快启动pe系统工具之BCD编辑工具各个功能详细介
  7. 使用replace pioneer批量修改文件名
  8. NGS基础 - 参考基因组和基因注释文件
  9. .html与.htm为网页后缀的区别
  10. JavaScript基础和记背内容 Day1
  11. Latex Error: File ended while scanning use of \@xdblarge
  12. 好看的流程审批html,审批流程(加班)驳回(流程被删除).html
  13. UNIX环境高级编程-#include “apue.h“
  14. 惠普怎样启动计算机上的无线功能,如何打开hp无线网卡?如何打开惠普笔记本电脑无线网卡...
  15. android ppt的动画效果怎么做,Android 仿 PPT 进入动画效果合集
  16. 明尼苏达量表结果分析_MMPI明尼苏达多项人格测验量表分析
  17. CDATA 数据处理
  18. 【Linux编程】UVC摄像头采集与显示(V4L2编程)
  19. [SDOI2012]拯救小云公主
  20. Jquery 里的节点遍历(next(),perv(),nextAll(),prevAll())

热门文章

  1. 设计模式-观察者模式(Observer)-Java
  2. 小程序中无法播放阿里云的视频点播
  3. 请不要拿ipad和手机、上网本相提并论
  4. 软考和PMP哪个含金量更高点?
  5. 优化版本 穿越火线(CF) FPS AI 自瞄 代码 权重 数据集(下面有链接)
  6. 明日方舟抽卡模拟器wiki_明日方舟tag模拟器wiki
  7. 此计算机中未配置默认浏览器,Win10设置默认浏览器
  8. 怎么用计算机的计算器转换进位制,怎么用电脑计算器将带小数的二进位制转换为十进位制...
  9. python win32转pdf 横版_Python调用Win32com实现批量Office转PDF
  10. asp+html加密最终版,ASP后门之终极伪装+在线琳法ASP加密解密网站安全 -电脑资料...