Ubuntu20.04下基于ROS和PX4的无人机仿真平台的基础配置搭建(我所遇到的问题)

2023-05-16

写在前面:

我目前也处于学习阶段,当时按照ROS教程安装的20.04,随后搭建XTDrone阶段因为版本问题出现了很多问题,这是我根据问题,检索后汇总的一些解决措施。

本文中提到的问题可能不是我遇到的所有问题,由于我整体配置过程比较混乱,所以我主要挑选了自己记忆比较深刻的问题及搜索到的解决方法进行了列举。大家遇到了其他问题都可以直接搜索报错信息,可能可以获得解决方法。

(很多部分可能没有留存报错信息的截图)

参考https://blog.csdn.net/sirobot/article/details/115521712

https://blog.csdn.net/yinhangbin/article/details/125248857

https://blog.csdn.net/qq_45067735/article/details/107303796

https://blog.csdn.net/weixin_45574260/article/details/122442832

详细过程按照语雀文档顺序进行

https://www.yuque.com/xtdrone/manual_cn

1.初始环境依赖问题

初始执行以下命令,显示报错  “软件包 python-empy 没有可安装候选” 等

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

解决:Python 2已经从ubuntu20.04中移除,需要执行以下命令 安装python 2

sudo add-apt-repository universe
sudo apt update 
sudo apt install python2

解决后,继续安装依赖如下

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

显示错误:Command 'pip2' not found

解决方法:以下述命令安装全局pip2,再执行上述命令

curl  https://bootstrap.pypa.io/pip/2.7/get-pip.py  --output get-pip.py
sudo python2 get-pip.py

2.ROS安装部分

具体安装过程我参考了1.2.4 安装 ROS · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

若初始自己建立了工作空间但是名字不是catkin_make,最好按照语雀文档中教程重新创建工作空间catkin_make并编译,其中catkin build需要先装catkin-tools(sudo apt install python3-catkin-tools)

3.gazebo安装部分

我安装 的gazebo的开发版,具体指令(按照教程那三行卸载指令,卸载原本gazebo后执行)

sudo apt-get install libgazebo9-dev

此外注意 

4. MAVROS安装

安装前要更新软件库

sudo apt-get update
sudo apt-get upgrade

随后再根据教程安装

5.PX4配置

我采取的直接编译下载好的PX4_Firmware,我将其提取(解压)到了主目录,方便按照教程执行cd PX4_Firmware 后直接进入相应目录

其中,修改 ~/.bashrc,需要使用指令:

gedit ~/.bashrc

将教程中的四行路径如下,全部复制到打开的文本的最后,保证前两行source顺序不要颠倒

source ~/catkin_ws/devel/setup.bash
source ~/Firmware/Tools/setup_gazebo.bash ~/Firmware/ ~/Firmware/build/px4_sitl_default

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo

 完成后更新~/.bashrc

source ~/.bashrc

此时在按照教程进行,执行roslaunch时候不会出如下错误

RLException: [mavros_posix_sitl.launch] is neither a launch file in package [px4] nor is [px4] a launch file name. The traceback for the exception was written to the log file

6.安装地面站

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

7. XTDrone源码下载

其中执行到教程中 cd ~/.gazebo/models/ 可能出错没有models此目录

解决:在教程 安装MAVROS前,小字部分提示可以下载了个models.zip,需将该zip文件提取到(解压)~/.gazebo中。其中,.gazebo为隐藏文件,可通过按ctrl+H显示隐藏文件

8.键盘控制飞行

执行下述指令时

cd ~/XTDrone/communication/
python multirotor_communication.py iris 0

报错:ImportError: No module named rospkg

解决:输入指令安装 rospkg

sudo pip2 install rospkg

再次运行后,又报错

import rospy
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/__init__.py", line 49, in <module>
    from .client import spin, myargv, init_node, \
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/client.py", line 60, in <module>
    import rospy.impl.init
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/init.py", line 54, in <module>
    from .tcpros import init_tcpros
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros.py", line 45, in <module>
    import rospy.impl.tcpros_service
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_service.py", line 54, in <module>
    from rospy.impl.tcpros_base import TCPROSTransport, TCPROSTransportProtocol, \
