|
@@ -0,0 +1,35 @@
|
|
|
+## 4.坐标变换发布监听C++实现
|
|
|
+
|
|
|
+因为C++无法在jupyter中直接运行,所以小鱼将C++TF相关的代码放到这里,有需要的同学自取。
|
|
|
+
|
|
|
+
|
|
|
+```cpp
|
|
|
+#include <tf2/utils.h>
|
|
|
+#include <tf2_ros/transform_broadcaster.h>
|
|
|
+
|
|
|
+
|
|
|
+//声明&初始化发布者
|
|
|
+std::unique_ptr<tf2_ros::TransformBroadcaster> tf_broadcaster_;
|
|
|
+tf_broadcaster_ = std::make_unique<tf2_ros::TransformBroadcaster>(this);
|
|
|
+
|
|
|
+//发布
|
|
|
+geometry_msgs::msg::TransformStamped transform;
|
|
|
+transform.header.stamp = this->now();
|
|
|
+transform.header.frame_id = "odom";
|
|
|
+transform.child_frame_id = "base_link";
|
|
|
+// Fill in transform.transform.translation
|
|
|
+transform.transform.translation.x = 0.0;
|
|
|
+transform.transform.translation.y = 0.0;
|
|
|
+transform.transform.translation.z =0.0;
|
|
|
+// Fill in transform.transform.rotation
|
|
|
+auto quat = tf2::Quaternion();
|
|
|
+quat.setRPY(0.0;, 0.0, 0.0);
|
|
|
+transform.transform.rotation.x = 0.0;
|
|
|
+transform.transform.rotation.y = 0.0;
|
|
|
+transform.transform.rotation.z = 0.0;
|
|
|
+transform.transform.rotation.w = 0.0;
|
|
|
+tf_broadcaster_->sendTransform(transform);
|
|
|
+
|
|
|
+```
|
|
|
+
|
|
|
+
|