本文主要是介绍【ros2】geometry_msgs::msg::TransformStamped 数据类型详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
geometry_msgs::msg::TransformStamped
数据类型详解
1. 数据类型定义
geometry_msgs::msg::TransformStamped
是 ROS 2 中的一个消息类型,用于表示一个时间戳和坐标变换信息。
2. 结构
geometry_msgs::msg::TransformStamped
包含以下字段:
struct TransformStamped
{Header header;std::string child_frame_id;Transform transform;
};
3.例子
#include <rclcpp/rclcpp.hpp>
#include <geometry_msgs/msg/transform_stamped.hpp>int main()
{rclcpp::init(0, nullptr);auto node = std::make_shared<rclcpp::Node>("example_node");// 创建一个 TransformStamped 对象auto transform_stamped = std::make_shared<geometry_msgs::msg::TransformStamped>();// 设置 headertransform_stamped->header.stamp = node->now();transform_stamped->header.frame_id = "world";transform_stamped->header.seq = 0;// 设置 child_frame_idtransform_stamped->child_frame_id = "base_link";// 设置 transformtransform_stamped->transform.translation.x = 1.0;transform_stamped->transform.translation.y = 2.0;transform_stamped->transform.translation.z = 3.0;transform_stamped->transform.rotation.x = 0.0;transform_stamped->transform.rotation.y = 0.0;transform_stamped->transform.rotation.z = 0.0;transform_stamped->transform.rotation.w = 1.0;// 使用智能指针const std::shared_ptr<geometry_msgs::msg::TransformStamped> & transform_stamped_ptr = transform_stamped;// 打印变换信息RCLCPP_INFO(node->get_logger(), "Translation: (%f, %f, %f)",transform_stamped_ptr->transform.translation.x,transform_stamped_ptr->transform.translation.y,transform_stamped_ptr->transform.translation.z);rclcpp::shutdown();return 0;
}
这篇关于【ros2】geometry_msgs::msg::TransformStamped 数据类型详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!