File "/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_base.py", line 160
    (e_errno, msg, *_) = e.args
                   ^
SyntaxError: invalid syntax

需要将**/opt/ros/noetic/lib/python3/dist-packages/rospy/impl/tcpros_base.py** 的(e_errno, msg, *_) = e.args 改为(e_errno, msg) = e.args

具体方法:

cd opt/ros/noetic/lib/python3/dist-packages/rospy/impl
sudo gedit tcpros_base.py

此时会打开相应文档,按照报错找到相应行(如上述报错的 line 160),将原本的(e_errno, msg, *_) = e.args 改为(e_errno, msg) = e.args

此时再按照教程继续进行则不会再报错,实现键盘控制无人机,具体无人机键盘控制方法可以百度

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

Ubuntu20.04下基于ROS和PX4的无人机仿真平台的基础配置搭建(我所遇到的问题) 的相关文章

  • ROS之QtCreator开发环境搭建

    文章目录 系统环境 官方教程 安装 卸载 使用 导入工作空间 构建与运行 编写测试程序 系统环境 操作系统 Ubuntu20 04 ROS版本 Noetic 官方教程 按照官方教程或者下面笔记中的内容均能进行环境搭建 笔记中另外做了部分补充
  • gazebo通过sdf搭建仿真环境和机器人Husky

    具体格式要求可参考 http sdformat org spec ver 1 6 elem sdf
  • Ubuntu镜像下载地址

    镜像地址https launchpad net ubuntu cdmirrors
  • Ubuntu下vscode配置ROS环境

    摘要 最近准备放弃用clion开发ROS使用更主流的vscode 整理一下在ubuntu18 04下的VSCode安装和ROS环境配置流程 安装 方法一 软件商店安装 个人还是推荐使用ubuntu软件下载vscode 简单不容易出错 方法二
  • ROS noetic tf demo错误处理及python版本切换

    文章目录 报错描述及解决 ubuntu20 04下python版本切换 报错描述及解决 ubuntu版本 20 04 ROS版本 noetic roslaunch turtle tf turtle tf demo launch 报错信息 t
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • 局域网下ROS多机通信的网络连接配置

    1 在路由器设置中固定各机器IP地址 在浏览器中输入路由器的IP地址 例如TP LINK路由器的IP为 192 168 1 1 进入登录页面后 输入用户名和密码登录 用户名一般为admin 密码为自定义 在 基本设置 gt LAN设置 gt
  • 程序“catkin_init_workspace”尚未安装。 您可以使用以下命令安装: sudo apt install catkin

    程序 catkin init workspace 尚未安装 您可以使用以下命令安装 sudo apt install catkin 问题如图 先贴上解决后的效果 运行环境 ubuntu 16 04 ros版本 kinetic 问题解释 这个
  • ubuntu18.04命令安装ros2

    ROS2官方文档 本教程为apt get命令安装方式 官网教程有点问题 借鉴一下大佬的安装方式 文章目录 1 安装ROS2 1 1 安装秘钥相关指令 1 2 授权秘钥 1 3 添加ROS2软件源 1 4 安装 2 设置环境 可选但是推荐 2
  • 在 CLion 中设置 ROS 包

    我正在使用 CLion C IDE 来编辑 ROS 包 我可以通过打开CMakeLists txt文件 但是 我收到一个错误 FATAL ERROR find package catkin 失败 在工作区和 CMAKE PREFIX PAT
  • 在 Python 3 中导入 Rosbag

    我正在尝试从 Python 3 读取 rosbag 文件 我安装了 ROS2 Eloquent Elusor 它应该支持 Python 3 当我跑步时 import rosbag bag rosbag Bag test bag 从Pytho
  • ROS AsyncSpinner 的多线程行为

    我试图了解 ROS 中的 AsyncSpinner 是如何工作的 因为我可能有一些误解 你可以找到类似的问题here As seen here它的定义提到 异步旋转器 产生几个线程 可配置 将并行执行回调 同时不会阻塞执行该操作的线程 叫它
  • Caught exception in launch(see debug for traceback)

    Caught exception in launch see debug for traceback Caught exception when trying to load file of format xml Caught except
  • 在 Ubuntu 18.10 上安装 ROS Melodic

    I can t是唯一对 Cosmic 与 Wayland 和 Melodic 的组合感兴趣的人 我会坦白说 我似乎已经在 XPS 13 9370 上成功管理了此操作 或者至少安装脚本 最终 成功完成 然而 有一个非常棘手的解决方法 无论结果
  • catkin_make后找不到ROS包

    我根据 ROS 的 Wiki 页面创建了一个 ROS 工作区 我还使用创建了一个包catkin create pkg在我刚刚创建的工作区下 然后 按照 ROS Wiki 中的步骤使用以下命令构建包catkin make 构建包后 我插入命令
  • catkin_make 编译报错 Unable to find either executable ‘empy‘ or Python module ‘em‘...

    文章目录 写在前面 一 问题描述 二 解决方法 参考链接 写在前面 自己的测试环境 Ubuntu20 04 一 问题描述 自己安装完 anaconda 后 再次执行 catkin make 遇到如下问题 CMake Error at opt
  • 在 ROS - Python 中使用来自多个主题的数据

    我能够显示来自两个主题的数据 但无法在 ROS 中实时使用和计算这两个主题的数据 用 Python 代码编写 您有想法存储这些数据并实时计算吗 谢谢 usr bin env python import rospy import string
  • ROS 问题:libQt5Core.so.5:无法打开共享对象文件:没有这样的文件或目录

    当我跑步时 rosrun turtlesim turtlesim node 在 Ubuntu 上 我收到以下消息 opt ros noetic lib turtlesim turtlesim node 加载共享库时出错 libQt5Core
  • 如何从里程计/tf数据获取投影矩阵?

    我想将视觉里程计的结果与 KITTI 数据集提供的事实进行比较 对于地面中的每一帧 我都有一个投影矩阵 例如 1 000000e 00 9 043683e 12 2 326809e 11 1 110223e 16 9 043683e 12
  • 如何使用一个凉亭同时创建两个地图?

    如下图所示 现在我的gazebo正在运行2个slam gmapping包 首先是 turtlebot slam gmapping 发布到 map 主题 第二个是 slam gmapping 发布到与第一个相同的 map 主题 我想创建一个新

