无人机避障——大疆与Airsim中的角速度信息订阅获取

news/2024/11/7 9:42:08/

本文先将Airsim仿真中的角速度信息获取弄好,然后再将大疆SDK中的角速度话题订阅一下,并验证获取角速度信息,后续为DWA动态窗口法替代PID作为局部路径规划做足准备。

Airsim中的角速度信息获取

Airsim无人机状态获取:getMultirotorState

 无人机状态类

 class MultirotorState(MsgpackMixin):collision = CollisionInfo()                 # 碰撞信息kinematics_estimated = KinematicsState()    # 状态信息gps_location = GeoPoint()                   # GPS 信息timestamp = np.uint64(0)                    # 时间戳landed_state = LandedState.Landed           # 是否是降落状态rc_data = RCData()                          # 遥控器数据ready = Falseready_message = ""can_arm = False

动力学信息状态类 

 class KinematicsState(MsgpackMixin):position = Vector3r()               # 位置orientation = Quaternionr()         # 姿态角linear_velocity = Vector3r()        # 速度angular_velocity = Vector3r()       # 机体角速率linear_acceleration = Vector3r()    # 加速度angular_acceleration = Vector3r()   # 机体角加速度

动力学信息: 

angular_acceleration		# 角加速度x_val:	滚转角加速度y_val:	俯仰角加速度z_val:	偏航角加速度
angular_velocity    		# 角速度x_val:	滚转角速度y_val:	俯仰角速度z_val:	偏航角速度
linear_acceleration 		# 加速度x_val:	x轴方向加速度(正北)y_val:	y轴方向加速度(正东)z_val:	z轴方向加速度(地面)
linear_velocity     		# 速度x_val:	x轴方向速度(正北)y_val:	y轴方向速度(正东)z_val:	z轴方向速度(地面)
position            		# 位置x_val:	x轴方向位置(正北)y_val:	y轴方向位置(正东)z_val:	z轴方向位置(地面)

 状态订阅使用方法:

    fly_state = client.getMultirotorState()vel_x = fly_state.kinematics_estimated.linear_velocity.x_valvel_y = fly_state.kinematics_estimated.linear_velocity.y_valvel_z = fly_state.kinematics_estimated.linear_velocity.z_valx = fly_state.kinematics_estimated.orientation.x_valy = fly_state.kinematics_estimated.orientation.y_valz = fly_state.kinematics_estimated.orientation.z_valw = fly_state.kinematics_estimated.orientation.w_valvel_x_self = (1-2*(y**2)-2*(z**2))*vel_x    + (2*x*y - 2*z*w)*vel_y             + (2*x*z + 2*y*w)*vel_zvel_y_self = (2*x*y + 2*z*w)*vel_x          + (1 - 2*(x**2) - 2*(z**2))*vel_y   + (2*y*z - 2*x*w)*vel_zvel_z_self = (2*x*z - 2*y*w)*vel_x          + (2*y*z + 2*x*w)*vel_y             + (1-2*(x**2)-2*(y**2))*vel_zreturn vel_x_self,vel_y_self,vel_z_self

运行结果:

 具有角速度的数据,说明Airsim中角速度订阅正确,这边对我后续算法有帮助的其实只有偏航角

单位:

根据实际测试结果是rad/s

方向:

顺时针为正,逆时针为负

参考资料: 

Airsim无人机状态获取getMultirotorState-CSDN博客

 AirSim学习日志 6-无人机状态读取_airsim角度测量-CSDN博客

大疆无人机中的角速度信息读取

 大疆无人机中角速度的两个话题:

 相关查询:

DJI Onboard SDK: Telemetry Topics

 话题TOPIC_ANGULAR_RATE_FUSIONED与TOPIC_ANGULAR_RATE_RAW 

类型名定义: 

TypeMap<TOPIC_ANGULAR_RATE_FUSIONED>::type           angle_velocity;

进行订阅相关信息: 

