ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I solved this there were errors in my code.

I solved this there were errors in my code.code. See below for the example i used :

#include <rclcpp/rclcpp.hpp>
#include <tf2_ros/transform_broadcaster.h>
#include <geometry_msgs/msg/transform_stamped.hpp>

class TFPublisher : public rclcpp::Node
{
  public:
    TFPublisher()
        : Node("tf_publisher")
    {
      broadcaster_ = std::make_unique<tf2_ros::TransformBroadcaster>(this);
    }

    void spin()
    {
      rclcpp::Rate loop_rate(10);
      while (rclcpp::ok())
      {
        geometry_msgs::msg::TransformStamped laser_transform;
    laser_transform.header.frame_id = "base_link";
    laser_transform.child_frame_id = "base_laser";
    laser_transform.header.stamp = rclcpp::Clock().now();
    laser_transform.transform.translation.x = 0.0;
    laser_transform.transform.translation.y = 0.0;
    laser_transform.transform.translation.z = 0.0;
    laser_transform.transform.rotation.x = 0.0;
    laser_transform.transform.rotation.y = 0.0;
    laser_transform.transform.rotation.z = 0.0;
    laser_transform.transform.rotation.w = 1.0;

    geometry_msgs::msg::TransformStamped imu_transform;
    imu_transform.header.frame_id = "base_link";
    imu_transform.child_frame_id = "base_imu";
    imu_transform.header.stamp = rclcpp::Clock().now();
    imu_transform.transform.translation.x = 0.0;
    imu_transform.transform.translation.y = 0.0;
    imu_transform.transform.translation.z = 0.0;
    imu_transform.transform.rotation.x = 0.0;
    imu_transform.transform.rotation.y = 0.0;
    imu_transform.transform.rotation.z = 0.0;
    imu_transform.transform.rotation.w = 1.0;

    broadcaster_->sendTransform(laser_transform);
    broadcaster_->sendTransform(imu_transform);

    rclcpp::spin_some(this->get_node_base_interface());
    loop_rate.sleep();
  }
}



 private:
    std::unique_ptr<tf2_ros::TransformBroadcaster> broadcaster_;
};

int main(int argc, char *argv[])
{
  rclcpp::init(argc, argv);
  auto node = std::make_shared<TFPublisher>();
  node->spin();
  rclcpp::shutdown();
  return 0;
}