02-TF-tf監(jiān)聽(tīng)

1.編碼

$ roscd learning_tf
$ vim nodes/turtle_tf_listener.py

#!/usr/bin/env python  
import roslib
roslib.load_manifest('learning_tf')
import rospy
import math
import tf
import geometry_msgs.msg
import turtlesim.srv

if __name__ == '__main__':
    rospy.init_node('tf_turtle')

    listener = tf.TransformListener()
  #tf.TransformListener()開(kāi)啟tf.TransformListener結(jié)構(gòu)體累舷,一旦listener開(kāi)啟铃芦,就開(kāi)始接受坐標(biāo)變換數(shù)據(jù)待逞,數(shù)據(jù)有10s的緩存。
    rospy.wait_for_service('spawn')
    spawner = rospy.ServiceProxy('spawn', turtlesim.srv.Spawn)
    spawner(4, 2, 0, 'turtle2')

    turtle_vel = rospy.Publisher('turtle2/cmd_vel', geometry_msgs.msg.Twist,queue_size=1)

    rate = rospy.Rate(10.0)
    while not rospy.is_shutdown():
        try:
            (trans,rot) = listener.lookupTransform('/turtle2', '/turtle1', rospy.Time(0))
        #核心代碼解析:lookupTransform('frame1','frame2',rospy.Time(0))
        #frame1是變換的起始坐標(biāo)系,frame2是變換的目的坐標(biāo)系。簡(jiǎn)單說(shuō)就是將坐標(biāo)系1變換到坐標(biāo)系2.time是轉(zhuǎn)換時(shí)間,rospy.Time(0)表示馬上轉(zhuǎn)換存谎。最后的結(jié)果是坐標(biāo)系1相對(duì)坐標(biāo)系2的坐標(biāo)。
        except (tf.LookupException, tf.ConnectivityException, tf.ExtrapolationException):
            continue

        angular = 4 * math.atan2(trans[1], trans[0])
        linear = 0.5 * math.sqrt(trans[0] ** 2 + trans[1] ** 2)
        cmd = geometry_msgs.msg.Twist()
        cmd.linear.x = linear
        cmd.angular.z = angular
        turtle_vel.publish(cmd)

        rate.sleep()

chmod +x nodes/turtle_tf_listener.py

2.運(yùn)行l(wèi)istener

修改launch文件

vim launch/start_demo.launch

  <launch>
    ...
    <node pkg="learning_tf" type="turtle_tf_listener.py" 
          name="listener" />
  </launch>

roslaunch learning_tf start_demo.launch

3.檢查結(jié)果

按照官方文檔運(yùn)行后會(huì)報(bào)錯(cuò)肥隆,如下所示是官方文檔部分
運(yùn)行后terminal報(bào)錯(cuò)既荚,找不到turtler2坐標(biāo)系

[ERROR] 1253915565.300572000: Frame id /turtle2 does not exist! When trying to transform between /turtle1 and /turtle2.
[ERROR] 1253915565.401172000: Frame id /turtle2 does not exist! When trying to transform between /turtle1 and /turtle2.

出現(xiàn)問(wèn)題的原因是創(chuàng)建第二個(gè)海龜坐標(biāo)系并發(fā)布數(shù)據(jù)需要一些時(shí)間,而在此之前l(fā)istener無(wú)法讀取數(shù)據(jù)栋艳。
實(shí)際測(cè)試過(guò)程中運(yùn)行ok恰聘,可能是電腦比較慢的緣故。吸占。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末晴叨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子矾屯,更是在濱河造成了極大的恐慌兼蕊,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件件蚕,死亡現(xiàn)場(chǎng)離奇詭異孙技,居然都是意外死亡产禾,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門牵啦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)亚情,“玉大人,你說(shuō)我怎么就攤上這事哈雏±慵” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵裳瘪,是天一觀的道長(zhǎng)土浸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)盹愚,這世上最難降的妖魔是什么栅迄? 我笑而不...
    開(kāi)封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任站故,我火速辦了婚禮皆怕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘西篓。我一直安慰自己愈腾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布岂津。 她就那樣靜靜地躺著虱黄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吮成。 梳的紋絲不亂的頭發(fā)上橱乱,一...
    開(kāi)封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音粱甫,去河邊找鬼泳叠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛茶宵,可吹牛的內(nèi)容都是我干的危纫。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乌庶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼种蝶!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起瞒大,我...
    開(kāi)封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤螃征,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后透敌,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體盯滚,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锅棕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了淌山。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片裸燎。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖泼疑,靈堂內(nèi)的尸體忽然破棺而出德绿,到底是詐尸還是另有隱情,我是刑警寧澤退渗,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布移稳,位于F島的核電站,受9級(jí)特大地震影響会油,放射性物質(zhì)發(fā)生泄漏个粱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一翻翩、第九天 我趴在偏房一處隱蔽的房頂上張望都许。 院中可真熱鬧,春花似錦嫂冻、人聲如沸胶征。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)睛低。三九已至,卻和暖如春服傍,著一層夾襖步出監(jiān)牢的瞬間钱雷,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工吹零, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罩抗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓瘪校,卻偏偏與公主長(zhǎng)得像澄暮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子阱扬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • 本篇教程演示如何建立新坐標(biāo)系泣懊,建立新坐標(biāo)系與創(chuàng)建tf廣播類似,同時(shí)能加強(qiáng)tf功能麻惶。 1.為什么添加坐標(biāo)系 很多實(shí)例...
    joey_zhou閱讀 1,405評(píng)論 0 0
  • 0.創(chuàng)建工作包 $ cd %YOUR_CATKIN_WORKSPACE_HOME%/src$ catkin_cre...
    joey_zhou閱讀 968評(píng)論 0 0
  • 時(shí)間關(guān)系 進(jìn)入軟件包 $ roscd learning_tf 現(xiàn)在我們將第二個(gè)海龜實(shí)時(shí)跟隨第一只海龜更改為第二只海...
    joey_zhou閱讀 973評(píng)論 0 1
  • TF介紹 描述 教程介紹了tf的實(shí)際應(yīng)用馍刮,并展示了使用 turtlesim的多機(jī)器人示例. 同時(shí)介紹了tf_ech...
    joey_zhou閱讀 1,886評(píng)論 0 0
  • TF API數(shù)學(xué)計(jì)算tf...... :math(1)剛開(kāi)始先給一個(gè)運(yùn)行實(shí)例。tf是基于圖(Graph)的計(jì)算系統(tǒng)...
    MachineLP閱讀 3,451評(píng)論 0 1