消息订阅中传感器信息中,是否能获取得到下视视觉系统和超声波传感器用于确定相对地面的位置?

Completed

Comments

8 comments

  • DJI Developer Support
    OSDK订阅TOPIC:TOPIC_HEIGHT_FUSION 为相对地面高度,有效范围:相对地面高度不超过10m。
    0
    Comment actions Permalink
  • DJI Developer Support
    目前测试使用M300, 固件版本2.4.102, osdk版本4.1.0(实际要求飞机固件2.2.102)。 实际测试时,程序可以运行,gps数据或融合数据都能正确取得。但是在增加订阅TOPIC_HEIGHT_FUSION或者TOPIC_ALTITUDE_FUSIONED时,会出现 “unhandle fault: alignment exception (0x221) at 0xb24009fa pgd =3b4e73b3 " “BUS error"等错误。 由于目前飞机无法降级到2.2.102版本,这个错误出现问题是固件版本?还是有其他额外的设置(如DJI assistant2 参数设置)?
    0
    Comment actions Permalink
  • DJI Developer Support
    OSDK 4.1 推荐使用2.2.102及以上版本,使用2.4.102应该也是可以正常订阅TOPIC_HEIGHT_FUSION的。您这个报错看起来像是程序运行错误,建议提供使用的平台、运行终端完整的log,以及报错部分对应的代码以便确认。
    0
    Comment actions Permalink
  • develop

    armv7,使用gcc7.5交叉编译器。测试使用temetry的sample代码的 subscribeToDataAndSaveLogToFile函数部分。

    目前已经定位到问题,编译器优化选项的问题。不开优化,O0运行没有问题;开启O3优化就出问题,按照控制台log输出格式,和osdk-core库有关。如下图

     

    0
    Comment actions Permalink
  • DJI Developer Support
    您提供的信息看起来编译器优化有造成字节对齐问题,我这边暂没有ARMv7平台确认这个问题,在X86上用O3优化没有出现这个问题。如果您需要进行优化编译,可以试试将遥测订阅数据结构部分代码去除优化(设置为O0)。 // clang-format on #pragma pack(1) /*! * @brief struct for TopicInfo data used to subscribe packages from the FC */ typedef struct { const TopicName name; const uint32_t uid; const size_t size; /* The size of actual data for the topic */ const uint16_t maxFreq; /* max freq in Hz for the topic provided by FC */ uint16_t freq; /* Frequency at which the topic is subscribed */ uint8_t pkgID; /* Package ID in which the topic is subscribed */ /* Point to topic's address in the data buffer which stores the latest data */ uint8_t* latest; } TopicInfo; // pack(1)
    0
    Comment actions Permalink
  • DJI Developer Support
    关闭优化是可以运行的。 头文件去掉对齐开优化我再继续测试。 现在模拟飞行,飞机放在地面, 订阅TOPIC_HEIGHT_FUSION获取的高度 是模拟器中飞行的相对高度, 和预期需要获取传感器相对地面高度的值(飞机在地面放置,理论值固定,且较小)不符, 应该如何解决?
    0
    Comment actions Permalink
  • DJI Developer Support
    关闭优化是可以运行的。 现在模拟飞行,飞机放在地面, 订阅TOPIC_HEIGHT_FUSION获取的高度 是模拟器中飞行的相对高度, 和预期需要获取传感器相对地面高度的值(飞机在地面放置,理论值固定,且较小)不符, 应该如何解决?
    0
    Comment actions Permalink
  • DJI Developer Support
    模拟器中无法模拟下视和红外传感,获取相对地面高度需要关闭模拟器,实飞环境获取
    0
    Comment actions Permalink

Please sign in to leave a comment.