目录

写在前面

为什么一定要用PX4 1.13呢?

依赖安装

ROS安装

Gazebo安装

1.漏掉指令

2.gitclone出错

MAVROS安装

PX4配置

XTDrone源码下载

用键盘控制无人机飞行


写在前面

1.作者的Ubuntu版本为20.04,ROS版本为noetic。虽然官方给的文档里建议使用18.04与melodic ,但是考虑到已经安装了20.04以及对应版本的ROS,再加上队友安装18.04之后网络连接有问题,所以选择使用20.04版本。(事实证明,20.04版本也是可以的,但是22.04版本应该会有很有很多问题,具体原因不作解释)

2.官方文档有至少三处地方是有错误的,会对初学者造成一定困扰。并且一些简单错误,比如对gazebo插件作修改时,ROS版本要对应,文档给的是melodic,如果是20.04,要改为对应的noetic。

3.文档默认一部分操作我们是会的,比如修改~/.bashrc文档,指令为vim ~/.bashrc,如果要插入内容输入i(insert)即可,删除一行为dd,保存并退出为ESC+:(英文)+wq。

4.本文按照文档的顺序,主要介绍作者及同学遇到的error的解决办法以及文档里的错误。

5.如果要进行用键盘控制无人机飞行一步,则必须按照最新的文档进行。

为什么一定要用PX4 1.13呢?

我们来对比两个PX4版本的launch文件即可发现端倪

这是PX4 1.11版本的

这是PX4 1.13版本的

很明显,我们可以发现用键盘控制无人机飞行所需的indoor1.launch文件在PX4 1.11里不存在,而直接复制粘贴launch文件会出问题(下文有提到),因此最优解就是下载PX4 1.13版本的。

依赖安装

在进行如下代码时,作者出现了以下错误:

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

报错提示python-pip没有可安装候选,是因为20.04默认是使用python3的,而python-pip对应python2,因此会出现错误。只需将python-pip安装包删去即可。

ROS安装

我的ROS是在之前安装的,几乎没有出现错误,以上是安装好之后的页面。

Gazebo安装

1.漏掉指令

在rosrun gazebo_ros gazebo时,发现不能正常打开,而直接输入gazebo可以打开,报以下错误:

出现该错误是因为我漏了一条以下图片里的安装命令

2.gitclone出错

由于github是外国网站,能git成功纯靠网络与运气。有条件的可以翻墙,也可以更换国内的镜像源。PS:本人一般习惯多试几次,一般多试几次就好啦

MAVROS安装

这一步几乎不会报错,按照提示将安装包换为对应的ROS版本号即可。

PX4配置

这一步对应的文档有错误,首先来看一下进行make px4_sitl_default gazebo报错页面

1.第一个报错:没有规则来制作目标

这是由于我们下载好压缩包然后解压之后,放到主目录下,按照文档cd进入PX4_Firmware后,里面还有一个PX4_Firmware_13文件夹,没有make所需的规则。所以我尝试将PX4_Firmware_13移到主目录里,并将其重命名为PX4_Firmware,然后重新make,结果是没有以上制作目标的错误了,然而出现了以下错误(第二个错误)

2.第二个错误:

提示说现在的cmake文件和cmake创建时的文件不同,通过检查cmake创建时的源代码(如图)可知

cmake最初位于主目录下的PX4_Firmware_13下,而按照文档的要求它位于PX4_Firmware里,

我的解决办法是先将PX4_Firmware文件夹下的PX4_Firmware_13放到主目录下,并把原来的PX4_Firmware文件夹删除,然后进入PX4_Firmware_13文件夹下的build文件夹里,将build.ninja和CMakeCache.text删除,然后重新make即可。

3.launch既不是…也不是…

这是由于没有添加路径或者没有正确添加路径以及没有source之后的结果,只需添加好路径然后source就好了。

温馨提示:由于文件夹改为了PX4_Firmware_13,因此对应的路径也要修改,修改为:

source ~/catkin_ws/devel/setup.bash
source ~/PX4_Firmware_13/Tools/setup_gazebo.bash ~/PX4_Firmware_13/ ~/PX4_Firmware_13/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware_13
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware-13/Tools/sitl_gazebo

