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

这篇具有很好参考价值的文章主要介绍了【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

写在前面,目前中文互联网上关于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联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

然后进行依赖的安装

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联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

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

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux
# >>> 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
# <<< PX4 initialize <<<

然后再

source ~/.bashrc

3.2 测试PX4是否成功安装

首先启动QGC地面站,然后启动测试结点

roslaunch px4 mavros_posix_sitl.launch

如果在终端输入

commander takeoff # 起飞
commander land    # 降落

无人机将会起飞和降落,如下图所示

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

如果出现这种情况

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

这个错误表明ROS无法找到名为"gazebo_ros"的资源包。使用下面语句安装ros-noetic-gazebo-ros-pkgs

sudo apt-get install ros-noetic-gazebo-ros-pkgs  # noetic
sudo apt-get install ros-melodic-gazebo-ros-pkgs # melodic
sudo apt-get install ros-kinetic-gazebo-ros-pkgs # kinetic

然后再次使用

roslaunch px4 mavros_posix_sitl.launch

即可成功启动

注意如果我们没有deactivate anaconda的虚拟环境,那么在启动中会报如下的错误,并且无法加载无人机模型

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

正确启动是不会报错的,并且会出现无人机的模型,如下所示

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

4. 配置PX4-v1.12(推荐使用)

4.1 安装PX4-v1.12

git clone https://github.com/PX4/PX4-Autopilot.git
git status   # 查看当前分支,位于origin/main
git branch -r | grep "release"    # 查看所有远程分支,带release的

查看的结果如下所示,选择relase/1.12的稳定分支

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

然后进行切换分支

cd PX4-Autopilot
git checkout origin/release/1.12  # 切换到发行分支v1.12
git submodule update --init --recursive	# 更新子模块
git status   # 查看当前分支,位于release/1.12

4.2 配置PX4

~/.bashrc文件中加入

source ~/PX4_Firmware/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4_Firmware/PX4-Autopilot ~/PX4_Firmware/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/PX4_Firmware/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/PX4-Autopilot/Tools/sitl_gazebo

5. 手动添加gazebo模型

手动添加gazebo模型文件,手动下载这个model.zip文件,提取码是hola

将该附件解压缩后放在~/.gazebo中,按住ctrl+h可以显示隐藏文件夹,此时在~/.gazebo/models/路径下可以看到很多模型。如果不做这一步,之后运行Gazebo仿真,可能会缺模型,这时会自动下载,Gazebo模型服务器在国外,自动下载会比较久。

在已经安装好Ubuntu 20.04ROS Noetic的前提下,如果我们是安装的是ros-noetic-desktop-full版本,那么就已经帮我安装好了gazebo11,我们首先查看我们自带的gazebo版本,在终端中输入

gazebo --version

便可以查看gazebo的版本, 如下

sjh@R9000X:~$ gazebo --version
Gazebo multi-robot simulator, version 11.13.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.

6. 配置Mavros

mavros的配置参考于Mavros官网配置教程

6.1 安装Mavros(源码安装方法)不推荐

1、首先创建工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
wstool init src

如果报错wstool not found,则需要先安装

sudo apt-get install python-catkin-tools python-rosinstall-generator -y

如果是第一次使用wstool,则还需要

wstool init ~/catkin_ws/src

2、下载mavros源码

rosinstall_generator --rosdistro kinetic mavlink | tee /tmp/mavros.rosinstall
# We use the Kinetic reference for all ROS distros as it's not distro-specific and up to date
rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall

这里使用了kinetic版本来指代了所有ros的版本,无需我们自己指定,然后进入工作空间开始构建

wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4
rosdep install --from-paths src --ignore-src -y

3、安装剩余依赖

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

4、编译

cd ~/catkin_ws
catkin build

如果出现下列信息则表明编译成功,我这里不是首次编译,所以编译很快,首次编译会比较慢。

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

成功之后打开.bashrc文件,在其中写入

# >>> Mavros pkg initialize >>>
source ~/catkin_ws/devel/setup.bash
# <<< Mavros pkg initialize <<<

注意,这个一定要放置在PX4之前,如下图所示

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

6.2 安装Mavros(二进制安装方法)推荐

直接运行以下指令即可,参考自PX4联合Mavros教程

sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras ros-noetic-mavros-msgs
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh

6.3 测试mavros

在终端输入

roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

来测试mavros是否安装成功,如果没有报错,那说明安装成功。如下所示

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

7. 测试mavros与sitl通信

接下来我们测试MAVROSSITL通信是否正常,先打开QGC地面站,然后输入

roslaunch px4 mavros_posix_sitl.launch
rostopic echo /mavros/state

如果出现了connected: True,则表明通信成功,如下所示。

【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】,# ROS,# PX4,ubuntu,机器人,linux

如果在终端输入

commander takeoff # 起飞
commander land    # 降落

无人机将会起飞和降落,并且mavros显示信息会发生变化。文章来源地址https://www.toymoban.com/news/detail-714880.html


Reference

  • Ubuntu安装教程
  • ROS安装教程
  • Gazebo安装教程
  • QGC安装教程
  • PX4官网配置教程
  • Mavros官网配置教程

