无人机PX4飞控ROS应用层开发:MAVROS 功能包介绍与飞控消息汇总(一)

概述

这个软件包提供了针对各种自动驾驶仪(如PX4,Ardupilot)使用 MAVLink 通信协议的通信驱动程序。 此外,它还提供了用于地面控制站(例如 QGroundControl)的 UDP MAVLink 桥接功能。

通常与PX4的offboard模式联合使用 Offboard控制背后的想法是能够使用在自动驾驶仪外运行的软件来控制 PX4 飞控, 这是通过 Mavlink 协议完成的。

其中硬件部分连接模式大部分如下: 在飞行器上部署一台小型将计算机,用 UART 转 USB 适配器连接飞控 

 ROS (机器人操作系统) 是一个通用的机器人库,可以用于为 PX4 自动驾驶仪创建强大的无人机应用程序。

MAVROS安装

MAVROS可以通过源码或者二进制安装。

二进制安装

通过下面指令进行二进制安装

sudo apt-get install ros-${ROS_DISTRO}-mavros ros-${ROS_DISTRO}-mavros-extras ros-${ROS_DISTRO}-mavros-msgs

其中ROS_DISTRO 需要根据ROS的本部换成 kinetic、noetic

然后需要安装 GeographicLib ,通过如下指令 先下载 文件 install_geographiclib_datasets.sh

wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh

执行这个文件

./install_geographiclib_datasets.sh

从飞控端通过MAVROS可以拿到的信息

通过在gazebo中启动 px4 ,并启动mavros ,来测试 通过MAVROS可以从飞控端获取的信息

在gazebo中启动px4

roslaunch px4 posix_sitl.launch

启动mavros指令

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

高度信息(mavros/altitude)

话题名称: mavros/altitude

频率 :10HZ

消息类型:mavros_msgs/Altitude

消息体定义:

std_msgs/Header header  
float32 monotonic
float32 amsl      
float32 local
float32 relative
float32 terrain
float32 bottom_clearance

解释

  • amsl (above mean sea level)平均海平面以上
  • local 本地坐标系下的
  • relative 相对地面的(应该加上对地测距才会有)

实例数据

gazebo中无人机在地面 > header: seq: 752 stamp: secs: 78 nsecs: 528000000 frame_id: "map" monotonic: 488.1638488769531 amsl: 488.08782958984375 local: 0.1731969118118286 relative: -0.0031573623418807983 terrain: nan bottom_clearance: nan

通过QGC 让其起飞 QGC显示高度为9.3m

点击无人机PX4飞控ROS应用层开发:MAVROS 功能包介绍与飞控消息汇总(一)——古月居可查看全文 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单机docker-compose部署minio

单机多副本docker-compose部署minio 简单介绍 如果服务器有限可以单机挂载多硬盘实现多副本容错(生产不推荐) 部署好的文件状态 有两个重要文件 docker-compose.yaml和nginx.conf docker-compose.yaml是docker部署容器的配置信息包括4个minio和1个ng…

c中 int 和 unsigned int

c语言中,char、short、int、int64以及unsigned char、unsigned short、unsigned int、unsigned int64等等类型都可以表示整数。但是他们表示整数的位数不同,比如:char/unisigned char表示8位整数; short/unsigned short表示16位整…

菜鸟入门Docker

初始Docker Docker的概念 Docker的用途 DOcke的安装 Docker架构 配置Docker镜像加速器 Docker常用命令 Docker服务相关的命令。 Docker镜像相关的命令 Docker容器相关的命令 容器的数据卷 数据卷的概念和作用 配置数据卷 Docker应用部署 Docker部署mysql Docker…

Unity同时启动多个Editor

HardLinkShellExt tool https://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html 作用: 1.网络Online项目方便调试,MMO项目 2.方便发布不同平台的包,快速开发测试 使用方法:

easy-es动态索引支持

背景 很多项目目前都引入了es,由于es弥补了mysql存储及搜索查询的局限性,随着技术的不断迭代,原生的es客户端使用比较繁琐不直观,上手代价有点大,所以easy-es框架就面世了,学习成本很低,有空大…

【Gateway】Gateway Filter Factories

Predicate决定了请求由哪一个路由处理,如果在请求处理前后需要加一些逻辑,这就是Filter(过滤器)的作用范围了.Filter分为两种类型:Pre类型和Post类型 滤器的两种类型 Pre 类型过滤器: 执行时机: 在请求被转发到后端服务之前执行。作用: 可以用来执行鉴权、限流、请求日志记录、…

Django笔记一:搭建Django环境与URL路径访问

