首先使用同樣的方法可以完成srv文件的導入
服務端的實現。Hierarchy窗口的“+→Create”Empty”創建空GameObject,命名為“AddTwoIntsServer”,添加新的腳本“AddTwoIntsServer”
using UnityEngine;
using Unity.Robotics.ROSTCPConnector;
using Unity.Robotics.ROSTCPConnector.ROSGeometry;
using AddTwoIntsRequest = RosMessageTypes.Hello.AddTwoIntsRequest;
using AddTwoIntsResponse = RosMessageTypes.Hello.AddTwoIntsResponse;
public class AddTwoIntsServer : MonoBehaviour
{
void Start()
{
// 向ROS連接注冊Service服務
ROSConnection.GetOrCreateInstance().ImplementService<
AddTwoIntsRequest, AddTwoIntsResponse >("add_two_ints", AddTwoIntsCallback);
}
private AddTwoIntsResponse AddTwoIntsCallback(AddTwoIntsRequest request)
{
AddTwoIntsResponse response = new AddTwoIntsResponse();
response.sum = request.a + request.b;
return response;
}
}
客戶端的實現。Hierarchy窗口的“+→Create”Empty”創建空GameObject,命名為“AddTwoIntsClient”,添加新的腳本“AddTwoIntsClient”,編輯如下。
using UnityEngine;
using Unity.Robotics.ROSTCPConnector;
using AddTwoIntsRequest = RosMessageTypes.Hello.AddTwoIntsRequest;
using AddTwoIntsResponse = RosMessageTypes.Hello.AddTwoIntsResponse;
public class AddTwoIntsClient : MonoBehaviour
{
ROSConnection ros;
void Start()
{
// 向ROS連接注冊Service服務
ros = ROSConnection.GetOrCreateInstance();
ros.RegisterRosService< AddTwoIntsRequest, AddTwoIntsResponse >("add_two_ints");
// 請求生成
AddTwoIntsRequest request = new AddTwoIntsRequest(1, 2);
// 請求發送
ros.SendServiceMessage< AddTwoIntsResponse >("add_two_ints", request, AddTwoIntsCallback);
}
void AddTwoIntsCallback(AddTwoIntsResponse response)
{
print("1 + 2 = " + response.sum);
}
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Service
+關注
關注
0文章
30瀏覽量
13774 -
ROS
+關注
關注
1文章
276瀏覽量
16967 -
Unity
+關注
關注
1文章
127瀏覽量
21775
發布評論請先 登錄
相關推薦
ROS與RPLIDAR結合使用說明及問題匯總
的ROSpackage rplidar_ros介紹:rplidar_ros是國內第一款面向全球ROS開發者推出相應package的激光雷達,其低廉的價格大大推動了激光雷達在
發表于 09-07 16:27
ROS與STM32是如何進行通信的
ROS與STM32通信2020.8.1主要內容制作ROS包,將控制命令傳給STM32,并將接收到的數據作為話題進行發布STM32接收數據并將姿態數據傳回給ROS接收:期望角速度、期望線
發表于 08-11 07:25
RT-Thread實時操作系統與ROS2是怎樣進行通信的
,高效和穩定,這里簡單介紹一下 ROS 很重要的4個設計:Message (消息):有的時候可能會苦惱傳感器的信息應該以什么樣的數據結構發送出去,于是 ROS 定義好了各種常見傳感器的數據格式,有了
發表于 04-01 11:38
Unity開發者Arm指南-特效圖形技術介紹
本指南介紹了幾種可以在Unity程序中使用的特效技術,包括:
?臟鏡頭效果
?霧效果
?冰墻效果
在本指南中,有圖像顯示了如何在示例中使用特效展示了冰洞演示和Nordeus的游戲Spellsouls
發表于 08-02 06:07
ROS的含義與機器人操作系統ROS的介紹
為了說明講清楚 ROS,我就從 ROS 是什么,為什么使用 ROS,如何使用 ROS 三個方面展開。 △出自今年《機器人視覺與應用》課程本人制作的課件 是什么
發表于 09-26 14:08
?12次下載
ROS與STM32通信
ROS與STM32通信2020.8.1主要內容制作ROS包,將控制命令傳給STM32,并將接收到的數據作為話題進行發布STM32接收數據并將姿態數據傳回給ROS接收:期望角速度、期望線
發表于 12-24 19:00
?11次下載
ROS基本介紹
近來找到的實習主要是做智能車控制,用到的也就是ROS機器人操作系統,ROS需要運行在一個操作系統上,這個操作系統常用的就是Linux,而公司用的就是Ubuntu,所以Ubuntu-ROS組合就是實習的主要學習內容了。所以我就新開
ROS/ROS 2 介紹
ROS是機器人操作系統(Robot Operating System)的英文縮寫。ROS是用于編寫機器人軟件程序的一種具有高度靈活性的軟件架構。ROS的原型源自斯坦福大學的STanford
如何將消息導入Unity
自定義msg 將消息導入Unity的步驟如下所示: 1.Unity的菜單“Robotics→Generate ROS Messages…”選擇。 2.在“ROS message pat
ROS核心框架介紹
ROS核心框架 對于第一個問題,我也沒仔細研究過源碼,核心代碼基本由python和C++組成,運用了xmlrpc機制,每個運行的節點可以理解成一個進程。進程間通訊有些是共享內存的方式(比如
ROS通信接口機制介紹
ROS通信接口 接口可以讓程序之間的依賴降低,便于我們使用別人的代碼,也方便別人使用我們的代碼,這就是ROS的核心目標,減少重復造輪子。 ROS有三種常用的通信機制,分別是話題、服務、
評論