Arduino學習筆記(16)-- ROS master和Arduino node通信

自定義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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章