【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】

2024-02-27 8931阅读

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】

文章目录

  • 【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】
    • 0. 安装Ubuntu+ROS
    • 1. 安装依赖
    • 2. 安装QGC地面站
    • 3. 配置PX4-v1.13
      • 3.1 安装PX4
      • 3.2 测试PX4是否成功安装
      • 4. 配置PX4-v1.12(推荐使用)
        • 4.1 安装PX4-v1.12
        • 4.2 配置PX4
        • 5. 手动添加gazebo模型
        • 6. 配置Mavros
          • 6.1 安装Mavros(源码安装方法)不推荐
          • 6.2 安装Mavros(二进制安装方法)推荐
          • 6.3 测试mavros
          • 7. 测试mavros与sitl通信
          • Reference

            写在前面,前中文互联网上关于PX4飞控的学习资料较少,笔者查阅了大量的资料整理成这篇博客,贡献一些学习内容,码字不易,如果帮助到您,请您帮我点点赞。

            0. 安装Ubuntu+ROS

            安装Ubuntu可以查看这篇教程,安装ros可以查看这篇教程,这里就不再赘述了。

            1. 安装依赖

            ● 在使用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’未定义的引用,就是因为少装了依赖。

            注意如果安装了Anaconda等虚拟环境管理器,要退出虚拟环境的激活,再进行依赖的安装,一下的安装过程我们默认退出了Anaconda的虚拟环境

            比如我这里使用了anaconda包管理器,有一个虚拟环境base那么我需要推出这个虚拟环境再进行依赖的安装。

            conda deactivate
            
            【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】 第1张

            然后进行依赖的安装

            sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 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 kconfiglib jsonschema future
            
            pip install --upgrade setuptools
            #若未报错不需要输入这两行命令
            python -m pip install --upgrade pip
            

            2. 安装QGC地面站

            安装的教程参考于QGC安装教程

            sudo usermod -a -G dialout $USER
            sudo apt-get remove modemmanager -y
            sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
            sudo apt install libqt5gui5 -y
            sudo apt install libfuse2 -y
            

            然后重启电脑,下载QGroundControl.AppImage

            使用终端命令安装(并运行):

            chmod +x ./QGroundControl.AppImage
            ./QGroundControl.AppImage  (or double click)
            

            3. 配置PX4-v1.13

            3.1 安装PX4

            在创建工作空间之前一定要deactivate anaconda的虚拟环境

            参考PX4官网上的安装流程

            1、下载PX4源码

            可以直接git进行下载,由于ros noetic自带gazebo11,所以我们不需要再额外安装gazebo

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

            如果下载比较慢,可以使用我已经打包好的源码,提取码hola。

            2、安装PX4

            然后,轻量安装(不安装 sim tool 和 nuttx)

            bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --no-sim-tools --no-nuttx
            

            3、安装相关依赖

            然后安装一些依赖

            sudo apt-get install protobuf-compiler libeigen3-dev libopencv-dev -y
            

            4、编译PX4固件

            cd PX4-Autopilot
            make px4_sitl_default gazebo
            

            如果编译成功则会出现

            【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】 第2张

            然后退出gazebo,修改 ~/.bashrc,在文件的末尾加入以下代码, 如下的配置参考自PX4论坛,如图所示

            【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】 第3张
            # >>> PX4 initialize >>>
            source ~/PX4-Autopilot/Tools/simulation/gazebo-classic/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-classic/sitl_gazebo-classic
            # 

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]