ROS學習筆記 自定義資料型別的topic

2021-10-21 04:50:08 字數 1687 閱讀 3107

string name

uint8 ***

uint8 age

uint8 unknown = 0

uint8 male = 1

uint8 female =2

這裡使用的基礎資料型別與語言無關,編譯會變成各種各樣的語言對應的資料型別 ros真的強

message_generation//編譯依賴

message_runtime//執行依賴

message_generation
catkin_package(

# include_dirs include

# libraries learning_topic

catkin_depends geometry_msgs roscpp rospy std_msgs turtlesim message_runtime

# depends system_lib

)原來的樣子是這樣的

catkin_package(

# include_dirs include

# libraries learning_topic

# catkin_depends geometry_msgs roscpp rospy std_msgs turtlesim

# depends system_lib

)

add_message_files(

files

person.msg

)generate_messages(

dependencies

std_msgs

)

然後編譯即可 ,你不會編譯我就管不了

編譯完會生成乙個selfdefinetopicname.h的檔案在devel/packagename目錄下。

寫**時直接#include''packagename/selfdefinetopicnmae.h"即可。

packagename是命名空間

rosmsg show packagename/person
這個命令可以檢視此資料結構的資訊

最後附上跟這個topic配套的publisher跟subscriber的demo

//person_publiser

#include

"learning_topic/person.h"

#include

intmain

(int argc,

char

**ar**)

return0;

}

#include

"learning_topic/person.h"

#include

void

personcallback

(const learning_topic::person::constptr &msg)

intmain

(int argc,

char

**ar**)

ROS自定義資料型別

自定義資料報可以在使用資料的功能包內進行建立,也可以單獨建立乙個功能包來專門進行自定義資料型別.1.建立乙個功能包 進入工作空間catkin ws src catkin create pkg test msgs actionlib std msgs message generation action...

自定義資料型別

include include using namespace std typedef double weight,tall struct student int main cout for int i 0 i 4 i return 0 貼上正確的輸出 這裡tall和weight都是自己可以輸入的 ...

自定義的資料型別

c 中有一種資料型別稱為列舉 enumeration 型別,它允許使用者自己來定義一種資料型別,並列出該資料型別的取值範圍。定義列舉型別的語法格式為 enum 型別名 定義列舉常量的位置應該在程式首次使用該型別名之前,否則程式無法識別該型別。列舉型別中列出的常量稱為列舉常量,它並不是字串也不是數值,...