ROS发布静态tf变换

方法一:


#include 
#include 

int main(int argc, char** argv){
  ros::init(argc, argv, "robot_tf_publisher");
  ros::NodeHandle n;

  ros::Rate r(100);

  tf::TransformBroadcaster broadcaster;

  while(n.ok()){
    broadcaster.sendTransform(
      tf::StampedTransform(
        tf::Transform(tf::Quaternion(0, 0, 0, 1), tf::Vector3(0.1, 0.0, 0.2)),
        ros::Time::now(),"base_link", "base_laser"));
    r.sleep();
  }
}

方法二:

  • static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms
  • static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms

注:name自己随便定,args分别代表了 x y z yaw pitch roll。此命令一般在launch文件中引用,声明odom --> map的坐标变换关系。100代表100ms发一次。如果args有7个参数则代表 x y z qx

你可能感兴趣的:(ROS发布静态tf变换)