博主之前学从Java后端开发,后面获取到读研资格,想着未来转算法岗,初学Python,发现Python还挺有趣的,由于之前所学后端缘故,有点后端情节,想学习一下Django框架(python的web框架&…

什么是交换机级联?

在现代计算机网络中,交换机级联是一种广泛应用的技术,有助于提升网络的扩展性和灵活性。本文将深入探讨交换机级联相关知识,详细介绍其基本概念和连接配置方法,并对常见技术问题进行解答。 交换机级联概述 交换机级联是指通过将…

线性基大发现

一.构造方法 1.贪心法(每一个数往里插入即可) /*贪心法构造线性基的特点: 1.从小到大排列 2.各个基的高位可能存在重复的1 2.线性基不是唯一的,与原集合的元素顺序有关*/ void insert(int x){//贪心法for(int i63;i>0;i--){i…

c#中给winform定义快捷键的几种方式

快捷键的使用在日常的开发中频率比较高,这里总结了最常见的各种快捷键的设置方式,需要的时候大家直接照抄就可以了,不用再去查询如何实现了。 文章目录 一、按钮快捷键二、菜单快捷键三、全局快捷键1、重写ProcessCmdKey2、使用KeyPreview属…

Word使用手册

修改样式 编辑word文档时,标题和正文文本通常有不同的格式,如果能将这些格式保存为样式,下一次就能直接调用样式,而不需要重复手动设置格式。 可以将样式通常保存为不同的 样式模板.docx,要调用不同样式集&#xff0…

MATLAB基础应用精讲-【数模应用】卡方拟合优度检验(附MATLAB、python和R语言代码实现)

目录 前言 几个高频面试题目 卡方分布与拟合优度的卡方检验是什么关系? 算法原理 什么是卡方检验 卡方是什么? 如何使用卡方表计算器? 什么是卡方拟合优度检验 使用条件 基本原理 数学模型 卡方检验自由度 理论频数计算 需要注意的事项 卡方检验分类 1、 独…

校园管理系统创新:Spring Boot框架应用案例

第4章 系统设计 4.1 系统体系结构 校园管理系统的结构图4-1所示: 图4-1 系统结构 登录系统结构图,如图4-2所示: 图4-2 登录结构图 校园管理系统结构图,如图4-3所示。 图4-3 校园管理系统结构图 4.2开发流程设计 系统流程的分…

走进低代码表单开发(一):可视化表单数据源设计

在前文,我们已对勤研低代码平台的报表功能做了详细介绍。接下来,让我们深入探究低代码开发中最为常用的表单设计功能。一个完整的应用是由众多表单组合而成的,所以高效的表单设计在开发过程中起着至关重要的作用。让我们一同了解勤研低代码开…

网络安全要点总结

1. 入侵检测与防御: 1)入侵检测与系统IDS(intrusion detection system):防火墙之后的第二道闸门; IDS的部署:采用镜像端口或者集线器方式;部署在:服务器交换机上,internet接入路由器后面的第一台交换机上; IRSintrusion response system入侵响应系统: 2).IPS(…

如何进行大模型训练和微调?(实战)

1、在项目中,如果prompt和function calling足够好,尽量不要微调,节约成本。 以下是针对function calling的slot,评估准确率(识别准确度)、召回率(全面率),F1值。 从中可以…

华为初级认证HCIA怎么样?

想在网络技术领域实现职业突破吗?华为HCIA初级认证是专为网络领域的新手与初学者设计的一项入门级认证。它旨在评估并确认个人对网络基本原理和技术知识的扎实掌握,是步入华为认证体系大门的基石。 一、华为HCIA 初级认证概述 华为初级认证网络工程师&am…

为OneAPI配置MySQL数据库及设置开机启动

OneAPI启动时,如果发现没有数据库他会在项目根目录自动创建SqlLit,为提高OneAPI的性能及管理,这里给出一个使用MySQL数据库的案例,同时本文介绍如何在源码部署的情况下,设置OneAPI的开机自动启动。 OneAPI的源代码安装…

【Qt】实现顶部导航栏自适应滑动效果

需求: 顶部导航栏有若干选项,可能很多,顶部区域不能完全展示,比如10个选项,界面一次只能展示五个,那么要求把后面的选项隐藏起来,并且,当点击第四个第五个按钮的时候,自…

Android Studio 加载多个FLutter项目

按顺序操作即可 选择工程 选择Modules, 导入 module 选中创建module 选择要导入的目录,只选择主目录,下面的文件不要选 添加完成,点击ok后,会进行导入 最终导入成功