6

阿木币

0

精华

2 小时

在线时间

老司机

Rank: 2

发表于 2020-4-23 21:09:53 5919 浏览 3 回复

[控制算法] offboard模式下会向前暴冲

1阿木币
本帖最后由 aic2 于 2020-4-24 12:55 编辑

如题小弟在切换到offboard当下,飞机会向前暴冲一定的距离(pitch改变),但是都可以飞到指定点。
offboard模式下我透过持续传送position_setpoint_triplet给x、y、z轴来完成takeoff的动作,如下
333.png
在实飞中发现切入offboard,马达2、4的转速会高过马达1、3,查看飞行日制也可以看到pitch值在一开始急遽变化。是不是进入offboard模式牵涉到模式转换,而模式转换是不是要在我的线程中添加 pitch_reset_integral来清0积分项?或者只单存传送位置讯息给位置控制模块是不够的?或者是qgc参数设定的问题?
补充:1.四轴在mission下的takeoff飞得非常稳,2.Jmavsim底下仿真自定义线程takeoff很稳3.HITL下仿真自定义takeoff会向前暴冲一段距离,在回穩,4.实飞自订义takeoff会先往前冲一段距离再回到目标点
推測:
1.在qgc参数端是否要更改切入offboard的马达设置?(调参)
2.如果飞机会将初始位置判断为机体坐标系(x=0,y=0)那么向前暴冲是否是判断精度失准?
3.代码切入offboard模式是否要在线程内另写一块积分项清0的部分(模式转换)?


666.png

附上飞行日志








log_220_2020-4-23-17-05-30.rar

298.74 KB, 下载次数: 2

最佳答案

查看完整内容

你这是户外飞的吧? 户外飞,你的原点不一定是0,0,0啊。 这是我猜的原因,我也没看log。 所以如果你没改动源码的情况下,你在log里看看无人机实际执行的期望位置和当前位置就知道,是不是这个问题了

扫一扫浏览分享
回复

使用道具 举报

185

阿木币

3

精华

71 小时

在线时间

技术大V

Rank: 4

发表于 2020-4-23 21:09:54
你这是户外飞的吧?
户外飞,你的原点不一定是0,0,0啊。

这是我猜的原因,我也没看log。

所以如果你没改动源码的情况下,你在log里看看无人机实际执行的期望位置和当前位置就知道,是不是这个问题了
回复

使用道具 举报

6

阿木币

0

精华

2 小时

在线时间

老司机

Rank: 2

 楼主| 发表于 2020-4-24 17:01:47
版主我查看log他的起始点果真不是(0,00),但是我把position_setpoint_triplet.current.valid=false掉,理论上飞机只会原地解锁进offboard,但飞机还是会翻掉,而且不管机头在哪个方向,始终往同一个方向翻倒,进offboard后的位置初始化(map_project)是否会有影响?
回复

使用道具 举报

6

阿木币

0

精华

2 小时

在线时间

老司机

Rank: 2

 楼主| 发表于 2020-4-24 20:37:07
版主我发现问题是在线程中下command让飞机解锁并进入offboard模式会瞬间翻机,请问这是跟qgc调参有关还是状态转换的代码(commander.cpp)有关?
回复

使用道具 举报

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

本版积分规则

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