Gmapping從開始到放棄 寫乙個TF 廣播

2021-08-09 09:09:36 字數 2474 閱讀 8085

這是乙個關於實現把機械人的位姿廣播到tf中,這是對ros 有一定的熟悉之後教程

(1)cd catkin_ws/src 進入我們的ros 的工作空間

(2)catkin_create_pkg my_tf tf roscpp rospy turtlesim 這一句是新建乙個ros 的包,也就是乙個ros的工程,並新增他的依賴項,主要依賴tf和c++以及你可以使用python開發

(4)catkin_make 編譯一次

(5)source ./devel/setup.bash

然後在my_tf的src檔案下新建乙個檔案,可以自由命名 但是後面也是要用的,這裡就命名是turtle_tf_broadcaster.cpp

新增以下程式

#include 

#include

#include

std:

:string turtle_name;

void posecallback(const turtlesim:

:poseconstptr& msg)

int main(int argc, char** argv);

turtle_name = argv[1]; //烏龜的名字可以輸入

ros:

:nodehandle node; //

//nodehandle是與ros系統交流的最主要的接入點,是乙個控制代碼

ros:

:subscriber sub = node.subscribe(turtle_name+"/pose", 10, &posecallback);//

//從master訂閱某烏龜的「/pose」話題,當訊息到來時,即當烏龜位置改變時產生新的訊息時,ros將會呼叫posecallback

ros:

:spin();

return

0;};

總結: 假設你在機械人上應用,如果你知道機械人的位置x,y,z,與三個旋轉角roll,pitch,yaw就可以廣播乙個tf了,如果在是平面移動機械人,則只需要知道x,y與yaw即可

(6)在cmakelists.txt新增如下的兩行

add_executable(turtle_tf_broadcaster src/turtle_tf_broadcaster.cpp)

target_link_libraries(turtle_tf_broadcaster $)

(7)catkin_make 編譯

編譯完成之後,會發現會生成乙個二進位制檔案,這個檔案就是生成的可執行檔案

(8)在my_tf檔案下新建乙個檔案命名為launch之後新建乙個命名為

start_demo.launch,並把下面的這段**複製進去

pkg="turtlesim"

type="turtlesim_node"

name="sim"/>

pkg="turtlesim"

type="turtle_teleop_key"

name="teleop"

output="screen"/>

name="scale_linear"

value="2"

type="double"/>

name="scale_angular"

value="2"

type="double"/>

pkg="my_tf"

type="turtle_tf_broadcaster"

args="/turtle1"

name="turtle1_tf_broadcaster" />

pkg="my_tf"

type="turtle_tf_broadcaster"

args="/turtle2"

name="turtle2_tf_broadcaster" />

launch>

(9)執行此程式

(10 )箭頭按鍵就可以移動小烏龜,我們可以監聽tf廣播

還有一篇在的tf總結:

VBA 從開始到放棄

debug de到腦殼疼,編 的好難呀!給自己定乙個30天的學習計畫,每天把熟練的 以及弄不懂的問題記錄在這裡,每天進步一點點!電腦上執行vba實在太費勁了!不玩了!1 累加器 計數器 1 course score 2 accouting 90 3 audit 98 4 it audit 95 di...

Tensorflow從開始到放棄

剛剛開始學習神經網路,使用tensorflow,發現不會上網真的是個大坑。在此記錄一路以來已經遇到的坑和即將遇到的坑 非技術問題 我是不會放棄的。q 能夠訪問的tensorflow官網 a 試了一下改hosts檔案並沒有用。q 為什麼按照教程執行的時候會出現很多warning?a 大概是因為網上的教...

CSS從開始到放棄

學完html後我們發現,網頁的大體結構已經出現了,但整體看來不太美觀,那就需要用css來進行修飾 首先我們應該知道使用css的目的是什麼?css簡介 那接下來要弄懂,我們怎麼選擇我們需要的元素?css選擇器 然後呢,我們可以怎樣去裝飾網頁元素呢?css的基本屬性 最後呢就是去了解怎麼去寫得更好更快?...