What is the ~tf_prefix parameter?

I have a TurtleBot3 Robot and when I’m trying to do this command to start the nodes
The ROBOT is real
roslaunch turtlebot3_bringup turtlebot3_robot.launch

I’m getting this error:

started roslaunch server http://192.168.1.123:40785/

SUMMARY
========

PARAMETERS
 * /rosdistro: kinetic
 * /rosversion: 1.12.14
 * /turtlebot3_core/baud: 115200
 * /turtlebot3_core/port: /dev/ttyACM0
 * /turtlebot3_lds/frame_id: base_scan
 * /turtlebot3_lds/port: /dev/ttyUSB0

NODES
 /
turtlebot3_core (rosserial_python/serial_node.py)
turtlebot3_diagnostics (turtlebot3_bringup/turtlebot3_diagnostics)
turtlebot3_lds (hls_lfcd_lds_driver/hlds_laser_publisher)

ROS_MASTER_URI=http://192.168.1.252:11311
/
process[turtlebot3_core-1]: started with pid [2027]
process[turtlebot3_lds-2]: started with pid [2028]
process[turtlebot3_diagnostics-3]: started with pid [2029]
[INFO] [1570886329.494422]: ROS Serial Python Node
[INFO] [1570886329.527685]: Connecting to /dev/ttyACM0 at 115200 baud
[INFO] [1570886331.662652]: Note: publish buffer size is 1024 bytes
[INFO] [1570886331.665300]: Setup publisher on sensor_state [turtlebot3_msgs/SensorState]
[INFO] [1570886331.679017]: Setup publisher on firmware_version [turtlebot3_msgs/VersionInfo]
[INFO] [1570886331.760184]: Setup publisher on imu [sensor_msgs/Imu]
[INFO] [1570886331.772382]: Setup publisher on cmd_vel_rc100 [geometry_msgs/Twist]
[INFO] [1570886331.795296]: Setup publisher on odom [nav_msgs/Odometry]
[INFO] [1570886331.807961]: Setup publisher on joint_states [sensor_msgs/JointState]
[INFO] [1570886331.818585]: Setup publisher on battery_state [sensor_msgs/BatteryState]
[INFO] [1570886331.828330]: Setup publisher on magnetic_field [sensor_msgs/MagneticField]
[INFO] [1570886333.773802]: Setup publisher on /tf [tf/tfMessage]
[INFO] [1570886333.793338]: Note: subscribe buffer size is 1024 bytes
[INFO] [1570886333.794907]: Setup subscriber on cmd_vel [geometry_msgs/Twist]
[INFO] [1570886333.815769]: Setup subscriber on sound [turtlebot3_msgs/Sound]
[INFO] [1570886333.832003]: Setup subscriber on motor_power [std_msgs/Bool]
[INFO] [1570886333.851044]: Setup subscriber on reset [std_msgs/Empty]
[ERROR] [1570886334.734756]: Parameter ~tf_prefix does not exist
[WARN] [1570886335.723753]: Failed to get param: timeout expired
[INFO] [1570886335.726988]: Setup TF on Odometry [odom]
[INFO] [1570886335.730118]: Setup TF on IMU [imu_link]
[INFO] [1570886335.733252]: Setup TF on MagneticField [mag_link]
[INFO] [1570886335.736351]: Setup TF on JointState [base_link]
[INFO] [1570886335.743186]: --------------------------
[INFO] [1570886335.746195]: Connected to OpenCR board!
[INFO] [1570886335.749338]: This core(v1.2.3) is compatible with TB3 Burger
[INFO] [1570886335.752484]: --------------------------
[INFO] [1570886335.755544]: Start Calibration of Gyro
[INFO] [1570886338.288705]: Calibration End

error:

[ERROR] [1570886334.734756]: Parameter ~tf_prefix does not exist
[WARN] [1570886335.723753]: Failed to get param: timeout expired

how can I fix this error?

tf_prefix param is used when you have several robots. If you only have one, you don’t need to set it.

I presume that, even if you have that message error, your robot is working properly, right? So I would not worry about that error.

In case you worry, the tf_prefix is a parameter to separate the tf values of different robots. You can set that value by adding the following line to your launch file:

<param name="tf_prefix" value="robot1_tf" />
1 Like

thank you, it worked

1 Like