@@ -33,6 +33,7 @@ double g_covariance_position_z;
33
33
double g_covariance_orientation_x;
34
34
double g_covariance_orientation_y;
35
35
double g_covariance_orientation_z;
36
+ std::string g_frame_id;
36
37
37
38
void imu_callback (const sensor_msgs::ImuConstPtr& msg)
38
39
{
@@ -79,7 +80,7 @@ void gps_callback(const sensor_msgs::NavSatFixConstPtr& msg)
79
80
geometry_msgs::PoseWithCovarianceStampedPtr pose_msg (
80
81
new geometry_msgs::PoseWithCovarianceStamped);
81
82
pose_msg->header = msg->header ;
82
- pose_msg->header .frame_id = " world " ;
83
+ pose_msg->header .frame_id = g_frame_id ;
83
84
pose_msg->pose .pose .position .x = x;
84
85
pose_msg->pose .pose .position .y = y;
85
86
pose_msg->pose .pose .position .z = z;
@@ -89,7 +90,7 @@ void gps_callback(const sensor_msgs::NavSatFixConstPtr& msg)
89
90
geometry_msgs::PointStampedPtr position_msg (
90
91
new geometry_msgs::PointStamped);
91
92
position_msg->header = pose_msg->header ;
92
- position_msg->header .frame_id = " world " ;
93
+ position_msg->header .frame_id = g_frame_id ;
93
94
position_msg->point = pose_msg->pose .pose .position ;
94
95
95
96
// If external altitude messages received, include in pose and position messages
@@ -136,7 +137,7 @@ void gps_callback(const sensor_msgs::NavSatFixConstPtr& msg)
136
137
geometry_msgs::TransformStampedPtr transform_msg (
137
138
new geometry_msgs::TransformStamped);
138
139
transform_msg->header = msg->header ;
139
- transform_msg->header .frame_id = " world " ;
140
+ transform_msg->header .frame_id = g_frame_id ;
140
141
transform_msg->transform .translation .x = x;
141
142
transform_msg->transform .translation .y = y;
142
143
transform_msg->transform .translation .z = z;
@@ -181,6 +182,8 @@ int main(int argc, char **argv) {
181
182
g_covariance_orientation_y, 0.02 );
182
183
ros::param::param (" ~fixed_covariance/orientation/z" ,
183
184
g_covariance_orientation_z, 0.11 );
185
+ ros::param::param<std::string>(" ~frame_id" ,
186
+ g_frame_id, " world" );
184
187
185
188
// Specify whether to publish pose or not
186
189
ros::param::param (" ~publish_pose" , g_publish_pose, false );
@@ -219,7 +222,7 @@ int main(int argc, char **argv) {
219
222
ros::Subscriber imu_sub = nh.subscribe (" imu" , 1 , &imu_callback);
220
223
ros::Subscriber gps_sub = nh.subscribe (" gps" , 1 , &gps_callback);
221
224
ros::Subscriber altitude_sub =
222
- nh.subscribe (" external_altitude" , 1 , &altitude_callback);
225
+ nh.subscribe (" external_altitude" , 1 , &altitude_callback);
223
226
224
227
ros::spin ();
225
228
}
0 commit comments