2 #include <nav_msgs/Path.h> 3 #include <geometry_msgs/PoseStamped.h> 10 double wait_for_transform_duration;
11 ros::param::param<double>(
"wait_for_transform_duration", wait_for_transform_duration, 3.0);
13 return wait_for_transform_duration;
17 std::string base_link_frame_id;
18 ros::param::param<std::string>(
"base_link_frame_id", base_link_frame_id,
"base_link");
20 return base_link_frame_id;
39 ros::param::param<std::string>(
"path_topic_name",
path_topic_name,
"path");
58 tf_listener.
lookupTransform(map_frame_id, robot_frame_id, stamp_latest, stamped_transform);
60 geometry_msgs::PoseStamped pose_stamped;
61 pose_stamped.header.frame_id = stamped_transform.
frame_id_;
62 pose_stamped.header.stamp = stamped_transform.
stamp_;
63 pose_stamped.pose.position.x = stamped_transform.
getOrigin().
x();
64 pose_stamped.pose.position.y = stamped_transform.
getOrigin().
y();
75 return geometry_msgs::PoseStamped();
79 int main(
int argc,
char **argv) {
89 while(node_handle.ok()) {
91 path.header.stamp = pose_stamped.header.stamp;
92 path.poses.push_back(pose_stamped);
94 publisher.publish(path);
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
TFSIMD_FORCE_INLINE const tfScalar & x() const
int main(int argc, char **argv)
static double tf_wait_for_transform_duration()
static std::string tf_base_link_frame_id()
TFSIMD_FORCE_INLINE const tfScalar & y() const
static std::string path_topic_name()
static geometry_msgs::PoseStamped get_current_pose()
std::string tf_map_frame_id()
static double publishing_rate()
static int subscriber_queue_size()