turtle_tf2_broadcaster.cpp
Go to the documentation of this file.
1 #include <ros/ros.h>
4 #include <geometry_msgs/TransformStamped.h>
5 #include <turtlesim/Pose.h>
6 
7 std::string turtle_name;
8 
9 
10 
11 void poseCallback(const turtlesim::PoseConstPtr& msg){
13  geometry_msgs::TransformStamped transformStamped;
14 
15  transformStamped.header.stamp = ros::Time::now();
16  transformStamped.header.frame_id = "world";
17  transformStamped.child_frame_id = turtle_name;
18  transformStamped.transform.translation.x = msg->x;
19  transformStamped.transform.translation.y = msg->y;
20  transformStamped.transform.translation.z = 0.0;
22  q.setRPY(0, 0, msg->theta);
23  transformStamped.transform.rotation.x = q.x();
24  transformStamped.transform.rotation.y = q.y();
25  transformStamped.transform.rotation.z = q.z();
26  transformStamped.transform.rotation.w = q.w();
27 
28  br.sendTransform(transformStamped);
29 }
30 
31 int main(int argc, char** argv){
32  ros::init(argc, argv, "my_tf2_broadcaster");
33 
34  ros::NodeHandle private_node("~");
35  if (! private_node.hasParam("turtle"))
36  {
37  if (argc != 2){ROS_ERROR("need turtle name as argument"); return -1;};
38  turtle_name = argv[1];
39  }
40  else
41  {
42  private_node.getParam("turtle", turtle_name);
43  }
44 
45  ros::NodeHandle node;
46  ros::Subscriber sub = node.subscribe(turtle_name+"/pose", 10, &poseCallback);
47 
48  ros::spin();
49  return 0;
50 };
51 
ros::init
ROSCPP_DECL void init(const M_string &remappings, const std::string &name, uint32_t options=0)
ros::NodeHandle::getParam
bool getParam(const std::string &key, bool &b) const
ros.h
tf2::Quaternion::setRPY
void setRPY(const tf2Scalar &roll, const tf2Scalar &pitch, const tf2Scalar &yaw)
dynamic_tf2_broadcaster.br
br
Definition: dynamic_tf2_broadcaster.py:41
transform_broadcaster.h
poseCallback
void poseCallback(const turtlesim::PoseConstPtr &msg)
Definition: turtle_tf2_broadcaster.cpp:11
turtle_name
std::string turtle_name
Definition: turtle_tf2_broadcaster.cpp:7
Quaternion.h
turtle_tf2_listener.msg
msg
Definition: turtle_tf2_listener.py:62
ros::NodeHandle::hasParam
bool hasParam(const std::string &key) const
ros::NodeHandle::subscribe
Subscriber subscribe(const std::string &topic, uint32_t queue_size, const boost::function< void(C)> &callback, const VoidConstPtr &tracked_object=VoidConstPtr(), const TransportHints &transport_hints=TransportHints())
main
int main(int argc, char **argv)
Definition: turtle_tf2_broadcaster.cpp:31
ROS_ERROR
#define ROS_ERROR(...)
tf2_ros::TransformBroadcaster
tf2::Quaternion
ros::spin
ROSCPP_DECL void spin()
ros::NodeHandle
ros::Subscriber
ros::Time::now
static Time now()


turtle_tf2
Author(s): Denis Štogl
autogenerated on Sun Apr 13 2025 02:34:14