0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將消息導(dǎo)入Unity

麥辣雞腿堡 ? 來源:古月居 ? 作者:敢敢のwings ? 2023-11-17 17:26 ? 次閱讀

自定義msg

將消息導(dǎo)入Unity的步驟如下所示:

1.Unity的菜單“Robotics→Generate ROS Messages…”選擇。

2.在“ROS message path”中選擇“catkin_ws/src”。

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

圖片

然后點擊“MyString.msg”中的“Build msg”。這樣“MyString.msg”將被轉(zhuǎn)換成c#腳本“MyStringMsg”,并在Project窗口中輸出“RosMessages”。

圖片

Topic話題

這一小節(jié)我們主要來說Topic的發(fā)布和訂閱,首先我們來看一下發(fā)布者的Unity編程。

1.在Hierarchy窗口的“+→Create Empty”中創(chuàng)建空GameObject,命名為“Publisher”。

2.在“Publisher”中追加新腳本“ChatterPublisher”,編輯如下

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


public class ChatterPublisher : MonoBehaviour
{
    private ROSConnection ros;


    // 初始化時被調(diào)用
    void Start()
{
        // 向ROS連接注冊Topic話題
        ros = ROSConnection.instance;
        ros.RegisterPublisher< MyStringMsg >("chatter");
    }


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

而接收者和發(fā)布者類似,都在Hierarchy窗口的“+→Create Empty”中創(chuàng)建空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當(dāng)中訂閱這些信息,運行

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的訂閱器。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3683

    瀏覽量

    94885
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    285

    瀏覽量

    17570
  • Unity
    +關(guān)注

    關(guān)注

    1

    文章

    128

    瀏覽量

    22310
收藏 0人收藏

    評論

    相關(guān)推薦
    熱點推薦

    如何將dxf導(dǎo)入Allegro

    如何將dxf導(dǎo)入Allegro Allegro可以導(dǎo)入AutoCAD產(chǎn)生的DXF文件(支持DXF R10-R14版本)。同時Allegro也可以將設(shè)計文
    發(fā)表于 03-21 18:21 ?1.2w次閱讀
    <b class='flag-5'>如何將</b>dxf<b class='flag-5'>導(dǎo)入</b>Allegro

    如何將solidworks文件導(dǎo)入到labview中

    最近正在使用labview,請問如何將已建模的solidworks文件導(dǎo)入到labview中并顯示
    發(fā)表于 09-09 16:54

    如何將matlab仿真得到的波形導(dǎo)入labview中?

    如何將matlab仿真得到的波形導(dǎo)入labview中?
    發(fā)表于 11-11 15:56

    如何將 DXF 導(dǎo)入 PADS

    attach://173051.pdf 如何將 DXF 導(dǎo)入 PADS
    發(fā)表于 12-11 11:41

    如何將pcan view 中讀到的數(shù)據(jù)導(dǎo)入labview中?

    如何將pcan view 中讀到的數(shù)據(jù)導(dǎo)入labview中?是不是因為labview中沒有裝DAQ_MX呀?求大神給予幫助
    發(fā)表于 11-21 16:06

    如何將cad畫好的圖導(dǎo)入到labview中

    如何將cad畫好的圖導(dǎo)入到labview中
    發(fā)表于 11-06 14:33

    如何將PADS的原理圖清晰的導(dǎo)入到word

    如何將原理圖導(dǎo)入到word我試了試 截圖一點都不清楚,求大神啊
    發(fā)表于 05-17 14:04

    如何將示例項目導(dǎo)入MCUXpresso IDE?

    使用 RT1050 板,并有這個例子。我閱讀了 RT1020 板支持 mc_pmsm 與板 FRDM-MC-LVPMSM 組合的文檔。我正在尋找如何將示例項目導(dǎo)入 MCUXpresso IDE,有人可以幫助我嗎?
    發(fā)表于 03-16 08:15

    如何將FPGA里的數(shù)據(jù)導(dǎo)入dsp板子里去呢?

    如何將FPGA里的數(shù)據(jù)導(dǎo)入dsp板子里去呢?有哪位大神可以指教一下嗎
    發(fā)表于 03-21 14:47

    如何將ECC密鑰導(dǎo)入HSE FW?

    我目前正在嘗試 ECC 公鑰導(dǎo)入 HSE FW。 OpenSSL 已生成擴(kuò)展名為“.pem”的私鑰和公鑰。 所以我的問題是,如何將這個 pem 文件轉(zhuǎn)換成可用于密鑰導(dǎo)入的文件。
    發(fā)表于 05-04 06:13

    如何將Unity著色器移植到通用渲染管道

    介紹如何將為內(nèi)置管道編寫的Unity著色器移植到URP。本指南還介紹了如何將自定義著色器移植到URP。這是因為這些著色器無法自動移植到URP。在指南的末尾,您將:?熟悉URP?了解如何將
    發(fā)表于 08-02 13:39

    如何將Arm Neon C#內(nèi)部函數(shù)與Unity Burst編譯器一起使用

    本指南解釋了如何將Arm Neon C#內(nèi)部函數(shù)與Unity Burst編譯器一起使用,以提高Unity Android應(yīng)用程序的性能。 在本指南結(jié)束時,您將了解到: ?單指令多數(shù)據(jù)(SIMD)指令
    發(fā)表于 08-10 07:11

    如何將AD庫轉(zhuǎn)換導(dǎo)入到PADS中使用

    想學(xué)習(xí)pads,學(xué)會如何將AD庫轉(zhuǎn)換導(dǎo)入到PADS中使用,方便自己
    發(fā)表于 12-11 16:46 ?0次下載

    如何將Klayout Cell動態(tài)導(dǎo)入Lumerical Multiphysics

    在本例中,演示了如何將KLayout Library Cell動態(tài)導(dǎo)入 Lumerical 以執(zhí)行設(shè)計掃描和表征。該功能支持動態(tài)導(dǎo)入到Lumerical FDTD、MODE以及Multiphysics的所有工具,包括CHARGE
    的頭像 發(fā)表于 01-22 14:27 ?1104次閱讀
    <b class='flag-5'>如何將</b>Klayout Cell動態(tài)<b class='flag-5'>導(dǎo)入</b>Lumerical Multiphysics

    如何將python文件導(dǎo)入到ROS系統(tǒng)中

    本文通過使用myCobot機(jī)械臂進(jìn)行QR碼視覺追蹤的實踐案例分析,介紹如何將 python 文件導(dǎo)入到 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?679次閱讀
    <b class='flag-5'>如何將</b>python文件<b class='flag-5'>導(dǎo)入</b>到ROS系統(tǒng)中

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品