ROS服務通信自定義srv

服務通信自定義srv

  • 流程:
  • 創建ROS功能包
  • 按照固定格式創建srv文件
  • 編譯配置文件
  • 編譯生成中間文件

流程:

srv 文件內的可用數據類型與 msg 文件一致,且定義 srv 實現流程與自定義 msg 實現流程類似,需查閱msg文件的可以瀏覽ROS話題通信流程自定義數據msg格式:

  • 1.創建一個ROS功能包

  • 2.按照固定格式創建srv文件

  • 3.編輯配置文件

  • 4.編譯生成中間文件

創建ROS功能包

  • 選定 src 右擊 —> create catkin package
    在這里插入圖片描述
  • 創建一個 pluming_server_client 功能包
    在這里插入圖片描述
  • 使用 roscpp rospy std_msgs 作為依賴庫
    在這里插入圖片描述
  • pluming_server_client 功能包下的結構如圖所示,功能包創建成功
    在這里插入圖片描述

按照固定格式創建srv文件

  • 在功能包下創建一個 srv 文件夾
    在這里插入圖片描述

  • srv文件夾下新建一個 AddInts.srv文件
    在這里插入圖片描述

  • 編輯 srv 文件
    在這里插入圖片描述

服務通信中,數據分成兩部分,請求與響應,在 srv 文件中請求和響應使用---分割,具體實現如上所示

編譯配置文件

  • package.xml中添加編譯依賴與執行依賴
    plumbing_server_client 功能包下的 package.xml 文件添加如圖所示的編譯依賴和執行依賴

    在這里插入圖片描述

  • CMakeLists.txt 編輯 srv 相關配置

    • 加入 message_generation
      CMakeLists.txt 中找到 find_package 添加 message_generation 編譯依賴,如圖所示:

      在這里插入圖片描述

    • 配置 srv 源文件
      CMakeLists.txt 中找到 add_service_files 配置 srv 文件,如圖所示:

      在這里插入圖片描述

    • 添加生成消息時依賴std_msgs
      CMakeLists.txt 中找到 generate_messages 添加生成依賴,如圖所示:

      在這里插入圖片描述

    • 添加執行時依賴
      CMakeLists.txt 中找到 catkin_package 添加執行依賴,如圖所示:

      在這里插入圖片描述

編譯生成中間文件

  • 編譯
    按快捷鍵 ctrl + shift + B 編譯

    在這里插入圖片描述

  • 生成的中間文件
    編譯完成后就生成了 C++Python 調用時所需的中間文件

    • C++ 的中間文件
      生成的 C++ 中間文件在工作空間的 devel/include/pluming_server_client 文件下,有一個請求文件和一個響應文件,請求文件就是需要請求的數據,響應文件就是響應請求數據后的返回數據
      在這里插入圖片描述

    • Python的中間文件
      生成的Python中間文件在工作空間的 devel/lib/python2.7/dist-packages/plumbing_server_client/srv 文件下

      在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/44413.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/44413.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/44413.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【服務器】在Linux查看運行的Python程序,并找到特定的Python程序

在Linux查看運行的Python程序并找到特定的Python程序 寫在最前面1. 使用ps命令查看所有Python進程查看詳細信息 2. 使用pgrep命令查找Python進程ID 3. 使用top或htop命令使用top命令使用htop命令 4. 使用lsof命令查找Python進程打開的文件 5. 使用nvidia-smi命令查看GPU使用情況…

JDBC編程的學習——MYsql版本

目錄 前言 什么是JDBC ??? 前置準備 使用JDBC的五個關鍵步驟 1.建立與數據庫的連接 2.創建具體的sql語句和Statement 3.執行SQL語句 4.處理結果集 5.釋放資源 完整流程展示 前言 筆者在先前的博客就提過會寫關于JDBC的內容 [Mysql] 的基礎知識和sql 語句.教你速成…

R包:reticulate R對python的接口包

介紹1 R和python是兩種不同的編程語言,前者是統計學家發明并且服務數學統計計算,后者則是最萬能的膠水語言。隨著大數據時代的到來,兩者在數據分析領域存在越來越多的共同點且可以相互使用,為了破解二者的編程壁壘,CR…

軟考《信息系統運行管理員》-3.1信息系統設施運維的管理體系

3.1信息系統設施運維的管理體系 1 信息系統設施運維的對象 基礎環境 主要包括信息系統運行環境(機房、設備間、配線室、基站、云計算中心 等)中的空調系統、供配電系統、通信應急設備系統、防護設備系統(如消防系統、安全系統) 等,能維持系統安全正常運轉&#xf…

【第26章】MyBatis-Plus之高級特性

文章目錄 前言一、數據審計(對賬)二、數據敏感詞過濾三、數據范圍(數據權限)四、表結構自動維護五、字段數據綁定(字典回寫)六、虛擬屬性綁定七、字段加密解密八、字段脫敏九、多數據源分庫分表&#xff08…

從零開始學習嵌入式----Linux系統命令集合與shell腳本

Shell是一門編程語言,作為學習shell的開始,需要事先搞明白:編程的目的是什么?什么是編程語言?什么是編程? shell本身就是一門解釋型、弱類型、動態語言,與python相對應,Python屬于解…

