日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ROS服务通信机制原理及示例代码

發布時間:2025/3/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ROS服务通信机制原理及示例代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ROS服務通信:節點間直接通信并獲得應答.服務需要用戶自己開發,可在功能包下創建srv文件夾并編寫源代碼,服務類型是功能包名稱和.srv文件名稱的組合,比如python中引入srv類型為,from gqcnn.srv import IMAGEprocess,其中gqcnn為功能包,srv為gqcnn下的文件夾.

?

1. 在srv文件夾下創建 IMAGEprocess.srv文件,在里面寫上請求參數和應答參數,其中 --- 上面是request的參數,下方是response參數

2. 編寫IMAGEprocess.srv文件后,需要編譯生成c++/python等語言的庫,以便后面調用,此時需配置package.xml以及CmakeLists.txt文件,在package.xml文件中加上如下圖兩行代碼

在CmakeLists.txt文件中加上如下幾個模塊,若有模塊,則直接加上沒有的代碼,若無,則加上模塊并編寫代碼,由于我這邊使用的是bool和float32數據類型,所以代碼中使用的是std_msgs,若你使用了自定義數據類型或其它數據類型需進行更換.

find_package(catkin REQUIRED COMPONENTSrospymessage_generationstd_msgs )add_service_files(FILESIMAGEprocess.srv )generate_messages(DEPENDENCIESstd_msgs )catkin_package(CATKIN_DEPENDS message_runtime )

3. 此時對工作空間進行編譯,則在下圖中路徑則會生成相應的編程語言庫,我使用的是python,所以是在python文件夾下

同時也可執行rossrv show IMAGEprocess查看服務類型是否定義成功,如下圖

4. 服務類型定義成功,則可在程序中進行引用,由于我使用的是python,所以在Python命令行中測試,測試結果如下圖,由于中間有些提示信息,故省略了中間部分截圖,import時沒有提示或報錯則成功

?

Tip: 編寫完 .srv文件以及修改package.xml和CmakeLists.txt文件后需要重新編譯工作空間,直接catkin_make可能不會馬上起效,需要rebuild或者把原先工作空間下的devel和build文件夾刪除再catkin_make.

總結

以上是生活随笔為你收集整理的ROS服务通信机制原理及示例代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。