1

阿木币

0

精华

13 小时

在线时间

应届白菜

Rank: 1

发表于 2019-7-4 13:52:36 46510 浏览 12 回复

[飞控嵌入式] SD卡bug

8阿木币
bug描述如下:
在任务模式下,sd卡损坏或者松脱,那么飞机在到达当前目标航点后,固定翼状态下会持续绕着当前航点画8字,如果是旋翼状态,那么会悬停不动。此时mavlink的上行命令全部失效,即飞机无法响应返航,切模式,降落,紧急停止等命令,但是遥控器指令是有效的。
复现方法:
1. 在硬件在环仿真环境中,令飞机起飞,切换到任务模式,拔出sd卡,飞机即可复现上述现象;
2. 一架正常的飞机(记得配上遥控器),上传航点完成后,拔出sd卡,手动起飞,空中切换为任务模式,也能立刻复现该现象。

测试结果发现,mavlink_receiver和navigator貌似都没正常工作,为什么呢?
是否是Datamanager出了问题,但是为什么会卡死无关线程?

最佳答案

查看完整内容

虽然没有执行过px4的mission拔过卡,但是有过类似mission程序的开发,如果没有插卡执行过程中发现会在读取点和设置点状态的时候,会因为dm_read返回的长度不同,导致写失败,但是不会卡死。 因为所有的航线都是在卡中存储,所以会返回会出现读不到任务点,刚看了下代码,如果read_mission_item读取点失败,mission的话会执行悬停状态。 但是navigator和mission并不会死机。 工作模式可以通过遥控器进行切换。 关于mavlink为什么 ...

扫一扫浏览分享
回复

使用道具 举报

11

阿木币

0

精华

3 小时

在线时间

应届白菜

Rank: 1

发表于 2019-7-4 13:52:37
cy1988 发表于 2019-7-5 09:28
试过了,并没有卡在dm_read() = false之类的地方,而是别的某些地方,关键现在找不到卡死在哪,print大法 ...

虽然没有执行过px4的mission拔过卡,但是有过类似mission程序的开发,如果没有插卡执行过程中发现会在读取点和设置点状态的时候,会因为dm_read返回的长度不同,导致写失败,但是不会卡死。
因为所有的航线都是在卡中存储,所以会返回会出现读不到任务点,刚看了下代码,如果read_mission_item读取点失败,mission的话会执行悬停状态。  但是navigator和mission并不会死机。 工作模式可以通过遥控器进行切换。
关于mavlink为什么不管用的话,可以在接收处理的commander还有navigator放些打印,最近好久没有调试过hil的打印,但是印象也是很方便的,px4_err 或者mavlink_log_info 之类的。
回复

使用道具 举报

185

阿木币

0

精华

34 小时

在线时间

老司机

Rank: 2

发表于 2019-7-4 14:46:54
很想来回答一波,就是我不会。。。
回复

使用道具 举报

255

阿木币

1

精华

55 小时

在线时间

老司机

Rank: 2

发表于 2019-7-4 15:15:27
赞认真测试的态度。通过你的测试表明,SD卡跟任务模式有非常强的关系。而遥控器,作为无人机控制的最后一道防线,是持续有效的。SD卡拔出,说明飞控任务流里面关键的航点log记录的程序段失效,导致依赖于他的mavlink_receiver等程序失效。但既然固定翼能画八字,旋翼能悬停,navigator应该就是没有失效的。否则可能就直接炸机了。当然最好的是在硬件在环仿真状态下,单步跟踪程序的走向,来确认没工作和卡死无关线程的原因。
回复

使用道具 举报

1

阿木币

0

精华

13 小时

在线时间

应届白菜

Rank: 1

 楼主| 发表于 2019-7-4 15:33:27
blueboats 发表于 2019-7-4 15:15
赞认真测试的态度。通过你的测试表明,SD卡跟任务模式有非常强的关系。而遥控器,作为无人机控制的最后一道 ...

补充一点哈,sd卡拔出去之后,即使切换到rtl模式,也是没用的,切换模式能够成功,但是飞机并不会返航,而是保持之前的状态。
只有手动控制的模式才能够救回飞机。
还有,mavlink_receiver除了调用dm_read()相关函数,并没有发现跟航点相关的内容,那个时候航点已经存储在sd卡里了。
回复

使用道具 举报

255

阿木币

1

精华

55 小时

在线时间

老司机

Rank: 2

发表于 2019-7-4 15:37:22
cy1988 发表于 2019-7-4 15:33
补充一点哈,sd卡拔出去之后,即使切换到rtl模式,也是没用的,切换模式能够成功,但是飞机并不会返航, ...

rtl模式也是把home点设置为需要去到的航点,跟任务模式区别不大啊。你看看是不是跟多线程调用有关系啊,看对ardupilot架构熟悉的大神能不能解答你的疑惑。
回复

使用道具 举报

1

阿木币

0

精华

13 小时

在线时间

应届白菜

Rank: 1

 楼主| 发表于 2019-7-4 15:55:38
blueboats 发表于 2019-7-4 15:37
rtl模式也是把home点设置为需要去到的航点,跟任务模式区别不大啊。你看看是不是跟多线程调用有关系啊, ...

不好意思,这是px4的。。。。。
回复

使用道具 举报

255

阿木币

1

精华

55 小时

在线时间

老司机

Rank: 2

发表于 2019-7-4 16:06:52
cy1988 发表于 2019-7-4 15:55
不好意思,这是px4的。。。。。

好吧,不好意思。反正就是对代码框架熟悉的人来看看会好一点 。好像最近PX4中级视频阿木社区也免费了,我看公众号在推阿木学院什么的。可能可以看看那个。
回复

使用道具 举报

144

阿木币

0

精华

143 小时

在线时间

技术大V

Rank: 4

发表于 2019-7-4 16:55:03
你好骚啊,写着品如的代码。
回复

使用道具 举报

1

阿木币

0

精华

13 小时

在线时间

应届白菜

Rank: 1

 楼主| 发表于 2019-7-4 20:18:51
SmilE 发表于 2019-7-4 16:55
你好骚啊,写着品如的代码。

哈哈哈哈哈
回复

使用道具 举报

下一页 »
12下一页
返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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