|
发表于 2020-4-23 21:09:53
11214 浏览 3 回复
[控制算法]
offboard模式下会向前暴冲
1阿木币
本帖最后由 aic2 于 2020-4-24 12:55 编辑
如题小弟在切换到offboard当下,飞机会向前暴冲一定的距离(pitch改变),但是都可以飞到指定点。
offboard模式下我透过持续传送position_setpoint_triplet给x、y、z轴来完成takeoff的动作,如下
在实飞中发现切入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的部分(模式转换)?
附上飞行日志
|
最佳答案
查看完整内容
你这是户外飞的吧?
户外飞,你的原点不一定是0,0,0啊。
这是我猜的原因,我也没看log。
所以如果你没改动源码的情况下,你在log里看看无人机实际执行的期望位置和当前位置就知道,是不是这个问题了
扫一扫浏览分享
|
|
|
|
|
|
|
发表于 2020-4-23 21:09:54
你这是户外飞的吧?
户外飞,你的原点不一定是0,0,0啊。
这是我猜的原因,我也没看log。
所以如果你没改动源码的情况下,你在log里看看无人机实际执行的期望位置和当前位置就知道,是不是这个问题了 |
|
|
|
|
|
|
|
楼主|
发表于 2020-4-24 17:01:47
版主我查看log他的起始点果真不是(0,00),但是我把position_setpoint_triplet.current.valid=false掉,理论上飞机只会原地解锁进offboard,但飞机还是会翻掉,而且不管机头在哪个方向,始终往同一个方向翻倒,进offboard后的位置初始化(map_project)是否会有影响? |
|
|
|
|
|
|
|
楼主|
发表于 2020-4-24 20:37:07
版主我发现问题是在线程中下command让飞机解锁并进入offboard模式会瞬间翻机,请问这是跟qgc调参有关还是状态转换的代码(commander.cpp)有关? |
|
|
|
|
|
|
|