【Ubuntu18.04安装px4+mavros(解决mavros报错问题)】

2023-05-16

Ubuntu18.04安装px4+mavros(解决mavros报错问题)

  • 安装ros-melodic
  • 重新安装gazebo9.19
  • 安装mavros
  • 安装px4

我的电脑为联想R7000P2021款,之前已经安装好Ubuntu18.04双系统并且安装了ROS,现因实验室需要进行无人机的仿真,根据网上的相关教程安装好了mavros和px4,但在最后测试px4时候出现了以下错误
在这里插入图片描述
尝试了一天最后发现原来是因为gazebo版本问题,ubuntu18.04安装ros-melodic时gazebo默认版本为9.0,升级到最新的gazebo9.19版本即可

安装ros-melodic

因为已安装,略。

重新安装gazebo9.19

1.卸载gazebo9.0

sudo apt-get remove gazebo9*

2.安装gazebo9.19

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
sudo apt-get install gazebo9=9.1*

3.安装过后输入gazebo,如果不能弹出gazebo窗口,且报错类似

error: gzserver: symbol lookup error: /usr/lib/x86_64-linux-gnu/libsdformat.so.4: undefined symbol: _ZN8ignition4math15SemanticVersionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

执行

sudo apt upgrade libignition-math2

4.安装相关依赖项

sudo apt-get install gazebo9*
sudo apt-get install libgazebo9-dev
sudo apt-get install ros-melodic-gazebo-ros
sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-gazebo-ros-pkgs

安装mavros

sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
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配置

安装px4

这里使用gitee安装,加快安装速度
1.下载源码

cd ~
git clone https://gitee.com/robin_shaun/PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.11.0-beta1
bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools

2.将.gitmodules替换为如下内容(在PX4_Firmware文件夹中ctrl+h查看隐藏文件)

[submodule "mavlink/include/mavlink/v2.0"]
	path = mavlink/include/mavlink/v2.0
	url = https://gitee.com/robin_shaun/c_library_v2.git
	branch = master
[submodule "src/drivers/uavcan/libuavcan"]
	path = src/drivers/uavcan/libuavcan
	url = https://gitee.com/robin_shaun/uavcan.git
	branch = px4
[submodule "Tools/jMAVSim"]
	path = Tools/jMAVSim
	url = https://gitee.com/robin_shaun/jMAVSim.git
	branch = master
[submodule "Tools/sitl_gazebo"]
	path = Tools/sitl_gazebo
	url = https://gitee.com/robin_shaun/sitl_gazebo.git
	branch = master
[submodule "src/lib/matrix"]
	path = src/lib/matrix
	url = https://gitee.com/robin_shaun/Matrix.git
	branch = master
[submodule "src/lib/ecl"]
	path = src/lib/ecl
	url = https://gitee.com/robin_shaun/ecl.git
	branch = master
[submodule "boards/atlflight/cmake_hexagon"]
	path = boards/atlflight/cmake_hexagon
	url = https://gitee.com/robin_shaun/cmake_hexagon.git
	branch = px4
[submodule "src/drivers/gps/devices"]
	path = src/drivers/gps/devices
	url = https://gitee.com/robin_shaun/GpsDrivers.git
	branch = master
[submodule "src/modules/micrortps_bridge/micro-CDR"]
	path = src/modules/micrortps_bridge/micro-CDR
	url = https://gitee.com/robin_shaun/micro-CDR.git
	branch = px4
[submodule "platforms/nuttx/NuttX/nuttx"]
	path = platforms/nuttx/NuttX/nuttx
	url = https://gitee.com/robin_shaun/NuttX.git
	branch = px4_firmware_nuttx-9.1.0+
[submodule "platforms/nuttx/NuttX/apps"]
	path = platforms/nuttx/NuttX/apps
	url = https://gitee.com/robin_shaun/NuttX-apps.git
	branch = px4_firmware_nuttx-9.1.0+
[submodule "platforms/qurt/dspal"]
	path = platforms/qurt/dspal
	url = https://gitee.com/robin_shaun/dspal.git
[submodule "Tools/flightgear_bridge"]
	path = Tools/flightgear_bridge
	url = https://gitee.com/robin_shaun/PX4-FlightGear-Bridge.git
	branch = master 
[submodule "Tools/jsbsim_bridge"]
	path = Tools/jsbsim_bridge
	url = https://gitee.com/robin_shaun/px4-jsbsim-bridge.git
[submodule "src/examples/gyro_fft/CMSIS_5"]
	path = src/examples/gyro_fft/CMSIS_5
	url = https://gitee.com/mirrors/CMSIS_5

3.再次执行子模块更新指令

git submodule update --init --recursive

4.编译

make px4_sitl_default gazebo

终端中不报错,gazebo中有无人机即测试成功。
gazebo黑屏卡住时可以ctrl+c关闭后重新打开即可。
5.配置环境变量,注意与自己的路径相对应

source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo

6.测试

cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch

此时gazebo中显示无人机,机翼不转则表示与mavros通讯成功,此时终端中显示大致如下。
在这里插入图片描述

也可使用一下代码验证

rostopic echo /mavros/state

若显示connected: True,则通讯成功
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Ubuntu18.04安装px4+mavros(解决mavros报错问题)】 的相关文章

