ROS探索總結(十二)——座標系統
建立launch檔案start_demo.launch:
<launch> <!-- Turtlesim Node--> <node pkg="turtlesim" type="turtlesim_node" name="sim"/> <node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/> <node name="turtle1_tf_broadcaster" pkg="learning_tf" type="turtle_tf_broadcaster.py" respawn="false" output="screen" > <param name="turtle" type="string" value="turtle1" /> </node> <node name="turtle2_tf_broadcaster" pkg="learning_tf" type="turtle_tf_broadcaster.py" respawn="false" output="screen" > <param name="turtle" type="string" value="turtle2" /> </node> </launch>
執行:
$ roslaunch learning_tf start_demo.launch
可以看到介面中只有移植烏龜了,開啟tf_echo的資訊視窗:
$ rosrun tf tf_echo /world /turtle1
world參考系的原點在最下角,對於turtle1的轉換關係,其實就是turtle1在world參考系中所在的座標位置以及旋轉角度。
三、Writing a tf listener
這一步,我們將看到如何使用tf進行參考系轉換。首先寫一個tf listener(nodes/turtle_tf_listener.py):#!/usr/bin/env python import roslib roslib.load_manifest('learning_tf') import rospy import math import tf import turtlesim.msg import turtlesim.srv if __name__ == '__main__': rospy.init_node('tf_turtle') listener = tf.TransformListener() #TransformListener建立後就開始接受tf廣播資訊,最多可以快取10s rospy.wait_for_service('spawn') spawner = rospy.ServiceProxy('spawn', turtlesim.srv.Spawn) spawner(4, 2, 0, 'turtle2') turtle_vel = rospy.Publisher('turtle2/command_velocity', turtlesim.msg.Velocity) rate = rospy.Rate(10.0) while not rospy.is_shutdown(): try: (trans,rot) = listener.lookupTransform('/turtle2', '/turtle1', rospy.Time(0)) 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) turtle_vel.publish(turtlesim.msg.Velocity(linear, angular)) rate.sleep()
相關推薦
ROS探索總結(十二)——座標系統
建立launch檔案start_demo.launch:<launch> <!-- Turtlesim Node--> <node pkg="turtlesim" type="turtlesim_node" name="sim"/>
ROS探索總結(十二)——坐標系統
時間 形象 ins left 添加 href node continue 我們 ubuntu 14.04 indigo版本 轉摘自:http://www.guyuehome.com/265 一、tf簡介 1、安裝turtle包 1 rosdep install tu
ROS探索總結(十六)——HRMRP機器人的設計
HRMRP具備豐富的感測器和執行器,在該平臺的基礎上,我們設計並實現了機器人SLAM、自主導航、人臉識別、機械臂控制等功能。在設計開發完成之初,我們參加了2013年的OpenHW大賽,並且獲得了全國一等獎,此外還在中國智慧機器人學術會議上發表學術論文一篇,獲得了會議的十佳論文獎。這個機器人陪伴我走
ROS探索總結(十七)——構建完整的機器人應用系統
當然,該系統對多機器人的支援也是很好的,由於時間有限,我們只做了一個簡單的機器人跟隨實驗。該實驗使用了兩個機器人,除HRMRP機器人之外,還使用樹莓派製作了一個簡單的小型機器人。在實驗中,HRMRP機器人在地圖上自主導航前進,伺服器負責應用的處理與顯示,同時將HRMRP的位置資訊轉發給樹莓派機器
FFmpeg總結(十二)用ffmpeg與nginx實現直播多路流並發播放
xxx 開源 conf ref itl rect arc med rtm 圖:撒哈拉沙漠 下載 nginx 和 nginx-rtmp源碼: http://nginx.org/download/nginx-1.5.10.tar.gz https://github.com/a
Linux總結(十二)set_uid set_gid stic_bit 軟鏈接 硬鏈接
允許 重新 共享 路徑和 mark bit t權限 忽略 進行 一 set_uid 之前我們修改普通用戶的登陸密碼,都是以管理員身份在操作,比如我們在lv賬戶下,我們使用sudo passwd lv 重置lv賬戶密碼,此時我們直接拿到root權限忽略掉了文件權限的限制。那麽
java基礎學習總結(十二):深入理解java內部類
內部類 內部類也是語法糖,是因為它僅僅是一個編譯時的概念,outer.java裡面定義了一個內部類inner,一旦編譯成功,就會生成兩個完全不同的.class檔案了,分別是outer.class和outer$inner.class。所以內部類的名字完全可以和它的外部類名字相同。 內部類分為四
Android Multimedia框架總結(十二)CodeC部分之OMXCodec與OMX事件回撥流程
前言:上篇文中分析到AwesomePlayer到OMX服務,曾介紹到,OMX服務主要完成三個任務: NodeInstance列表的管理,NodeInstance的操作, 事件的處理。最後這個事件處理就是今天放大看的內容。要一步一步一Codec,事件傳遞必不可
FFmpeg總結(十二)用ffmpeg與nginx實現直播多路流併發播放
編譯安裝: cd nginx-1.5.10 ./configure –with-http_ssl_module –add-module=../nginx-rtmp-module-master make make install 瀏覽器輸入loc
springboot學習總結(十二)BeanDefinitionRegistryPostProcessor向spring容器中註冊bean
strac autowired true all 方法 brush autowire tee sync (一)功能 實現了BeanDefinitionRegistryPostProcessor接口的類,可以在覆寫的postProcessBeanDefinitionRegi
作業系統知識點總結(十七)檔案系統知識點總結
磁碟結構 引導控制塊(Boot Control Block)包括系統從該分割槽引導作業系統所需要的資訊。如果 磁碟沒有作業系統,那麼這塊的內容為空。它通常為分割槽的第一塊。UFS稱之為引導塊(Boot Block); NTFS 稱之為分割槽引導扇區(Partition B
(十二)Android 系統啟動原理(art 虛擬機器)
一、虛擬機器的啟動 Android 是一個 Linux 的虛擬機器,當虛擬機器啟動的時候,會執行手機根目錄下的 init.rc(實際上就是 .sh 檔案) 這個可執行檔案。 在 init.rc 中,有一行 on init 執行命令。這是呼叫 in
遊戲開發入門(十二)遊戲開發全總結
通過遊戲開發入門系列的學習,是不是對遊戲開發有了一個比較清晰的認識? 在最後一篇裡面,博主試著概括性的對遊戲開發做一個總結,歡迎各位提出意見來完善這篇部落格~ 遊戲模組總結: 遊戲邏輯模組系統:各種武器,狀態,技能,揹包,戰鬥等邏輯系統 動畫模組系
軟工1816 · 作業(十二)Beta答辯總結
組長部落格 宣傳視訊 github團隊專案倉庫 本組成員 隊員姓名與學號 124 王彬(組長) 206 趙暢 215 胡展瑞 320 李恆達 131 佘嶽昕 431 王源 206 陳文垚 209 陳志煒 225 林煌偉 Beta部落格彙總
《喬布斯傳》經典摘錄之iphone【天線門】事件二(解決、總結、分析)(十二)...
此部分內容主要講iphone【天線門】事件如何解決、總結和分析 週五 , 蘋果在公司禮堂舉辦了新聞釋出會 , 喬布斯採納了麥肯納的意見 。 他 沒有卑躬屈膝 , 也沒有道歉 , 只表示蘋果理解這個問題並會盡力改正 , 這樣他就 得以平息問題 。 接著 , 他話題一轉
系統學習機器學習之神經網路(十二) --人工神經網路總結
本來這篇還缺個RBM,但RBM在DBN中使用,暫時放在深度學習那裡。這裡看到一篇非常好的總結,儲存下來。 轉自:http://blog.csdn.net/fengbingchun/article/details/50274471 本文主要對人工神經網路基礎進行了描述,主要包
ROS學習--(十二)編寫一個簡單的釋出器(publisher)
1.mkdir -p ~/catkin_ws/src/beginner_tutorials/src 先在beginner_tutorials下建立一個src。 -p的意思是如果路徑中有不存在的資料夾,則建立 2。在新建的資料夾裡面新建cpp檔案,talker
慕課網實戰·高併發探索(十二):併發容器J.U.C -- AQS元件 鎖:ReentrantLock、ReentrantReadWriteLock、StempedLock
特別感謝:慕課網jimin老師的《Java併發程式設計與高併發解決方案》課程,以下知識點多數來自老師的課程內容。 jimin老師課程地址:Java併發程式設計與高併發解決方案 ReentrantLock java中有兩類鎖,一類是Synchron
ROS探索總結(六)——使用smartcar進行模擬
<?xml version="1.0"?> <robot name="smartcar" xmlns:xacro="http://ros.org/wiki/xacro"> <property name="M_PI" value="3.14159"/> <!-
(十二)Hibernate中的多表操作(1):單向多對一
art 保存 int gen round t對象 情況 映射文件 拋出異常 由“多”方可知“一”方的信息,比如多個員工使用同一棟公寓,員工可以知道公寓的信息,而公寓無法知道員工的信息。 案例一: pojo類 public class Department {