介绍
- 下载:
-
模板类:
git clone https://github.com/strasdat/Sophus.git
-
非模板类:
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
- 安装: cmake工程,
mkdir build && cd build
cmake ..
make -j 8
sudo make install
代码实例
#include <iostream>
using namespace std;
#include <Eigen/Core>
#include <Eigen/Geometry>
#include "../../source/Sophus/sophus/so3.hpp"
#include "../../source/Sophus/sophus/se3.hpp"
int main()
{
Eigen::Matrix3d R = Eigen::AngleAxisd(M_PI/2, Eigen::Vector3d(0,0,1)).toRotationMatrix();
Eigen::Quaterniond q(R);
// --------------------------利群的初始化--------------------------
Sophus::SO3d SO3d_R(R);
//Sophus::SO3d SO3d_v(0.0, 0.0, M_PI/2); 非模板类提供这样的构造,模板类没有了
Sophus::SO3d SO3d_q(q);
cout << "SO(3) from matrix " << SO3d_R.matrix() << endl;
//cout << "SO(3) from vector " << SO3d_v.matrix() << endl;
cout << "SO(3) from q" << SO3d_q.matrix() << endl;
//----------------------李群到李代数----------------------------
Eigen::Vector3d so3 = SO3d_R.log(); // 获取李群的李代数
cout <&l