ROS學習筆記10(建立乙個ROS訊息和服務)

2021-09-24 22:54:01 字數 2714 閱讀 9936

這篇教程主要介紹怎樣建立和編譯乙個msg訊息和srv服務檔案,同時介紹rosmsgrossrvroscp等命令工具。

3 srv使用

4 小結

msg檔案:

header header

string child_frame_id

geometry_msgs/posewithcovariance pose

geometry_msgs/twistwithcovariance twist

srv檔案:

int64 a

int64 b

---int64 sum

srv中有兩個部分,---上面是request,下面的是response。

$ roscd beginner_tutorials

$ mkdir msg

$ echo

"int64 num"

> msg/num.msg

package.xml中新增:

>

message_generationbuild_depend

>

>

message_runtimeexec_depend

>

cmakelists.txt中新增:

find_package

( catkin required components

roscpp

rospy

std_msgs

message_generation

)catkin_package

( catkin_depends

message_runtime

)add_message_files

( files

num.msg

)generate_messages

( dependencies

std_msgs

)

標準用法:

$ rosmsg show [message type]
舉例:

$ rosmsg show beginner_tutorials/num

# echo

int64 num

$ roscd beginner_tutorials

$ mkdir srv

接著拷貝乙個srv檔案過來

$ roscp [package_name]

[file_to_copy_path]

[copy_path]

$ roscp rospy_tutorials addtwoints.srv srv/addtwoints.srv

或者新建乙個addtwoints.srv檔案:

int64 a

int64 b---

int64 sum

package.xml中新增:

>

message_generationbuild_depend

>

>

message_runtimeexec_depend

>

cmakelists.txt中新增:

# do not just add this line to your cmakelists.txt, modify the existing line

find_package

(catkin required components

roscpp

rospy

std_msgs

message_generation

)add_service_files

( files

addtwoints.srv

)

標準用法:

$ rossrv show 
舉例:

$ rossrv show beginner_tutorials/addtwoints

# echo

int64 a

int64 b

---int64 sum

rosmsg一樣,也可以不指定package名字來尋找service:

$ rossrv show addtwoints

# echo

# beginner_tutorials裡面的服務:

[beginner_tutorials/addtwoints]:

int64 a

int64 b

---int64 sum

# rospy_tutorials裡面的服務:

[rospy_tutorials/addtwoints]:

int64 a

int64 b

---int64 sum

建立乙個ROS節點

mkdir p catkin ws srccd catkin ws src現在使用catkin create pkg命令來建立乙個名為 beginner tutorials 的新程式包,這個程式包依賴於std msgs roscpp和rospy catkin create pkg beginner ...

建立乙個ROS包

先前筆者不知道catkin到底是個什麼東東,後來終於在官方 上找到了答案,原來catkin是ros的乙個官方的編譯構建系統,是原本的ros的編譯構建系統rosbuild的後繼者。catkin的 有點複雜,我們可以慢慢的講一下其中的淵源。ros 於willow garage這個公司,他們希望借助開源的...

ROS學習筆記(2)之建立我的第乙個ros工程

雖然這時候工作區是空的,但是我們依然可以進行編譯 cd catkin ws catkin make 這時候,會在當前資料夾下生成devel,build這兩個子資料夾,在devel資料夾下能看到幾個setup.s 件。接下來把工作區在bash中註冊 source devel setup.bash 上面...