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

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

3天内不再提示

如何将消息导入Unity

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

自定义msg

将消息导入Unity的步骤如下所示:

1.Unity的菜单“Robotics→Generate ROS Messages…”选择。

2.在“ROS message path”中选择“catkin_ws/src”。

然后就可以看到path下的msg都会显示在Unity下面

图片

然后点击“MyString.msg”中的“Build msg”。这样“MyString.msg”将被转换成c#脚本“MyStringMsg”,并在Project窗口中输出“RosMessages”。

图片

Topic话题

这一小节我们主要来说Topic的发布和订阅,首先我们来看一下发布者的Unity编程

1.在Hierarchy窗口的“+→Create Empty”中创建空GameObject,命名为“Publisher”。

2.在“Publisher”中追加新脚本“ChatterPublisher”,编辑如下

using UnityEngine;
using Unity.Robotics.ROSTCPConnector;
using MyStringMsg = RosMessageTypes.Hello.MyStringMsg;


public class ChatterPublisher : MonoBehaviour
{
    private ROSConnection ros;


    // 初始化时被调用
    void Start()
{
        // 向ROS连接注册Topic话题
        ros = ROSConnection.instance;
        ros.RegisterPublisher< MyStringMsg >("chatter");
    }


    // 每帧更新
    void FixedUpdate()
{
        // 发送msg信息
        MyStringMsg msg = new MyStringMsg("Hello Unity!");
        ros.Send("chatter", msg);
    }
}

而接收者和发布者类似,都在Hierarchy窗口的“+→Create Empty”中创建空GameObject,命名为“Subscriber”。

在“Subscriber”中添加新的脚本“ChatterSubscriber”,编辑如下。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unity.Robotics.ROSTCPConnector;
using MyStringMsg = RosMessageTypes.Hello.MyStringMsg;


public class ChatterSubscriber : MonoBehaviour{


    void Start(){
        // 向ROS连接注册Subscribe
        ROSConnection.instance.Subscribe< MyStringMsg >("chatter", Callback);
    }


    void Callback(MyStringMsg msg){
        Debug.Log(msg.data);
    }
}

同时我们可以在ROS当中订阅这些信息,运行

roscore
rosparam set ROS_IP 127.0.0.1
rosparam set ROS_TCP_PORT 10000
rosrun ros_tcp_endpoint default_server_endpoint.py
# roslauch ros_tcp_endpoint endpoint.launch tcp_ip:=127.0.0.1 tcp_port:=10000 # 将127.0.0.1

然后写一个listener.py的订阅器。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3614

    浏览量

    93686
  • ROS
    ROS
    +关注

    关注

    1

    文章

    278

    浏览量

    17001
  • Unity
    +关注

    关注

    1

    文章

    127

    浏览量

    21806
收藏 人收藏

    评论

    相关推荐

    如何将dxf导入Allegro

    如何将dxf导入Allegro Allegro可以导入AutoCAD产生的DXF文件(支持DXF R10-R14版本)。同时Allegro也可以将设计文
    发表于 03-21 18:21 1.2w次阅读
    <b class='flag-5'>如何将</b>dxf<b class='flag-5'>导入</b>Allegro

    如何将solidworks文件导入到labview中

    最近正在使用labview,请问如何将已建模的solidworks文件导入到labview中并显示
    发表于 09-09 16:54

    如何将matlab仿真得到的波形导入labview中?

    如何将matlab仿真得到的波形导入labview中?
    发表于 11-11 15:56

    如何将 DXF 导入 PADS

    attach://173051.pdf 如何将 DXF 导入 PADS
    发表于 12-11 11:41

    如何将pcan view 中读到的数据导入labview中?

    如何将pcan view 中读到的数据导入labview中?是不是因为labview中没有装DAQ_MX呀?求大神给予帮助
    发表于 11-21 16:06

    如何将cad画好的图导入到labview中

    如何将cad画好的图导入到labview中
    发表于 11-06 14:33

    如何将PADS的原理图清晰的导入到word

    如何将原理图导入到word我试了试 截图一点都不清楚,求大神啊
    发表于 05-17 14:04

    如何将示例项目导入MCUXpresso IDE?

    使用 RT1050 板,并有这个例子。我阅读了 RT1020 板支持 mc_pmsm 与板 FRDM-MC-LVPMSM 组合的文档。我正在寻找如何将示例项目导入 MCUXpresso IDE,有人可以帮助我吗?
    发表于 03-16 08:15

    如何将FPGA里的数据导入dsp板子里去呢?

    如何将FPGA里的数据导入dsp板子里去呢?有哪位大神可以指教一下吗
    发表于 03-21 14:47

    如何将ECC密钥导入HSE FW?

    我目前正在尝试 ECC 公钥导入 HSE FW。 OpenSSL 已生成扩展名为“.pem”的私钥和公钥。 所以我的问题是,如何将这个 pem 文件转换成可用于密钥导入的文件。
    发表于 05-04 06:13

    如何将Unity着色器移植到通用渲染管道

    介绍如何将为内置管道编写的Unity着色器移植到URP。本指南还介绍了如何将自定义着色器移植到URP。这是因为这些着色器无法自动移植到URP。在指南的末尾,您将:•熟悉URP•了解如何将
    发表于 08-02 13:39

    如何将Arm Neon C#内部函数与Unity Burst编译器一起使用

    本指南解释了如何将Arm Neon C#内部函数与Unity Burst编译器一起使用,以提高Unity Android应用程序的性能。 在本指南结束时,您将了解到: •单指令多数据(SIMD)指令
    发表于 08-10 07:11

    如何将AD库转换导入到PADS中使用

    想学习pads,学会如何将AD库转换导入到PADS中使用,方便自己
    发表于 12-11 16:46 0次下载

    CAD免费教程:如何将Excel数据快速导入CAD图纸

    在平时的设计工作中,为了图纸内容的丰富性,通常会在里面添加一些元素,使得数据更加的完善,那我们想在CAD图纸中添加一份Excel数据表,徒手绘制那就肯定是太过于麻烦了,那怎么才能省时省事呢?这个时候就用到了技巧的问题了,一步教你如何将Excel数据表快速导入CAD图纸。
    发表于 09-05 08:00 9次下载
    CAD免费教程:<b class='flag-5'>如何将</b>Excel数据快速<b class='flag-5'>导入</b>CAD图纸

    如何将Klayout Cell动态导入Lumerical Multiphysics

    在本例中,演示了如何将KLayout Library Cell动态导入 Lumerical 以执行设计扫描和表征。该功能支持动态导入到Lumerical FDTD、MODE以及Multiphysics的所有工具,包括CHARGE
    的头像 发表于 01-22 14:27 647次阅读
    <b class='flag-5'>如何将</b>Klayout Cell动态<b class='flag-5'>导入</b>Lumerical Multiphysics