首先使用同样的方法可以完成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浏览量
13788 -
ROS
+关注
关注
1文章
278浏览量
17009 -
Unity
+关注
关注
1文章
127浏览量
21829
发布评论请先 登录
相关推荐
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有三种常用的通信机制,分别是话题、服务、
评论