0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Unity与ROS的Service话题介绍

麦辣鸡腿堡 来源:古月居 作者:敢敢のwings 2023-11-17 17:36 次阅读

Service话题

首先使用同样的方法可以完成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
    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

    ROS2的安装与使用 精选资料推荐

    ros2的乌龟仿真turtlesim,介绍topic,service,action等元素及其使用,介绍ros的基本操作
    发表于 08-30 08:24

    ROS话题消息是什么意思呢?怎样去使用ROS话题消息呢

    ROS话题消息是什么意思呢?怎样去使用ROS话题消息呢?
    发表于 02-14 06:01

    RT-Thread实时操作系统与ROS2是怎样进行通信的

    ,高效和稳定,这里简单介绍一下 ROS 很重要的4个设计:Message (消息):有的时候可能会苦恼传感器的信息应该以什么样的数据结构发送出去,于是 ROS 定义好了各种常见传感器的数据格式,有了
    发表于 04-01 11:38

    Unity开发者Arm指南-特效图形技术介绍

    本指南介绍了几种可以在Unity程序中使用的特效技术,包括: •脏镜头效果 •雾效果 •冰墙效果 在本指南中,有图像显示了如何在示例中使用特效展示了冰洞演示和Nordeus的游戏Spellsouls
    发表于 08-02 06:07

    UNITY 平台介绍

    UNITY 平台介绍
    发表于 12-25 00:26 0次下载

    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次下载
    <b class='flag-5'>ROS</b>与STM32通信

    ROS基本介绍

    近来找到的实习主要是做智能车控制,用到的也就是ROS机器人操作系统,ROS需要运行在一个操作系统上,这个操作系统常用的就是Linux,而公司用的就是Ubuntu,所以Ubuntu-ROS组合就是实习的主要学习内容了。所以我就新开
    的头像 发表于 05-19 17:07 7327次阅读
    <b class='flag-5'>ROS</b>基本<b class='flag-5'>介绍</b>

    ROS/ROS 2 介绍

    ROS是机器人操作系统(Robot Operating System)的英文缩写。ROS是用于编写机器人软件程序的一种具有高度灵活性的软件架构。ROS的原型源自斯坦福大学的STanford
    的头像 发表于 05-19 17:45 4274次阅读
    <b class='flag-5'>ROS</b>/<b class='flag-5'>ROS</b> 2 <b class='flag-5'>介绍</b>

    UnityROS链接介绍

    对于ROS而言,其最常用的就是Topic话题以及Service两个了。之前我们在了解Unity Robotics Hub时候就了解到基本的Unity
    的头像 发表于 11-17 17:22 944次阅读
    <b class='flag-5'>Unity</b>与<b class='flag-5'>ROS</b>链接<b class='flag-5'>介绍</b>

    如何将消息导入Unity

    自定义msg 将消息导入Unity的步骤如下所示: 1.Unity的菜单“Robotics→Generate ROS Messages…”选择。 2.在“ROS message pat
    的头像 发表于 11-17 17:26 498次阅读
    如何将消息导入<b class='flag-5'>Unity</b>

    ROS核心框架介绍

    ROS核心框架 对于第一个问题,我也没仔细研究过源码,核心代码基本由python和C++组成,运用了xmlrpc机制,每个运行的节点可以理解成一个进程。进程间通讯有些是共享内存的方式(比如
    的头像 发表于 11-21 18:07 955次阅读
    <b class='flag-5'>ROS</b>核心框架<b class='flag-5'>介绍</b>

    ROS通信接口机制介绍

    ROS通信接口 接口可以让程序之间的依赖降低,便于我们使用别人的代码,也方便别人使用我们的代码,这就是ROS的核心目标,减少重复造轮子。 ROS有三种常用的通信机制,分别是话题、服务、
    的头像 发表于 12-01 15:03 787次阅读
    <b class='flag-5'>ROS</b>通信接口机制<b class='flag-5'>介绍</b>