aardio —— 今日減bug

打字就減bug 鼠標雙擊也減bug 看看有多少bug夠你減的 使用方法: 1、將資源附件解壓縮,里面的文件夾,放到aardio\plugin\plugins 目錄 2、aardio 啟動插件 → 插件設置 → 選中“今日減bug” → 保存。 3、重啟 aardio,等aa…

旗晟智能巡檢機器人:開啟工業運維的智能化新篇章

在當今快速發展的工業領域,安全、效率和成本控制是企業運營的核心。旗晟科技以創新為驅動,推出了一站式的工業級智能巡檢機器人數字化全景運維解決方案,為石油、天然氣、化工、電力等高危行業提供了一個全新的運維模式。 一、面對挑戰&#x…

提升機器視覺與機器學習軟件安全性的實踐策略

在近幾年科技爆發中,機器學習(ML)和機器視覺(MV)的結合正在改變各行各業。機器學習通過數據驅動的算法讓計算機能夠自我學習,而機器視覺賦予計算機識別和理解圖像的能力。這種結合使得計算機可以高效地執行…

上位機開發關鍵技術

《上位機開發關鍵技術》 在現代工業自動化、智能化的發展進程中,上位機作為人機交互的重要接口,發揮著至關重要的作用。上位機能夠實現對下位機設備的監控、數據采集與處理、控制指令下達等功能,為生產過程的優化、設備的高效運行提供了有力支…

淺談化工廠環保管理的痛點、智慧環保的必要性及EHS系統的實現路徑

在全球環保意識日益增強的背景下,化工廠作為工業領域的重要組成部分,其環保管理顯得尤為重要。然而,化工廠在追求經濟效益的同時,也面臨著諸多環保管理的痛點。本文將圍繞化工廠環保管理的痛點、化工廠為何需要智慧環保以及如何借…

設計分享—國外后臺界面設計賞析

國外后臺界面設計將用戶體驗放在首位,通過直觀易懂的布局和高效的交互設計,提升用戶操作效率和滿意度。 設計不僅追求美觀大方,還注重功能的實用性和數據的有效展示,通過圖表和圖形化手段使數據更加直觀易懂。 采用響應式布局&a…

Global Mapper:地理信息的溫柔探索

引言 在這紛繁復雜的世界里,地理信息系統(GIS)如同一把利器,幫助我們剖析、理解和改造這個世界。而在眾多GIS軟件中,Global Mapper無疑是其中的佼佼者。作為一款功能全面且易于使用的GIS應用程序,Global M…

相機光學(三十一)——暗房設置的要求

ISO標準通常在測試相機時指定對周圍條件的要求。由于攝影ISO組試圖保持這些要求與所有標準一致,所以我們總結了這個“技術說明”中的重要方面。 ??溫度應保持在23C /- 2C的范圍內。在設計空調系統時,請記住圖表照明的耗電量和發熱量。濕度需要在&#…

數字安全護航技術能力全景圖 | 亞信安全實力占據75領域

近日,2024全球數字經濟大會——數字安全生態建設專題論壇在北京成功舉辦。會上,中國信息通信研究院(簡稱“中國信通院”)正式發布了《數字安全護航技術能力全景圖》,亞信安全憑借全面的產品技術能力,成功入…

【網絡安全】SSRF 之 Azure Digital Twins Explorer

未經許可,不得轉載。 文章目錄 正文 正文 Azure Digital Twins 是一個微軟下的平臺服務,允許開發者創建和運行數字孿生模型,這些模型能夠反映物理世界中的實體及其關系,通過這些模型可以進行監控、分析和預測等操作。 1、進入主…

How to Describe Figures in a Research Article

How to Describe Figures in a Research Article DateAuthorVersionNote2024.07.10Dog TaoV1.0Finish the document. 文章目錄 How to Describe Figures in a Research ArticleGeneral GuidelinesDetailed DescriptionsCommon Describing Phrases Effective communication of …

構建機部署之Azure DevOps添加代理機(Linux)

目錄 一、權限檢查二、添加代理機三、更換代理四、刪除并重新配置代理 一、權限檢查 確認用戶具有權限 默認代理池的所有者有添加代理的權限 1)代理池所有者可以生成一個PAT,共享使用。代理不會在日常操作中使用此人憑據,但需要使用有權限的…

【多線程】線程同步--條件變量的原理及其使用

文章目錄 前言線程同步的基本概念條件變量定義條件變量初始化條件變量銷毀條件變量等待條件(重要)喚醒等待簡單運用常見使用條件變量的格式 前言 線程同步意味著在多線程并發執行中,協調線程之間的執行順序,以確保共享資源被正確…

Kylin系列(三)安裝與配置:搭建你的第一個 Kylin 環境

目錄 1. Kylin 簡介 1.1 Kylin的核心特點 1.2 適用場景 2. 環境準備 2.1 硬件要求 2.2 軟件依賴 3. 安裝與配置 3.1 安裝JDK 3.2 安裝Hadoop 3.2.1 下載并解壓Hadoop 3.2.2 配置Hadoop環境變量 3.2.3 配置Hadoop文件 3.2.4 格式化HDFS并啟動Hadoop服務 3.3 安裝H…