1. 项目概述
在机器人学和计算机视觉领域,Sophus库是一个不可或缺的数学工具包,它提供了对李群和李代数的优雅实现。这个库的名字来源于著名数学家Sophus Lie,他在连续变换群理论方面的开创性工作为现代机器人运动学奠定了数学基础。
我最近在Ubuntu 20.04上安装特定版本(commit a621ff)的Sophus时,遇到了一些官方文档没有详细说明的依赖问题和编译陷阱。这个版本之所以重要,是因为它修复了几个关键性的SE(3)指数映射bug,同时保持了与早期API的兼容性。本文将详细记录整个安装过程,包括那些容易忽略但至关重要的细节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与依赖安装
2.1 系统基础环境检查
在开始之前,我们需要确保系统环境符合编译要求。打开终端执行以下命令检查Ubuntu版本和架构:
bash复制lsb_release -a
uname -m
对于Ubuntu 20.04,官方支持的GCC版本是9.3.0。但Sophus需要C++14支持,建议至少使用GCC 7以上版本。检查编译器版本:
bash复制gcc --version
g++ --version
如果版本不符,可以通过以下命令安装新版工具链:
bash复制sudo apt install build-essential
2.2 必需依赖项的安装
Sophus的核心依赖包括Eigen3和Boost。Eigen3应该是3.3.7或更高版本,这是Ubuntu 20.04默认仓库中的版本。安装命令如下:
bash复制sudo apt update
sudo apt install libeigen3-dev libboost-all-dev
验证Eigen3安装是否成功:
bash复制pkg-config --modversion eigen3
注意:Ubuntu的Eigen3默认安装在/usr/include/eigen3,而Sophus默认查找路径是/usr/include。如果编译时出现Eigen找不到的错误,需要创建符号链接:
bash复制sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
