【RotorS仿真系列】Ardrone模型介绍

news2025/1/14 20:29:58

ardrone是rotors仿真框架提供的一款机型,因为该机型与我们实际使用的机型参数相近,所以这里对它的参数做特别整理和记录。

一、模型参数总结

ardrone的gazebo模型如下图所示:
在这里插入图片描述

根据ardrone.yaml,其关键参数如下所示:

# Ardrone vehicle parameters
mass: 1.52
inertia: {xx: 0.0347563, xy: 0.0, xz: 0.0, yy: 0.0458929, yz: 0.0, zz: 0.0977}

# angle should be expressed in rad
# direction 1 means counter clockwise, -1 clockwise
# The order of the rotors matters for the calculation of the allocation matrix.
rotor_configuration:
  '0': {angle: -0.78539, arm_length: 0.18, rotor_force_constant: 8.54858e-06, rotor_moment_constant: 1.6e-2, direction: 1.0}
  '1': {angle: 2.35619, arm_length: 0.18, rotor_force_constant: 8.54858e-06, rotor_moment_constant: 1.6e-2, direction: 1.0}
  '2': {angle: 0.78539, arm_length: 0.18, rotor_force_constant: 8.54858e-06, rotor_moment_constant: 1.6e-2, direction: -1.0}
  '3': {angle: -2.35619, arm_length: 0.18, rotor_force_constant: 8.54858e-06, rotor_moment_constant: 1.6e-2, direction: -1.0}

更详细的参数可以参见ardrone.xacro文件。
其电机标号convention与PX4一致,如下图所示:
在这里插入图片描述

下图是PX4的电机标号和旋向:
在这里插入图片描述

control allocation matrix如下:
[ τ x τ y τ z F ] = [ c f d ⋅ sin θ 0 c f d ⋅ sin θ 1 c f d ⋅ sin θ 2 c f d ⋅ sin θ 3 − c f d ⋅ cos θ 0 − c f d ⋅ cos θ 1 − c f d ⋅ cos θ 2 − c f d ⋅ cos θ 3 n ⋅ c f c m n ⋅ c f c m n ⋅ c f c m n ⋅ c f c m c f c f c f c f ] [ ω 0 2 ω 1 2 ω 2 2 ω 3 2 ] \begin{bmatrix} \tau_x\\ \tau_y\\ \tau_z \\ F \end{bmatrix}= \begin{bmatrix} c_fd\cdot\text{sin}\theta_0 & c_fd\cdot\text{sin}\theta_1 & c_fd\cdot\text{sin}\theta_2 & c_fd\cdot\text{sin}\theta_3 \\ -c_fd\cdot\text{cos}\theta_0 & -c_fd\cdot\text{cos}\theta_1 & -c_fd\cdot\text{cos}\theta_2 & -c_fd\cdot\text{cos}\theta_3 \\ n\cdot c_f c_m & n\cdot c_f c_m & n\cdot c_f c_m & n\cdot c_f c_m \\ c_f & c_f & c_f & c_f \end{bmatrix} \begin{bmatrix} {\omega_0}^2 \\ {\omega_1}^2 \\ {\omega_2}^2 \\ {\omega_3}^2 \end{bmatrix} τxτyτzF = cfdsinθ0cfdcosθ0ncfcmcfcfdsinθ1cfdcosθ1ncfcmcfcfdsinθ2cfdcosθ2ncfcmcfcfdsinθ3cfdcosθ3ncfcmcf ω02ω12ω22ω32
其中 n n n表示旋向(逆时针为1,顺时针为-1), c f c_f cf是拉力系数, c m c_m cm是力矩系数。这里力矩系数与其他文献或某些书籍可能不一致,但是在代码里是与其他参数一起配套使用是没有问题的。下面全权老师的课件,矩阵的第4行,用的是 c M c_M cM,这里 c M = c f c m c_M=c_fc_m cM=cfcm。因此,以后要注意自己用的参数对应的是什么公式。
在这里插入图片描述

二、存在的问题