随机推荐

  • c语言-查找指定字符

    题目源自pta xff0c 侵删 本题要求编写程序 xff0c 从给定字符串中查找某指定的字符 输入格式 xff1a 输入的第一行是一个待查找的字符 第二行是一个以回车结束的非空字符串 xff08 不超过80个字符 xff09 输出格式 x
  • linux查看日志文件内容命令sed、cat、tac、more、less、head、tail、echo 1、按时间查询

    查询日志 xff1a linux查看日志文件内容命令sed cat tac more less head tail echo 1 按时间查询 sed n 39 2017 09 20 14 00 2017 09 20 15 00 p 39 c
  • 计算机保研面试经验分享—重庆大学

  • uCOS学习笔记——实时操作系统概述

    一 概述 RTOS real time operation system 既实时操作系统 通俗来说 xff0c 实时操作系统正如一个大管家一般 xff0c 可以根据任务的要求 xff0c 进行资源管理 xff0c 消息管理 xff0c 任务
  • windows HLK server部署操作步骤

    Windows Hardware Lab Kit HLK 微软官方提供的测试工具组 xff0c 也是微软的一种认证工具 xff0c 只有经过HLK测试过的windows系统 xff0c 官方才认可 The Windows Hardware
  • uCOS学习笔记----任务管理

    一 任务管理 一 任务的概念 从前文得知 xff0c uCOS可以将裸机中庞大的while 1 循环拆解为执行不同功能的小程序 xff0c 并依据一定的规则调度任务的运行 这些小程序就被称为任务 一般而言 xff0c 任务由三个部分构成 x
  • 想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事

    目录 1 话题引入 2 在刷题过程中一些自己想说的 3 刷题时的一些小建议 4 个人感悟 1 话题引入 首先介绍一下我自己 xff0c 本人是一名专科大一的学生 xff1b 非计算机本专业 xff1b 因为想拓宽自己的知识面和技术 xff1
  • Java实现爬虫

    目录 xff1a 1 爬虫原理 2 本地文件数据提取及分析 3 单网页数据的读取 4 运用正则表达式完成超连接的连接匹配和提取 5 广度优先遍历 xff0c 多网页的数据爬取 6 多线程的网页爬取 7 总结 爬虫实现原理 网络爬虫基本技术处
  • Python+ADB脚本

    目录 准备工具 问题解决 xff1a 如何安装adb和python xff1f 编写程序 实现 注意 xff1a 准备工具 进入正题 xff0c 首先要准备的工具如下 1 一台正常的电脑且安装adb和python环境 2 一部安卓手机 4
  • (++i)+(++i)+(++i)计算的探讨

    今天在进行着代码选择题练习的时候 xff0c 我忽然看到了这一题 我左思右想 xff0c 发现答案应当是 xff08 2 xff09 43 xff08 3 xff09 43 xff08 4 xff09 61 9 xff0c 可我仍然保有着疑
  • 超详细讲解长度受限制的字符串函数(保姆级教程!!!)

    超详细讲解长度受限制的字符串函数 xff08 保姆级教程 xff01 xff01 xff01 xff09 长度受限制的字符串函数strncpy函数strncpy函数的使用strncpy函数的模拟实现 strncat函数strncat函数的使
  • 超详细讲解字符串查找函数(保姆级教程!!!)

    超详细讲解字符串查找函数 xff08 保姆级教程 xff01 xff01 xff01 xff09 字符串查找函数strstr函数strstr函数的使用strstr函数的模拟实现 strtok函数strtok函数的使用strtok函数的模拟实
  • 超详细讲解线性表和顺序表!!

    超详细讲解线性表和顺序表 xff01 xff01 线性表顺序表顺序表的概念及结构静态顺序表动态顺序表 顺序表接口实现1 创建2 初始化3 扩容4 尾插5 打印6 销毁7 尾删8 头插9 头删10 插入任意位置11 删除任意位置12 查找13
  • Leetcode—移除元素、删除有序数组中的重复项、合并两个有序数组

    移除元素 此题简单 xff0c 用双指针方法即可 xff0c 如果右指针指向的元素不等于val xff0c 它一定是输出数组的一个元素 xff0c 我们就将右指针指向的元素复制到左指针位置 xff0c 然后将左右指针同时右移 xff1b 如
  • 超详细讲解C语言文件操作!!

    超详细讲解C语言文件操作 xff01 xff01 什么是文件文件名 文件的打开和关闭文件指针文件的打开和关闭 文件的顺序读写文件的随机读写fseekftellrewind 文本文件和二进制文件文件读取结束的判定文件缓冲区 什么是文件 磁盘上
  • windows HLK server部署操作步骤

    Windows Hardware Lab Kit HLK 是微软官方提供的一个测试工具组 xff0c 也是windows系统认证工具 The Windows Hardware Lab Kit Windows HLK is a test fr
  • 超详细讲解Java的数据类型与变量

    超详细讲解Java的数据类型与变量 字面常量数据类型变量整型变量长整型变量短整型变量字节型变量 浮点型变量双精度浮点型单精度浮点型 字符型变量布尔型变量 转换自动类型转换 隐式 强制类型转换 显式 类型提升 字面常量 在System Out
  • java.lang.instrument ASSERTION FAILED ***: “error

    java lang instrument ASSERTION FAILED error 61 61 JVMTI ERROR NONE at Reentrancy c line 161 问题记录 应该是jdk版本更新的问题 第一次运行代码时出
  • C语言实现汉诺塔问题(保姆式讲解)

    前言 大家好 xff0c 又是再一次分享文章 xff0c 我十分感谢各位能够点开这篇花费我颇多时间才解决的汉诺塔问题 xff0c 接下来我就要分享一下自己的所思所想 xff0c 希望能给各位带来一些不一样的收获吧 提醒 汉诺塔问题的本质是函
  • Ubuntu20.04下基于ROS和PX4的无人机仿真平台的基础配置搭建(我所遇到的问题)

    写在前面 xff1a 我目前也处于学习阶段 xff0c 当时按照ROS教程安装的20 04 xff0c 随后搭建XTDrone阶段因为版本问题出现了很多问题 xff0c 这是我根据问题 xff0c 检索后汇总的一些解决措施 本文中提到的问题