Service話題
首先使用同樣的方法可以完成srv文件的導入

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