ROS复习笔记之——坐标变换(TF)

参考资料为:http://wiki.ros.org/Books/ROS_Robot_Programming_English

 

ROS中的坐标转换TF在描述组成机器人的每个部分、障碍物和外部物体时是最有用的概念之一。这些可以被描述为位置(position)和方向(direction),统称为姿态(pose)。在此,位置由x、y、z这3个矢量表示,而方向是用四元数(quaternion)x、y、z、w表示。四元数并不直观,因为它们没有使用我们在日常生活中使用的三元数的角度表达方式:滚动角(roll)、俯仰角(pitch)和偏航角(yaw)。但这种四元数方式不存在滚动、俯仰和偏航矢量的欧拉(Euler)方式具有的万向节死锁(gimbal lock)问题或速度问题,因此在机器人工程中人们更喜欢用四元数(quaternion)的形式。因为同样的原因,ROS中也大量使用四元数 。当然,考虑到方便,它也提供将欧拉值转换成四元数的功能。

TF中的消息采用以下格式:Header用于记录转换的时间,并使用名为child_frame_id的消息来表示下位的坐标。并且为了表达坐标的转换值,使用transformTranslation.x / transform.translation.y / transform.translation.z / transform.rotation.x / transform.rotation.y / transform.rotation.z / transform.rotation.w 的数据形式描述对方的位置和方向。

Header header  #记录转换的时间
string child_frame_id   #表示下位的坐标
Transform transform   #表达坐标的转换值

 

 

 

 

 

参考资料

https://wiki.ros.org/tf/Tutorials

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(ROS,移动机器人)