兩個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
>
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...