注意!原始的ardrone.xacroardrone.yaml文件中,arm_length参数是有问题的,github上有网友也提出来了(Ardrone Arm Length And Stability #488)。修改方式有两种,以下二选一即可:

  • ardrone.yamlarm_length改为0.18(比如我上面的代码片)
  • ardrone.yamlarm_length改为0.18ardrone.xacro中的arm_length改为0.18sqrt2(1.4142135623730951, 2 \sqrt{2} 2 )全部替换为sqrt2_inv(0.70710678119, 1 2 \frac{1}{\sqrt{2}} 2 1

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

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

相关文章

Python基础快速过一遍

文章目录 一、变量及基本概念1、变量2、变量类型3、变量格式化输出4、type()函数5、input()函数6、类型转换函数7、注释 二、Python运算/字符1、算数运算2、比较运算3、逻辑运算4、赋值运算符5、转义字符6、成员运算符 三、判断/循环语句1、if判断语句2、while循环语句3、for循…

51单片机应用从零开始(九)·数组

目录 1. 用字符型数组控制 P0 口 8 位 LED 流水点亮 2. 用 P0 口显示字符串常量 1. 用字符型数组控制 P0 口 8 位 LED 流水点亮 C语言中的字符型数组是一种数据类型,它是一个由字符组成的序列,以空字符\0结尾。在声明字符型数组时,需要指…

总结react中css的使用

1、css in js css in js有很多库,这里介绍styled-components styled-components 下载【vscode可以安装vscode-styled-components 插件,有代码提示】 npm i styled-components 1、然后为某个组件新建style.js文件,然后写一些样式。 impo…

SpringAMQP入门案例——发送消息

依赖 <!--SpringAMQP起步依赖--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> yml配置文件 自行修改 spring:rabbitmq:host: 192.168.220.130 # …

【力扣】——可获得的最大点数(滑动窗口)

几张卡牌 排成一行&#xff0c;每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动&#xff0c;你可以从行的开头或者末尾拿一张卡牌&#xff0c;最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardPoi…

「C++」C++11新特性

&#x1f4bb;文章目录 &#x1f4c4;前言右值引用概念右值引用的意义 lambada表达式包装器function包装器bind包装器 &#x1f4d3;总结 &#x1f4c4;前言 C标准10年磨一剑&#xff0c;于2011年迎来了它真正意义上的第二个标准&#xff0c;C11能更好地适用与系统开发和库开发…

高校人员信息管理系统C++

代码&#xff1a;https://mbd.pub/o/bread/ZZeZk5lx 一、基本内容论述 1、问题描述 某高校有四类员工&#xff1a;教师、实验员、行政人员、教师兼行政人员&#xff1b;共有的信息包括&#xff1a;编号、姓名、性别、年龄等。其中&#xff0c;教师还包含的信息有&#xff1a;所…

实现一个简单的网络通信下(udp)

时间过去好久了&#xff0c;先回忆一下上一篇博客的代码&#xff01;&#xff01; 目前来看&#xff0c;我们客户端发一条消息&#xff0c;我服务器收到这一条消息之后呢&#xff0c;服务器也知道了是谁给我发来的消息&#xff0c;紧接这就把这条消息放进buffer当中&#xff0c…

陀螺仪LSM6DSV16X与AI集成(1)----轮询获取陀螺仪数据

陀螺仪LSM6DSV16X与AI集成.1--轮询获取陀螺仪数据 概述视频教学样品申请通信模式管脚定义IIC通信模式速率生成STM32CUBEMX串口配置IIC配置CS和SA0设置串口重定向参考程序初始换管脚获取ID复位操作BDU设置设置量程和速率配置过滤链轮询读取数据主程序演示 概述 本文将介绍如何使…

【算法】单调栈题单——矩阵系列⭐

文章目录 题目列表84. 柱状图中最大的矩形&#xff08;单调栈找左右两边第一个更低的位置&#xff09;85. 最大矩形⭐⭐⭐⭐⭐解法1——使用柱状图的优化暴力方法解法2——单调栈 &#xff1a;归因到 84. 柱状图中最大的矩形 &#x1f402; 1504. 统计全 1 子矩形⭐解法1——枚…

关于媒体查询不能生效的原因

问题 今天写媒体查询&#xff0c;遇到了个问题&#xff0c;卡了很久&#xff0c;引入三个样式&#xff1a;mainPageCommon.css、mainPageBig.css、mainPageSmall.css。其中的两个样式可以生效&#xff0c;但是小尺寸的媒体查询不能生效&#xff0c;这里很奇怪&#xff01;&…

STM32F407-14.3.10-01PWM模式

PWM 模式 脉冲宽度调制模式可以生成一个信号&#xff0c;该信号频率由 TIMx_ARR⑩ 寄存器值决定&#xff0c;其占空比由 TIMx_CCRx⑤ 寄存器值决定。 通过向 TIMx_CCMRx 寄存器中的 OCxM⑰ 位写入 110 &#xff08;PWM 模式 1&#xff09;或 111 &#xff08;PWM 模式 2&#…

C++学习之路(十七)C++ 用Qt5实现一个工具箱(增加托盘图标并且增加显示和退出菜单)- 示例代码拆分讲解

上篇文章&#xff0c;我们用 Qt5 实现了在小工具箱中添加了《为屏幕颜色提取功能增加一个点击复制的功能》功能。今天我们增加一个比较正式点的功能&#xff0c;就是增加托盘图标并且增加显示和退出菜单&#xff08;越来越像回事了吧 &#x1f601; &#xff09;。下面我们就来…

ssm医院门诊互联电子病历管理信息系统源码和论文

摘 要 网络的广泛应用给生活带来了十分的便利。所以把医院门诊互联电子病历管理与现在网络相结合&#xff0c;利用java技术建设医院门诊互联电子病历管理信息系统&#xff0c;实现医院门诊互联电子病历的信息化。则对于进一步提高医院门诊互联电子病历管理发展&#xff0c;对…

【电机控制】PMSM无感foc控制(五)相电流检测及重构 — 单电阻采样

0. 前言 相电流采样再FOC控制中是一个关键的环节&#xff0c;鉴于成本和易用性&#xff0c;目前应用较多的相电流采样方式是分流电阻采样&#xff0c;包括单电阻、双电阻以及三电阻采样法。 本章节先讲解单电阻采样相电流的检测及重构技术&#xff0c;在下一章讲解双电阻和三电…

项目实战一-性能测试筑基

这里写目录标题 一、为什么程序会出现性能问题、性能问题是怎么出现的&#xff1f;二、功能测试和性能测试的区别是什么&#xff1f;三、核心性能指标1、用户角度核心a、响应时间&#xff1a;b、并发量 2、成本角度3、运维角度面试题、并发量和吞吐量得区别&#xff1f;a、吞吐…

Qt 如何操作SQLite3数据库?数据库创建和表格的增删改查?

# 前言 项目源码下载 https://gitcode.com/m0_45463480/QSQLite3/tree/main # 第一步 项目配置 平台:windows10 Qt版本:Qt 5.14.2 在.pro添加 QT += sql 需要的头文件 #include <QSqlDatabase>#include <QSqlError>#include <QSqlQuery>#include &…

【强化学习算法】Q-learning原理及实现

实现代码github仓库&#xff1a;RL-BaselineCode 代码库将持续更新&#xff0c;希望得到您的支持⭐&#xff0c;让我们一起进步&#xff01; 文章目录 1. 原理讲解1.1 Q值更新公式1.2 ε-greedy随机方法 2. 算法实现2.1 算法简要流程2.2 游戏场景2.3 算法实现 3. 参考文章 1. 原…

[架构之路-256]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 架构设计 - 软件系统不同层次的复用与软件系统向越来越复杂的方向聚合

目录 前言&#xff1a; 一、CPU寄存器级的复用&#xff1a;CPU寄存器 二、指令级复用&#xff1a;二进制指令 三、过程级复用&#xff1a;汇编语言 四、函数级复用&#xff1a;C语言 五、对象级复用&#xff1a;C, Java, Python 六、组件级复用 七、服务级复用 八、微…

win10下使用内置Linux

Win10安装Ubuntu子系统 #推荐博客 https://www.cnblogs.com/xiaoliangge/p/9124089.html #推荐视频 https://www.bilibili.com/video/BV184411i7As?spm_id_from333.337.search-card.all.click #Ubuntu18.04安装教程 https://edu.csdn.net/skill/gml/gml-214229ddcc6a496ba175…