Error: r13 not allowed here -- sub.w sp,r1,#48

举报
风吹稻花香 发表于 2022/01/01 22:12:59 2022/01/01
【摘要】 Error: r13 not allowed here -- `sub.w sp,r1,#48' GitHub - fateshelled/bytetrack_ros: ByteTrack + ROS2 (foxy) arm ByteTrack linux编译时出现: /tmp/kalmanFilter-8c79...

Error: r13 not allowed here -- `sub.w sp,r1,#48'

GitHub - fateshelled/bytetrack_ros: ByteTrack + ROS2 (foxy)

arm ByteTrack linux编译时出现:

/tmp/kalmanFilter-8c7928.s: Assembler messages:
/tmp/kalmanFilter-8c7928.s:6895: Error: r13 not allowed here -- `sub.w sp,r1,#48'
clang++: error: assembler command failed with exit code 1 (use -v to see invocation)

定位到代码:


  
  1. void KalmanFilter::predict(KAL_MEAN &mean, KAL_COVA &covariance){
  2. //revise the data;
  3. DETECTBOX std_pos;
  4. std_pos << _std_weight_position * mean(3),_std_weight_position * mean(3),1e-2,_std_weight_position * mean(3);
  5. DETECTBOX std_vel;
  6. std_vel << _std_weight_velocity * mean(3),_std_weight_velocity * mean(3),1e-5,_std_weight_velocity * mean(3);
  7. KAL_MEAN tmp;
  8. tmp.block<1, 4>(0, 0) = std_pos;
  9. tmp.block<1, 4>(0, 4) = std_vel;
  10. tmp = tmp.array().square();
  11. KAL_COVA motion_cov = tmp.asDiagonal();
  12. KAL_MEAN mean1 = this->_motion_mat * mean.transpose();
  13. // KAL_COVA covariance1 = this->_motion_mat * covariance *(_motion_mat.transpose());
  14. //covariance1 += motion_cov;
  15. // mean = mean1;
  16. //covariance = covariance1;
  17. covariance = motion_cov;
  18. }

报错代码:

KAL_MEAN mean1 = this->_motion_mat * mean.transpose();

8x8 *8x1不支持。

 

_motion_mat定义:

            Eigen::Matrix<float, 8, 8, Eigen::RowMajor> _motion_mat;
            Eigen::Matrix<float, 4, 8, Eigen::RowMajor> _update_mat;

KAL_MEAN定义: 

   typedef Eigen::Matrix<float, 1, 8, Eigen::RowMajor> KAL_MEAN;

数据定义:

    typedef Eigen::Matrix<float, 1, 8, Eigen::RowMajor> KAL_MEAN;
    typedef Eigen::Matrix<float, 8, 8, Eigen::RowMajor> KAL_COVA;
    typedef Eigen::Matrix<float, 1, 4, Eigen::RowMajor> KAL_HMEAN;
    typedef Eigen::Matrix<float, 4, 4, Eigen::RowMajor> KAL_HCOVA;

这个就OK:

KAL_HMEAN mean1 = _update_mat * mean.transpose();

这个报错:

/mnt/d/project/changcheng/car20210326_track/mask_android/../eigen-3.3.9/Eigen/src/Core/AssignEvaluator.h:833:3: error: static_assert failed
      "YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES"
  EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(ActualDstTypeCleaned,Src)

文章来源: blog.csdn.net,作者:AI视觉网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/122259740

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。