Ubuntu18.04搭配无人机仿真环境(ROS,PX4,gazebo,Mavros,QGC安装教程)

Ubuntu18.04搭配无人机仿真环境

  • ROS环境配置
    • 版本
    • 安装
  • gazebo安装
  • Mavrosa安装
  • PX4源码下载和编译
  • 运行仿真
  • 地面站安装

ROS环境配置

我个人使用了代理环境进行下载。Linux没有代理的可以使用国内源。

  1. 清华大学源

sudo sh -c ‘. /etc/lsb-release && echo “deb
http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME
main” > /etc/apt/sources.list.d/ros-latest.list’

  1. 中科大源

sudo sh -c ‘. /etc/lsb-release && echo “deb
http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main” >
/etc/apt/sources.list.d/ros-latest.list’

版本

我个人使用的是linux18.04的版本,对应的ROS版本为Medolic。其他对应的版本如下。

系统版本ROS版本
14.04Indigo
16.04kinetic
18.04medolic
20.04noetic
22.04humble

安装

sudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com:80’
–recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

参考官网

在这里插入图片描述

sudo apt install ros-melodic-desktop-full

*如果安装过程中有问题可以参考我的个人文章。参考文章

gazebo安装

我们使用gazebo9不要使用11,11版本太新会出现配对问题。

(1)

sudo apt-get install gazebo9

(2) Gazebo本身是独立于ROS的,因此还需要安装ROS的Gazebo插件

  • sudo apt install ros-melodic-gazebo9-*
  • sudo apt install ros-melodic-gazebo-*

(3) 验证

  • roscore打开ros核心
  • rosrun gazebo_ros gazebo 如果gazebo成功打开就参观,如果有错误解决办法参考他人博客。推荐博客

Mavrosa安装

更新库

  1. sudo apt-get update
    sudo apt-get upgrade

开始安装
2.

  • sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras
  • wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
  • sudo chmod a+x ./install_geographiclib_datasets.sh
  • sudo bash ./install_geographiclib_datasets.sh
  1. 检查是否成功安装
    启动一个PX4进程
    rostopic list 查看相关Mavros话题,有就安装成功了

PX4源码下载和编译

下载源码,-b后面可以更换版本

  • git clone -b v1.12.3 https://github.com/PX4/PX4-Autopilot.git --recursive

启动相关脚本以安装依赖项目

  • bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

切换到对应下载目录里面去

  • cd PX4-Autopilot

编译

  • make px4_sitl_default gazebo

设置环境变量

  • gedit ~/.bashrc
    这里注意,每个人的安装文件夹不一样,所以位置也要注意。总之把你对应文件夹的路径要正确
 source ~/Firmware/PX4-Autopilot/Tools/setup_gazebo.bash~/Firmware/PX4-Autopilot/~/Firmware/PX4-Autopilot/build/px4_sitl_default export
ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/PX4-Autopilot export
ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/PX4-Autopilot/Tools/sitl_gazebo

完成保存之后

  • source ~/.bashrc

运行仿真

  • cd ~/ PX4-Autopilot
  • roslaunch px4 mavros_posix_sitl.launch

在这里插入图片描述如果使用下面命令。connected为True的话说明通信有效。即Mavros与TSL通信成功。

  • rostopic echo /mavros/state

在这里插入图片描述

地面站安装

关于地面站可以参考我个人的两篇文章,分别是APP安装和源码安装。
源码安葬需要自己编译,使用Qt.
参考1APP直接安装

参考2源码安装

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/61669.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 该如何预防 XSS 攻击

XSS 漏洞到底是什么&#xff0c;说实话我讲不太清楚。但是可以通过遇到的现象了解一下。在前端Form表单的输入框中&#xff0c;用户没有正常输入&#xff0c;而是输入了一段代码&#xff1a;</input><img src1 onerroralert1> 这个正常保存没有问题。问题出在了列表…

SpringSpringBoot常用注解

