ROS HEXAPOD仿真

tf坐标系统

https://blog.csdn.net/Kalenee/article/details/84332247

(1)采用tf_monitor,查看当前TF树中所有坐标系的发布状态。

rosrun tf tf_monitor

(2)采用rqt_tf_tree,查看当前所有坐标之间的变换关系,可通过刷新更新当前树的内容。

rosrun rqt_tf_tree rqt_tf_tree

(3)采用tf_echo,获取reference_frame和target_frame之间的坐标变换关系。

rosrun tf tf_echo [reference_frame] [target_frame]

(4)rviz is a visualization tool that is useful for examining tf frames. Let's look at our turtle frames using rviz. Let's start rvizwith the turtle_tf configuration file using the -d option for rviz:

rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz

tf的程序呢监听:(注意需要在cmakelist 和package.xml文件中将tf相关信息加入)

#include <ros/ros.h>
#include <tf/transform_listener.h>
#include <geometry_msgs/Twist.h>

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.lookupTransform("/base_link", "/foot_1",
                               ros::Time(0), transform);

    ROS_INFO(
        "x,y,z:%.2f, %.2f. %.2f",
        transform.getOrigin().x(),transform.getOrigin().y(),transform.getOrigin().z());
    }
    catch (tf::TransformException &ex) {
      ROS_ERROR("%s",ex.what());
      ros::Duration(1.0).sleep();
      continue;
    }

    rate.sleep();
  }
  return 0;
};
发布了32 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/BetterEthan/article/details/103741018
今日推荐