tf树的一些理解

本文介绍了TF树中的静态坐标关系发布方法,通过`static_transform_publisher`节点设置坐标变换。同时展示了如何在ROS中使用TF监听器进行坐标变换,并从`geometry_msgs::Pose`转换为`tf::Pose`,获取绕Z轴的yaw角度。还提到了tf树的维护,即不断更新坐标系之间的转换关系。
摘要由CSDN通过智能技术生成

(yaw is rotation about Z, pitch is rotation about Y, and roll is rotation about X)

---------------------------------------------------------

tf下的发布静态坐标关系:

<launch>
<node pkg="tf" type="static_transform_publisher" name="link1_broadcaster" args="x y z 绕z 绕y 绕x parent_link child_link 100" /> 
</launch>


try {
            listener.waitForTransform("target_frame","source_frame",time_stamp, ros::Duration(0.5));
            listener.transformPose("target_frame",pose_in_source_frame, pose_in_target_frame);
       }
catch(tf::TransformException& ex){
             ROS_ERROR("Failed to transform from source to target: %s\n", ex.what());
             return false;
        }


    const geometry_msgs::Pose& pose = xx;
    tf::Pose tf_pose;
    tf::poseMsgToTF(pose, tf_pose);
    double theta = tf::getYaw(tf_pose.getRotation());///绕z


geometry_msgs::PoseStamped robot_pose=xx;

double yaw,pitch,roll;

ros::Rate r(10);
transform.setRotation( tf::Quaternion(robot_pose.pose.orientation.x,
                                               robot_pose.pose.orientation.y,
                                               robot_pose.pose.orientation.z,
                                               robot_pose.pose.orientation.w) );
        transform.getBasis().getEulerYPR(yaw, pitch, roll);

-----------------------------------------------

1.建立和维护一棵tf树。主要是通过不停地向tf树发送各个坐标系之间的转换关系,也就是位置关系,来维护一个tf树。主要用到的指令就是:

 static tf::TransformBroadcaster br;
  tf::Transform transform;
  transform.setOrigin( tf::Vector3(msg->x, msg->y, 0.0) );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值