gazebo与PX4联合仿真

news2024/10/2 8:32:10

自主无人机定义


在这里插入图片描述

功能框架

在这里插入图片描述

开发流程

在这里插入图片描述
在这里插入图片描述

项目代码框架

在这里插入图片描述
项目流程
在这里插入图片描述
在这里插入图片描述
gazebo的文件类型
在这里插入图片描述
仿真的类型

⮚ SITL 全称为Software in the loop,即软件在换仿真。

仿真首先分为软件在环仿真(SITL)和硬件在环仿真(HITL)。目前来看,软件在环仿真更简单实现及方便。我博士就读的课题组就是专门做导弹的半实物仿真的,个人认为硬件在环仿真需要加上转台才能真正意义发
挥出作用,不然只是在Pixhawk板子上跑仿真环境,毫无指导意义。

软件在环仿真一共是有jMAVSim、Gazebo、AirSim这三种。jMAVSim是一个轻量级的仿真器,目前只支持四旋翼仿真。AirSim我不太清楚,没有使用过,这里就不评价了。Gazebo是我们今
天的主角,支持旋翼、固定翼、倾转、小车等,是所有仿真器里支持平台最多的,也能支持多个无人机的仿真,在各个仿真器比较的表格里。
在这里插入图片描述

⮚ Flight stack代表飞控即PX4,Simulator代表仿真器(如Gazebo)。所有仿真器与PX4的通讯都是
通过MAVLink消息来进行的,SITL使用simulator模块中的simulator_mavlink.cpp来处理这些消息,而HITL是使用mavlink模块中的mavlink_receiver.
cpp来处理这些消息。梳理一下这里的消息流向:

⮚ PX4到仿真器。PX4给仿真器只会发送一个HIL_ACTUATOR_CONTROLS的MAVLink消息,熟悉PX4的应该知道这个对应的uORB消息是
actuator_outputs.msg,也就是姿态控制器最后的输出控制量。这里也就意味着,混控是在仿真器中进行的,仿真器中也包含电机的模型。
⮚ 仿真器到PX4。仿真器的作用就是模拟真实飞行,即模拟计算出真实飞行时的传感器状态,包括GPS,IMU等,将这些信息发送给飞控后,再由飞控中的估计模块计算出飞机状态量。
⮚ 外部到PX4。这里的外部就比如地面站QGC(可以外接遥控器),Mavros,Dronecode SDK等,这里也就可以模拟我们平时控制飞机的方式。
在这里插入图片描述

启动gazebo仿真

切换到对应的固件文件夹(注意每个人的文件夹是不一样的)
cd ~/src/Firmware
make px4_sitl_default gazebo

设置终端环境,因为需要终端ROS的包存在那个路径下,相当于我们Windows系统的添加环境变量。
在这里插入图片描述
运行仿真
roslaunch px4 posix_sitl.launch
运行 Mavros
roslaunch mavros px4.launch fcu_url:=“udp://:14540@127.0.0.1:14557”
udp为UDP通信的端口,一个无人机默认端口
运行之后可以启动QGC地面站,自己可以查看各种传感器的数据,我以IMU为类
rostopic echo /mavros/imu/data
其他传感器数据可以使用rostopic list查看
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自举电容的工作原理

一.异步自举 1.1异步Buck的自举环路组成 上图为芯片的典型应用拓扑,Cboot就是我们说的自举电容。为了能清楚的理解自举电容的原理,我们需要深入到Buck芯片内部,去看个究竟。 上图即为异步Buck芯片LMR16006的内部架构。 ①Q1&…

一百五十一、Kettle——Linux上安装的kettle8.2开启carte服务

