ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

adding a frame, error during compiling

asked 2016-07-07 00:57:27 -0600

dinesh gravatar image

updated 2016-07-07 03:35:11 -0600

I was following this link, tf2/tutorials/adding a frame(c++), but after i put the frame_broadcaster.cpp file and compile it using catkin_make im getting this error:

Building CXX object learning_tf2/CMakeFiles/frame_tf2_broadcaster.dir/src/frame_tf2_broadcaster.cpp.o
/home/dinesh/tf/src/learning_tf2/src/frame_tf2_broadcaster.cpp: In function ‘int main(int, char**)’:
/home/dinesh/tf/src/learning_tf2/src/frame_tf2_broadcaster.cpp:17:6: error: ‘tf2’ has not been declared
      tf2::Quaternion q;
    /home/dinesh/tf/src/learning_tf2/src/frame_tf2_broadcaster.cpp:17:22: error: expected ‘;’ before ‘q’
          tf2::Quaternion q;
    /home/dinesh/tf/src/learning_tf2/src/frame_tf2_broadcaster.cpp:18:12: error: ‘q’ was not declared in this scope
                q.setRPY(0, 0, 0);
    make[2]: *** [learning_tf2/CMake

Files/frame_tf2_broadcaster.dir/src/frame_tf2_broadcaster.cpp.o] Error 1
    make[1]: *** [learning_tf2/CMakeFiles/frame_tf2_broadcaster.dir/all] Error 2
    make: *** [all] Error 2
    Invoking "make -j4 -l4" failed

I'm using ROS indigo 64 bit cpu.

This is the CMakeLists.txt file:

cmake_minimum_required(VERSION 2.8.3)

find_package(catkin REQUIRED COMPONENTS



add_executable(turtle_tf2_broadcaster src/turtle_tf2_broadcaster.cpp)

add_executable(turtle_tf2_listener src/turtle_tf2_listener.cpp)

add_executable(frame_tf2_broadcaster src/frame_tf2_broadcaster.cpp)

and this is frame_tf2_broadcaster.cpp file:

    #include <ros/ros.h>
    #include <tf2_ros/transform_broadcaster.h>

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

       tf2_ros::TransformBroadcaster tfb;
      geometry_msgs::TransformStamped transformStamped;

     transformStamped.header.stamp = ros::Time::now();
     transformStamped.header.frame_id = "turtle1";
     transformStamped.child_frame_id = "carrot1";
     transformStamped.transform.translation.x = 0.0;
     transformStamped.transform.translation.y = 2.0;
     transformStamped.transform.translation.z = 0.0;
     tf2::Quaternion q;
           q.setRPY(0, 0, 0);
     transformStamped.transform.rotation.x = q.x();
     transformStamped.transform.rotation.y = q.y();
     transformStamped.transform.rotation.z = q.z();
     transformStamped.transform.rotation.w = q.w();

     ros::Rate rate(10.0);
     while (node.ok()){

edit retag flag offensive close merge delete


Looks like it's a syntax error or a dependency issue. Can you please share the frame_tf2_broadcaster.cpp and your CMake file? The issue will be in one of those files

janindu gravatar image janindu  ( 2016-07-07 01:58:11 -0600 )edit

I wanted to use tree frame to show point cloud in rviz and than show some markers in the same frame to visualize how the codes are analizing the points, i can do that with tf right?

dinesh gravatar image dinesh  ( 2016-07-07 03:40:09 -0600 )edit

ok, i hot the error, i have to change the name of ros node my_tf2_broadcaster toframe_tf2_broadcaster, before this also the tutorial says the launch file is in bin folder, but i found it inside lib. ok error solved.

dinesh gravatar image dinesh  ( 2016-07-07 10:14:15 -0600 )edit

1 Answer

Sort by » oldest newest most voted

answered 2016-07-07 21:06:29 -0600

dinesh gravatar image

change my_tf2_broadcaster to frame_tf2_broadcaster.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2016-07-07 00:57:27 -0600

Seen: 639 times

Last updated: Jul 07 '16