hector quadrotor controller

  • 本博客主要记录在修改hector quadrotor 仿真器中控制器模块的一些经历。
    有用的参考:知乎gazebo ctrl

算法

原始控制器采用级联pid。

  • 外环:位置环,也接收速度输入,作为前馈直接加到输出上。使用PID。
  • 内环:速度环,可以和位置环连起来用,也可以单独用。单独用的话,就接收速度指令。连起来的话,那么输入就是外环的输出,屏蔽收到的外界速度指令。。计算出的是wrench_,扭力。有torque和force,在这里很奇怪,xy方向force都是0,而xyz轴的torque都是根据acceleration算出来的。
  • 看了新版的controller代码发现,旧版是用Pid省略了从加速度到角加速度,再到扭矩的转换。所以正常流程是,world速度输入得到world加速度,转成base加速度(差了一个yaw),再转换成base角加速度输出。在attitude controller里,base角加速度转成world角加速度,再转成body角加速度。这样,就可以转换到力矩空间,计算wrench和电机转速之类的了。

飞机坐标系

顺时针画上0123号电机。3号为x+,2号为y+。所以如果要有正的roll,那么0号向下,2号向上;要有正pitch, 3号向上,1号向下。

control interface

Controller is an important base class in ros.
It has 4 functions:

  • starting,
  • stopping,
  • init,
  • update.
    All we need is to write a specific controller class which inherit the base class.
    Then, export the class as a plugin. Controller manager would load this plugin when starting up.

和PID对比

飞机Z轴位置数据
在这里插入图片描述
在这里插入图片描述

显然,PID动态性能不如RPT。

飞控:
在这里插入图片描述

在这里插入图片描述

问题

  1. 如何和xtdrone的sitl联动?
  2. 如果撞到障碍物,电机停转的指令是不是由飞控发出?
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值