ROS學習之路(四) topic demo

2021-10-24 02:28:44 字數 2702 閱讀 7374

兩個node,乙個發布模擬的gps訊息(格式為自定義,包括座標和工作狀態),另外乙個接受並處理資訊(計算到遠點的距離)。

package

msgtalker.cpp

listener.cpp

cmakelist.txt&package.xml

$ cd catkin_ws/src

$ cakin_create_pkg topic_demo roscpp rospy std_msgs

$ cd topic_demo

$ mkdir msg

$ cd msg

$ vim gps.msg

gps.msg的內容:

float32 x

float32 y

string state

然後進行編譯

$ cd ~/catkin_ws/

$ catkin_make

編譯完以後會在devel/include下面生成topic_demo資料夾,包含了gps.h。

在topic_demo/src目錄下建立talker.cpp

$ cd src/topic_demo/src

$ vim talker.cpp

#include

#include

intmain

(int argc,

char

** ar**)

return0;

}

這種模板適合週期性資訊。

listener.cpp的編輯在robotware裡面進行。

#include

#include

#include

void

gpscallback

(const topic_demo::gps::constptr &msg )

intmain

(int argc,

char

** ar**)

cmake_minimum_required(version 3.0.2)

project(topic_demo)

find_package(catkin required components message_generation roscpp rospy std_msgs)

#新增指定依賴項

add_message_files(files gps.msg)

#新增自定義的msg

generate_messages(dependencies std_msgs)

#生成msg對應的標頭檔案

catkin_package(catkin_depends roscpp rospy std_msgs message_runtime)

#用於配置ros和package配置檔案和cmake檔案

include_directories(include $

)#指定c/c++的標頭檔案

add_executable(talker src/talker.cpp)

#生成可執行檔案

add_dependencies(talker topic_demo_generate_messages_cpp)

#新增依賴項

target_link_libraries(talker $

)#鏈結

add_executable(listener src/listener.cpp)

add_dependencies(listener topic_demo_generate_messages_cpp)

target_link_libraries(listener $

)

<?xml version="1.0"?>

>

>

topic_demoname

>

>

0.0.0version

>

>

the topic_demo packagedescription

>

email

="[email protected]"

>

rosmaintainer

>

>

bsdlicense

>

>

catkinbuildtool_depend

>

>

message_generationbuild_depend

>

>

roscppbuild_depend

>

>

rospybuild_depend

>

>

std_msgsbuild_depend

>

>

roscpprun_depend

>

>

rospyrun_depend

>

>

std_msgsrun_depend

>

>

message_runtimerun_depend

>

>

export

>

package

>

ROS學習之路(一)認識ROS

機器代替人力走進各行各業解放人類已經成為一種不可遏制的趨勢,ros便是用來控制這些機器的比較流行的平台,類似於手機中的android。ros建立在linux系統之上,有點像linux的一種特殊軟體。裡面有很多庫,可以用來執行不同功能。我們經常會遇到這樣的情況,機器在下面執行著 比如一輛裝有攝像頭 雷...

ROS學習筆記(四) ROS命令

roscd pkg 切換到指定的ros功能包目錄 rosls pkg 列印指定的ros功能包目錄下的檔案和目錄 rosed pkg file 編輯指定的ros功能包目錄下的指定檔案,預設使用vim編輯器,可在 bashrc檔案中修改預設編輯器 export editor emacs nw rosco...

Ros學習筆記(四)建立Ros訊息

學習如何使用.msg檔案建立使用者自定義的訊息,並且在節點中使用這些自定義訊息,這包含乙個關於要傳輸的資料型別的標準。首先在chapter2 turtleial包中建立乙個msg資料夾,在資料夾中建立乙個chapter2 msg.msg檔案,並新增以下命令列 int32 a int32 b int3...