首页 > 代码库 > 第六课 ROS的空间描述和变换

第六课 ROS的空间描述和变换

1、空间描述与变换

有两个坐标系A和B,B坐标系中有一个点P,如何把B坐标系中的P映射到A坐标系呢,这就涉及到空间描述与变换,

PBORG是B坐标原点在A坐标系中的表达,

目的是将B坐标系中的P点在,在A坐标系中进行表达

技术分享

将它可以写成如下,

技术分享

中间的表达式可以成为旋转扇子,

技术分享

技术分享

实部w表示标量,虚部(x,y,z)用v表示。

操作四元素,欧拉角或者固定角可以用Bullet方法,KDL::Rotation方法等

技术分享

tf

tf的原理

有三个坐标系,一个未知坐标系,已知坐标系,一个世界坐标系

技术分享

未知坐标系在世界中的表达,用旋转算子来表示,

技术分享

未知坐标系在世界坐标系中的旋转算子=未知坐标系在已知坐标系中的旋转算子*已知坐标系在世界坐标系中的旋转算子,通过例子来看一下,

1、roscore

2、rosrun turtle_tf

3、roslaunch turtle_tf_demo.launch

出现两只乌龟一只乌龟随着另外一只乌龟跑,

技术分享

一只乌龟跟随另一只乌龟的运动而运动,这里面就包含三个坐标系,一个是乌龟1,一个是乌龟2,还有一个世界坐标系,

使用命令行工具,

view frames

rosrun tf view_frames

技术分享

打开该pdf,如下

技术分享

然后再看,

技术分享

下面看一下turtle1与turtle2作为之间的关系,前者作为父坐标系,后者作为子坐标系

技术分享

再看一下tf_monitor工具

仍然以turtle1作为父框架,turtle2作为子框架

技术分享

可以看到上面从turtle1到turtle2的变换的相关信息

技术分享

技术分享

技术分享

编写程序实现turtle tf_demo那个例子

技术分享

技术分享

技术分享

打开eclipse,导入工程,然后新建一个源文件turtle_tf_broadcaster.cpp

 

第六课 ROS的空间描述和变换