4.roslaunch px4 mavros_posix_sitl.launch及建立通信时错误

(1)有可能是路径的问题(但是按照上面的代码添加之后应该不会有问题),可以重新添加然后source一下

(2)也有可能是版本不适配的问题,PX4 1.11版本对应旧版本的XTDrone,而PX4 1.13对应新版本的XTDrone,所以请务必按照一个文档来,不要混着用

(3)以上两种情况都没有,可能是launch文件里的参数(fcu_url)设置有偏差。解决办法:在PX4_Firmware_13下launch文件里找可以正常建立通信的fcu_url参数,然后在mavros_posix_sitl.launch里进行更改。

参考这篇文章 :px4仿真时,/mavros/state现实连接不上_老李雅普诺夫的博客-CSDN博客

XTDrone源码下载

这一步同样注意将PX4_Firmware改为PX4_Firmware_13,修改后的代码为

git clone https://gitee.com/robin_shaun/XTDrone.git
cd XTDrone
git checkout 1_13_2
git submodule update --init --recursive
# 修改启动脚本文件
cp sitl_config/init.d-posix/* ~/PX4_Firmware_13/ROMFS/px4fmu_common/init.d-posix/
# 添加launch文件
cp -r sitl_config/launch/* ~/PX4_Firmware_13/launch/
# 添加世界文件
cp sitl_config/worlds/* ~/PX4_Firmware_13/Tools/sitl_gazebo/worlds/
# 修改部分模型文件
cp -r sitl_config/models/* ~/PX4_Firmware_13/Tools/sitl_gazebo/models/
# 替换同名文件
cd ~/.gazebo/models/
rm -r stereo_camera/ 3d_lidar/ 3d_gpu_lidar/ hokuyo_lidar/

这一步也不会出现太多大问题,按照步骤来即可。

用键盘控制无人机飞行

这一步有两处地方需要修改,因此我直接将代码修改好:

在一个终端运行

cd ~/PX4_Firmware_13
roslaunch px4 indoor1.launch

Gazebo启动后,在另一个终端运行(注意要等Gazebo完全启动完成,或者可能脚本会报错)

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

与0号iris建立通信后,在另一个终端运行

cd ~/XTDrone/control/keyboard
python3 multirotor_keyboard_control.py iris 1 vel

这一步会出现的错误

这是由于我的PX4版本为1.11,但是indoor1.launch是从PX4 1.13里复制粘贴来的,出现了没有返回值等等问题。

然后最初我没有意识到这个问题的本质在哪,然后在老师的提示下,检查了前面建立通信那一步是否能正常运行,结果出现了以下报错

提示在建立symlink时出现问题,但是最初时是没问题的,我百思不得其解,百度搜索也没搜索到,与老师调试两个小时之后也是无果,兜兜转转几乎回到了原点。百度给的答案不是说虚拟机内存不够就是说更改了主目录,总之,都不是我想要的解决办法。

进行了思路的整理与分析后,找到了问题所在,在建立通信时,全是PX4 1.11的文件,但是在进行到用键盘控制飞行时,我将PX4_Firmware_13下的launch文件夹里的全部内容移到了PX4_Firmware下,很显然PX4_Firmware_13对应的是PX4 1.13的文件,两者肯定是有兼容性等问题的。因此,当我把1.11的所有东西都删去之后,全部安装1.13的东西,就没有出现这个问题了。飞机也可以正常起飞了。

北大智航杯竞赛仿真环境基础配置(对应PX4 1.13版)相关推荐

  1. Java开发环境基础配置

    开发环境基础配置 概述 安装JDK 配置JDK(选做) 如何配置 为什么要配置 第一个Java程序 hello world案例 安装IDEA IDEA的使用(重要) 第一行IDEA代码 创建Proje ...

  2. FVCOM 环境基础配置(1) intel编译器 下载与安装

    FVCOM 配置(1):intel编译器的下载与安装 FVCOM模型需要Intel编译器 之前的Intel Parallel Studio XE2019软件需要认证许可.不过现在Intel已经免费开发 ...

  3. Ubuntu环境基础配置 -- 网络配置

    转载1: Ubuntu镜像下载. 转载2: Ubuntu Server和Desktop版本的区别. 转载3: Server版.Desktop版本网络配置. 转载4: Ubuntu18下的网络配置. 转 ...

  4. ROS2学习笔记(三)-- 采集虚拟仿真环境图像并发布

    简介:ROS2功能的学习我们还是在基于OpenAI的gym虚拟仿真环境中来完成,gym虚拟仿真环境安装请参考另一篇教程,这里不再重复说明,接下来我们开始创建一个ROS2的功能节点,并发布虚拟仿真环境小 ...

  5. Husky仿真环境配置

    Husky仿真环境配置 1. 下载安装 2. 运行仿真 1. 下载安装 ROS官方: Robots/Husky - ROS Wiki Github官方: Husky/Husky husky_base: ...

  6. Ubuntu18.04下基于ROS和PX4的无人机仿真平台的基础配置搭建(XTDrone的)

    摘自:https://www.ngui.cc/51cto/show-23557.html Ubuntu18.04下基于ROS和PX4的无人机仿真平台的基础配置搭建 编程学习 · 2020/7/12 1 ...

  7. AESIM与MATLAB联合仿真环境搭建

    AMESIM与MATLAB联合仿真环境搭建 写在前面 1 Visual c++2010安装 2 Amesim安装 3 联合仿真环境变量配置 写在前面 两个软件联合仿真很让机械人头痛,笔者也是苦于两个软 ...

  8. 【.NET6+Modbus】Modbus TCP协议解析、仿真环境以及基于.NET实现基础通信

    接下来的内容,我会以从头开发一个简单的基于modbus tcp通信的案例,来实现一个基础的通信功能. 有关环境: 开发环境:VS 2022企业版 运行环境:Win 10 专业版 .NET 环境版本:. ...

  9. pybullet机器人仿真环境搭建 1.安装pybullet,测试官方示例,基础环境搭建

    pybullet机器人仿真环境搭建 1.安装pybullet 前言 安装 测试官方示例 基础环境搭建 导入pybullet 创建服务端 (可选)配置图形GUI 添加资源路径 设置重力 加载模型 迭代运 ...

最新文章

  1. mysql 分组排序_MySQL如何实现Excel分组排序功能?
  2. linux脚本读取mssql数据库,WebShell通过SQL语句管理MSSQL
  3. LeetCode Implement Trie (Prefix Tree)(字典树)
  4. Ubuntu Apache 服务之 PHP 配置
  5. Power Designer介绍
  6. 我的Notepad++环境配置
  7. 自定义地图怎么做成html,自定义html为谷歌地图制作标记
  8. 计算机技术为我们带来的影响,计算机技术对社会发展的影响探析
  9. XP系统时间同步和开启WindowsTime服务
  10. win的反义词_趣味记忆—小学英语必须掌握的120组反义词
  11. 正则表达式经典教程-转
  12. gromacs 安装_gromacs cpu版安装
  13. (附链接)12个画出漂亮神经网络图的工具
  14. 【GDI+】MFC画图- 消除锯齿(转)
  15. JAVA基础数据类型转化
  16. android 开发蓝牙电子秤,GitHub - xiangbohua/scales-bridge: scales-bridge 电子称 蓝牙电子秤 连接库...
  17. 计算机教学反思杂文,学无止境_教学反思_教学随笔
  18. 传智播客张孝祥java邮件开发随笔01
  19. 修复 Window 10/11 下 “未提供有关电源计划的信“ 错误
  20. dedecms 发布文章时,关键字会自动加内链

热门文章

  1. STM32最小系统板程序下载
  2. 网传最牛逼的五十句话
  3. a+aa+aaa+aaaa+.......
  4. 仿抖音 火山视频滑动播放
  5. 条码软件如何批量制作A级EAN 13条码
  6. ERROR RC.EXE 已退出(退出代码01)解决方法
  7. 如何解决手机耳机插入电脑声音不清晰/很杂
  8. 第九章 SQL聚合函数 MIN
  9. 【吴恩达机器学习笔记】第2周 - python写代价函数/成本函数
  10. 安卓cpu调速器与IO调度基本知识