• 本博客主要记录在修改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. 如果撞到障碍物,电机停转的指令是不是由飞控发出?

hector quadrotor controller相关推荐

  1. GitHub 上有哪些机器人、无人机、自动控制等方面的有趣项目

    /*************************************************************************************************** ...

  2. Boeing 747 Flight Controller Model

    一. 介绍 引自:aircraft-flight-controller Simulink/Matlab model of linear and nonlinear flight controller ...

  3. go系列(5)- beego自己写controller

    前边的系列文章已经讲述了如何安装环境, beego的处理逻辑都是在Controller里面完成的,下面就写一个最简单的Controller. 我们在写自己的controller的时候,一定要继承bee ...

  4. @Controller和@RestController的区别?

    @RestController注解相当于@ResponseBody + @Controller合在一起的作用 1) 如果只是使用@RestController注解Controller,则Control ...

  5. 关于Page翻页效果--Page View Controller

    Page View Controllers 你使用一个page view controller用page by page的方式来展示内容.一个page view controller管理一个self- ...

  6. mvc ajax提交html标签,asp.net-mvc – 如何使用ajax get或post在带有参数的mvc中将数据从View传递到Controller...

    我试图使用ajax将数据从View传递到Controller Action Method,如下所示: – 我有一个用户的Membership实例,我从另一个控制器传入这个视图,使用的视图有点像这个Vi ...

  7. spring 两次进入拦截器_4.SpringBoot 拦截器Fliter,Interceptor,Controller……

    在项目的开发中,在某些情况下,我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect. 上面的图是Spring ...

  8. gvgai框架搭建及controller编写

    gvgai框架搭建及controller编写 gvgai框架搭建 controller编写 gvgai框架搭建 gvgai官网:http://www.gvgai.net/ 框架下载:http://ww ...

  9. Animation Override Controller动画重载器

    假设游戏有很多个小人, 每一个人有2种动画站立,跑.  在通常情况下每一个人物都需要一个动画控制器. 有没有想过定义一个动画控制器 无须在定义全新的动画充值器实现每一个小人都播放自己的动画呢?没错An ...

最新文章

  1. MRTG教程(二):MRTG配置文件的生成工具cfgmaker(上)
  2. BRIEF 特征描述子
  3. WP7进阶】——XNA游戏平面矩形碰撞检测
  4. 离职后,我们该如何处理社保!
  5. rows是横着的还是cols_在Flask中如何自定义TextAreaField的rows和cols且将表单渲染为bootstrap的样式?...
  6. web模块化规范和实现
  7. dart系列之:dart类中的构造函数
  8. U-Boot 图形化配置及其原理
  9. Android(java)学习笔记164:开发一个多界面的应用程序之不同界面间互相传递数据(短信助手案例)...
  10. 如何切底卸载Oracle
  11. 拓端tecdat|R语言分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集
  12. 清华计算机全球第4!USNews计算机专业排名出炉,67所大陆高校上榜
  13. python 遥感图像分类
  14. 清默网络多区域 OSPF
  15. 数据库迁移expdp impdp 与 OGg 搭建
  16. 创业,请神志不清者走开—leo看赢在中国第三季(3)
  17. 超级计算机模拟现实,超级计算机模拟出了地球磁场真实的模样
  18. Jina AI创始人肖涵博士解读多模态AI的范式变革
  19. 【Java代码】两个数组拼接成一个数组
  20. 小程序入坑记:懒加载

热门文章

  1. “BillGates”Linux 僵尸网络被用于发动大规模 DDoS 攻击
  2. html5之video标签支持的视频格式
  3. 竟有人靠抢茅台 脚本曝光,开源可用!
  4. C90、C99、C11——C语言的三套标准
  5. 计算机管理员设置策略,小编教你怎么解决系统管理员设置了系统策略禁止进行此安装...
  6. 推荐四款可视化工具,解决99%的可视化大屏需求,一定有你想要的。
  7. 北京交通大学计算机系英语,北京交通大学计算机专业排名,英语专业
  8. AS引用本地aar文件
  9. 在Unity3D中实现高效的战斗飘字
  10. 基于java+jsp+ssm二手书交易管理系统