到了这里,关于【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.13和Gazebo11联合仿真环境【教程】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu20.04 ros http://wiki.ros.org/noetic/Installation/Ubuntu

    imu Calibration  ros  http://wiki.ros.org/noetic/Installation/Ubuntu 使用imu_utils进行IMU的误差标定以及IMU姿态解算_非晚非晚的博客-CSDN博客 Ubuntu20.04编译并运行imu_utils,并且标定IMU_学无止境的小龟的博客-CSDN博客https://github.com/ethz-asl/kalibr   imu rgb calibration

    2024年02月11日
    浏览(30)
  • Ubuntu20.04搭建PX4仿真环境及XTDrone开发平台(最详细最明白)

    PX4-Autopilot仿真平台是由PX4官方提供的集虚拟px4固件、真机烧录固件、gazebo环境及模型于一体的平台,用户可以自己编写程序,通过mavros接口与虚拟px4固件进行mavlink协议的通讯,并在gazebo中显示虚拟世界和模型。因此PX官方手册里给了一个经典的例程:offboard.cpp和offboard.py,让

    2024年02月04日
    浏览(91)
  • Ubuntu20.04 ROS noetic中编译和运行LIO-SAM

    本文是对自己学习过程的一个记录和总结,如果内容有误,请大家指点,感谢。         本文是在已经安装好ROS环境中进行的,不需要提前安装其他库,只需按照步骤进行操作,便能完成LIO-SAM的编译和运行,并且每一步都有我执行时的截图进行参考。 1.【创建工作空间】

    2024年03月24日
    浏览(44)
  • Ubuntu20.04+Docker+ROS Noetic 可视化容器管理工具Portainer

    官网教学安装网址:Install Docker Engine on Ubuntu | Docker Documentation ros镜像网址 https://hub.docker.com/r/osrf/ros https://hub.docker.com/r/osrf/ros/tags 3.1 宿主机开启xhost,使得docker里面可视化界面(vscode rviz)  注意:每次重启容器,主机都得执行一遍,否则容器内可视化报错。 3.2 创建宿主机数

    2024年02月12日
    浏览(50)
  • 在Raspberry Pi 4上安装Ubuntu 20.04 + ROS noetic(不带显示器)

    所需设备: 树莓派 4 B 型 wifi microSD 卡:最小 32GB MicroSD 转 SD 适配器 (可选)显示器,鼠标等 如果没有显示器,那么需要使用树莓派镜像烧录器,官网下载即可。 首先选择操作系统,接下来找到 Ubuntu Server 20.04.5版本。 接下来配置一下系统的初始化选项: “开启SSH服务”以

    2024年02月12日
    浏览(49)
  • ubuntu20.04安装ROS出现E: 无法定位软件包 ros-noetic-desktop-full

    只是对自己解决问题的过程进行记录。 按照这篇文章进行操作。 ROS安装与报错的解决办法_e: 无法定位软件包 ros-noetic-desktop-full_几度春风里的博客-CSDN博客完成添加密钥步骤后: 进行更新: 然后安装对应版本的ROS 就成功解决了。

    2024年02月08日
    浏览(39)
  • Ubuntu 20.04 与 ROS noetic安装 gtsam 编译 LIO-SAM 的适配版本

    本文简介在 Ubuntu 20.04 下以 ROS noetic 为基础安装 GTSAM 并成功编译 LIO-SAM 的适配版本。 安装前请检查cmake 和boost版本,Ubuntu 20.04.06自带cmake(= 3.0) 和libboost-all-dev(= 1.65)已满足要求。编译LIO-SAM适配版本的其它依赖包也已满足要求(主要是PCL, Eigen和OpenCV等, 详见其CMakeList)。 当前

    2024年02月13日
    浏览(44)
  • 记录:ubuntu20.04+ORB_SLAM2_with_pointcloud_map+ROS noetic

    由于相机实时在线运行需要ROS,但Ubuntu22.04只支持ROS2,于是重装Ubuntu20.04。 上一篇文章跑通的是官方版本的ORB_SLAM2,不支持点云显示。高翔修改版本支持RGB-D相机的点云显示功能。 高翔修改版本ORB_SLAM2:https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map 环境:ubunntu20.04、opencv3.4.

    2024年02月11日
    浏览(38)
  • 深入解读Fast-Planner算法看这一篇就够!(含Ubuntu20.04 + Ros noetic 环境下 Fast-planner 算法仿真环境的配置与真机效果演示。)

    目录 目录 声明 前言 相关资源 论文与代码链接: 论文解读 算法仿真 1. 下载源码 2. 安装库与相关包 3. 编译过程问题解答  3.1.1 使用catkin_make指令编译 3.1.2 采用catkin build编译 3.2 运行程序时可能发生的问题 算法真机测试 1. 编译问题 2. 程序话题修改(以比赛为例子) 2.1 修改

    2024年02月08日
    浏览(45)
  • 踩坑记录:ubuntu20.04+ROS noetic+gazebo11用UR5+robotiq+Xbox Kinect抓取乐高

    项目地址:https://github.com/pietrolechthaler/UR5-Pick-and-Place-Simulation 此存储库演示了 ROS 和 Gazebo 中的 UR5 取放。UR5 使用 Xbox Kinect 摄像头检测 11 种类型的乐高积木,并发布其位置和角度。 该项目的目标是: 用乐高积木模拟 UR5 机器人的迭代 机械臂必须能够将方块从位置 A 移动到

    2024年01月21日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包