rostopic echo /tf works, but rosrun tf tf_echo base_link odom doesn't

asked 2019-10-02 01:37:10 -0500

mbudris gravatar image

updated 2019-10-02 04:54:32 -0500

The setup:

robot (pc(ubuntu) + wifi AP), laptop(ubuntu + wifi), windows(WSL ubuntu + wifi).

Everything works just fine between robot and ubuntu laptop, but following happens with WSL:

rosrun tf tf_echo odom base_link

gives:

Exception thrown:"odom" passed to lookupTransform argument target_frame does not exist.

My tf tree here.

"rostopic echo /tf " works fine, odom and base_link frames exists.

EDIT 1:

Full output of tf_echo

Failure at 1570007845.665726500 Exception thrown:"base_link" passed to lookupTransform argument target_frame does not exist. The current list of frames is:

Failure at 1570007845.665942100 Exception thrown:"base_link" passed to lookupTransform argument target_frame does not exist. The current list of frames is:

roswtf:

WARNING Received out-of-date/future transforms:

  • receiving transform from [/ekf_se_odom] that differed from ROS time by -2.15499711s
  • receiving transform from [/ekf_se_map] that differed from ROS time by -2.135234117s
  • receiving transform from [/robot_state_publisher] that differed from ROS time by -2.10908103s

tf_monitor:

RESULTS: for all Frames

Frames:

All Broadcasters:

Tried everything with the firewall.

Connectivity might be the problem, but I don't know where to start scratching. Went through [http://wiki.ros.org/ROS/NetworkSetup] and there were no problem.

EDIT 2:

Just tried to connect WSL to the robots AP via cable, and all works as it should. The laptop with Ubuntu works via wifi as before.

EDIT 3:

I was too fast on EDIT 2.
tf_monitor is able to get only a part of the tf tree - only the urdf links, but no ekf provided links(odom, map).

Any suggestions?

edit retag flag offensive close merge delete

Comments

Is this the only output of rosrun tf tf_echo ? Usually the full error is something like :

Exception thrown:"odom" passed to lookupTransform argument target_frame does not exist. 
The current list of frames is:
Frame base_link exists with parent base_footprint.
Frame base_footprint exists with parent odom.
.
.
Delb gravatar image Delb  ( 2019-10-02 02:36:03 -0500 )edit

To complete the comment above, you can use multiple commands to debug tf :

roswtf

rosrun tf tf_monitor

rosrun tf view_frames

Also you can check this wiki page : http://wiki.ros.org/tf/Tutorials/Debu...

My though is that tf on WSL cannot access the topics on the rest of the hardware because of connectivity problem .

Do you have any firewall blocking ports on Windows that can prevent WSL from accessing the remote rosmaster ? Can you disable the firewall and test again ? (remember to reactivate the firewall after if you do this test)

lmathieu gravatar image lmathieu  ( 2019-10-02 03:13:27 -0500 )edit