ROS-mavros-PX4加速度控制

要写的飞控算法本来的输入是roll、pitch以及推进力,由于PX4不支持输入具体大小的推进力,改用三方向加速度(可用旋转矩阵进行变换)进行控制。但是PX4的setpoint_accel实际控制效果很差,github上也有人说它不可用。

解决方案:参考阿木实验室的px4_command,使用attitude输出,个人用的是cascade pid,计算出throttle转换为attitude,项目内其他的几种方法就基本是accel->thurst->throttle->attitude,项目内有这几种量的转换函数。个人试过直接将(单数值)推进力照函数转换为油门,但是失败,可能是没有PID闭环,也可能是没搞懂单方向/三方向thrust的具体含义?

油门控制可以参考:PX4的控制分配

 

还有是试过给setpoint_accel上PID。在若干版本前PX4应该是可以读取加速度的,但是看issue区在18年的时候为了给一个里程计信息让路去掉了必要信息,按contributer说法需要实际加速度就直接用速度差和时间差作比吧()我按这么计算出来的加速度试了下一般输出,结果是一团乱糟(估计是限幅)

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值