5
现在我们有了我们的软件包,我们需要创建一个节点来完成在 ROS 上广播 base_laser → base_link 变换
的工作。在刚刚创建的 robot_setup_tf 包中,启动您喜欢的编辑器,并将以下代码粘贴到
src/tf_broadcaster.cpp 文件中。
#include <ros/ros.h>
#include <tf/transform_broadcaster.h>
int main(int argc, char** argv){
ros::init(argc, argv, "robot_tf_publisher");
ros::NodeHandle n;
ros::Rate r(100);
tf::TransformBroadcaster broadcaster;
while(n.ok()){
broadcaster.sendTransform(
tf::StampedTransform(
tf::Transform(tf::Quaternion(0, 0, 0, 1), tf::Vector3(0.1, 0.0, 0.2)),
ros::Time::now(),"base_link", "base_laser"));
r.sleep();
}
}
现在,我们来更详细看看发布 base_link → base_laser 变换相关的代码
#include <tf/transform_broadcaster.h>
tf 包提供了一个 tf::TransformBroadcaster 的实现,以帮助使发布变换的任务更容易。要使用
TransformBroadcaster,我们需要包含 tf/transform_broadcaster.h 头文件。
tf::TransformBroadcaster broadca ster;
在这里,我们创建一个 TransformBroadcaster 对象,我们稍后将通过网络发送 base_link → base_laser
变换。
broadcaster.sendTransform(
tf::StampedTransform(
tf::Transform(tf::Quaternion(0, 0, 0, 1), tf::Vector3(0.1, 0.0, 0.2)),
ros::Time::now(),"base_link", "base_laser"));
评论0
最新资源