25

阿木币

3

精华

68 小时

在线时间

老司机

Rank: 2

发表于 2019-6-17 20:50:34 15846 浏览 8 回复

[入门教程] PX4-1.6.2版本位置控制简图

本帖最后由 ariesys 于 2019-6-17 20:51 编辑

整理了一下px41.6.2位置控制代码,画了一下简图,想看代码的朋友可以对着模块一部分一部分的看,欢迎指正错误。
_pos_sp、_vel_sp的来源有三种情况:
Control_manual();//遥控器控制—由遥控器的拨杆位置映射生成_pos_sp、_vel_sp;
Control_non_manual();非遥控器控制
    Control_auto();//板载自主规划控制—根据地图航点,通过navigator模块通过航迹规划生成_pos_sp、_vel_sp;
    Control_offboard();//外部模式控制—上位机通过mavlink协议直接赋值_pos_sp、_vel_sp;

     

三维空间位置空间简图

三维空间位置空间简图
     
上图根据水平位置目标量、高度目标量解算出俯仰、滚转、垂向推力目标量,偏航角的目标量是分开单独赋值,赋值过程见图2

偏航角目标量简图

偏航角目标量简图


     





扫一扫浏览分享
回复

使用道具 举报

144

阿木币

0

精华

143 小时

在线时间

技术大V

Rank: 4

发表于 2019-6-18 08:40:21
这个1.6.2的位置控制和后面的PX41.8甚至1.9的一样吗?是不是这些底层的位置控制逻辑都是一样的啊?
回复 点赞

使用道具 举报

25

阿木币

3

精华

68 小时

在线时间

老司机

Rank: 2

 楼主| 发表于 2019-6-18 09:18:16
SmilE 发表于 2019-6-18 08:40
这个1.6.2的位置控制和后面的PX41.8甚至1.9的一样吗?是不是这些底层的位置控制逻辑都是一样的啊? ...

具体1.8的代码还没看过,不过位置控制主体应该是一样的还是PID的结构,可能在特殊处理部分有些改动。
回复 点赞

使用道具 举报

144

阿木币

0

精华

143 小时

在线时间

技术大V

Rank: 4

发表于 2019-6-18 09:26:41
ariesys 发表于 2019-6-18 09:18
具体1.8的代码还没看过,不过位置控制主体应该是一样的还是PID的结构,可能在特殊处理部分有些改动。{:1_ ...

位置控制的上一层是EKF的位置估计吧,然后输出是到混控器做电机的控制哈~
回复 点赞

使用道具 举报

25

阿木币

3

精华

68 小时

在线时间

老司机

Rank: 2

 楼主| 发表于 2019-6-18 09:29:57
SmilE 发表于 2019-6-18 09:26
位置控制的上一层是EKF的位置估计吧,然后输出是到混控器做电机的控制哈~ ...

位置控制是订阅到位置数据更新开始解算,解算出来的是姿态角的目标量,放到姿态控制解算得到输出actuator_control[]给混控器。
回复 点赞

使用道具 举报

144

阿木币

0

精华

143 小时

在线时间

技术大V

Rank: 4

发表于 2019-6-18 09:37:20
ariesys 发表于 2019-6-18 09:29
位置控制是订阅到位置数据更新开始解算,解算出来的是姿态角的目标量,放到姿态控制解算得到输出actuator ...

感谢感谢~~~{:4_114:}
回复 点赞

使用道具 举报

188

阿木币

3

精华

71 小时

在线时间

技术大V

Rank: 4

发表于 2019-6-18 09:46:59
从1.5.5到1.6到1.8.2到1.9,控制部分我都大体看过,整体算法没有太大变动,但是代码写法变化挺大。比如现在一个趋势就是把控制算法都写到一个类里,让控制模块去调用那个类。但是,比较坑的是,从代码来看,还不是一个较为完整的版本,很多地方看得出来还没完全修改完。
回复 点赞

使用道具 举报

25

阿木币

3

精华

68 小时

在线时间

老司机

Rank: 2

 楼主| 发表于 2019-6-18 09:59:15
AmovlabQYP 发表于 2019-6-18 09:46
从1.5.5到1.6到1.8.2到1.9,控制部分我都大体看过,整体算法没有太大变动,但是代码写法变化挺大。比如现在 ...

这样做感觉代码会不会比较精简。。。
回复 点赞

使用道具 举报

188

阿木币

3

精华

71 小时

在线时间

技术大V

Rank: 4

发表于 2019-6-18 11:23:42
ariesys 发表于 2019-6-18 09:59
这样做感觉代码会不会比较精简。。。

精简谈不上,复杂的工程只能说是相对的精简,主要还是在让代码更具有结构逻辑性。
回复 点赞

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表