|
发表于 2020-5-16 13:20:30
5619 浏览 3 回复
missionplanner 中的飞行模式是从飞控端下载下来的吗?还是.....
最近用老版本的missionplanner切换飞行模式时候 提示 “no mode changed”,请问mp中的飞行模式是不是从飞控端请求下来的?另外,ardupilot不同版本 不同机型的飞行模式肯定是不同的,mp是怎么兼容这些的呢?有研究mp的大神们解答一下啊
amov_msq已获得悬赏 1 阿木币最佳答案
问题问的 无法下手啊,每个固件类型,飞控里面都要标识,地面站读取参数就是知道这是什么固件
|
扫一扫浏览分享
|
|
|
|
|
|
|
问题问的 无法下手啊,每个固件类型,飞控里面都要标识,地面站读取参数就是知道这是什么固件 |
|
我不为己,谁人为我,但我只为己,那我又是谁?
|
|
|
|
|
|
楼主|
发表于 2020-5-16 14:10:26
刚才看了一点儿mp代码 是这样吗:地面站从飞控读取固件类型(arduplane arduopter px4),根据类型不同,使用对应的飞控模式列表 我现在不太明白的是:这个列表是哪儿来的?是在mp里提前写好的?还是从飞控参数里下载的?
另外:mp中,ParameterMetaDataBackup.xml 和 ParameterMetaData.xml文件是干啥用的? |
|
|
|
|
|
|
|
楼主|
发表于 2020-5-16 23:29:35
刨了一下mp的代码 大概明白了
1.mp的根目录下有个xml文件(我这个用的是中文的mp,文件是ParameterMetaData.zh-Hans.xml),飞行模式(FLTMODE)的类型在这里
2. mp会调用这个函数public static string GetParameterMetaData(string nodeKey, string metaKey, string vechileType) ,从上面说的xml中提取相应的vechileType(机型)的所有飞行模式,把这些模式存到一个列表中,用的时候从这里查找;
3. 我这个出现no mode changed的原因是:我用的一个朋友改过的地面站,原来是用在旋翼上的,最近想拿来用在垂起上,他在调用translateMode的时候直接写的旋翼的模式,但是这个时候我的机型却是固定翼,然后在固定翼机型的飞行模式列表查找这个模式当然找不到了 就报错no mode changed
|
|
|
|
|
|
|
|