I'd like to change initial pose map to base_link

I combined camera and my robot. and disable publishing TF of odom and map from camera. (using robot map and odom_combined(robot_pose_ekf)
path_odom and map_odom drawing from map TF.
I’d like to change map to base_link.

Thank you for reading my question.

Hi @sanghwa
the ZED ROS Wrapper requires the map link to correctly work because it uses it internally in the posizional tracking module, following the REP105.
When you disable odom publishing you need that another external node correctly publishes the required TF chain: mapodombase_link

Can you explain better why you want to “change map to base_link”?

Thank you for reply @Myzhar

Now I publish wheel odom & amcl pose(odom). It’s starting from base_link(robot pose).
Camera is on robot. camera TF is linked to base_link.
Camera pose starting from map.
I’d like to compare camera odometry, wheel odometry and amcl odomety.
So I want to set three odom on the same TF(starting position & orientation)
image

Blue line : camera odom
Red line & green line : wheel & amcl odom

Ok, you simply need to modify the launch file used to start the ZED camera in order to provide the correct transform base_link<camera_name>_camera_center.
For the ZED2 you find it here:

Modifying those values you automatically modify the camera URDF thanks to xacro:

Are you using localization on a known map?
In this case you cannot start the positional tracking module of the camera with the default parameters, but you must call the relative set_pose service providing the first valid position calculated by your localization algorithm:
https://www.stereolabs.com/docs/ros/zed-node/#services

image

camera_center already transformed.

Can you post the TF tree?

Sure.
This is the TF tree.

OK, the TF Tree is correct from the ZED point of view.
To obtain what you are searching for you must start the ZED positional tracking with the first known pose coming from your localization algorithm.
The problem is generated by the fact that the ZED odometry starts from the first valid pose received by the internal positional tracking algorithm. If you start it automatically when the node starts the initial position is the origin [0,0,0,0,0,0] and the odometry will start from there.
The set_pose service should solve your problem.