|
发表于 2022-9-10 21:00:30
3436 浏览 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人回答
|
扫一扫浏览分享
|
|
|
|
|
|
|
发表于 2022-9-14 09:10:42
position模式 都是飞控的内部模式 所以会用光流吧 offboard模式 才会接受外部mavros的定位数据 这时候才会有vision position fusion吧 可以讨论哈 具体要看ekf代码 或者测试一下 埋个点 |
|
|
|
|
|
|
|
楼主|
发表于 2022-9-15 00:56:48
我自己在测试的时候,只要给 mavros/vision_pose/pose 定位数据,并开启 vision position / yaw / height fusion,就可以直接在不进入offboard 的模式下,直接飞position和altitude,此时定位数据就是来自外部定位设备。
我看了下文档和代码,感觉应该是,你可以同时开启多个定位源(vision,opticalflow, gps...)这些数据都会被扔到ekf里面做融合,但是他们之间会打架,结果难以预测(我还没测试),所以不建议同时输入多个定位数据源(比如 GPS 和 vision 一起使用 )。
在飞控源码里面应该是可以自己加一个检测有没有vision,没有就用光流,不过我还没尝试过编译固件,现在解决办法还是在ros里面搞吧。把光流数据放到ros里面,和外部定位的坐标系对齐,然后遇到定位失效的时候,靠光流顶上。
|
|
|
|
|
|
|
|