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
原文:http://www.cnblogs.com/gary-guo/p/6361059.html