一、目的 kettle8.2在Linux上安装好可以启动界面、并且可以连接MySQL、Hive、ClickHouse等数据库后,准备在Linux上启动kettle的carte服务 二、实施步骤 (一)carte服务文件路径 kettle的Linux运行的carte服务文件是carte.sh (二…

15-1_Qt 5.9 C++开发指南_Qt多媒体模块概述

多媒体功能指的主要是计算机的音频和视频的输入、输出、显示和播放等功能,Qt 的多媒体模块为音频和视频播放、录音、摄像头拍照和录像等提供支持,甚至还提供数字收音机的支持。本章将介绍 Qt 多媒体模块的功能和使用。 文章目录 1. Qt 多媒体模块概述2. …

Scratch 游戏 之 大地图引擎之摄像头控制

引子 上一期教程我们讲了如何制作一个可以侦测视角外碰撞的大地图引擎,这期我们就来制作一下摄像头限制。 首先,我们先要测试出地图的摄像头限制值: 如何测试呢,我们只需要在游戏中移动玩家角色,来求得四个值&#xff…

mqbroker.cmd闪退(mqnamesrv.cmd能正常启动)

解决: 用户目录下面store文件(如:C:\Users\Administrator\store或C:\Users\你的用户名\store),删除文件里面所有文件,再次启动即可。

(5)所有角色数据分析页面的构建-5

所有角色数据分析页面,包括一个时间轴柱状图、六个散点图、六个柱状图(每个属性角色的生命值/防御力/攻击力的max与min的对比)。 """绘图""" from pyecharts.charts import Timeline from find_type import FindType import pandas …

5.利用matlab完成 符号矩阵的转置和 符号方阵的幂运算(matlab程序)

1.简述 Matlab符号运算中的矩阵转置 转置向量或矩阵 B A. B transpose(A) 说明 B A. 返回 A 的非共轭转置,即每个元素的行和列索引都会互换。如果 A 包含复数元素,则 A. 不会影响虚部符号。例如,如果 A(3,2) 是 12i 且 B A.&#xff0…

元宇宙时代来临,AI数字人的应用方式有哪些?

在数字化背景下,元宇宙的时代已经来临,当你看到网络新闻上各形各色的虚拟数字人时,你是不是也有些都心动呢?与真人相比,AI虚拟数字人还具有成本低廉并且不受时间、空间限制的特点,数字人的使用场景正在逐渐…

【逗老师的PMP学习笔记】11、项目风险管理

目录 一、规划风险管理1、【关键输出】风险管理计划2、【插一嘴】几种常见的分解结构 二、识别风险1、【关键工具】核对单2、【关键技术】SWOT分析3、【关键输出】风险登记册 三、实施定性风险分析1、【关键工具】概率和影响矩阵 四、实施定量风险分析1、【关键工具】数据分析1…

SQL | 注释

2-注释 2.1-单行注释 select prod_name -- 这是一条行内注释 from products; 使用两个连字符(-- ) 放在行内,两个连字符后的内容即为注释内容。 # 这是一条注释 select prod_name from products; 这种注释方式可能有些数据库不支持,所以使用前应该…

加载并绘制时间域内的心电图信号,并实施Q因子为1的陷波滤波器以去除50 Hz频率研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

SpringBoot项目启动失败:共三处错误,都是依赖的问题┭┮﹏┭┮

文章目录 项目启动报错1:Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway项目启动报错2:Failed to determine a suitable driver class项目启动报错3:Failed to start bean documentationPluginsBootstrapp…

最佳实践:Swagger 自动生成 Api 文档

目录 Tapir 介绍 为什么使用 Tapir 快速使用 Tapir 添加依赖 定义一个端点(Endpoint) 生成 Swagger ui 根据 yaml 生成 endpoint 自动生成 API 文档的好处不言而喻,它可以提供给你的团队或者外部协作者,方便 API 使用者准确地调用到你的 API。为了…

CTFSHOW 文件包含

目录 web78 php://filter web79 data://text/plain web80 日志文件包含 web81 web82-86 session 文件包含 web87 死亡代码 绕过 rot13 base64 rot13 base64 web88 web78 php://filter <?php/* # -*- coding: utf-8 -*- # Author: h1xa # Date: 2020-09-16 10:…

LinuxC编程——线程间通信

目录 一、同步的概念二、同步机制2.1 信号量2.1.1基础概念2.1.2 函数接口2.1.3 例子 2.2 互斥锁2.2.1 几个概念2.2.2 函数接口2.2.3 练习 2.3 条件变量2.3.1 步骤2.3.2 函数2.3.3 练习 我们知道&#xff0c;一个进中的所有线程共享进程的资源&#xff0c;所以可以通过在进程中定…

Jetson nano镜像备份

首先我们要做的准备工作有&#xff1a;含有镜像的 SD 卡、读卡器、安装了 ubuntu 环境的电脑。 备份步骤&#xff1a; 1、把含有镜像的卡用读卡器插到硬盘剩余空间大于 64G&#xff08;具体根据镜像大小使用&#xff09; 的 Ubuntu 电脑上&#xff0c;注意这里不能使用虚拟机…

自建机房还是选择云服务器?以腾讯云为例

大企业是选择自购服务器自建机房还是使用腾讯云服务器&#xff1f;都说企业上云是趋势&#xff0c;自建机房是一次性支出&#xff0c;上云租赁云服务器等产品需要年年续费&#xff0c;大型企业有必要把数据中心迁移上云吗&#xff1f;腾讯云服务器网想说&#xff0c;自建机房购…

opencv基础59-霍夫变换原理讲解及示例-cv2.HoughLines()->(直线,圆形检测)

霍夫变换是一种在图像中寻找直线、圆形以及其他简单形状的方法。霍夫变换采用类似于投票的方式来获取当前图像内的形状集合&#xff0c;该变换由 Paul Hough&#xff08;霍夫&#xff09;于 1962 年首次提出。 最初的霍夫变换只能用于检测直线&#xff0c;经过发展后&#xff0…

PAT 1085 Perfect Sequence

个人学习记录&#xff0c;代码难免不尽人意 Sample Input: 10 8 2 3 20 4 5 1 6 7 8 9 Sample Output: 8 #include<cstdio> #include<iostream> #include<vector> #include<algorithm> #include<string> #include<map> #include<cmath&…

CAP理论与MongoDB一致性,可用性的一些思考

正文 大约在五六年前&#xff0c;第一次接触到了当时已经是hot topic的NoSql。不过那个时候学的用的都是mysql&#xff0c;Nosql对于我而言还是新事物&#xff0c;并没有真正使用&#xff0c;只是不明觉厉。但是印象深刻的是这么一张图片&#xff08;后来google到图片来自这里&…