laser2base_link_TFpub.cpp 835 B

123456789101112131415161718192021222324252627282930313233
  1. #include <ros/ros.h>
  2. #include <tf/transform_broadcaster.h>
  3. int main(int argc, char** argv) {
  4. // 初始化ROS节点
  5. ros::init(argc, argv, "laser_frame_publisher");
  6. ros::NodeHandle nh;
  7. // 创建TransformBroadcaster对象
  8. tf::TransformBroadcaster br;
  9. // 创建一个ROS循环的Rate对象,频率为10Hz
  10. ros::Rate rate(10.0); // 10 Hz
  11. while (ros::ok()) {
  12. // 定义一个tf变换
  13. tf::Transform transform;
  14. // 设置平移 (x, y, z)
  15. transform.setOrigin(tf::Vector3(0.2, 0.0, 0.1));
  16. // 设置旋转 (四元数)
  17. tf::Quaternion q;
  18. q.setRPY(0, 0, 0); // Roll, Pitch, Yaw 为 0
  19. transform.setRotation(q);
  20. // 广播这个变换
  21. br.sendTransform(tf::StampedTransform(transform, ros::Time::now(), "laser", "base_link"));
  22. // 按指定频率休眠
  23. rate.sleep();
  24. }
  25. return 0;
  26. }