摘要
本博客提供了在ROS中快速实现固定(静态)坐标系变换的标准模板和应用实例,便于后续查阅。
关键词
ROS, TF, 固定(静态)坐标系变换
前言
在许多机器人或控制相关领域,主要依赖的坐标系可能并不是东北天坐标系,比如在海洋工程领域或制导定位领域,东北地坐标系在很多时候反而更加常用。还有很多情况下,机器人的活动范围会被局限在一定区域内,描述机器人在这个区域中的运动时,如果使用的是全局地图下的坐标系,不如在这个局部区域中选取一个固定位置作为参考坐标系来的方便,然而选取新的位置作为坐标系涉及到坐标系的平移和旋转,因此如果要在ROS中快速实现固定坐标系变换(又称静态坐标系变换),有必要学习ROS中提供的对应封装函数,本博客提供了在ROS中快速实现固定坐标系变换的标准模板和应用实例,便于后续查阅。
方法
基本模板
# Neccessary library
import rospy
import tf
import tf2_ros
import geometry_msgs.msg
# ...
#static initial frame transform: parent_frame->child_frame
static_transformStamped = geometry_msgs.msg.TransformStamped()
broadcaster = tf2_ros.StaticTransformBroadcaster()
static_transformStamped.header.stamp = rospy.Time.now()
static_transformStamped.header.frame_id = "parent_frame"
static_transformStamped.child_frame_id = "child_frame"
static_transformStamped.transform.translation.x = 0.0
static_transformStampe