djtele.angle_velocity     = vehicle->subscribe->getValue<TOPIC_ANGULAR_RATE_FUSIONED>();

在修改完代码以后,记得在build文件夹下make一下,不然还是之前代码的效果。 

 重新运行代码就有了角速度的消息了:

单位:

根据官方SDK和实测数据显示,单位为rad/s

方向:

根据实测数据显示,顺时针为正,逆时针为负

参考资料:

DJI Onboard SDK: Telemetry Topics


http://www.ppmy.cn/news/1545024.html

相关文章

数据结构题集-第二章-线性表-连接链表并安全释放

说明 本文参照严蔚敏《数据结构(C语言版)题集》一书中包含的问答题和算法设计题目&#xff0c;提供解答和算法的解决方案。请读者在自己已经解决了某个题目或进行了充分的思考之后&#xff0c;再参考本解答&#xff0c;以保证复习效果。由于作者水平所限&#xff0c;本解答中一…

基于Spring Boot和Vue的电子商城系统功能设计

基于Spring Boot和Vue的电子商城系统功能设计 该系统是一个基于Spring Boot和Vue框架的电子商城平台&#xff0c;包含前台商城和后台管理系统。系统功能设计包括用户购物体验和管理员管理功能&#xff0c;支持商品的分类展示、收藏、购物车和订单管理等模块。以下是系统功能的简…

jmeter脚本-请求体设置变量and请求体太长的处理

目录 1、查询接口 1.1 准备组织列表的TXT文件&#xff0c;如下&#xff1a; 1.2 添加 CSV数据文件设置 &#xff0c;如下&#xff1a; 1.3 接口请求体设置变量&#xff0c;如下&#xff1a; 2、创建接口 2.1 见1.1 2.2 见1.2 2.3 准备创建接口的请求体TXT文件&#xff…

多级物联网(IoT)基础异构无线传感器网络(HWSNs)中的节点角色选择与轮换方案以提高能效

英文标题&#xff1a;Node Role Selection and Rotation Scheme for Energy Efficiency in Multi-Level IoT-Based Heterogeneous Wireless Sensor Networks (HWSNs) 作者信息&#xff1a; Tamoor ShafiqueAbdel-Hamid SolimanAnas AmjadLorna UdenDebi Marie Roberts 以上作…

yolo继续训练模型

使用YOLO训练好自己的模型并持续训练 一、断点续传二、在上次训练结果的基础上继续开始训练三、last.pt 和 best.pt区别 运行环境&#xff1a;Ubuntu18.04 anaconda虚拟环境 一、断点续传 对于上次训练时意外中断的情况 将patser中第9个参数resume&#xff0c;设置为default…

代谢组数据分析(二十一):通过MetaboAnalystR标准化构建sPLSDA预测模型

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍MetaboAnalystR标准化sPLSDA分析安装需要的R包加载R包导入数据MetaboAnalystR标准化数据初始化数据清洗数据补足数据过滤数据标准化导出结果sPLSDA分析导入数据数据预处理PCA分析PL…

「Mac畅玩鸿蒙与硬件32」UI互动应用篇9 - 番茄钟倒计时应用

本篇将带你实现一个番茄钟倒计时应用&#xff0c;用户可以设置专注时间和休息时间的时长&#xff0c;点击“开始专注”或“开始休息”按钮启动计时&#xff0c;应用会在倒计时结束时进行提醒。番茄钟应用对于管理时间、提升工作效率非常有帮助&#xff0c;并且还会加入猫咪图片…

Ubuntu 安装 RTL8811cu 网卡驱动

一、支持的网卡 RTL8811AU、RTL8811CU、RTL8821AU、RTL8821CU 二、下载驱动 github&#xff1a;https://github.com/brektrou/rtl8821CU 直接下载zip源码即可 三、安装驱动 sudo su -i #切换到root用户 apt-get update #更新安装源 apt-get install -y dkms …