激光slam基础入门笔记2——位姿表示与变换矩阵

编程入门 行业动态 更新时间:2024-10-24 20:18:52

激光slam基础入门笔记2——位姿表示与变换<a href=https://www.elefans.com/category/jswz/34/1769510.html style=矩阵"/>

激光slam基础入门笔记2——位姿表示与变换矩阵

前言:

初步了解位置与位姿:

参考链接:机器人学——1.0-位置与姿态概述_「已注销」的博客-CSDN博客_位置和姿态

 二维空间位姿表示与变换矩阵推导:

参考链接:机器人学——1.1-二维空间位姿描述_「已注销」的博客-CSDN博客

深蓝学院参考:

 

C++简单实现相对位姿转换

#include <iostream>
#include<Eigen/Dense>
using namespace std;
using namespace Eigen;
int main(int argc, char** argv)
{// 机器人B在坐标系O中的坐标:Vector3d B(3, 4, M_PI);// 坐标系B到坐标O的转换矩阵:Matrix3d TOB;TOB << cos(B(2)), -sin(B(2)), B(0),sin(B(2)),  cos(B(2)), B(1),0,          0,        1;// 坐标系O到坐标B的转换矩阵:Matrix3d TBO = TOB.inverse();// 机器人A在坐标系O中的坐标:Vector3d A(1, 3, -M_PI / 2);// 求机器人A在机器人B中的坐标:Vector3d BA;Matrix3d TOA;TOA << cos(A(2)), -sin(A(2)), A(0),sin(A(2)),  cos(A(2)), A(1),0,          0,        1;Matrix3d TBA = TBO * TOA;cout << TBA << endl;BA << TBA(0, 2),TBA(1, 2),atan2(TBA(1, 0), TBA(0, 0));cout << "Your answer is BA: " << BA.transpose() << endl;return 0;
}

运行结果:

[Running] cd "/home/lxy/project/Eigen/" && g++ demo01.cpp -o demo01 && "/home/lxy/project/Eigen/"demo01
-1.83697e-16           -1            21 -1.83697e-16            10            0            1
Your answer is BA:      2      1 1.5708[Done] exited with code=0 in 7.399 seconds

更多推荐

激光slam基础入门笔记2——位姿表示与变换矩阵

本文发布于:2023-06-27 07:58:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/908444.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:矩阵   激光   入门   基础   笔记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!