4

阿木币

0

精华

5 小时

在线时间

应届白菜

Rank: 1

发表于 2022-9-10 21:00:30 3448 浏览 2 回复

[飞控嵌入式] 同时使用 外部定位 与 光流传感器, px4会优先使用哪一个?

最近在使用ZED相机提供位姿的时候,经常会出现重定位,使得发送至mavros/vision_pose/pose的数据不可靠,无人机就会炸鸡,只能发送 _odom_valid = false,这样无人就就会退出offbaord 模式,进入manual模式。

所以在想能不能添加光流模块(PMW3901),当外部定位不可靠的时候,使用光流稳住飞机,直到外部定位恢复。

尝试在EKF2_AID_MASK 同时勾选 use optical flow,vision position fusion,vision yaw fusion,并开启光流。

我的想法是,如果进入了offboard模式并且_odom_valid = true,飞控就只会使用 (mavros/vision_pose/pose),但如果 _odom_valid = false(zed 挂了),并且此时如果有光流数据,可以切换成position模式,使飞机悬停,待外部定位恢复(_odom_valid = true),再次进入offboard。

但是不清楚,假如飞控同时收到了可靠的外部定位(mavros/vison_pose/pose)与光流信息,此时手动进入position模式飞行,飞控将优先选择哪一个定位数据呢?

我知道答案 回答被采纳将会获得5 阿木币 已有2人回答

扫一扫浏览分享
回复

使用道具 举报

156

阿木币

0

精华

32 小时

在线时间

老司机

Rank: 2

发表于 2022-9-14 09:10:42
position模式 都是飞控的内部模式 所以会用光流吧  offboard模式 才会接受外部mavros的定位数据 这时候才会有vision position fusion吧 可以讨论哈  具体要看ekf代码  或者测试一下 埋个点
回复 点赞

使用道具 举报

4

阿木币

0

精华

5 小时

在线时间

应届白菜

Rank: 1

 楼主| 发表于 2022-9-15 00:56:48
shanghuo 发表于 2022-9-14 09:10
position模式 都是飞控的内部模式 所以会用光流吧  offboard模式 才会接受外部mavros的定位数据 这时候才会 ...

我自己在测试的时候,只要给 mavros/vision_pose/pose 定位数据,并开启 vision position / yaw / height fusion,就可以直接在不进入offboard 的模式下,直接飞position和altitude,此时定位数据就是来自外部定位设备。

我看了下文档和代码,感觉应该是,你可以同时开启多个定位源(vision,opticalflow, gps...)这些数据都会被扔到ekf里面做融合,但是他们之间会打架,结果难以预测(我还没测试),所以不建议同时输入多个定位数据源(比如 GPS 和 vision 一起使用 )。

在飞控源码里面应该是可以自己加一个检测有没有vision,没有就用光流,不过我还没尝试过编译固件,现在解决办法还是在ros里面搞吧。把光流数据放到ros里面,和外部定位的坐标系对齐,然后遇到定位失效的时候,靠光流顶上。

回复 点赞

使用道具 举报

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

本版积分规则

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