随机推荐

  • python使用tkinter编写一个数据显示窗口(实时显示更新的数据)

    以下代码分为python3版本与python2版本 xff0c python3版本主要靠 self main window after 刷新的时间毫秒 需要刷新的函数这里为窗口的清除与插入函数 刷新函数进行 xff0c python2版本则
  • python 手眼标定OpenCV手眼标定(calibrateHandeye())一

    以下代码来源 本篇博客通过该代码 xff0c 附上记录的公式与查找连接 xff0c 方面以后调用能弄懂各个参数的意思 本篇看完看第二篇代码踩坑部分python 手眼标定OpenCV手眼标定 xff08 calibrateHandeye xf
  • ROS+VNC+Docker(docker下的可视化ROS)镜像源分享

    两个都可用 xff0c 推荐第二个毕竟要新一些 xff0c 以下docker环境中安装vscode链接的方法 1 作者 ct2034 截至本博客写的时候 xff0c 最后更新于2020 xff08 亲测感觉不错 xff09 带有完整 ros
  • 使用docker下的硬件使用(一)之双目摄像头

    本篇博客又名 xff1a 物理机 xff08 宿主机win xff09 下虚拟机 xff08 ubuntu xff09 中的docker下硬件 xff08 双目相机 xff09 调用 一 环境介绍 如下图 xff1a 我在windows10
  • AI自主图像生成 之 stable-diffusion(Anaconda+pycharm)本地部署

    无需订阅专栏 AI自主图像生成 之 stable diffusion 运行效果展示 一 介绍与实验效果 文章末尾包含 1 我已打包到百度云的部署验证成功并包含模型权重的代码文件 可直接链接完成python环境配置的anaconda环境下使用
  • AI自主图像生成 之 stable-diffusion—运行效果展示

    stable diffusion用途 xff1a 输入文字描述 xff0c 输出对应图片 The chicken with the hair parted in the middle and the suspenders is playin
  • python画甘特图

    1 使用plotly 安装包下载 span class token keyword import span plotly span class token punctuation span express span class token
  • bat 打开exe文件,并显示进度条

    如下 C camera flow njl CAM exe是你的exe文件路径 180 就是 180 s xff0c 即三分钟显示完毕 chcp span class token number 65001 span span class to
  • 基于opencv的掩膜生成 python

    代码将遍历JPG dir文件夹中的所有jpg文件 xff0c 并对于每一个jpg文件 xff0c 读取同名的JSON文件 xff0c 然后根据JSON文件中记录的标注区域的坐标在JPG图像上绘制掩膜图像 最后 xff0c 将掩膜图像保存到O
  • 用 Python 解数独(Sudoku)

    芬兰数学家因卡拉花费3个月时间设计出的世界上迄今难度最大的数独 数独是 9 横 9 竖共有 81 个格子 xff0c 同时又分为 9 个九宫格 规则很简单 xff1a 每个空格填入 1 9 任意一个数字 xff0c 需要保证每个横排和竖排以
  • alembic 如何使用?

    在之前的数据库操作中 xff0c 我们新增一个字段是不是每次都得删除数据库表 xff0c 然后再重新将新创建的数据库表映射到数据库中 这样操作是不是很蛋疼 xff1f 是吧 xff1f 于是sqlalchemy作者拜尔为了解决这一问题 xf
  • ROS中用opencv库实现物体中心点提取

    老师搞了个很简陋的双目摄像头 xff0c 只能输出两个摄像头的图像 xff0c 所以为了提取定位物体中心坐标 xff0c 还得算个深度距离 先对两个摄像头图像处理一下 xff0c 基于阈值分割 xff0c 然后提取个轮廓 xff0c 计算个
  • linux c语言高级编程-目录操作

    目录操作总共有以下几个函数 xff1a 1 创建目录 int mkdir const char pathname mode t mode 2 删除目录 int rmdir const char pathname 3 查看目录状态 int s
  • BeagleBone Black使用(一):狗板简介

    前言 BeagleBone 与 Arduino 和 Raspberry Pi xff08 树莓派 xff09 可以说是目前应用最广泛的三大嵌入式开源平台 而 BeagleBone 在一定程度上可视为融合了 Arduino 与树莓派的优点 x
  • 慧数汽车大数据分析:车市竞争将由打造爆款向构建“产品矩阵”转型

    在车企只要完成年销量三十万辆的目标时 xff0c 只需认认真真培育出一款爆款车就足够了 xff0c 如哈弗H6 完成年销量50万辆的目标时 xff0c 只需认认真真培育出一两款爆款车就足够了 xff0c 如哈弗H6 43 哈弗H2 但为什么
  • 4.10 Python tuple元组详解

    元组 xff08 tuple xff09 是 Python 中另一个重要的序列结构 xff0c 和列表类似 xff0c 元组也是由一系列按特定顺序排序的元素组成 元组和列表 xff08 list xff09 的不同之处在于 xff1a 列表
  • 使用ROS和RealSense直接获取点云

    点云获取 Realsense获取内参创建ROS工作环境创建ROS工作包package向package中添加cpp代码catkin make编译失败失败1 使用ROS订阅节点 xff08 rgb和depth xff09 ROS包安装升级Rea
  • 集成单点登录

    随着现在的系统越来越多 xff08 OA考勤 xff0c 学生宿舍管理等等 xff09 在使用中是不是还在为一次一次的登录而烦恼 xff1f 或者忘了密码而尴尬 xff0c 现在 xff0c 有一个好东西来解决这个问题了 那就是单点登录 单
  • PID算法入门与C语言代码实现

    PID算法的入门理解以及C代码实现 在结束了自控原理的学习后 xff0c 了解到PID算法是一种万能算法 xff0c 在课设中也是经常使用到的一种算法 xff0c 所以想具体的来进行以下总结与学习 xff0c 如果有错漏的地方 xff0c
  • 【Ubuntu18.04安装px4+mavros(解决mavros报错问题)】

    Ubuntu18 04安装px4 43 mavros xff08 解决mavros报错问题 xff09 安装ros melodic重新安装gazebo9 19安装mavros安装px4 我的电脑为联想R7000P2021款 xff0c 之前