Skip to content

Commit 421c443

Browse files
authored
Merge pull request #25 from marco-tranzatto/feature/frame_id_as_param
frame_id string can be set as ros paramaters
2 parents ba2ebb9 + 72edc0a commit 421c443

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Creates a reference frame based on initial GPS measurements
2121
Publishes position information based on GPS measurements and initialised reference frame
2222
#### Parameters
2323
* `sim` - true if GPS readings received from /gazebo using Hectors plugin, false if received from actual device
24+
* `frame_id` - string in header field of output messages ("world" is the default one if it's not specified)
2425

2526
#### Subscribed Topics:
2627
* `gps` ([sensor_msgs/NavSatFix](http://docs.ros.org/api/sensor_msgs/html/msg/NavSatFix.html)) - GPS sensor information

src/gps_to_pose_conversion_node.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ double g_covariance_position_z;
3333
double g_covariance_orientation_x;
3434
double g_covariance_orientation_y;
3535
double g_covariance_orientation_z;
36+
std::string g_frame_id;
3637

3738
void imu_callback(const sensor_msgs::ImuConstPtr& msg)
3839
{
@@ -79,7 +80,7 @@ void gps_callback(const sensor_msgs::NavSatFixConstPtr& msg)
7980
geometry_msgs::PoseWithCovarianceStampedPtr pose_msg(
8081
new geometry_msgs::PoseWithCovarianceStamped);
8182
pose_msg->header = msg->header;
82-
pose_msg->header.frame_id = "world";
83+
pose_msg->header.frame_id = g_frame_id;
8384
pose_msg->pose.pose.position.x = x;
8485
pose_msg->pose.pose.position.y = y;
8586
pose_msg->pose.pose.position.z = z;
@@ -89,7 +90,7 @@ void gps_callback(const sensor_msgs::NavSatFixConstPtr& msg)
8990
geometry_msgs::PointStampedPtr position_msg(
9091
new geometry_msgs::PointStamped);
9192
position_msg->header = pose_msg->header;
92-
position_msg->header.frame_id = "world";
93+
position_msg->header.frame_id = g_frame_id;
9394
position_msg->point = pose_msg->pose.pose.position;
9495

9596
// If external altitude messages received, include in pose and position messages
@@ -136,7 +137,7 @@ void gps_callback(const sensor_msgs::NavSatFixConstPtr& msg)
136137
geometry_msgs::TransformStampedPtr transform_msg(
137138
new geometry_msgs::TransformStamped);
138139
transform_msg->header = msg->header;
139-
transform_msg->header.frame_id = "world";
140+
transform_msg->header.frame_id = g_frame_id;
140141
transform_msg->transform.translation.x = x;
141142
transform_msg->transform.translation.y = y;
142143
transform_msg->transform.translation.z = z;
@@ -181,6 +182,8 @@ int main(int argc, char **argv) {
181182
g_covariance_orientation_y, 0.02);
182183
ros::param::param("~fixed_covariance/orientation/z",
183184
g_covariance_orientation_z, 0.11);
185+
ros::param::param<std::string>("~frame_id",
186+
g_frame_id, "world");
184187

185188
// Specify whether to publish pose or not
186189
ros::param::param("~publish_pose", g_publish_pose, false);
@@ -219,7 +222,7 @@ int main(int argc, char **argv) {
219222
ros::Subscriber imu_sub = nh.subscribe("imu", 1, &imu_callback);
220223
ros::Subscriber gps_sub = nh.subscribe("gps", 1, &gps_callback);
221224
ros::Subscriber altitude_sub =
222-
nh.subscribe("external_altitude", 1, &altitude_callback);
225+
nh.subscribe("external_altitude", 1, &altitude_callback);
223226

224227
ros::spin();
225228
}

0 commit comments

Comments
 (0)