ROS应用开发入门 tf 坐标系广播与监听的编程

ROS是机器人操作系统的简称,本文介绍ROS应用开发入门,TF坐标系广播与监听的编程。小乌龟仿真中有2只乌龟,键盘控制第1只乌龟走动,2只乌龟都都广播自己的坐标。监听器听取2个乌龟的坐标,获得相对位置,控制第2只乌龟不断追随第1只乌龟。代码是c++。测试验证有2种方式,普通方式和launch 方式。

工程包建立

在 ROS 开发应用准备:创建工作空间 一文中建立了ROS工作空间,现在就建立一个功能包:

cd ~/catkin_ws/src

catkin_create_pkg learning_tf roscpp rospy tf turtlesim

第1行是回到工作空间的src 目录,功能包建立必须在这个目录下运行。

第2行是建立功能包的命令,第一个参数是功能包的名字,这里是learning_tf , 接下来是功能包的依赖库,这里是roscpp rospy tf turtlesim共4个依赖库。

上面命令执行后,可以在src 目录下看到有一个目录,名字是learning_tf,其下有下面内容:

CMakeLists.txt  include  package.xml   src
 

广播器代码

在工程目录的 src 目录下,也是~/catkin_ws/src/learning_tf/src 目录, 建立一个文件turtle_tf_broadcaster.cpp,

cd ~//catkin_ws/src/learning_tf/src

nano turtle_tf_broadcaster.cpp

内容为:

/**
 * 该例程产生tf数据,并计算、发布turtle2的速度指令
 */

#include <ros/ros.h>
#include <tf/transform_broadcaster.h>
#include <turtlesim/Pose.h>

std::string turtle_name;

void poseCallback(const turtlesim::PoseConstPtr& msg)
{
	// 创建tf的广播器
	static tf::TransformBroadcaster br;

	// 初始化tf数据
	tf::Transform transform;
	transform.setOrigin( tf::Vector3(msg->x, msg->y, 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值