RTK GPS's for absolute position and Orientation w/ Robot Localization
Hello All,
I have asked a question before about using a RTK GPS + IMU + Wheel Encoder Setup and received good feedback.
Now i ask about a system with 2 RTK GPS units + Wheel Encoder.
The RTK units are mounted on opposite ends of the robot frame. I am able to obtain position and orientation from this setup.
I want to clarify my settings of the frames for the robot_localization package.
I plan on publishing 2 Odometry messages from the RTK system, one for the position, the other for the orientation. The frame_id in the Odometry message from the RTK system was originally "gps". Since the gps is mounted on the side of the robot, i have defined a static transform from gps->base_link.
For the first Odometry message (in which only the linear positions and linear velocities are populated), i changed the frame_id of the message to "map", as well as set the child_frame_id to "gps". In this way, the RTK solution gives me a transform from map to gps, and the defined static transform gives me gps to base-link, therefore i obtain the map-> base-link transform.
For the second Odometry message (in which only the yaw is obtained, none of the velocities, and none of linear positions), this is provided relative to true north, which is a world fixed frame. So for that i was thinking having frame_id map, and child_frame_id as base_link, because the yaw described in this message is relative to true north.. This would be published as a separate Odometry message.
For the wheel encoder node, i have it publishing Odometry message with frame_id being odom, and child frame id being base_link. All the fields are populated (pose, twist).
And now, i fuse them with one instance of EKF in robot_localization package. From each odometry message, i fuse the following:
- only xyz position and linear velocity xyz (map->gps + gps->base_link static transform = map->base_link)
- yaw and only yaw (relative to earth and so map->base_link)
- linear and angular velocity (odom->base_link)
Does this setup make sense?
Thank you, Jad
@JadTawil I'm a little confused on what the 'gps' frame is in your setup. If the GPS is reporting pose odometry (presumably of gps_link in the gps frame), why are you defining a static transform between gps and base_link? I'm guessing the 'gps' frame is being confused with a 'gps_link' frame.
yes gps_link is what it really means.