目录 一、核心注解二、Spring Bean 相关2.1 Autowired2.2 Component, Repository, Service, Controller2.3 RestController 与 Controller2.4 Configuration 与 Component2.5 Scope 三、处理常见的 HTTP 请求类型3.1 GET 请求3.2 POST 请求3.3 PUT 请求3.4 DELETE 请求3.5 PATC…

路由导航守卫中document.title = to.meta.title的作用以及路由跳转修改页面title

目录 &#x1f53d; document.title to.meta.title的作用 &#x1f53d; Vue路由跳转时如何更改页面title &#x1f53d; document.title to.meta.title的作用 路由导航守卫如下&#xff1a; router.beforeEach(async (to, from, next) > {document.title to.meta.ti…

原型模式(C++)

定义 使用原型实例指定创建对象的种类&#xff0c;然后通过拷贝这些原型来创建新的对象。 应用场景 在软件系统中&#xff0c;经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化&#xff0c;这些对象经常面临着剧烈的变化&#xff0c;但是它们却拥有比较稳定一致的…

js 正则表达式

js 正则表达式 http://tool.oschina.net/regex https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions 11 22 333

判断时间段是否重叠

1、逻辑公式 时间段1&#xff1a;start1&#xff08;开始时间&#xff09;&#xff0c;end1&#xff08;结束时间&#xff09; 时间段2&#xff1a;start2&#xff08;开始时间&#xff09;&#xff0c;end2&#xff08;结束时间&#xff09; 重叠条件为&#xff1a;start1 <…

易服客工作室:7个优质WordPress LMS线上教育系统插件比较(优点和缺点)

您是否正在为您的 WordPress 网站寻找最好的 LMS 插件&#xff1f;在线学习管理系统 (LMS) 插件允许您使用 WordPress 创建和运行类似 Udemy 的在线课程。 一个完美的 WordPress LMS 插件包括管理在线课程内容、处理订阅、运行和评分测验、接受付款等功能。 在本文中&#xf…

树结构--介绍--二叉树遍历的递归实现

目录 树 树的学术名词 树的种类 二叉树的遍历 算法实现 遍历命名 二叉树的中序遍历 二叉树的后序遍历 二叉树的后序遍历迭代算法 二叉树的前序遍历 二叉树的前序遍历迭代算法 树 树是一种非线性的数据结构&#xff0c;它是由n(n≥0)个有限节点组成一个具有层次关系…

iOS 实现图片高斯模糊效果

效果图 用到了 UIVisualEffectView 实现代码 - (UIVisualEffectView *)bgEffectView{if(!_bgEffectView){UIBlurEffect *blur [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];_bgEffectView [[UIVisualEffectView alloc] initWithEffect:blur];}return _bgEffect…

Spring Data JPA 详解

目录 一、概述1.1 JPA简介1.2 Spring Data JPA简介 二、配置及应用2.1 环境配置2.2 依赖添加2.3 实体类创建2.4 Repository接口创建2.5 示例程序运行 三、实体映射3.1 注解3.2 关系映射 四、Repository接口4.1 基本增删改查4.2 自定义查询方法4.3 使用 Sort 和 Pageable 进行排…

【236. 二叉树的最近公共祖先】

目录 1.题目描述2.算法思路2.1算法思路12.2算法思路2 3.代码实现3.1代码实现13.2 代码实现2 1.题目描述 2.算法思路 2.1算法思路1 2.2算法思路2 思想很简单&#xff0c;但是最难的是怎么用栈来记录q、p的路线。所以下面才是关键。 3.代码实现 3.1代码实现1 class Solution…

Codeforces Round 890 (Div. 2) D. More Wrong(交互题 贪心/启发式 补写法)

题目 t(t<100)组样例&#xff0c;长为n(n<2000)的序列 交互题&#xff0c;每次你可以询问一个区间[l,r]的逆序对数&#xff0c;代价是 要在的代价内问出最大元素的位置&#xff0c;输出其位置 思路来源 neal Codeforces Round 890 (Div. 2) supported by Constructo…