Turtle_tf_listener.cpp
#include <ros/ros.h> #include <tf/transform_listener.h> #include <iostream>using namespace std; Double x,y,z,ww,zz,hh,ii,aww,azz,ahh,aii;int main (int argc, char** argv) {ros::init (argc, argv, "My_tf_listener"); Ros::nodehandle node; Tf::transformlistener Listener; Ros::rate rate (10.0); while (Node.ok ()) {Tf::stampedtransform transform; try{Listener.waitfortransform ("Odom", "Base_link", Ros::time (0), Ros::D uration (1.0)); Listener.lookuptransform ("Odom", "Base_link", Ros::time (0), transform); } catch (Tf::transformexception &ex) {ros_error ("%s", Ex.what ()); Ros::D uration (1.0). Sleep (); } x=transform.getorigin (). x (); Y=transform.getorigin (). Y (); Z=transform.getorigin (). Z (); cout<< "x:" <<x<<endl; cout<< "y:" <<y<<endl; cout<< "Z:" <<z<<endl; Ww=transform.getrotation () [0]; Zz=transform.getrotation () [1]; Hh=transform.getrotAtion () [2]; Ii=transform.getrotation () [3]; cout<<ww<<endl; cout<<zz<<endl; cout<Turtle_tf_broadcaster.cpp
#include <ros/ros.h> #include <tf/transform_broadcaster.h>int main (int argc, char** argv) { Ros::init ( ARGC, argv, "My_tf_broadcaster"); Ros::nodehandle node; Static tf::transformbroadcaster BR; Tf::transform Transform; Ros::rate R (+); while (Node.ok ()) { Transform.setorigin (Tf::vector3 (1.0, 2.0, 0.0)); Tf::quaternion Q; Q.setrpy (1.0, 0.2, 0.3); Transform.setrotation (q); Br.sendtransform (Tf::stampedtransform (Transform, Ros::time::now (), "Odom", "Base_link")); R.sleep (); } return 0;};
Odom->base_link