ros仿真 无人机航向控制算法优化

ros仿真 无人机航向控制算法优化

当前算法:有输入航向角速度时 就进行扭矩计算 ,当外界干扰时 不进行处理

算法优化思想 根据 航向角速度输入 决定机头是否锁定当前航向角度

锁定算法 思想, 期望角度 与实际角度进行pid 计算

声明新变量 期望航向角度
在这里插入图片描述

在初始化函数里加入 计算初始的姿态角度
并将初始航向角度设定为 期望航向角度
在这里插入图片描述

在原来的 控制器参数文件里 增加一个 yaw的控制器 原来只有 yawrate的控制
在这里插入图片描述
在这里插入图片描述

航向锁定 计算 力矩
在这里插入图片描述

调整 航向控制pid

将航向角度发布出来 以topic形式

生成msg头文件时报这个错误
在这里插入图片描述

把double换成 float32后错误消失
在这里插入图片描述
在这里插入图片描述

那ros 不能把double数据作为topic吗
看这篇博客 可以看到 double用float64代替了

ROS把这些基本类型重新定义了一番
在这里插入图片描述

所以把消息类型改成
在这里插入图片描述

编译没有问题
可以看到用double时 是白色的, 用float64是是蓝色的。所以类型一定要用蓝色的

生成了头文件
在这里插入图片描述

程序运行 ,正常的发布了 想要的消息

通过rqt的plot工具和在线调整pid参数的工具 来整定pid参数

经过调整pid 值 现在受 云台的影响小了
目前还存在一个问题 无人机自身航向自稳 与 外界航向控制并存,现在外界控制不了呢

将整个无人机的航向控制算法 调整为如下所示

当有 航向角速度控制指令时 进行角速度控制 并更新期望的航向角度 但此时存在更新偏慢的问题 ,先不管
没有 航向角速度控制指令时 则进行期望航向角度的控制
在这里插入图片描述

至此无人机航向受 云台转动的影响基本解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月照银海似蛟龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值