运行PyICP-SLAM报错:module 'minisam' has no attribute 'DiagonalLoss'
运行PyICP-SLAM时出现AttributeError: module 'minisam' has no attribute 'DiagonalLoss'
环境信息
- 系统:Ubuntu 22
- Python环境:3.7.14虚拟环境(venv)
- 构建详情:基于commit
a0fe89a323e20c42d3cecb590937eb7a06b8343a构建Sophus,同时完成PyICP、minisam仓库的构建
报错详情
执行命令:
python3 main_icp_slam.py
报错信息:
(venv) shubham@shubhamubuntu:~/Lidar_Slam/minisam$ python3 main_icp_slam.py Traceback (most recent call last): File "main_icp_slam.py", line 50, in <module> PGM = PoseGraphManager() File "/home/shubham/Lidar_Slam/minisam/utils/PoseGraphManager.py", line 9, in __init__ self.prior_cov = minisam.DiagonalLoss.Sigmas(np.array([1e-6, 1e-6, 1e-6, 1e-4, 1e-4, 1e-4])) AttributeError: module 'minisam' has no attribute 'DiagonalLoss'
排查建议
- 核对minisam版本:PyICP-SLAM对minisam有版本依赖,确认你构建的minisam是否与PyICP-SLAM仓库指定的子版本一致,若不一致,拉取对应版本重新构建安装。
- 检查minisam安装完整性:在虚拟环境的Python交互终端中执行
import minisam; print(dir(minisam)),查看输出中是否包含DiagonalLoss。如果没有,说明minisam编译或安装不完整,重新执行编译安装步骤,确保过程无报错。 - 验证Sophus兼容性:尝试重新构建Sophus,保证编译产物正确被minisam链接,避免因版本不匹配导致的符号缺失。
- 隔离虚拟环境依赖:执行
pip list查看虚拟环境内已安装包,确认没有全局安装的minisam混入,避免版本冲突。
内容的提问来源于stack exchange,提问作者Shubham
相关产品推荐
相关产品推荐

