neu坐标系和xyz坐标系转换_坐标系转换!你还没弄清楚谁“到”谁?

    “我一直坚信,如果你还不能以简练而朴实的语言概括出来一个事物的原理,那说明你真的还没搞懂它。”

    李哥:“小乌,你去配个激光雷达的外参吧。”

    小乌:“好的,配多少啊?”

    李哥:“base_link 到 laser,x方向0.03m。”

    小乌:“嗯?怎么是base_link到laser啊?不是laser到base_link吗?”

    李哥:“what?”

    小乌:“what?”

    以上类似的对话,你有没有经历过呢?

    即使大家都会用ROS的tf发布,都知道tf树中的父坐标系子坐标系,即使有的朋友顶着算法工程师的头衔,但是一说到“谁谁”,似乎总是会发生一些矛盾。

    接下来,我们就细细理清这个“到”字怎么理解。

    “A到B”中的"到"字的含义,其实指的是将一个坐标值从A中转换B中。这个转换的工具就是转换矩阵,也就是两个坐标系AB的关系。

    那这个转换关系具体是怎样的?举个最简单的例子,有A、B坐标系,B坐标系和A坐标系一开始重合,后来B往A的x方向移动了单位1,那么此时想把B坐标系里面点a的坐标转换到A中的话是不是在x上+1即可了呢?所以可以看到,这个转换关系其实就是B在A中的位姿。也就是说,一个由B到A的矩阵,其内容其实就是是B在A中的位置!举个特殊例子想想,要想把B坐标系中的原点坐标转换到A坐标系中的话,那转换关系岂不就是B在A中的位置嘛。

c78294b5a2d658a9ae3d4003a317f066.png

    所以,以后你再遇到乱七八糟的说法你都可以理清楚了,什么A to B,其实就是A in B,其实就是A at B,其实就是TBA。

    回到文章开头的外参话题,首先,什么是外参?外参就是一个东西在某个坐标系里的位姿。比如,相机外参就可以理解为它在机器人上的安装位置,也就是相对于底盘坐标系的位姿。比如激光雷达A探测到的激光点的坐标值都是在A坐标系中的坐标值,我们要通过外参转换到机器人坐标系上去。以后再提到这个外参的时候,加入激光装在底盘的x方向0.3m处,就是激光底盘的外参是x=0.3!

    据本人不科学观察和推测,八成把谁到谁说错的老铁都是受tf的机制影响了!因为,你发布tf的时候是把父坐标系写在前面,子坐标系写在后面的对不对?比如:

476c9643666609d4a1954b54535e09d7.png

又或者,你看到tf树里面箭头是父坐标系指向子坐标系的对不对?这个箭头可太tm坏坏了!对啊,一个箭头从男人指向女人,谁都容易想到是from boy to girl,但它和矩阵变换里的from to是两码事啊!

        e196cd2d049ff3e236e3df4ced4403e6.png

    以上。(觉得讲得有用的兄弟把可以两个字打在公屏上。)


版权声明:本文为weixin_27298377原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。