0
$\begingroup$

Rosanswers logo

Hi everybody, i'm working on Rviz, after opening it:

roscore
rosrun rviz rviz

and open a configuration:

rviz_config.rviz

that the instuction of SVO gives me

it give me an errore on the fixed frame:

No tf data.  Actual error: Fixed Frame [world] does not exist

and i cannot display nothing on my grid and cannot change my markers that doesn't work on image... i'm new on rviz, did someone know how solve the problem?? cause yesterday was working well.... for more precision, i'm working on the svo instruction, with the video from the bag.

thanks


Originally posted by JacoPisa on ROS Answers with karma: 110 on 2014-10-26

Post score: 8


Original comments

Comment by JacoPisa on 2014-10-28:
now it give me error when i load the default configuration too... it gives me an error frame that say "the map doesn't exist" and i don't know how to solve...

$\endgroup$

4 Answers 4

0
$\begingroup$

Rosanswers logo

The issue is that you do not have a world frame in your /tf tree. As @forinkzan suggested you may need to run a SLAM or localization node which provide this mapping from world -> the robot's base, usually base_link or base_footprint.

If you just want to visualize stuff you can click on the drop down for the fixed frame and select some other frame to visualize in. The available ones will be listed in the drop down.


Originally posted by William with karma: 17335 on 2014-12-02

This answer was ACCEPTED on the original site

Post score: 8


Original comments

Comment by Gordon on 2018-07-10:
What if there is not drop down menu? I am running a SLAM package with the same issue and I get the data to come into the point cloud topic. However, odometery fails with the error (Fixed Frame [velodyne] does not exist.

Comment by CroCo on 2021-11-12:
there is no world in the fixed frame.

$\endgroup$
0
$\begingroup$

Rosanswers logo

i've found that code:

rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 map my_frame 100 

it work, by the way, i have to open rviz after starting the svo node, unless it not visualize nothing on the map, and can visualize only the camera image.


Originally posted by JacoPisa with karma: 110 on 2015-01-10

This answer was NOT ACCEPTED on the original site

Post score: 3

$\endgroup$
0
$\begingroup$

Rosanswers logo

I would like to extend jaco answer as this is an easy solution to a struggle lot of people, including myself run into when starting rosrun --debug rviz rviz (debug for verbose)

The solution is having a publisher for the fixed frame attached to the grid that describes your frame relative to it. This means using the quaternion/euler-angles rviz can transform the coordinate system from the fixed one into your frame. This is sets up a publisher that tells rviz where to put the fixed world frame.

rosrun tf static_transform_publisher 0 0 0 0 0 0 1 map my_frame 10

The one is necessary as its the quaternion identity 0 0 0 1.

The doc says this:
static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms

or in eulers as jaco did
static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms

having this publisher running the global status of the fixed frame is known and the Fixed Frame No tf data. Actual error: Fixed Frame [map] does not exist disappears.


Originally posted by user23fj239 with karma: 748 on 2016-04-24

This answer was NOT ACCEPTED on the original site

Post score: 25


Original comments

Comment by bryanby on 2017-07-10:
I agree that your solution can solve the issue when run the rviz through roscore. However, if I use the roslaunch file to set the tf node and the rvize node, the "No tf data. Actual error: Fixed Frame [map] does not exist" still exists. Any suggestions?

$\endgroup$
0
$\begingroup$

Rosanswers logo

For visualization, by default, RViz doesn't create a world frame and you will see no tf data. actual error fixed frame map does not exist in RViz GUI. See the following picture

image description

To set up the scene, you need to use static_transform_publisher. Now you open a new terminal and type the following

rosrun tf static_transform_publisher 0 0 0 0 0 0 1 map world 5

You can see how static_transform_publisher is defined as follows: see the documentation

static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms

Publish a static coordinate transform to tf using an x/y/z offset in meters and yaw/pitch/roll in radians. (yaw is rotation about Z, pitch is rotation about Y, and roll is rotation about X). The period, in milliseconds, specifies how often to send a transform. 100ms (10hz) is a good value.

Once you prepare the scene, you see the following picture

image description

Finally to reflect the change, go to Fixed Frame, you choose world (i.e. the one you've typed before) and hit enter as follows

image description


Originally posted by CroCo with karma: 155 on 2021-11-13

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.