自定義msg和srv
ros_lib庫默認自帶的消息類型有限,根據應用的需要,有時我們需要自定義消息。步驟如下:
第一步 創建
在~/catkin_ws/src目錄下創建一個新包testMsgSrv,當然,在任意一個原有包基礎上做也是可以的。
創建msg和srv
msg/TestMsg.msg 內容如下:
int32 left
int32 right
1
2
srv/testSrv.srv內容如下:
string name
---
int32[] ints
1
2
3
在package.xml中添加如下內容
<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>
1
2
在CMakeLists.txt中內容如下:
cmake_minimum_required(VERSION 2.8.3)
project(rosserial_msgs)
find_package(catkin REQUIRED COMPONENTS message_generation)
add_message_files(FILES
TestMsg.msg
)
add_service_files(FILES
testSrv.srv
)
generate_messages()
catkin_package(CATKIN_DEPENDS message_runtime)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
注意find_package中要有message_generation,catkin_package中要有message_runtime。
第二步 編譯
然後需要編譯該包。
cd ~/catkin_ws
catkin_make --pkg testMsgSrv
1
2
編譯完成後,我們就可以在arduino的libraries下安裝ros_lib。
cd <sketchbook>/libraries
rm -rf ros_lib
rosrun rosserial_arduino make_libraries.py .
1
2
3
然後在/libraries/ros_lib/testMsgSrv目錄下,可以找到TestMsg.h和TestSrv.h,說明編譯成功。
第三步 應用
接下來我們就可以新建arduino文件,在文件中通過引入頭文件,就可以使用該消息了。
#include "testMsgSrv/TestMsg.h"
————————————————
版權聲明:本文爲CSDN博主「EAIBOT」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/EAIBOT/article/details/51057107