正在加载图片...
ros::Time::now(,"base_link","base_laser")); r.sleep(; } 在CMakelist.txt中添加以下代码创建新的可执行文件 rosbuild_add_executable(tf_broadcaster src/tf_broadcaster.cpp) 这样我们可以创建另一个node来使用这个变换,可以得到传感器坐标系的一个点在 base link坐标系下的坐标。 1.2创建一个监听器 在chapter77_tutorials/src下创建一个新文件名为tf_listener.cpp,输入一下代码 #include <ros/ros.h> #include <geometry_msgs/PointStamped.h> #include <tf/transform_listener.h> void transformPoint(const tf::TransformListener&listener){ //we'll create a point in the base_laser frame that we'd like to transform to the base_link frame geometry_msgs::PointStamped laser_point; laser_point.header.frame_id ="base_laser"; //we'll just use the most recent transform available for our simple example laser_point.header.stamp ros::Time0; //just an arbitrary point in space laser_point.point.x =1.0; laser_point.point.y =2.0; laser_point.point.z =0.0; geometry_msgs::PointStamped base_point; listener.transformPoint("base_link",laser_point,base_point); ROS_INFO("base_laser:(%.2f,%.2f.%.2f)----->base_link:(%.2f, %.2f,%.2f)at time %.2f", laser_point.point.x,laser_point.point.y,laser_point.point.z, base_point.point.x,base_point.point.y,base_point.point.z, base_point.header.stamp.toSec(); ROS_ERROR("Received an exception trying to transform a point from -4-- 4 - ros::Time::now(),"base_link", "base_laser")); r.sleep(); } } 在CMakelist.txt中添加以下代码创建新的可执行文件 rosbuild_add_executable(tf_broadcaster src/tf_broadcaster.cpp) 这样我们可以创建另一个node来使用这个变换,可以得到传感器坐标系的一个点在 base_link坐标系下的坐标。 1.2创建一个监听器 在chapter7_tutorials/src下创建一个新文件名为tf_listener.cpp,输入一下代码 #include <ros/ros.h> #include <geometry_msgs/PointStamped.h> #include <tf/transform_listener.h> void transformPoint(const tf::TransformListener& listener){ //we'll create a point in the base_laser frame that we'd like to transform to the base_link frame geometry_msgs::PointStamped laser_point; laser_point.header.frame_id = "base_laser"; //we'll just use the most recent transform available for our simple example laser_point.header.stamp = ros::Time(); //just an arbitrary point in space laser_point.point.x = 1.0; laser_point.point.y = 2.0; laser_point.point.z = 0.0; geometry_msgs::PointStamped base_point; listener.transformPoint("base_link", laser_point, base_point); ROS_INFO("base_laser: (%.2f, %.2f. %.2f) -----> base_link: (%.2f, %.2f, %.2f) at time %.2f", laser_point.point.x, laser_point.point.y, laser_point.point.z, base_point.point.x, base_point.point.y, base_point.point.z, base_point.header.stamp.toSec()); ROS_ERROR("Received an exception trying to transform a point from
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有