gtsam::Matrix3d用法对不对
时间: 2023-08-03 21:05:51 浏览: 110
对的,gtsam库中的Matrix3d类型实际上是Eigen库中的Matrix<double, 3, 3>类型的别名,用法与Eigen的矩阵类型是一致的,可以进行矩阵的加减、乘法、求逆等运算。同时,gtsam库还提供了一些与其它gtsam类型(例如向量、旋转、位姿等)之间的运算方法,可以方便地进行SLAM中常见的计算操作。下面是一个使用gtsam::Matrix3d的示例代码:
```c++
#include <gtsam/geometry/Point3.h>
#include <gtsam/geometry/Pose3.h>
using namespace gtsam;
int main() {
// 定义一个3x3的矩阵
Matrix3d m;
m << 1, 2, 3,
4, 5, 6,
7, 8, 9;
// 定义一个3维点
Point3 p(1, 2, 3);
// 定义一个位姿
Pose3 pose(Rot3::Ypr(0.1, 0.2, 0.3), Point3(1, 2, 3));
// 进行一些运算
Matrix3d m2 = m * 2;
Point3 p2 = pose * p;
Pose3 pose2 = pose.inverse();
return 0;
}
```
在上述代码中,我们通过gtsam::Matrix3d定义了一个3x3的矩阵,并通过gtsam::Point3和gtsam::Pose3定义了一个3维点和一个位姿。然后我们进行了一些运算,例如矩阵乘以一个常数、3维点变换和位姿求逆等。
阅读全文